From e6a6fb8d27b14581ae771325c1b99ee26d6618dd Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 19 三月 2020 18:19:06 +0800
Subject: [PATCH] 2020-03-19

---
 src/api/index.js |   80 +++++++++++++++++++++++++++++++--------
 1 files changed, 63 insertions(+), 17 deletions(-)

diff --git a/src/api/index.js b/src/api/index.js
index 19c2481..55c446a 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -33,7 +33,7 @@
   }
 }
 
-let GlobMap = new Map()
+window.GLOB.CacheMap = new Map()
 
 axios.interceptors.response.use((response) => {
   if (response.data.ErrCode === 'LoginError') {
@@ -142,8 +142,15 @@
     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('')
+    let values = ''
+    keys.forEach(key => {
+      if (key === 'rduri' || key === 't') return
+      if (typeof(param[key]) === 'object') {
+        values += key + JSON.stringify(param[key])
+      } else {
+        values += key + param[key]
+      }
+    })
     param.sign  = md5(values)
     param.t = new Date().getTime()
 
@@ -175,8 +182,15 @@
     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('')
+    let values = ''
+    keys.forEach(key => {
+      if (key === 'rduri' || key === 't') return
+      if (typeof(param[key]) === 'object') {
+        values += key + JSON.stringify(param[key])
+      } else {
+        values += key + param[key]
+      }
+    })
     param.sign  = md5(values)
     param.t = new Date().getTime()
 
@@ -199,8 +213,15 @@
     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('')
+    let values = ''
+    keys.forEach(key => {
+      if (key === 'rduri' || key === 't') return
+      if (typeof(param[key]) === 'object') {
+        values += key + JSON.stringify(param[key])
+      } else {
+        values += key + param[key]
+      }
+    })
     param.sign  = md5(values)
     param.t = new Date().getTime()
 
@@ -239,14 +260,21 @@
     _param = JSON.stringify(_param)
     _param  = md5(_param)
 
-    if (GlobMap.has(_param)) {
-      return Promise.resolve(GlobMap.get(_param))
+    if (window.GLOB.CacheMap.has(_param)) {
+      return Promise.resolve(window.GLOB.CacheMap.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('')
+      let values = ''
+      keys.forEach(key => {
+        if (key === 'rduri' || key === 't') return
+        if (typeof(param[key]) === 'object') {
+          values += key + JSON.stringify(param[key])
+        } else {
+          values += key + param[key]
+        }
+      })
       param.sign  = md5(values)
       param.t = new Date().getTime()
 
@@ -255,8 +283,9 @@
           url: '/webapi/dostars',
           data: param
         }).then(res => {
-
-          GlobMap.set(_param, res)
+          if (res.status) {
+            window.GLOB.CacheMap.set(_param, res)
+          }
           resolve(res)
         })
       })
@@ -271,6 +300,7 @@
     param.lang = localStorage.getItem('lang') || ''
     param.SessionUid = sessionStorage.getItem('SessionUid') || ''
     param.LoginUID = sessionStorage.getItem('LoginUID') || ''
+    param.appkey = window.GLOB.appkey || ''
 
     if (sessionStorage.getItem('isEditState') === 'true' && param.rduri === options.cloudServiceApi) { // HS涓嬭彍鍗�
       param.userid = sessionStorage.getItem('CloudUserID')
@@ -281,8 +311,15 @@
     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('')
+    let values = ''
+    keys.forEach(key => {
+      if (key === 'rduri' || key === 't') return
+      if (typeof(param[key]) === 'object') {
+        values += key + JSON.stringify(param[key])
+      } else {
+        values += key + param[key]
+      }
+    })
     param.sign  = md5(values)
     param.t = new Date().getTime()
 
@@ -300,6 +337,7 @@
     param.lang = localStorage.getItem('lang') || ''
     param.SessionUid = sessionStorage.getItem('SessionUid') || ''
     param.LoginUID = sessionStorage.getItem('LoginUID') || ''
+    param.appkey = window.GLOB.appkey || ''
     
     return new Promise(resolve => {
       axios({
@@ -348,6 +386,7 @@
    */
   fileuploadbase64 (base64, service = 'local') {
     let param = {
+      func: '',
       BasePath: 'Content/Upload',
       lang: localStorage.getItem('lang') || '',
       appkey: window.GLOB.appkey || '',
@@ -373,8 +412,15 @@
     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('')
+    let values = ''
+    keys.forEach(key => {
+      if (key === 'rduri' || key === 't') return
+      if (typeof(param[key]) === 'object') {
+        values += key + JSON.stringify(param[key])
+      } else {
+        values += key + param[key]
+      }
+    })
     param.sign  = md5(values)
     param.t = new Date().getTime()
 

--
Gitblit v1.8.0