src/api/session.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/sessionManager/components/setName.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/sessionManager/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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 ); } src/views/sessionManager/components/setName.vue
New file @@ -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> 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);