From 7ef7b97232dd0cd02822c492a739827158b5b3d6 Mon Sep 17 00:00:00 2001 From: kjqwer <2990346238@qq.com> Date: Tue, 11 Nov 2025 11:03:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B1=95=E7=A4=BAbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/PresetDropdown.vue | 42 +++++++++++++++++++++++++------ src/components/PresetManager.vue | 6 +++-- 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/src/components/PresetDropdown.vue b/src/components/PresetDropdown.vue index 51dd98d..4364265 100644 --- a/src/components/PresetDropdown.vue +++ b/src/components/PresetDropdown.vue @@ -60,13 +60,40 @@ const filteredPresets = computed(() => { return true; }); - // 搜索过滤 + // 搜索过滤 - 支持名称、内容、描述、标签、文件夹搜索 if (q) { - list = list.filter((p) => - p.name.toLowerCase().includes(q) || - p.text.toLowerCase().includes(q) || - p.description?.toLowerCase().includes(q) - ); + list = list.filter((p) => { + // 基本搜索:名称、内容、描述 + const basicMatch = p.name.toLowerCase().includes(q) || + p.text.toLowerCase().includes(q) || + p.description?.toLowerCase().includes(q); + + // 标签搜索(如果是扩展预设) + let tagMatch = false; + if (p.isExtended) { + const extendedPreset = store.extendedPresets.find(ep => ep.name === p.name && ep.type === p.type); + if (extendedPreset?.tags) { + tagMatch = extendedPreset.tags.some(tag => tag.toLowerCase().includes(q)); + } + } + + // 文件夹搜索(如果是扩展预设) + let folderMatch = false; + if (p.isExtended) { + const extendedPreset = store.extendedPresets.find(ep => ep.name === p.name && ep.type === p.type); + if (extendedPreset?.folderId) { + const folder = store.presetFolders.find(f => f.id === extendedPreset.folderId); + if (folder) { + folderMatch = folder.name.toLowerCase().includes(q); + } + } + } + + // 类型搜索 + const typeMatch = getTypeLabel(p.type).toLowerCase().includes(q); + + return basicMatch || tagMatch || folderMatch || typeMatch; + }); } // 排序 @@ -372,7 +399,7 @@ onUnmounted(() => { - +
@@ -484,6 +511,7 @@ onUnmounted(() => { diff --git a/src/components/PresetManager.vue b/src/components/PresetManager.vue index 642dda2..5b02c6e 100644 --- a/src/components/PresetManager.vue +++ b/src/components/PresetManager.vue @@ -70,10 +70,11 @@ const filteredPresets = computed(() => { // 按文件夹过滤 if (selectedFolder.value) { presets = presets.filter(p => p.folderId === selectedFolder.value); - } else if (selectedFolder.value === null) { + } else if (selectedFolder.value === '') { // 显示未分类的预设 presets = presets.filter(p => !p.folderId); } + // 如果 selectedFolder.value === null,则显示所有预设(不过滤) // 按搜索关键词过滤 if (searchQuery.value.trim()) { @@ -392,7 +393,8 @@ onMounted(() => {