op端企业管理服务权限树修改

This commit is contained in:
duyufeng
2024-08-28 08:57:32 +08:00
parent 169ee2f432
commit 029d665c0f
2 changed files with 64 additions and 7 deletions

View File

@@ -32,7 +32,7 @@
v-model:value="searchValue"
style="margin-bottom: 8px"
@search="onSearch" /> -->
<a-tree v-if="treeData?.length" v-model:checkedKeys="checkedKeys" v-bind="serverTree" />
<a-tree v-if="treeData?.length" v-model:checkedKeys="checkedKeys" v-bind="serverTree"/>
</ns-drawer>
<TreeAdd ref="treeAdd" @ok="handleOk" :info="currentBoundaryRecord" />
@@ -82,9 +82,10 @@
const comApi = computed(() => {
return calMap[opType.value as keyof typeof calMap];
});
// 公共请求方法包含tablereloaddrawerclose
const fetch = (params, isReload = true) => {
console.log(params)
console.log(comApi.value)
http.post(comApi.value, params).then(() => {
NsMessage.success('操作成功');
onClose();
@@ -197,10 +198,61 @@
// 获取服务权限树
const getTree = (params) => {
return http.post(enterPrise.permissionTree, params).then((res) => {
treeData.value = res.data?.data;
// treeData.value = res.data?.data;
let dataTreeList = res.data?.data;
let getDataTreeList = dataTreeListReply(dataTreeList)
treeData.value = filterTreeData(getDataTreeList);
});
};
getTree({});
// 递归处理权限树数据将子级为空的节点增加“hidden"标识)
const dataTreeListReply =(data:any)=>{
return data.map(item => {
if (item.menus && item.menus.length > 0) {
return {
...item,
menus: dataTreeListReply(item.menus),
};
}
if (item.menus && item.menus.length == 0) {
item.hidden = true;
}
return item;
});
}
//递归处理服务权限树数据将子级menus为空的节点隐藏
const filterTreeData = (data:any) => {
return data.map(item => {
//方法一给子节点menus为空的当前节点增加样式控制显示隐藏
if (item.menus && item.menus.length > 0) {
item.menus.map(itemchild=>{
if(itemchild.menus && itemchild.menus.length==0){
item.class = 'parentNodeArrowHide';
}
})
return {
...item,
menus: filterTreeData(item.menus),
};
}else{
if(item.hidden){
item.class = 'leafNodeHide';
}
}
return item;
})
//方法二递归过滤掉滤掉hidden的节点
// return data.filter(item => !item.hidden).map(item => {
// if (item.menus) {
// return {
// ...item,
// menus: filterTreeData(item.menus),
// };
// }
// return item;
// });
}
getTree({})
// 获取当前企业拥有的权限数据
const getPermissionData = (params) => {
@@ -354,3 +406,11 @@
}
}
</style>
<style>
.leafNodeHide{
display:none!important;
}
.parentNodeArrowHide .ant-tree-switcher{
visibility: hidden;
}
</style>

View File

@@ -164,7 +164,6 @@
};
//菜单类型按钮切换
const chanageMenuType = (e:any,typeMenu:any)=>{
console.log(e)
let currentType = null;
if(e && e.target){
currentType = e.target.value;
@@ -246,8 +245,6 @@
if(menuRadioType.value==1){
params.pid = currentLineData.value?currentLineData.value.pid:"root";//一级菜单pid,传'root'
}
console.log("1234567777")
console.log(menuRadioType.value)
if(addOrEditType.value==1){//新增
http.post(menuS.queryMenuPageAdd, params).then(() => {
NsMessage.success('操作成功');