mirror of
https://github.com/Tencent/WeKnora.git
synced 2025-11-25 03:15:00 +08:00
fix(ui): Fix Drag Upload File Knowlegebase status check
This commit is contained in:
@@ -11,39 +11,88 @@
|
||||
<script setup lang="ts">
|
||||
import Menu from '@/components/menu.vue'
|
||||
import { ref } from 'vue';
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useRouter, useRoute } from 'vue-router'
|
||||
import { storeToRefs } from "pinia";
|
||||
import { knowledgeStore } from "@/stores/knowledge";
|
||||
const usemenuStore = knowledgeStore();
|
||||
import useKnowledgeBase from '@/hooks/useKnowledgeBase'
|
||||
import UploadMask from '@/components/upload-mask.vue'
|
||||
import { getKnowledgeBaseById } from '@/api/knowledge-base/index'
|
||||
import { MessagePlugin } from 'tdesign-vue-next'
|
||||
let { requestMethod } = useKnowledgeBase()
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
let ismask = ref(false)
|
||||
let dropzone = ref();
|
||||
let uploadInput = ref();
|
||||
const dragover = (event) => {
|
||||
|
||||
// 获取当前知识库ID
|
||||
const getCurrentKbId = async (): Promise<string | null> => {
|
||||
let kbId = (route.params as any)?.kbId as string
|
||||
if (!kbId && route.name === 'chat' && (route.params as any)?.kbId) {
|
||||
kbId = (route.params as any).kbId
|
||||
}
|
||||
return kbId || null
|
||||
}
|
||||
|
||||
// 检查知识库初始化状态
|
||||
const checkKnowledgeBaseInitialization = async (): Promise<boolean> => {
|
||||
const currentKbId = await getCurrentKbId();
|
||||
|
||||
if (!currentKbId) {
|
||||
MessagePlugin.error("缺少知识库ID");
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
const kbResponse = await getKnowledgeBaseById(currentKbId);
|
||||
const kb = kbResponse.data;
|
||||
|
||||
// 检查知识库是否已初始化(有 EmbeddingModelID 和 SummaryModelID)
|
||||
if (!kb.embedding_model_id || kb.embedding_model_id === '' ||
|
||||
!kb.summary_model_id || kb.summary_model_id === '') {
|
||||
MessagePlugin.warning("该知识库尚未完成初始化配置,请先前往设置页面配置模型信息后再上传文件");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error('获取知识库信息失败:', error);
|
||||
MessagePlugin.error("获取知识库信息失败,无法上传文件");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
const dragover = (event: DragEvent) => {
|
||||
event.preventDefault();
|
||||
ismask.value = true;
|
||||
if (((window.innerWidth - event.clientX) < 50) || ((window.innerHeight - event.clientY) < 50) || event.clientX < 50 || event.clientY < 50) {
|
||||
ismask.value = false
|
||||
}
|
||||
}
|
||||
const drop = (event) => {
|
||||
const drop = async (event: DragEvent) => {
|
||||
event.preventDefault();
|
||||
ismask.value = false
|
||||
const DataTransferItemList = event.dataTransfer.items;
|
||||
for (const dataTransferItem of DataTransferItemList) {
|
||||
const fileEntry = dataTransferItem.webkitGetAsEntry();
|
||||
if (fileEntry) {
|
||||
fileEntry.file((file: file) => {
|
||||
requestMethod(file, uploadInput)
|
||||
router.push('/platform/knowledge-bases?upload=true')
|
||||
})
|
||||
|
||||
// 检查知识库初始化状态
|
||||
const isInitialized = await checkKnowledgeBaseInitialization();
|
||||
if (!isInitialized) {
|
||||
return;
|
||||
}
|
||||
|
||||
const DataTransferItemList = event.dataTransfer?.items;
|
||||
if (DataTransferItemList) {
|
||||
for (const dataTransferItem of DataTransferItemList) {
|
||||
const fileEntry = dataTransferItem.webkitGetAsEntry() as FileSystemFileEntry | null;
|
||||
if (fileEntry) {
|
||||
fileEntry.file((file: File) => {
|
||||
requestMethod(file, uploadInput)
|
||||
// 修复页面跳转问题:不跳转,让上传成功后的逻辑处理
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
const dragstart = (event) => {
|
||||
const dragstart = (event: DragEvent) => {
|
||||
event.preventDefault();
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user