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.
		
		
		
		
		
			
		
			
				
					
					
						
							154 lines
						
					
					
						
							4.1 KiB
						
					
					
				
			
		
		
	
	
							154 lines
						
					
					
						
							4.1 KiB
						
					
					
				| import axios from 'axios' | |
| import utils from '@/utils/encode' | |
| 
 | |
| // const env = process.env.NODE_ENV | |
| const env = 'production' /*  */ | |
| // const env = 'test' | |
| const testUrl = 'http://192.168.110.200:38080' | |
| // const productUrl = 'http://121.196.213.68/adminapi' //预生产 | |
|  | |
| const productUrl = 'https://www.xingoil.com/adminapi' // 生产,加密 new  | |
| // const productUrl = 'http://uat.xingoil.com/adminapi' // 生产,加密 new  | |
| const service = axios.create({ | |
| 	baseURL: env == 'production' ? productUrl : testUrl, | |
| 	// baseURL: testUrl, | |
| 	timeout: 5000 | |
| }) | |
| var url = '' | |
| 
 | |
| service.interceptors.request.use( | |
| 	config => { | |
| 		// 拦截请求   | |
| 		uni.showLoading({ | |
| 			title: '加载中...' | |
| 		}) | |
| 		const token = uni.getStorageSync('Authorization') || " " | |
| 		const unionId = uni.getStorageSync('unionid') | |
| 		// console.log(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' | |
| 
 | |
| 		console.log(config) | |
| 
 | |
| 		if (['/oil-site/oilSiteAppInfo/findKASiteInfoByPage', '/oil-site/oilSiteAppInfo/getSiteDetailsByKA', | |
| 				'/oil-site/oilSiteAppInfo/getSitePriceKAByBelong' | |
| 			].includes(config.url)) { | |
| 			let parentCompanyId = config.baseURL === 'https://www.xingoil.com/adminapi' ? '1812649739013771264' : | |
| 				'1810568376122056704' | |
| 			if (config.data.params) { | |
| 				config.data.params['parentCompanyId'] = parentCompanyId | |
| 			} else config.data['parentCompanyId'] = parentCompanyId | |
| 		} | |
| 
 | |
| 		if (env === 'production') { | |
| 			const JSESSIONID = utils.uuid() | |
| 			config.headers['JSESSIONID'] = JSESSIONID | |
| 			config.headers['token'] = utils.md5Salt(JSESSIONID) | |
| 
 | |
| 			const data = { // 用于存储加密 | |
| 				params: '' // 加密后的密文 | |
| 			} | |
| 			// 要加密 | |
| 			data.params = utils.encrypt(JSON.stringify(config.data)) | |
| 			config.data = data | |
| 		} else { | |
| 			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 | |
| 
 | |
| 		if (env === 'production') { | |
| 			// 生产环境,进行加密解密,不输出日志 | |
| 			if (res.encrypt == 1) { | |
| 				const dataParam = JSON.parse(utils.decrypt(res.data)) | |
| 				res.data = JSON.stringify(dataParam) === '{}' ? null : dataParam | |
| 			} | |
| 		} | |
| 
 | |
| 		uni.hideLoading() | |
| 		if (response.config.url.indexOf('/oil-site/oilSiteOrderInfo/getOrderQrCode') === -1) { | |
| 			if (res.code != 20000 && res.msg != '令牌为空,不允许操作' && res.msg != '您的ip已经更改,请重新登录' && res.msg != | |
| 				'登录与操作设备不同' && res.msg != '用户未登录只可查询前两页油站信息') { | |
| 				uni.showToast({ | |
| 					title: res.msg, | |
| 					icon: "none" | |
| 				}) | |
| 			} | |
| 		} | |
| 		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 |