Merge remote-tracking branch 'origin/master'
commit
f5b105973d
|
@ -21,6 +21,15 @@ export default [
|
|||
Routes: ['src/pages/Authorized'],
|
||||
authority: ['admin', 'user'],
|
||||
routes: [
|
||||
// redirect
|
||||
{ path: '/', redirect: '/home' },
|
||||
// home
|
||||
{
|
||||
path: '/home',
|
||||
name: 'home',
|
||||
icon: 'user',
|
||||
component: './Home/Home',
|
||||
},
|
||||
// admin
|
||||
{
|
||||
path: '/admin',
|
||||
|
@ -34,8 +43,6 @@ export default [
|
|||
},
|
||||
],
|
||||
},
|
||||
// dashboard
|
||||
{ path: '/', redirect: '/dashboard/analysis' },
|
||||
{
|
||||
path: '/dashboard',
|
||||
name: 'dashboard',
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
|
||||
---
|
||||
|
||||
使用 demo
|
||||
|
||||
|
||||
authKey: 代表key的权限
|
||||
|
||||
---
|
||||
|
||||
```jsx harmony
|
||||
<AuthorityControl authKey="home.button">
|
||||
<Button type="primary">按钮 控制</Button>
|
||||
</AuthorityControl>
|
||||
```
|
|
@ -0,0 +1,7 @@
|
|||
import * as React from 'react';
|
||||
|
||||
export interface AuthorityControlProps {
|
||||
authKey: string;
|
||||
}
|
||||
|
||||
export default class LoginItem extends React.Component<AuthorityControlProps, any> {}
|
|
@ -0,0 +1,19 @@
|
|||
import React, { PureComponent } from 'react';
|
||||
import GlobalAuthority from '../../layouts/GlobalAuthority';
|
||||
|
||||
// 用于控制权限
|
||||
class AuthorityControl extends PureComponent {
|
||||
render() {
|
||||
const { authKey, children } = this.props;
|
||||
return (
|
||||
<GlobalAuthority.Consumer>
|
||||
{context => {
|
||||
const { authList } = context;
|
||||
return <div>{authList[authKey] ? children : '无权限'}</div>;
|
||||
}}
|
||||
</GlobalAuthority.Consumer>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default AuthorityControl;
|
|
@ -0,0 +1,9 @@
|
|||
import React from 'react';
|
||||
|
||||
// 创建全局的权限控制 context,方便在所有页面使用
|
||||
const GlobalAuthorityContext = React.createContext({
|
||||
theme: 'dark',
|
||||
toggle: () => {},
|
||||
});
|
||||
|
||||
export default GlobalAuthorityContext;
|
|
@ -0,0 +1,28 @@
|
|||
import React, { Component } from 'react';
|
||||
import { Button } from 'antd';
|
||||
import AuthorityControl from '../../components/AuthorityControl';
|
||||
import GlobalAuthority from '../../layouts/GlobalAuthorityContext';
|
||||
|
||||
export default class Home extends Component {
|
||||
state = {};
|
||||
|
||||
render() {
|
||||
// 定义认证的属性 TODO
|
||||
const GlobalAuthorityProps = {
|
||||
user: 'admin',
|
||||
login: 'success',
|
||||
authList: {
|
||||
'auth.button': true,
|
||||
},
|
||||
};
|
||||
|
||||
return (
|
||||
<GlobalAuthority.Provider value={GlobalAuthorityProps}>
|
||||
<AuthorityControl authKey="home.button">
|
||||
<Button type="primary">按钮 控制</Button>
|
||||
</AuthorityControl>
|
||||
<h1>home...</h1>
|
||||
</GlobalAuthority.Provider>
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue