From d26ecdf69db28f9e3ac71834658e0fade6fcf5ca Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 27 十月 2023 09:50:58 +0800 Subject: [PATCH] Merge branch 'positec' into dms --- src/api/index.js | 316 +++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 234 insertions(+), 82 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index 607c1ae..291e306 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -5,9 +5,10 @@ import CryptoJS from 'crypto-js' import jsSHA from 'jssha' import moment from 'moment' + import Utils from '@/utils/utils.js' +import MKEmitter from '@/utils/events.js' import CacheUtils from './cacheutils' -import options from '@/store/options.js' window.GLOB.IndexDB = null window.GLOB.OuterToken = {} @@ -45,6 +46,18 @@ okText: '鐭ラ亾浜�', onOk: () => { window.GLOB.$error = false + + localStorage.removeItem('UserID') + localStorage.removeItem('LoginUID') + localStorage.removeItem('User_Name') + localStorage.removeItem('Full_Name') + localStorage.removeItem('avatar') + localStorage.removeItem('dataM') + localStorage.removeItem('localDataM') + localStorage.removeItem('debug') + localStorage.removeItem('role_id') + localStorage.removeItem('mk_user_type') + sessionStorage.clear() if (!!(window.history && window.history.pushState)) { window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login') @@ -61,7 +74,7 @@ }, (error) => { let response = error.response || '' - if (response && (!response.data || !response.data.errors)) { // 杩囨护鏃疯鎶ラ敊淇℃伅 + if (response && response.status) { notification.error({ className: 'notification-custom-error', bottom: 0, @@ -81,7 +94,6 @@ /** * @description 浣跨敤dostar鎺ュ彛锛岃烦杩囬獙璇� - * @param {Object} param 鏌ヨ鍙婃彁浜ゅ弬鏁� */ dostarInterface (param) { param.userid = param.userid || '' @@ -94,6 +106,25 @@ } /** + * @description 浣跨敤dostar鎺ュ彛锛岃烦杩囬獙璇� + * @param {Object} param 鏌ヨ鍙婃彁浜ゅ弬鏁� + */ + loginAndRedirect (param) { + let url = '' + if (process.env.NODE_ENV === 'production') { + url = document.location.origin + '/zh-CN/Home/LoginAndRedirect' + } else { + url = window.GLOB.location + '/zh-CN/Home/LoginAndRedirect' + } + + return axios({ + url: url, + method: 'post', + data: qs.stringify(param) + }) + } + + /* @description 鐩存帴璇锋眰 * @description 寰俊涓氬姟璇锋眰 */ wxAccessToken (domain = '') { @@ -241,7 +272,7 @@ Password: '', check_code: checkcode, way_no: 'sms_vcode', - systemType: options.sysType, + systemType: window.GLOB.sysType, login_city: sessionStorage.getItem('city') || '', login_id_address: sessionStorage.getItem('ipAddress') || '', kei_id: window.btoa(window.encodeURIComponent(window.GLOB.host)), @@ -252,11 +283,11 @@ let url = '/webapi/dologon' if (isCloud) { param.debug = 'Y' - if (options.cloudServiceApi) { - param.rduri = options.cloudServiceApi.replace(/\/webapi(.*)/, '/webapi/dologon') + if (window.GLOB.cloudServiceApi) { + param.rduri = window.GLOB.cloudServiceApi.replace(/\/webapi(.*)/, '/webapi/dologon') } } else if (window.GLOB.mainSystemApi) { - if (options.sysType !== 'cloud' && window.GLOB.systemType !== 'production') { + if (window.GLOB.sysType !== 'cloud' && window.GLOB.systemType !== 'production') { param.linkurl = window.GLOB.linkurl } param.rduri = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon') @@ -277,7 +308,7 @@ let param = { // func: 'webapi_login', UserName: username, - systemType: options.sysType, + systemType: window.GLOB.sysType, Type: 'S', login_city: sessionStorage.getItem('city') || '', login_id_address: sessionStorage.getItem('ipAddress') || '', @@ -303,15 +334,20 @@ // Type: 'X' 鏃� // param.Password = Utils.formatOptions(password) + // positecgroup + if (window.GLOB.appkey === '202011021844144334E823A3011414082AD77') { + param.svccode = 'oms' + } + let url = '/webapi/dologon' if (isCloud) { param.debug = 'Y' - if (options.cloudServiceApi) { - param.rduri = options.cloudServiceApi.replace(/\/webapi(.*)/, '/webapi/dologon') + if (window.GLOB.cloudServiceApi) { + param.rduri = window.GLOB.cloudServiceApi.replace(/\/webapi(.*)/, '/webapi/dologon') } } else if (window.GLOB.mainSystemApi) { - if (options.sysType !== 'cloud' && window.GLOB.systemType !== 'production') { + if (window.GLOB.sysType !== 'cloud' && window.GLOB.systemType !== 'production') { param.linkurl = window.GLOB.linkurl } param.rduri = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon') @@ -329,38 +365,62 @@ CacheUtils.delIndexDBCacheConfig(date, type) } - writeCacheConfig (menuid, data) { + writeCacheConfig (menuid, data, BID = '', id = '') { if (!menuid) return let date = moment().format('YYYY-MM-DD HH:mm:ss') let _data = data ? JSON.stringify(data) : '' + let userid = sessionStorage.getItem('UserID') || '' - CacheUtils.writeCacheInIndexDB({menuid, CreateDate: date, LongParam: _data}) + CacheUtils.writeCacheInIndexDB({menuid: md5(menuid + userid + BID + id), BID: BID, id: id, CreateDate: date, LongParam: _data}) } - getLCacheConfig (menuid, minutes) { + getLCacheConfig (menuid, minutes, BID = '', id = '') { return new Promise((resolve, reject) => { - if (window.GLOB.IndexDB) { - 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) { - resolve() - } else { - resolve(_data) - } - } else { - resolve() - } - }) - } else { - resolve() - } + let limit = minutes ? moment().subtract(minutes, 'minutes').format('YYYY-MM-DD HH:mm:ss') : '' + let userid = sessionStorage.getItem('UserID') || '' + + CacheUtils.getIndexDBCacheConfig(md5(menuid + userid + BID + id)).then(res => { + if (res && res.LongParam) { + resolve({data: JSON.parse(res.LongParam), valid: !limit || res.CreateDate > limit}) + } else { + resolve({data: null, valid: false}) + } + }) }) } /** - * @description 鑾峰彇绯荤粺鐗堟湰淇℃伅 + * @description 鐧诲綍浜屾楠岃瘉 // positecgroup + */ + verifycode (verify) { + let param = { + certificate: 'certificate', + captcha: verify.code, + token: verify.token, + ati: verify.ati, + vid: verify.vid, + uid: verify.uid, + shopId: verify.shopId, + loginId: verify.loginId, + phone: verify.phone, + sellerNick: verify.sellerNick, + isRisk: verify.isRisk, + requestId: verify.requestId, + riskNum: verify.riskNum, + username: verify.username + } + + let url = '/webapi/dologon' + + return axios({ + url, + method: 'post', + data: param + }) + } + + /** + * @description 鑾峰彇绯荤粺鐗堟湰淇℃伅锛屽惎鐢ㄦ垨鏇存柊websql */ getAppVersion (reload) { if (!window.GLOB.IndexDB) { @@ -375,6 +435,11 @@ let param = { func: 's_get_app_version', modifydate: msg.createDate + } + + if (window.GLOB.initVersion && sessionStorage.getItem('visitorUserID')) { + param.userid = sessionStorage.getItem('visitorUserID') + param.LoginUID = sessionStorage.getItem('visitorLoginUID') } param.TypeCharOne = '' @@ -419,6 +484,7 @@ let clear = false let _appkey = window.GLOB.appkey.substr(-10) let reg = new RegExp(_appkey + '$', 'i') + let reHome = list.includes('home_page_id') list.forEach(mid => { if (reg.test(mid)) { @@ -430,6 +496,10 @@ } CacheUtils.delIndexDBConfig(list) this.delCacheConfig('all') + + if (reHome) { + MKEmitter.emit('reloadMenuView', 'home_page_id') + } } CacheUtils.updateIndexDBversion({version: res.app_version || '1.00', createDate: curTime}) @@ -463,14 +533,14 @@ */ getCloudConfig (param) { param.lang = param.lang || sessionStorage.getItem('lang') || '' - param.appkey = window.GLOB.appkey || '' + param.appkey = param.appkey || window.GLOB.appkey || '' param.SessionUid = localStorage.getItem('SessionUid') || '' - param.userid = sessionStorage.getItem('CloudUserID') || '' - param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' + param.userid = param.userid || sessionStorage.getItem('CloudUserID') || '' + param.LoginUID = param.LoginUID || sessionStorage.getItem('CloudLoginUID') || '' param = this.encryptParam(param) - let url = options.cloudServiceApi ? options.cloudServiceApi : '/webapi/dostars' + let url = window.GLOB.cloudServiceApi ? window.GLOB.cloudServiceApi : '/webapi/dostars' if (param.func) { url = url + '/' + param.func } @@ -485,26 +555,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 @@ -517,11 +587,7 @@ param.appkey = param.appkey || window.GLOB.appkey let url = '/webapi/dostars' - if (sessionStorage.getItem('isEditState') === 'true' && options.cloudServiceApi) { // 缂栬緫鐘舵�侊紝涓斿瓨鍦ㄤ簯绔湴鍧� - url = options.cloudServiceApi - param.userid = sessionStorage.getItem('CloudUserID') || '' - param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' - } else if (window.GLOB.mainSystemApi) { + if (window.GLOB.mainSystemApi) { if (!window.GLOB.transfer) { url = window.GLOB.mainSystemApi } else { @@ -549,13 +615,7 @@ param.appkey = param.appkey || window.GLOB.appkey || '' let url = '/webapi/dostars' - if (sessionStorage.getItem('isEditState') === 'true') { // 缂栬緫鐘舵�侊紝鍗曠偣鐧诲綍鏈嶅姟鍣ㄤ负浜戠 - if (options.cloudServiceApi) { // 瀛樺湪浜戠鍦板潃鏃讹紝浣跨敤浜戠绯荤粺鍙傛暟 - url = options.cloudServiceApi - param.userid = sessionStorage.getItem('CloudUserID') || '' - param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' - } - } else if (window.GLOB.mainSystemApi) { + if (window.GLOB.mainSystemApi) { if (!window.GLOB.transfer) { url = window.GLOB.mainSystemApi } else { @@ -626,7 +686,7 @@ 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}) + return Promise.resolve({ErrCode: 'S', LongParam: '', message: '', status: false}) } } @@ -675,7 +735,7 @@ param.appkey = window.GLOB.appkey || '' let url = '/webapi/dostars' - if (param.rduri && !window.GLOB.transfer) { + if (param.rduri && !window.GLOB.transfer) { // positecgroup url = param.rduri delete param.rduri } @@ -710,7 +770,7 @@ } } - visitOuterSystem (param, _resolve) { + visitOuterSystem (param, _resolve, _reject) { let token = param.$token delete param.$token @@ -730,7 +790,7 @@ token = JSON.parse(window.decodeURIComponent(window.atob(token))) } catch (e) { token = null - _resolve({status: false, ErrCode: 'E', message: '鎺ュ彛淇℃伅瑙f瀽澶辫触锛�', ErrMesg: 'token_error'}) + _resolve({status: false, ErrCode: 'token_error', message: '鎺ュ彛淇℃伅瑙f瀽澶辫触锛�'}) } if (!token) return @@ -766,11 +826,13 @@ data: JSON.stringify(param) }).then(res => { _resolve(res) + }, () => { + _reject() }) } else { let _param = { UserName: token.username, - systemType: options.sysType, + systemType: window.GLOB.sysType, login_city: sessionStorage.getItem('city') || '', device_id: token.appkey || '', timestamp: moment().format('YYYY-MM-DD HH:mm:ss'), @@ -813,9 +875,22 @@ data: JSON.stringify(param) }).then(res => { _resolve(res) + }, () => { + _reject() }) } else { _resolve(result) + } + }, (e) => { + if (!e || !e.status) { + let msg = '缃戠粶杩炴帴涓嶆甯搞��' + + if (/^http:/.test(token.interface) && /https:/.test(window.location.protocol)) { + msg = '缃戠粶杩炴帴涓嶆甯革紝鎺ュ彛鍦板潃鍙兘涓嶆敮鎸乭ttps銆�' + } + _resolve({status: false, ErrCode: 'E', message: msg}) + } else { + _reject() } }) } @@ -833,19 +908,14 @@ param.appkey = window.GLOB.appkey || '' if (param.$token === '') { - return Promise.resolve({status: false, ErrCode: 'E', message: '鎺ュ彛鍦板潃灏氭湭璁剧疆锛�', ErrMesg: 'token_error'}) + return Promise.resolve({status: false, ErrCode: 'token_error', message: '鎺ュ彛鍦板潃灏氭湭璁剧疆锛�'}) } else if (param.$token) { - return new Promise(resolve => this.visitOuterSystem(param, resolve)) + return new Promise((resolve, reject) => this.visitOuterSystem(param, resolve, reject)) } - if (['sPC_Get_TableData', 'sPC_Get_TableData_debug', 'sPC_TableData_InUpDe', 'sPC_TableData_InUpDe_debug', 'sPC_Get_structured_data'].includes(param.func)) { - if (sessionStorage.getItem('isEditState') === 'true') { - param.username = sessionStorage.getItem('CloudUserName') || '' - param.fullname = sessionStorage.getItem('CloudFullName') || '' - } else { - param.username = sessionStorage.getItem('User_Name') || '' - param.fullname = sessionStorage.getItem('Full_Name') || '' - } + if (['sPC_TableData_InUpDe', 'sPC_TableData_InUpDe_debug'].includes(param.func)) { + param.username = sessionStorage.getItem('User_Name') || '' + param.fullname = sessionStorage.getItem('Full_Name') || '' } let login = false @@ -877,7 +947,7 @@ let time = +sessionStorage.getItem(rduri) let c_time = Math.round(new Date().getTime() / 1000) - if (time && c_time - time <= 60) { + if (time && c_time - time <= 1800) { sessionStorage.setItem(rduri, c_time) return axios({ url: `${url}${param.func ? '/' + param.func : ''}`, @@ -899,6 +969,17 @@ }) } else { resolve(res) + } + }, (e) => { + if (!e || !e.status) { + let msg = '缃戠粶杩炴帴涓嶆甯搞��' + + if (/^http:/.test(rduri) && /https:/.test(window.location.protocol)) { + msg = '缃戠粶杩炴帴涓嶆甯革紝鎺ュ彛鍦板潃鍙兘涓嶆敮鎸乭ttps銆�' + } + resolve({status: false, ErrCode: 'E', message: msg}) + } else { + reject() } }) }) @@ -1023,6 +1104,77 @@ data: qs.stringify(data) }) } + + /** + * @description sql妫�楠� + */ + sDebug (sql, rduri = null) { + let param = { + func: 's_debug_sql', + exec_type: 'y', + timestamp: moment().format('YYYY-MM-DD HH:mm:ss'), + userid: sessionStorage.getItem('UserID') || '', + lang: sessionStorage.getItem('lang') || '', + SessionUid: localStorage.getItem('SessionUid') || '', + LoginUID: sessionStorage.getItem('LoginUID') || '', + appkey: window.GLOB.appkey || '' + } + + if (window.GLOB.externalDatabase !== null) { + sql = sql.replace(/@db@/ig, window.GLOB.externalDatabase) + } + + console.info(`/* sql 楠岃瘉 */\n${sql.replace(/\n\s{6,20}/ig, '\n')}`) + + sql = sql.replace(/\n/ig, ' ') + + param.LText = Utils.formatOptions(sql) + param.secretkey = Utils.encrypt('', param.timestamp) + + param = this.encryptParam(param) + + let url = '/webapi/dostars' + + if (rduri) { + url = rduri + } + + let timer = setTimeout(() => { + let _param = { + func: 's_debug_sql_cancel', + userid: sessionStorage.getItem('UserID') || '', + lang: sessionStorage.getItem('lang') || '', + SessionUid: localStorage.getItem('SessionUid') || '', + LoginUID: sessionStorage.getItem('LoginUID') || '', + appkey: window.GLOB.appkey || '' + } + _param = this.encryptParam(_param) + axios({ + url: `${url}/s_debug_sql_cancel`, + method: 'post', + data: JSON.stringify(_param) + }) + }, 20000) + + return new Promise(resolve => { + axios({ + url: `${url}/s_debug_sql`, + method: 'post', + data: JSON.stringify(param) + }).then(res => { + clearTimeout(timer) + if (/Shared Memory Provider|浼氳瘽澶勪簬缁堟鐘舵�亅褰撳墠鍛戒护鍙戠敓浜嗕弗閲嶉敊璇�/.test(res.message)) { + res.message = '楠岃瘉澶辫触锛岃妫�鏌QL涓槸鍚﹀瓨鍦ㄦ寰幆銆�' + } else if (res.message.indexOf('EXECUTE 鍚庣殑浜嬪姟璁℃暟鎸囩ず BEGIN 鍜� COMMIT 璇彞鐨勬暟鐩笉鍖归厤銆備笂涓�璁℃暟 = 1锛屽綋鍓嶈鏁� = 0') > -1) { + res.ErrCode = '-2' + } + resolve(res) + }, () => { + clearTimeout(timer) + resolve({status: false, ErrCode: 'E', message: '楠岃瘉澶辫触锛�1璇锋鏌QL涓槸鍚﹀瓨鍦ㄦ寰幆锛�2璇锋鏌ョ綉缁滆繛鎺ユ槸鍚︽甯搞��'}) + }) + }) + } } export default new Api() \ No newline at end of file -- Gitblit v1.8.0