优化:代码质量提升,修复重复逻辑和语法高亮支持
- 简化计算属性,删除重复代码 - 优化文件扩展名获取逻辑 - 新增文件工具函数库 fileHelpers.js - 增强 CodeEditor 语法高亮(支持 30+ 语言) - 修复 Office 文档文件服务器访问权限 - 添加特殊文件名支持(Dockerfile、Makefile 等)
This commit is contained in:
@@ -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 - 手动保存数据
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user