| 
									
										
										
										
											2021-11-27 20:09:13 +08:00
										 |  |  |  | import store from '@/store' | 
					
						
							| 
									
										
										
										
											2021-11-26 09:47:23 +08:00
										 |  |  |  | import { msg, getAuthToken } from './util' | 
					
						
							| 
									
										
										
										
											2021-11-25 22:33:28 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-27 20:09:13 +08:00
										 |  |  |  | const BASE_URL = 'http://127.0.0.1:28080/api/'; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-25 22:33:28 +08:00
										 |  |  |  | export const request = (options) => { | 
					
						
							|  |  |  |  | 	return new Promise((resolve, reject) => { | 
					
						
							|  |  |  |  | 		// 发起请求
 | 
					
						
							| 
									
										
										
										
											2021-11-26 09:47:23 +08:00
										 |  |  |  | 		const authToken = getAuthToken(); | 
					
						
							| 
									
										
										
										
											2021-11-25 22:33:28 +08:00
										 |  |  |  | 		uni.request({ | 
					
						
							|  |  |  |  | 			url: BASE_URL + options.url, | 
					
						
							|  |  |  |  | 			method: options.method || 'GET', | 
					
						
							|  |  |  |  | 			data: options.data || {}, | 
					
						
							|  |  |  |  | 			header: { | 
					
						
							| 
									
										
										
										
											2021-12-04 21:09:49 +08:00
										 |  |  |  | 				...options.header, | 
					
						
							| 
									
										
										
										
											2021-11-26 09:47:23 +08:00
										 |  |  |  | 				'Authorization': authToken ? `Bearer ${authToken}` : '' | 
					
						
							| 
									
										
										
										
											2021-11-25 22:33:28 +08:00
										 |  |  |  | 			} | 
					
						
							|  |  |  |  | 		}).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'); | 
					
						
							| 
									
										
										
										
											2021-11-26 07:21:47 +08:00
										 |  |  |  | 				// reject('无效的登录信息');
 | 
					
						
							|  |  |  |  | 				return; | 
					
						
							|  |  |  |  | 			} | 
					
						
							|  |  |  |  | 			// 系统异常
 | 
					
						
							|  |  |  |  | 			if (code === 500) { | 
					
						
							|  |  |  |  | 				msg('系统异常,请稍后重试'); | 
					
						
							|  |  |  |  | 				reject(new Error(message)); | 
					
						
							| 
									
										
										
										
											2021-11-25 22:33:28 +08:00
										 |  |  |  | 				return; | 
					
						
							|  |  |  |  | 			} | 
					
						
							|  |  |  |  | 			// 其它失败情况
 | 
					
						
							|  |  |  |  | 			if (code > 0) { | 
					
						
							|  |  |  |  | 				msg(message); | 
					
						
							| 
									
										
										
										
											2021-11-26 07:21:47 +08:00
										 |  |  |  | 				// 提供 code + msg,可以基于 code 做进一步的处理。当然,一般情况下是不需要的。
 | 
					
						
							|  |  |  |  | 				// 不需要的场景:手机登录时,密码不正确;
 | 
					
						
							|  |  |  |  | 				// 需要的场景:微信登录时,未绑定手机,后端会返回一个 code 码,前端需要基于它跳转到绑定手机界面;
 | 
					
						
							|  |  |  |  | 				reject({ | 
					
						
							|  |  |  |  | 					'code': code, | 
					
						
							|  |  |  |  | 					'msg': message | 
					
						
							|  |  |  |  | 				}); | 
					
						
							| 
									
										
										
										
											2021-11-25 22:33:28 +08:00
										 |  |  |  | 				return; | 
					
						
							|  |  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2021-11-26 07:21:47 +08:00
										 |  |  |  | 			// 处理成功,则只返回成功的 data 数据,不返回 code 和 msg
 | 
					
						
							| 
									
										
										
										
											2021-11-25 22:33:28 +08:00
										 |  |  |  | 			resolve(res.data.data); | 
					
						
							|  |  |  |  | 		}).catch((err) => { | 
					
						
							|  |  |  |  | 			reject(err); | 
					
						
							|  |  |  |  | 		}) | 
					
						
							|  |  |  |  | 	}) | 
					
						
							|  |  |  |  | } |