Private
Public Access
1
0

优化:代码质量提升,修复重复逻辑和语法高亮支持

- 简化计算属性,删除重复代码
- 优化文件扩展名获取逻辑
- 新增文件工具函数库 fileHelpers.js
- 增强 CodeEditor 语法高亮(支持 30+ 语言)
- 修复 Office 文档文件服务器访问权限
- 添加特殊文件名支持(Dockerfile、Makefile 等)
This commit is contained in:
2026-01-30 02:24:09 +08:00
parent b849e6cc46
commit eb2cbad17b
15 changed files with 962 additions and 761 deletions

View File

@@ -91,8 +91,7 @@ export function useFavoriteFiles(storageKey, options = {}) {
if (index > -1) {
// 已收藏,执行取消收藏
favoriteFiles.value.splice(index, 1)
sortFavorites() // 排序
save(favoriteFiles.value)
save(favoriteFiles.value) // 直接保存,不重新排序
onRemove(item)
Message.info(`已取消收藏: ${item.name}`)
@@ -108,11 +107,10 @@ export function useFavoriteFiles(storageKey, options = {}) {
path: item.path,
name: item.name,
is_dir: item.is_dir || false,
created_at: Date.now(), // 添加时间戳
created_at: Date.now(), // 添加时间戳(用于 getSortedFavorites
})
sortFavorites() // 排序
save(favoriteFiles.value)
save(favoriteFiles.value) // 直接保存,不重新排序(新项目添加到末尾)
onAdd(item)
Message.success(`已收藏: ${item.name}`)
@@ -141,8 +139,7 @@ export function useFavoriteFiles(storageKey, options = {}) {
const item = favoriteFiles.value[index]
favoriteFiles.value.splice(index, 1)
sortFavorites() // 排序
save(favoriteFiles.value)
save(favoriteFiles.value) // 直接保存,不重新排序
onRemove(item)
Message.info(`已取消收藏: ${item.name}`)
@@ -178,7 +175,6 @@ export function useFavoriteFiles(storageKey, options = {}) {
const executeClear = () => {
const count = favoriteFiles.value.length
favoriteFiles.value = []
sortFavorites() // 保持一致性
save([])
Message.success(`已清空 ${count} 个收藏项`)
@@ -229,10 +225,39 @@ export function useFavoriteFiles(storageKey, options = {}) {
)
}
// 组件挂载时加载数据并排序
/**
* 重新排序收藏列表(拖拽排序)
* @param {number} fromIndex - 源索引
* @param {number} toIndex - 目标索引
* @returns {boolean} 是否成功重排序
*/
const reorderFavorites = (fromIndex, toIndex) => {
if (!Array.isArray(favoriteFiles.value)) {
return false
}
if (fromIndex < 0 || fromIndex >= favoriteFiles.value.length ||
toIndex < 0 || toIndex >= favoriteFiles.value.length) {
return false
}
if (fromIndex === toIndex) {
return false
}
// 移动数组元素
const [movedItem] = favoriteFiles.value.splice(fromIndex, 1)
favoriteFiles.value.splice(toIndex, 0, movedItem)
// 保存新顺序
save(favoriteFiles.value)
return true
}
// 组件挂载时加载数据(不自动排序,保持用户拖拽的顺序)
onMounted(() => {
load()
sortFavorites() // 确保加载后的数据是排序的
})
return {
@@ -248,6 +273,7 @@ export function useFavoriteFiles(storageKey, options = {}) {
getSortedFavorites,
searchFavorites,
sortFavorites,
reorderFavorites,
load,
save,
}
@@ -264,6 +290,7 @@ export function useFavoriteFiles(storageKey, options = {}) {
* @property {Function} getSortedFavorites - 获取排序后的列表
* @property {Function} searchFavorites - 搜索收藏
* @property {Function} sortFavorites - 手动排序收藏列表
* @property {Function} reorderFavorites - 拖拽重新排序
* @property {Function} load - 手动加载数据
* @property {Function} save - 手动保存数据
*/