Comments (1)
可以参考ant-design-pro的权限,只需要在utils/core.js做如下更改即可实现,还有记得在具体的页面路由配置中增加authority: ['admin'],代码如下:
`import React from 'react';
import dynamic from 'dva/dynamic';
import { Route, Switch, Redirect } from 'dva/router';
import DocumentTitle from 'react-document-title';
import assign from 'object-assign';
import $$ from 'cmn-utils';
import config from '@/config';
import Authorized from '../utils/Authorized';
const { AuthorizedRoute } = Authorized;
/**
- 生成动态组件
- @param {*} app
- @param {*} models
- @param {*} component
*/
export const dynamicWrapper = (app, models, component) =>
dynamic({
app,
models: () => models,
component
});
/**
- 生成一组路由
- @param {*} app
- @param {*} routesConfig
/
export const createRoutes = (app, routesConfig) => {
return (
{routesConfig(app).map(config => createRoute(app, () => config))}
);
};
// 路由映射表
window.dva_router_pathMap = {};
/* - 生成单个路由
- @param {*} app
- @param {*} routesConfig
/
export const createRoute = (app, routesConfig) => {
const {
component: Comp,
path,
indexRoute,
title,
exact,
authority,
...otherProps
} = routesConfig(app);
if (path && path !== '/') {
window.dva_router_pathMap[path] = { path, title, ...otherProps };
// 为子路由增加parentPath
if (otherProps.childRoutes && otherProps.childRoutes.length) {
otherProps.childRoutes.forEach(item => {
if (window.dva_router_pathMap[item.key]) {
window.dva_router_pathMap[item.key].parentPath = path;
}
});
}
}
const routeProps = assign(
{
key: path || $$.randomStr(4),
render: props => (
<DocumentTitle
title={
config.htmlTitle ? config.htmlTitle.replace(/{.}/gi, title) : title
}
>
<Comp routerData={otherProps} {...props} />
)
},
path && {
path: path
},
exact && {
exact: exact
},
authority&&{
authority: authority
}
);
// before add authorized
// if (indexRoute) {
// return [
// <Redirect key={path + '_redirect'} exact from={path} to={indexRoute} />,
// <Route {...routeProps} />
// ];
// }
// return <Route {...routeProps} />;
if (indexRoute) {
return [
<Redirect key={path + '_redirect'} exact from={path} to={indexRoute} />,
<AuthorizedRoute
{...routeProps}
redirectPath="/403"
/>
];
}
return <AuthorizedRoute
{...routeProps}
redirectPath="/403"
/>;
};
页面路由配置更改:
import { dynamicWrapper, createRoute } from '@/utils/core';
const routesConfig = app => ({
path: '/myproject',
title: '我的项目',
component: dynamicWrapper(app, [import('./model')], () => import('./components')),
exact: true,
authority: ['admin','audit'],
});
export default app => createRoute(app, routesConfig);
`
from dva-boot-admin.
Related Issues (20)
- dva-boot-admin HOT 2
- 编译之后,总共45MB HOT 1
- 启动太慢,大概一分钟才能看到界面 HOT 1
- 布局是标签模式事,输入地址/ 路由无法进行重定向到设置的indexRoute
- 表单提交问题 HOT 1
- create-template创建的simple工程无法代码跳转,尤其是第三方包 HOT 1
- Ripple按钮没有点击事件,这个按钮使用场景是?
- 标签页模式切换tab会导致url query丢失
- 请问这是最新代码吗?
- Select相关
- 这个框架怎么与qiankun融合搭建微前端项目,该项目如果成为主应用和微应用分别该如何配置,急急急
- help
- 使用Antd暗黑色主题 HOT 1
- 路由问题 HOT 1
- 下拉框没有正确响应鼠标滚动事件 HOT 1
- 项目启动报错,好几个错误,不知道为什么。。。。。 HOT 1
- column里面配了upload类型的表单项,如果不选择一个文件就不能提交表单了(upload表单项是非必填字段) HOT 1
- Tabs 模式下面,page 怎么关闭自己? HOT 2
- 启动错误 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dva-boot-admin.