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