Commit f38ea10d7a9f1fed6f152c93c91663a2c6aca925

Authored by fengtao
1 parent 28998d89

fix:修改角色管理菜单不自动展开问题

@@ -10,10 +10,10 @@ @@ -10,10 +10,10 @@
10 <BasicForm @register="registerForm"> 10 <BasicForm @register="registerForm">
11 <template #menu> 11 <template #menu>
12 <BasicTree 12 <BasicTree
  13 + v-if="treeData.length"
13 checkable 14 checkable
14 toolbar 15 toolbar
15 - defaultExpandAll  
16 - v-if="treeData.length" 16 + autoExpandParent
17 ref="treeRef" 17 ref="treeRef"
18 :treeData="treeData" 18 :treeData="treeData"
19 :replaceFields="{ title: 'menuName' }" 19 :replaceFields="{ title: 'menuName' }"
@@ -69,8 +69,16 @@ @@ -69,8 +69,16 @@
69 } 69 }
70 }); 70 });
71 } 71 }
  72 + // function lookForAllId(data = [], arr = []) {
  73 + // for (const item of data) {
  74 + // arr.push(item.parentId);
  75 + // if (item.children && item.children.length > 0) lookForAllId(item.children, arr);
  76 + // }
  77 + // return arr;
  78 + // }
72 const originMenus = ref(); 79 const originMenus = ref();
73 const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { 80 const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
  81 + allCheckedKeys.value = [];
74 resetFields(); 82 resetFields();
75 roleId.value = ''; 83 roleId.value = '';
76 // 在打开弹窗时清除所有选择的菜单 84 // 在打开弹窗时清除所有选择的菜单
@@ -85,6 +93,7 @@ @@ -85,6 +93,7 @@
85 } 93 }
86 // 更新 94 // 更新
87 if (unref(isUpdate)) { 95 if (unref(isUpdate)) {
  96 + allCheckedKeys.value = [];
88 checked.value = []; 97 checked.value = [];
89 //通过角色id去获取角色对应的菜单的ids 98 //通过角色id去获取角色对应的菜单的ids
90 roleMenus.value = await getMenusIdsByRoleId(data.record.id); 99 roleMenus.value = await getMenusIdsByRoleId(data.record.id);
@@ -107,6 +116,8 @@ @@ -107,6 +116,8 @@
107 } 116 }
108 nextTick(() => { 117 nextTick(() => {
109 treeRef.value.setCheckedKeys(checked.value); 118 treeRef.value.setCheckedKeys(checked.value);
  119 + // const expandTreeIds = lookForAllId(treeData.value);
  120 + // treeRef.value.setExpandedKeys(expandTreeIds);
110 }); 121 });
111 roleId.value = data.record.id; 122 roleId.value = data.record.id;
112 setFieldsValue(data.record); 123 setFieldsValue(data.record);
@@ -127,6 +138,9 @@ @@ -127,6 +138,9 @@
127 status: values.status, 138 status: values.status,
128 menu: allCheckedKeys.value.length ? allCheckedKeys.value : originMenus.value, 139 menu: allCheckedKeys.value.length ? allCheckedKeys.value : originMenus.value,
129 }; 140 };
  141 + console.log(allCheckedKeys.value);
  142 + if (allCheckedKeys.value.length == 0) return createMessage.error('请勾选权限菜单');
  143 + if (req.menu == undefined) return createMessage.error('请勾选权限菜单');
130 saveOrUpdateRoleInfoWithMenu(req).then(() => { 144 saveOrUpdateRoleInfoWithMenu(req).then(() => {
131 closeDrawer(); 145 closeDrawer();
132 emit('success'); 146 emit('success');
@@ -12,6 +12,7 @@ @@ -12,6 +12,7 @@
12 <BasicTree 12 <BasicTree
13 v-if="treeData.length > 0" 13 v-if="treeData.length > 0"
14 :treeData="treeData" 14 :treeData="treeData"
  15 + autoExpandParent
15 :replaceFields="{ title: 'menuName' }" 16 :replaceFields="{ title: 'menuName' }"
16 :checkedKeys="roleMenus" 17 :checkedKeys="roleMenus"
17 @check="handleCheckClick" 18 @check="handleCheckClick"
@@ -74,6 +75,7 @@ @@ -74,6 +75,7 @@
74 const originMenus = ref(); 75 const originMenus = ref();
75 const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { 76 const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
76 setDrawerProps({ confirmLoading: false }); 77 setDrawerProps({ confirmLoading: false });
  78 + allCheckedKeys.value = [];
77 resetFields(); 79 resetFields();
78 roleId.value = ''; 80 roleId.value = '';
79 // 在打开弹窗时清除所有选择的菜单 81 // 在打开弹窗时清除所有选择的菜单
@@ -88,6 +90,7 @@ @@ -88,6 +90,7 @@
88 } 90 }
89 // 更新 91 // 更新
90 if (unref(isUpdate)) { 92 if (unref(isUpdate)) {
  93 + allCheckedKeys.value = [];
91 checked.value = []; 94 checked.value = [];
92 //通过角色id去获取角色对应的菜单的ids 95 //通过角色id去获取角色对应的菜单的ids
93 roleMenus.value = await getMenusIdsByRoleId(data.record.id); 96 roleMenus.value = await getMenusIdsByRoleId(data.record.id);
@@ -131,6 +134,8 @@ @@ -131,6 +134,8 @@
131 roleType: RoleEnum.TENANT_ADMIN, 134 roleType: RoleEnum.TENANT_ADMIN,
132 menu: allCheckedKeys.value.length ? allCheckedKeys.value : originMenus.value, 135 menu: allCheckedKeys.value.length ? allCheckedKeys.value : originMenus.value,
133 }; 136 };
  137 + if (allCheckedKeys.value.length == 0) return createMessage.error('请勾选权限菜单');
  138 + if (req.menu == undefined) return createMessage.error('请勾选权限菜单');
134 saveOrUpdateRoleInfoWithMenu(req).then(() => { 139 saveOrUpdateRoleInfoWithMenu(req).then(() => {
135 closeDrawer(); 140 closeDrawer();
136 emit('success'); 141 emit('success');