From 361d46d0e2a9c5f795f766ed819037faef612167 Mon Sep 17 00:00:00 2001
From: yinbangzhong <zhongbangyin@126.com>
Date: 星期二, 27 八月 2024 09:23:31 +0800
Subject: [PATCH] bug fix

---
 src/views/authority/role/index.vue |    6 
 src/views/sessionManager/index.vue |  148 ++++++++++++++++++++---------
 src/api/authority.ts               |   90 +++++++++---------
 3 files changed, 149 insertions(+), 95 deletions(-)

diff --git a/src/api/authority.ts b/src/api/authority.ts
index 8f855da..59856c8 100644
--- a/src/api/authority.ts
+++ b/src/api/authority.ts
@@ -1,20 +1,20 @@
-import axios from 'axios';
-import { Pagination } from '@/types/global';
+import axios from "axios";
+import { Pagination } from "@/types/global";
 
 export interface User {
   userId: string;
-  loginName:string;
+  loginName: string;
   userName: string;
   nickName: string;
   email: string;
   phoneNumber: string;
   dept: any;
-  deptName:string;
+  deptName: string;
   createTime: string;
   status: string;
-  psw:string;
-  role:string;
-  roleName:string;
+  psw: string;
+  role: string;
+  roleName: string;
 }
 
 export interface Organization {
@@ -65,16 +65,16 @@
 }
 
 export interface Role {
-  roleId:  string;
-  createTime:  string;
-  updateTime:  string;
-  roleName:  string;
-  remark:  string;
-  iconCls:  string;
-  roleSort:  string;
-  status:  string;
-  roleKey:  string;
-  dataScope:  string;
+  roleId: string;
+  createTime: string;
+  updateTime: string;
+  roleName: string;
+  remark: string;
+  iconCls: string;
+  roleSort: string;
+  status: string;
+  roleKey: string;
+  dataScope: string;
   dept: any;
   resources: any;
   knowledges: any;
@@ -83,101 +83,101 @@
 }
 
 export function RoleList(params: Pagination) {
-  return axios.get<Result<Role[]>>('/base/system/role/list', { params });
+  return axios.get<Result<Role[]>>("/base/system/role/list", { params });
 }
 
 export function RoleDelete(id) {
-  return axios.delete('/base/system/role/' + id);
+  return axios.delete("/base/system/role/" + id);
 }
 
 export function RoleEdit(role) {
-  return axios.put('/base/system/role', { role });
+  return axios.put("/base/system/role", { role });
 }
 
 export function RoleAdd(role) {
-  return axios.post('/base/system/role', { role });
+  return axios.post("/base/system/role", { role });
 }
 
 export function Rolestatus(roleId, status) {
-  return axios.put('/base/system/role/changeStatus', {
+  return axios.put("/base/system/role/changeStatus", {
     roleId: roleId,
-    status: status,
+    status: status
   });
 }
 
 export function UserList(params: Pagination) {
-  return axios.get<Result<User[]>>('/base/system/user/list', { params });
+  return axios.get<Result<User[]>>("/base/system/user/list", { params });
 }
 
 export function Userstatus(userID, status) {
-  return axios.put('/base/system/user/changeStatus', {
+  return axios.put("/base/system/user/changeStatus", {
     userId: userID,
-    status: status,
+    status: status
   });
 }
 
 export function UserChangePwd(userId) {
-  return axios.put('/base/system/user/profile/updatePwd', { userId: userId });
+  return axios.put("/base/system/user/profile/updatePwd", { userId: userId });
 }
 
 export function UserEdit(user) {
-  return axios.put('/base/system/user', { user });
+  return axios.put("/base/system/user", { user });
 }
 
 export function UserAdd(user) {
-  return axios.post('/base/system/user', { user });
+  return axios.post("/base/system/user", { user });
 }
 
 export function UserDelete(id) {
-  return axios.delete('/base/system/user/' + id);
+  return axios.delete("/base/system/user/" + id);
 }
 
 export function OrganizationList(key: string) {
-  return axios.post<Result<Organization[]>>('/base/system/dept/list', {
-    deptName: key,
+  return axios.post<Result<Organization[]>>("/base/system/dept/list", {
+    deptName: key
   });
 }
 
 export function OrganizationAdd(organization) {
-  return axios.post('/base/system/dept', { organization });
+  return axios.post("/base/system/dept", { organization });
 }
 
 export function OrganizationDelete(id) {
-  return axios.delete('/base/system/dept/' + id);
+  return axios.delete("/base/system/dept/" + id);
 }
 
 export function OrganizationUpdate(organization) {
-  return axios.put('/base/system/dept', { organization });
+  return axios.put("/base/system/dept", { organization });
 }
 
 export function OrganizationById(id) {
-  return axios.get<Result<Organization>>('/base/system/dept/' + id);
+  return axios.get<Result<Organization>>("/base/system/dept/" + id);
 }
 
 export function ResourceList(key: string) {
-  return axios.get<Result<Resource[]>>('/base/system/menu/treeselect');
+  return axios.get<Result<Resource[]>>("/base/system/menu/treeselect");
 }
 
 export function ResourceAdd(resource) {
-  return axios.post('/base/system/menu', { resource });
+  return axios.post("/base/system/menu", { resource });
 }
 
 export function ResourceDelete(id) {
-  return axios.delete('/base/system/menu/' + id);
+  return axios.delete("/base/system/menu/" + id);
 }
 
 export function ResourceUpdate(resource) {
-  return axios.put('/base/system/menu', { resource });
+  return axios.put("/base/system/menu", { resource });
 }
 
 export function ResourceById(id) {
-  return axios.get<Result<Resource>>('/base/system/menu/' + id);
+  return axios.get<Result<Resource>>("/base/system/menu/" + id);
 }
 
-export function KnowledgeList() {
-  return axios.get<Result<Knowledge>>('/api/v1/kb/list');
+export function KnowledgeList(role: string) {
+  return axios.get<Result<Knowledge>>("/base/system/knowledge/list" + "?role=" + role);
 }
 
-export function DialogList() {
-  return axios.get<Result<Knowledge>>('/api/v1/dialog/list');
+export function DialogList(role: string) {
+  return axios.get<Result<any>>("/base/system/dialog/list" + "?role=" + role);
 }
diff --git a/src/views/authority/role/index.vue b/src/views/authority/role/index.vue
index 9f38faf..a3b1cc1 100644
--- a/src/views/authority/role/index.vue
+++ b/src/views/authority/role/index.vue
@@ -338,6 +338,7 @@
   let resourcevisible = ref(false);
   let selectRole = ref({});
 
+  let u =JSON.parse(getUserInfo());
 
   const eachChildrenAdd=(node)=>{
     if (node.children?.length > 0) {
@@ -696,7 +697,6 @@
   const MenuData = async (key) => {
     await ResourceList(key).then((res) => {
       let newTree = [];
-      let u =JSON.parse(getUserInfo());
       if (u.role != "admin") {
         removeChild(res.rows, newTree);
       }
@@ -704,11 +704,11 @@
     });
   };
 
-  KnowledgeList().then((res) => {
+  KnowledgeList(u.role).then((res) => {
     knowledgeList.value = res.data;
   });
 
-  DialogList().then((res) => {
+  DialogList(u.role).then((res) => {
     DialogsList.value = res.data;
   });
   queryCanvasList(null).then((canvas) => {
diff --git a/src/views/sessionManager/index.vue b/src/views/sessionManager/index.vue
index 2d252ee..a46713c 100644
--- a/src/views/sessionManager/index.vue
+++ b/src/views/sessionManager/index.vue
@@ -99,55 +99,101 @@
                         backgroundColor:
                           theme === 'light' ? '#ffffff' : '#000000',
                       }"
-                      style="border: none; display: inline"
-                      v-for="(item, tipIndex) in tipMatch(sessionDetail)"
+                      style="border: none;"
+                      v-for="(breakContent, breakIndex) in breakLine(sessionDetail.content)"
                     >
-                      <span v-if="tipIndex == 0">
-                        {{ sessionDetail.content.substring(0, item.index) }}
-                        <a-tooltip
-                          background-color="#3491FA"
-                          :content="
-                            getTipContent(messagenList.reference, index)
-                          "
-                        >
-                          <img
-                            style="width: 20px; height: 20px"
-                            :src="tipImage"
-                          />
-                        </a-tooltip>
-                      </span>
-                      <span v-else>
-                        {{
-                          sessionDetail.content.substring(
-                            item.preIndex + item.item.length,
-                            item.index
-                          )
-                        }}
-                        <a-tooltip
-                          background-color="#3491FA"
-                          :content="
-                            getTipContent(messagenList.reference, index)
-                          "
-                        >
-                          <img
-                            style="width: 20px; height: 20px"
-                            :src="tipImage"
-                          />
-                        </a-tooltip>
-                      </span>
-                    </div>
-                  </a-card>
-                  <a-card v-else>
-                    <div
-                      :class="{ chatItemAnswer: theme === 'light' }"
-                      :style="{
+                      <div
+                        :class="{ chatItemAnswer: theme === 'light' }"
+                        :style="{
                         backgroundColor:
                           theme === 'light' ? '#ffffff' : '#000000',
                       }"
+                        style="border: none;"
+                      v-if="isExistTip(breakContent)">
+                        <div
+                          :class="{ chatItemAnswer: theme === 'light' }"
+                          :style="{
+                        backgroundColor:
+                          theme === 'light' ? '#ffffff' : '#000000',
+                      }"
+                          style="border: none;"
+                          v-for="(item, tipIndex) in tipMatch(breakContent)"
+                        >
+                      <span v-if="tipIndex == 0">
+                        {{ breakContent.substring(0, item.index) }}
+                        <a-tooltip
+                          background-color="#3491FA"
+                          :content="
+                            getTipContent(messagenList.reference, index)
+                          "
+                        >
+                          <img
+                            style="width: 20px; height: 20px"
+                            :src="tipImage"
+                          />
+                        </a-tooltip>
+                      </span>
+                          <span v-else-if ="tipIndex == item.len - 1">
+                        {{
+                              breakContent.substring(
+                                item.preIndex + item.item.length,
+                                item.index
+                              )
+                            }}
+                        <a-tooltip
+                          background-color="#3491FA"
+                          :content="
+                            getTipContent(messagenList.reference, index)
+                          "
+                        >
+                          <img
+                            style="width: 20px; height: 20px"
+                            :src="tipImage"
+                          />
+                        </a-tooltip>
+                        {{
+                              breakContent.substring(item.index+5)
+                            }}
+                      </span>
+                          <span v-else>
+                        {{
+                              breakContent.substring(
+                                item.preIndex + item.item.length,
+                                item.index
+                              )
+                            }}
+                        <a-tooltip
+                          background-color="#3491FA"
+                          :content="
+                            getTipContent(messagenList.reference, index)
+                          "
+                        >
+                          <img
+                            style="width: 20px; height: 20px"
+                            :src="tipImage"
+                          />
+                        </a-tooltip>
+                      </span>
+                        </div>
+                      </div>
+                      <div v-else>
+                        {{ breakContent }}
+                      </div>
+                    </div>
+                  </a-card>
+                  <a-card v-else>
+                    <a-textarea
+                      readonly
+                      auto-size
+                      v-model="sessionDetail.content"
+                      :class="{ chatItemAnswer: theme === 'light' }"
+                      :style="{
+                      backgroundColor:
+                        theme === 'light' ? '#ffffff' : '#000000',
+                    }"
                       style="border: none"
                     >
-                      {{ sessionDetail.content }}
-                    </div>
+                    </a-textarea>
                   </a-card>
                 </template>
                 <!-- <div>{{ sessionDetail.role === 'assistant' }}</div> -->
@@ -456,6 +502,7 @@
   import docx from '@/views/dmx/knowledgeLib/components/docx.vue';
   import excel from '@/views/dmx/knowledgeLib/components/excel.vue';
   import txtPdf from '@/views/dmx/knowledgeLib/components/txtPdf.vue';
+  import { is } from "immutable";
 
   // const url = ref('../../assets/session/PDF.png');
 
@@ -539,13 +586,20 @@
     }
   };
 
-  const tipMatch = (session: any): any[] => {
+  const breakLine = (message: string): string[] => {
+    //鎸塡n鍒嗗壊瀛楃涓�
+    let arr = message.split('\n');
+    return arr
+  }
+
+  const tipMatch = (msg: string): any[] => {
     //match session.content涓殑##[0-9]$$鐨勭储寮�
     let indexs: any[] = [];
     let preTip = 0;
-    session.content.match(/##([0-9]+)\$\$/g)?.map((item) => {
-      let i = session.content.indexOf(item);
-      indexs.push({ index: i, item: item, preIndex: preTip });
+    let matches=msg.match(/##([0-9]+)\$\$/g)
+    matches?.map((item) => {
+      let i = msg.indexOf(item);
+      indexs.push({ index: i, item: item, preIndex: preTip, len: matches.length });
       preTip = i;
     });
     return indexs;

--
Gitblit v1.8.0