Skip to content

Commit 4ccbd2a

Browse files
committed
fix(ui): Fix Drag Upload File Knowlegebase status check
1 parent 5129105 commit 4ccbd2a

File tree

1 file changed

+61
-12
lines changed

1 file changed

+61
-12
lines changed

frontend/src/views/platform/index.vue

Lines changed: 61 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,39 +11,88 @@
1111
<script setup lang="ts">
1212
import Menu from '@/components/menu.vue'
1313
import { ref } from 'vue';
14-
import { useRouter } from 'vue-router'
14+
import { useRouter, useRoute } from 'vue-router'
1515
import { storeToRefs } from "pinia";
1616
import { knowledgeStore } from "@/stores/knowledge";
1717
const usemenuStore = knowledgeStore();
1818
import useKnowledgeBase from '@/hooks/useKnowledgeBase'
1919
import UploadMask from '@/components/upload-mask.vue'
20+
import { getKnowledgeBaseById } from '@/api/knowledge-base/index'
21+
import { MessagePlugin } from 'tdesign-vue-next'
2022
let { requestMethod } = useKnowledgeBase()
2123
const router = useRouter();
24+
const route = useRoute();
2225
let ismask = ref(false)
2326
let dropzone = ref();
2427
let uploadInput = ref();
25-
const dragover = (event) => {
28+
29+
// 获取当前知识库ID
30+
const getCurrentKbId = async (): Promise<string | null> => {
31+
let kbId = (route.params as any)?.kbId as string
32+
if (!kbId && route.name === 'chat' && (route.params as any)?.kbId) {
33+
kbId = (route.params as any).kbId
34+
}
35+
return kbId || null
36+
}
37+
38+
// 检查知识库初始化状态
39+
const checkKnowledgeBaseInitialization = async (): Promise<boolean> => {
40+
const currentKbId = await getCurrentKbId();
41+
42+
if (!currentKbId) {
43+
MessagePlugin.error("缺少知识库ID");
44+
return false;
45+
}
46+
47+
try {
48+
const kbResponse = await getKnowledgeBaseById(currentKbId);
49+
const kb = kbResponse.data;
50+
51+
// 检查知识库是否已初始化(有 EmbeddingModelID 和 SummaryModelID)
52+
if (!kb.embedding_model_id || kb.embedding_model_id === '' ||
53+
!kb.summary_model_id || kb.summary_model_id === '') {
54+
MessagePlugin.warning("该知识库尚未完成初始化配置,请先前往设置页面配置模型信息后再上传文件");
55+
return false;
56+
}
57+
return true;
58+
} catch (error) {
59+
console.error('获取知识库信息失败:', error);
60+
MessagePlugin.error("获取知识库信息失败,无法上传文件");
61+
return false;
62+
}
63+
}
64+
65+
const dragover = (event: DragEvent) => {
2666
event.preventDefault();
2767
ismask.value = true;
2868
if (((window.innerWidth - event.clientX) < 50) || ((window.innerHeight - event.clientY) < 50) || event.clientX < 50 || event.clientY < 50) {
2969
ismask.value = false
3070
}
3171
}
32-
const drop = (event) => {
72+
const drop = async (event: DragEvent) => {
3373
event.preventDefault();
3474
ismask.value = false
35-
const DataTransferItemList = event.dataTransfer.items;
36-
for (const dataTransferItem of DataTransferItemList) {
37-
const fileEntry = dataTransferItem.webkitGetAsEntry();
38-
if (fileEntry) {
39-
fileEntry.file((file: file) => {
40-
requestMethod(file, uploadInput)
41-
router.push('/platform/knowledge-bases?upload=true')
42-
})
75+
76+
// 检查知识库初始化状态
77+
const isInitialized = await checkKnowledgeBaseInitialization();
78+
if (!isInitialized) {
79+
return;
80+
}
81+
82+
const DataTransferItemList = event.dataTransfer?.items;
83+
if (DataTransferItemList) {
84+
for (const dataTransferItem of DataTransferItemList) {
85+
const fileEntry = dataTransferItem.webkitGetAsEntry() as FileSystemFileEntry | null;
86+
if (fileEntry) {
87+
fileEntry.file((file: File) => {
88+
requestMethod(file, uploadInput)
89+
// 修复页面跳转问题:不跳转,让上传成功后的逻辑处理
90+
})
91+
}
4392
}
4493
}
4594
}
46-
const dragstart = (event) => {
95+
const dragstart = (event: DragEvent) => {
4796
event.preventDefault();
4897
}
4998
</script>

0 commit comments

Comments
 (0)