父文件选择优化,seo优化

This commit is contained in:
2025-11-29 13:44:18 +08:00
parent df58469d4b
commit f98b368793
4 changed files with 395 additions and 34 deletions
+14 -32
View File
@@ -5,6 +5,7 @@ import type { ExtendedPreset, PresetFolder, PresetType } from '../types';
import NotificationToast from './NotificationToast.vue';
import PresetSidebar from './preset/PresetSidebar.vue';
import PresetList from './preset/PresetList.vue';
import FolderSelector from './preset/FolderSelector.vue';
const store = usePromptStore();
@@ -133,26 +134,6 @@ const flattenedFolders = computed(() => {
return res;
});
// Parent options for folder dialog (exclude self and children)
const flattenedParentOptions = computed(() => {
const exclude = new Set<string>();
if (editingFolder.value) {
exclude.add(editingFolder.value.id);
// Helper to find descendants
const all = store.presetFolders || [];
function walk(id: string) {
const children = all.filter(f => f.parentId === id);
for (const c of children) {
exclude.add(c.id);
walk(c.id);
}
}
walk(editingFolder.value.id);
}
return flattenedFolders.value.filter(f => !exclude.has(f.id));
});
const allPresetsCount = computed(() => (store.extendedPresets || []).length);
const uncategorizedCount = computed(() => (store.extendedPresets || []).filter(p => !p.folderId).length);
@@ -480,12 +461,12 @@ onMounted(() => {
</div>
<div class="form-group">
<label>文件夹</label>
<select v-model="presetForm.folderId">
<option value="">( - 未分类)</option>
<option v-for="f in flattenedFolders" :key="f.id" :value="f.id">
{{ f.label }}
</option>
</select>
<FolderSelector
v-model="presetForm.folderId"
:tree="folderTree"
:flattened="flattenedFolders"
root-label="( - 未分类)"
/>
</div>
</div>
@@ -526,12 +507,13 @@ onMounted(() => {
<div class="form-group">
<label>父文件夹</label>
<select v-model="folderForm.parentId">
<option value="">( - 根文件夹)</option>
<option v-for="f in flattenedParentOptions" :key="f.id" :value="f.id">
{{ f.label }}
</option>
</select>
<FolderSelector
v-model="folderForm.parentId"
:tree="folderTree"
:flattened="flattenedFolders"
:exclude-id="editingFolder?.id"
root-label="( - 根文件夹)"
/>
</div>
<div class="form-group">