From 0f74d0721b7407709b6bdd45dc6b58970820536b Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 09 六月 2026 10:03:46 +0800
Subject: [PATCH] docs(knowledge-base): 更新知识库RAG向量检索功能前端联调文档
---
src/views/collaborativeApproval/knowledgeBase/index.vue | 72 +++++++++++++++++------------------
1 files changed, 35 insertions(+), 37 deletions(-)
diff --git a/src/views/collaborativeApproval/knowledgeBase/index.vue b/src/views/collaborativeApproval/knowledgeBase/index.vue
index 669b260..ab78893 100644
--- a/src/views/collaborativeApproval/knowledgeBase/index.vue
+++ b/src/views/collaborativeApproval/knowledgeBase/index.vue
@@ -256,6 +256,7 @@
:action="uploadUrl"
:headers="uploadHeaders"
:on-success="handleUploadSuccess"
+ :on-change="handleFileChange"
:before-upload="beforeUpload"
:accept="acceptTypes"
:file-list="uploadFileList"
@@ -398,9 +399,10 @@
updateKnowledgeBase,
getVectorStatus,
reprocessVector,
- knowledgeChat
+ knowledgeChat,
+ saveKnowledgeBaseFiles,
+ deleteKnowledgeBaseFile
} from "@/api/collaborativeApproval/knowledgeBase.js";
-import { attachmentList, createAttachment, deleteAttachment } from "@/api/basicData/storageAttachment.js";
import useUserStore from '@/store/modules/user';
import { userListNoPageByTenantId } from '@/api/system/user.js';
import { getToken } from '@/utils/auth';
@@ -874,33 +876,17 @@
refreshFileList();
};
-// 鍒锋柊鏂囦欢鍒楄〃
+// 鍒锋柊鏂囦欢鍒楄〃锛堢洿鎺ヤ娇鐢ㄥ悜閲忕姸鎬佹帴鍙o級
const refreshFileList = async () => {
if (!selectedKnowledgeBaseId.value) return;
fileLoading.value = true;
try {
- // 鑾峰彇闄勪欢鍒楄〃
- const attachmentRes = await attachmentList({
- recordType: 'knowledge_base',
- recordId: selectedKnowledgeBaseId.value,
- application: 'rag_file'
- });
-
- // 鑾峰彇鍚戦噺鍖栫姸鎬�
- const vectorRes = await getVectorStatus(selectedKnowledgeBaseId.value);
-
- // 鍚堝苟鏁版嵁
- const vectorMap = {};
- (vectorRes.data || []).forEach(v => {
- vectorMap[v.storageBlobId] = v;
- });
-
- fileList.value = (attachmentRes.data || []).map(file => ({
- ...file,
- vectorStatus: vectorMap[file.storageBlobId]?.vectorStatus ?? 0,
- chunkCount: vectorMap[file.storageBlobId]?.chunkCount ?? 0,
- vectorId: vectorMap[file.storageBlobId]?.id
+ const res = await getVectorStatus(selectedKnowledgeBaseId.value);
+ fileList.value = (res.data || []).map(item => ({
+ ...item,
+ name: item.fileName,
+ vectorId: item.id
}));
} catch (error) {
console.error('鑾峰彇鏂囦欢鍒楄〃澶辫触:', error);
@@ -924,23 +910,35 @@
const handleUploadSuccess = async (response, file) => {
if (response.code === 200) {
uploadedBlobs.value.push(...response.data);
- await saveAttachment();
- ElMessage.success('鏂囦欢涓婁紶鎴愬姛锛屾鍦ㄥ鐞嗗悜閲忓寲...');
- uploadedBlobs.value = [];
- refreshFileList();
} else {
ElMessage.error(response.msg || '涓婁紶澶辫触');
}
};
-// 淇濆瓨闄勪欢鍏宠仈鍒扮煡璇嗗簱
-const saveAttachment = async () => {
- await createAttachment({
- recordType: 'knowledge_base',
- recordId: selectedKnowledgeBaseId.value,
- application: 'rag_file',
- storageBlobDTOs: uploadedBlobs.value.map(b => b.id)
- });
+// 涓婁紶鏂囦欢鍙樺寲澶勭悊锛堢敤浜庢娴嬫墍鏈夋枃浠朵笂浼犲畬鎴愶級
+const handleFileChange = (file, fileList) => {
+ // 褰撴枃浠剁姸鎬佸彉鍖栦笖娌℃湁姝e湪涓婁紶鐨勬枃浠舵椂锛岀粺涓�鎻愪氦
+ if (file.status === 'success' && fileList.every(f => f.status === 'success' || f.status === 'fail')) {
+ if (uploadedBlobs.value.length > 0) {
+ saveKnowledgeBaseFilesAndRefresh();
+ }
+ }
+};
+
+// 淇濆瓨鐭ヨ瘑搴撴枃浠跺叧鑱斿苟瑙﹀彂鍚戦噺鍖�
+const saveKnowledgeBaseFilesAndRefresh = async () => {
+ try {
+ await saveKnowledgeBaseFiles({
+ knowledgeBaseId: selectedKnowledgeBaseId.value,
+ storageBlobIds: uploadedBlobs.value.map(b => b.id)
+ });
+ ElMessage.success('鏂囦欢涓婁紶鎴愬姛锛屾鍦ㄥ鐞嗗悜閲忓寲...');
+ } catch (error) {
+ ElMessage.error('淇濆瓨鏂囦欢鍏宠仈澶辫触');
+ } finally {
+ uploadedBlobs.value = [];
+ refreshFileList();
+ }
};
// 鑾峰彇鏂囦欢绫诲瀷
@@ -987,7 +985,7 @@
type: 'warning'
});
- await deleteAttachment([row.id]);
+ await deleteKnowledgeBaseFile([row.id]);
ElMessage.success('鍒犻櫎鎴愬姛');
refreshFileList();
} catch (error) {
--
Gitblit v1.9.3