From 390c5026c78d2be9dca4357041f4a0ec8ac3668f Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 04 二月 2020 13:57:31 +0800
Subject: [PATCH] 2020-02-04

---
 src/api/index.js |   78 ++++++++++++++++++++++++++++-----------
 1 files changed, 56 insertions(+), 22 deletions(-)

diff --git a/src/api/index.js b/src/api/index.js
index 5984450..45b2e26 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -26,10 +26,11 @@
 })
 
 const setCurrentUrl = () => {
-  // if (!!(window.history && window.history.pushState)) {
-  //   window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login')
-  //   window.location.reload()
-  // }
+  if (!!(window.history && window.history.pushState)) {
+    sessionStorage.clear()
+    window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login')
+    window.location.reload()
+  }
 }
 
 let GlobMap = new Map()
@@ -104,6 +105,8 @@
 
     if (isCloud && options.cloudLoginApi) {
       param.rduri = options.cloudLoginApi
+    } else if (window.GLOB.mainSystemApi) {
+      param.rduri = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon')
     }
 
     return axios({
@@ -121,25 +124,30 @@
     param.SessionUid = sessionStorage.getItem('SessionUid') || ''
     param.LoginUID = sessionStorage.getItem('LoginUID') || ''
     param.appkey = window.GLOB.appkey || ''
-    
-    if (sessionStorage.getItem('isEditState') && options.cloudServiceApi) { // 缂栬緫鐘舵�侊紝涓斿瓨鍦ㄤ簯绔湴鍧�
-      param.rduri = options.cloudServiceApi
+
+    let _rduri = ''
+    if (sessionStorage.getItem('isEditState') === 'true' && options.cloudServiceApi) { // 缂栬緫鐘舵�侊紝涓斿瓨鍦ㄤ簯绔湴鍧�
+      _rduri = options.cloudServiceApi
       param.userid = sessionStorage.getItem('CloudUserID')
       param.SessionUid = sessionStorage.getItem('CloudSessionUid') || ''
       param.LoginUID = sessionStorage.getItem('CloudLoginUID') || ''
     } else if (window.GLOB.mainSystemApi) {
-      param.rduri = window.GLOB.mainSystemApi
+      _rduri = window.GLOB.mainSystemApi
     }
 
-    // param.nonc = Utils.getuuid()
-    // param._ = new Date().getTime()
+    param.nonc = Utils.getuuid()
+    
+    let keys = Object.keys(param).sort()
+    let values = keys.map(key => key + param[key]).join('')
+    param.sign  = md5(values)
+    param.t = new Date().getTime()
 
-    // let keys = Object.keys(param).sort()
-    // let values = keys.map(key => key + param[key]).join('')
-    // param.sign  = md5(values)
+    if (_rduri) {
+      param.rduri = _rduri
+    }
 
     return axios({
-      url: '/webapi/dostar',
+      url: '/webapi/dostars',
       data: param
     })
   }
@@ -154,22 +162,32 @@
     param.LoginUID = sessionStorage.getItem('LoginUID') || ''
     param.appkey = window.GLOB.appkey || ''
 
+    param.nonc = Utils.getuuid()
+    
+    let keys = Object.keys(param).sort()
+    let values = keys.map(key => key + param[key]).join('')
+    param.sign  = md5(values)
+    param.t = new Date().getTime()
+
     return axios({
-      url: '/webapi/dostar',
+      url: '/webapi/dostars',
       data: param
     })
   }
 
   /**
    * @description 鑾峰彇绯荤粺閰嶇疆锛屼紭鍏堜粠缂撳瓨涓彇鍊硷紝澧炲姞appkey
+   * @param {Object}  param   璇锋眰鍙傛暟
+   * @param {Boolean} SSO     鏄惁涓哄崟鐐圭櫥褰曞湴鍧�
    */
-  getSystemCacheConfig (param) {
+  getSystemCacheConfig (param, SSO = true) {
     param.userid = sessionStorage.getItem('UserID')
     param.lang = localStorage.getItem('lang') || ''
     param.SessionUid = sessionStorage.getItem('SessionUid') || ''
     param.LoginUID = sessionStorage.getItem('LoginUID') || ''
     param.appkey = window.GLOB.appkey || ''
-    if (window.GLOB.mainSystemApi) {
+
+    if (window.GLOB.mainSystemApi && SSO) {
       param.rduri = window.GLOB.mainSystemApi
     }
 
@@ -182,9 +200,17 @@
     if (GlobMap.has(_param)) {
       return Promise.resolve(GlobMap.get(_param))
     } else {
+      param.nonc = Utils.getuuid()
+      
+      let keys = Object.keys(param).sort()
+      keys = keys.filter(key => key !== 'rduri')
+      let values = keys.map(key => key + param[key]).join('')
+      param.sign  = md5(values)
+      param.t = new Date().getTime()
+
       return new Promise(resolve => {
         axios({
-          url: '/webapi/dostar',
+          url: '/webapi/dostars',
           data: param
         }).then(res => {
 
@@ -204,12 +230,20 @@
     param.SessionUid = sessionStorage.getItem('SessionUid') || ''
     param.LoginUID = sessionStorage.getItem('LoginUID') || ''
 
-    if (param.func === 'RolesAdd') { // 瑙掕壊娣诲姞鏃讹紝浼燼ppkey
-      param.appkey = window.GLOB.appkey || ''
-    }
+    // if (param.func === 'RolesAdd') { // 瑙掕壊娣诲姞鏃讹紝浼燼ppkey(澶栭儴鎺ュ彛缁熶竴娣诲姞)
+    //   param.appkey = window.GLOB.appkey || ''
+    // }
+
+    param.nonc = Utils.getuuid()
+    
+    let keys = Object.keys(param).sort()
+    keys = keys.filter(key => key !== 'rduri' && key !== 't')
+    let values = keys.map(key => key + param[key]).join('')
+    param.sign  = md5(values)
+    param.t = new Date().getTime()
 
     return axios({
-      url: '/webapi/dostar',
+      url: '/webapi/dostars',
       data: param
     })
   }

--
Gitblit v1.8.0