From 6822ce43b71f7b65ec505009acd4ceb5aa6972ba Mon Sep 17 00:00:00 2001 From: liudong <liudong> Date: 星期六, 24 八月 2024 19:01:47 +0800 Subject: [PATCH] 上传文档解析方法 --- src/views/sessionManager/components/updataFile.vue | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 55 insertions(+), 4 deletions(-) diff --git a/src/views/sessionManager/components/updataFile.vue b/src/views/sessionManager/components/updataFile.vue index 7457a25..be0c3b5 100644 --- a/src/views/sessionManager/components/updataFile.vue +++ b/src/views/sessionManager/components/updataFile.vue @@ -8,6 +8,7 @@ type="text" style="border-radius: 24px" @click="visibleChange" + :disabled="!activeSessionId" > <icon-attachment size="28" @@ -31,13 +32,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 +76,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 { getParseMethodsListApi, uploadWithoutKb } from "@/api/session"; const visible = ref(false); const loading = ref(false); @@ -83,6 +85,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 +210,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 +218,32 @@ 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 getIconByExtension = (extension) => { + const fileExtension = ref(''); + fileExtension.value = extension.split('.').pop(); + parser_idsArr.value.forEach((item)=>{ + // 鍖呭惈鍏冪礌 + if (item.formats.includes(fileExtension.value)){ + return item.id; + } + }) +}; + + + + +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 +254,7 @@ // value: value1 // }; // }); + getParseMethodsList(); } const chooseParser = (item) => { @@ -232,7 +263,14 @@ const onChange = (fileList) => { files.value = fileList; + files.value.forEach((item) => { + + }); + }; +const parserChange = ()=>{ + parseridConfig.value = false; +} const visibleChange = (e) => { e.stopPropagation(); @@ -258,7 +296,7 @@ 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_id', getIconByExtension(files.value[i].name)); formData.append('parser_config', ''); } uploadWithoutKb(formData).then((res) => { @@ -292,6 +330,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