修复展示bug
This commit is contained in:
@@ -60,13 +60,40 @@ const filteredPresets = computed(() => {
|
|||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
// 搜索过滤
|
// 搜索过滤 - 支持名称、内容、描述、标签、文件夹搜索
|
||||||
if (q) {
|
if (q) {
|
||||||
list = list.filter((p) =>
|
list = list.filter((p) => {
|
||||||
p.name.toLowerCase().includes(q) ||
|
// 基本搜索:名称、内容、描述
|
||||||
|
const basicMatch = p.name.toLowerCase().includes(q) ||
|
||||||
p.text.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"/>
|
<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"/>
|
<path d="m21 21-4.35-4.35" stroke="currentColor" stroke-width="2"/>
|
||||||
</svg>
|
</svg>
|
||||||
<input v-model="presetSearch" placeholder="搜索预设..." />
|
<input v-model="presetSearch" placeholder="搜索预设名称、内容、标签、文件夹..." />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="pd-sort-controls">
|
<div class="pd-sort-controls">
|
||||||
@@ -484,6 +511,7 @@ onUnmounted(() => {
|
|||||||
<div class="pd-footer">
|
<div class="pd-footer">
|
||||||
<div class="pd-tips">
|
<div class="pd-tips">
|
||||||
<span>💡 双击预设名称快速加载</span>
|
<span>💡 双击预设名称快速加载</span>
|
||||||
|
<span>🔍 支持搜索名称、内容、标签、文件夹</span>
|
||||||
<span>⌨️ ESC 关闭面板</span>
|
<span>⌨️ ESC 关闭面板</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -70,10 +70,11 @@ const filteredPresets = computed(() => {
|
|||||||
// 按文件夹过滤
|
// 按文件夹过滤
|
||||||
if (selectedFolder.value) {
|
if (selectedFolder.value) {
|
||||||
presets = presets.filter(p => p.folderId === 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);
|
presets = presets.filter(p => !p.folderId);
|
||||||
}
|
}
|
||||||
|
// 如果 selectedFolder.value === null,则显示所有预设(不过滤)
|
||||||
|
|
||||||
// 按搜索关键词过滤
|
// 按搜索关键词过滤
|
||||||
if (searchQuery.value.trim()) {
|
if (searchQuery.value.trim()) {
|
||||||
@@ -392,7 +393,8 @@ onMounted(() => {
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select v-model="selectedFolder" class="pm-folder-filter">
|
<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">
|
<option v-for="folder in folderTree" :key="folder.id" :value="folder.id">
|
||||||
📁 {{ folder.name }} ({{ folder.presetCount }})
|
📁 {{ folder.name }} ({{ folder.presetCount }})
|
||||||
</option>
|
</option>
|
||||||
|
|||||||
Reference in New Issue
Block a user