zoukankan      html  css  js  c++  java
  • umi 动态路由配置

    import { getUserPerm } from '@/services/menu';
    import router from 'umi/router';
    let authRoutes = [];
    export const dva = {
      config: {
        onError(err) {
          err.preventDefault();
          console.error(err.message);
        },
      },
    };
    
    function filterRoute(routes,authRoute) {
      const arr = [];
      authRoute.forEach(item => {
        routes.forEach(route => {
          if (route.path === item.path) {
            let obj = {};
            if (route.routes && item.routes) {
              obj = route;
              obj.routes = (filterRoute(route.routes,item.routes));
              arr.push(obj);
            } else {
              obj = route;
              arr.push(obj);
            }
          }
        })
      })
      return arr;
    }
    export function patchRoutes(routes) {
     routes[1].routes = filterRoute(routes[1].routes,authRoutes)
      window.g_routes = routes;
    }
    export async function  render(oldRender) {
      const authRoutesResult = await getUserPerm();
      window.oldRender = () => {
        if (authRoutesResult && authRoutesResult.code === 0) {
          authRoutes = authRoutesResult.data;
        } else {
          oldRender();
        }
        oldRender();
      }
      if (window.oldRender) {
        window.oldRender();
      }
    }

    在model里登陆和登出需要window.location.reload 刷新页面。

  • 相关阅读:
    Revit 二次开发参照属性
    存储过程分页 (多条件拼接)
    Dapper的使用
    C#实现简单的邮件发送
    ORM 简介
    Web Services简介
    事物、锁、存储过程
    游标和触发器简介
    ASP.NET 上传文件方法
    C# Web API 实现上传功能
  • 原文地址:https://www.cnblogs.com/l8l8/p/12079254.html
Copyright © 2011-2022 走看看