From c79dd89ef0c5a0e75c86136202e5c408c184a2f8 Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期六, 24 八月 2024 19:25:39 +0800
Subject: [PATCH] 新建会话修改
---
src/views/sessionManager/components/updataFile.vue | 143 ++++++++++++++++++++++++++++++++++++++---------
1 files changed, 115 insertions(+), 28 deletions(-)
diff --git a/src/views/sessionManager/components/updataFile.vue b/src/views/sessionManager/components/updataFile.vue
index 0caa68c..59d6d29 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,14 +32,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 +52,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 +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);
@@ -79,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({
@@ -107,7 +114,18 @@
"random_seed": 1500
}
}, // 鐢ㄦ埛鍚�
- qa: {},
+ qa: {
+ "entity_types": [
+ "organization",
+ "person",
+ "location",
+ "event",
+ "time"
+ ],
+ "raptor": {
+ "use_raptor": false
+ }
+ },
resume: {},
manual: {},
table: {},
@@ -119,6 +137,7 @@
one: {},
});
+const parser_configs = ref(['閫氱敤', '澶氭ā鎬�']);
const parser_ids = ref([
{
name: '閫氱敤',
@@ -191,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"]);
@@ -198,6 +218,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,16 +239,42 @@
// 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 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 = () => {
console.log(files.value, "files");
@@ -233,28 +290,32 @@
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('涓婁紶澶辫触');
- // }
- // });
+ 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('涓婁紶澶辫触');
+ }
+ });
- cancel();
- emit('selectFileCallback', uploaditemList.value);
+ // cancel();
+ // emit('selectFileCallback', uploaditemList.value);
@@ -271,6 +332,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 +365,11 @@
</script>
-
+<style>
+.upload-wrap .arco-select-view-inner{
+ display: none;
+}
+</style>
<style scoped lang="less">
.aUpload {
width: 100%;
@@ -299,4 +377,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