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