From 9e716f3bd30820a08757845b592db73363faa48c Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 25 四月 2022 14:53:37 +0800
Subject: [PATCH] 2022-04-25

---
 src/api/index.js |  143 ++++++++++++++++++++++++++++++++---------------
 1 files changed, 97 insertions(+), 46 deletions(-)

diff --git a/src/api/index.js b/src/api/index.js
index 950a545..a542dfc 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -14,12 +14,12 @@
   1585192949946f3et2ts8tn82krmumdf,15855615451212m12ip23vpcm79kloro,1587005717541lov40vg61q7l1rbveon,1590458676585agbbr63t6ihighg2i1g,1602315375262ikd33ii0nii34pt861o,1582771068837vsv54a089lgp45migbg,
   1582777675954ifu05upurs465omoth7,158294809668898cklbv6c5bou8e1fpu,1584676379094iktph45fb8imhg96bql,1584695125339vo5g7iqgfn01qmrd6s2,1584699661372vhmpp9dn9foo0eob722,15848421131551gg04ie8sitsd3f7467,
   1589782279158ngr675kk3oksin35sul,1589788042787ffdt9hle4s45k9r1nvs,15900310928174dro07ihfckghpb5h13,1594095599055qicg2eb642v5qglhnuo,1599613340050c8nu6rbst9d4emnnbsq,1577972969199lei1g0qkvlh4tkc908m,
-  1578479100252lfbp29v1kafk4s4q4ig,1577971621421tg4v0i1ur8873k7e0ob,1577929944419lgc5h3hepum765e2k7u,1588493493409k9guqp067d31lu7blsv`
+  1578479100252lfbp29v1kafk4s4q4ig,1577971621421tg4v0i1ur8873k7e0ob,1577929944419lgc5h3hepum765e2k7u,1588493493409k9guqp067d31lu7blsv,15827879285193g85m3i2uprektpgmpf`
 
 if (window.openDatabase) {
-  CacheUtils.openWebSql()
+  CacheUtils.openWebSql(options.sysType)
 } else if (window.indexedDB) {
-  CacheUtils.openIndexDB()
+  CacheUtils.openIndexDB(options.sysType)
 }
 
 axios.defaults.crossDomain = true
@@ -48,7 +48,7 @@
     }
 
     sessionStorage.clear()
-    sessionStorage.setItem('loginError', JSON.stringify({request: res.config ? res.config.data : '', response: JSON.stringify(res.data)}))
+    sessionStorage.setItem('loginError', JSON.stringify({url: res.config ? res.config.url : '', request: res.config ? res.config.data : '', response: JSON.stringify(res.data)}))
     window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login')
     window.location.reload()
   }
@@ -59,7 +59,7 @@
     if (window.debugger === true) {
       response.data.ErrCode = 'E'
       return Promise.resolve(response.data)
-    } else {
+    } else if (!sessionStorage.getItem('loginError')) {
       setCurrentUrl(response)
     }
   } else {
@@ -141,7 +141,7 @@
   /**
    * @description 娓稿鐧诲綍
    */
-  getTouristMsg () {
+  getTouristMsg (appid, openid, memberid, scanId) {
     let _SessionUid = localStorage.getItem('SessionUid')
 
     if (!_SessionUid) { // 鎵嬪姩娓呴櫎SessionUid鏃讹紝瀹炴椂鐢熸垚
@@ -153,13 +153,22 @@
       func: 's_visitor_login',
       timestamp: moment().format('YYYY-MM-DD HH:mm:ss'), 
       SessionUid: _SessionUid,
-      TypeCharOne: 'pc'
+      TypeCharOne: 'pc',
+      kei_id: window.btoa(window.encodeURIComponent(window.GLOB.host))
     }
     
     param.LText = md5(window.btoa(_SessionUid + param.timestamp))
     param.secretkey = md5(param.LText + 'mingke' + param.timestamp)
 
     param.appkey = window.GLOB.appkey || ''
+
+    if (appid) {
+      param.binding_type = 'mk'
+      param.thd_party_member_id = memberid
+      param.thd_party_openid = openid
+      param.thd_party_appid = appid
+      param.id = scanId
+    }
 
     let url = '/webapi/dologon/s_visitor_login'
     if (window.GLOB.mainSystemApi) {
@@ -187,7 +196,9 @@
       way_no: 'sms_vcode',
       systemType: options.sysType,
       login_city: city,
-      login_id_address: ipAddress
+      login_id_address: ipAddress,
+      kei_id: window.btoa(window.encodeURIComponent(window.GLOB.host)),
+      device_id: localStorage.getItem('SessionUid')
     }
 
     param.appkey = window.GLOB.appkey || ''
@@ -224,11 +235,11 @@
       systemType: options.sysType,
       Type: 'S',
       login_city: city,
-      login_id_address: ipAddress
+      login_id_address: ipAddress,
+      kei_id: window.btoa(window.encodeURIComponent(window.GLOB.host)),
+      device_id: localStorage.getItem('SessionUid')
     }
 
-    // Type: 'S' 鏃�
-    let shaObj = new jsSHA('SHA-1', 'TEXT')
     param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
 
     let sys_datetime = sessionStorage.getItem('sys_datetime')
@@ -238,12 +249,22 @@
       param.timestamp = moment(sys_datetime, 'YYYY-MM-DD HH:mm:ss').add(seconds, 'seconds').format('YYYY-MM-DD HH:mm:ss')
     }
     
+    // Type: 'S' 鏃�
+    let shaObj = new jsSHA('SHA-1', 'TEXT')
     shaObj.update(password)
     param.Password = shaObj.getHash('HEX').toUpperCase()
     param.Password = md5(username + param.Password + param.timestamp)
 
+    // Type: 'mk_' 鏃�
+    // param.Type = '鍏挜'
+    // let shaObj = new jsSHA('SHA-1', 'TEXT')
+    // shaObj.update(password)
+    // param.Password = shaObj.getHash('HEX').toUpperCase()
+    // param.Password = md5('绉侀挜' + username + param.Password + param.timestamp)
+    
     // Type: 'X' 鏃�
     // param.Password = Utils.formatOptions(password)
+
     param.appkey = window.GLOB.appkey || ''
     let url = '/webapi/dologon'
 
@@ -272,7 +293,6 @@
    * @description 鑾峰彇绯荤粺鐗堟湰淇℃伅锛屽惎鐢ㄦ垨鏇存柊websql
    */
   getAppVersion (_resolve, _reject) {
-    let appVersion = {}
     if (!window.GLOB.WebSql && !window.GLOB.IndexDB) {
       return Promise.reject()
     }
@@ -288,10 +308,14 @@
     if (window.GLOB.WebSql) {
       return new Promise((resolve, reject) => {
         CacheUtils.getWebSqlVersion().then(msg => {
-          appVersion.oldVersion = msg.version || ''
+          let modifydate = msg.createDate || curTime
+          if (modifydate.indexOf('Invalid date') > -1) {
+            modifydate = curTime
+          }
+
           let param = {
             func: 's_get_app_version',
-            modifydate: msg.createDate || curTime,
+            modifydate
           }
   
           this.getSystemConfig(param).then(res => {
@@ -300,9 +324,7 @@
               return
             }
             let clear = false
-            let version = res.app_version || '1.00'
-            appVersion.newVersion = version
-            appVersion.oldVersion = appVersion.oldVersion || version
+            let version = '1.00'
   
             if (res.menu_data && res.menu_data.length > 0) {
               res.menu_data.forEach(mid => {
@@ -325,7 +347,7 @@
               CacheUtils.createWebSqlversion(version, curTime)
             }
   
-            resolve(appVersion)
+            resolve()
           })
         }, () => {
           reject()
@@ -334,10 +356,13 @@
     } else {
       return new Promise((resolve, reject) => {
         CacheUtils.getIndexDBVersion().then(msg => {
-          appVersion.oldVersion = msg.version || ''
+          let modifydate = msg.createDate || curTime
+          if (modifydate.indexOf('Invalid date') > -1) {
+            modifydate = curTime
+          }
           let param = {
             func: 's_get_app_version',
-            modifydate: msg.createDate || curTime,
+            modifydate
           }
 
           this.getSystemConfig(param).then(res => {
@@ -346,9 +371,7 @@
               return
             }
             let clear = false
-            let version = res.app_version || '1.00'
-            appVersion.newVersion = version
-            appVersion.oldVersion = appVersion.oldVersion || version
+            let version = '1.00'
   
             if (res.menu_data && res.menu_data.length > 0) {
               res.menu_data.forEach(mid => {
@@ -365,9 +388,9 @@
               }
             }
 
-            CacheUtils.updateIndexDBversion({version: appVersion.oldVersion, createDate: curTime})
+            CacheUtils.updateIndexDBversion({version: version, createDate: curTime})
   
-            resolve(appVersion)
+            resolve()
           })
         }, () => {
           reject()
@@ -379,12 +402,13 @@
   /**
    * @description 鏇存柊绯荤粺鐗堟湰淇℃伅锛屾竻绌洪厤缃俊鎭�
    */
-  updateAppVersion (newVersion) {
+  updateAppVersion () {
     let curTime = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
     CacheUtils.clearWebSqlConfig()
-    CacheUtils.updateWebSqlversion(newVersion, curTime)
+    CacheUtils.updateWebSqlversion('1.00', curTime)
     CacheUtils.clearIndexDBConfig()
-    CacheUtils.updateIndexDBversion({version: newVersion, createDate: curTime})
+    CacheUtils.updateIndexDBversion({version: '1.00', createDate: curTime})
+    CacheUtils.clearFuncs(options.sysType)
   }
 
   /**
@@ -431,12 +455,36 @@
   /**
    * @description 鑾峰彇鎴栦慨鏀圭郴缁熼厤缃紝澧炲姞appkey
    */
+  getSystemFuncs (time) {
+    let param = {
+      func: 's_get_func_base_sso',
+      update_date: time,
+      userid: sessionStorage.getItem('UserID') || '',
+      lang: sessionStorage.getItem('lang') || '',
+      SessionUid: localStorage.getItem('SessionUid') || '',
+      LoginUID: sessionStorage.getItem('LoginUID') || '',
+      appkey: window.GLOB.appkey
+    }
+
+    let url = window.GLOB.mainSystemApi || '/webapi/dostars'
+    param = this.encryptParam(param)
+
+    return axios({
+      url: `${url}/${param.func}`,
+      method: 'post',
+      data: param
+    })
+  }
+
+  /**
+   * @description 鑾峰彇鎴栦慨鏀圭郴缁熼厤缃紝澧炲姞appkey
+   */
   getSystemConfig (param) {
     param.userid = param.userid || sessionStorage.getItem('UserID') || ''
     param.lang = param.lang || sessionStorage.getItem('lang') || ''
     param.SessionUid = localStorage.getItem('SessionUid') || ''
     param.LoginUID = param.LoginUID || sessionStorage.getItem('LoginUID') || ''
-    param.appkey = window.GLOB.appkey || ''
+    param.appkey = param.appkey || window.GLOB.appkey
 
     let url = '/webapi/dostars'
     if (sessionStorage.getItem('isEditState') === 'true' && options.cloudServiceApi) { // 缂栬緫鐘舵�侊紝涓斿瓨鍦ㄤ簯绔湴鍧�
@@ -623,7 +671,15 @@
       }
     })
     param.sign = md5(values)
-    param.t = new Date().getTime()
+    param.t = new Date().getTime();
+
+    ['arr_field', 'LText_field', 'custom_script', 'LText1', 'LText', 'LText2', 'DateCount'].forEach(key => {
+      if (param[key]) {
+        let val = param[key]
+        delete param[key]
+        param[key] = val
+      }
+    })
 
     return param
   }
@@ -633,7 +689,7 @@
    * @param {Object}  param   璇锋眰鍙傛暟
    * @param {Boolean} SSO     鏄惁涓哄崟鐐圭櫥褰曞湴鍧�
    */
-  getSystemCacheConfig (param) {
+  getSystemCacheConfig (param, cache = true) {
     param.userid = param.userid || sessionStorage.getItem('UserID') || ''
     param.lang = param.lang || sessionStorage.getItem('lang') || ''
     param.SessionUid = localStorage.getItem('SessionUid') || ''
@@ -653,7 +709,7 @@
     _param = JSON.stringify(_param)
     _param  = md5(_param)
 
-    if (window.GLOB.CacheMap.has(_param)) {
+    if (cache && window.GLOB.CacheMap.has(_param)) {
       return Promise.resolve(window.GLOB.CacheMap.get(_param))
     } else {
       param = this.encryptParam(param)
@@ -743,7 +799,7 @@
             }
             resolve()
           }
-        } catch {
+        } catch (e) {
           resolve({
             ErrCode: 'E',
             ErrMesg: '鏂囦欢瑙f瀽閿欒',
@@ -771,22 +827,17 @@
 
     param = this.encryptParam(param)
 
+    let url = '/webapi/SaveBase64Image'
     if (param.rduri) {
-      let url = param.rduri.replace(/webapi(.*)$/, 'webapi/SaveBase64Image')
+      url = param.rduri.replace(/webapi(.*)$/, 'webapi/SaveBase64Image')
       delete param.rduri
-
-      return axios({
-        url,
-        method: 'post',
-        data: param
-      })
-    } else {
-      return axios({
-        url: '/webapi/SaveBase64Image',
-        method: 'post',
-        data: param
-      })
     }
+
+    return axios({
+      url,
+      method: 'post',
+      data: param
+    })
   }
 
   /**

--
Gitblit v1.8.0