From 4b18ab4bf4eff4383bd85beb76564dc6aeb1df86 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 26 一月 2021 19:11:26 +0800 Subject: [PATCH] 2021-01-26 --- src/api/index.js | 155 +++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 130 insertions(+), 25 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index 6821ef2..e260816 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -7,7 +7,6 @@ import options from '@/store/options.js' let mkDataBase = null -let storUsable = false if (window.openDatabase) { let service = window.GLOB.service ? '-' + window.GLOB.service.replace('/', '') : '' @@ -15,7 +14,7 @@ mkDataBase = openDatabase(`mkdb${service}`, '1', 'mk-pc-database', 50 * 1024 * 1024) mkDataBase.transaction(tx => { tx.executeSql('CREATE TABLE IF NOT EXISTS VERSIONS (version varchar(50), createDate varchar(50), CDefine1 varchar(50), CDefine2 varchar(50), CDefine3 varchar(50))', [], () => { - + }, () => { // eslint-disable-next-line throw 'CREATE TABLE ERROR' @@ -42,13 +41,11 @@ axios.defaults.withCredentials = true axios.interceptors.request.use((config) => { - config.method = 'post' if (config.url.includes('LoginAndRedirect') || config.url.includes('getjsonresult') || config.url.includes('wxNativePay')) { config.data = qs.stringify(config.data) } else if (config.url.includes('Upload') || config.url.includes('doupload') || config.url.includes('dopreload')) { config.headers = { 'Content-Type': 'multipart/form-data' } - } else { - // config.headers.token = sessionStorage.getItem('TOKEN') || '' + } else if (config.method === 'post') { config.data = JSON.stringify(config.data) } @@ -57,7 +54,7 @@ return Promise.reject(error) }) -const setCurrentUrl = () => { +const setCurrentUrl = (res) => { if (!!(window.history && window.history.pushState)) { if (window.location.href.indexOf('paramsmain') > -1) { let _href = window.location.href.split('#') @@ -65,12 +62,11 @@ } sessionStorage.clear() + sessionStorage.setItem('loginError', JSON.stringify({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() } } - -window.GLOB.CacheMap = new Map() axios.interceptors.response.use((response) => { if (response.data.ErrCode === 'LoginError') { @@ -78,20 +74,22 @@ response.data.ErrCode = 'E' return Promise.resolve(response.data) } else { - setCurrentUrl() + setCurrentUrl(response) } } else { return Promise.resolve(response.data) } }, (error) => { - notification.error({ - className: 'notification-custom-error', - bottom: 0, - message: '鐘舵�佺爜-' + error.response.status + '锛岃鑱旂郴绠$悊鍛�', - placement: 'bottomRight', - duration: 15 - }) - return Promise.reject(error) + if (error && error.response) { + notification.error({ + className: 'notification-custom-error', + bottom: 0, + message: '鐘舵�佺爜-' + error.response.status + '锛岃鑱旂郴绠$悊鍛�', + placement: 'bottomRight', + duration: 15 + }) + } + return Promise.reject(error.response) }) class Api { @@ -112,8 +110,33 @@ return axios({ url: '/webapi/dostar', + method: 'post', data: param }) + } + + /** + * @description 鐩存帴璇锋眰 + * @param {Object} param 鏌ヨ鍙婃彁浜ゅ弬鏁� + */ + directRequest (url, method = 'post', param) { + let params = { method: 'post' } + let _url = url + + if (method === 'get' && param) { + let keys = Object.keys(param).map(key => `${key}=${param[key]}`) + keys = keys.join('&') + if (keys) { + _url = _url + '?' + keys + } + } else if (method === 'post' && param) { + params.data = param + } + + _url = window.btoa(_url) + params.url = '/trans/redirect?rd=' + _url + '&method=' + method + + return axios(params) } /** @@ -128,6 +151,7 @@ return axios({ url: '/webapi/dostar', + method: 'post', data: param }) } @@ -161,6 +185,7 @@ return axios({ url: '/webapi/dologon', + method: 'post', data: param }) } @@ -192,6 +217,7 @@ return axios({ url: '/webapi/dologon', + method: 'post', data: param }) } @@ -222,6 +248,7 @@ return axios({ url: '/webapi/dologon', + method: 'post', data: param }) } @@ -284,18 +311,36 @@ return new Promise((resolve, reject) => { axios({ url: `/webapi/dostars${param.func ? '/' + param.func : ''}`, + method: 'post', data: 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) { + let keys = `1581067625930haged11ieaivpavv77k,1581734956310scks442ul2d955g9tu5,1583991994144ndddg0bhh0is6shi0v1,1583979633842550imkchl4qt4qppsiv,1578900109100np8aqd0a77q3na46oas,16044812935562g807p3p12huk8kokmb, + 1585192949946f3et2ts8tn82krmumdf,15855615451212m12ip23vpcm79kloro,1587005717541lov40vg61q7l1rbveon,1590458676585agbbr63t6ihighg2i1g,1602315375262ikd33ii0nii34pt861o,1582771068837vsv54a089lgp45migbg, + 1582777675954ifu05upurs465omoth7,158294809668898cklbv6c5bou8e1fpu,1584676379094iktph45fb8imhg96bql,1584695125339vo5g7iqgfn01qmrd6s2,1584699661372vhmpp9dn9foo0eob722,15848421131551gg04ie8sitsd3f7467, + 1589782279158ngr675kk3oksin35sul,1589788042787ffdt9hle4s45k9r1nvs,15900310928174dro07ihfckghpb5h13,1594095599055qicg2eb642v5qglhnuo,1599613340050c8nu6rbst9d4emnnbsq,1577972969199lei1g0qkvlh4tkc908m, + 1578479100252lfbp29v1kafk4s4q4ig,1577971621421tg4v0i1ur8873k7e0ob,1577929944419lgc5h3hepum765e2k7u,1588493493409k9guqp067d31lu7blsv` + + res.menu_data.forEach(mid => { + if (keys.indexOf(mid.menuid) > -1) { + clear = true + } + }) + } + mkDataBase.transaction(tx => { - if (res.menu_data && res.menu_data.length > 0) { + if (clear) { + tx.executeSql(`DELETE FROM CONFIGS`, [], () => {}, () => { reject() }) + } else if (res.menu_data && res.menu_data.length > 0) { let keys = res.menu_data.map(mid => `'${mid.menuid}'`) tx.executeSql(`DELETE FROM CONFIGS where menuid in (${keys.join(',')})`, [], () => {}, () => { reject() @@ -318,12 +363,14 @@ }) }) }, () => { - _reject() mkDataBase = null + _reject() return Promise.reject() }).then(() => { - storUsable = true _resolve(appVersion) + }, () => { + mkDataBase = null + _reject() }) } @@ -395,6 +442,7 @@ return axios({ url: `/webapi/dostars${param.func ? '/' + param.func : ''}`, + method: 'post', data: param }) } @@ -435,6 +483,7 @@ return new Promise(resolve => { axios({ url: `/webapi/dostars${param.func ? '/' + param.func : ''}`, + method: 'post', data: param }).then(res => { if (res.status) { @@ -468,6 +517,7 @@ return axios({ url: `/webapi/dostars${param.func ? '/' + param.func : ''}`, + method: 'post', data: param }) } @@ -476,7 +526,7 @@ * @description 鑾峰彇鎴栦慨鏀规湰鍦伴厤缃紝澧炲姞appkey */ getLocalConfig (param) { - param.userid = sessionStorage.getItem('UserID') + param.userid = sessionStorage.getItem('UserID') || '' param.lang = localStorage.getItem('lang') || '' param.SessionUid = localStorage.getItem('SessionUid') || '' param.LoginUID = sessionStorage.getItem('LoginUID') || '' @@ -486,6 +536,7 @@ return axios({ url: `/webapi/dostars${param.func ? '/' + param.func : ''}`, + method: 'post', data: param }) } @@ -518,7 +569,7 @@ _param = JSON.stringify(_param) _param = md5(_param) - if (mkDataBase && storUsable) { + if (mkDataBase) { param = this.encryptParam(param) return new Promise(resolve => { @@ -539,6 +590,7 @@ } else { axios({ url: `/webapi/dostars${param.func ? '/' + param.func : ''}`, + method: 'post', data: param }).then(res => { if (res.status) { @@ -548,8 +600,12 @@ }) } }, (tx, results) => { + mkDataBase = null + console.warn(results) + axios({ url: `/webapi/dostars${param.func ? '/' + param.func : ''}`, + method: 'post', data: param }).then(res => { if (res.status) { @@ -557,9 +613,6 @@ } resolve(res) }) - mkDataBase = null - storUsable = false - console.warn(results) }) }) }) @@ -571,6 +624,7 @@ return new Promise(resolve => { axios({ url: `/webapi/dostars${param.func ? '/' + param.func : ''}`, + method: 'post', data: param }).then(res => { if (res.status) { @@ -579,6 +633,46 @@ resolve(res) }) }) + } + } + + /** + * @description 鑾峰彇鏈湴绯荤粺閰嶇疆 + * @param {Object} param 璇锋眰鍙傛暟 + */ + getLocalCacheConfig (param) { + param.userid = sessionStorage.getItem('UserID') || '' + param.lang = localStorage.getItem('lang') || '' + param.SessionUid = localStorage.getItem('SessionUid') || '' + param.LoginUID = sessionStorage.getItem('LoginUID') || '' + param.appkey = window.GLOB.appkey || '' + + if (window.GLOB.mainSystemApi) { + param.rduri = window.GLOB.mainSystemApi + } + + let _param = md5(JSON.stringify(param)) + + if (mkDataBase) { + return new Promise(resolve => { + mkDataBase.transaction(tx => { + tx.executeSql(`SELECT * FROM CONFIGS WHERE menuid='${param.MenuID}' and userid='${param.userid}'`, [], (tx, results) => { + let paramItem = results.rows[0] + if (paramItem) { + resolve({ ErrCode: 'S', ErrMesg: '', LongParam: paramItem.LongParam, message: '', status: true }) + } else { + resolve({ ErrCode: 'S', ErrMesg: '', LongParam: '', message: '', status: false }) + } + }, (tx, results) => { + mkDataBase = null + resolve({ErrCode: 'S', ErrMesg: '', LongParam: '', message: '', status: false}) + }) + }) + }) + } else if (window.GLOB.CacheMap.has(_param)) { + return Promise.resolve(window.GLOB.CacheMap.get(_param)) + } else { + return Promise.resolve({ErrCode: 'S', ErrMesg: '', LongParam: '', message: '', status: false}) } } @@ -643,6 +737,7 @@ return new Promise(resolve => { axios({ url: `/webapi/dostars${param.func ? '/' + param.func : ''}`, + method: 'post', data: param }).then(res => { if (res.status) { @@ -673,6 +768,7 @@ return axios({ url: `/webapi/dostars${param.func ? '/' + param.func : ''}`, + method: 'post', data: param }) } @@ -691,6 +787,7 @@ axios({ url: '/webapi/doexcel', responseType: 'blob', + method: 'post', data: param }).then(res => { @@ -762,11 +859,13 @@ return axios({ url: '/webapi/dostars', + method: 'post', data: param }) } else { return axios({ url: '/webapi/SaveBase64Image', + method: 'post', data: param }) } @@ -778,6 +877,7 @@ getLargeFileUpload (param) { return axios({ url: '/webapi/doupload', + method: 'post', data: param }) } @@ -788,6 +888,7 @@ getFilePreUpload (param) { return axios({ url: '/webapi/dopreload', + method: 'post', data: param }) } @@ -798,6 +899,7 @@ getWxNativePay (param) { return axios({ url: '/wxpay/wxNativePay', + method: 'post', data: param }) } @@ -808,6 +910,7 @@ getFileUpload (param) { return axios({ url: '/zh-CN/Home/Upload', + method: 'post', data: param }) } @@ -826,6 +929,7 @@ return axios({ url: '/webapi/dostar', + method: 'post', data: param }) } @@ -842,6 +946,7 @@ return axios({ url: '/webapi/dostar', + method: 'post', data: param }) } -- Gitblit v1.8.0