From b4a7d2e10c252a619d2ff21eb87d68bc677eeaba Mon Sep 17 00:00:00 2001 From: yinbangzhong <zhongbangyin@126.com> Date: 星期六, 24 八月 2024 21:22:12 +0800 Subject: [PATCH] bug fix --- src/views/sessionManager/components/updataFile.vue | 165 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 135 insertions(+), 30 deletions(-) diff --git a/src/views/sessionManager/components/updataFile.vue b/src/views/sessionManager/components/updataFile.vue index 0caa68c..47f35bd 100644 --- a/src/views/sessionManager/components/updataFile.vue +++ b/src/views/sessionManager/components/updataFile.vue @@ -31,14 +31,15 @@ ref="uploadRef" @change="onChange" multiple + :limit="1" /> - <div style="width: 100%;margin-top: 10px;display: flex; justify-content: space-between;"> + <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"> + <a-radio-group v-model="parser_id" style="width: 400px;" @change="parserChange"> <a-popover title="" - v-for="item in parser_ids" - :key="item.value" + v-for="item in filterData" + :key="item.value" > <a-radio :value="item.value" @@ -50,6 +51,10 @@ </a-popover> </a-radio-group> </div> + <a-select :style="{width:'100px', margin: '0 10px'}" :default-value="['閫氱敤', '澶氭ā鎬�']" v-model="parser_configs" multiple size="small"> + <a-option v-for="item in parser_ids" :key="item.value">{{ item.name }}</a-option> + </a-select> + <p class="config-text">鏇村閰嶇疆</p> <a-button :loading="onFileSelectedLoading" @click="upDataFile" @@ -70,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); @@ -79,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({ @@ -107,7 +113,18 @@ "random_seed": 1500 } }, // 鐢ㄦ埛鍚� - qa: {}, + qa: { + "entity_types": [ + "organization", + "person", + "location", + "event", + "time" + ], + "raptor": { + "use_raptor": false + } + }, resume: {}, manual: {}, table: {}, @@ -119,6 +136,7 @@ one: {}, }); +const parser_configs = ref(['閫氱敤', '澶氭ā鎬�']); const parser_ids = ref([ { name: '閫氱敤', @@ -191,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"]); @@ -198,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 = () => { @@ -208,18 +238,66 @@ // value: value1 // }; // }); + getParseMethodsList(); } + +const chooseParser = (item) => { + console.log(item); +}; 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){ @@ -233,28 +311,29 @@ size: (item.file.size/1024).toFixed(2) + 'K', } }) - // onFileSelectedLoading.value = true; - // const formData = new FormData(); - // 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', ''); - // } - // uploadWithoutKb(formData).then((res) => { - // onFileSelectedLoading.value = false; - // if (res.code == 200) { - // cancel(); - // // uploaditemList.value = []; - // emit('selectFileCallback', uploaditemList.value); - // Message.success('涓婁紶鎴愬姛'); - // } else { - // Message.error('涓婁紶澶辫触'); - // } - // }); - - cancel(); - emit('selectFileCallback', uploaditemList.value); + onFileSelectedLoading.value = true; + const formData = new FormData(); + 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_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; + if (res.code == 200) { + cancel(); + // uploaditemList.value = []; + emit('selectFileCallback', uploaditemList.value); + Message.success('涓婁紶鎴愬姛'); + } else { + Message.error('涓婁紶澶辫触'); + } + }); @@ -271,6 +350,19 @@ defineExpose({ 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(() => { @@ -291,7 +383,11 @@ </script> - +<style> +.upload-wrap .arco-select-view-inner{ + display: none; +} +</style> <style scoped lang="less"> .aUpload { width: 100%; @@ -299,4 +395,13 @@ overflow: hidden; overflow-y: auto; } +.upload-wrap { + position: relative; +} +.config-text { + position: absolute; + right: 70px; + bottom: -11px; + font-size: 12px; +} </style> -- Gitblit v1.8.0