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
|
})
|
}
|
}
|