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