From cbeffcc0902631909c0373f274752a97ddaf2d4e Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期六, 06 八月 2022 01:41:54 +0800 Subject: [PATCH] 2022-08-06 --- src/api/index.js | 993 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 819 insertions(+), 174 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index 026eddc..1487f05 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,19 +1,37 @@ import axios from 'axios' import qs from 'qs' -import {notification } from 'antd' +import { notification } from 'antd' +import md5 from 'md5' +import jsSHA from 'jssha' +import moment from 'moment' +import Utils from '@/utils/utils.js' +import CacheUtils from './cacheutils' +import options from '@/store/options.js' -// axios.defaults.baseURL = 'http://qingqiumarket.cn' +window.GLOB.WebSql = null +window.GLOB.IndexDB = null +const systemMenuKeys = `1581067625930haged11ieaivpavv77k,1581734956310scks442ul2d955g9tu5,1583991994144ndddg0bhh0is6shi0v1,1583979633842550imkchl4qt4qppsiv,1578900109100np8aqd0a77q3na46oas,16044812935562g807p3p12huk8kokmb, + 1585192949946f3et2ts8tn82krmumdf,15855615451212m12ip23vpcm79kloro,1587005717541lov40vg61q7l1rbveon,1590458676585agbbr63t6ihighg2i1g,1602315375262ikd33ii0nii34pt861o,1582771068837vsv54a089lgp45migbg, + 1582777675954ifu05upurs465omoth7,158294809668898cklbv6c5bou8e1fpu,1584676379094iktph45fb8imhg96bql,1584695125339vo5g7iqgfn01qmrd6s2,1584699661372vhmpp9dn9foo0eob722,15848421131551gg04ie8sitsd3f7467, + 1589782279158ngr675kk3oksin35sul,1589788042787ffdt9hle4s45k9r1nvs,15900310928174dro07ihfckghpb5h13,1594095599055qicg2eb642v5qglhnuo,1599613340050c8nu6rbst9d4emnnbsq,1577972969199lei1g0qkvlh4tkc908m, + 1578479100252lfbp29v1kafk4s4q4ig,1577971621421tg4v0i1ur8873k7e0ob,1577929944419lgc5h3hepum765e2k7u,1588493493409k9guqp067d31lu7blsv,15827879285193g85m3i2uprektpgmpf` + +if (window.openDatabase) { + CacheUtils.openWebSql(options.sysType) +} else if (window.indexedDB) { + CacheUtils.openIndexDB(options.sysType) +} + axios.defaults.crossDomain = true -// axios.defaults.headers.common['token'] = 'token' axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' -axios.defaults.withCredentials = true +axios.defaults.withCredentials = false axios.interceptors.request.use((config) => { - config.method = 'post' - if (config.url.includes('LoginAndRedirect') || config.url.includes('getjsonresult')) { + if (config.url.includes('LoginAndRedirect') || config.url.includes('getjsonresult') || config.url.includes('wxNativePay')) { config.data = qs.stringify(config.data) - } else { - config.headers.token = sessionStorage.getItem('TOKEN') || '' + } else if (config.url.includes('doupload') || config.url.includes('dopreload')) { + config.headers = { 'Content-Type': 'multipart/form-data' } + } else if (config.method === 'post' && config.data) { config.data = JSON.stringify(config.data) } @@ -22,98 +40,505 @@ return Promise.reject(error) }) -const setCurrentUrl = () => { +const setCurrentUrl = (res) => { if (!!(window.history && window.history.pushState)) { + if (window.location.href.indexOf('paramsmain') > -1) { + let _href = window.location.href.split('#') + localStorage.setItem(_href[0] + 'paramsmain', _href[1]) + } + + 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() } } -let GlobMap = new Map() - axios.interceptors.response.use((response) => { if (response.data.ErrCode === 'LoginError') { - setCurrentUrl() - // return Promise.resolve(response.data) + if (window.debugger === true) { + response.data.ErrCode = 'E' + return Promise.resolve(response.data) + } else if (!sessionStorage.getItem('loginError')) { + setCurrentUrl(response) + } } else { return Promise.resolve(response.data) } }, (error) => { - notification.error({ - className: 'notification-custom-error', - bottom: 0, - message: '鐘舵�佺爜-' + error.response.status + '锛岃鑱旂郴绠$悊鍛�', - placement: 'bottomRight', - duration: 15 - }) - return Promise.reject(error) + 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() + } }) class Api { constructor() { - let service = window.GLOB.service ? (/\/$/.test(window.GLOB.service) ? window.GLOB.service : window.GLOB.service + '/') : '' if (process.env.NODE_ENV === 'production') { - axios.defaults.baseURL = document.location.origin + '/' + service + axios.defaults.baseURL = document.location.origin + '/' + window.GLOB.service } else { - // axios.defaults.baseURL = 'http://127.0.0.1:8888' + axios.defaults.baseURL = window.GLOB.location + '/' + window.GLOB.service } - } - - /** - * @description 绯荤粺鎺堟潈 - */ - systemauth (appId, timestamp) { - return axios({ - url: '/webapi/dostar', - data: { - rduri: 'http://minkesoft.com/mksepc/webapi/dostar', - func: 'sEmpowerCloud_Get_LinkUrl', - userid: '', - AppID: appId, - TimeStamp: timestamp - } - }) } /** - * @description 鐧诲綍绯荤粺 + * @description 浣跨敤dostar鎺ュ彛锛岃烦杩囬獙璇� + * @param {Object} param 鏌ヨ鍙婃彁浜ゅ弬鏁� */ - loginsystem (username, password) { + dostarInterface (param) { + param.userid = param.userid || '' + return axios({ - url: '/zh-CN/Home/LoginAndRedirect', - data: { - Username: username, - Password: password + url: '/webapi/dostar', + method: 'post', + data: param + }) + } + + /** + * @description 寰俊涓氬姟璇锋眰 + */ + wxAccessToken () { + let _url = document.location.origin + '/' + window.GLOB.service + 'wxpay/getaccesstoken' + if (process.env.NODE_ENV !== 'production') { + _url = document.location.origin + '/wxpay/getaccesstoken' + } + + return new Promise(resolve => { + if (window.GLOB.accessToken.accessTime && (parseInt(new Date().getTime() / 1000) - window.GLOB.accessToken.accessTime < 30)) { + resolve(window.GLOB.accessToken) + } else { + window.GLOB.accessToken = {} + axios({ + url: _url, + method: 'get' + }).then(res => { + if (res.oa_access_token || res.mini_access_token) { + window.GLOB.accessToken.accessTime = parseInt(new Date().getTime() / 1000) + window.GLOB.accessToken.oa_access_token = res.oa_access_token + window.GLOB.accessToken.mini_access_token = res.mini_access_token + } + resolve(res) + }) } + }) + } + + /** + * @description 寰俊涓氬姟璇锋眰 + */ + wxNginxRequest (url, method, param) { + let _url = window.GLOB.location + '/' + url + if (process.env.NODE_ENV === 'production') { + _url = document.location.origin + '/' + url + } + if (/^http:\/\/(qingqiumarket.cn|cloud.mk9h.cn|sso.mk9h.cn)/.test(_url)) { + _url = window.GLOB.location + ':8080/' + url + if (process.env.NODE_ENV === 'production') { + _url = document.location.origin + ':8080/' + url + } + } else if (/^https:\/\/(qingqiumarket.cn|cloud.mk9h.cn|sso.mk9h.cn)/.test(_url)) { + _url = window.GLOB.location + ':8443/' + url + if (process.env.NODE_ENV === 'production') { + _url = document.location.origin + ':8443/' + url + } + } + + if (param) { + return axios({ + url: _url, + method, + data: param + }) + } + + return axios({ + url: _url, + method + }) + } + + /** + * @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 + + return axios(params) + } + + /** + * @description 娓稿鐧诲綍 + */ + getTouristMsg (appid, openid, memberid, scanId) { + let _SessionUid = localStorage.getItem('SessionUid') + + if (!_SessionUid) { // 鎵嬪姩娓呴櫎SessionUid鏃讹紝瀹炴椂鐢熸垚 + _SessionUid = Utils.getuuid() + localStorage.setItem('SessionUid', _SessionUid) + } + + let param = { + func: 's_visitor_login', + timestamp: moment().format('YYYY-MM-DD HH:mm:ss'), + SessionUid: _SessionUid, + TypeCharOne: 'pc', + kei_id: window.btoa(window.encodeURIComponent(window.GLOB.host)) + } + + param.LText = md5(window.btoa(_SessionUid + param.timestamp)) + param.secretkey = md5(param.LText + 'mingke' + param.timestamp) + + param.appkey = window.GLOB.appkey || '' + + if (appid) { + param.binding_type = 'mk' + param.thd_party_member_id = memberid + param.thd_party_openid = openid + param.thd_party_appid = appid + param.id = scanId + } + + let url = '/webapi/dologon/s_visitor_login' + if (window.GLOB.mainSystemApi) { + param.rduri = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon/s_visitor_login') + } + + return axios({ + url: url, + method: 'post', + data: param + }) + } + + /** + * @description 鎵嬫満鍙烽獙璇佺爜鐧诲綍 + */ + getphoneusermsg (phoneNo, checkcode, isCloud = false, ipAddress, city) { + let param = { + // func: 'webapi_login', + mob: phoneNo, + UserName: '', + Password: '', + check_code: checkcode, + way_no: 'sms_vcode', + systemType: options.sysType, + login_city: city, + login_id_address: ipAddress, + kei_id: window.btoa(window.encodeURIComponent(window.GLOB.host)), + device_id: localStorage.getItem('SessionUid') + } + + param.appkey = window.GLOB.appkey || '' + + let url = '/webapi/dologon' + if (isCloud) { + param.debug = 'Y' + if (options.cloudServiceApi) { + param.rduri = options.cloudServiceApi.replace(/\/webapi(.*)/, '/webapi/dologon') + } + } else if (window.GLOB.mainSystemApi) { + if (options.sysType !== 'cloud' && window.GLOB.systemType !== 'production') { + param.linkurl = window.GLOB.linkurl + } + param.rduri = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon') + } + + return axios({ + url, + method: 'post', + data: param }) } /** * @description 鐧诲綍绯荤粺, 鑾峰彇鐢ㄦ埛淇℃伅 */ - getusermsg (username, password) { - return axios({ - url: 'webapi/getjsonresult', - data: { - DBT: 'proc', - DBS: 'webapi_login', - DBP: JSON.stringify({ 'UserName': username, 'Password': password }) + getusermsg (username, password, isCloud = false, ipAddress, city) { + let param = { + // func: 'webapi_login', + UserName: username, + systemType: options.sysType, + Type: 'S', + login_city: city, + login_id_address: ipAddress, + kei_id: window.btoa(window.encodeURIComponent(window.GLOB.host)), + device_id: localStorage.getItem('SessionUid') + } + + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + + let sys_datetime = sessionStorage.getItem('sys_datetime') + let app_datetime = sessionStorage.getItem('app_datetime') + if (sys_datetime && app_datetime) { + let seconds = Math.floor((new Date().getTime() - app_datetime) / 1000) + param.timestamp = moment(sys_datetime, 'YYYY-MM-DD HH:mm:ss').add(seconds, 'seconds').format('YYYY-MM-DD HH:mm:ss') + } + + // Type: 'S' 鏃� + let shaObj = new jsSHA('SHA-1', 'TEXT') + shaObj.update(password) + param.Password = shaObj.getHash('HEX').toUpperCase() + param.Password = md5(username + param.Password + param.timestamp) + + // Type: 'mk_' 鏃� + // param.Type = '鍏挜' + // let shaObj = new jsSHA('SHA-1', 'TEXT') + // shaObj.update(password) + // param.Password = shaObj.getHash('HEX').toUpperCase() + // param.Password = md5('绉侀挜' + username + param.Password + param.timestamp) + + // Type: 'X' 鏃� + // param.Password = Utils.formatOptions(password) + + param.appkey = window.GLOB.appkey || '' + let url = '/webapi/dologon' + + if (isCloud) { + param.debug = 'Y' + if (options.cloudServiceApi) { + // url = options.cloudServiceApi.replace(/\/webapi(.*)/, '/webapi/dologon') + param.rduri = options.cloudServiceApi.replace(/\/webapi(.*)/, '/webapi/dologon') } + } else if (window.GLOB.mainSystemApi) { + if (options.sysType !== 'cloud' && window.GLOB.systemType !== 'production') { + param.linkurl = window.GLOB.linkurl + } + // url = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon') + param.rduri = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon') + } + + return axios({ + url, + method: 'post', + data: param }) } - + /** - * @description 閲嶇疆瀵嗙爜 + * @description 鑾峰彇绯荤粺鐗堟湰淇℃伅锛屽惎鐢ㄦ垨鏇存柊websql */ - resetpassword (originpwd, newpwd) { - return axios({ - url: '/local/dostar', - data: { - func: 's_PwdUpt', - userid: sessionStorage.getItem('UserID'), - OriginPwd: originpwd, - NewPwd: newpwd + getAppVersion (_resolve, _reject) { + if (!window.GLOB.WebSql && !window.GLOB.IndexDB) { + return Promise.reject() + } + + let curTime = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' + let sys_datetime = sessionStorage.getItem('sys_datetime') + let app_datetime = sessionStorage.getItem('app_datetime') + if (sys_datetime && app_datetime) { + let seconds = Math.floor((new Date().getTime() - app_datetime) / 1000) + curTime = moment(sys_datetime, 'YYYY-MM-DD HH:mm:ss').add(seconds, 'seconds').format('YYYY-MM-DD HH:mm:ss') + '.000' + } + + if (window.GLOB.WebSql) { + return new Promise((resolve, reject) => { + CacheUtils.getWebSqlVersion().then(msg => { + let modifydate = msg.createDate || curTime + if (modifydate.indexOf('Invalid date') > -1) { + modifydate = curTime + } + + let param = { + func: 's_get_app_version', + modifydate + } + + this.getSystemConfig(param).then(res => { + if (!res.status) { + reject() + return + } + let clear = false + let version = '1.00' + + if (res.menu_data && res.menu_data.length > 0) { + res.menu_data.forEach(mid => { + if (systemMenuKeys.indexOf(mid.menuid) > -1) { + clear = true + } + }) + + if (clear) { + CacheUtils.clearWebSqlConfig() + } else { + let keys = res.menu_data.map(mid => `'${mid.menuid}'`).join(',') + CacheUtils.delWebSqlConfig(keys) + } + } + + if (msg.version) { + CacheUtils.updateWebSqlTime(curTime) + } else { + CacheUtils.createWebSqlversion(version, curTime) + } + + resolve() + }) + }, () => { + reject() + }) + }) + } else { + return new Promise((resolve, reject) => { + CacheUtils.getIndexDBVersion().then(msg => { + let modifydate = msg.createDate || curTime + if (modifydate.indexOf('Invalid date') > -1) { + modifydate = curTime + } + let param = { + func: 's_get_app_version', + modifydate + } + + this.getSystemConfig(param).then(res => { + if (!res.status) { + reject() + return + } + let clear = false + let version = '1.00' + + if (res.menu_data && res.menu_data.length > 0) { + res.menu_data.forEach(mid => { + if (systemMenuKeys.indexOf(mid.menuid) > -1) { + clear = true + } + }) + + if (clear) { + CacheUtils.clearIndexDBConfig() + } else { + let keys = res.menu_data.map(mid => `'${mid.menuid}'`) + CacheUtils.delIndexDBConfig(keys) + } + } + + CacheUtils.updateIndexDBversion({version: version, createDate: curTime}) + + resolve() + }) + }, () => { + reject() + }) + }) + } + } + + /** + * @description 鏇存柊绯荤粺鐗堟湰淇℃伅锛屾竻绌洪厤缃俊鎭� + */ + updateAppVersion () { + let curTime = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' + CacheUtils.clearWebSqlConfig() + CacheUtils.updateWebSqlversion('1.00', curTime) + CacheUtils.clearIndexDBConfig() + CacheUtils.updateIndexDBversion({version: '1.00', createDate: curTime}) + CacheUtils.clearFuncs(options.sysType) + } + + /** + * @description 鍒犻櫎鏌愪釜鑿滃崟閰嶇疆淇℃伅 + */ + deleteMenuStorage (menuId) { + if (window.GLOB.IndexDB) { + let key = menuId + (sessionStorage.getItem('UserID') || '') + + if (sessionStorage.getItem('isEditState') === 'true' && options.cloudServiceApi) { + key = menuId + (sessionStorage.getItem('CloudUserID') || '') } + + return CacheUtils.delMenuIndexDBConfig(key) + } else { + return CacheUtils.delMenuWebSqlConfig(menuId) + } + } + + /** + * @description 鑾峰彇鎴栦慨鏀逛簯绔厤缃� + */ + getCloudConfig (param) { + param.lang = param.lang || sessionStorage.getItem('lang') || '' + param.appkey = window.GLOB.appkey || '' + param.SessionUid = localStorage.getItem('SessionUid') || '' + param.userid = sessionStorage.getItem('CloudUserID') || '' + param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' + + param = this.encryptParam(param) + + let url = options.cloudServiceApi ? options.cloudServiceApi : '/webapi/dostars' + if (param.func) { + url = url + '/' + param.func + } + + return axios({ + url, + method: 'post', + data: param + }) + } + + /** + * @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 + } + + let url = window.GLOB.mainSystemApi || '/webapi/dostars' + param = this.encryptParam(param) + + return axios({ + url: `${url}/${param.func}`, + method: 'post', + data: param }) } @@ -121,17 +546,26 @@ * @description 鑾峰彇鎴栦慨鏀圭郴缁熼厤缃紝澧炲姞appkey */ getSystemConfig (param) { - param.userid = sessionStorage.getItem('UserID') - param.lang = localStorage.getItem('lang') || '' - param.SessionUid = sessionStorage.getItem('SessionUid') || '' - param.LoginUID = sessionStorage.getItem('LoginUID') || '' - param.appkey = window.GLOB.appkey || '' - if (window.GLOB.mainSystemApi) { - param.rduri = window.GLOB.mainSystemApi + param.userid = param.userid || sessionStorage.getItem('UserID') || '' + param.lang = param.lang || sessionStorage.getItem('lang') || '' + param.SessionUid = localStorage.getItem('SessionUid') || '' + param.LoginUID = param.LoginUID || sessionStorage.getItem('LoginUID') || '' + 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) { + url = window.GLOB.mainSystemApi } + param = this.encryptParam(param) + return axios({ - url: '/webapi/dostar', + url: `${url}${param.func ? '/' + param.func : ''}`, + method: 'post', data: param }) } @@ -140,46 +574,221 @@ * @description 鑾峰彇鎴栦慨鏀规湰鍦伴厤缃紝澧炲姞appkey */ getLocalConfig (param) { - param.userid = sessionStorage.getItem('UserID') - param.lang = localStorage.getItem('lang') || '' - param.SessionUid = sessionStorage.getItem('SessionUid') || '' - param.LoginUID = sessionStorage.getItem('LoginUID') || '' + param.userid = param.userid || sessionStorage.getItem('UserID') || '' + param.lang = param.lang || sessionStorage.getItem('lang') || '' + param.SessionUid = localStorage.getItem('SessionUid') || '' + param.LoginUID = param.LoginUID || sessionStorage.getItem('LoginUID') || '' param.appkey = window.GLOB.appkey || '' + let url = '/webapi/dostars' + if (param.rduri) { + url = param.rduri + delete param.rduri + } + + param = this.encryptParam(param) + return axios({ - url: '/webapi/dostar', + url: `${url}${param.func ? '/' + param.func : ''}`, + method: 'post', data: param }) } /** - * @description 鑾峰彇绯荤粺閰嶇疆锛屼紭鍏堜粠缂撳瓨涓彇鍊硷紝澧炲姞appkey + * @description 鑾峰彇绯荤粺閰嶇疆锛屽彇鍊间紭鍏堢瓑绾ebsql銆佺紦瀛樸�佹湇鍔″櫒 + * @param {Object} param 璇锋眰鍙傛暟 */ - getSystemCacheConfig (param) { - param.userid = sessionStorage.getItem('UserID') - param.lang = localStorage.getItem('lang') || '' - param.SessionUid = sessionStorage.getItem('SessionUid') || '' + getCacheConfig (param) { + param.userid = sessionStorage.getItem('UserID') || '' + param.lang = param.lang || sessionStorage.getItem('lang') || '' + param.SessionUid = localStorage.getItem('SessionUid') || '' param.LoginUID = sessionStorage.getItem('LoginUID') || '' param.appkey = window.GLOB.appkey || '' - if (window.GLOB.mainSystemApi) { - param.rduri = window.GLOB.mainSystemApi + + 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) { + url = window.GLOB.mainSystemApi } let _param = JSON.parse(JSON.stringify(param)) // 缂撳瓨鏍¢獙锛屽幓闄ゆ椂闂村拰鍔犲瘑瀛楃 delete _param.timestamp delete _param.secretkey + delete _param.open_key _param = JSON.stringify(_param) - - if (GlobMap.has(_param)) { - return Promise.resolve(GlobMap.get(_param)) + _param = md5(_param) + + if (window.GLOB.WebSql) { + return new Promise(resolve => { + CacheUtils.getWebSqlMenuConfig(param.MenuID, param.userid).then(res => { + resolve(res) + }, () => { + param = this.encryptParam(param) + axios({ + url: `${url}${param.func ? '/' + param.func : ''}`, + method: 'post', + data: param + }).then(res => { + if (res.status && window.GLOB.WebSql) { + CacheUtils.writeInWebSql([param.MenuID, param.userid, res.open_edition, res.web_edition, res.LongParam, res.LongParamUser]) + } else if (res.status) { + window.GLOB.CacheMap.set(_param, res) + } + resolve(res) + }) + }) + }) + } else if (window.GLOB.IndexDB) { + return new Promise(resolve => { + CacheUtils.getIndexDBMenuConfig(param.MenuID, param.userid).then(res => { + resolve(res) + }, () => { + param = this.encryptParam(param) + axios({ + url: `${url}${param.func ? '/' + param.func : ''}`, + method: 'post', + data: param + }).then(res => { + if (res.status && window.GLOB.IndexDB) { + let msg = { + ...res, + userid: param.userid, + menuid: param.MenuID, + id: param.MenuID + param.userid + } + CacheUtils.writeInIndexDB(msg) + } else if (res.status) { + window.GLOB.CacheMap.set(_param, res) + } + resolve(res) + }) + }) + }) + } else if (window.GLOB.CacheMap.has(_param)) { + return Promise.resolve(window.GLOB.CacheMap.get(_param)) } else { + param = this.encryptParam(param) + return new Promise(resolve => { axios({ - url: '/webapi/dostar', + url: `${url}${param.func ? '/' + param.func : ''}`, + method: 'post', data: param }).then(res => { + if (res.status) { + window.GLOB.CacheMap.set(_param, res) + } + resolve(res) + }) + }) + } + } - GlobMap.set(_param, res) + /** + * @description 鑾峰彇鏈湴绯荤粺閰嶇疆 + * @param {Object} param 璇锋眰鍙傛暟 + */ + getLocalCacheConfig (param) { + param.userid = sessionStorage.getItem('UserID') || '' + param.lang = param.lang || sessionStorage.getItem('lang') || '' + param.SessionUid = localStorage.getItem('SessionUid') || '' + param.LoginUID = sessionStorage.getItem('LoginUID') || '' + param.appkey = window.GLOB.appkey || '' + + let _param = md5(JSON.stringify(param)) + + if (window.GLOB.WebSql) { + return new Promise(resolve => { + CacheUtils.getWebSqlMenuConfig(param.MenuID, param.userid).then(res => { + resolve(res) + }, () => { + resolve({ ErrCode: 'S', ErrMesg: '', LongParam: '', message: '', status: false }) + }) + }) + } else 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}) + } + } + + /** + * @description dostars 鍙傛暟鍔犲瘑 + */ + encryptParam (param) { + param.nonc = Utils.getuuid() + + let keys = Object.keys(param).sort() + let values = '' + keys.forEach(key => { + if (key === 'rduri' || key === 't') return + if (param[key] === undefined) { + delete param[key] + } else if (typeof(param[key]) === 'object') { + values += key + JSON.stringify(param[key]) + } else { + values += key + param[key] + } + }) + param.sign = md5(values) + param.t = new Date().getTime(); + + ['arr_field', 'LText_field', 'custom_script', 'LText1', 'LText', 'LText2', 'DateCount'].forEach(key => { + if (param[key]) { + let val = param[key] + delete param[key] + param[key] = val + } + }) + + return param + } + + /** + * @description 鑾峰彇绯荤粺閰嶇疆锛屼紭鍏堜粠缂撳瓨涓彇鍊硷紝澧炲姞appkey + * @param {Object} param 璇锋眰鍙傛暟 + * @param {Boolean} SSO 鏄惁涓哄崟鐐圭櫥褰曞湴鍧� + */ + getSystemCacheConfig (param, cache = true) { + param.userid = param.userid || sessionStorage.getItem('UserID') || '' + param.lang = param.lang || sessionStorage.getItem('lang') || '' + param.SessionUid = localStorage.getItem('SessionUid') || '' + param.LoginUID = param.LoginUID || sessionStorage.getItem('LoginUID') || '' + param.appkey = window.GLOB.appkey || '' + + let url = '/webapi/dostars' + if (param.rduri) { + url = param.rduri + delete param.rduri + } + + let _param = JSON.parse(JSON.stringify(param)) // 缂撳瓨鏍¢獙锛屽幓闄ゆ椂闂村拰鍔犲瘑瀛楃 + delete _param.timestamp + delete _param.secretkey + delete _param.open_key + _param = JSON.stringify(_param) + _param = md5(_param) + + if (cache && window.GLOB.CacheMap.has(_param)) { + return Promise.resolve(window.GLOB.CacheMap.get(_param)) + } else { + param = this.encryptParam(param) + + return new Promise(resolve => { + axios({ + url: `${url}${param.func ? '/' + param.func : ''}`, + method: 'post', + data: param + }).then(res => { + if (res.status) { + window.GLOB.CacheMap.set(_param, res) + } resolve(res) }) }) @@ -190,122 +799,158 @@ * @description 鑾峰彇涓氬姟閫氱敤鎺ュ彛 */ genericInterface (param) { - param.userid = sessionStorage.getItem('UserID') - param.lang = localStorage.getItem('lang') || '' - param.SessionUid = sessionStorage.getItem('SessionUid') || '' + param.userid = sessionStorage.getItem('UserID') || '' + param.lang = sessionStorage.getItem('lang') || '' + param.SessionUid = localStorage.getItem('SessionUid') || '' param.LoginUID = sessionStorage.getItem('LoginUID') || '' - // param.appkey = window.GLOB.appkey || '' + param.appkey = window.GLOB.appkey || '' + + if (options.cloudServiceApi && param.rduri === options.cloudServiceApi) { // HS涓嬭彍鍗� + param.userid = sessionStorage.getItem('CloudUserID') || param.userid || '' + param.LoginUID = sessionStorage.getItem('CloudLoginUID') || param.LoginUID || '' + } + + let url = '/webapi/dostars' + if (param.rduri && /\/dostars/.test(param.rduri)) { + url = param.rduri + delete param.rduri + } + + param = this.encryptParam(param) + + return axios({ + url: `${url}${param.func ? '/' + param.func : ''}`, + method: 'post', + data: param + }) + } + + /** + * @description 瀵煎嚭Excel + */ + getExcelOut (param, name) { + param.userid = sessionStorage.getItem('UserID') + param.lang = sessionStorage.getItem('lang') || '' + param.SessionUid = localStorage.getItem('SessionUid') || '' + param.LoginUID = sessionStorage.getItem('LoginUID') || '' + param.appkey = window.GLOB.appkey || '' + return new Promise(resolve => { + axios({ + url: '/webapi/doexcel', + responseType: 'blob', + method: 'post', + data: param + }).then(res => { + try { + const blob = new Blob([res]) + + if (res.type === 'application/json') { + const reader = new FileReader() + reader.onload = e => resolve(JSON.parse(e.target.result)) + reader.readAsText(blob) + } else { + if ('download' in document.createElement('a')) { // 闈濱E涓嬭浇 + const elink = document.createElement('a') + elink.download = name + elink.style.display = 'none' + elink.href = URL.createObjectURL(blob) + document.body.appendChild(elink) + elink.click() + URL.revokeObjectURL(elink.href) // 閲婃斁URL 瀵硅薄 + document.body.removeChild(elink) + } else { // IE10+涓嬭浇 + navigator.msSaveBlob(blob, name) + } + resolve() + } + } catch (e) { + resolve({ + ErrCode: 'E', + ErrMesg: '鏂囦欢瑙f瀽閿欒', + message: '', + status: false + }) + } + }) + }) + } + + /** + * @description 涓婁紶base64 + * @param {String} base64 base64鍥剧墖缂栫爜 + */ + fileuploadbase64 (param) { + param.func = '' + param.BasePath = 'Content/Upload' + param.lang = sessionStorage.getItem('lang') || '' + param.appkey = window.GLOB.appkey || '' + param.SessionUid = localStorage.getItem('SessionUid') || '' + + param.userid = param.userid || sessionStorage.getItem('UserID') || '' + param.LoginUID = param.LoginUID || sessionStorage.getItem('LoginUID') || '' + + param = this.encryptParam(param) + + let url = '/webapi/SaveBase64Image' + if (param.rduri) { + url = param.rduri.replace(/webapi(.*)$/, 'webapi/SaveBase64Image') + delete param.rduri + } + return axios({ - url: '/webapi/dostar', + url, + method: 'post', data: param }) } /** - * @description 鑾峰彇椤甸潰閰嶇疆淇℃伅 - * @param {String} MenuNo 椤甸潰鑿滃崟鍙傛暟 + * @description 澶ф枃浠朵笂浼� */ - getMainConfigsData (MenuNo) { + getLargeFileUpload (param) { return axios({ - url: '/local/dostar', - data: { - func: 'GetMainConfigs', - userid: sessionStorage.getItem('UserID'), - MenuNo: MenuNo - } - }) - } - - /** - * @description 鑾峰彇椤甸潰鍒楄〃鏁版嵁 - * @param {String} MenuNo 椤甸潰鑿滃崟鍙傛暟 - */ - getMainTableData (MenuNo, pageIndex = 1, pageSize = 10, orderColumn = '', orderType = '', search) { - return axios({ - url: '/local/dostar', - data: { - func: 'GetMainData', - userid: sessionStorage.getItem('UserID'), - MenuNo: MenuNo, - PageIndex: pageIndex, - PageSize: pageSize, - orderColumn: orderColumn, - orderType: orderType, - search: search - } - }) - } - - /** - * @description 鑾峰彇椤甸潰閰嶇疆淇℃伅 - * @param {String} MenuNo 椤甸潰鑿滃崟鍙傛暟 - */ - getModelFormData (MenuNo) { - return axios({ - url: '/local/dostar', - data: { - func: 'getModelFormData', - userid: sessionStorage.getItem('UserID'), - MenuNo: MenuNo - } - }) - } - - /** - * @description 鑾峰彇椤甸潰鍒楄〃鏁版嵁 - * @param {String} param 鎻愪氦鍙傛暟 - */ - setActionSubmit (param) { - param.userid = sessionStorage.getItem('UserID') - return axios({ - url: '/local/dostar', + url: '/webapi/doupload', + method: 'post', data: param }) } /** - * @description 閫氱敤鎺ュ彛 - * @param {Object} param 鏌ヨ鍙婃彁浜ゅ弬鏁� + * @description 鏌ヨ鏂囦欢鏄惁宸蹭笂浼� */ - commonInterface (param) { - param.userid = sessionStorage.getItem('UserID') - param.lang = localStorage.getItem('lang') || '' - param.SessionUid = sessionStorage.getItem('SessionUid') || '' - param.LoginUID = sessionStorage.getItem('LoginUID') || '' - param.BID = param.BID || '' - param.debug = param.debug || '' + getFilePreUpload (param) { return axios({ - url: '/webapi/dostar', + url: '/webapi/dopreload', + method: 'post', data: param }) } /** - * @description 閫氱敤鎺ュ彛(鎻愪氦) - * @param {Object} param 鏌ヨ鍙婃彁浜ゅ弬鏁� + * @description 鑾峰彇寰俊鏀粯浜岀淮鐮� */ - submitInterface (param) { - param.userid = sessionStorage.getItem('UserID') - param.lang = localStorage.getItem('lang') || '' - param.SessionUid = sessionStorage.getItem('SessionUid') || '' - param.LoginUID = sessionStorage.getItem('LoginUID') || '' + getWxNativePay (param) { + let _url = document.location.origin + '/' + window.GLOB.service + 'wxpay/wxNativePay' + if (process.env.NODE_ENV !== 'production') { + _url = document.location.origin + '/wxpay/wxNativePay' + } + return axios({ - url: '/webapi/dostar', + url: _url, + method: 'post', data: param }) } - + // /** - // * @description 鐧诲嚭绯荤粺 + // * @description 鏂囦欢涓婁紶 // */ - // logoutsystem () { + // getFileUpload (param) { // return axios({ - // url: '/local/dostar', - // data: { - // func: 'logout', - // userid: sessionStorage.getItem('UserID') - // } + // url: '/zh-CN/Home/Upload', + // method: 'post', + // data: param // }) // } } -- Gitblit v1.8.0