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