liudong
2024-08-19 3df2dda8b190ab51afa71dfc892b5ea27560cd93
会话名称修改
1个文件已添加
2个文件已修改
133 ■■■■■ 已修改文件
src/api/session.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sessionManager/components/setName.vue 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sessionManager/index.vue 37 ●●●● 补丁 | 查看 | 原始文档 | 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);