From 1e7aa4f0ff5e13c4a99ba511bb357a4cc63aa0c1 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 02 四月 2020 15:21:46 +0800 Subject: [PATCH] 2020-04-02 --- src/api/index.js | 276 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 223 insertions(+), 53 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index b89eb20..956b4f9 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,8 +1,8 @@ import axios from 'axios' import qs from 'qs' import {notification } from 'antd' -// import md5 from 'md5' -// import Utils from '@/utils/utils.js' +import md5 from 'md5' +import Utils from '@/utils/utils.js' import options from '@/store/options.js' axios.defaults.crossDomain = true @@ -27,12 +27,13 @@ const setCurrentUrl = () => { if (!!(window.history && window.history.pushState)) { + sessionStorage.clear() window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login') window.location.reload() } } -let GlobMap = new Map() +window.GLOB.CacheMap = new Map() axios.interceptors.response.use((response) => { if (response.data.ErrCode === 'LoginError') { @@ -60,47 +61,88 @@ // axios.defaults.baseURL = 'http://127.0.0.1:8888' } } - - /** - * @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 = '' + return axios({ - url: '/zh-CN/Home/LoginAndRedirect', - data: { - Username: username, - Password: password - } + url: '/webapi/dostar', + data: param }) } /** * @description 鐧诲綍绯荤粺, 鑾峰彇鐢ㄦ埛淇℃伅 */ - getusermsg (username, password) { + getusermsg (username, password, isCloud = false) { + let param = { + // func: 'webapi_login', + UserName: username, + Password: password, + systemType: options.systemType, + Type: 'X' + } + + param.Password = Utils.formatOptions(param.Password) + param.appkey = window.GLOB.appkey || '' + + if (isCloud && options.cloudLoginApi) { + param.rduri = options.cloudLoginApi + } else if (!isCloud && window.GLOB.mainSystemApi) { + param.rduri = window.GLOB.mainSystemApi.replace(/\/webapi(.*)/, '/webapi/dologon') + } + return axios({ - url: 'webapi/getjsonresult', - data: { - DBT: 'proc', - DBS: 'webapi_login', - DBP: JSON.stringify({ 'UserName': username, 'Password': password }) + url: '/webapi/dologon', + data: param + }) + } + + /** + * @description 鑾峰彇鎴栦慨鏀逛簯绔厤缃� + */ + getCloudConfig (param) { + param.lang = localStorage.getItem('lang') || '' + param.appkey = window.GLOB.appkey || '' + + if (sessionStorage.getItem('CloudUserID') && options.cloudServiceApi) { // 瀛樺湪浜戠鐧诲綍淇℃伅锛屼笖瀛樺湪浜戠鍦板潃 + param.rduri = options.cloudServiceApi + param.userid = sessionStorage.getItem('CloudUserID') + param.SessionUid = sessionStorage.getItem('CloudSessionUid') || '' + param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' + } else if (window.GLOB.mainSystemApi) { + param.rduri = window.GLOB.mainSystemApi + param.userid = sessionStorage.getItem('UserID') + param.SessionUid = sessionStorage.getItem('SessionUid') || '' + param.LoginUID = sessionStorage.getItem('LoginUID') || '' + } else { + param.userid = sessionStorage.getItem('UserID') + param.SessionUid = sessionStorage.getItem('SessionUid') || '' + param.LoginUID = sessionStorage.getItem('LoginUID') || '' + } + + param.nonc = Utils.getuuid() + + let keys = Object.keys(param).sort() + let values = '' + keys.forEach(key => { + if (key === 'rduri' || key === 't') return + 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() + + return axios({ + url: '/webapi/dostars', + data: param }) } @@ -113,8 +155,8 @@ param.SessionUid = sessionStorage.getItem('SessionUid') || '' param.LoginUID = sessionStorage.getItem('LoginUID') || '' param.appkey = window.GLOB.appkey || '' - - if (sessionStorage.getItem('isEditState') && options.cloudServiceApi) { // 缂栬緫鐘舵�侊紝涓斿瓨鍦ㄤ簯绔湴鍧� + + if (sessionStorage.getItem('isEditState') === 'true' && options.cloudServiceApi) { // 缂栬緫鐘舵�侊紝涓斿瓨鍦ㄤ簯绔湴鍧� param.rduri = options.cloudServiceApi param.userid = sessionStorage.getItem('CloudUserID') param.SessionUid = sessionStorage.getItem('CloudSessionUid') || '' @@ -123,15 +165,23 @@ param.rduri = window.GLOB.mainSystemApi } - // param.nonc = Utils.getuuid() - // param._ = new Date().getTime() - - // let keys = Object.keys(param).sort() - // let values = keys.map(key => key + param[key]).join('') - // param.sign = md5(values) + param.nonc = Utils.getuuid() + + let keys = Object.keys(param).sort() + let values = '' + keys.forEach(key => { + if (key === 'rduri' || key === 't') return + 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() return axios({ - url: '/webapi/dostar', + url: '/webapi/dostars', data: param }) } @@ -146,22 +196,47 @@ param.LoginUID = sessionStorage.getItem('LoginUID') || '' param.appkey = window.GLOB.appkey || '' + param.nonc = Utils.getuuid() + + let keys = Object.keys(param).sort() + let values = '' + keys.forEach(key => { + if (key === 'rduri' || key === 't') return + 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() + return axios({ - url: '/webapi/dostar', + url: '/webapi/dostars', data: param }) } /** * @description 鑾峰彇绯荤粺閰嶇疆锛屼紭鍏堜粠缂撳瓨涓彇鍊硷紝澧炲姞appkey + * @param {Object} param 璇锋眰鍙傛暟 + * @param {Boolean} SSO 鏄惁涓哄崟鐐圭櫥褰曞湴鍧� */ - getSystemCacheConfig (param) { - param.userid = sessionStorage.getItem('UserID') + getSystemCacheConfig (param, SSO = true) { + 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) { + + if (sessionStorage.getItem('isEditState') === 'true' && SSO) { // 缂栬緫鐘舵�侊紝鍗曠偣鐧诲綍鏈嶅姟鍣ㄤ负浜戠 + if (options.cloudServiceApi) { // 瀛樺湪浜戠鍦板潃鏃讹紝浣跨敤浜戠绯荤粺鍙傛暟 + param.rduri = options.cloudServiceApi + param.userid = sessionStorage.getItem('CloudUserID') || '' + param.SessionUid = sessionStorage.getItem('CloudSessionUid') || '' + param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' + } + } else if (window.GLOB.mainSystemApi && SSO) { param.rduri = window.GLOB.mainSystemApi } @@ -169,17 +244,34 @@ delete _param.timestamp delete _param.secretkey _param = JSON.stringify(_param) + _param = md5(_param) - if (GlobMap.has(_param)) { - return Promise.resolve(GlobMap.get(_param)) + if (window.GLOB.CacheMap.has(_param)) { + return Promise.resolve(window.GLOB.CacheMap.get(_param)) } else { + param.nonc = Utils.getuuid() + + let keys = Object.keys(param).sort() + let values = '' + keys.forEach(key => { + if (key === 'rduri' || key === 't') return + 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() + return new Promise(resolve => { axios({ - url: '/webapi/dostar', + url: '/webapi/dostars', data: param }).then(res => { - - GlobMap.set(_param, res) + if (res.status) { + window.GLOB.CacheMap.set(_param, res) + } resolve(res) }) }) @@ -194,13 +286,31 @@ param.lang = localStorage.getItem('lang') || '' param.SessionUid = sessionStorage.getItem('SessionUid') || '' param.LoginUID = sessionStorage.getItem('LoginUID') || '' + param.appkey = window.GLOB.appkey || '' - if (param.func === 'RolesAdd') { // 瑙掕壊娣诲姞鏃讹紝浼燼ppkey - param.appkey = window.GLOB.appkey || '' + if (sessionStorage.getItem('isEditState') === 'true' && param.rduri === options.cloudServiceApi) { // HS涓嬭彍鍗� + param.userid = sessionStorage.getItem('CloudUserID') + param.SessionUid = sessionStorage.getItem('CloudSessionUid') || '' + param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' } + param.nonc = Utils.getuuid() + + let keys = Object.keys(param).sort() + let values = '' + keys.forEach(key => { + if (key === 'rduri' || key === 't') return + 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() + return axios({ - url: '/webapi/dostar', + url: '/webapi/dostars', data: param }) } @@ -213,6 +323,7 @@ param.lang = localStorage.getItem('lang') || '' param.SessionUid = sessionStorage.getItem('SessionUid') || '' param.LoginUID = sessionStorage.getItem('LoginUID') || '' + param.appkey = window.GLOB.appkey || '' return new Promise(resolve => { axios({ @@ -256,6 +367,65 @@ } /** + * @description 涓婁紶base64 + * @param {String} base64 base64鍥剧墖缂栫爜 + */ + fileuploadbase64 (base64, service = 'local') { + let param = { + func: '', + BasePath: 'Content/Upload', + lang: localStorage.getItem('lang') || '', + appkey: window.GLOB.appkey || '', + Base64Img: base64 + } + + if (service === 'sso' && window.GLOB.mainSystemApi) { + param.rduri = window.GLOB.mainSystemApi + param.userid = sessionStorage.getItem('UserID') + param.SessionUid = sessionStorage.getItem('SessionUid') || '' + param.LoginUID = sessionStorage.getItem('LoginUID') || '' + } else if (service === 'cloud' && options.cloudServiceApi) { + param.rduri = options.cloudServiceApi + param.userid = sessionStorage.getItem('CloudUserID') + param.SessionUid = sessionStorage.getItem('CloudSessionUid') || '' + param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' + } else { + param.userid = sessionStorage.getItem('UserID') + param.SessionUid = sessionStorage.getItem('SessionUid') || '' + param.LoginUID = sessionStorage.getItem('LoginUID') || '' + } + + param.nonc = Utils.getuuid() + + let keys = Object.keys(param).sort() + let values = '' + keys.forEach(key => { + if (key === 'rduri' || key === 't') return + 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() + + if (param.rduri) { + param.rduri = param.rduri.replace(/webapi(.*)$/, 'webapi/SaveBase64Image') + + return axios({ + url: '/webapi/dostars', + data: param + }) + } else { + return axios({ + url: '/webapi/SaveBase64Image', + data: param + }) + } + } + + /** * @description 鏂囦欢涓婁紶 */ getFileUpload (param) { -- Gitblit v1.8.0