| | |
| | | import {HashRouter, Switch, Route, Redirect} from 'react-router-dom' |
| | | import md5 from 'md5' |
| | | import moment from 'moment' |
| | | import options from '@/store/options.js' |
| | | import { styles } from '@/store/options.js' |
| | | import asyncComponent from '@/utils/asyncComponent' |
| | | import asyncLoadComponent from '@/utils/asyncLoadComponent' |
| | | |
| | | const Pay = asyncLoadComponent(() => import('@/views/pay')) |
| | | const Sso = asyncLoadComponent(() => import('@/views/sso')) |
| | | const Main = asyncLoadComponent(() => import('@/views/main')) |
| | | const Design = asyncLoadComponent(() => import('@/views/design')) |
| | | const Login = asyncLoadComponent(() => import('@/views/login')) |
| | | const NotFound = asyncComponent(() => import('@/views/404')) |
| | | const MobManage = asyncLoadComponent(() => import('@/views/mobmanage')) |
| | | const AppManage = asyncLoadComponent(() => import('@/views/appmanage')) |
| | | const AppCheck = asyncLoadComponent(() => import('@/views/appcheck')) |
| | | const PCDesign = asyncLoadComponent(() => import('@/views/pcdesign')) |
| | | const MobDesign = asyncLoadComponent(() => import('@/views/mobdesign')) |
| | | const MenuDesign = asyncLoadComponent(() => import('@/views/menudesign')) |
| | | const BillPrint = asyncLoadComponent(() => import('@/views/billprint')) |
| | | const PrintT = asyncLoadComponent(() => import('@/views/printTemplate')) |
| | | const Interface = asyncLoadComponent(() => import('@/views/interface')) |
| | | const RoleManage = asyncLoadComponent(() => import('@/views/rolemanage')) |
| | | |
| | | const routers = [ |
| | | {path: '/login', name: 'login', component: Login, auth: false}, |
| | | {path: '/pay/:param', name: 'pay', component: Pay, auth: false}, |
| | | {path: '/print/:param', name: 'print', component: PrintT, auth: false}, |
| | | {path: '/ssologin/:param', name: 'ssologin', auth: true}, |
| | | {path: '/ssologin/:param', name: 'ssologin', component: Sso, auth: false}, |
| | | {path: '/main', name: 'main', component: Main, auth: true}, |
| | | {path: '/mobmanage', name: 'mobmanage', component: MobManage, auth: true}, |
| | | {path: '/mobdesign/:appId/:appType/:appCode/:appName', name: 'mobdesign', component: MobDesign, auth: true}, |
| | | {path: '/design', name: 'design', component: Design, auth: true}, |
| | | {path: '/appmanage', name: 'appmanage', component: AppManage, auth: true}, |
| | | {path: '/appcheck', name: 'appcheck', component: AppCheck, auth: true}, |
| | | {path: '/pcdesign/:param', name: 'pcdesign', component: PCDesign, auth: true}, |
| | | {path: '/mobdesign/:param', name: 'mobdesign', component: MobDesign, auth: true}, |
| | | {path: '/menudesign/:param', name: 'menudesign', component: MenuDesign, auth: true}, |
| | | {path: '/billprint/:param', name: 'billprint', component: BillPrint, auth: true}, |
| | | {path: '/paramsmain/:param', name: 'pmain', component: Main, auth: true} |
| | | {path: '/paramsmain/:param', name: 'pmain', component: Main, auth: true}, |
| | | {path: '/role/:param', name: 'role', component: RoleManage, auth: true}, |
| | | {path: '/interface', name: 'interface', component: Interface, auth: true} |
| | | ] |
| | | |
| | | export default class RouteConfig extends Component { |
| | | controlRoute (item, props) { |
| | | if (!item.auth) { // 不需要授权,直接跳转(登录页) |
| | | if (!item.auth) { // 不需要授权,直接跳转 |
| | | return (<item.component {...props}/>) |
| | | } |
| | | |
| | |
| | | let _param = JSON.parse(window.decodeURIComponent(window.atob(props.match.params.param))) |
| | | |
| | | if (typeof(_param) === 'object') { |
| | | if (_param.UserID && !sessionStorage.getItem('UserID')) { |
| | | sessionStorage.setItem('UserID', _param.UserID) |
| | | } |
| | | if (_param.LoginUID && !sessionStorage.getItem('LoginUID')) { |
| | | sessionStorage.setItem('LoginUID', _param.LoginUID) |
| | | } |
| | | if (_param.User_Name && !sessionStorage.getItem('User_Name')) { |
| | | sessionStorage.setItem('User_Name', _param.User_Name) |
| | | } |
| | | if (_param.mainlogo) { |
| | | window.GLOB.mainlogo = _param.mainlogo |
| | | } |
| | | if (_param.mstyle && options.styles[_param.mstyle]) { |
| | | document.getElementById('root').className = options.styles[_param.mstyle] |
| | | } |
| | | if (_param.MainMenu) { |
| | | sessionStorage.setItem('MainMenu', _param.MainMenu) |
| | | } |
| | | if (_param.SubMenu) { |
| | | sessionStorage.setItem('SubMenu', _param.SubMenu) |
| | | } |
| | | if (_param.ThirdMenu) { |
| | | sessionStorage.setItem('ThirdMenu', _param.ThirdMenu) |
| | | } |
| | | if (_param.param) { |
| | | _param.param.ThirdMenu = _param.ThirdMenu |
| | | sessionStorage.setItem('MenuParam', JSON.stringify(_param.param)) |
| | | _param.UserID && sessionStorage.setItem('UserID', _param.UserID) |
| | | _param.LoginUID && sessionStorage.setItem('LoginUID', _param.LoginUID) |
| | | _param.User_Name && sessionStorage.setItem('User_Name', _param.User_Name) |
| | | _param.Full_Name && sessionStorage.setItem('Full_Name', _param.Full_Name) |
| | | _param.debug && sessionStorage.setItem('debug', _param.debug) |
| | | _param.dataM && sessionStorage.setItem('dataM', _param.dataM) |
| | | _param.dataM && sessionStorage.setItem('localDataM', _param.dataM) |
| | | _param.avatar && sessionStorage.setItem('avatar', _param.avatar) |
| | | _param.role_id && sessionStorage.setItem('role_id', _param.role_id) |
| | | _param.dataM && sessionStorage.setItem('localRole_id', _param.dataM) |
| | | _param.Member_Level && sessionStorage.setItem('Member_Level', _param.Member_Level) |
| | | _param.ThirdMenu && sessionStorage.setItem('ThirdMenu', _param.ThirdMenu) |
| | | |
| | | window.GLOB.mainlogo = _param.mainlogo || '' |
| | | window.GLOB.navBar = _param.navBar || '' |
| | | |
| | | if (_param.mstyle && styles[_param.mstyle]) { |
| | | document.body.className = styles[_param.mstyle] |
| | | } |
| | | } |
| | | } catch { |
| | | } catch (e) { |
| | | console.warn('菜单参数解析错误!') |
| | | } |
| | | |
| | | return (<item.component {...props}/>) |
| | | } else if (item.name === 'ssologin') { |
| | | try { |
| | | let _param = JSON.parse(window.decodeURIComponent(window.atob(props.match.params.param))) |
| | | if (typeof(_param) === 'object') { |
| | | if (_param.UserID) { |
| | | sessionStorage.setItem('UserID', _param.UserID) |
| | | } |
| | | if (_param.LoginUID) { |
| | | sessionStorage.setItem('LoginUID', _param.LoginUID) |
| | | } |
| | | if (_param.User_Name) { |
| | | sessionStorage.setItem('User_Name', _param.User_Name) |
| | | } |
| | | } |
| | | } catch { |
| | | console.warn('菜单参数解析错误!') |
| | | } |
| | | |
| | | return (<Redirect to={{ pathname: '/main'}}/>) |
| | | } |
| | | |
| | | let userId = sessionStorage.getItem('UserID') // 判断是否存在userid |
| | |
| | | let authCode = localStorage.getItem(window.location.href.split('#')[0] + 'AuthCode') // 判断系统是否在授权期限内 |
| | | let _s = md5('mksoft' + moment().format('YYYYMMDD')) |
| | | let isauth = authCode && authCode.includes(_s) |
| | | let key = md5(window.GLOB.appId + 'minke_software' + window.GLOB.appkey).toUpperCase().substr(-6) |
| | | |
| | | if (window.GLOB.licenseKey === key) { |
| | | isauth = true |
| | | } |
| | | |
| | | if (userId && isauth) { |
| | | return (<item.component {...props}/>) |
| | |
| | | return ( |
| | | <HashRouter> |
| | | <Switch> |
| | | { |
| | | routers.map((item, index) => { |
| | | return ( |
| | | <Route key={index} path={item.path} name={item.name} exact render={ props => { |
| | | return this.controlRoute(item, props) |
| | | }}/> |
| | | ) |
| | | }) |
| | | } |
| | | {routers.map((item, index) => <Route key={index} path={item.path} name={item.name} exact render={ props => this.controlRoute(item, props)}/>)} |
| | | <Redirect exact from="/" to="login"/> |
| | | <Route component= {NotFound}/> |
| | | </Switch> |