import axios from 'axios' import md5 from 'md5' import Utils from '@/utils' axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' axios.defaults.crossDomain = true axios.defaults.withCredentials = true axios.interceptors.request.use((config) => { // 在发送请求之前做些什么 config.data = config.data || {} config.method = 'post' config.data.userid = config.data.userid || '' config.data = JSON.stringify(config.data) return config }, (error) => { // 对请求错误做些什么 return Promise.reject(error) }); axios.interceptors.response.use((response) => { // 对响应数据做点什么 // response.data = JSON.parse(response.data) return Promise.resolve(response.data) }, (error) => { // 对响应错误做点什么 return Promise.resolve(error) }); export default class Service { constructor () { } /** * @description 获取官网基础数据,并缓存至session * @param {String} DBS 存储过程 */ getBaseData (DBS) { let cachedata = sessionStorage.getItem(DBS) // let cachedata = '' if (cachedata) { return Promise.resolve(JSON.parse(cachedata)) } else { return new Promise(resolve => { axios({ url: `/webapi/dostar/${DBS}`, data: { func: DBS } }).then(res => { if (res.status) { sessionStorage.setItem(DBS, JSON.stringify(res)) } resolve(res) }) }) } } /** * @description 游客登录 */ loginSSO () { let param = { func: 's_visitor_login', timestamp: Utils.getCurrentTime(), SessionUid: localStorage.getItem('SessionUid'), TypeCharOne: 'pc' } param.LText = md5(window.btoa(localStorage.getItem('SessionUid') + param.timestamp)) param.secretkey = md5(param.LText + 'mingke' + param.timestamp) param.appkey = window.GLOB.appkey param.rduri = window.GLOB.rduri.replace('webapi/dostars', 'webapi/dologon') return axios({ url: '/webapi/dostar', data: param }) } /** * @description 转接调用sso系统的dostars * @param {String} param 请求参数 */ setSSORequest (param) { param.appkey = window.GLOB.appkey param.rduri = window.GLOB.rduri param.userid = sessionStorage.getItem('UserID') || '' param.SessionUid = localStorage.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/dostar/${param.func}`, data: param }) } /** * @description 获取官网基础数据,并缓存至session * @param {String} param 请求参数 */ getParamData (param) { let _param = JSON.stringify(param) let cachedata = sessionStorage.getItem(_param) // let cachedata = '' if (cachedata) { return Promise.resolve(JSON.parse(cachedata)) } else { return new Promise(resolve => { axios({ url: `/webapi/dostar/${param.func}`, data: param }).then(res => { if (res.status) { sessionStorage.setItem(_param, JSON.stringify(res)) } resolve(res) }) }) } } /** * @description 提交 * @param {String} param 请求参数 */ setSubmit (param) { return axios({ url: `/webapi/dostar/${param.func}`, data: param }) } }