From a8f01f099dcc59e5b65d0aef8142890db562bcae Mon Sep 17 00:00:00 2001 From: Aqr-K <95741669+Aqr-K@users.noreply.github.com> Date: Sat, 30 Aug 2025 20:54:17 +0800 Subject: [PATCH] feat(file): Add an `ignoreCase` button. --- src/components/filebrowser/FileList.vue | 32 +++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/components/filebrowser/FileList.vue b/src/components/filebrowser/FileList.vue index 8d2adf50..28198b54 100644 --- a/src/components/filebrowser/FileList.vue +++ b/src/components/filebrowser/FileList.vue @@ -82,6 +82,9 @@ const items = ref([]) // 过滤条件 const filter = ref('') +// 是否忽略大小写 +const ignoreCase = ref(true) + // 重命名弹窗 const renamePopper = ref(false) @@ -113,10 +116,32 @@ const dropdownItems = ref<{ [key: string]: any }[]>([]) const progressActive = ref(false) // 目录过滤 -const dirs = computed(() => items.value.filter(item => item.type === 'dir' && item.name.includes(filter.value))) +const dirs = computed(() => + items.value.filter(item => { + if (item.type !== 'dir') return false + if (!filter.value) return true + + if (ignoreCase.value) { + return item.name.toLowerCase().includes(filter.value.toLowerCase()) + } else { + return item.name.includes(filter.value) + } + }), +) // 文件过滤 -const files = computed(() => items.value.filter(item => item.type === 'file' && item.name.includes(filter.value))) +const files = computed(() => + items.value.filter(item => { + if (item.type !== 'file') return false + if (!filter.value) return true + + if (ignoreCase.value) { + return item.name.toLowerCase().includes(filter.value.toLowerCase()) + } else { + return item.name.includes(filter.value) + } + }), +) // 是否文件 const isFile = computed(() => inProps.item.type == 'file') @@ -622,6 +647,9 @@ onMounted(() => { rounded /> + + + mdi-selection-remove mdi-select