import React, {Component} from 'react' import {HashRouter, Switch, Route, Redirect} from 'react-router-dom' import moment from 'moment' import md5 from 'md5' import asyncComponent from '@/utils/asyncComponent' const main = asyncComponent(() => import('@/views/main')) const login = asyncComponent(() => import('@/views/login')) const NotFound = asyncComponent(() => import('@/views/404')) const routers = [ {path: '/login', name: 'login', component: login, auth: false}, {path: '/main', name: 'main', component: main, auth: true}, {path: '/main/:param', name: 'pmain', component: main, auth: true} ] export default class RouteConfig extends Component { controlRoute (item, props) { if (!item.auth) { // 不需要授权,直接跳转(登录页) return () } if (item.name === 'pmain') { // 新窗口打开,取url参数放入sessionStorage let _param = window.atob(props.match.params.param) sessionStorage.setItem('view_param', _param) return () } let userId = sessionStorage.getItem('UserID') // 判断是否存在userid let authCode = localStorage.getItem('AuthCode') // 判断系统是否在授权期限内 let _s = md5('mksoft' + moment().format('YYYYMMDD')) let isauth = authCode && authCode.includes(_s) if (userId && isauth) { return () } else { let param = sessionStorage.getItem('view_param') if (param) { param = param.split('&') sessionStorage.setItem('UserID', param[3]) return () } else { return () } } } render () { return ( { routers.map((item, index) => { return ( { return this.controlRoute(item, props) }}/> ) }) } ) } }