Parcourir la source

fix: filterChildrenTree 条件修正,过滤无 children 的孤儿子路由

将 v?.children?.length !== 0 改为 v?.children?.length > 0,
避免 undefined(无 children 属性)的子路由被保留在一级菜单中。
这些子路由没有 meta.rank,会被 ascending 强制赋高值位,
导致用户拖拽一级菜单后排序不变。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
skyline il y a 1 semaine
Parent
commit
55eba33ca9
1 fichiers modifiés avec 2 ajouts et 2 suppressions
  1. 2 2
      haha-admin-web/src/router/utils.ts

+ 2 - 2
haha-admin-web/src/router/utils.ts

@@ -63,9 +63,9 @@ function filterTree(data: RouteComponent[]) {
   return newTree;
 }
 
-/** 过滤children长度为0的的目录,当目录下没有菜单时,会过滤此目录,目录没有赋予roles权限,当目录下只要有一个菜单有显示权限,那么此目录就会显示 */
+/** 过滤没有 children 的目录,v?.children?.length > 0 确保 undefined 和空数组都被过滤 */
 function filterChildrenTree(data: RouteComponent[]) {
-  const newTree = cloneDeep(data).filter((v: any) => v?.children?.length !== 0);
+  const newTree = cloneDeep(data).filter((v: any) => v?.children?.length > 0);
   newTree.forEach(
     (v: { children }) => v.children && (v.children = filterTree(v.children))
   );