Переглянути джерело

!230 fix 修复菜单查询没有正确显示顶级菜单的问题
Merge pull request !230 from Lau/dev

疯狂的狮子Li 9 місяців тому
батько
коміт
33cf333b2a
1 змінених файлів з 8 додано та 2 видалено
  1. 8 2
      src/views/system/menu/index.vue

+ 8 - 2
src/views/system/menu/index.vue

@@ -28,7 +28,9 @@
             <el-button v-hasPermi="['system:menu:add']" type="primary" plain icon="Plus" @click="handleAdd()">新增 </el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button v-hasPermi="['system:menu:remove']" type="danger" plain icon="Delete" @click="handleCascadeDelete" :loading="deleteLoading">级联删除</el-button>
+            <el-button v-hasPermi="['system:menu:remove']" type="danger" plain icon="Delete" @click="handleCascadeDelete" :loading="deleteLoading"
+              >级联删除</el-button
+            >
           </el-col>
           <right-toolbar v-model:show-search="showSearch" @query-table="getList"></right-toolbar>
         </el-row>
@@ -388,12 +390,16 @@ const getList = async () => {
     }
     tempMap[parentId].push(menu);
   }
+  // 创建一个当前所有 menuId 的 Set,用于查找父菜单是否存在于当前数据中
+  const menuIdSet = new Set();
   // 设置有没有子菜单
   for (const menu of res.data) {
     menu['hasChildren'] = tempMap[menu.menuId]?.length > 0;
+    menuIdSet.add(menu.menuId);
   }
   menuChildrenListMap.value = tempMap;
-  menuList.value = tempMap[0] || [];
+  // 找出所有父ID不在当前菜单ID集合中的菜单项,作为新的顶层菜单
+  menuList.value = res.data.filter((menu) => !menuIdSet.has(menu.parentId));
   // 根据新数据重新加载子菜单数据
   refreshAllExpandMenuData();
   loading.value = false;