From 8a3e7d81eeb68094fb2fa89c036a5a0660e0ac7e Mon Sep 17 00:00:00 2001 From: liudong <liudong> Date: 星期四, 22 八月 2024 10:43:53 +0800 Subject: [PATCH] agent会话详情修改 --- src/views/sessionManager/components/agentSession.vue | 143 ++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 126 insertions(+), 17 deletions(-) diff --git a/src/views/sessionManager/components/agentSession.vue b/src/views/sessionManager/components/agentSession.vue index 53748c6..0c25dda 100644 --- a/src/views/sessionManager/components/agentSession.vue +++ b/src/views/sessionManager/components/agentSession.vue @@ -3,7 +3,30 @@ <div class="header___lEPyH"> <div class="chatHeader"> <div class="chatHeaderBox"> - <span class="title">{{agentTitle}}</span> +<!-- <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> + <!-- <a-divider style="margin: 10px 0" />--> + </template> + </a-popover> </div> </div> </div> @@ -85,14 +108,14 @@ > </a-textarea> </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> +<!-- <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" @@ -118,6 +141,7 @@ maxRows: 5, }" /> + <div style="height: 40px"></div> <div class="btn-send"> <!-- <icon-send size="32" /> --> <a-button @@ -132,6 +156,19 @@ > </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-item field="name" label="鍚嶇О"> + <a-input v-model="agentTitle" placeholder="璇疯緭鍏ュ悕绉�"/> + </a-form-item> + <a-form-item> + <div style="width: 100%;text-align: right"> + <a-button @click="visible = false">鍙栨秷</a-button> + <a-button style="margin-left: 10px" type="primary" html-type="submit">纭畾</a-button> + </div> + </a-form-item> + </a-form> + </a-modal> </div> </template> @@ -144,6 +181,7 @@ import { agentResetApi, agentSetApi, getAgentSessionDetailsApi } from "@/api/agentSession"; import EventBus from '@/utils/EventBus'; import useClipboard from "vue-clipboard3"; +import { addSessionApi, getSessionDetailsApi } from "@/api/session"; const props = defineProps({ modalObj: Object, }); @@ -177,6 +215,52 @@ return appStore.theme; }); +const visible = ref(false); +let isHistory = ref(false);//鏄惁鏄巻鍙茶褰� +let dsl = reactive({}); + + + +const rules = { + name: [ + { + required: true, + message:'鍚嶇О涓嶅厑璁镐负绌�', + }, + ], +} + +const handleSubmit = async({values, errors}) => { + if(errors) return; + // agentObj.name = agentTitle.value; + // agentObj.conversation_id = agentObj.id; + console.log(agentObj, 'agentObj'); + let chatData = { + id:activeSessionId.value, + conversation_id:activeSessionId.value, + name: agentTitle.value + } + const { code, data } = await addSessionApi(chatData); + if (data) { + Message.success("淇敼鎴愬姛"); + handleCancel() + // queryAgentSessionDetail(agentObj.id); + } +} + +const handleClick = () => { + visible.value = true; +}; +const handleCancel = () => { + visible.value = false; +} + +const handleOpened =(el) => { + // Object.assign(form,{ + // name: '',// 鐢ㄦ埛鍚� + // }); + // formRef.value.resetFields(); +} // 鍒濆鍖栭〉闈� @@ -186,6 +270,7 @@ const createNewAgent = async (session) => { Object.assign(agentObj, session); + isHistory.value = false; initPage(); @@ -278,6 +363,25 @@ } }; +// 鑾峰彇agent浼氳瘽璇︽儏 +const querySessionDetail = async (session) => { + Object.assign(agentObj, session); + agentObj.id = session.dialog_id; + activeSessionId.value = session.id; + agentTitle.value = session.name; + console.log(agentTitle.value, '浼氳瘽鍚嶇О'); + const { code, data } = await getSessionDetailsApi(session.id); + if (code == 200) { + sessionDetailList.value = data.message.messages; + const res = await getAgentSessionDetailsApi(session.dialog_id); + if (res.code == 0) { + console.log(res.data,'浼氳瘽璇︽儏'); + Object.assign(dsl, res.data.dsl); + refreshScroll(); //鍒锋柊婊氬姩鏉′綅缃� + } + } +}; + const { toClipboard } = useClipboard(); const copy = async (text) => { @@ -330,13 +434,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', { @@ -345,10 +455,7 @@ 'Authorization': getAuthorization(), 'Content-Type': 'application/json', }, - body: JSON.stringify({ - id: agentObj.id, - message: valMsg, - }), + body: JSON.stringify(chatStr), } ); @@ -392,6 +499,8 @@ // Message.success("宸插仠姝�"); // queryNewSessionDetail(activeSessionId.value); // } + loading.value = false; + chatDis.value = false; isStopChat.value = true; console.log('stopChat'); console.log(displayedText.value, 'displayedText'); @@ -462,8 +571,8 @@ createNewAgent(data); }); EventBus.on('queryAgentSessionDetail', (data) => { - Object.assign(agentObj, data); - queryAgentSessionDetail(data.id); + isHistory.value = true; + querySessionDetail(data); }); }); onBeforeUnmount(() => { @@ -591,7 +700,7 @@ .btn-send { position: absolute !important; - right: 10px; + right: 4px; top: 80px; z-index: 10; } -- Gitblit v1.8.0