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/components/agentSession.vue |  218 +++++++++++++++++++++++++++++++-----------------------
 1 files changed, 126 insertions(+), 92 deletions(-)

diff --git a/src/views/sessionManager/components/agentSession.vue b/src/views/sessionManager/components/agentSession.vue
index 7dcc9a6..9c70b48 100644
--- a/src/views/sessionManager/components/agentSession.vue
+++ b/src/views/sessionManager/components/agentSession.vue
@@ -3,30 +3,36 @@
   <div class="header___lEPyH">
     <div class="chatHeader">
       <div class="chatHeaderBox">
-        <span class="title">{{agentTitle}}</span>
-<!--        <a-popover-->
-<!--          position="bottom"-->
-<!--          trigger="click"-->
-<!--        >-->
-<!--          <a-button border-->
-<!--          >{{agentTitle}}-->
-<!--            <icon-down style="margin-left: 4px" />-->
-<!--          </a-button>-->
-<!--          <template #content>-->
-<!--            <a-button-->
-<!--              type="text"-->
-<!--              class="button"-->
-<!--              style="color: #2a2a2b"-->
-<!--              @click="handleClick()"-->
-<!--            >-->
-<!--              <template #icon>-->
-<!--                <icon-edit />-->
-<!--              </template>-->
-<!--              淇敼鍚嶇О-->
-<!--            </a-button>-->
-<!--            &lt;!&ndash;                    <a-divider style="margin: 10px 0" />&ndash;&gt;-->
-<!--          </template>-->
-<!--        </a-popover>-->
+<!--        <span class="title">{{agentTitle}}</span>-->
+        <a-popover
+          position="bottom"
+          trigger="click"
+        >
+          <a-button border
+          >
+            <span style="
+                       width: 100px;
+                      overflow: hidden;
+                      text-overflow: ellipsis;
+                      white-space: nowrap;
+                    ">{{ from.name }}</span>
+            <icon-down style="margin-left: 4px" />
+          </a-button>
+          <template #content>
+            <a-button
+              type="text"
+              class="button"
+              style="color: #2a2a2b"
+              @click="handleClick()"
+            >
+              <template #icon>
+                <icon-edit />
+              </template>
+              淇敼鍚嶇О
+            </a-button>
+            <!--                    <a-divider style="margin: 10px 0" />-->
+          </template>
+        </a-popover>
       </div>
     </div>
   </div>
@@ -75,7 +81,7 @@
             auto-size
             v-model="sessionDetail.content"
             :class="{ chatItemAnswer: theme === 'light' }"
-            :style="{backgroundColor: theme === 'light' ? '#ffffff' : '#000000'}"
+            :style="{ backgroundColor: theme === 'light' ? '#ffffff' : '#000000'}"
             style="border: none"
           >
           </a-textarea>
@@ -108,14 +114,14 @@
           >
           </a-textarea>
         </template>
-<!--        <template #actions>-->
-<!--          <div class="action"-->
-<!--               @click="stopChat"-->
-<!--               style="background: var(&#45;&#45;color-bg-2);color: var(&#45;&#45;color-primary-light-4);" v-if="displayedText != ''">-->
-<!--            <icon-record-stop />-->
-<!--            鍋滄鐢熸垚-->
-<!--          </div>-->
-<!--        </template>-->
+        <template #actions>
+          <div class="action"
+               @click="stopChat"
+               style="background: var(--color-bg-2);color: var(--color-primary-light-4);" v-if="displayedText != ''">
+            <icon-record-stop />
+            鍋滄鐢熸垚
+          </div>
+        </template>
       </a-comment>
     </div>
     <!-- <div class="chartStart" v-if="isStart" @click="startChat"
@@ -141,8 +147,8 @@
                   maxRows: 5,
                 }"
       />
-      <div class="btn-send">
-        <!-- <icon-send size="32" /> -->
+      <div style="width: 100%;display: flex;justify-content: space-between">
+        <span></span>
         <a-button
           :disabled="chatDis"
           @click="sentClick"
@@ -154,11 +160,24 @@
         </a-button
         >
       </div>
+<!--      <div class="btn-send">-->
+<!--        &lt;!&ndash; <icon-send size="32" /> &ndash;&gt;-->
+<!--        <a-button-->
+<!--          :disabled="chatDis"-->
+<!--          @click="sentClick"-->
+<!--          type="text"-->
+<!--          style="border-radius: 24px"-->
+<!--          :loading="loading"-->
+<!--        >-->
+<!--          <icon-send size="32" style="color: #0960bd;"/>-->
+<!--        </a-button-->
+<!--        >-->
+<!--      </div>-->
     </div>
     <a-modal v-model:visible="visible" title="淇敼鍚嶇О" @before-open="handleOpened" @cancel="handleCancel" :footer="false" title-align="start">
-      <a-form ref="formRef" :rules="rules" :model="agentObj" @submit="handleSubmit" >
+      <a-form ref="formRef" :rules="rules" :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">
@@ -213,9 +232,14 @@
 const theme = computed(() => {
   return appStore.theme;
 });
+let from = reactive({
+  name:'鏈懡鍚嶄細璇�',
+});
 
 const visible = ref(false);
-
+let isHistory = ref(false);//鏄惁鏄巻鍙茶褰�
+let dsl = reactive({});
+const chatDataMeg = reactive({});
 
 
 const rules = {
@@ -229,22 +253,17 @@
 
 const handleSubmit = async({values, errors}) => {
   if(errors) return;
-  // agentObj.name = agentTitle.value;
-  // agentObj.conversation_id = agentObj.id;
   console.log(agentObj, 'agentObj');
-
-
-  // let chatData = {
-  //   id:agentObj.id,
-  //   conversation_id:agentObj.id,
-  //   name: agentTitle.value
-  // }
-  // const { code, data } = await addSessionApi(chatData);
-  // if (data) {
-  //   Message.success("淇敼鎴愬姛");
-  //   handleCancel()
-  //   queryAgentSessionDetail(agentObj.id);
-  // }
+  let chatData = {
+    id:agentObj.id,
+    conversation_id:agentObj.id,
+    name: from.name
+  }
+  const { code, data } = await addSessionApi(chatData);
+  if (data) {
+    Message.success("淇敼鎴愬姛");
+    handleCancel()
+  }
 }
 
 const handleClick = () => {
@@ -268,14 +287,11 @@
 };
 
 const createNewAgent = async (session) => {
+  console.log(session,'鏂板缓agent浼氳瘽瀵硅薄');
   Object.assign(agentObj, session);
+  isHistory.value = false;
   initPage();
-
-
 }
-
-
-
 // 璋冪敤set鏂规硶
 const agentSet = async () => {
   const res = await agentSetApi({
@@ -283,10 +299,8 @@
     title: agentObj.title,
     dsl: agentObj.dsl,
   });
-  console.log(res,'agentSet');
+  // console.log(res,'agentSet');
   if (res.code == 0) {
-    // sessionDetailList.value = res.data.dsl.messages;
-    // Message.success('淇敼鎴愬姛');
     agentReset();
   }
 }
@@ -350,25 +364,33 @@
   inputMsg.value = '';
 }
 // 璋冪敤get鏂规硶
-
 const queryAgentSessionDetail = async (id) => {
   const { code, data } = await getAgentSessionDetailsApi(id);
   if (code == 0) {
-    console.log(data,'浼氳瘽璇︽儏');
+    console.log(data,'agent浼氳瘽璇︽儏');
+    Object.assign(chatObj, data);
     sessionDetailList.value = data.dsl.messages;
-    agentTitle.value = `鍜�${data.title}鐨勪細璇漙 || '鏈懡鍚嶄細璇�';
+    agentTitle.value = `${data.title}` || '鏈懡鍚嶄細璇�';
+    from.name = `${data.title}` || '鏈懡鍚嶄細璇�';
     refreshScroll(); //鍒锋柊婊氬姩鏉′綅缃�
   }
 };
 
-
+// 鍘嗗彶璁板綍璺宠浆鑾峰彇agent浼氳瘽璇︽儏
 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;
-    refreshScroll(); //鍒锋柊婊氬姩鏉′綅缃�
+  if (code == 200) {
+    sessionDetailList.value = data.message.messages;
+    const res = await getAgentSessionDetailsApi(session.dialog_id);
+    if (res.code == 0) {
+      console.log(res.data,'agent浼氳瘽璇︽儏');
+      Object.assign(agentObj, res.data);
+      Object.assign(chatObj, res.data);
+      Object.assign(dsl, res.data.dsl);
+      refreshScroll(); //鍒锋柊婊氬姩鏉′綅缃�
+    }
   }
 };
 
@@ -424,13 +446,19 @@
 
 
 const startChat = async(valMsg)=>{
-
   sessionDetailList.value.push({
     content: valMsg,
     role: 'user',
   });
   sessionDetailList.value.push({ role: 'last' });
   refreshScroll();
+  let chatStr = {
+    id: agentObj.id,
+    message: valMsg,
+  }
+  if(isHistory.value){
+    chatStr.dsl = dsl;
+  }
   const response = await fetch(
     '/api/v1/canvas/completion',
     {
@@ -439,10 +467,7 @@
         'Authorization': getAuthorization(),
         'Content-Type': 'application/json',
       },
-      body: JSON.stringify({
-        id: agentObj.id,
-        message: valMsg,
-      }),
+      body: JSON.stringify(chatStr),
     }
   );
 
@@ -470,8 +495,13 @@
       if (done) {
         console.info('done');
         displayedText.value = '';
-        queryAgentSessionDetail(agentObj.id);
-        EventBus.emit('queryAppUsageList');
+        if (isStopChat.value) {
+          isStopChat.value = false;
+          setChatDataMeg(chatDataMeg);
+        } else {
+          queryAgentSessionDetail(agentObj.id);
+          EventBus.emit('queryAppUsageList');
+        }
         break;
       }
     }
@@ -481,10 +511,9 @@
 }
 
 const stopChat=async()=>{
-  // const { code, data } = await stopChatApi(activeSessionId.value);
+  // const { code, data } = await stopChatApi(agentObj.id);
   // if (code === 200) {
   //   Message.success("宸插仠姝�");
-  //   queryNewSessionDetail(activeSessionId.value);
   // }
   loading.value = false;
   chatDis.value = false;
@@ -504,20 +533,26 @@
   sessionDetailList.value = sessionDetailList.value.splice(0, sessionDetailList.value.length-2).concat(lastArr);
   console.log(sessionDetailList.value, 'sessionDetailList2');
   console.log(chatObj, 'chatObj瀵硅薄');
-  chatObj.message = chatObj.message.concat(lastArr);
-  // clearTimeout(timer!);
-  // timer = null;
-  // const { code, data } = await addSessionApi(chatObj);
-  // if (data) {
-  //   //鍋滄瀹氭椂鍣�
-  //   clearTimeout(timer!);
-  //   timer = null;
-  //   displayedText.value = "";
-  //   queryNewSessionDetail(activeSessionId.value);
-  // }
-
+  chatObj.dsl.messages = chatObj.dsl.messages.concat(lastArr);
+  Object.assign(chatDataMeg, {
+    id: chatObj.id,
+    conversation_id: chatObj.id,
+    message: sessionDetailList.value,
+  });
 
 }
+
+
+const setChatDataMeg = async (chatData) => {
+  const { code, data } = await addSessionApi(chatData);
+  if (data) {
+    //鍋滄瀹氭椂鍣�
+    clearTimeout(timer!);
+    timer = null;
+    // displayedText.value = "";
+    queryAgentSessionDetail(chatObj.id);
+  }
+};
 
 const handleShiftEnter = (event) => {
   event.preventDefault();
@@ -558,8 +593,7 @@
     createNewAgent(data);
   });
   EventBus.on('queryAgentSessionDetail', (data) => {
-    Object.assign(agentObj, data);
-    // queryAgentSessionDetail(data.id);
+    isHistory.value = true;
     querySessionDetail(data);
   });
 });

--
Gitblit v1.8.0