Quellcode durchsuchen

封装 request 请求

YunaiV vor 3 Jahren
Ursprung
Commit
11936dee44
2 geänderte Dateien mit 46 neuen und 3 gelöschten Zeilen
  1. 43 0
      yudao-vue-ui/common/js/request.js
  2. 3 3
      yudao-vue-ui/pages/tabbar/user.vue

+ 43 - 0
yudao-vue-ui/common/js/request.js

@@ -0,0 +1,43 @@
+const BASE_URL = 'http://127.0.0.1:28080/api/';
+import { msg } from './util'
+
+export const request = (options) => {
+	return new Promise((resolve, reject) => {
+		// 发起请求
+		uni.request({
+			url: BASE_URL + options.url,
+			method: options.method || 'GET',
+			data: options.data || {},
+			header: {
+				'Authorization': '' // TODO 芋艿:带 token
+			}
+		}).then(res => {
+			debugger
+			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 > 0) {
+				msg(message);
+				reject(message);
+				return;
+			}
+			resolve(res.data.data);
+		}).catch((err) => {
+			reject(err);
+		})
+	})
+}

+ 3 - 3
yudao-vue-ui/pages/tabbar/user.vue

@@ -19,7 +19,7 @@
 			<!-- 下面的圆弧 -->
 			<image class="user-background-arc-line" src="/static/icon/arc.png" mode="aspectFill"></image>
 		</view>
-		
+
 		<!-- 订单信息 -->
 		<view class="order-wrap">
 			<view class="order-header row" @click="navTo('/pages/order/list?current=0', {login: true})">
@@ -50,7 +50,7 @@
 				</view>
 			</view>
 		</view>
-		
+
 		<!-- 功能入口 -->
 		<view class="option-wrap">
 			<!-- <mix-list-cell icon="icon-iconfontweixin" iconColor="#fa436a" title="我的钱包" @onClick="navTo('/pages/wallet/index', {login: true})"></mix-list-cell> -->
@@ -95,7 +95,7 @@
 	.user-wrapper {
 		position: relative;
 		overflow: hidden;
-		padding-top: calc(var(--status-bar-height) + 52rpx);	
+		padding-top: calc(var(--status-bar-height) + 52rpx);
 		padding-bottom: 6rpx;
 		.user {
 			display: flex;