From 4cf3c14e6cd5ababdc6c7fddad1726395ed083b7 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 16 三月 2021 12:21:16 +0800 Subject: [PATCH] 2021-03-16 --- src/api/index.js | 149 +++++++++++++++++++++++++++++++++---------------- 1 files changed, 99 insertions(+), 50 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index 587fafd..eaa86c6 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -2,6 +2,7 @@ import qs from 'qs' import { notification } from 'antd' import md5 from 'md5' +import jsSHA from 'jssha' import moment from 'moment' import Utils from '@/utils/utils.js' import CacheUtils from './cacheutils' @@ -197,7 +198,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') } @@ -212,15 +216,23 @@ * @description 鐧诲綍绯荤粺, 鑾峰彇鐢ㄦ埛淇℃伅 */ getusermsg (username, password, isCloud = false) { + let param = { // func: 'webapi_login', UserName: username, - Password: password, systemType: options.sysType, - Type: 'X' + Type: 'S' } - param.Password = Utils.formatOptions(param.Password) + // Type: 'S' 鏃� + let shaObj = new jsSHA('SHA-1', 'TEXT') + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + 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 || '' if (isCloud) { @@ -228,7 +240,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 +289,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 +319,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 { + 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,29 +371,29 @@ * @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') || '' - - if (sessionStorage.getItem('CloudUserID') && options.cloudServiceApi) { // 瀛樺湪浜戠鐧诲綍淇℃伅锛屼笖瀛樺湪浜戠鍦板潃 - param.rduri = options.cloudServiceApi - param.userid = sessionStorage.getItem('CloudUserID') - param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' - } else if (window.GLOB.mainSystemApi) { - param.rduri = window.GLOB.mainSystemApi - param.userid = sessionStorage.getItem('UserID') - param.LoginUID = sessionStorage.getItem('LoginUID') || '' - } else { - param.userid = sessionStorage.getItem('UserID') - param.LoginUID = sessionStorage.getItem('LoginUID') || '' - } + param.rduri = options.cloudServiceApi || '' + param.userid = sessionStorage.getItem('CloudUserID') || '' + param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' param = this.encryptParam(param) @@ -380,19 +408,15 @@ * @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') || '' - if (sessionStorage.getItem('CloudUserID') && options.cloudServiceApi) { // 瀛樺湪浜戠鐧诲綍淇℃伅锛屼笖瀛樺湪浜戠鍦板潃 + if (options.cloudServiceApi) { // 闈炰簯绔姹� param.rduri = options.cloudServiceApi - param.userid = sessionStorage.getItem('CloudUserID') + param.userid = sessionStorage.getItem('CloudUserID') || '' param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' - } else if (window.GLOB.mainSystemApi) { - param.rduri = window.GLOB.mainSystemApi - param.userid = sessionStorage.getItem('UserID') - param.LoginUID = sessionStorage.getItem('LoginUID') || '' - } else { + } else { // 浜戠璇锋眰 param.userid = sessionStorage.getItem('UserID') param.LoginUID = sessionStorage.getItem('LoginUID') || '' } @@ -429,7 +453,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 +480,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 +500,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 +542,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 +594,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 +651,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 || '' @@ -637,15 +687,15 @@ * @description 鑾峰彇涓氬姟閫氱敤鎺ュ彛 */ genericInterface (param) { - param.userid = sessionStorage.getItem('UserID') - param.lang = localStorage.getItem('lang') || '' + param.userid = sessionStorage.getItem('UserID') || '' + param.lang = sessionStorage.getItem('lang') || '' param.SessionUid = localStorage.getItem('SessionUid') || '' param.LoginUID = sessionStorage.getItem('LoginUID') || '' param.appkey = window.GLOB.appkey || '' if (options.cloudServiceApi && param.rduri === options.cloudServiceApi) { // HS涓嬭彍鍗� - param.userid = sessionStorage.getItem('CloudUserID') || '' - param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' + param.userid = sessionStorage.getItem('CloudUserID') || param.userid || '' + param.LoginUID = sessionStorage.getItem('CloudLoginUID') || param.LoginUID || '' } param = this.encryptParam(param) @@ -662,7 +712,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 || '' @@ -674,7 +724,6 @@ method: 'post', data: param }).then(res => { - try { const blob = new Blob([res]) @@ -716,7 +765,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