-
zhangwei
2 天以前 7a8f1cb7741436c43fc5859707da5041d6648953
src/router/utils.ts
@@ -33,7 +33,7 @@
  const { name, path, parentId, meta } = routeInfo;
  return isAllEmpty(parentId)
    ? isAllEmpty(meta?.rank) ||
      (meta?.rank === 0 && name !== "Welcome" && path !== "/welcome")
      (meta?.rank === 0 && name !== "Home" && path !== "/")
      ? true
      : false
    : false;
@@ -84,7 +84,7 @@
/** 从localStorage里取出当前登录用户的角色roles,过滤无权限的菜单 */
function filterNoPermissionTree(data: RouteComponent[]) {
  const currentRoles =
    storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? [];
    storageLocal().getItem<DataInfo<number>>(userKey)?.exRoles ?? [];
  const newTree = cloneDeep(data).filter((v: any) =>
    isOneOfArray(v.meta?.roles, currentRoles)
  );
@@ -171,7 +171,7 @@
          if (!router.hasRoute(v?.name)) router.addRoute(v);
          const flattenRouters: any = router
            .getRoutes()
            .find(n => n.path === "/welcome");
            .find(n => n.path === "/");
          // 保持router.options.routes[0].children与path为"/"的children一致,防止数据不一致导致异常
          flattenRouters.children = router.options.routes[0].children;
          router.addRoute(flattenRouters);
@@ -205,8 +205,8 @@
    } else {
      return new Promise(resolve => {
        getAsyncRoutes().then(({ data }) => {
          // handleAsyncRoutes(cloneDeep(data));
          // storageLocal().setItem(key, data);
          handleAsyncRoutes(cloneDeep(data));
          storageLocal().setItem(key, data);
          resolve(router);
        });
      });
@@ -214,7 +214,7 @@
  } else {
    return new Promise(resolve => {
      getAsyncRoutes().then(({ data }) => {
        // handleAsyncRoutes(cloneDeep(data));
        handleAsyncRoutes(cloneDeep(data));
        resolve(router);
      });
    });
@@ -249,7 +249,7 @@
  if (routesList?.length === 0) return routesList;
  const newRoutesList: RouteRecordRaw[] = [];
  routesList.forEach((v: RouteRecordRaw) => {
    if (v.path === "/welcome") {
    if (v.path === "/") {
      newRoutesList.push({
        component: v.component,
        name: v.name,
@@ -388,6 +388,7 @@
  );
  tag && useMultiTagsStoreHook().handleTags("push", topMenu);
  console.log(topMenu, "topMenu");
  return topMenu;
}