Prechádzať zdrojové kódy

fix: 调整小数文档智能部分功能

zhupei 1 rok pred
rodič
commit
11879d5505

+ 39 - 1
src/components/dialog-wrap/Question.vue

@@ -6,6 +6,7 @@
 import { onMounted, computed, useTemplateRef } from "vue";
 
 import {getTempImageInfo} from './temp-image';
+import { getTempDocFile, wendangzhinengDocFileIsDisplay, wendangzhinengSetDocFilesDisplay } from './temp-wendangzhineng-docs';
 
 const props = defineProps({
     /**
@@ -58,7 +59,6 @@ const showTempImage = () => {
 
     var reader = new FileReader();
     reader.onload = function(e) {
-
         var imgElement = document.createElement("img");
 
         imgElement.src = e.target.result;
@@ -71,9 +71,47 @@ const showTempImage = () => {
     reader.readAsDataURL(file);
 }
 
+const showTempDocName = () => {
+    const files = getTempDocFile();
+
+    if (!files) {
+        return;
+    }
+
+    if (props.index / 1 !== 0) {
+        return;
+    }
+
+    // const is_displayed = wendangzhinengDocFileIsDisplay();
+    // if (is_displayed) {
+    //     // 如果已经显示,则不再显示
+    //     return;
+    // }
+
+    // 如果有数据
+    const client_files = files.client_files;
+    const server_files = files.server_files;
+
+    const ul = document.createElement('ul');
+    ul.setAttribute('style', 'margin:0;font-size: 12px;padding-left: 15px;font-style: italic;');
+
+    server_files.forEach((item) => {
+        const file_name = item.name;
+        const ele = document.createElement('li');
+        ele.innerHTML = `<span>${file_name}</span>`
+        ul.appendChild(ele);
+    });
+
+    if (container.value) {
+        // wendangzhinengSetDocFilesDisplay();
+        container.value.appendChild(ul);
+    }
+}
+
 onMounted(() => {
     setTimeout(() => {
         showTempImage();
+        showTempDocName();
     });
 });
 </script>

+ 38 - 0
src/components/dialog-wrap/temp-wendangzhineng-docs.js

@@ -0,0 +1,38 @@
+/**
+ * 临时展示图片
+ * 文档智能中,展示客户端上传的文件
+ */
+
+// 临时文件
+let temp_file = null;
+let is_display = false;
+
+/**
+ * 保存临时图片文件
+ * @param {File} file
+ */
+export const wendangzhinengSetTempDocFile = (file) => {
+    temp_file = file;
+}
+/**
+ * 文档是否已经显示
+ * @returns
+ */
+export const wendangzhinengDocFileIsDisplay = () => {
+    return is_display;
+}
+/**
+ * 将文档显示状态设置为显示状态
+ */
+export const wendangzhinengSetDocFilesDisplay = () => {
+    is_display = true;
+}
+
+export const wendangzhinengClearDocFile = () => {
+    temp_file = null;
+    is_display = false;
+}
+
+export const getTempDocFile = (agent_id, index) => {
+    return temp_file;
+}

+ 20 - 5
src/views/Home.vue

@@ -182,6 +182,8 @@ import BtnIframeChujuan from '../components/btn-iframe-chujuan/BtnIframeChujuan.
 
 import { defineComponent, ref, onMounted, inject, onBeforeUnmount } from "vue";
 
+import { wendangzhinengSetTempDocFile, wendangzhinengClearDocFile } from '../components/dialog-wrap/temp-wendangzhineng-docs';
+
 export default defineComponent({
     components: {
         Right,
@@ -320,6 +322,7 @@ export default defineComponent({
             wendangzhineng_file_uploaded.value = false;
             wendangzhineng_text_input.value = '';
             wendangzhineng_file_list.value = [];
+            wendangzhinengClearDocFile();
 
             // 获取历史记录
             const data = await ajax.message.getDialogs(selectId.value);
@@ -541,6 +544,7 @@ export default defineComponent({
             wendangzhineng_file_uploaded.value = false;
             wendangzhineng_text_input.value = '';
             wendangzhineng_file_list.value = [];
+            wendangzhinengClearDocFile();
 
             // 每次新建对话时,清空sendData数据
             clearLocalStorageSendData();
@@ -567,7 +571,7 @@ export default defineComponent({
         /**
          * 文件上传操作
          */
-        const MAX_ACCEPT_FILE = 30;
+        const MAX_ACCEPT_FILE = 5;
         const upload_warning_text = `支持上传文件pdf、docx文档(最多${MAX_ACCEPT_FILE}个,每个大小不超过10MB)`;
         const wendangzhineng_file_list = ref([]);
         const wendangzhineng_text_input = ref('');
@@ -594,7 +598,7 @@ export default defineComponent({
             return formData;
         }
         const showMsg = (msg) => {
-            Message.error({ content: msg, position: 'top' });
+            Message.error({ content: msg, position: 'bottom' });
         }
         const beginWendangzhinengCombine = async () => {
             if (wendangzhineng_is_loading.value) {
@@ -602,7 +606,6 @@ export default defineComponent({
             }
 
             wendangzhineng_is_loading.value = true;
-            showDialog.value = true;
 
             // 文档智能
             const title = wendangzhineng_text_input.value; // 标题
@@ -622,6 +625,8 @@ export default defineComponent({
                     return;
                 }
 
+                showDialog.value = true;
+
                 // 创建会话
                 const data = await ajax.message.createDialog(selectId.value);
                 if (data) {
@@ -639,6 +644,15 @@ export default defineComponent({
                     upload_file_id: file_id_list
                 }
 
+                /**
+                 * 在内存中保存上传的文件
+                 * 供对话时界面上显示
+                 */
+                wendangzhinengSetTempDocFile({
+                    client_files: f_list,
+                    server_files: files_info
+                });
+
             } else {
                 // 已上传,无需再上传
                 // 再次提问
@@ -647,6 +661,8 @@ export default defineComponent({
                     return;
                 }
 
+                showDialog.value = true;
+
                 // 创建会话
                 const data = await ajax.message.createDialog(selectId.value);
                 if (data) {
@@ -656,7 +672,6 @@ export default defineComponent({
                 sendData = {
                     message: title,
                 }
-
             }
 
             wendangzhineng_file_uploaded.value = true;
@@ -664,7 +679,7 @@ export default defineComponent({
             // wendangzhineng_file_list.value = [];
 
             dialogList.value = [];
-            showDialog.value = true;
+            // showDialog.value = true;
             initDialog.value = true;
 
             setTimeout(() => {