| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | import store from '@/store'import { msg, getAuthToken } from './util'const BASE_URL = 'http://127.0.0.1:28080/api/';export const request = (options) => {	return new Promise((resolve, reject) => {		// 发起请求		const authToken = getAuthToken();		uni.request({			url: BASE_URL + options.url,			method: options.method || 'GET',			data: options.data || {},			header: {				...options.header,				'Authorization': authToken ? `Bearer ${authToken}` : ''			}		}).then(res => {			res = res[1];			const statusCode = res.statusCode;			if (statusCode !== 200) {				msg('请求失败,请重试');				return;			}						const code = res.data.code;			const message = res.data.msg;			// Token 过期,引导重新登陆			if (code === 401) {				msg('登录信息已过期,请重新登录');				store.commit('logout');				// reject('无效的登录信息');				return;			}			// 系统异常			if (code === 500) {				msg('系统异常,请稍后重试');				reject(new Error(message));				return;			}			// 其它失败情况			if (code > 0) {				msg(message);				// 提供 code + msg,可以基于 code 做进一步的处理。当然,一般情况下是不需要的。				// 不需要的场景:手机登录时,密码不正确;				// 需要的场景:微信登录时,未绑定手机,后端会返回一个 code 码,前端需要基于它跳转到绑定手机界面;				reject({					'code': code,					'msg': message				});				return;			}			// 处理成功,则只返回成功的 data 数据,不返回 code 和 msg			resolve(res.data.data);		}).catch((err) => {			reject(err);		})	})}
 |