From a5f099ba0850a2e0c0fac40ccfaa1b46eb481ab0 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 15 五月 2025 10:52:05 +0800 Subject: [PATCH] 2025-05-15 --- src/api/index.js | 135 ++++++++++++++++++++++++++++----------------- 1 files changed, 84 insertions(+), 51 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index 93d56cf..5e61e12 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,15 @@ return Promise.reject(response.data) } else { + if (response.data.ErrCode === 'E') { + if (/姝婚攣|灏氭湭浠庢睜涓幏鍙栬繛鎺�/.test(response.data.message)) { + response.data.message = (window.GLOB.dict['server_busy'] || '鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇曪紒') + (/姝婚攣/.test(response.data.message) ? '01' : '02') + response.data.ErrMesg = response.data.message + } else if (/鏃犳硶鎵撳紑鐧诲綍鎵�璇锋眰鐨勬暟鎹簱|鍦ㄤ笌\s*SQL\s+Server\s*寤虹珛杩炴帴鏃跺嚭鐜�/.test(response.data.message)) { + response.data.message = '鏈嶅姟鍣ㄩ摼鎺ヤ笉鍙敤锛岃鍏抽棴娴忚鍣ㄩ噸鏂版墦寮�锛�' + response.data.ErrMesg = response.data.message + } + } if (response.config.requestId) { response.data.$requestId = response.config.requestId } @@ -66,7 +78,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 +94,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 +157,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' }) } @@ -211,6 +233,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 || ''))) @@ -244,7 +269,8 @@ login_id_address: sessionStorage.getItem('ipAddress') || '', kei_id: window.btoa(window.encodeURIComponent(window.GLOB.host)), device_id: localStorage.getItem('SessionUid'), - appkey: window.GLOB.appkey || '' + appkey: window.GLOB.appkey || '', + lang: sessionStorage.getItem('lang') || '' } let url = '/webapi/dologon' @@ -282,7 +308,8 @@ kei_id: window.btoa(window.encodeURIComponent(window.GLOB.host)), device_id: localStorage.getItem('SessionUid'), timestamp: moment().add(shim, 'seconds').format('YYYY-MM-DD HH:mm:ss'), - appkey: window.GLOB.appkey || '' + appkey: window.GLOB.appkey || '', + lang: sessionStorage.getItem('lang') || '' } // Type: 'S' 鏃� @@ -710,6 +737,9 @@ 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) }) } @@ -1017,6 +1047,14 @@ 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) => { @@ -1029,6 +1067,9 @@ 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) }) } @@ -1038,8 +1079,9 @@ 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'] || '鏃犲綋鍓嶈彍鍗曟垨鎸夐挳鐨勮闂潈闄愶紝璇疯仈绯荤鐞嗗憳锛�' + let isBtn = url.indexOf('s_TableData_InUpDe') > -1 + res.message = window.GLOB.dict['permission_deny'] || `鏃犲綋鍓�${isBtn ? '鎸夐挳' : '鑿滃崟'}鐨勮闂潈闄愶紝璇疯仈绯荤鐞嗗憳锛乣 + res.ErrMesg = res.message } } resolve(res) @@ -1173,19 +1215,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 @@ -1225,7 +1256,7 @@ /** * @description sql妫�楠� */ - sDebug (sql) { + sDebug (sql, skip = false) { let param = { func: 's_debug_sql', exec_type: window.GLOB.execType || 'y', @@ -1253,6 +1284,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