From 9343c110d3b664f98afdaff6f8af372c877baaa1 Mon Sep 17 00:00:00 2001 From: ygx Date: Sun, 29 Mar 2026 15:32:25 +0800 Subject: [PATCH] feat --- src/api/kb/document.ts | 17 ++++++++++------- src/views/ops/pages/kb/items/index.vue | 25 ++++++++++--------------- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/src/api/kb/document.ts b/src/api/kb/document.ts index 16fcf31..6fa3ffb 100644 --- a/src/api/kb/document.ts +++ b/src/api/kb/document.ts @@ -192,19 +192,22 @@ export const fetchApprovedDocumentList = (params?: FetchDocumentListParams) => { }; /** 收藏文档 */ -export const favoriteDocument = (id: number) => { - return request.post>("/Kb/v1/favorite/create", { resource_type: 'document', resource_id: id }); +export const favoriteDocument = (id: number, remarks?: string) => { + return request.post>("/Kb/v1/favorite/collect", { + resource_type: 'document', + resource_id: id, + remarks, + }); }; /** 取消收藏文档 */ export const unfavoriteDocument = (id: number) => { - return request.delete>("/Kb/v1/favorite/delete", { data: { resource_type: 'document', resource_id: id } }); + return request.post>("/Kb/v1/favorite/uncollect", { + resource_type: 'document', + resource_id: id, + }); }; -/** 检查文档是否已收藏 */ -export const checkFavorite = (id: number) => { - return request.get>(`/Kb/v1/favorite/check`, { params: { resource_type: 'document', resource_id: id } }); -}; /** 下载文档 */ export const downloadDocument = (id: number) => { diff --git a/src/views/ops/pages/kb/items/index.vue b/src/views/ops/pages/kb/items/index.vue index 11a347c..5c9b6d4 100644 --- a/src/views/ops/pages/kb/items/index.vue +++ b/src/views/ops/pages/kb/items/index.vue @@ -318,7 +318,6 @@ import { moveToTrash, favoriteDocument, unfavoriteDocument, - checkFavorite, } from '@/api/kb/document' import { fetchCategoryList } from '@/api/kb/category' import { documentTypeOptions } from './config/options' @@ -454,12 +453,15 @@ const fetchData = async () => { const loadCategories = async () => { try { const res: any = await fetchCategoryList({ type: 'document' }) - if (res?.code === 0) { - categoryOptions.value = res.details.data.map((item: any) => ({ - label: item.name, - value: item.id, - })) + // 兼容多种API响应格式 + let categoryList: any[] = [] + if (res?.code === 0 && Array.isArray(res.details)) { + categoryList = res.details } + categoryOptions.value = categoryList.map((item: any) => ({ + label: item.name, + value: item.id, + })) } catch (error) { console.error('加载分类失败:', error) } @@ -501,15 +503,8 @@ const handleSelectDocument = async (doc: Document) => { const docData = res.details.resource || res.details currentDocument.value = docData - // 检查收藏状态 - if (docData.status === 'reviewed') { - try { - const favRes: any = await checkFavorite(doc.id) - isFavorited.value = favRes?.details?.is_favorited || false - } catch { - isFavorited.value = false - } - } + // 从文档详情中获取收藏状态 + isFavorited.value = docData.is_favorited || false } } catch (error) { console.error('获取文档详情失败:', error)