修改区域功能下分配的样式
This commit is contained in:
parent
2e623df6d5
commit
f48589bdc9
|
|
@ -107,7 +107,6 @@
|
|||
|
||||
//update-begin-author:taoyan date:2022-6-1 for: VUEN-1144 online 配置成菜单后,打开菜单,显示名称未展示为菜单名称
|
||||
function storePathTitle(path) {
|
||||
console.log('storePathTitle', path);
|
||||
let title = '';
|
||||
if (instance!.attrs) {
|
||||
let item: any = instance!.attrs.item;
|
||||
|
|
|
|||
|
|
@ -89,7 +89,6 @@ const formData = reactive<Record<string, any>>({
|
|||
setDrawerProps({ confirmLoading: false, loading: true });
|
||||
roleId.value = data.roleId;
|
||||
areaFlag.value = data.areaFlag;
|
||||
console.log("🚀 ~ areaFlag.value:", areaFlag.value)
|
||||
//初始化数据
|
||||
const roleResult = await queryTreeListForRole();
|
||||
// update-begin--author:liaozhiyang---date:20240228---for:【QQYUN-8355】角色权限配置的菜单翻译
|
||||
|
|
|
|||
|
|
@ -168,7 +168,6 @@ const { createMessage } = useMessage();
|
|||
* 角色授权弹窗
|
||||
*/
|
||||
function handlePerssion(record) {
|
||||
console.log("🚀 ~ handlePerssion ~ record:", record)
|
||||
openRolePermissionDrawer(true, { roleId: record.nuId,areaFlag:record.areaFlag });
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,14 @@
|
|||
<a-checkbox-group v-model:value="formData.kzgn">
|
||||
<template v-if="item.code === 'jcgn'">
|
||||
<a-col :span="24" v-for="itemOne in item.children">
|
||||
<a-checkbox :value="itemOne.key" style="margin-top:10px;">{{ itemOne.slotTitle }}</a-checkbox>
|
||||
<a-checkbox :value="itemOne.key" style="margin-top:10px;" @change="handleChangeOne">{{ itemOne.slotTitle }}</a-checkbox>
|
||||
<a-row style="margin-left: 20px;">
|
||||
<a-checkbox-group v-model:value="formData.kzgnTwo">
|
||||
<a-col :span="4" v-for="itemTwo in itemOne.children">
|
||||
<a-checkbox :value="itemTwo.key" style="margin-top:10px;" :disabled="formData.kzgn.indexOf(itemOne.key) == -1">{{ itemTwo.slotTitle }}</a-checkbox>
|
||||
</a-col>
|
||||
</a-checkbox-group>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</template>
|
||||
</a-checkbox-group>
|
||||
|
|
@ -41,7 +48,7 @@
|
|||
</BasicDrawer>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref, reactive, computed, unref, onMounted } from 'vue';
|
||||
import { ref, reactive, computed, unref, onMounted, h } from 'vue';
|
||||
import { BasicDrawer, useDrawer, useDrawerInner } from '/@/components/Drawer';
|
||||
import { BasicTree, TreeItem } from '/@/components/Tree';
|
||||
import { PopConfirmButton } from '/@/components/Button';
|
||||
|
|
@ -69,6 +76,7 @@ const formData = reactive<Record<string, any>>({
|
|||
jcgn: '',
|
||||
nuId: '',
|
||||
kzgn: '',
|
||||
kzgnTwo:'',
|
||||
});
|
||||
//展开折叠的key
|
||||
const expandedKeys = ref<any>([]);
|
||||
|
|
@ -79,50 +87,100 @@ const formData = reactive<Record<string, any>>({
|
|||
setDrawerProps({ confirmLoading: false, loading: true });
|
||||
roleId.value = data.roleId;
|
||||
areaFlag.value = data.areaFlag;
|
||||
console.log("🚀 ~ areaFlag.value:", areaFlag.value)
|
||||
//初始化数据
|
||||
const roleResult = await queryTreeListForRole();
|
||||
// update-begin--author:liaozhiyang---date:20240228---for:【QQYUN-8355】角色权限配置的菜单翻译
|
||||
treeData.value = translateTitle(roleResult.treeList);
|
||||
// update-end--author:liaozhiyang---date:20240228---for:【QQYUN-8355】角色权限配置的菜单翻译
|
||||
allTreeKeys.value = roleResult.ids;
|
||||
// update-begin--author:liaozhiyang---date:20240531---for:【TV360X-590】角色授权弹窗操作缓存
|
||||
const localData = localStorage.getItem(ROLE_AUTH_CONFIG_KEY);
|
||||
if (localData) {
|
||||
} else {
|
||||
expandedKeys.value = roleResult.ids;
|
||||
}
|
||||
// update-end--author:liaozhiyang---date:20240531---for:【TV360X-590】角色授权弹窗操作缓存
|
||||
//初始化角色菜单数据
|
||||
const permResult = await queryRolePermission({ nuId: unref(roleId) });
|
||||
formData.kzgn = permResult;
|
||||
// if(areaFlag.value == 1){
|
||||
// var jcgn = "";
|
||||
// treeData.value.forEach(function(item) {
|
||||
// if(item.code == 'hldy'){
|
||||
// var list = item.children;
|
||||
// list.forEach(function(itemOne) {
|
||||
// jcgn = jcgn+itemOne.key+",";
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
// formData.jcgn = jcgn.substring(0,jcgn.length-1);
|
||||
// }else if(areaFlag.value == 3){
|
||||
// var jcgn = "";
|
||||
// treeData.value.forEach(function(item) {
|
||||
// if(item.code == 'kf'){
|
||||
// var list = item.children;
|
||||
// list.forEach(function(itemOne) {
|
||||
// jcgn = jcgn+itemOne.key+",";
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
// formData.jcgn = jcgn.substring(0,jcgn.length-1);
|
||||
// }
|
||||
// formData.kzgn = permResult;
|
||||
// formData.kzgnTwo = permResult;
|
||||
|
||||
// 根据 treeData 的层级结构分离数据
|
||||
const { firstLevelKeys, secondLevelKeys } = separatePermissionsByLevel(
|
||||
permResult,
|
||||
treeData.value
|
||||
);
|
||||
|
||||
formData.kzgn = firstLevelKeys; // 只存第一层节点的key
|
||||
formData.kzgnTwo = secondLevelKeys; // 只存第二层节点的key
|
||||
|
||||
checkedKeys.value = permResult;
|
||||
defaultCheckedKeys.value = permResult;
|
||||
setDrawerProps({ loading: false });
|
||||
});
|
||||
/**
|
||||
* 根据权限层级分离数据
|
||||
* @param permResult 权限结果数组
|
||||
* @param treeData 树形数据
|
||||
* @returns 分离后的第一层和第二层key数组
|
||||
*/
|
||||
function separatePermissionsByLevel(permResult, treeData) {
|
||||
const firstLevelKeys = [];
|
||||
const secondLevelKeys = [];
|
||||
|
||||
if (!permResult || !Array.isArray(permResult) || !treeData || !Array.isArray(treeData)) {
|
||||
return { firstLevelKeys, secondLevelKeys };
|
||||
}
|
||||
|
||||
// 查找 jcgn 节点
|
||||
const jcgnNode = treeData.find(item => item.code === 'jcgn');
|
||||
if (!jcgnNode || !jcgnNode.children) {
|
||||
return { firstLevelKeys, secondLevelKeys };
|
||||
}
|
||||
|
||||
// 收集所有第一层节点的key
|
||||
const allFirstLevelKeys = jcgnNode.children.map(item => item.key);
|
||||
|
||||
// 收集所有第二层节点的key
|
||||
const allSecondLevelKeys = [];
|
||||
jcgnNode.children.forEach(item => {
|
||||
if (item.children && Array.isArray(item.children)) {
|
||||
const childKeys = item.children.map(child => child.key);
|
||||
allSecondLevelKeys.push(...childKeys);
|
||||
}
|
||||
});
|
||||
|
||||
// 分离数据
|
||||
permResult.forEach(key => {
|
||||
if (allFirstLevelKeys.includes(key)) {
|
||||
// 是第一层节点
|
||||
firstLevelKeys.push(key);
|
||||
} else if (allSecondLevelKeys.includes(key)) {
|
||||
// 是第二层节点
|
||||
secondLevelKeys.push(key);
|
||||
} else {
|
||||
// 既不是第一层也不是第二层,默认放到第一层
|
||||
firstLevelKeys.push(key);
|
||||
}
|
||||
});
|
||||
|
||||
return { firstLevelKeys, secondLevelKeys };
|
||||
}
|
||||
/**
|
||||
* 第一层节点点击事件
|
||||
* @param e 树节点
|
||||
*/
|
||||
function handleChangeOne(e){
|
||||
console.log(e.target.value);
|
||||
const checkedValue = e.target.value;
|
||||
const isChecked = e.target.checked;
|
||||
// 查找对应的父节点
|
||||
const parentNode = treeData.value.find(item => item.code === 'jcgn')
|
||||
?.children .find(child => child.key === checkedValue);
|
||||
if (parentNode && !isChecked) {
|
||||
// 取消选中父节点时,需要同时取消其所有子节点的选中状态
|
||||
const childKeys = parentNode.children?.map(child => child.key) || [];
|
||||
// 从 kzgnTwo 中移除所有子节点
|
||||
formData.kzgnTwo = formData.kzgnTwo.filter(key => !childKeys.includes(key));
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* 2024-02-28
|
||||
* liaozhiyang
|
||||
|
|
@ -160,19 +218,28 @@ const formData = reactive<Record<string, any>>({
|
|||
defaultCheckedKeys.value = [];
|
||||
selectedKeys.value = [];
|
||||
roleId.value = '';
|
||||
formData.kzgnTwo = '';
|
||||
}
|
||||
/**
|
||||
* 提交
|
||||
*/
|
||||
async function handleSubmit(exit) {
|
||||
var kzgn = formData.kzgn;
|
||||
|
||||
var kzgn = formData.kzgn;
|
||||
var kzgnTwo = formData.kzgnTwo;
|
||||
for(var i=0;i<kzgnTwo.length;i++){
|
||||
kzgn = kzgn.concat(kzgnTwo[i]);
|
||||
}
|
||||
console.log("🚀 ~ handleSubmit ~ kzgn:", kzgn)
|
||||
//去掉kzgn的重复数据
|
||||
kzgn = [...new Set(kzgn)];
|
||||
console.log("🚀 ~ handleSubmit ~ kzgn:", kzgn)
|
||||
|
||||
let params = {
|
||||
roleId: unref(roleId),
|
||||
permissionIds: unref(kzgn).join(','),
|
||||
lastpermissionIds: unref(defaultCheckedKeys).join(','),
|
||||
};
|
||||
//update-begin-author:taoyan date:2023-2-11 for: issues/352 VUE角色授权重复保存
|
||||
console.log(params);
|
||||
if(loading.value===false){
|
||||
await doSave(params)
|
||||
}else{
|
||||
|
|
|
|||
Loading…
Reference in New Issue