| | |
| | | // oa路由映射 |
| | | import OaRouteDom from './routeDom/oaRouteDom'; |
| | | import UserRouteDom from './routeDom/userRouteDom'; |
| | | import { oaMenus, userMenus } from './menu'; |
| | | |
| | | export const Context = React.createContext(); |
| | | |
| | |
| | | |
| | | componentDidMount() { |
| | | let pathname = history.location.pathname; |
| | | console.log(history, pathname); |
| | | let menusListByRole = window.localStorage.getItem('menusListByRole') |
| | | ? JSON.parse(window.localStorage.getItem('menusListByRole')) |
| | | : []; |
| | | |
| | | // let menuMap = { oa: { menus: oaMenus }, user: { menus: userMenus } }; |
| | | |
| | | let role = Object.keys(menusListByRole) |
| | | .reduce((p, n) => { |
| | |
| | | role, |
| | | }, |
| | | }); |
| | | |
| | | if (!role && menusListByRole.length == 0) { |
| | | history.push('/login'); |
| | | } |
| | | if (!role && window.localStorage.getItem('role')) { |
| | | this.setState({ |
| | | context: { |
| | | ...this.state.context, |
| | | role: window.localStorage.getItem('role'), |
| | | }, |
| | | }); |
| | | } |
| | | } |
| | | |
| | | setContext = (data) => { |
| | |
| | | ...data, |
| | | }, //更新context |
| | | }); |
| | | window.localStorage.setItem('role', data.role || ''); |
| | | }; |
| | | |
| | | render() { |
| | |
| | | </Switch> |
| | | <Layout> |
| | | <Content> |
| | | <Route path="/login" component={()=>( <Login setContext={this.setContext}/>)} /> |
| | | {context.role == 'oa' && <OaRouteDom />} |
| | | {context.role == 'user' && <UserRouteDom />} |
| | | <Switch> |
| | | <Route |
| | | path="/login" |
| | | component={() => <Login setContext={this.setContext} />} |
| | | /> |
| | | {context.role == 'oa' && <OaRouteDom />} |
| | | {context.role == 'user' && <UserRouteDom />} |
| | | </Switch> |
| | | </Content> |
| | | </Layout> |
| | | </Layout> |