修复展示bug

This commit is contained in:
2025-11-11 11:03:34 +08:00
parent c30cfd0979
commit 7ef7b97232
2 changed files with 39 additions and 9 deletions
+34 -6
View File
@@ -60,13 +60,40 @@ const filteredPresets = computed(() => {
return true;
});
// 搜索过滤
// 搜索过滤 - 支持名称、内容、描述、标签、文件夹搜索
if (q) {
list = list.filter((p) =>
p.name.toLowerCase().includes(q) ||
list = list.filter((p) => {
// 基本搜索:名称、内容、描述
const basicMatch = p.name.toLowerCase().includes(q) ||
p.text.toLowerCase().includes(q) ||
p.description?.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(() => {
<circle cx="11" cy="11" r="8" stroke="currentColor" stroke-width="2"/>
<path d="m21 21-4.35-4.35" stroke="currentColor" stroke-width="2"/>
</svg>
<input v-model="presetSearch" placeholder="搜索预设..." />
<input v-model="presetSearch" placeholder="搜索预设名称、内容、标签、文件夹..." />
</div>
<div class="pd-sort-controls">
@@ -484,6 +511,7 @@ onUnmounted(() => {
<div class="pd-footer">
<div class="pd-tips">
<span>💡 双击预设名称快速加载</span>
<span>🔍 支持搜索名称内容标签文件夹</span>
<span> ESC 关闭面板</span>
</div>
</div>
+4 -2
View File
@@ -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(() => {
</select>
<select v-model="selectedFolder" class="pm-folder-filter">
<option :value="null">未分类</option>
<option :value="null">所有预设</option>
<option value="">未分类</option>
<option v-for="folder in folderTree" :key="folder.id" :value="folder.id">
📁 {{ folder.name }} ({{ folder.presetCount }})
</option>