|  | @@ -1,165 +1,160 @@
 | 
	
		
			
				|  |  | -import axios from "axios";
 | 
	
		
			
				|  |  | +import axios from 'axios';
 | 
	
		
			
				|  |  | +import { UniAdapter } from 'uniapp-axios-adapter';
 | 
	
		
			
				|  |  | +import store from '@/store';
 | 
	
		
			
				|  |  |  import {
 | 
	
		
			
				|  |  | -	UniAdapter
 | 
	
		
			
				|  |  | -} from 'uniapp-axios-adapter'
 | 
	
		
			
				|  |  | -import store from '@/store'
 | 
	
		
			
				|  |  | -import {
 | 
	
		
			
				|  |  | -	getAccessToken,
 | 
	
		
			
				|  |  | -	setAccessToken,
 | 
	
		
			
				|  |  | -	setRefreshToken,
 | 
	
		
			
				|  |  | -	refreshToken,
 | 
	
		
			
				|  |  | -	isRefreshRequest
 | 
	
		
			
				|  |  | -} from "./auth"
 | 
	
		
			
				|  |  | +  getAccessToken,
 | 
	
		
			
				|  |  | +  setAccessToken,
 | 
	
		
			
				|  |  | +  setRefreshToken,
 | 
	
		
			
				|  |  | +  refreshToken,
 | 
	
		
			
				|  |  | +  isRefreshRequest,
 | 
	
		
			
				|  |  | +} from './auth';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // 每次请求都创建一个新的实例
 | 
	
		
			
				|  |  |  const instance = axios.create({
 | 
	
		
			
				|  |  | -	// baseURL: "https://test.api.chelvc.com",
 | 
	
		
			
				|  |  | -	// baseURL: "http://192.168.68.77:11000",
 | 
	
		
			
				|  |  | -	baseURL: "https://358175z5l5.yicp.fun",
 | 
	
		
			
				|  |  | -	timeout: 10000,
 | 
	
		
			
				|  |  | -	adapter: UniAdapter
 | 
	
		
			
				|  |  | +  baseURL: 'https://test.api.chelvc.com',
 | 
	
		
			
				|  |  | +  // baseURL: "http://192.168.68.77:11000",
 | 
	
		
			
				|  |  | +  // baseURL: "https://358175z5l5.yicp.fun",
 | 
	
		
			
				|  |  | +  timeout: 10000,
 | 
	
		
			
				|  |  | +  adapter: UniAdapter,
 | 
	
		
			
				|  |  |  });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -instance.interceptors.request.use((config) => {
 | 
	
		
			
				|  |  | -	uni.showLoading({
 | 
	
		
			
				|  |  | -		title: '加载中'
 | 
	
		
			
				|  |  | -	})
 | 
	
		
			
				|  |  | -	// 带上token 和其他请求头信息
 | 
	
		
			
				|  |  | -	if (store.getters.accessToken) {
 | 
	
		
			
				|  |  | -		config.headers['Authorization'] = `Bearer ${getAccessToken()}`
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	console.log("@@@@config",config)
 | 
	
		
			
				|  |  | -	config.headers = {
 | 
	
		
			
				|  |  | -		...config.headers,
 | 
	
		
			
				|  |  | -		platform: store.getters.app.system.osName.toUpperCase(),
 | 
	
		
			
				|  |  | -		terminal: 'APPLET', // TODO:
 | 
	
		
			
				|  |  | -		version: store.getters.app.system.appVersion.toUpperCase(),
 | 
	
		
			
				|  |  | -		// scope: store.getters.scope,
 | 
	
		
			
				|  |  | -		device: store.getters.app.system.deviceId,
 | 
	
		
			
				|  |  | -		timestamp: new Date().getTime()
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	return config
 | 
	
		
			
				|  |  | -})
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -instance.interceptors.response.use(async (res) => {
 | 
	
		
			
				|  |  | -	uni.hideLoading()
 | 
	
		
			
				|  |  | -	const {
 | 
	
		
			
				|  |  | -		code,
 | 
	
		
			
				|  |  | -		data,
 | 
	
		
			
				|  |  | -		message
 | 
	
		
			
				|  |  | -	} = res.data
 | 
	
		
			
				|  |  | -	if (data && data.accessToken) {
 | 
	
		
			
				|  |  | -		setAccessToken(data.accessToken)
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	if (data && data.refreshToken) {
 | 
	
		
			
				|  |  | -		setRefreshToken(data.refreshToken)
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	// 未知错误
 | 
	
		
			
				|  |  | -	if (code === 'ERROR') {
 | 
	
		
			
				|  |  | -		uni.showToast({
 | 
	
		
			
				|  |  | -			title: `${message ? message :'未知错误'}`,
 | 
	
		
			
				|  |  | -			icon: 'none'
 | 
	
		
			
				|  |  | -		})
 | 
	
		
			
				|  |  | -		return res.data
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	// 请求错误
 | 
	
		
			
				|  |  | -	if (code === 'BAD_REQUEST') {
 | 
	
		
			
				|  |  | -		uni.showToast({
 | 
	
		
			
				|  |  | -			title: `${message ? message :'请求异常'}`,
 | 
	
		
			
				|  |  | -			icon: 'none'
 | 
	
		
			
				|  |  | -		})
 | 
	
		
			
				|  |  | -		return res.data
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	// 拒绝访问
 | 
	
		
			
				|  |  | -	if (code === 'FORBIDDEN') {
 | 
	
		
			
				|  |  | -		uni.showToast({
 | 
	
		
			
				|  |  | -			title: `${message ? message :'拒绝访问'}`,
 | 
	
		
			
				|  |  | -			icon: 'none'
 | 
	
		
			
				|  |  | -		})
 | 
	
		
			
				|  |  | -		return
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	// 请求参数异常
 | 
	
		
			
				|  |  | -	if (code === 'PARAMETER_INVALID') {
 | 
	
		
			
				|  |  | -		const errorTextList = Object.keys(res.data.data).map(key => {
 | 
	
		
			
				|  |  | -			return res.data.data[key]
 | 
	
		
			
				|  |  | -		})
 | 
	
		
			
				|  |  | -		uni.showToast({
 | 
	
		
			
				|  |  | -			title: errorTextList.join(','),
 | 
	
		
			
				|  |  | -			icon: 'none'
 | 
	
		
			
				|  |  | -		})
 | 
	
		
			
				|  |  | -		return res.data
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	// 访问资源异常
 | 
	
		
			
				|  |  | -	if (code === 'UNAVAILABLE') {
 | 
	
		
			
				|  |  | -		uni.showToast({
 | 
	
		
			
				|  |  | -			title: `${message ? message :'访问资源不可用'}`,
 | 
	
		
			
				|  |  | -			icon: 'none'
 | 
	
		
			
				|  |  | -		})
 | 
	
		
			
				|  |  | -		return
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	// 未登录
 | 
	
		
			
				|  |  | -	if (code === 'UNAUTHORIZED') {
 | 
	
		
			
				|  |  | -		uni.navigateTo({
 | 
	
		
			
				|  |  | -			url: '/pages/login/index'
 | 
	
		
			
				|  |  | -		})
 | 
	
		
			
				|  |  | -		return res.data
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	// 身份切换
 | 
	
		
			
				|  |  | -	if (code === 'SCOPE_CHANGED') {
 | 
	
		
			
				|  |  | -		uni.reLaunch({
 | 
	
		
			
				|  |  | -			url: '/pages/login/index'
 | 
	
		
			
				|  |  | -		})
 | 
	
		
			
				|  |  | -		uni.showToast({
 | 
	
		
			
				|  |  | -			title: '您的身份信息已切换',
 | 
	
		
			
				|  |  | -			icon: 'none',
 | 
	
		
			
				|  |  | -		})
 | 
	
		
			
				|  |  | -		return res.data
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	if (code === 'TOKEN_CHANGED') {
 | 
	
		
			
				|  |  | -		uni.showModal({
 | 
	
		
			
				|  |  | -			title: '提示',
 | 
	
		
			
				|  |  | -			content: res.data.messsage,
 | 
	
		
			
				|  |  | -			showCancel: false,
 | 
	
		
			
				|  |  | -			success: (res) => {
 | 
	
		
			
				|  |  | -				if (res.confirm) {
 | 
	
		
			
				|  |  | -					// 小程序用户跳转到我的页面 , 登录状态为未登录
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		})
 | 
	
		
			
				|  |  | -		return res.data
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	// token过期处理
 | 
	
		
			
				|  |  | -	if (code === 'TOKEN_EXPIRED' && !isRefreshRequest(res.config)) {
 | 
	
		
			
				|  |  | -		// 刷新token
 | 
	
		
			
				|  |  | -		const isSuccess = await refreshToken()
 | 
	
		
			
				|  |  | -		if (isSuccess) {
 | 
	
		
			
				|  |  | -			// 重新请求
 | 
	
		
			
				|  |  | -			instance.config.headers.authorization = `Bearer ${getAccessToken()}`
 | 
	
		
			
				|  |  | -			const resp = await instance.request(res.config)
 | 
	
		
			
				|  |  | -			return resp
 | 
	
		
			
				|  |  | -		} else {
 | 
	
		
			
				|  |  | -			// 无权限
 | 
	
		
			
				|  |  | -			store.commit('SET_ACCESS_TOKEN', '')
 | 
	
		
			
				|  |  | -			store.commit('SET_REFRESH_TOKEN', '')
 | 
	
		
			
				|  |  | -			uni.showModal({
 | 
	
		
			
				|  |  | -				title: '提示',
 | 
	
		
			
				|  |  | -				content: "您的登录信息已过期,请重新登录",
 | 
	
		
			
				|  |  | -				showCancel: false,
 | 
	
		
			
				|  |  | -				success: (res) => {
 | 
	
		
			
				|  |  | -					uni.navigateTo({
 | 
	
		
			
				|  |  | -						url: '/pages/login/index'
 | 
	
		
			
				|  |  | -					})
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | -			})
 | 
	
		
			
				|  |  | -			return res.data
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	return res.data
 | 
	
		
			
				|  |  | -}, (err) => {
 | 
	
		
			
				|  |  | -	console.log("->", err)
 | 
	
		
			
				|  |  | -	uni.hideLoading()
 | 
	
		
			
				|  |  | +instance.interceptors.request.use(config => {
 | 
	
		
			
				|  |  | +  uni.showLoading({
 | 
	
		
			
				|  |  | +    title: '加载中',
 | 
	
		
			
				|  |  | +  });
 | 
	
		
			
				|  |  | +  // 带上token 和其他请求头信息
 | 
	
		
			
				|  |  | +  if (store.getters.accessToken) {
 | 
	
		
			
				|  |  | +    config.headers['Authorization'] = `Bearer ${getAccessToken()}`;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  console.log('@@@@config', config);
 | 
	
		
			
				|  |  | +  config.headers = {
 | 
	
		
			
				|  |  | +    ...config.headers,
 | 
	
		
			
				|  |  | +    platform: store.getters.app.system.osName.toUpperCase(),
 | 
	
		
			
				|  |  | +    terminal: 'APPLET', // TODO:
 | 
	
		
			
				|  |  | +    version: store.getters.app.system.appVersion.toUpperCase(),
 | 
	
		
			
				|  |  | +    // scope: store.getters.scope,
 | 
	
		
			
				|  |  | +    device: store.getters.app.system.deviceId,
 | 
	
		
			
				|  |  | +    timestamp: new Date().getTime(),
 | 
	
		
			
				|  |  | +  };
 | 
	
		
			
				|  |  | +  return config;
 | 
	
		
			
				|  |  |  });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +instance.interceptors.response.use(
 | 
	
		
			
				|  |  | +  async res => {
 | 
	
		
			
				|  |  | +    uni.hideLoading();
 | 
	
		
			
				|  |  | +    const { code, data, message } = res.data;
 | 
	
		
			
				|  |  | +    if (data && data.accessToken) {
 | 
	
		
			
				|  |  | +      setAccessToken(data.accessToken);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if (data && data.refreshToken) {
 | 
	
		
			
				|  |  | +      setRefreshToken(data.refreshToken);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    // 未知错误
 | 
	
		
			
				|  |  | +    if (code === 'ERROR') {
 | 
	
		
			
				|  |  | +      uni.showToast({
 | 
	
		
			
				|  |  | +        title: `${message ? message : '未知错误'}`,
 | 
	
		
			
				|  |  | +        icon: 'none',
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      return res.data;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    // 请求错误
 | 
	
		
			
				|  |  | +    if (code === 'BAD_REQUEST') {
 | 
	
		
			
				|  |  | +      uni.showToast({
 | 
	
		
			
				|  |  | +        title: `${message ? message : '请求异常'}`,
 | 
	
		
			
				|  |  | +        icon: 'none',
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      return res.data;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    // 拒绝访问
 | 
	
		
			
				|  |  | +    if (code === 'FORBIDDEN') {
 | 
	
		
			
				|  |  | +      uni.showToast({
 | 
	
		
			
				|  |  | +        title: `${message ? message : '拒绝访问'}`,
 | 
	
		
			
				|  |  | +        icon: 'none',
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      return;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    // 请求参数异常
 | 
	
		
			
				|  |  | +    if (code === 'PARAMETER_INVALID') {
 | 
	
		
			
				|  |  | +      const errorTextList = Object.keys(res.data.data).map(key => {
 | 
	
		
			
				|  |  | +        return res.data.data[key];
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      uni.showToast({
 | 
	
		
			
				|  |  | +        title: errorTextList.join(','),
 | 
	
		
			
				|  |  | +        icon: 'none',
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      return res.data;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    // 访问资源异常
 | 
	
		
			
				|  |  | +    if (code === 'UNAVAILABLE') {
 | 
	
		
			
				|  |  | +      uni.showToast({
 | 
	
		
			
				|  |  | +        title: `${message ? message : '访问资源不可用'}`,
 | 
	
		
			
				|  |  | +        icon: 'none',
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      return;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    // 未登录
 | 
	
		
			
				|  |  | +    if (code === 'UNAUTHORIZED') {
 | 
	
		
			
				|  |  | +      uni.navigateTo({
 | 
	
		
			
				|  |  | +        url: '/pages/login/index',
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      return res.data;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    // 身份切换
 | 
	
		
			
				|  |  | +    if (code === 'SCOPE_CHANGED') {
 | 
	
		
			
				|  |  | +      uni.reLaunch({
 | 
	
		
			
				|  |  | +        url: '/pages/login/index',
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      uni.showToast({
 | 
	
		
			
				|  |  | +        title: '您的身份信息已切换',
 | 
	
		
			
				|  |  | +        icon: 'none',
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      return res.data;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if (code === 'TOKEN_CHANGED') {
 | 
	
		
			
				|  |  | +      uni.showModal({
 | 
	
		
			
				|  |  | +        title: '提示',
 | 
	
		
			
				|  |  | +        content: res.data.messsage,
 | 
	
		
			
				|  |  | +        showCancel: false,
 | 
	
		
			
				|  |  | +        success: res => {
 | 
	
		
			
				|  |  | +          if (res.confirm) {
 | 
	
		
			
				|  |  | +            // 小程序用户跳转到我的页面 , 登录状态为未登录
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      return res.data;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    // token过期处理
 | 
	
		
			
				|  |  | +    if (code === 'TOKEN_EXPIRED' && !isRefreshRequest(res.config)) {
 | 
	
		
			
				|  |  | +      // 刷新token
 | 
	
		
			
				|  |  | +      const isSuccess = await refreshToken();
 | 
	
		
			
				|  |  | +      if (isSuccess) {
 | 
	
		
			
				|  |  | +        // 重新请求
 | 
	
		
			
				|  |  | +        instance.config.headers.authorization = `Bearer ${getAccessToken()}`;
 | 
	
		
			
				|  |  | +        const resp = await instance.request(res.config);
 | 
	
		
			
				|  |  | +        return resp;
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        // 无权限
 | 
	
		
			
				|  |  | +        store.commit('SET_ACCESS_TOKEN', '');
 | 
	
		
			
				|  |  | +        store.commit('SET_REFRESH_TOKEN', '');
 | 
	
		
			
				|  |  | +        uni.showModal({
 | 
	
		
			
				|  |  | +          title: '提示',
 | 
	
		
			
				|  |  | +          content: '您的登录信息已过期,请重新登录',
 | 
	
		
			
				|  |  | +          showCancel: false,
 | 
	
		
			
				|  |  | +          success: res => {
 | 
	
		
			
				|  |  | +            uni.navigateTo({
 | 
	
		
			
				|  |  | +              url: '/pages/login/index',
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +        return res.data;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return res.data;
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  err => {
 | 
	
		
			
				|  |  | +    console.log('->', err);
 | 
	
		
			
				|  |  | +    uni.hideLoading();
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  export default instance;
 |