From bb2503ed5613cc39582acf1dd516fa7ac47540e7 Mon Sep 17 00:00:00 2001 From: liudong <liudong> Date: 星期六, 24 八月 2024 20:31:54 +0800 Subject: [PATCH] 知识库列表修改 --- src/views/sessionManager/components/updataFile.vue | 88 ++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 80 insertions(+), 8 deletions(-) diff --git a/src/views/sessionManager/components/updataFile.vue b/src/views/sessionManager/components/updataFile.vue index 7457a25..47f35bd 100644 --- a/src/views/sessionManager/components/updataFile.vue +++ b/src/views/sessionManager/components/updataFile.vue @@ -31,13 +31,14 @@ ref="uploadRef" @change="onChange" multiple + :limit="1" /> <div style="width: 100%;margin-top: 10px;display: flex; justify-content: space-between;" class="upload-wrap"> <div> <span>瑙f瀽鏂规硶: </span> - <a-radio-group v-model="parser_id" style="width: 500px;"> + <a-radio-group v-model="parser_id" style="width: 400px;" @change="parserChange"> <a-popover title="" - v-for="item in parser_ids.filter(val => parser_configs.includes(val.name)).reverse().slice(0,4).reverse()" + v-for="item in filterData" :key="item.value" > <a-radio @@ -74,7 +75,7 @@ import { onMounted, onBeforeMount, reactive, ref, computed, watch } from "vue"; import axios from "axios"; import { Message } from "@arco-design/web-vue"; -import { uploadWithoutKb } from "@/api/session"; +import { addSessionApi, getParseMethodsListApi, getSessionDetailsApi, uploadWithoutKb } from "@/api/session"; const visible = ref(false); const loading = ref(false); @@ -83,6 +84,7 @@ const filesBtn = ref(null); const onFileSelectedLoading = ref(false); const parser_id = ref(""); +const parseridConfig = ref(false); const uploaditemList = ref([]); const activeSessionId = ref(''); let kbtenantInfo = reactive({ @@ -207,6 +209,7 @@ parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丒XCEL銆丳DF銆乀XT' }, ]); +const parser_idsArr = ref([]); const uploadList = ref([]); const props = defineProps(["sessionId"]); const emit = defineEmits(["selectFileCallback"]); @@ -214,6 +217,17 @@ const files = ref([]); const acceptNameList = computed(() => { return ".word, .pdf, .ppt, .excel, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .pptx, .ppt, .pdf, .mp4, .avi, .mp3,.wav, .wma, .wmv, .rm,"; +}); + +const filterData = computed(() => { + const result = parser_ids.value.filter(val => parser_configs.value.includes(val.name)).reverse().slice(0,4).reverse(); + result.unshift({ + name: '鏅鸿兘璇嗗埆', + value: '', + parser_config_str: '', + parser_config: '' + }); + return result; }); const init = () => { @@ -224,6 +238,7 @@ // value: value1 // }; // }); + getParseMethodsList(); } const chooseParser = (item) => { @@ -232,14 +247,57 @@ const onChange = (fileList) => { files.value = fileList; + files.value.forEach((item) => { + + }); + }; +const parserChange = ()=>{ + parseridConfig.value = false; +} const visibleChange = (e) => { e.stopPropagation(); visible.value = !visible.value; } -const upDataFile = () => { + +const getIconByExtension = (extension) => { + const fileExtension = ref(''); + fileExtension.value = extension.split('.').pop(); + let type = ''; + parser_idsArr.value.forEach((item)=>{ + // 鍖呭惈鍏冪礌 + if (item.formats.includes(fileExtension.value)){ + type = item.id; + } + }) + return type; +}; + +const upDataFile = async () => { + // if (!activeSessionId.value) { + // //鏂板缓浼氳瘽 + // const res = await addSessionApi({ + // dialog_id: '', + // conversation_desc: '', + // }); + // // console.log(res, "res"); + // if (res.code == 200) { + // // console.log(res.data.conversation_id); + // activeSessionId.value = res.data?.conversation_id; + // const { code, data } = await getSessionDetailsApi(res.data?.conversation_id); + // if (code === 200) { + // console.log(data, '鏂板缓浼氳瘽璇︽儏'); + // } + // } else { + // Message.error('鍒涘缓浼氳瘽澶辫触锛岃閲嶈瘯'); + // } + // } + + + + console.log(files.value, "files"); console.log(parser_ids.value, "瑙f瀽鏂规硶"); if(files.value.length == 0){ @@ -258,8 +316,12 @@ for (let i = 0; i < files.value.length; i++) { formData.append('file', files.value[i].file); formData.append('conversation_id', activeSessionId.value); - formData.append('parser_id', parser_id.value); formData.append('parser_config', ''); + if(!parser_id.value){ + formData.append('parser_id', getIconByExtension(files.value[i].name)); + }else{ + formData.append('parser_id', parser_id.value); + } } uploadWithoutKb(formData).then((res) => { onFileSelectedLoading.value = false; @@ -272,9 +334,6 @@ Message.error('涓婁紶澶辫触'); } }); - - // cancel(); - // emit('selectFileCallback', uploaditemList.value); @@ -292,6 +351,19 @@ cancel }) +const getParseMethodsList = async () => { + let res = await getParseMethodsListApi(); + parser_ids.value = res.data.map((item) => { + return { + name: item.name, + value: item.id, + parser_config: '', + parser_config_str: item.parser_config_str + }; + }); + parser_idsArr.value = res.data; +} + onBeforeMount(() => { init(); -- Gitblit v1.8.0