From 6399d6ba0bca92e50ee8df92aba2a5a41cef694e Mon Sep 17 00:00:00 2001 From: wizardchen Date: Mon, 12 Jan 2026 15:37:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3FAQ=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E4=BD=BF=E7=94=A8seq=5Fid=E8=80=8C=E9=9D=9Ei?= =?UTF-8?q?d=E7=9A=84=E7=B1=BB=E5=9E=8B=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/api/knowledge-base/index.ts | 2 +- .../knowledge/components/FAQEntryManager.vue | 29 +++++++++---------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/frontend/src/api/knowledge-base/index.ts b/frontend/src/api/knowledge-base/index.ts index 4c5161d8..d03ac55d 100644 --- a/frontend/src/api/knowledge-base/index.ts +++ b/frontend/src/api/knowledge-base/index.ts @@ -155,7 +155,7 @@ const buildQuery = (params?: Record) => { export function listFAQEntries( kbId: string, - params?: { page?: number; page_size?: number; tag_id?: string; keyword?: string }, + params?: { page?: number; page_size?: number; tag_id?: number; keyword?: string }, ) { const query = buildQuery(params); return get(`/api/v1/knowledge-bases/${kbId}/faq/entries${query}`); diff --git a/frontend/src/views/knowledge/components/FAQEntryManager.vue b/frontend/src/views/knowledge/components/FAQEntryManager.vue index ee43f4d5..b9491604 100644 --- a/frontend/src/views/knowledge/components/FAQEntryManager.vue +++ b/frontend/src/views/knowledge/components/FAQEntryManager.vue @@ -285,8 +285,8 @@ v-for="tag in filteredTags" :key="tag.id" class="faq-tag-item" - :class="{ active: selectedTagId === tag.id, editing: editingTagId === tag.id }" - @click="handleTagRowClick(tag.id)" + :class="{ active: selectedTagId === tag.seq_id, editing: editingTagId === tag.id }" + @click="handleTagRowClick(tag.seq_id)" >
@@ -1382,8 +1382,8 @@ type TagInputInstance = ComponentPublicInstance<{ focus: () => void; select: () const tagList = ref([]) const tagLoading = ref(false) const tagListRef = ref(null) -// Selected tag ID for filtering (empty string means show all) -const selectedTagId = ref('') +// Selected tag seq_id for filtering (0 means show all) +const selectedTagId = ref(0) const overallFAQTotal = ref(0) const tagSearchQuery = ref('') const TAG_PAGE_SIZE = 20 @@ -1617,22 +1617,21 @@ const getTagName = (tagId?: number) => { return tagMap.value[tagId]?.name || (t('knowledgeBase.untagged') || '未分类') } -const handleTagFilterChange = (value: string) => { +const handleTagFilterChange = (value: number) => { selectedTagId.value = value } -const handleTagRowClick = (tagId: string) => { - const normalizedId = String(tagId) - if (editingTagId.value && editingTagId.value !== normalizedId) { +const handleTagRowClick = (tagSeqId: number) => { + if (editingTagId.value) { cancelEditTag() } if (creatingTag.value) { cancelCreateTag() } - if (selectedTagId.value === normalizedId) { + if (selectedTagId.value === tagSeqId) { return } - handleTagFilterChange(normalizedId) + handleTagFilterChange(tagSeqId) } const startCreateTag = () => { @@ -1741,10 +1740,10 @@ const confirmDeleteTag = (tag: any) => { try { await deleteKnowledgeBaseTag(props.kbId, tag.id, { force: true }) MessagePlugin.success(t('knowledgeBase.tagDeleteSuccess')) - if (selectedTagId.value === tag.id) { + if (selectedTagId.value === tag.seq_id) { // Reset to show all entries when current tag is deleted - selectedTagId.value = '' - handleTagFilterChange('') + selectedTagId.value = 0 + handleTagFilterChange(0) } await loadTags() await loadEntries() @@ -2464,7 +2463,7 @@ const startPolling = (taskId: string) => { } MessagePlugin.success(t('knowledgeEditor.faqImport.importSuccess')) // 清除筛选条件,确保用户能看到所有新导入的数据 - selectedTagId.value = '' + selectedTagId.value = 0 entrySearchKeyword.value = '' overallFAQTotal.value = 0 // Reset to trigger re-fetch await loadEntries() @@ -2910,7 +2909,7 @@ watch( async (newKbId) => { currentPage = 1 hasMore.value = true - selectedTagId.value = '' + selectedTagId.value = 0 overallFAQTotal.value = 0 // Reset to trigger re-fetch cancelCreateTag() cancelEditTag()