src/api/authority.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/authority/role/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/sessionManager/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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); } 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) => { 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;