From b3b34fa409762b44e6fd3c89e651f8c465556a48 Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期五, 23 八月 2024 19:25:05 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/web/flow_web

---
 src/views/sessionManager/index.vue |   62 ++++++++++++++++++++++++------
 1 files changed, 49 insertions(+), 13 deletions(-)

diff --git a/src/views/sessionManager/index.vue b/src/views/sessionManager/index.vue
index 2f37360..31bb72c 100644
--- a/src/views/sessionManager/index.vue
+++ b/src/views/sessionManager/index.vue
@@ -30,7 +30,7 @@
                       overflow: hidden;
                       text-overflow: ellipsis;
                       white-space: nowrap;
-                    ">{{ agentTitle }}</span>
+                    ">{{ from.name }}</span>
                     <icon-down style="margin-left: 4px" />
                   </a-button>
                   <template #content>
@@ -392,11 +392,11 @@
       <a-form
         ref="formRef"
         :rules="rules"
-        :model="chatObj"
+        :model="from"
         @submit="handleSubmit"
       >
         <a-form-item field="name" label="鍚嶇О">
-          <a-input v-model="agentTitle" placeholder="璇疯緭鍏ュ悕绉�" />
+          <a-input v-model="from.name" placeholder="璇疯緭鍏ュ悕绉�" />
         </a-form-item>
         <a-form-item>
           <div style="width: 100%; text-align: right">
@@ -471,6 +471,9 @@
   const agentType = ref('1');
   const agentTitle = ref('鏈懡鍚嶄細璇�');
   let chatObj = reactive({});
+  let from = reactive({
+    name:'鏈懡鍚嶄細璇�',
+  });
   const isStopChat = ref(false);
   const currIndex = ref(0);
   const displayedText = ref(''); // 姝e湪鏄剧ず鐨勬枃瀛�
@@ -493,6 +496,7 @@
   const fileInput = ref(null);
   const chatDataMeg = reactive({});
   const visible = ref(false);
+  let toStop = false;
 
   const rules = {
     name: [
@@ -505,12 +509,10 @@
 
   const handleSubmit = async ({ values, errors }) => {
     if (errors) return;
-    // chatObj.name = agentTitle.value;
-    // chatObj.conversation_id = chatObj.id;
     let chatData = {
       id: chatObj.id,
       conversation_id: chatObj.id,
-      name: agentTitle.value,
+      name: from.name,
     };
     const { code, data } = await addSessionApi(chatData);
     if (data) {
@@ -521,13 +523,10 @@
   };
   let dataItem = [];
   const getTxt = (data, role, message, index) => {
-    if (/##0\$\$/.test(message)) {
+    if (/##[0-9]\$\$/.test(message)) {
       if (role == 'assistant' && index) {
-        data.forEach((item) => {
-          if (Object.keys(item).length !== 0 && item?.doc_aggs.length > 0) {
-            dataItem = item.doc_aggs;
-          }
-        });
+        let i = index / 2 - 1 > 0 ? index / 2 - 1 : 0;
+        dataItem = data[i].doc_aggs;
       }
     } else {
       dataItem = [];
@@ -538,7 +537,35 @@
 
   const clickHref = (item) => {
     // return Message.warning('鏆傛棤娉曟煡鐪�');
-    window.open(`/api/v1/document/show/${item.doc_id}`, '_blank');
+    // window.open(`/api/v1/document/get/${item.doc_id}`, '_blank');
+    downloadFile({
+      url: `/api/v1/document/get/${item.doc_id}`,
+      filename: item.doc_name,
+    });
+  };
+
+   const downloadFile = ({
+                                 url,
+                                 filename,
+                                 target,
+                               }: {
+    url: string;
+    filename?: string;
+    target?: string;
+  }) => {
+    const downloadElement = document.createElement('a');
+    downloadElement.style.display = 'none';
+    downloadElement.href = url;
+    if (target) {
+      downloadElement.target = '_blank';
+    }
+    downloadElement.rel = 'noopener noreferrer';
+    if (filename) {
+      downloadElement.download = filename;
+    }
+    document.body.appendChild(downloadElement);
+    downloadElement.click();
+    document.body.removeChild(downloadElement);
   };
 
   const getIconByExtension = computed(() => (extension) => {
@@ -777,6 +804,7 @@
   const startChat = async (valMsg) => {
     chatDis.value = true;
     loading.value = true;
+    toStop = false;
     sessionDetailList.value.push({
       content: valMsg,
       role: 'user',
@@ -804,6 +832,11 @@
       .getReader();
     currIndex.value = 0;
     while (true) {
+      if (toStop) {
+        displayedText.value = '';
+        setChatDataMeg(chatDataMeg);
+        break;
+      }
       const x = await reader?.read();
       if (x) {
         const { done, value } = x;
@@ -846,6 +879,7 @@
     loading.value = false;
     chatDis.value = false;
     isStopChat.value = true;
+    toStop = true;
     console.log('stopChat');
     console.log(displayedText.value, 'displayedText');
     console.log(sessionDetailList.value, 'sessionDetailList');
@@ -896,6 +930,7 @@
       sessionDetailList.value = data.message;
       messagenList.value = data;
       agentTitle.value = data.name;
+      from.name = data.name;
       refreshScroll(); //鍒锋柊婊氬姩鏉′綅缃�
       isStopChat.value = false;
     }
@@ -909,6 +944,7 @@
   const querySessionDetail = async (session) => {
     sectionList.value = session;
     activeSessionId.value = session.id;
+    from.name = session.name;
     const { code, data } = await getSessionDetailsApi(session.id);
     if (code === 200) {
       sessionDetailList.value = data.message;

--
Gitblit v1.8.0