From 3b103caa6bfc9ed410e67156c3ca1785bf1cecc9 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 19 八月 2022 01:15:31 +0800
Subject: [PATCH] 2022-08-19

---
 src/router/index.js |  112 +++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 71 insertions(+), 41 deletions(-)

diff --git a/src/router/index.js b/src/router/index.js
index 7a8d8b8..0d98df5 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -2,73 +2,111 @@
 import {HashRouter, Switch, Route, Redirect} from 'react-router-dom'
 import md5 from 'md5'
 import moment from 'moment'
+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 PopDesign = asyncLoadComponent(() => import('@/views/popdesign'))
+const ImDesign = asyncLoadComponent(() => import('@/views/imdesign'))
+const MenuDesign = asyncLoadComponent(() => import('@/views/menudesign'))
+const BaseDesign = asyncLoadComponent(() => import('@/views/basedesign'))
+const TableDesign = asyncLoadComponent(() => import('@/views/tabledesign'))
+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 SystemFunc = asyncLoadComponent(() => import('@/views/systemfunc'))
 
 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: '/main/:param', name: 'pmain', component: Main, 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: '/imdesign/:param', name: 'imdesign', component: ImDesign, auth: true},
+  {path: '/menudesign/:param', name: 'menudesign', component: MenuDesign, auth: true},
+  {path: '/basedesign/:param', name: 'basedesign', component: BaseDesign, auth: true},
+  {path: '/tabledesign/:param', name: 'tabledesign', component: TableDesign, auth: true},
+  {path: '/popdesign/:param', name: 'popdesign', component: PopDesign, auth: true},
+  {path: '/billprint/:param', name: 'billprint', component: BillPrint, auth: true},
+  {path: '/docprint/:menuId', name: 'docprint', component: BillPrint, auth: false},
+  {path: '/docprint/:menuId/:id', name: 'docprint', component: BillPrint, auth: false},
+  {path: '/paramsmain/:param', name: 'pmain', component: Main, auth: true},
+  {path: '/role/:param', name: 'role', component: RoleManage, auth: true},
+  {path: '/hs', name: 'hs', component: SystemFunc, 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}/>)
     }
 
     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('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') {
+          _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 (e) {
+        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('LoginUID', p.ld)
-      sessionStorage.setItem('User_Name', p.un)
-
-      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)
+    let key = md5(window.GLOB.appId + 'minke_software' + window.GLOB.appkey).toUpperCase().substr(-6)
+    let key1 = window.GLOB.licenseKey ? window.GLOB.licenseKey.substring(0, 6) : ''
+
+    if (key1 === key) {
+      isauth = true
+    }
 
     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'}}/>)
     }
   }
 
@@ -76,15 +114,7 @@
     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>

--
Gitblit v1.8.0