From b8eb5445560fda74a7cf15face387ee54cc830b4 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期日, 13 四月 2025 19:01:41 +0800 Subject: [PATCH] 2025-04-13 --- src/api/index.js | 263 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 209 insertions(+), 54 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index b24fd12..853e193 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -15,7 +15,8 @@ window.GLOB.$error = false let service = window.GLOB.service ? '-' + window.GLOB.service.replace('/', '') : '' -let lang = sessionStorage.getItem('lang') !== 'zh-CN' ? sessionStorage.getItem('lang') : '' +let lang = sessionStorage.getItem('lang') || 'zh-CN' +lang = lang !== 'zh-CN' ? lang : '' let db = `mkdb${service + lang}` if (window.indexedDB) { @@ -47,10 +48,12 @@ 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() + if (!/#\/login/.test(window.location.href)) { + sessionStorage.clear() + if (!!(window.history && window.history.pushState)) { + window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login') + window.location.reload() + } } } }) @@ -58,6 +61,10 @@ return Promise.reject(response.data) } else { + if (response.data.ErrCode === 'E' && /姝婚攣/.test(response.data.message)) { + response.data.message = window.GLOB.dict['server_busy'] || '鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇曪紒' + response.data.ErrMesg = response.data.message + } if (response.config.requestId) { response.data.$requestId = response.config.requestId } @@ -66,7 +73,15 @@ }, (error) => { let response = error.response || '' - if (response && response.status) { + if (!response) { + notification.error({ + className: 'notification-custom-error', + bottom: 0, + message: error.message.includes('Network Error') && sessionStorage.getItem('lang') === 'zh-CN' ? '缃戠粶杩炴帴澶辫触锛�' : error.message, + placement: 'bottomRight', + duration: 15 + }) + } else if (response && response.status) { notification.error({ className: 'notification-custom-error', bottom: 0, @@ -74,6 +89,32 @@ placement: 'bottomRight', duration: 15 }) + if ([500, 504].includes(response.status) && error.config && error.config.url && error.config.data) { + window.mkInfo(error.config.url) + window.mkInfo(error.config.data) + if (window.GLOB.errorLog && !sessionStorage.getItem('local_error')) { + let urlReg = new RegExp('^(' + window.GLOB.baseurl + '|/)webapi/(exstars|dostars)', 'ig') + if (urlReg.test(error.config.url) && !/s_special_error_note_log/.test(error.config.url)) { + let res = null + try { + let data = JSON.parse(error.config.data) + if (!data.rduri) { + res = { + api_url: error.config.url, + error_code: response.status, + error_time: moment().format('YYYY-MM-DD HH:mm:ss'), + api_param: error.config.data + } + } + } catch (e) { + res = null + } + if (res) { + sessionStorage.setItem('local_error', JSON.stringify(res)) + } + } + } + } } return Promise.reject(response) @@ -111,36 +152,12 @@ // } /** - * @description 寰俊涓氬姟璇锋眰 - * 39涓� qingqiumarket.cn|cloud.mk9h.cn|sso.mk9h.cn + * @description 蹇�掓煡璇� */ - wxNginxRequest (url, method, param) { - let _url = url - - if (!/^http/.test(url)) { - _url = window.GLOB.location + '/' + url - if (process.env.NODE_ENV === 'production') { - _url = document.location.origin + '/' + url - } - } - if (/qingqiumarket.cn|cloud.mk9h.cn/.test(_url)) { - _url = _url.replace('http://qingqiumarket.cn/', 'http://qingqiumarket.cn:8080/') - _url = _url.replace('http://cloud.mk9h.cn/', 'http://cloud.mk9h.cn:8080/') - _url = _url.replace('https://qingqiumarket.cn/', 'https://qingqiumarket.cn:8443/') - _url = _url.replace('https://cloud.mk9h.cn/', 'https://cloud.mk9h.cn:8443/') - } - - if (param) { - return axios({ - url: _url, - method, - data: param - }) - } - + expressRequest (url) { return axios({ - url: _url, - method + url: window.GLOB.location + '/' + url, + method: 'get' }) } @@ -175,12 +192,7 @@ * @description 娓稿鐧诲綍 */ getTouristMsg (binding_type, appid, openid, memberid, scanId) { - let _SessionUid = localStorage.getItem('SessionUid') - - if (!_SessionUid) { // 鎵嬪姩娓呴櫎SessionUid鏃讹紝瀹炴椂鐢熸垚 - _SessionUid = Utils.getuuid() - localStorage.setItem('SessionUid', _SessionUid) - } + let _SessionUid = localStorage.getItem('SessionUid') || '' let param = { func: 's_visitor_login', @@ -216,6 +228,9 @@ } else { param.linkurl = window.GLOB.linkurl } + } else if (binding_type === 'cloud') { // 鐧诲綍浜戠 + delete param.rduri + url = window.atob('aHR0cHM6Ly9jbG91$mkZC5tazloLmNu'.replace('$mk', '')) + '/webapi/dologon/s_visitor_login' } param.LText = md5(window.btoa(_SessionUid + param.timestamp + (param.linkurl || ''))) @@ -434,7 +449,7 @@ CacheUtils.delIndexDBConfig(list) this.delCacheConfig('all') - if (reHome) { + if (reHome && reload !== 'home_page_id') { MKEmitter.emit('reloadMenuView', 'home_page_id') } } @@ -670,6 +685,69 @@ param.SessionUid = localStorage.getItem('SessionUid') || '' param.LoginUID = param.LoginUID || sessionStorage.getItem('LoginUID') || '' param.appkey = window.GLOB.appkey || '' + + if (param.$backend) { + delete param.$backend + + let id = '' + if (cache) { + id = param.data[0].id + + if (window.GLOB.CacheMap.has(id)) { + return Promise.resolve(window.GLOB.CacheMap.get(id)) + } + } + + param.username = sessionStorage.getItem('User_Name') || '' + param.fullname = sessionStorage.getItem('Full_Name') || '' + param.s_debug = window.GLOB.debugger ? 'Y' : '' + param.data_md5 = param.data_md5 || '' + param.time_limit = param.time_limit || 0 + + let url = '/webapi/exstars' + if (param.rduri) { + param.rduri = param.rduri.replace(/dostars/ig, 'exstars') + if (!window.GLOB.transfer) { + url = param.rduri + delete param.rduri + } + } + + if (param.$type) { + url += '/' + param.$type + } + + delete param.$type + + param = this.encryptParam(param) + + return new Promise((resolve) => { + axios({ + url: url, + method: 'post', + data: JSON.stringify(param) + }).then(res => { + if (res.mksqls) { + res.mksqls.forEach(n => { + n = n.replace(/(UNION ALL\s+)?SELECT obj_name='[\S\s]+sub_field=''\s+/ig, '') + if (!res.status && param.data[0] && param.data[0].menuname) { + window.mkInfo('%c' + param.data[0].menuname, 'color: #f5222d') + } + window.mkInfo(n) + }) + } + delete res.mksqls + if (res.ErrCode === 'version_error') { + res.ErrCode = '-2' + MKEmitter.emit('reloadTabs') + } + if (res.status && id) { + window.GLOB.CacheMap.set(id, res) + } + resolve(res) + }) + }) + } let url = '/webapi/dostars' if (param.rduri && !window.GLOB.transfer) { @@ -938,6 +1016,69 @@ } }) }) + } else if (param.$backend) { + delete param.$backend + + let url = '/webapi/exstars' + if (param.rduri) { + param.rduri = param.rduri.replace(/dostars/ig, 'exstars') + if (!window.GLOB.transfer) { + url = param.rduri + delete param.rduri + } + } + + if (param.$type) { + url += '/' + param.$type + } + + delete param.$type + + param.username = sessionStorage.getItem('User_Name') || '' + param.fullname = sessionStorage.getItem('Full_Name') || '' + param.s_debug = window.GLOB.debugger ? 'Y' : '' + param.data_md5 = param.data_md5 || '' + param.time_limit = param.time_limit || 0 + + param.data.forEach(item => { + item.exps.forEach(cell => { + if (typeof(cell.value) === 'number') { + cell.value = cell.value + '' + } + }) + }) + + param = this.encryptParam(param) + + return new Promise((resolve) => { + axios({ + url: url, + method: 'post', + data: JSON.stringify(param), + requestId + }).then(res => { + if (res.mksqls) { + res.mksqls.forEach(n => { + n = n.replace(/(UNION ALL\s+)?SELECT obj_name='[\S\s]+sub_field=''\s+/ig, '') + if (!res.status && param.data[0] && param.data[0].menuname) { + window.mkInfo('%c' + param.data[0].menuname, 'color: #f5222d') + } + window.mkInfo(n) + }) + } + delete res.mksqls + if (!res.status) { + if (res.ErrCode === 'version_error') { + res.ErrCode = '-2' + MKEmitter.emit('reloadTabs') + } else if (res.message === 'permission deny') { + res.message = window.GLOB.dict['permission_deny'] || '鏃犲綋鍓嶈彍鍗曟垨鎸夐挳鐨勮闂潈闄愶紝璇疯仈绯荤鐞嗗憳锛�' + res.ErrMesg = window.GLOB.dict['permission_deny'] || '鏃犲綋鍓嶈彍鍗曟垨鎸夐挳鐨勮闂潈闄愶紝璇疯仈绯荤鐞嗗憳锛�' + } + } + resolve(res) + }) + }) } else { let url = '/webapi/dostars' if (param.rduri && (!window.GLOB.transfer || /https:\/\/sso.mk9h.cn/.test(param.rduri)) && /\/dostars/.test(param.rduri) && param.func !== 'webapi_ChangeUser') { @@ -954,6 +1095,29 @@ requestId }) } + } + + /** + * @description 娓呯┖鍚庣缂撳瓨 + */ + cacheInterface (param) { + param.appkey = window.GLOB.appkey || '' + param.userid = param.userid || sessionStorage.getItem('UserID') || '' + param.LoginUID = param.LoginUID || sessionStorage.getItem('LoginUID') || '' + + let url = '/webapi/excache' + if (param.rduri && !window.GLOB.transfer) { + url = param.rduri + delete param.rduri + } + + param = this.encryptParam(param) + + return axios({ + url: url, + method: 'post', + data: JSON.stringify(param), + }) } /** @@ -1043,19 +1207,8 @@ * @description oss鏂囦欢涓婁紶 */ fileOssUpload (param) { - let _url = window.GLOB.location + '/file/oss/upload' - if (process.env.NODE_ENV === 'production') { - _url = document.location.origin + '/file/oss/upload' - } - if (/qingqiumarket.cn|cloud.mk9h.cn/.test(_url)) { - _url = _url.replace('http://qingqiumarket.cn/', 'http://qingqiumarket.cn:8080/') - _url = _url.replace('http://cloud.mk9h.cn/', 'http://cloud.mk9h.cn:8080/') - _url = _url.replace('https://qingqiumarket.cn/', 'https://qingqiumarket.cn:8443/') - _url = _url.replace('https://cloud.mk9h.cn/', 'https://cloud.mk9h.cn:8443/') - } - return axios({ - url: _url, + url: window.GLOB.location + '/file/oss/upload', method: 'post', headers: { 'Content-Type': 'multipart/form-data' }, data: param @@ -1095,7 +1248,7 @@ /** * @description sql妫�楠� */ - sDebug (sql) { + sDebug (sql, skip = false) { let param = { func: 's_debug_sql', exec_type: window.GLOB.execType || 'y', @@ -1123,6 +1276,8 @@ window.mkInfo(`/* sql 楠岃瘉 */\n${sql.replace(/\n\s{6,20}/ig, '\n')}`) + if (skip) return + sql = sql.replace(/\n/ig, ' ') param.LText = Utils.formatOptions(sql, param.exec_type) -- Gitblit v1.8.0