You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
254 lines
6.9 KiB
254 lines
6.9 KiB
import axios from 'axios' |
|
import utils from '@/utils/encode' |
|
|
|
const env = 'test' /* */ |
|
// const env = 'test'// 仅用于测试、 |
|
// const env = 'production' |
|
//42 洛超 /29 孙志华 /40 阿浩 |
|
// 测试日日顺时需要连阿浩 |
|
|
|
const testUrl = 'http://192.168.20:38080' |
|
// const productionUrl = 'https://www.51xingka.net/oilApp' // 生产,加密 old |
|
// const productionUrl = 'https://www.xingoil.com/adminapi' // 生产,加密 new |
|
// const productionUrl = 'https://www.xingoil.com/adminapi' // 生产,加密 new |
|
const productionUrl = 'http://uat.xingoil.com/adminapi' |
|
// const env = process.env.NODE_ENV // 环境 |
|
const service = axios.create({ |
|
baseURL: env=='production'?productionUrl:testUrl, // |
|
// baseURL: testUrl, // |
|
timeout: 5000 |
|
}) |
|
|
|
var url = '' |
|
let outTimer = null |
|
|
|
service.interceptors.request.use( |
|
config => { |
|
console.log('这里是config',config) |
|
// if(config.url.indexOf('/oil-user/oilCustomerChannelRelation/getByPhone/') != -1){ |
|
// uni.hideToast() |
|
// }else{ |
|
// 拦截请求 |
|
uni.showLoading({ |
|
title: '加载中...', |
|
mask:true |
|
}) |
|
// } |
|
const token = uni.getStorageSync('Authorization') |
|
const openid = uni.getStorageSync('device') |
|
const openId = uni.getStorageSync('openid') |
|
const unionId = uni.getStorageSync('unionid') |
|
const accountSources = 'LOGIN_MP_WECHAT' |
|
|
|
// console.log(unionId) |
|
// 原本为 openid |
|
config.headers['Authorization'] = token |
|
config.headers['imei'] = unionId |
|
config.headers['openId'] = openId |
|
config.headers['dataSources'] = 'MP' |
|
config.headers['accountSources'] = accountSources ; |
|
config.headers['loginSystem'] = 'OIL_MINI_CLOUD' |
|
config.headers['loginDevice'] = 'LOGIN_MP_WECHAT' |
|
if (env === 'production') { |
|
// 生产环境,加密,不输出任何东西 |
|
// 设置jsessionid和token |
|
console.log('这里是生产') |
|
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: '' // 加密后的密文 |
|
} |
|
// console.log('请求路径', config.url, '参数加密前', config.data) |
|
// 要加密 |
|
data.params = utils.encrypt(JSON.stringify(config.data)) //加密 |
|
config.data = data |
|
// } |
|
} else { |
|
// 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 => { |
|
const res = response.data |
|
// const env = process.env.NODE_ENV |
|
// const env = 'production' // 测试中的生茶 |
|
|
|
if (env === 'production') { |
|
// 生产环境,进行加密解密,不输出日志 |
|
if (res.encrypt == 1) { |
|
// 加密的数据,需要解密 |
|
const dataParam = JSON.parse(utils.decrypt(res.data)) |
|
// console.log('解密前的data===========',res) |
|
// console.log('解密后的data===========',dataParam) |
|
// 数据解密 赋值 |
|
res.data=JSON.stringify(dataParam) === '{}' ? null : dataParam |
|
// console.log('这里是res解密后的',res.data) |
|
// console.log('生产环境 请求路径', response.config.url, '解密为', res.data) |
|
} |
|
} else { |
|
console.log('请求路径', response.config.url, '返回结果未加密', res) |
|
console.log('-------------------------------------------') |
|
} |
|
|
|
uni.hideLoading() |
|
if (res.code != 20000) { |
|
console.log('这里是登录报错处',res) |
|
if(response.config.url.indexOf('/oil-user/oilCustomerChannelRelation/getByPhone/') != -1){ |
|
// uni.hideToast() |
|
}else{ |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: "none" |
|
}) |
|
} |
|
if (res.msg === '登录已过期!') { |
|
outTimer = setTimeout(() => { |
|
uni.showModal({ |
|
title: '下线提醒', |
|
confirmText: '重新登录', |
|
cancelText: "退出", |
|
content: '您的账号在另一微信下登录了星油云站,请确认是否本加油站工作人员操作', |
|
success: function(res) { |
|
if (res.confirm) { |
|
uni.reLaunch({ |
|
url: '/pages/login/boforeLogin/boforeLogin', |
|
success: () => { |
|
console.log('跳转成功') |
|
}, |
|
fail: (err) => { |
|
console.log(err) |
|
} |
|
}) |
|
} else if (res.cancel) { |
|
uni.reLaunch({ |
|
url: '/pages/login/boforeLogin/boforeLogin?type=1', |
|
success: () => { |
|
console.log('跳转成功') |
|
}, |
|
fail: (err) => { |
|
console.log(err) |
|
} |
|
}) |
|
} |
|
} |
|
}); |
|
}, 1000) |
|
} |
|
if(res.code == 42011){ |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: "none" |
|
}) |
|
uni.reLaunch({ |
|
url: '/pages/login/boforeLogin/boforeLogin', |
|
success: () => { |
|
console.log('跳转成功') |
|
}, |
|
fail: (err) => { |
|
console.log(err) |
|
} |
|
}) |
|
} |
|
if(res.code == 42077){ |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: "none" |
|
}) |
|
uni.reLaunch({ |
|
url: '/pages/login/boforeLogin/boforeLogin', |
|
success: () => { |
|
console.log('跳转成功') |
|
}, |
|
fail: (err) => { |
|
console.log(err) |
|
} |
|
}) |
|
} |
|
|
|
if (res.code != 20000 && res.msg != '令牌为空,不允许操作' && res.code != 42077 && res.code != 42011 &&res.msg != '您的ip已经更改,请重新登录' && res.msg != '登录与操作设备不同') { |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: "none" |
|
}) |
|
// uni.reLaunch({ |
|
// url: '/pages/login/boforeLogin/boforeLogin', |
|
// success: () => { |
|
// console.log('跳转成功') |
|
// }, |
|
// fail: (err) => { |
|
// console.log(err) |
|
// } |
|
// }) |
|
} |
|
} |
|
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" |
|
}) |
|
} |
|
} |
|
}); |
|
|
|
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
|
|
|