From 40f4c8f438295248600b90dcceb5fa0444d42f39 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期日, 12 一月 2020 16:52:53 +0800
Subject: [PATCH] 2020-01-12

---
 src/components/header/index.scss             |    2 +
 src/views/login/loginform.jsx                |    1 
 src/api/index.js                             |   13 +++++-
 src/components/header/index.jsx              |   31 +++++++--------
 src/components/sidemenu/index.jsx            |   26 +++++++------
 src/router/index.js                          |   39 ++++++++++++++-----
 src/tabviews/tableshare/actionList/index.jsx |    6 +++
 src/views/login/index.jsx                    |    1 
 8 files changed, 77 insertions(+), 42 deletions(-)

diff --git a/src/api/index.js b/src/api/index.js
index 485b065..b89eb20 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -1,11 +1,11 @@
 import axios from 'axios'
 import qs from 'qs'
 import {notification } from 'antd'
+// import md5 from 'md5'
+// import Utils from '@/utils/utils.js'
 import options from '@/store/options.js'
 
-// axios.defaults.baseURL = 'http://qingqiumarket.cn'
 axios.defaults.crossDomain = true
-// axios.defaults.headers.common['token'] = 'token'
 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
 axios.defaults.withCredentials = true
 
@@ -16,7 +16,7 @@
   } else if (config.url.includes('Upload')) {
     config.headers = { 'Content-Type': 'multipart/form-data' }
   } else {
-    config.headers.token = sessionStorage.getItem('TOKEN') || ''
+    // config.headers.token = sessionStorage.getItem('TOKEN') || ''
     config.data = JSON.stringify(config.data)
   }
 
@@ -123,6 +123,13 @@
       param.rduri = window.GLOB.mainSystemApi
     }
 
+    // param.nonc = Utils.getuuid()
+    // param._ = new Date().getTime()
+
+    // let keys = Object.keys(param).sort()
+    // let values = keys.map(key => key + param[key]).join('')
+    // param.sign  = md5(values)
+
     return axios({
       url: '/webapi/dostar',
       data: param
diff --git a/src/components/header/index.jsx b/src/components/header/index.jsx
index db7d91c..bd76670 100644
--- a/src/components/header/index.jsx
+++ b/src/components/header/index.jsx
@@ -46,6 +46,7 @@
     logourl: window.GLOB.mainlogo || logourl,
     loginVisible: false,
     loginLoading: false,
+    avatar: avatar,
     systems: []
   }
 
@@ -152,23 +153,15 @@
     // 鑾峰彇涓昏彍鍗�
     let result = await Api.getSystemConfig({func: 'sPC_Get_MainMenu'})
     if (result.status) {
-      let _avatar = Utils.getrealurl(result.HeadIcon) // 澶村儚
-      if (_avatar) {
-        avatar = _avatar
-      }
-
       if (result.debug === 'true') { // 鏄惁涓篸ebug妯″紡锛屽嵆鍙鍒惰彍鍗曞弬鏁�
         this.props.resetDebug()
       }
 
-      let param = sessionStorage.getItem('view_param') // 鏄惁涓烘墦寮�鏂伴〉闈�
-      if (param) {
+      let MainMenuId = sessionStorage.getItem('MainMenu') // 鏄惁涓烘墦寮�鏂伴〉闈�
+      if (MainMenuId) {
         // 閫氳繃url涓璵enuid绛涢�夊嚭閫変腑鐨勪富鑿滃崟
-        let menuId = param.split('&')[0]
-        let _menu = result.data.filter(item => item.MenuID === menuId)[0]
-        if (!_menu) {
-          sessionStorage.removeItem('view_param')
-        }
+        let _menu = result.data.filter(item => item.MenuID === MainMenuId)[0]
+        sessionStorage.removeItem('MainMenu')
         this.props.modifyMainMenu(_menu || result.data[0])
       } else {
         this.props.modifyMainMenu(result.data[0])
@@ -291,11 +284,17 @@
   }
 
   changeSystem = (system) => {
-    console.log(system)
+    let _param = window.btoa('ud=' + sessionStorage.getItem('UserID') + '&sd=' + sessionStorage.getItem('SessionUid') + '&ld=' + sessionStorage.getItem('LoginUID') + '&un=' + sessionStorage.getItem('User_Name'))
+    window.location.href = system.LinkUrl1 + '#/ssologin/' + _param
   }
   
   UNSAFE_componentWillMount () {
     // 缁勪欢鍔犺浇鏃讹紝鑾峰彇鑿滃崟鏁版嵁
+    let _avatar = sessionStorage.getItem('avatar')
+    if (_avatar) {
+      _avatar = Utils.getrealurl(_avatar) // 澶村儚
+      this.setState({avatar: _avatar})
+    }
     this.loadmenu()
   }
 
@@ -319,11 +318,11 @@
           <Switch size="small" className="edit-switch" disabled={!!this.props.editLevel} checked={this.props.editState} onChange={this.changeEditState} />
         </Menu.Item>}
         {!this.props.editState ? <Menu.Item key="1" onClick={this.changePassword}>{this.state.dict['header.password']}</Menu.Item> : null}
-        <Menu.SubMenu title="鍒囨崲绯荤粺">
+        {this.state.systems.length > 0 ? <Menu.SubMenu title="鍒囨崲绯荤粺">
           {this.state.systems.map((system, index) => (
             <Menu.Item className="header-subSystem" key={'sub' + index} onClick={() => {this.changeSystem(system)}}> {system.AppName} </Menu.Item>
           ))}
-        </Menu.SubMenu>
+        </Menu.SubMenu> : null}
         <Menu.Item key="2" onClick={this.logout}>{this.state.dict['header.logout']}</Menu.Item>
       </Menu>
     )
@@ -352,7 +351,7 @@
         {/* 澶村儚銆佺敤鎴峰悕 */}
         <Dropdown className="header-setting" overlay={menu}>
           <div>
-            <img src={avatar} alt=""/>
+            <img src={this.state.avatar} alt=""/>
             <span>
               <span className="username">{this.state.userName}</span> <Icon type="down" />
             </span>
diff --git a/src/components/header/index.scss b/src/components/header/index.scss
index f4a50f4..fdcee77 100644
--- a/src/components/header/index.scss
+++ b/src/components/header/index.scss
@@ -79,6 +79,8 @@
     line-height: 48px;
     margin-right: 10px;
     img {
+      width: 29px;
+      height: 29px;
       border-radius: 30px;
       margin-right: 7px;
     }
diff --git a/src/components/sidemenu/index.jsx b/src/components/sidemenu/index.jsx
index e52bbf3..1bdb8b8 100644
--- a/src/components/sidemenu/index.jsx
+++ b/src/components/sidemenu/index.jsx
@@ -48,27 +48,28 @@
         return
       }
 
-      let param = sessionStorage.getItem('view_param') // 鏄惁涓烘墦寮�鏂伴〉闈�
-      let msg = sessionStorage.getItem('UserID') + '&' + sessionStorage.getItem('SessionUid') + '&' + sessionStorage.getItem('LoginUID')
+      let SubMenuId = sessionStorage.getItem('SubMenu')   // 鏄惁涓烘墦寮�鏂伴〉闈�
+      let ThirdMenuId = sessionStorage.getItem('ThirdMenu') // 鏄惁涓烘墦寮�鏂伴〉闈�
+      let msg = sessionStorage.getItem('UserID') + '&sd=' + sessionStorage.getItem('SessionUid') + '&ld=' + sessionStorage.getItem('LoginUID') + '&un=' + sessionStorage.getItem('User_Name')
       let submenuId = '' // 灞曞紑浜岀骇鑿滃崟ID
       let tabId = '' // 鎵撳紑鐨則ab椤礽d
       
-      if (param) {
-        param = param.split('&')
-        submenuId = param[1]
-        let submenu = result.data.filter(item => item.ParentID === submenuId)[0]
+      if (SubMenuId && ThirdMenuId) {
+        submenuId = SubMenuId
+        let submenu = result.data.filter(item => item.ParentID === SubMenuId)[0]
 
         if (!submenu) {
           submenuId = ''
         } else {
-          tabId = param[2]
-          let tabmenu = submenu.FunMenu.filter(item => item.MenuID === tabId)[0]
+          tabId = ThirdMenuId
+          let tabmenu = submenu.FunMenu.filter(item => item.MenuID === ThirdMenuId)[0]
           if (!tabmenu) {
             submenuId = ''
             tabId = ''
           }
         }
-        sessionStorage.removeItem('view_param')
+        sessionStorage.removeItem('SubMenu')
+        sessionStorage.removeItem('ThirdMenu')
       }
       let parentID = submenuId ? submenuId : result.data[0].ParentID // 灞曞紑浜岀骇鑿滃崟ID
 
@@ -85,7 +86,7 @@
         if (item.FunMenu) {
           _smenu.children = item.FunMenu.map((child, n) => {
             let _tmenu = {}
-            let _msg = window.btoa(menu.MenuID + '&' + _smenu.MenuID + '&' + child.MenuID + '&' + msg) // 寰呭畬鍠�
+            let _msg = window.btoa('mm=' + menu.MenuID + '&sm=' + _smenu.MenuID + '&tm=' + child.MenuID + '&ud=' + msg) // 寰呭畬鍠�
             _tmenu.src = '#/main/' + _msg
             if (child.LinkUrl === 'CommonTable') {
               _tmenu.type = 'CommonTable'
@@ -128,10 +129,11 @@
       if (tabId) {
         let _menu = menulist.filter(menu => menu.MenuID === submenuId)[0]
         let opentab = _menu && _menu.children.filter(tab => tab.MenuID === tabId)[0]
-
         if (opentab) {
           opentab.selected = true
-          this.props.modifyTabview([opentab])
+          let home = this.props.tabviews[0]
+          home.selected = false
+          this.props.modifyTabview([home, opentab])
         }
       }
     } else {
diff --git a/src/router/index.js b/src/router/index.js
index bf812ca..59db3d9 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -11,6 +11,7 @@
 
 const routers = [
   {path: '/login', name: 'login', component: login, auth: false},
+  {path: '/ssologin/:param', name: 'ssologin', auth: true},
   {path: '/main', name: 'main', component: main, auth: true},
   {path: '/main/:param', name: 'pmain', component: main, auth: true}
 ]
@@ -23,7 +24,32 @@
 
     if (item.name === 'pmain') { // 鏂扮獥鍙f墦寮�锛屽彇url鍙傛暟鏀惧叆sessionStorage
       let _param = window.atob(props.match.params.param)
-      sessionStorage.setItem('view_param', _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)
+
+      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)
+
       return (<Redirect to={{ pathname: '/main'}}/>)
     }
     
@@ -36,16 +62,7 @@
     if (userId && isauth) {
       return (<item.component {...props}/>)
     } else {
-      let param = sessionStorage.getItem('view_param')
-      if (param) {
-        param = param.split('&')
-        sessionStorage.setItem('UserID', param[3])
-        sessionStorage.setItem('SessionUid', param[4])
-        sessionStorage.setItem('LoginUID', param[5])
-        return (<item.component {...props}/>)
-      } else {
-        return (<Redirect to={{ pathname: '/login', state: {from: props.location}}}/>)
-      }
+      return (<Redirect to={{ pathname: '/login', state: {from: props.location}}}/>)
     }
   }
 
diff --git a/src/tabviews/tableshare/actionList/index.jsx b/src/tabviews/tableshare/actionList/index.jsx
index 3957b61..47693ca 100644
--- a/src/tabviews/tableshare/actionList/index.jsx
+++ b/src/tabviews/tableshare/actionList/index.jsx
@@ -305,6 +305,12 @@
           param[setting.primaryKey] = ids.join(',')
         }
 
+        if (btn.OpenType === 'pop' && formdata) { // 琛ㄥ崟
+          formdata.forEach(_data => {
+            param[_data.key] = _data.value
+          })
+        }
+
         new Promise(resolve => {
           // 鍐呴儴璇锋眰
           if (btn.innerFunc) {
diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx
index 8735bcb..0767646 100644
--- a/src/views/login/index.jsx
+++ b/src/views/login/index.jsx
@@ -64,6 +64,7 @@
           sessionStorage.setItem('SessionUid', Utils.getuuid())
           sessionStorage.setItem('LoginUID', res.LoginUID)
           sessionStorage.setItem('User_Name', res.UserName)
+          sessionStorage.setItem('avatar', res.icon)
           
           localStorage.setItem('lang', param.lang)
 
diff --git a/src/views/login/loginform.jsx b/src/views/login/loginform.jsx
index 617b1c2..0b47002 100644
--- a/src/views/login/loginform.jsx
+++ b/src/views/login/loginform.jsx
@@ -98,6 +98,7 @@
             <Input
               prefix={<Icon type="user" style={{ color: 'rgba(0,0,0,.25)' }} />}
               placeholder={this.props.dict['login.username']}
+              autoComplete="off"
             />,
           )}
         </Form.Item>

--
Gitblit v1.8.0