修改区域功能下分配的样式

This commit is contained in:
yangjun 2026-04-23 10:57:34 +08:00
parent 2e623df6d5
commit f48589bdc9
4 changed files with 101 additions and 37 deletions

View File

@ -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;

View File

@ -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---forQQYUN-8355

View File

@ -168,7 +168,6 @@ const { createMessage } = useMessage();
* 角色授权弹窗
*/
function handlePerssion(record) {
console.log("🚀 ~ handlePerssion ~ record:", record)
openRolePermissionDrawer(true, { roleId: record.nuId,areaFlag:record.areaFlag });
}

View File

@ -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---forQQYUN-8355
treeData.value = translateTitle(roleResult.treeList);
// update-end--author:liaozhiyang---date:20240228---forQQYUN-8355
allTreeKeys.value = roleResult.ids;
// update-begin--author:liaozhiyang---date:20240531---forTV360X-590
const localData = localStorage.getItem(ROLE_AUTH_CONFIG_KEY);
if (localData) {
} else {
expandedKeys.value = roleResult.ids;
}
// update-end--author:liaozhiyang---date:20240531---forTV360X-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{