From 53b9fb93d0376eb02bb996935f1720b4e95cd897 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 12 十月 2022 14:41:06 +0800
Subject: [PATCH] 2022-10-12

---
 src/router/index.js |  101 ++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 77 insertions(+), 24 deletions(-)

diff --git a/src/router/index.js b/src/router/index.js
index dc89810..d923557 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -1,37 +1,90 @@
 import React, {Component} from 'react'
 import {HashRouter, Switch, Route, Redirect} from 'react-router-dom'
+import md5 from 'md5'
+import moment from 'moment'
 import asyncComponent from '@/utils/asyncComponent'
-const personal = asyncComponent(() => import('@/views/personal/personal'))
+import asyncLoadComponent from '@/utils/asyncLoadComponent'
+
+const Login = asyncLoadComponent(() => import('@/views/login'))
+const Main = asyncLoadComponent(() => import('@/views/main'))
+const Sso = asyncLoadComponent(() => import('@/views/sso'))
+const Pay = asyncLoadComponent(() => import('@/views/pay'))
+const MainParams = asyncLoadComponent(() => import('@/views/mainparams'))
+const Design = asyncLoadComponent(() => import('@/views/design'))
+const NotFound = asyncComponent(() => import('@/views/404'))
+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: '/main', name: 'main', component: Main, auth: true},
+  {path: '/pay/:param', name: 'pay', component: Pay, auth: false},
+  {path: '/print/:param', name: 'print', component: PrintT, auth: false},
+  {path: '/ssologin/:param', name: 'ssologin', component: Sso, auth: false},
+  {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: '/tab/:menuId', name: 'tab', component: MainParams, auth: false},
+  {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) { // 涓嶉渶瑕佹巿鏉冿紝鐩存帴璺宠浆
+      return (<item.component {...props}/>)
+    }
+    
+    let userId = sessionStorage.getItem('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)
+    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'}}/>)
+    }
+  }
+
   render () {
     return (
       <HashRouter>
         <Switch>
-          <Route path="/main" exact component={personal}/>
-          <Route path="/main/:param" exact component={personal}/>
-          <Redirect exact from="/" to="main"/>
-          <Route component= {personal}/>
+          {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>
       </HashRouter>
     )
   }
-}
-
-// import React, { lazy } from 'react';
-// import { Route } from 'react-router-dom';
-
-// const RouteLis = [
-//   {
-//     component: lazy(() => import ('../views/home')),
-//     path: '/'
-//   }
-// ];
-
-// const RouterList = () => (
-//   RouteLis.map((item, key) => {
-//     return <Route key={key} exact path={item.path} component={item.component}/>;
-//   })
-// );
-
-// export default RouterList;
\ No newline at end of file
+}
\ No newline at end of file

--
Gitblit v1.8.0