From fa5fd89d1fd0f2d0b0bb1944b3ac4a452c49f83a Mon Sep 17 00:00:00 2001 From: zhangxiao <898441624@qq.com> Date: 星期六, 17 八月 2024 16:30:33 +0800 Subject: [PATCH] fix: 修改分页id --- src/views/sessionManager/index.vue | 317 ++++++++++++++++++---------------------------------- 1 files changed, 111 insertions(+), 206 deletions(-) diff --git a/src/views/sessionManager/index.vue b/src/views/sessionManager/index.vue index d1f4042..225c10d 100644 --- a/src/views/sessionManager/index.vue +++ b/src/views/sessionManager/index.vue @@ -1,150 +1,25 @@ <template> <div class="container"> - <AddSession - :modalObj="modalObj" - @addSession="addSession" - :dialogId="dialogId" - ></AddSession> +<!-- <AddSession--> +<!-- :modalObj="modalObj"--> +<!-- @addSession="addSession"--> +<!-- :dialogId="dialogId"--> +<!-- ></AddSession>--> <!-- <a-card class="top-title">AI浼氳瘽璁板綍</a-card>--> <a-row :gutter="[5, 5]" style="margin-top: 3px;"> - <!-- <a-col :span="6">--> - <!-- <a-card class="left-select">--> - <!-- <a-select--> - <!-- v-model="selectValue"--> - <!-- :options="dialogs"--> - <!-- :field-names="fieldNames"--> - <!-- @change="dialogChange"--> - <!-- >--> - <!-- </a-select>--> - <!-- </a-card>--> - <!-- <a-card style="height: 50px">--> - <!-- <template #cover>--> - <!-- <div style="display: flex; justify-content: space-between">--> - <!-- <a-button--> - <!-- type="primary"--> - <!-- shape="round"--> - <!-- class="card-btn-1"--> - <!-- @click="modalObj.add = true"--> - <!-- >--> - <!-- +鏂板缓浼氳瘽--> - <!-- </a-button>--> - <!-- <!– <a-button type="text" shape="circle" class="card-btn-2">--> - <!-- <icon-search />--> - <!-- </a-button> –>--> - <!-- </div>--> - <!-- </template>--> - <!-- </a-card>--> - <!-- <a-card class="left">--> - <!-- <a-scrollbar--> - <!-- class="left-list"--> - <!-- style="--> - <!-- height: calc(100vh - 350px);--> - <!-- overflow-y: auto;--> - <!-- overflow-x: hidden;--> - <!-- "--> - <!-- >--> - <!-- <div--> - <!-- class="item left-list-item"--> - <!-- v-for="session in sessionList"--> - <!-- @click="querySessionDetail(session)"--> - <!-- :class="{ isLeftActive: activeSessionId === session.id }"--> - <!-- >--> - <!-- <div class="text" :class="{ time: theme === 'dark' }"--> - <!-- >{{ session.name }}--> - <!-- </div>--> - <!-- <div class="time"--> - <!-- >{{--> - <!-- moment(new Date(session.create_time)).format(--> - <!-- 'YYYY-MM-DD HH:mm:ss'--> - <!-- )--> - <!-- }}--> - <!-- </div>--> - <!-- </div>--> - <!-- </a-scrollbar>--> - <!-- </a-card>--> - <!-- </a-col>--> <a-col :span="1"> - <chatMenu></chatMenu> + <chatMenu @createSession="createSession" @querySessionDetail="querySessionDetail" @changeAgentType="changeAgentType"></chatMenu> </a-col> <!-- 鏅鸿兘浣撲細璇�--> <a-col :span="23" v-show="agentType == '1'"> - <!-- <div - v-if="sessionDetailList.length === 0" - style=" - width: 90%; - overflow: auto; - height: 65vh; - margin: 0px auto 20px; - " - > - <div class="center-title">鏅鸿兘闂瓟</div> - <div class="center-content"> - 鎴戝彲浠ョ悊瑙e拰瀛︿範浜虹被鐨勮瑷�锛屽叿澶囧杞璇濈殑鑳藉姏锛岀幇鍦ㄥ拰鎴戝紑濮嬩氦娴佸惂~ - </div> - <div class="center-question"> - <div class="center-question-left">璇曚竴璇曡繖鏍烽棶鎴�</div> - <div class="center-question-right"> - <a-button type="primary">鎹竴鎹�</a-button> + <div class="center"> + <div class="header___lEPyH"> + <div class="chatHeader"> + <div class="chatHeaderBox"> + <span class="title">{{agentTitle}}</span> + </div> </div> </div> - <a-row justify="space-around" class="center-list"> - <a-col :span="7" class="item"> - <div class="item-title"> - <IconTiktokColor></IconTiktokColor> - 鎶栭煶甯﹁揣鑴氭湰 - </div> - <div class="item-content" :class="{ dark: theme === 'dark' }"> - 缂栧啓寮曚汉娉ㄧ洰涓斿叿鏈夎鏈嶅姏鐨勩�侀�傜敤浜庝骇鍝佺殑... - </div> - </a-col> - <a-col :span="7" class="item"> - <div class="item-title"> - <IconTiktokColor></IconTiktokColor> - 鎶栭煶甯﹁揣鑴氭湰 - </div> - <div class="item-content" :class="{ dark: theme === 'dark' }"> - 缂栧啓寮曚汉娉ㄧ洰涓斿叿鏈夎鏈嶅姏鐨勩�侀�傜敤浜庝骇鍝佺殑... - </div> - </a-col> - <a-col :span="7" class="item"> - <div class="item-title"> - <IconTiktokColor></IconTiktokColor> - 鎶栭煶甯﹁揣鑴氭湰 - </div> - <div class="item-content" :class="{ dark: theme === 'dark' }"> - 缂栧啓寮曚汉娉ㄧ洰涓斿叿鏈夎鏈嶅姏鐨勩�侀�傜敤浜庝骇鍝佺殑... - </div> - </a-col> - <a-col :span="7" class="item"> - <div class="item-title"> - <IconTiktokColor></IconTiktokColor> - 鎶栭煶甯﹁揣鑴氭湰 - </div> - <div class="item-content" :class="{ dark: theme === 'dark' }"> - 缂栧啓寮曚汉娉ㄧ洰涓斿叿鏈夎鏈嶅姏鐨勩�侀�傜敤浜庝骇鍝佺殑... - </div> - </a-col> - <a-col :span="7" class="item"> - <div class="item-title"> - <IconTiktokColor></IconTiktokColor> - 鎶栭煶甯﹁揣鑴氭湰 - </div> - <div class="item-content" :class="{ dark: theme === 'dark' }"> - 缂栧啓寮曚汉娉ㄧ洰涓斿叿鏈夎鏈嶅姏鐨勩�侀�傜敤浜庝骇鍝佺殑... - </div> - </a-col> - <a-col :span="7" class="item"> - <div class="item-title"> - <IconTiktokColor></IconTiktokColor> - 鎶栭煶甯﹁揣鑴氭湰 - </div> - <div class="item-content" :class="{ dark: theme === 'dark' }"> - 缂栧啓寮曚汉娉ㄧ洰涓斿叿鏈夎鏈嶅姏鐨勩�侀�傜敤浜庝骇鍝佺殑... - </div> - </a-col> - </a-row> - </div> --> - <div class="center"> <a-scrollbar ref="scrollbar" id="home" @@ -259,67 +134,16 @@ <agentSession :modalObj="agentObj"></agentSession> </div> </a-col> - - <!-- <a-col :span="5"> - <a-card class="right"> - <div class="right-top"> - <div class="right-title">鏁版櫤搴�</div> - <div class="right-btn"> - <a-button type="outline" shape="circle" style="border: none"> - <icon-search /> - </a-button> - <a-button - type="outline" - shape="circle" - style="border: none; margin-left: -10px" - > - <icon-close /> - </a-button> - </div> - </div> - <div class="right-tag"> - <a-button type="primary" size="mini" class="btn">鍏ㄩ儴 </a-button> - <a-button type="outline" size="mini" class="btn" - >鏂囨。鍒涗綔 - </a-button> - <a-button type="outline" size="mini" class="btn" - >鐭ヨ瘑瀛︿範 - </a-button> - <a-button type="outline" size="mini" class="btn" - >鏁堢巼鎻愬崌 - </a-button> - </div> - <div class="right-list"> - <div class="right-item"> - <div class="item-title"> - <IconTiktokColor></IconTiktokColor> - 鎶栭煶甯﹁揣鑴氭湰 - </div> - <div class="item-content" :class="{ dark: theme === 'dark' }"> - 缂栧啓寮曚汉娉ㄧ洰涓斿叿鏈夎鏈嶅姏鐨勩�侀�傜敤浜庝骇鍝佺殑... - </div> - </div> - <div class="right-item"> - <div class="item-title"> - <IconTiktokColor></IconTiktokColor> - 鎶栭煶甯﹁揣鑴氭湰 - </div> - <div class="item-content" :class="{ dark: theme === 'dark' }"> - 缂栧啓寮曚汉娉ㄧ洰涓斿叿鏈夎鏈嶅姏鐨勩�侀�傜敤浜庝骇鍝佺殑... - </div> - </div> - <div class="right-item"> - <div class="item-title"> - <IconTiktokColor></IconTiktokColor> - 鎶栭煶甯﹁揣鑴氭湰 - </div> - <div class="item-content" :class="{ dark: theme === 'dark' }"> - 缂栧啓寮曚汉娉ㄧ洰涓斿叿鏈夎鏈嶅姏鐨勩�侀�傜敤浜庝骇鍝佺殑... - </div> - </div> - </div> - </a-card> - </a-col> --> + <a-col :span="23" v-show="agentType == '3'"> + <div class="center" style="padding: 0"> + <historySession @querySessionDetail="querySessionDetail" @changeAgentType="changeAgentType"></historySession> + </div> + </a-col> + <a-col :span="23" v-show="agentType == '4'"> + <div class="center" style="padding: 0"> + <smartAi @createSession="createSession" @querySessionDetail="querySessionDetail" @changeAgentType="changeAgentType"></smartAi> + </div> + </a-col> </a-row> </div> </template> @@ -330,7 +154,7 @@ IconTiktokColor } from "@arco-design/web-vue/es/icon"; import { useAppStore, useUserStore } from "@/store"; -import { computed, nextTick, onMounted, watch, reactive, ref } from "vue"; +import { computed, nextTick, onMounted, watch, reactive, ref, onBeforeMount, onBeforeUnmount } from "vue"; import { Message } from "@arco-design/web-vue"; import { EventSourceParserStream } from "eventsource-parser/stream"; @@ -338,7 +162,11 @@ import chatMenu from "@/views/sessionManager/components/chatMenu.vue"; import AddSession from "@/views/sessionManager/components/addSession.vue"; import agentSession from "@/views/sessionManager/components/agentSession.vue"; +import historySession from "@/views/sessionManager/components/historySession.vue"; +import smartAi from "@/views/sessionManager/components/smartAi.vue"; +import EventBus from "@/utils/EventBus"; import { + addSessionApi, chatApi, getDialogListApi, getSessionDetailsApi, @@ -355,6 +183,7 @@ const chatDis = ref(false); const loading = ref(false); const agentType = ref("1"); +const agentTitle = ref("鏈懡鍚嶄細璇�"); const currIndex = ref(0); const displayedText = ref(""); // 姝e湪鏄剧ず鐨勬枃瀛� @@ -382,7 +211,6 @@ }); console.log(data, "dialogs"); queryCanvas(); - // querySessionList(); } } }; @@ -403,14 +231,35 @@ // 鍒ゆ柇褰撳墠鏄櫤鑳戒綋鎴朼gent // console.log(val, 'val'); - if (dialogs.value.length > 0) { - dialogChange(dialogs.value[0].id); - } + // if (dialogs.value.length > 0) { + // dialogChange(dialogs.value[0].id); + // } + //鏂板缓浼氳瘽 + createSession(dialogs.value[0].id); + + } catch (err) { // you can report use errorHandler or other } finally { } }; +// 鏂板缓浼氳瘽 +const createSession = async (id) => { + const res = await addSessionApi({ + dialog_id: id, + conversation_desc: "鏈懡鍚嶄細璇�" + }); + // console.log(res, "res"); + if (res.code == 200) { + // console.log(res.data.conversation_id); + activeSessionId.value = res.data?.conversation_id; + queryNewSessionDetail(res.data?.conversation_id); + } else { + Message.error("鍒涘缓浼氳瘽澶辫触锛岃閲嶈瘯"); + } + +}; + const handleShiftEnter = (event) => { event.preventDefault(); @@ -506,12 +355,13 @@ if (done) { console.info("done"); displayedText.value = ""; - querySessionDetail(sectionList.value); + queryNewSessionDetail(activeSessionId.value); + EventBus.emit('queryAppUsageList'); break; } } } - querySessionList(); + // querySessionList(); chatDis.value = false; loading.value = false; inputMsg.value = ""; @@ -523,6 +373,23 @@ } } }; + +const queryNewSessionDetail = async (id) => { + activeSessionId.value = id; + const { code, data } = await getSessionDetailsApi(id); + if (code === 200) { + console.log(data, "鏂板缓浼氳瘽璇︽儏"); + sessionDetailList.value = data.message; + agentTitle.value = data.name; + refreshScroll(); //鍒锋柊婊氬姩鏉′綅缃� + } +}; + +const changeAgentType = (val,session) => { + agentType.value = val; + console.log(val, "val"); +} + const querySessionDetail = async (session) => { sectionList.value = session; activeSessionId.value = session.id; @@ -574,8 +441,19 @@ const addSession = () => { querySessionList(); }; +onBeforeMount(() => { + // DialogList(); + //鏂板缓浼氳瘽 + createSession(''); +}); onMounted(() => { - DialogList(); + EventBus.on("newChat", () => { + agentType.value = 1; + createSession(''); + }); +}); +onBeforeUnmount(() => { + EventBus.off("newChat"); }); const appStore = useAppStore(); @@ -694,6 +572,7 @@ .center { position: relative; + padding-left: 50px; .center-title { line-height: 60px; @@ -862,4 +741,30 @@ } } } +.header___lEPyH { + width: 100%; + height: 46px; + position: relative; + backdrop-filter: blur(15px); + display: flex; + align-items: center; + justify-content: center; + -webkit-backdrop-filter: blur(15px); + .chatHeaderBox { + width: auto; + border-radius: 8px; + padding: 4px 20px; + transition: all var(--animation-duration) var(--animation-transition); + display: flex; + align-items: flex-end; + overflow: hidden; /* 闅愯棌瓒呭嚭鐨勫唴瀹� */ + text-overflow: ellipsis; /* 浣跨敤鐪佺暐鍙锋潵浠f浛琚殣钘忕殑鏂囧瓧 */ + white-space: nowrap; /* 涓嶆崲琛岋紝浣垮唴瀹瑰湪涓�琛屽唴鏄剧ず */ + max-width: 200px; + .title{ + color: var(--color-text-1); + font-size: 12px; + } + } +} </style> -- Gitblit v1.8.0