From 90075a6b89059dbbfad68019a551a145bec8a145 Mon Sep 17 00:00:00 2001
From: yinbangzhong <zhongbangyin@126.com>
Date: 星期二, 30 七月 2024 11:31:18 +0800
Subject: [PATCH] 权限用户资源知识库
---
src/views/authority/users/index.vue | 65 +++++++++++++++++++++++++++++++-
src/api/authority.ts | 16 +++++++-
2 files changed, 76 insertions(+), 5 deletions(-)
diff --git a/src/api/authority.ts b/src/api/authority.ts
index 3db14ab..682fe96 100644
--- a/src/api/authority.ts
+++ b/src/api/authority.ts
@@ -8,7 +8,8 @@
email: string;
phoneNumber: string;
dept: any;
- resources:any;
+ resources: any;
+ knowledges:any;
createTime: string;
status: string;
}
@@ -37,13 +38,20 @@
"orderNum": string;
"target": string;
"parentId": string;
- "parentName":string;
+ "parentName": string;
"children": any;
"syesourcetype": string;
"status": string;
"path": string;
"perms": string;
"menuType": string;
+}
+
+export interface Knowledge {
+ "knowledgeId": string;
+ "createTime": string;
+ "updateTime": string;
+ "knowledgeName": string;
}
export interface Result<T> {
@@ -121,4 +129,8 @@
export function ResourceById(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
diff --git a/src/views/authority/users/index.vue b/src/views/authority/users/index.vue
index d25c456..e6d5dca 100644
--- a/src/views/authority/users/index.vue
+++ b/src/views/authority/users/index.vue
@@ -179,7 +179,18 @@
<icon-clock-circle />
鐭ヨ瘑搴�
</template>
- Content of Tab Panel 2
+ <a-space direction="vertical" size="large">
+ <a-checkbox-group v-model="checkedKeysKnowledge" direction="vertical" @change="onCheckKnowledge">
+ <a-checkbox
+ v-for="(knowledg, index) of knowledgeList"
+ :value="knowledg.knowledgeId"
+ :lable="knowledg.knowledgeName"
+ @change="onCheckKnowledge"
+ >
+ {{ knowledg.knowledgeName }}
+ </a-checkbox>
+ </a-checkbox-group>
+ </a-space>
</a-tab-pane>
<a-tab-pane key="3">
<template #title>
@@ -195,12 +206,24 @@
hoverable
>
<a-space wrap>
+ 鑿滃崟鍔熻兘锛�
<a-tag
v-for="(tag, index) of checkStrictlyMenu"
:key="tag.menuId"
@close="handleMenuRemove(tag)"
>
{{ tag.menuName }}
+ </a-tag>
+ </a-space>
+ <a-divider />
+ <a-space wrap>
+ 鐭ヨ瘑搴�:
+ <a-tag
+ v-for="(tag, index) of checkStrictlyKnowledge"
+ :key="tag.knowledgeId"
+ @close="handleKnowledgeRemove(tag)"
+ >
+ {{ tag.knowledgeName }}
</a-tag>
</a-space>
</a-card>
@@ -217,6 +240,7 @@
import { Pagination } from "@/types/global";
import type { TableColumnData } from "@arco-design/web-vue/es/table/interface";
import {
+ KnowledgeList,
OrganizationList,
ResourceList,
User,
@@ -241,6 +265,10 @@
let expandKdysMenu = ref([]);
let checkStrictlyMenu = ref([]);
+let checkedKeysKnowledge= ref([]);
+let checkStrictlyKnowledge= ref([]);
+
+let knowledgeList = ref([]);
let menuTips = ref(["鏉冮檺绠$悊", "璐﹀彿"]);
type SizeProps = "mini" | "small" | "medium" | "large";
@@ -302,12 +330,30 @@
});
}
};
+const onCheckKnowledge = (newCheckedKeys, event) => {
+ let o = { "knowledgeId": event.target.value, "knowledgeName": event.target.labels[0].innerText };
+ if (event.target.checked) {
+ checkStrictlyKnowledge.value.push(o);
+ } else {
+ checkStrictlyKnowledge.value.forEach((val, idx, array) => {
+ // val: 褰撳墠鍊�
+ if (val.knowledgeId == event.target.value) {
+ checkStrictlyKnowledge.value.splice(idx, 1);
+ return true;
+ }
+ });
+ }
+};
const handleRemove = (key) => {
checkStrictly.value = checkStrictly.value.filter((tag) => tag !== key);
};
const handleMenuRemove = (key) => {
checkStrictlyMenu.value = checkStrictlyMenu.value.filter((tag) => tag !== key);
};
+const handleKnowledgeRemove = (key) => {
+ checkStrictlyKnowledge.value = checkStrictlyKnowledge.value.filter((tag) => tag !== key);
+};
+
const basePagination: Pagination = {
current: 1,
pageSize: 20
@@ -396,11 +442,16 @@
};
const editResourceHandleOk = async () => {
- let resources: Array = [], user: User = { "userId": selectUser.value.userId };
+ let resources: 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;
+
await UserEdit(user).then((res) => {
fetchData();
});
@@ -471,11 +522,17 @@
checkedKeysMenu.value = [];
expandKdysMenu.value = [];
checkStrictlyMenu.value = [];
+ checkStrictlyKnowledge.value=[];
+ checkedKeysKnowledge.value=[];
selectUser.value = record;
record.resources.forEach((val) => {
checkStrictlyMenu.value.push({ "menuId": val.menuId, "menuName": val.menuName });
checkedKeysMenu.value.push(val.menuId);
expandKdysMenu.value.push(val.menuId);
+ });
+ record.knowledges.forEach((val) => {
+ checkStrictlyKnowledge.value.push({ "knowledgeId": val.knowledgeId, "knowledgeName": val.knowledgeName });
+ checkedKeysKnowledge.value.push(val.knowledgeId);
});
}
@@ -536,7 +593,9 @@
});
};
-
+KnowledgeList().then((res) => {
+ knowledgeList.value = res.rows;
+});
fetchData();
OrganizationData("");
MenuData();
--
Gitblit v1.8.0