From 145e82ce09bd73bfe11afabd70a00f01a88d4be6 Mon Sep 17 00:00:00 2001
From: wangting <wangting@vci-tech.com>
Date: 星期三, 18 十二月 2024 17:37:00 +0800
Subject: [PATCH] 图标管理
---
Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/index.vue | 76 ++++++++++++++++++++++++++-----------
1 files changed, 53 insertions(+), 23 deletions(-)
diff --git a/Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/index.vue b/Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/index.vue
index d387f92..b22e484 100644
--- a/Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/authority/ui/uiAuthorization/index.vue
@@ -1,7 +1,7 @@
<template>
<el-container>
<el-aside>
- <basic-container>
+ <basic-container v-loading="treeLoading">
<div ref="TreeBox" style="height: calc(100vh - 154px);!important;">
<!-- 宸︿晶鏍� -->
<div style="height: calc(100vh - 195px);">
@@ -19,11 +19,11 @@
</el-aside>
<el-main>
- <basic-container v-loading="treeLoading">
+ <basic-container v-loading="mainLoading">
<h3 style="margin: 0 0 10px 0">UI鏉冮檺閰嶇疆</h3>
<div>
- <el-button icon="el-icon-place" plain size="small" type="primary" @click="saveHandler">鎺堟潈</el-button>
- <el-button icon="el-icon-close" plain size="small" style="margin-right: 40px;" type="primary"
+ <el-button v-if="permissionList.rightBtn" icon="el-icon-place" plain size="small" type="primary" @click="saveHandler">鎺堟潈</el-button>
+ <el-button v-if="permissionList.resetBtn" icon="el-icon-close" plain size="small" style="margin-right: 40px;" type="primary"
@click="clearValue">閲嶇疆
</el-button>
涓氬姟绫诲瀷锛�
@@ -68,12 +68,14 @@
import {gridRoles, getRightListByRoleId} from "@/api/system/role/api";
import {getUIAuthor, authorizedUI} from "@/api/authority/ui/uiAuthor";
import {getBizTree, gridUIContextData} from "@/api/UI/uiDefine";
+import {mapGetters} from "vuex";
export default {
name: "index",
data() {
return {
treeLoading: false,
+ mainLoading:false,
type: '',//涓氬姟绫诲瀷
context: '',//UI涓婁笅鏂嘽ode
treeOption: {
@@ -105,20 +107,28 @@
contextData: []
}
},
+ computed:{
+ ...mapGetters(["permission"]),
+ permissionList() {
+ return {
+ rightBtn: this.vaildData(this.permission[this.$route.query.id].RIGHT, false),
+ resetBtn: this.vaildData(this.permission[this.$route.query.id].reset, false),
+ };
+ },
+ },
created() {
this.getTreeList();
// this.getUITree();
this.getTypeList();
},
methods: {
-
getTreeList() {
- const loading = this.$loading({});
+ this.treeLoading = true;
gridRoles().then(res => {
this.treeData = res.data.data;
- loading.close();
+ this.treeLoading = false;
}).catch(error => {
- loading.close();
+ this.treeLoading = false;
})
},
@@ -126,18 +136,10 @@
nodeClick(row) {
this.nodeRow = row;
this.getUITree();
- // const params = {
- // roleId: row.oid
- // }
- // getRightListByRoleId(params).then(res => {
- // const data = res.data.data.map(item => item.funcId);
- // console.log(data);
- // this.$refs.uiTree.setCheckedKeys(data);
- // })
},
getUITree() {
- this.treeLoading = true;
+ this.mainLoading = true;
const params = {
'conditionMap[roleId]': this.nodeRow.oid,
'conditionMap[type]': this.type,
@@ -162,9 +164,9 @@
const checkedData = this.findCheckedOids(res.data.data[0]);
this.$refs.uiTree.setCheckedKeys(checkedData);
- this.treeLoading = false;
+ this.mainLoading = false;
}).catch(error => {
- this.treeLoading = false;
+ this.mainLoading = false;
})
},
@@ -173,14 +175,12 @@
if (obj.checked === true) {
result.push(obj.oid);
}
-
// 濡傛灉鏈� children锛屽垯缁х画閬嶅巻
if (obj.children && obj.children.length > 0) {
obj.children.forEach(child => {
this.findCheckedOids(child, result);
});
}
-
return result;
},
@@ -188,7 +188,7 @@
processChildren(item) {
if (item.children && item.children.length > 0) {
item.children = item.children.map(child => {
- if (child.level < 2) {
+ if (child.level < 3) {
// 榛樿鏍戣妭鐐瑰睍寮�涓ゅ眰鏁堟灉
this.defaultExpandKeys.push(child.oid)
}
@@ -243,15 +243,45 @@
saveHandler() {
const selectTreeList = this.$refs.uiTree.getCheckedNodes();
+ const selectParentList = this.$refs.uiTree.getHalfCheckedNodes();
if (selectTreeList.length == 0) {
this.$message.error("璇烽�夋嫨鍔熻兘妯″潡");
return;
}
+ const selectTreeData = selectTreeList.map(item => {
+ return {
+ checked: true,
+ expanded: true,
+ data:item.data,
+ parentId:item.parentId,
+ level: item.level,
+ leaf:item.leaf,
+ oid: item.oid,
+ text: item.text
+ }
+ })
+
+ const parentData = selectParentList.map(item => {
+ return {
+ checked: false,
+ expanded: true,
+ data:item.data,
+ parentId:item.parentId,
+ level: item.level,
+ leaf:item.leaf,
+ oid: item.oid,
+ text: item.text
+ }
+ })
+ // 鍦ㄥ崐閫夌姸鎬佷腑杩囨护鎺夐《绾ц妭鐐� oid 涓� root
+ const filterSelectTreeData = parentData.filter(item => item.oid !== 'root');
+
+ const data = [...selectTreeData,...filterSelectTreeData];
const formData = {
roleId: this.nodeRow.oid,
type: this.type,
context: this.context,
- selectTreeList: selectTreeList
+ selectTreeList: data
}
authorizedUI(formData).then(res => {
if (res.data.success) {
--
Gitblit v1.9.3