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