From 08929dbc66fb157307921026974c459f762209e2 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 25 二月 2021 15:31:24 +0800
Subject: [PATCH] 2021-02-25

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

diff --git a/src/api/index.js b/src/api/index.js
index 587fafd..f84456f 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -197,7 +197,10 @@
       if (options.cloudServiceApi) {
         param.rduri = options.cloudServiceApi.replace(/\/webapi(.*)/, '/webapi/dologon')
       }
-    } else if (!isCloud && window.GLOB.mainSystemApi) {
+    } else if (window.GLOB.mainSystemApi) {
+      if (options.sysType !== 'cloud' && window.GLOB.systemType !== 'production') {
+        param.linkurl = window.GLOB.linkurl
+      }
       param.rduri = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon')
     }
 
@@ -228,7 +231,10 @@
       if (options.cloudServiceApi) {
         param.rduri = options.cloudServiceApi.replace(/\/webapi(.*)/, '/webapi/dologon')
       }
-    } else if (!isCloud && window.GLOB.mainSystemApi) {
+    } else if (window.GLOB.mainSystemApi) {
+      if (options.sysType !== 'cloud' && window.GLOB.systemType !== 'production') {
+        param.linkurl = window.GLOB.linkurl
+      }
       param.rduri = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon')
     }
 
@@ -274,14 +280,15 @@
                   clear = true
                 }
               })
+
+              if (clear) {
+                CacheUtils.clearWebSqlConfig()
+              } else {
+                let keys = res.menu_data.map(mid => `'${mid.menuid}'`).join(',')
+                CacheUtils.delWebSqlConfig(keys)
+              }
             }
-  
-            if (clear) {
-              CacheUtils.clearWebSqlConfig()
-            } else if (res.menu_data && res.menu_data.length > 0) {
-              let keys = res.menu_data.map(mid => `'${mid.menuid}'`).join(',')
-              CacheUtils.delWebSqlConfig(keys)
-            }
+            
             if (msg.version) {
               CacheUtils.updateWebSqlTime(curTime)
             } else {
@@ -303,21 +310,33 @@
             func: 's_get_app_version',
             modifydate: msg.createDate || curTime,
           }
-  
+
           this.getSystemConfig(param).then(res => {
             if (!res.status) {
               reject()
               return
             }
+            let clear = false
             let version = res.app_version || '1.00'
             appVersion.newVersion = version
             appVersion.oldVersion = appVersion.oldVersion || version
   
             if (res.menu_data && res.menu_data.length > 0) {
-              CacheUtils.clearIndexDBConfig()
+              res.menu_data.forEach(mid => {
+                if (systemMenuKeys.indexOf(mid.menuid) > -1) {
+                  clear = true
+                }
+              })
+
+              if (clear) {
+                CacheUtils.clearIndexDBConfig()
+              } else if (res.menu_data && res.menu_data.length > 0) {
+                let keys = res.menu_data.map(mid => `'${mid.menuid}'`)
+                CacheUtils.delIndexDBConfig(keys)
+              }
             }
 
-            CacheUtils.updateIndexDBversion({version: version, createDate: curTime})
+            CacheUtils.updateIndexDBversion({version: appVersion.oldVersion, createDate: curTime})
   
             resolve(appVersion)
           })
@@ -343,14 +362,24 @@
    * @description 鍒犻櫎鏌愪釜鑿滃崟閰嶇疆淇℃伅
    */
   deleteMenuStorage (menuId) {
-    return CacheUtils.delMenuWebSqlConfig(menuId)
+    if (window.GLOB.IndexDB) {
+      let key = menuId + (sessionStorage.getItem('UserID') || '')
+    
+      if (sessionStorage.getItem('isEditState') === 'true' && options.cloudServiceApi) {
+        key = menuId + (sessionStorage.getItem('CloudUserID') || '')
+      }
+
+      return CacheUtils.delMenuIndexDBConfig(key)
+    } else {
+      return CacheUtils.delMenuWebSqlConfig(menuId)
+    }
   }
 
   /**
    * @description 鑾峰彇鎴栦慨鏀逛簯绔厤缃�
    */
   getCloudConfig (param) {
-    param.lang = localStorage.getItem('lang') || ''
+    param.lang = param.lang || sessionStorage.getItem('lang') || ''
     param.appkey = window.GLOB.appkey || ''
     param.SessionUid = localStorage.getItem('SessionUid') || ''
 
@@ -380,7 +409,7 @@
    * @description 鑾峰彇浜戠閰嶇疆锛屽苟缂撳瓨淇℃伅
    */
   getCloudCacheConfig (param) {
-    param.lang = localStorage.getItem('lang') || ''
+    param.lang = param.lang || sessionStorage.getItem('lang') || ''
     param.appkey = window.GLOB.appkey || ''
     param.SessionUid = localStorage.getItem('SessionUid') || ''
 
@@ -429,7 +458,7 @@
    */
   getSystemConfig (param) {
     param.userid = sessionStorage.getItem('UserID') || ''
-    param.lang = localStorage.getItem('lang') || ''
+    param.lang = param.lang || sessionStorage.getItem('lang') || ''
     param.SessionUid = localStorage.getItem('SessionUid') || ''
     param.LoginUID = sessionStorage.getItem('LoginUID') || ''
     param.appkey = window.GLOB.appkey || ''
@@ -456,7 +485,7 @@
    */
   getLocalConfig (param) {
     param.userid = sessionStorage.getItem('UserID') || ''
-    param.lang = localStorage.getItem('lang') || ''
+    param.lang = param.lang || sessionStorage.getItem('lang') || ''
     param.SessionUid = localStorage.getItem('SessionUid') || ''
     param.LoginUID = sessionStorage.getItem('LoginUID') || ''
     param.appkey = window.GLOB.appkey || ''
@@ -476,7 +505,7 @@
    */
   getCacheConfig (param) {
     param.userid = sessionStorage.getItem('UserID') || ''
-    param.lang = localStorage.getItem('lang') || ''
+    param.lang = param.lang || sessionStorage.getItem('lang') || ''
     param.SessionUid = localStorage.getItem('SessionUid') || ''
     param.LoginUID = sessionStorage.getItem('LoginUID') || ''
     param.appkey = window.GLOB.appkey || ''
@@ -518,6 +547,32 @@
           })
         })
       })
+    } else if (window.GLOB.IndexDB) {
+      return new Promise(resolve => {
+        CacheUtils.getIndexDBMenuConfig(param.MenuID, param.userid).then(res => {
+          resolve(res)
+        }, () => {
+          param = this.encryptParam(param)
+          axios({
+            url: `/webapi/dostars${param.func ? '/' + param.func : ''}`,
+            method: 'post',
+            data: param
+          }).then(res => {
+            if (res.status && window.GLOB.IndexDB) {
+              let msg = {
+                ...res,
+                userid: param.userid,
+                menuid: param.MenuID,
+                id: param.MenuID + param.userid
+              }
+              CacheUtils.writeInIndexDB(msg)
+            } else if (res.status) {
+              window.GLOB.CacheMap.set(_param, res)
+            }
+            resolve(res)
+          })
+        })
+      })
     } else if (window.GLOB.CacheMap.has(_param)) {
       return Promise.resolve(window.GLOB.CacheMap.get(_param))
     } else {
@@ -544,7 +599,7 @@
    */
   getLocalCacheConfig (param) {
     param.userid = sessionStorage.getItem('UserID') || ''
-    param.lang = localStorage.getItem('lang') || ''
+    param.lang = param.lang || sessionStorage.getItem('lang') || ''
     param.SessionUid = localStorage.getItem('SessionUid') || ''
     param.LoginUID = sessionStorage.getItem('LoginUID') || ''
     param.appkey = window.GLOB.appkey || ''
@@ -601,7 +656,7 @@
    */
   getSystemCacheConfig (param) {
     param.userid = param.userid || sessionStorage.getItem('UserID') || ''
-    param.lang = localStorage.getItem('lang') || ''
+    param.lang = param.lang || sessionStorage.getItem('lang') || ''
     param.SessionUid = localStorage.getItem('SessionUid') || ''
     param.LoginUID = param.LoginUID || sessionStorage.getItem('LoginUID') || ''
     param.appkey = window.GLOB.appkey || ''
@@ -638,7 +693,7 @@
    */
   genericInterface (param) {
     param.userid = sessionStorage.getItem('UserID')
-    param.lang = localStorage.getItem('lang') || ''
+    param.lang = sessionStorage.getItem('lang') || ''
     param.SessionUid = localStorage.getItem('SessionUid') || ''
     param.LoginUID = sessionStorage.getItem('LoginUID') || ''
     param.appkey = window.GLOB.appkey || ''
@@ -662,7 +717,7 @@
    */
   getExcelOut (param, name) {
     param.userid = sessionStorage.getItem('UserID')
-    param.lang = localStorage.getItem('lang') || ''
+    param.lang = sessionStorage.getItem('lang') || ''
     param.SessionUid = localStorage.getItem('SessionUid') || ''
     param.LoginUID = sessionStorage.getItem('LoginUID') || ''
     param.appkey = window.GLOB.appkey || ''
@@ -716,7 +771,7 @@
   fileuploadbase64 (param) {
     param.func = ''
     param.BasePath = 'Content/Upload'
-    param.lang = localStorage.getItem('lang') || ''
+    param.lang = sessionStorage.getItem('lang') || ''
     param.appkey = window.GLOB.appkey || ''
     param.SessionUid = localStorage.getItem('SessionUid') || ''
 

--
Gitblit v1.8.0