Merge remote-tracking branch 'origin/master'

This commit is contained in:
YunaiV 2019-02-28 19:28:10 +08:00
commit f5b105973d
6 changed files with 87 additions and 2 deletions

View File

@ -21,6 +21,15 @@ export default [
Routes: ['src/pages/Authorized'], Routes: ['src/pages/Authorized'],
authority: ['admin', 'user'], authority: ['admin', 'user'],
routes: [ routes: [
// redirect
{ path: '/', redirect: '/home' },
// home
{
path: '/home',
name: 'home',
icon: 'user',
component: './Home/Home',
},
// admin // admin
{ {
path: '/admin', path: '/admin',
@ -34,8 +43,6 @@ export default [
}, },
], ],
}, },
// dashboard
{ path: '/', redirect: '/dashboard/analysis' },
{ {
path: '/dashboard', path: '/dashboard',
name: 'dashboard', name: 'dashboard',

View File

@ -0,0 +1,15 @@
---
使用 demo
authKey: 代表key的权限
---
```jsx harmony
<AuthorityControl authKey="home.button">
<Button type="primary">按钮 控制</Button>
</AuthorityControl>
```

View File

@ -0,0 +1,7 @@
import * as React from 'react';
export interface AuthorityControlProps {
authKey: string;
}
export default class LoginItem extends React.Component<AuthorityControlProps, any> {}

View File

@ -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;

View File

@ -0,0 +1,9 @@
import React from 'react';
// 创建全局的权限控制 context方便在所有页面使用
const GlobalAuthorityContext = React.createContext({
theme: 'dark',
toggle: () => {},
});
export default GlobalAuthorityContext;

View File

@ -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>
);
}
}