From 124f894f4e08fd63eae8c7a85babbc19f2cc1829 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期五, 13 六月 2025 09:39:36 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/ai/dashboard/zhuanlu/index.vue |   58 +++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 43 insertions(+), 15 deletions(-)

diff --git a/src/views/ai/dashboard/zhuanlu/index.vue b/src/views/ai/dashboard/zhuanlu/index.vue
index 0d0be46..9feb5d0 100644
--- a/src/views/ai/dashboard/zhuanlu/index.vue
+++ b/src/views/ai/dashboard/zhuanlu/index.vue
@@ -62,7 +62,7 @@
 
     <div class="gas-scheduling-center">
       <div class="mode-switch">
-        <el-radio-group v-model="tabPosition" class="custom-radio-group">
+        <el-radio-group v-model="tabPosition" @change="handleChange" class="custom-radio-group">
           <el-radio-button label="model">大模型模式</el-radio-button>
           <el-radio-button label="conversation">对话模式</el-radio-button>
         </el-radio-group>
@@ -164,12 +164,15 @@
         <!-- 历史建议 -->
         <HistoryMessageDialog
           ref="historyMessageRef"
-          :conversation="activeConversation"
+          :parentMethod="queryHistoryMessage"
+          @gotoManualMethod="gotoManual"
         />
       </div>
 
       <div v-else>
-        <NormalConversation />
+        <NormalConversation
+          :data="defaultMessage"
+        />
       </div>
     </div>
 
@@ -265,6 +268,7 @@
 import {round} from "lodash-es";
 import {ArrowUpBold} from "@element-plus/icons-vue";
 import * as authUtil from "@/utils/auth";
+import HistoryMessageList from "@/views/ai/dashboard/components/message/HistoryMessageList.vue";
 
 const mqhsList = ref([
   {
@@ -548,6 +552,7 @@
 const messageRef = ref()
 const activeMessageList = ref<ChatMessageVO[]>([]) // 选中对话的消息列表
 const activeHistoryMessageList = ref<ChatMessageVO[]>([]) // 历史建议列表
+const activeHistoryMessageTotal = ref(0) // 历史建议总数
 const activeMessageListLoading = ref<boolean>(false) // activeMessageList 是否正在加载中
 const activeMessageListLoadingTimer = ref<any>() // activeMessageListLoading Timer 定时器。如果加载速度很快,就不进入加载中
 // 消息滚动
@@ -573,8 +578,30 @@
 const historyMessageRef = ref()
 const openHistoryMessage = async () => {
   // 刷新 message 列表
-  await getHistoryMessageList()
-  historyMessageRef.value.open(activeHistoryMessageList.value, activeConversation.value)
+  let resDate = await historyMessageRef.value.dealDate()
+  await getHistoryMessageList(resDate)
+  historyMessageRef.value.open(activeHistoryMessageList.value, activeConversation.value, activeHistoryMessageTotal.value)
+}
+
+const queryHistoryMessage = async (queryParams: ChatMessageVO) => {
+  return await getHistoryMessageList(queryParams)
+}
+
+//切换对话模式判断
+const handleChange = async () => {
+  // 对话进行中,不允许切换
+  if (conversationInProgress.value) {
+    message.alert('对话中,不允许切换!')
+    return false
+  }
+}
+
+// 默认选中消息
+const defaultMessage = ref<ChatMessageVO>()
+
+const gotoManual = async (item: ChatMessageVO) => {
+  defaultMessage.value = item
+  tabPosition.value = 'conversation'
 }
 
 // =========== 【聊天对话】相关 ===========
@@ -671,22 +698,23 @@
 }
 
 /** 获取消息 message 列表 */
-const getHistoryMessageList = async () => {
+const getHistoryMessageList = async (params: any) => {
   if (activeConversationId.value === null) {
     return
   }
+  params.conversationId = activeConversationId.value
   // 获取消息列表
-  activeHistoryMessageList.value = await ChatMessageApi.getChatMessageListByConversationId(
-    activeConversationId.value
-  )
-  if (activeHistoryMessageList.value.length > 0) {
+  let pageResult = await ChatMessageApi.getChatMessagePageListByConversationId(params)
+  activeHistoryMessageList.value = pageResult.list
+  activeHistoryMessageTotal.value = pageResult.total
+  if (activeHistoryMessageList.value != null && activeHistoryMessageList.value.length > 0) {
     activeHistoryMessageList.value.forEach((message: ChatMessageVO) => {
       if(message.type != 'user') {
         dealResult(message)
       }
     })
-    return activeHistoryMessageList.value
   }
+  return pageResult
 }
 //处理调度推理结论
 const dealResult = (message: any) => {
@@ -709,7 +737,6 @@
 const messageList = computed(() => {
   if (activeMessageList.value.length > 0) {
     activeMessageList.value[1].thinking = dealResultAndData(activeMessageList.value[1].content)
-    console.log(activeMessageList.value)
     return activeMessageList.value
   }
   // 没有消息时,如果有 systemMessage 则展示它
@@ -1143,11 +1170,11 @@
   let returnValue = 0;
   if(type == 'max') {
     returnValue = computed(() => {
-      return Math.max(...tank) + 20
+      return Number((Math.max(...tank) + 20).toFixed(0))
     })
   } else if(type == 'min') {
     returnValue = computed(() => {
-      return Math.min(...tank) - 60
+      return Number((Math.min(...tank) - 60).toFixed(0))
     })
   } else if(type == 'average') {
     returnValue = computed(() => {
@@ -1155,7 +1182,7 @@
       tank.forEach((item) => {
         sum += item[0]
       })
-      return (sum / tank.length).toFixed(0);
+      return Number((sum / tank.length).toFixed(0));
     })
   }
   return returnValue.value
@@ -1582,6 +1609,7 @@
 
 // 清理监听
 onUnmounted(() => {
+  console.log('stopStream')
   const events = ['fullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange'];
   events.forEach(event => {
     document.removeEventListener(event, handleFullscreenChange);

--
Gitblit v1.9.3