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