From b0b2e11713c10436ad9be43d56fceeeda18c71b5 Mon Sep 17 00:00:00 2001 From: wangdan-fit2cloud Date: Fri, 18 Sep 2026 14:43:46 +0800 Subject: [PATCH] feat: folder sort --- ui/src/assets/iconfont.js | 2 +- ui/src/components/business/folder-tree/index.vue | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ui/src/assets/iconfont.js b/ui/src/assets/iconfont.js index 3fc0dde7538..469edd8b09f 100644 --- a/ui/src/assets/iconfont.js +++ b/ui/src/assets/iconfont.js @@ -1 +1 @@ -window._iconfont_svg_string_5200172='',(h=>{var a=(l=(l=document.getElementsByTagName("script"))[l.length-1]).getAttribute("data-injectcss"),l=l.getAttribute("data-disable-injectsvg");if(!l){var o,v,t,i,c,d=function(a,l){l.parentNode.insertBefore(a,l)};if(a&&!h.__iconfont__svg__cssinject__){h.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}o=function(){var a,l=document.createElement("div");l.innerHTML=h._iconfont_svg_string_5200172,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(a=document.body).firstChild?d(l,a.firstChild):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(o,0):(v=function(){document.removeEventListener("DOMContentLoaded",v,!1),o()},document.addEventListener("DOMContentLoaded",v,!1)):document.attachEvent&&(t=o,i=h.document,c=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,e())})}function e(){c||(c=!0,t())}function m(){try{i.documentElement.doScroll("left")}catch(a){return void setTimeout(m,50)}e()}})(window); \ No newline at end of file +window._iconfont_svg_string_5200172='',(h=>{var a=(l=(l=document.getElementsByTagName("script"))[l.length-1]).getAttribute("data-injectcss"),l=l.getAttribute("data-disable-injectsvg");if(!l){var o,v,t,i,c,d=function(a,l){l.parentNode.insertBefore(a,l)};if(a&&!h.__iconfont__svg__cssinject__){h.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}o=function(){var a,l=document.createElement("div");l.innerHTML=h._iconfont_svg_string_5200172,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(a=document.body).firstChild?d(l,a.firstChild):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(o,0):(v=function(){document.removeEventListener("DOMContentLoaded",v,!1),o()},document.addEventListener("DOMContentLoaded",v,!1)):document.attachEvent&&(t=o,i=h.document,c=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,e())})}function e(){c||(c=!0,t())}function m(){try{i.documentElement.doScroll("left")}catch(a){return void setTimeout(m,50)}e()}})(window); \ No newline at end of file diff --git a/ui/src/components/business/folder-tree/index.vue b/ui/src/components/business/folder-tree/index.vue index 5736ad263c2..47541b01cf7 100644 --- a/ui/src/components/business/folder-tree/index.vue +++ b/ui/src/components/business/folder-tree/index.vue @@ -82,10 +82,17 @@ const sortOptions: { label: string; value: FolderSort; divided?: boolean }[] = [ { label: '按创建时间降序', value: FOLDER_SORT.CREATE_TIME_DESC }, { label: '按名称升序', value: FOLDER_SORT.NAME_ASC, divided: true }, { label: '按名称降序', value: FOLDER_SORT.NAME_DESC }, - { label: '按用户拖拽排序', value: FOLDER_SORT.CUSTOM, divided: true }, + { label: '按拖拽排序', value: FOLDER_SORT.CUSTOM, divided: true }, ] const currentSort = ref(FOLDER_SORT.CREATE_TIME_DESC) +const currentSortIcon = computed(() => { + if (currentSort.value === FOLDER_SORT.CUSTOM) return 'icon_drag_outlined' + if (currentSort.value === FOLDER_SORT.CREATE_TIME_ASC || currentSort.value === FOLDER_SORT.NAME_ASC) { + return 'icon_sort-a-to-z_outlined' + } + return 'icon_sort-z-to-a_outlined' +}) const sortTreeData = computed(() => { return sortFolders(folderTreeData.value, FOLDER_ENTRY_ID.ALL) @@ -354,8 +361,9 @@ defineExpose({ refresh: loadFolders, openCreate: handleOpenCreateFolder })
+ - +