Kaynağa Gözat

fix: 菜单分配回显不正确调整

Tong 2 yıl önce
ebeveyn
işleme
b438da94bf

+ 7 - 5
src/views/sys/sysPortal/FormModalPortalMenu.vue

@@ -48,19 +48,21 @@
       if (item.children.length) {
         item.children.map(ele => {
           if (ele.children.length) {
+            ele.children.map(eles => {
+              if (eles.children.length) {
+                parentIds.value.push(eles.id);
+              }
+            });
             parentIds.value.push(ele.id);
           }
         });
+        parentIds.value.push(item.id);
       }
-      parentIds.value.push(item.id);
     });
     // 因为antd树插件勾选父节点会导致所有子节点选中,所以过滤所有父节点
     halfCheckedKeys.value = Array.from(parentIds.value);
     checkedKeys.value = roleMenuList
-      .filter(
-        item =>
-          (!parentIds.value.includes(item.id) && item.parentId != '0') || item.menuType == 'menu',
-      )
+      .filter(item => !parentIds.value.includes(item.id))
       .map(item => item.id);
   });
 

+ 7 - 6
src/views/sys/sysRole/FormModalAssignMenu.vue

@@ -43,25 +43,26 @@
     rowId.value = data.record.id;
     // 获取已选中列表
     const roleMenuList = (await sysRoleQueryMenuTree(rowId.value)) || [];
-    console.log('🚀 ~ file: FormModalAssignMenu.vue:46 ~ roleMenuList:', roleMenuList);
     // 找出菜单的所有父节点ID
     treeData.value.map(item => {
       if (item.children.length) {
         item.children.map(ele => {
           if (ele.children.length) {
+            ele.children.map(eles => {
+              if (eles.children.length) {
+                parentIds.value.push(eles.id);
+              }
+            });
             parentIds.value.push(ele.id);
           }
         });
+        parentIds.value.push(item.id);
       }
-      parentIds.value.push(item.id);
     });
     // 因为antd树插件勾选父节点会导致所有子节点选中,所以过滤所有父节点
     halfCheckedKeys.value = Array.from(parentIds.value);
     checkedKeys.value = roleMenuList
-      .filter(
-        item =>
-          (!parentIds.value.includes(item.id) && item.parentId != '0') || item.menuType == 'menu',
-      )
+      .filter(item => !parentIds.value.includes(item.id))
       .map(item => item.id);
   });