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 | 311 +++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 237 insertions(+), 74 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index fb91d42..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' }) } @@ -175,12 +197,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 +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 || ''))) @@ -249,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' @@ -287,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' 鏃� @@ -434,7 +456,7 @@ CacheUtils.delIndexDBConfig(list) this.delCacheConfig('all') - if (reHome) { + if (reHome && reload !== 'home_page_id') { MKEmitter.emit('reloadMenuView', 'home_page_id') } } @@ -492,26 +514,26 @@ /** * @description 鑾峰彇鎴栦慨鏀圭郴缁熼厤缃紝澧炲姞appkey */ - getSystemFuncs (time) { - let param = { - func: 's_get_func_base_sso', - update_date: time, - userid: sessionStorage.getItem('UserID') || '', - lang: sessionStorage.getItem('lang') || '', - SessionUid: localStorage.getItem('SessionUid') || '', - LoginUID: sessionStorage.getItem('LoginUID') || '', - appkey: window.GLOB.appkey - } + // getSystemFuncs (time) { + // let param = { + // func: 's_get_func_base_sso', + // update_date: time, + // userid: sessionStorage.getItem('UserID') || '', + // lang: sessionStorage.getItem('lang') || '', + // SessionUid: localStorage.getItem('SessionUid') || '', + // LoginUID: sessionStorage.getItem('LoginUID') || '', + // appkey: window.GLOB.appkey + // } - let url = window.GLOB.mainSystemApi || '/webapi/dostars' - param = this.encryptParam(param) + // let url = window.GLOB.mainSystemApi || '/webapi/dostars' + // param = this.encryptParam(param) - return axios({ - url: `${url}/${param.func}`, - method: 'post', - data: JSON.stringify(param) - }) - } + // return axios({ + // url: `${url}/${param.func}`, + // method: 'post', + // data: JSON.stringify(param) + // }) + // } /** * @description 鑾峰彇鎴栦慨鏀圭郴缁熼厤缃紝澧炲姞appkey @@ -670,6 +692,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 +1023,70 @@ } }) }) + } 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') { + let isBtn = url.indexOf('s_TableData_InUpDe') > -1 + res.message = window.GLOB.dict['permission_deny'] || `鏃犲綋鍓�${isBtn ? '鎸夐挳' : '鑿滃崟'}鐨勮闂潈闄愶紝璇疯仈绯荤鐞嗗憳锛乣 + res.ErrMesg = res.message + } + } + 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 +1103,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 +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 @@ -1095,7 +1256,7 @@ /** * @description sql妫�楠� */ - sDebug (sql) { + sDebug (sql, skip = false) { let param = { func: 's_debug_sql', exec_type: window.GLOB.execType || 'y', @@ -1123,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