From 5df578ff69f6b02e821d59a8883bc75d78695a62 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 10 十一月 2020 11:07:31 +0800 Subject: [PATCH] 2020-11-10 --- src/router/index.js | 93 ++++++++++++++++++++++++++++++++-------------- 1 files changed, 65 insertions(+), 28 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index 221e91f..7b67105 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -2,73 +2,110 @@ import {HashRouter, Switch, Route, Redirect} from 'react-router-dom' import md5 from 'md5' import moment from 'moment' +import options from '@/store/options.js' import asyncComponent from '@/utils/asyncComponent' import asyncLoadComponent from '@/utils/asyncLoadComponent' +const Pay = asyncLoadComponent(() => import('@/views/pay')) const Main = asyncLoadComponent(() => import('@/views/main')) const Login = asyncLoadComponent(() => import('@/views/login')) const NotFound = asyncComponent(() => import('@/views/404')) const MobManage = asyncLoadComponent(() => import('@/views/mobmanage')) 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 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: '/main', name: 'main', component: Main, auth: true}, {path: '/mobmanage', name: 'mobmanage', component: MobManage, auth: true}, - {path: '/mobdesign', name: 'mobdesign', component: MobDesign, auth: true}, - {path: '/main/:param', name: 'pmain', component: Main, auth: true} + {path: '/mobdesign/:appId/:appType/:appCode/:appName', 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} ] export default class RouteConfig extends Component { controlRoute (item, props) { - if (!item.auth) { // 涓嶉渶瑕佹巿鏉冿紝鐩存帴璺宠浆锛堢櫥褰曢〉锛� + if (!item.auth) { // 涓嶉渶瑕佹巿鏉冿紝鐩存帴璺宠浆锛堢櫥褰曢〉锛� return (<item.component {...props}/>) } if (item.name === 'pmain') { // 鏂扮獥鍙f墦寮�锛屽彇url鍙傛暟鏀惧叆sessionStorage - let _param = window.atob(props.match.params.param) - let p = {} - _param.split('&').forEach(cell => { - let _cell = cell.split('=') - p[_cell[0]] = _cell[1] - }) - sessionStorage.setItem('UserID', p.ud) - sessionStorage.setItem('SessionUid', p.sd) - sessionStorage.setItem('LoginUID', p.ld) - sessionStorage.setItem('User_Name', p.un) - sessionStorage.setItem('MainMenu', p.mm) - sessionStorage.setItem('SubMenu', p.sm) - sessionStorage.setItem('ThirdMenu', p.tm) + try { + 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)) + } + } + } catch { + console.warn('鑿滃崟鍙傛暟瑙f瀽閿欒锛�') + } return (<item.component {...props}/>) } else if (item.name === 'ssologin') { - let _param = window.atob(props.match.params.param) - let p = {} - _param.split('&').forEach(cell => { - let _cell = cell.split('=') - p[_cell[0]] = _cell[1] - }) - sessionStorage.setItem('UserID', p.ud) - sessionStorage.setItem('SessionUid', p.sd) - sessionStorage.setItem('LoginUID', p.ld) - sessionStorage.setItem('User_Name', p.un) + 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('鑿滃崟鍙傛暟瑙f瀽閿欒锛�') + } return (<Redirect to={{ pathname: '/main'}}/>) } let userId = sessionStorage.getItem('UserID') // 鍒ゆ柇鏄惁瀛樺湪userid - let authCode = localStorage.getItem('AuthCode') // 鍒ゆ柇绯荤粺鏄惁鍦ㄦ巿鏉冩湡闄愬唴 + let authCode = localStorage.getItem(window.location.href.split('#')[0] + 'AuthCode') // 鍒ゆ柇绯荤粺鏄惁鍦ㄦ巿鏉冩湡闄愬唴 let _s = md5('mksoft' + moment().format('YYYYMMDD')) let isauth = authCode && authCode.includes(_s) if (userId && isauth) { return (<item.component {...props}/>) } else { - return (<Redirect to={{ pathname: '/login', state: {from: props.location}}}/>) + // return (<Redirect to={{ pathname: '/login', state: {from: props.location}}}/>) + return (<Redirect to={{ pathname: '/login'}}/>) } } -- Gitblit v1.8.0