From 6822ce43b71f7b65ec505009acd4ceb5aa6972ba Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期六, 24 八月 2024 19:01:47 +0800
Subject: [PATCH] 上传文档解析方法
---
src/api/session.ts | 5 ++
src/views/dmx/knowledgeLib/index.vue | 7 +--
src/views/sessionManager/components/updataFile.vue | 59 +++++++++++++++++++++++++++--
3 files changed, 62 insertions(+), 9 deletions(-)
diff --git a/src/api/session.ts b/src/api/session.ts
index e7ab8ab..c4f0212 100644
--- a/src/api/session.ts
+++ b/src/api/session.ts
@@ -61,4 +61,9 @@
},
};
return axios.post('/api/v1/document/upload_without_kb', params, config);
+}
+
+// 鑾峰彇瑙f瀽鏂规硶鍒楄〃
+export function getParseMethodsListApi() {
+ return axios.get<ISessionListResult>('/api/v1/user/parse-methods');
}
\ No newline at end of file
diff --git a/src/views/dmx/knowledgeLib/index.vue b/src/views/dmx/knowledgeLib/index.vue
index ca8e462..8bae1eb 100644
--- a/src/views/dmx/knowledgeLib/index.vue
+++ b/src/views/dmx/knowledgeLib/index.vue
@@ -309,11 +309,8 @@
<div style="display: flex; align-items: center">
<div style="width: 100px">
<a-popover title="" v-if="record.run == '4'">
- <a-tag
- :loading="record.loading"
- :color="'blue'"
- border
- >{{ $t('dmx.list.complete') }}</a-tag
+ <a-tag :loading="record.loading" :color="'red'" border
+ >澶辫触</a-tag
>
<template #content>
<p>娴佺▼寮�濮嬩簬锛歿{ record.process_begin_at }}</p>
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