From ae7f00b753b89ba2d157a53c716662080a3cc171 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期六, 29 七月 2023 12:05:39 +0800 Subject: [PATCH] Merge branch 'develop' --- src/api/index.js | 181 +++++++++++++++++++------------------------- 1 files changed, 79 insertions(+), 102 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index 0e13380..c30b55b 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,6 +1,6 @@ import axios from 'axios' import qs from 'qs' -import { notification } from 'antd' +import { notification, Modal } from 'antd' import md5 from 'md5' import CryptoJS from 'crypto-js' import jsSHA from 'jssha' @@ -11,6 +11,7 @@ window.GLOB.IndexDB = null window.GLOB.OuterToken = {} +window.GLOB.$error = false let service = window.GLOB.service ? '-' + window.GLOB.service.replace('/', '') : '' let db = `mkdb${service}` @@ -23,57 +24,54 @@ axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' axios.defaults.withCredentials = false -axios.interceptors.request.use((config) => { - if (/LoginAndRedirect|getjsonresult|wxNativePay|postek/ig.test(config.url)) { - config.data = qs.stringify(config.data) - } else if (/\/doupload|\/dopreload|\/upload/.test(config.url)) { - config.headers = { 'Content-Type': 'multipart/form-data' } - } else if (config.method === 'post' && config.data) { - config.data = JSON.stringify(config.data) - } - - return config -}, (error) => { - return Promise.reject(error) -}) - -const setCurrentUrl = (res) => { - if (!!(window.history && window.history.pushState)) { - sessionStorage.clear() - 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() - } -} - axios.interceptors.response.use((response) => { if (response.data.ErrCode === 'LoginError') { - if (window.debugger === true || window.GLOB.saving) { + if (window.GLOB.developing) { + sessionStorage.setItem('devError', 'true') response.data.ErrCode = 'E' return Promise.resolve(response.data) - } else if (!sessionStorage.getItem('loginError')) { - setCurrentUrl(response) + } else if (response.config.url.indexOf('https://sso.mk9h.cn/webapi/dostars') > -1) { + return Promise.reject(response.data) + } else if (response.config.url.indexOf('https://epc.mk9h.cn/webapi/dostars') > -1) { + return Promise.reject(response.data) } + + if (!window.GLOB.$error) { + window.GLOB.$error = true + + Modal.destroyAll() + Modal.error({ + title: response.data.message, + okText: '鐭ラ亾浜�', + onOk: () => { + window.GLOB.$error = false + sessionStorage.clear() + if (!!(window.history && window.history.pushState)) { + window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login') + window.location.reload() + } + } + }) + } + + return Promise.reject(response.data) } else { return Promise.resolve(response.data) } }, (error) => { - let response = error.response + let response = error.response || '' - if (response) { - if (!response.data || !response.data.errors) { // 杩囨护鏃疯鎶ラ敊淇℃伅 - notification.error({ - className: 'notification-custom-error', - bottom: 0, - message: '鐘舵�佺爜-' + response.status + '锛岃鑱旂郴绠$悊鍛�', - placement: 'bottomRight', - duration: 15 - }) - } - return Promise.reject(response) - } else { - return Promise.reject() + if (response && (!response.data || !response.data.errors)) { // 杩囨护鏃疯鎶ラ敊淇℃伅 + notification.error({ + className: 'notification-custom-error', + bottom: 0, + message: '鐘舵�佺爜-' + response.status + '锛岃鑱旂郴绠$悊鍛�', + placement: 'bottomRight', + duration: 15 + }) } + + return Promise.reject(response) }) class Api { @@ -91,7 +89,7 @@ return axios({ url: `/webapi/dostar${param.func ? '/' + param.func : ''}`, method: 'post', - data: param + data: JSON.stringify(param) }) } @@ -165,38 +163,8 @@ /** * @description 鐩存帴璇锋眰 - * @param {Object} param 鏌ヨ鍙婃彁浜ゅ弬鏁� */ - directRequest (url, method = 'post', param, cross) { - if (cross === 'true' && param) { - return axios({ - url, - method, - data: param - }) - } else if (cross === 'true') { - return axios({ - url, - method - }) - } - - 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 = _url.replace(/&/ig, '%26') - params.url = '/trans/redirect?rd=' + _url + '&method=' + method - + directRequest (params) { return axios(params) } @@ -231,16 +199,20 @@ param.thd_party_openid = openid param.thd_party_appid = appid param.id = scanId - } else if (binding_type === 'login_check') { // appid 姝ゆ椂涓虹洰鏍� + } else if (binding_type === 'login_check') { // appid 姝ゆ椂涓虹洰鏍囧湴鍧� param.v_type = 'login_check' param.LoginUID = sessionStorage.getItem('LoginUID') || '' - url = appid.replace(/\/webapi(.*)/, '/webapi/dologon/s_visitor_login') - + if (!param.rduri) { param.rduri = window.GLOB.baseurl + 'webapi/dologon/s_visitor_login' } - - param.linkurl = appid.replace(/\/webapi(.*)/, '/index.html') + + if (appid) { + url = appid.replace(/\/webapi(.*)/, '/webapi/dologon/s_visitor_login') + param.linkurl = appid.replace(/\/webapi(.*)/, '/index.html') + } else { + param.linkurl = window.GLOB.linkurl + } } param.LText = md5(window.btoa(_SessionUid + param.timestamp + (param.linkurl || ''))) @@ -254,7 +226,7 @@ return axios({ url: url, method: 'post', - data: param + data: JSON.stringify(param) }) } @@ -293,7 +265,7 @@ return axios({ url, method: 'post', - data: param + data: JSON.stringify(param) }) } @@ -348,27 +320,28 @@ return axios({ url, method: 'post', - data: param + data: JSON.stringify(param) }) } delCacheConfig (type = '') { - let date = moment().subtract(7, 'days').format('YYYY-MM-DD') + let date = moment().subtract(7, 'days').format('YYYY-MM-DD HH:mm:ss') CacheUtils.delIndexDBCacheConfig(date, type) } writeCacheConfig (menuid, data) { if (!menuid) return - let date = moment().format('YYYY-MM-DD') + let date = moment().format('YYYY-MM-DD HH:mm:ss') let _data = data ? JSON.stringify(data) : '' CacheUtils.writeCacheInIndexDB({menuid, CreateDate: date, LongParam: _data}) } - getLCacheConfig (menuid) { + getLCacheConfig (menuid, minutes) { return new Promise((resolve, reject) => { if (window.GLOB.IndexDB) { - CacheUtils.getIndexDBCacheConfig(menuid).then(res => { + let limit = minutes ? moment().subtract(minutes, 'minutes').format('YYYY-MM-DD HH:mm:ss') : '' + CacheUtils.getIndexDBCacheConfig(menuid, limit).then(res => { if (res && res.LongParam) { let _data = JSON.parse(res.LongParam) if (_data.length === 0) { @@ -445,7 +418,7 @@ if (list.length > 0) { let clear = false let _appkey = window.GLOB.appkey.substr(-10) - let reg = new RegExp(_appkey + '$', 'ig') + let reg = new RegExp(_appkey + '$', 'i') list.forEach(mid => { if (reg.test(mid)) { @@ -456,6 +429,7 @@ list = '' } CacheUtils.delIndexDBConfig(list) + this.delCacheConfig('all') } CacheUtils.updateIndexDBversion({version: res.app_version || '1.00', createDate: curTime}) @@ -504,7 +478,7 @@ return axios({ url, method: 'post', - data: param + data: JSON.stringify(param) }) } @@ -528,7 +502,7 @@ return axios({ url: `${url}/${param.func}`, method: 'post', - data: param + data: JSON.stringify(param) }) } @@ -560,7 +534,7 @@ return axios({ url: `${url}${param.func ? '/' + param.func : ''}`, method: 'post', - data: param + data: JSON.stringify(param) }) } @@ -572,7 +546,7 @@ param.lang = param.lang || sessionStorage.getItem('lang') || '' param.SessionUid = localStorage.getItem('SessionUid') || '' 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') { // 缂栬緫鐘舵�侊紝鍗曠偣鐧诲綍鏈嶅姟鍣ㄤ负浜戠 @@ -600,7 +574,7 @@ axios({ url: `${url}${param.func ? '/' + param.func : ''}`, method: 'post', - data: param + data: JSON.stringify(param) }).then(res => { if (res.status && window.GLOB.IndexDB) { let msg = { @@ -626,7 +600,7 @@ axios({ url: `${url}${param.func ? '/' + param.func : ''}`, method: 'post', - data: param + data: JSON.stringify(param) }).then(res => { if (res.status) { window.GLOB.CacheMap.set(key, res) @@ -725,7 +699,7 @@ axios({ url: `${url}${param.func ? '/' + param.func : ''}`, method: 'post', - data: param + data: JSON.stringify(param) }).then(res => { if (res.status) { window.GLOB.CacheMap.set(_param, res) @@ -789,7 +763,7 @@ axios({ url: token.interface, method: 'post', - data: param + data: JSON.stringify(param) }).then(res => { _resolve(res) }) @@ -818,7 +792,7 @@ axios({ url, method: 'post', - data: _param + data: JSON.stringify(_param) }).then(result => { if (result.status) { window.GLOB.OuterToken[token.interface] = { @@ -836,7 +810,7 @@ axios({ url: token.interface, method: 'post', - data: param + data: JSON.stringify(param) }).then(res => { _resolve(res) }) @@ -908,7 +882,7 @@ return axios({ url: `${url}${param.func ? '/' + param.func : ''}`, method: 'post', - data: param + data: JSON.stringify(param) }) } @@ -919,7 +893,7 @@ axios({ url: `${url}${param.func ? '/' + param.func : ''}`, method: 'post', - data: param + data: JSON.stringify(param) }).then(result => { resolve(result) }) @@ -932,7 +906,7 @@ return axios({ url: `${url}${param.func ? '/' + param.func : ''}`, method: 'post', - data: param + data: JSON.stringify(param) }) } } @@ -973,7 +947,7 @@ return axios({ url, method: 'post', - data: param + data: JSON.stringify(param) }) } @@ -984,6 +958,7 @@ return axios({ url: '/webapi/doupload', method: 'post', + headers: { 'Content-Type': 'multipart/form-data' }, data: param }) } @@ -995,6 +970,7 @@ return axios({ url: '/webapi/dopreload', method: 'post', + headers: { 'Content-Type': 'multipart/form-data' }, data: param }) } @@ -1022,6 +998,7 @@ return axios({ url: _url, method: 'post', + headers: { 'Content-Type': 'multipart/form-data' }, data: param }) } @@ -1035,7 +1012,7 @@ return axios({ url: _url, method: 'post', - data: param + data: qs.stringify(param) }) } @@ -1043,7 +1020,7 @@ return axios({ url: 'http://127.0.0.1:888/postek/print', method: 'post', - data: data + data: qs.stringify(data) }) } } -- Gitblit v1.8.0