|
|
|
import axios from 'axios'
|
|
|
|
import utils from '@/utils/encode'
|
|
|
|
// const env = process.env.NODE_ENV
|
|
|
|
// const env = 'test'
|
|
|
|
const env = 'test'
|
|
|
|
const testUrl = 'http://192.168.1.83:38080'
|
|
|
|
// const productUrl = 'https://www.xingoil.com/adminapi'
|
|
|
|
// const productUrl = 'https://www.xingoil.com/adminapi' // 生产,加密 new
|
|
|
|
// const productUrl = 'http://uat.xingoil.com/adminapi'
|
|
|
|
|
|
|
|
const service = axios.create({
|
|
|
|
baseURL: env == 'production' ? productUrl : testUrl,
|
|
|
|
// baseURL: testUrl,
|
|
|
|
timeout: 5000
|
|
|
|
})
|
|
|
|
var url = ''
|
|
|
|
service.interceptors.request.use(
|
|
|
|
config => {
|
|
|
|
// 拦截请求
|
|
|
|
uni.showLoading({
|
|
|
|
title: '加载中...',
|
|
|
|
mask: true
|
|
|
|
})
|
|
|
|
const token = uni.getStorageSync('Authorization')
|
|
|
|
const unionId = uni.getStorageSync('unionid')
|
|
|
|
|
|
|
|
const openId = uni.getStorageSync('openid')
|
|
|
|
// const accountSources = 'WE_CHAT_PROGRAM'
|
|
|
|
const accountSources = 'LOGIN_MP_WECHAT'
|
|
|
|
// console.log('取出来缓存', token, openid)
|
|
|
|
|
|
|
|
config.headers['openId'] = openId
|
|
|
|
config.headers['Authorization'] = token
|
|
|
|
config.headers['accountSources'] = accountSources
|
|
|
|
config.headers['imei'] = unionId
|
|
|
|
config.headers['dataSources'] = 'MP'
|
|
|
|
|
|
|
|
if (env === 'production') {
|
|
|
|
// console.log("这里是生产")
|
|
|
|
// 生产环境,加密,不输出任何东西
|
|
|
|
// 设置jsessionid和token
|
|
|
|
const JSESSIONID = utils.uuid()
|
|
|
|
config.headers['JSESSIONID'] = JSESSIONID
|
|
|
|
config.headers['token'] = utils.md5Salt(JSESSIONID)
|
|
|
|
// if ( encryptWhite.indexOf(config.url) < 0) {
|
|
|
|
// if (!notEncrypt && encryptWhite.indexOf(config.url) < 0) {
|
|
|
|
// 这是定义在哪的
|
|
|
|
const data = { // 用于存储加密
|
|
|
|
params: '' // 加密后的密文
|
|
|
|
}
|
|
|
|
// 要加密
|
|
|
|
data.params = utils.encrypt(JSON.stringify(config.data))
|
|
|
|
// console.log('参数', config.url, '参数加密前', config.data, '加密:', data)
|
|
|
|
config.data = data
|
|
|
|
// }
|
|
|
|
} else {
|
|
|
|
// console.log("这里是测试")
|
|
|
|
// console.log('\n\n-----------------------')
|
|
|
|
// console.log('参数', config.url, '参数加密前', config.data)
|
|
|
|
url = config.url
|
|
|
|
}
|
|
|
|
return config
|
|
|
|
},
|
|
|
|
error => {
|
|
|
|
uni.hideLoading()
|
|
|
|
uni.showToast({
|
|
|
|
title: '网络超时',
|
|
|
|
icon: "none"
|
|
|
|
})
|
|
|
|
return Promise.reject(error)
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
service.interceptors.response.use(
|
|
|
|
response => {
|
|
|
|
// console.log(response.data,'-------------------')
|
|
|
|
const res = response.data
|
|
|
|
if (env === 'production') {
|
|
|
|
// 生产环境,进行加密解密,不输出日志
|
|
|
|
if (res.encrypt == 1) {
|
|
|
|
// 加密的数据,需要解密
|
|
|
|
const dataParam = JSON.parse(utils.decrypt(res.data))
|
|
|
|
res.data = JSON.stringify(dataParam) === '{}' ? null : dataParam
|
|
|
|
// console.log(res.data)
|
|
|
|
// console.log('返回', response.config.url, '返回结果',res)
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
// console.log('返回', response.config.url, '返回结果未加密', res)
|
|
|
|
// console.log('-------------------------------------------\n\n')
|
|
|
|
}
|
|
|
|
|
|
|
|
uni.hideLoading()
|
|
|
|
if (response.config.url.indexOf('/oil-site/oilSiteOrderInfo/getOrderQrCode') === -1) {
|
|
|
|
// console.log(res, '----------------------------------')
|
|
|
|
if (res.code != 20000 && res.msg != '令牌为空,不允许操作' && res.msg != '您的ip已经更改,请重新登录' && res.msg !=
|
|
|
|
'登录与操作设备不同') {
|
|
|
|
uni.showToast({
|
|
|
|
title: res.msg,
|
|
|
|
icon: "none"
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
if(res.msg=='登录已过期!'){
|
|
|
|
uni.showModal({
|
|
|
|
title:'登录已过期',
|
|
|
|
content:'是否重新登录',
|
|
|
|
success: function (res) {
|
|
|
|
if (res.confirm) {
|
|
|
|
uni.redirectTo({
|
|
|
|
url:'/pages/login/login',
|
|
|
|
fail(e) {
|
|
|
|
console.log(e)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
} else if (res.cancel) {
|
|
|
|
console.log('用户点击取消');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
}
|
|
|
|
return res
|
|
|
|
},
|
|
|
|
error => {
|
|
|
|
uni.hideLoading()
|
|
|
|
uni.getNetworkType({
|
|
|
|
success: function(res) {
|
|
|
|
// console.log(res.networkType);
|
|
|
|
if (res.networkType === 'none') {
|
|
|
|
uni.showToast({
|
|
|
|
title: '没有网啦!',
|
|
|
|
icon: "none"
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
uni.showToast({
|
|
|
|
title: '请求失败!',
|
|
|
|
icon: "none"
|
|
|
|
})
|
|
|
|
console.log(error)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
return Promise.reject(error)
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
// #ifndef H5
|
|
|
|
service.defaults.adapter = function(config) {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
var settle = require('axios/lib/core/settle');
|
|
|
|
var buildURL = require('axios/lib/helpers/buildURL');
|
|
|
|
uni.request({
|
|
|
|
method: config.method.toUpperCase(),
|
|
|
|
url: config.baseURL + buildURL(config.url, config.params, config.paramsSerializer),
|
|
|
|
header: config.headers,
|
|
|
|
data: config.data,
|
|
|
|
dataType: config.dataType,
|
|
|
|
responseType: config.responseType,
|
|
|
|
sslVerify: config.sslVerify,
|
|
|
|
complete: function complete(response) {
|
|
|
|
response = {
|
|
|
|
data: response.data,
|
|
|
|
status: response.statusCode,
|
|
|
|
errMsg: response.errMsg,
|
|
|
|
header: response.header,
|
|
|
|
config: config
|
|
|
|
};
|
|
|
|
settle(resolve, reject, response);
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
export default service
|