From e4dbf13e917784f0e690709e2dd405e7475a86a1 Mon Sep 17 00:00:00 2001 From: liudong <liudong> Date: 星期五, 16 八月 2024 12:08:07 +0800 Subject: [PATCH] 新版UI对话页面开发 --- src/views/sessionManager/components/smartAi.vue | 127 +++++++++++++++++++------------ src/views/sessionManager/components/agentSession.vue | 18 +++ src/views/sessionManager/index.vue | 64 +-------------- src/views/sessionManager/components/historySession.vue | 11 +- src/assets/images/square_banner.png | 0 5 files changed, 104 insertions(+), 116 deletions(-) diff --git a/src/assets/images/square_banner.png b/src/assets/images/square_banner.png new file mode 100644 index 0000000..abd206e --- /dev/null +++ b/src/assets/images/square_banner.png Binary files differ diff --git a/src/views/sessionManager/components/agentSession.vue b/src/views/sessionManager/components/agentSession.vue index 5018c67..54e2ddc 100644 --- a/src/views/sessionManager/components/agentSession.vue +++ b/src/views/sessionManager/components/agentSession.vue @@ -105,6 +105,7 @@ import { getAuthorization } from "@/utils/auth"; import { EventSourceParserStream } from 'eventsource-parser/stream'; import { agentResetApi, agentSetApi, getAgentSessionDetailsApi } from "@/api/agentSession"; +import EventBus from '@/utils/EventBus'; const props = defineProps({ modalObj: Object, }); @@ -145,6 +146,15 @@ agentCompletion(); queryAgentSessionDetail(agentObj.id); }; + +const createNewAgent = async (session) => { + Object.assign(agentObj, session); + initPage(); + + +} + + // 璋冪敤set鏂规硶 const agentSet = async () => { @@ -354,16 +364,18 @@ onMounted(() => { - + EventBus.on('createAgent', (data) => { + createNewAgent(data); + }); }); watch( () => props.modalObj, (newVal, oldVal) => { - Object.assign(agentObj, newVal); + // Object.assign(agentObj, newVal); //璋冪敤agent鍒濆鍖栨柟娉� if(JSON.stringify(newVal) != '{}'){ - initPage(); + // initPage(); } },{ immediate: true, diff --git a/src/views/sessionManager/components/historySession.vue b/src/views/sessionManager/components/historySession.vue index c355dce..63ed439 100644 --- a/src/views/sessionManager/components/historySession.vue +++ b/src/views/sessionManager/components/historySession.vue @@ -221,19 +221,20 @@ display: flex; width: 70%; margin-left: 15%; - //border: 1px solid var(--color-text-4); + //border: 1px solid var(--color-neutral-3); padding: 16px; border-radius: 12px; - background: var(--color-bg-2); + background: var(--color-bg-1); margin-top: 10px; cursor: pointer; justify-content: space-between; align-items: center; + color: var(--color-text-2); } .historyCenter-box:hover{ - color: #2a2a2b; - border: 1px solid var(--color-neutral-3); - //background: #e8e8ea; + color: var(--color-text-2); + //border: 1px solid var(--color-neutral-3); + background: var(--color-bg-3); box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09); } } diff --git a/src/views/sessionManager/components/smartAi.vue b/src/views/sessionManager/components/smartAi.vue index 26b3555..e74e9c3 100644 --- a/src/views/sessionManager/components/smartAi.vue +++ b/src/views/sessionManager/components/smartAi.vue @@ -1,31 +1,44 @@ <template> - <div class="layoutHisCenter"> + <div class="layoutAgentCenter"> <a-scrollbar - class="left-list" style=" height: calc(100vh - 100px); overflow-y: auto; overflow-x: hidden; " > - <div class="historyCenter"> - <div - class="item historyCenter-box" - v-for="item in dialogs" - @click="querySessionDetail(item)" - > - <div class="text" > - <img - :style="{ width: '16px' }" - alt="dessert" - :src="item.avatar || imgSrc" - /> - {{ item.name }} - </div> - <div class="time" - > - </div> - </div> + <div class="search"> + <!-- 鏌ヨ妗�--> + <img src="@/assets/images/square_banner.png" + style="width: 100%" + alt=""> + + </div> + <div class="agentMainCenter"> + <a-row class="agentCenter"> + <a-col :span="8" v-for="item in dialogs"> + <div + class="item agentCenter-box" + @click="createNewSession(item)" + > + <div class="text" > + <a-avatar> + <img + :style="{ width: '100%' }" + alt="dessert" + :src="item.avatar || imgSrc" + /> + </a-avatar> + <span style="margin-left: 10px;font-weight: 500;color: var(--color-text-1)"> + {{ item.name }} + </span> + </div> + <div class="time" + > + </div> + </div> + </a-col> + </a-row> </div> </a-scrollbar> </div> @@ -50,7 +63,7 @@ sessionListApi } from "@/api/session"; import { queryCanvasList } from "@/api/Agent"; -const emit = defineEmits(["querySessionDetail","changeAgentType"]); +const emit = defineEmits(["querySessionDetail","changeAgentType","createSession"]); import logo from "@/assets/images/model.png"; const sessionList = ref([]); //浼氳瘽鍒楄〃 const activeSessionId = ref(""); @@ -115,11 +128,22 @@ } }; - -const querySessionDetail = async (session) => { +const createNewSession = async (session) => { console.log(session, 'session'); - emit('changeAgentType','1'); - emit('querySessionDetail',session); + // 鏌ヨ鍘嗗彶璁板綍 + // emit('querySessionDetail',session); + if (session.type == '1') { + // 鐢熸垚鏅鸿兘浣撴柊鐨勫璇� + emit('createSession',session.id); + emit('changeAgentType','1'); + } else { + // 鐢熸垚agent鏂扮殑瀵硅瘽 + EventBus.emit("createAgent",session); + emit('changeAgentType','2'); + } + + + } onBeforeMount(()=>{ DialogList() @@ -128,7 +152,7 @@ onMounted(() => { EventBus.on("smartAi", () => { emit('changeAgentType','4'); - DialogList() + DialogList(); }); }) onBeforeUnmount(() => { @@ -138,13 +162,13 @@ </script> <style scoped lang="less"> - .layoutHisCenter{ + .layoutAgentCenter{ width: 100%; //background: #999999; position: absolute; left: 0; top: 0; - .historyTitle___F_iam { + .agentTitle___F_iam { font-size: 36px; line-height: 50px; font-weight: 700; @@ -167,27 +191,32 @@ } } } - .historyCenter{ - width: 100%; - margin-top: 30px; - .historyCenter-box{ - display: flex; - width: 70%; - margin-left: 15%; - //border: 1px solid var(--color-text-4); - padding: 16px; - border-radius: 12px; - background: var(--color-bg-2); - margin-top: 10px; - cursor: pointer; - justify-content: space-between; - align-items: center; - } - .historyCenter-box:hover{ - color: #2a2a2b; - border: 1px solid var(--color-neutral-3); - //background: #e8e8ea; - box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09); + .agentMainCenter{ + width: 70%; + margin: 0 auto; + .agentCenter{ + width: 100%; + margin-top: 30px; + .agentCenter-box{ + display: flex; + width: 90%; + margin: 0 auto; + //border: 1px solid var(--color-neutral-3); + padding: 16px; + border-radius: 12px; + background: var(--color-bg-1); + margin-top: 10px; + cursor: pointer; + justify-content: space-between; + align-items: center; + color: var(--color-text-2); + } + .agentCenter-box:hover{ + color: var(--color-text-2); + //border: 1px solid var(--color-neutral-3); + background: var(--color-bg-3); + box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09); + } } } diff --git a/src/views/sessionManager/index.vue b/src/views/sessionManager/index.vue index b50777e..83ce44b 100644 --- a/src/views/sessionManager/index.vue +++ b/src/views/sessionManager/index.vue @@ -7,62 +7,6 @@ <!-- ></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> </a-col> @@ -197,7 +141,7 @@ </a-col> <a-col :span="23" v-show="agentType == '4'"> <div class="center" style="padding: 0"> - <smartAi @querySessionDetail="querySessionDetail" @changeAgentType="changeAgentType"></smartAi> + <smartAi @createSession="createSession" @createAgent="createAgent" @querySessionDetail="querySessionDetail" @changeAgentType="changeAgentType"></smartAi> </div> </a-col> </a-row> @@ -496,12 +440,14 @@ querySessionList(); }; onBeforeMount(() => { - DialogList(); + // DialogList(); + //鏂板缓浼氳瘽 + createSession(''); }); onMounted(() => { EventBus.on("newChat", () => { agentType.value = 1; - createSession(dialogs.value[0].id); + createSession(''); }); }); onBeforeUnmount(() => { -- Gitblit v1.8.0