From b65e44a020ffb34ac2e872e4afac9a4909140b66 Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期四, 01 八月 2024 09:30:40 +0800
Subject: [PATCH] 配置页面bug的修改
---
src/views/authority/users/index.vue | 160 ++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 144 insertions(+), 16 deletions(-)
diff --git a/src/views/authority/users/index.vue b/src/views/authority/users/index.vue
index 097ab35..e6d5dca 100644
--- a/src/views/authority/users/index.vue
+++ b/src/views/authority/users/index.vue
@@ -149,40 +149,81 @@
</a-modal>
<a-modal width="30%" v-model:visible="resourcevisible" title="鏉冮檺閰嶇疆" @cancel="handleCancel(3)"
- @ok="editDeptHandleOk">
+ @ok="editResourceHandleOk">
<div :style="{ display:'flex', 'flex-direction':'column' }">
<a-tabs :style="{ width: '100%',height: '500px', 'overflow-y': 'auto' }">
<a-tab-pane key="1">
<template #title>
- <icon-calendar/> 鑿滃崟
+ <icon-calendar />
+ 鑿滃崟
</template>
- Content of Tab Panel 1
+ <a-tree
+ class="tree-demo"
+ v-model:checked-keys="checkedKeysMenu"
+ v-model:expanded-keys="expandKdysMenu"
+ :checkable="true"
+ :data="treeDataMenu"
+ :show-line="showLineMenu"
+ @check="onCheckMenu"
+ :fieldNames="{
+ key:'menuId',
+ title:'menuName',
+ children:'children',
+ }"
+ :check-strictly="checkStrictlyMenu"
+ >
+ </a-tree>
</a-tab-pane>
<a-tab-pane key="2">
<template #title>
- <icon-clock-circle/> 鐭ヨ瘑搴�
+ <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>
- <icon-user/> 鏅鸿兘浣�
+ <icon-user />
+ 鏅鸿兘浣�
</template>
Content of Tab Panel 3
</a-tab-pane>
</a-tabs>
- <a-card :style="{ width: '100%',height: '200px', 'overflow-y': 'auto', margin:'1px'}"
- class="card-demo"
- title="鐢ㄦ埛鎵�鏈夋潈闄�"
- hoverable
+ <a-card :style="{ width: '100%',height: '200px', 'overflow-y': 'auto', margin:'1px'}"
+ class="card-demo"
+ title="鐢ㄦ埛鎵�鏈夋潈闄�"
+ hoverable
>
<a-space wrap>
+ 鑿滃崟鍔熻兘锛�
<a-tag
- v-for="(tag, index) of checkResourceStrictly"
- :key="tag.deptId"
- @close="handleRemove(tag)"
+ v-for="(tag, index) of checkStrictlyMenu"
+ :key="tag.menuId"
+ @close="handleMenuRemove(tag)"
>
- {{ tag.deptName }}
+ {{ 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>
@@ -199,7 +240,9 @@
import { Pagination } from "@/types/global";
import type { TableColumnData } from "@arco-design/web-vue/es/table/interface";
import {
+ KnowledgeList,
OrganizationList,
+ ResourceList,
User,
UserAdd,
UserChangePwd,
@@ -215,7 +258,18 @@
let checkedKeys = ref([]);
let expandKdys = ref([]);
let checkStrictly = ref([]);
-let checkResourceStrictly=ref([])
+
+
+let treeDataMenu = ref([]);
+let checkedKeysMenu = ref([]);
+let expandKdysMenu = ref([]);
+let checkStrictlyMenu = ref([]);
+
+let checkedKeysKnowledge= ref([]);
+let checkStrictlyKnowledge= ref([]);
+
+let knowledgeList = ref([]);
+
let menuTips = ref(["鏉冮檺绠$悊", "璐﹀彿"]);
type SizeProps = "mini" | "small" | "medium" | "large";
const account = ref(null);
@@ -262,9 +316,44 @@
}
};
+const onCheckMenu = (newCheckedKeys, event) => {
+ let o = { "menuId": event.node.menuId, "menuName": event.node.menuName };
+ if (event.checked) {
+ checkStrictlyMenu.value.push(o);
+ } else {
+ checkStrictlyMenu.value.forEach((val, idx, array) => {
+ // val: 褰撳墠鍊�
+ if (val.menuId == event.node.menuId) {
+ checkStrictlyMenu.value.splice(idx, 1);
+ return true;
+ }
+ });
+ }
+};
+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
@@ -352,6 +441,22 @@
});
};
+const editResourceHandleOk = async () => {
+ 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();
+ });
+};
+
const editHandleOk = async () => {
if (editform.value.userId.length > 0) {
await UserEdit({
@@ -414,7 +519,21 @@
//鏉冮檺
if (t == 4) {
resourcevisible.value = true;
-
+ 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);
+ });
}
//鏈烘瀯
@@ -468,9 +587,18 @@
treeData.value = [...res.rows];
});
};
+const MenuData = async (key) => {
+ await ResourceList(key).then((res) => {
+ treeDataMenu.value = [...res.rows];
+ });
+};
+KnowledgeList().then((res) => {
+ knowledgeList.value = res.rows;
+});
fetchData();
OrganizationData("");
+MenuData();
const reset = () => {
formModel.value = generateFormModel();
--
Gitblit v1.8.0