From 3df2dda8b190ab51afa71dfc892b5ea27560cd93 Mon Sep 17 00:00:00 2001 From: liudong <liudong> Date: 星期一, 19 八月 2024 17:05:47 +0800 Subject: [PATCH] 会话名称修改 --- src/api/session.ts | 2 src/views/sessionManager/components/setName.vue | 94 +++++++++++++++++++++++++++++++ src/views/sessionManager/index.vue | 37 ++++++++++-- 3 files changed, 126 insertions(+), 7 deletions(-) diff --git a/src/api/session.ts b/src/api/session.ts index 0731538..cd16412 100644 --- a/src/api/session.ts +++ b/src/api/session.ts @@ -22,7 +22,7 @@ export function addSessionApi(params: any) { return axios.post<ISessionListResult>( '/api/v1/conversation/set?platform=localragflow', - { params } + params ); } diff --git a/src/views/sessionManager/components/setName.vue b/src/views/sessionManager/components/setName.vue new file mode 100644 index 0000000..eca8824 --- /dev/null +++ b/src/views/sessionManager/components/setName.vue @@ -0,0 +1,94 @@ + +<template> + <a-button + type="text" + class="button" + style="color: #2a2a2b" + @click="handleClick()" + > + <template #icon> + <icon-edit /> + </template> + 淇敼鍚嶇О + </a-button> + <a-modal v-model:visible="visible" title="淇敼鍚嶇О" @before-open="handleOpened" @cancel="handleCancel" :footer="false" title-align="start"> + <a-form ref="formRef" :rules="rules" :model="form" @submit="handleSubmit" > + <a-form-item field="name" label="鍚嶇О"> + <a-input v-model="form.name" 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> +</template> + +<script lang="ts" setup> +import { onMounted, onBeforeMount, reactive, ref, watch } from "vue"; +import { Message } from '@arco-design/web-vue'; +import { addSessionApi, getSessionDetailsApi } from "@/api/session"; + +const visible = ref(false); +const form = reactive({ + name: '',// 鐢ㄦ埛鍚� +}); +const formRef = ref(null); +const chatObj = reactive({}) +const rules = { + name: [ + { + required: true, + message:'鍚嶇О涓嶅厑璁镐负绌�', + }, + ], +} + + +const emit = defineEmits(['queryNewSessionDetail']) +const props = defineProps(['activeSessionId']) + +const handleSubmit = async({values, errors}) => { + if(errors) return; + chatObj.name = form.name; + + const { code, data } = await addSessionApi(chatObj); + if (data) { + Message.success("淇敼鎴愬姛"); + handleCancel() + emit('queryNewSessionDetail',props.activeSessionId); + } +} + +const handleClick = () => { + visible.value = true; +}; +const handleCancel = () => { + visible.value = false; +} + +const handleOpened =(el) => { + // Object.assign(form,{ + // name: '',// 鐢ㄦ埛鍚� + // }); + // formRef.value.resetFields(); +} + + +const getSessionDetails = async ()=>{ + const res = await getSessionDetailsApi(props.activeSessionId); + Object.assign(chatObj, res.data); + console.log(chatObj, "淇敼鍚嶇О"); + form.name = chatObj.name; +} + +onBeforeMount(()=>{ + getSessionDetails(); +}) +onMounted(()=>{ + + +}) +</script> \ No newline at end of file diff --git a/src/views/sessionManager/index.vue b/src/views/sessionManager/index.vue index 3c71541..a0e78f2 100644 --- a/src/views/sessionManager/index.vue +++ b/src/views/sessionManager/index.vue @@ -20,7 +20,22 @@ <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> + <setName :activeSessionId="activeSessionId" @queryNewSessionDetail="queryNewSessionDetail"></setName> +<!-- <a-divider style="margin: 10px 0" />--> + </template> + </a-popover> + </div> </div> </div> @@ -175,7 +190,7 @@ <!-- </template>--> <!-- </a-upload>--> <!-- </div>--> - <spa style="position: absolute;top:96px;left: 10px;z-index: 10000;cursor: pointer"> + <span style="position: absolute;top:96px;left: 10px;z-index: 10000;cursor: pointer"> <icon-attachment size="28" @click="selectFile" style="color: #0960bd;" /> <input ref="fileInput" @@ -183,7 +198,7 @@ style="display: none;" @change="onFileSelected" /> - </spa> + </span> <div class="uploadFileList"> <div class="files" v-for="(item,index) in uploaditemList" :key="index" style="position: relative;width: 200px;margin-top: 10px;"> @@ -193,7 +208,12 @@ style="background: var(--color-bg-2);padding:10px;border-radius: 10px" > <template #avatar> - <a-button type="text" :loading="onFileSelectedLoading" v-if="onFileSelectedLoading"></a-button> + <a-spin :loading="onFileSelectedLoading" v-if="onFileSelectedLoading"> + <template #icon> + <icon-sync /> + </template> + </a-spin> +<!-- <a-button type="text" :loading="onFileSelectedLoading" v-if="onFileSelectedLoading"></a-button>--> <a-avatar v-if="!onFileSelectedLoading"> <icon-file style="color: #0960bd" /> </a-avatar> @@ -230,6 +250,7 @@ </div> </a-col> </a-row> + </div> </template> <script setup lang="ts"> @@ -258,6 +279,7 @@ 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 setName from "@/views/sessionManager/components/setName.vue"; import EventBus from "@/utils/EventBus"; import { addSessionApi, @@ -596,10 +618,13 @@ // displayedText.value = ""; // queryNewSessionDetail(activeSessionId.value); // } - - }; + + + + + const queryNewSessionDetail = async (id) => { activeSessionId.value = id; const { code, data } = await getSessionDetailsApi(id); -- Gitblit v1.8.0