From 95baade90cc1d433201fe6a43455b40b5907ea4b Mon Sep 17 00:00:00 2001 From: yinbangzhong <zhongbangyin@126.com> Date: 星期四, 01 八月 2024 15:54:35 +0800 Subject: [PATCH] 权限智能体添加 --- src/views/authority/users/index.vue | 67 +++++++++++++++++++++ src/api/authority.ts | 100 +++++++++++++++++---------------- src/views/authority/resource/index.vue | 6 +- 3 files changed, 120 insertions(+), 53 deletions(-) diff --git a/src/api/authority.ts b/src/api/authority.ts index 0a68b1b..76e14c9 100644 --- a/src/api/authority.ts +++ b/src/api/authority.ts @@ -1,5 +1,5 @@ -import axios from "axios"; -import { Pagination } from "@/types/global"; +import axios from 'axios'; +import { Pagination } from '@/types/global'; export interface User { userId: string; @@ -9,7 +9,8 @@ phoneNumber: string; dept: any; resources: any; - knowledges:any; + knowledges: any; + dialogs: any; createTime: string; status: string; } @@ -28,30 +29,30 @@ } export interface Resource { - "menuId": string; - "createTime": string; - "updateTime": string; - "menuName": string; - "component": string; - "description": string; - "icon": string; - "orderNum": string; - "target": string; - "parentId": string; - "parentName": string; - "children": any; - "syesourcetype": string; - "status": string; - "path": string; - "perms": string; - "menuType": string; + menuId: string; + createTime: string; + updateTime: string; + menuName: string; + component: string; + description: string; + icon: string; + orderNum: string; + target: string; + parentId: string; + parentName: string; + children: any; + syesourcetype: string; + status: string; + path: string; + perms: string; + menuType: string; } export interface Knowledge { - "id": string; - "createTime": string; - "updateTime": string; - "name": string; + id: string; + createTime: string; + updateTime: string; + name: string; } export interface Result<T> { @@ -62,75 +63,78 @@ } 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", { "userId": userID, "status": status }); + return axios.put('/base/system/user/changeStatus', { + userId: userID, + 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(userId) { - return axios.delete("/base/system/user/" + userId); + return axios.delete('/base/system/user/' + userId); } 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>>("/base/system/knowledge/list"); -} \ No newline at end of file + return axios.get<Result<Knowledge>>('/base/system/knowledge/list'); +} + +export function DialogList() { + return axios.get<Result<Knowledge>>('/base/system/dialog/list'); +} diff --git a/src/views/authority/resource/index.vue b/src/views/authority/resource/index.vue index 38f1e06..3efc9c1 100644 --- a/src/views/authority/resource/index.vue +++ b/src/views/authority/resource/index.vue @@ -107,15 +107,15 @@ // 0鐩綍 1鑿滃崟 2鎸夐挳 let options = ref([ { - key: "0", + key: "3", value: "鐩綍" }, { - key: "1", + key: "0", value: "鑿滃崟" }, { - key: "2", + key: "1", value: "鎸夐挳" } ]); diff --git a/src/views/authority/users/index.vue b/src/views/authority/users/index.vue index 17787c8..80bb673 100644 --- a/src/views/authority/users/index.vue +++ b/src/views/authority/users/index.vue @@ -197,7 +197,16 @@ <icon-user /> 鏅鸿兘浣� </template> - Content of Tab Panel 3 + <a-checkbox-group v-model="checkedKeysDialog" direction="vertical" @change="onCheckDialog"> + <a-checkbox + v-for="(dialog, index) of DialogsList" + :value="dialog.id" + :lable="dialog.name" + @change="onCheckDialog" + > + {{ dialog.name }} + </a-checkbox> + </a-checkbox-group> </a-tab-pane> </a-tabs> <a-card :style="{ width: '100%',height: '200px', 'overflow-y': 'auto', margin:'1px'}" @@ -226,6 +235,17 @@ {{ tag.knowledgeName }} </a-tag> </a-space> + <a-divider /> + <a-space wrap> + 鏅鸿兘浣�: + <a-tag + v-for="(tag, index) of checkStrictlyDialog" + :key="tag.dialogId" + @close="handleDialogRemove(tag)" + > + {{ tag.dialogName }} + </a-tag> + </a-space> </a-card> </div> @@ -240,6 +260,7 @@ import { Pagination } from "@/types/global"; import type { TableColumnData } from "@arco-design/web-vue/es/table/interface"; import { + DialogList, KnowledgeList, OrganizationList, ResourceList, @@ -268,7 +289,12 @@ let checkedKeysKnowledge= ref([]); let checkStrictlyKnowledge= ref([]); +let checkedKeysDialog= ref([]); +let checkStrictlyDialog= ref([]); + let knowledgeList = ref([]); +let DialogsList = ref([]); + let menuTips = ref(["鏉冮檺绠$悊", "璐﹀彿"]); type SizeProps = "mini" | "small" | "medium" | "large"; @@ -344,6 +370,23 @@ }); } }; + + +const onCheckDialog = (newCheckedKeys, event) => { + let o = { "dialogId": event.target.value, "dialogName": event.target.labels[0].innerText }; + if (event.target.checked) { + checkStrictlyDialog.value.push(o); + } else { + checkStrictlyDialog.value.forEach((val, idx, array) => { + // val: 褰撳墠鍊� + if (val.dialogId == event.target.value) { + checkStrictlyDialog.value.splice(idx, 1); + return true; + } + }); + } +}; + const handleRemove = (key) => { checkStrictly.value = checkStrictly.value.filter((tag) => tag !== key); }; @@ -353,6 +396,10 @@ const handleKnowledgeRemove = (key) => { checkStrictlyKnowledge.value = checkStrictlyKnowledge.value.filter((tag) => tag !== key); }; +const handleDialogRemove = (key) => { + checkStrictlyDialog.value = checkStrictlyDialog.value.filter((tag) => tag !== key); +}; + const basePagination: Pagination = { current: 1, @@ -442,15 +489,21 @@ }; const editResourceHandleOk = async () => { - let resources: Array = [],Knowledges: Array = [], user: User = { "userId": selectUser.value.userId }; + let resources: Array = [],dialogs: Array = [],Knowledges: Array = [], user: User = { "userId": selectUser.value.userId }; checkStrictlyMenu.value.forEach((val) => { resources.push(val.menuId); }); user.resources = resources; + checkStrictlyKnowledge.value.forEach((val) => { Knowledges.push(val.knowledgeId); }); user.knowledges = Knowledges; + + checkStrictlyDialog.value.forEach((val) => { + dialogs.push(val.dialogId); + }); + user.dialogs = dialogs; await UserEdit(user).then((res) => { fetchData(); @@ -524,6 +577,8 @@ checkStrictlyMenu.value = []; checkStrictlyKnowledge.value=[]; checkedKeysKnowledge.value=[]; + checkStrictlyDialog.value=[]; + checkedKeysDialog.value=[]; selectUser.value = record; record.resources.forEach((val) => { checkStrictlyMenu.value.push({ "menuId": val.menuId, "menuName": val.menuName }); @@ -533,6 +588,10 @@ record.knowledges.forEach((val) => { checkStrictlyKnowledge.value.push({ "knowledgeId": val.id, "knowledgeName": val.name }); checkedKeysKnowledge.value.push(val.id); + }); + record.dialogs.forEach((val) => { + checkStrictlyDialog.value.push({ "dialogId": val.id, "dialogName": val.name }); + checkedKeysDialog.value.push(val.id); }); } @@ -596,6 +655,10 @@ KnowledgeList().then((res) => { knowledgeList.value = res.rows; }); + +DialogList().then((res) => { + DialogsList.value = res.rows; +}); fetchData(); OrganizationData(""); MenuData(); -- Gitblit v1.8.0