Explorar o código

✨ 个人中心:登录切换到自己的逻辑

YunaiV hai 1 ano
pai
achega
f0e8ff1f87

+ 11 - 7
pages/public/setting.vue

@@ -52,7 +52,6 @@
         />
       </uni-list>
     </view>
-    <!-- TODO 芋艿:统一的配置界面 -->
     <view class="set-footer ss-flex-col ss-row-center ss-col-center">
       <view class="agreement-box ss-flex ss-col-center ss-m-b-40">
         <view class="ss-flex ss-col-center ss-m-b-10">
@@ -99,6 +98,7 @@
 <script setup>
   import sheep from '@/sheep';
   import { computed, reactive } from 'vue';
+  import AuthUtil from '@/sheep/api/member/auth';
 
   const appInfo = computed(() => sheep.$store('app').info);
   const isLogin = computed(() => sheep.$store('user').isLogin);
@@ -123,10 +123,12 @@
         if (!res.confirm) {
           return;
         }
-        const result = await sheep.$store('user').logout();
-        if (result) {
-          sheep.$router.go('/pages/index/user');
+        const { code } = await AuthUtil.logout();
+        if (code !== 0) {
+          return;
         }
+        sheep.$store('user').logout();
+        sheep.$router.go('/pages/index/user');
       },
     });
   }
@@ -140,10 +142,12 @@
         if (!res.confirm) {
           return;
         }
-        const result = await sheep.$store('user').logout();
-        if (result) {
-          sheep.$router.go('/pages/index/user');
+        const { code } = await AuthUtil.logout();
+        if (code !== 0) {
+          return;
         }
+        sheep.$store('user').logout();
+        sheep.$router.go('/pages/index/user');
       },
     });
   }

+ 0 - 10
sheep/api/data.js

@@ -1,10 +0,0 @@
-import request from '@/sheep/request';
-import request2 from '@/sheep/request2';
-
-export default {
-  faq: () =>
-    request({
-      url: 'data/faq',
-      method: 'GET',
-    }),
-};

+ 8 - 9
sheep/api/trade/order.js

@@ -1,4 +1,3 @@
-import request2 from '@/sheep/request2';
 import request from '@/sheep/request';
 
 const OrderApi = {
@@ -26,14 +25,14 @@ const OrderApi = {
     const queryString = Object.keys(data2)
       .map((key) => key + '=' + data2[key])
       .join('&');
-    return request2({
+    return request({
       url: `trade/order/settlement?${queryString}`,
       method: 'GET',
     });
   },
   // 创建订单
   createOrder: (data) => {
-    return request2({
+    return request({
       url: `trade/order/create`,
       method: 'POST',
       data,
@@ -41,7 +40,7 @@ const OrderApi = {
   },
   // 获得订单
   getOrder: (id) => {
-    return request2({
+    return request({
       url: `trade/order/get-detail`,
       method: 'GET',
       params: {
@@ -62,7 +61,7 @@ const OrderApi = {
   },
   // 确认收货
   receiveOrder: (id) => {
-    return request2({
+    return request({
       url: `/app-api/trade/order/receive`,
       method: 'PUT',
       params: {
@@ -72,7 +71,7 @@ const OrderApi = {
   },
   // 取消订单
   cancelOrder: (id) => {
-    return request2({
+    return request({
       url: `/app-api/trade/order/cancel`,
       method: 'DELETE',
       params: {
@@ -82,7 +81,7 @@ const OrderApi = {
   },
   // 删除订单
   deleteOrder: (id) => {
-    return request2({
+    return request({
       url: `/app-api/trade/order/delete`,
       method: 'DELETE',
       params: {
@@ -92,7 +91,7 @@ const OrderApi = {
   },
   // 获得交易订单数量
   getOrderCount: () => {
-    return request2({
+    return request({
       url: '/app-api/trade/order/get-count',
       method: 'GET',
       custom: {
@@ -103,7 +102,7 @@ const OrderApi = {
   },
   // 创建单个评论
   createOrderItemComment: (data) => {
-    return request2({
+    return request({
       url: `/app-api/trade/order/item/create-comment`,
       method: 'POST',
       data,

+ 1 - 1
sheep/components/s-wallet-card/s-wallet-card.vue

@@ -12,7 +12,7 @@
 		<view class="menu-item ss-flex-1 ss-flex-col ss-row-center ss-col-center"
 			@tap="sheep.$router.go('/pages/user/wallet/score')">
 			<view class="value-box ss-flex ss-col-bottom">
-				<view class="value-text">{{ userInfo.point || '0.00' }}</view>
+				<view class="value-text">{{ userInfo.point || 0 }}</view>
 				<view class="unit-text ss-m-l-6">个</view>
 			</view>
 			<view class="menu-title ss-m-t-28">积分</view>

+ 2 - 7
sheep/request/index.js

@@ -95,7 +95,6 @@ http.interceptors.request.use(
 			config.header['Accept'] = '*/*'
 			config.header['tenant-id'] = '1';
       config.header['terminal'] = '20';
-			config.header['Authorization'] = 'Bearer test247';
 		}
 		return config;
 	},
@@ -109,12 +108,8 @@ http.interceptors.request.use(
  */
 http.interceptors.response.use(
 	(response) => {
-		// 自动设置登陆令牌
-		if (response.header.authorization || response.header.Authorization) {
-			$store('user').setToken(response.header.authorization || response.header.Authorization);
-		}
-    // TODO 芋艿:如果是登录的 API,则自动设置 token
-    if (response.data?.data?.accessToken) {
+    // 约定:如果是 /auth/ 下的 URL 地址,并且返回了 accessToken 说明是登录相关的接口,则自动设置登陆令牌
+    if (response.config.url.indexOf('/member/auth/') >= 0 && response.data?.data?.accessToken) {
       $store('user').setToken(response.data.data.accessToken);
     }
 

+ 1 - 1
sheep/request2/index.js

@@ -152,7 +152,7 @@ http.interceptors.response.use(
 					} else {
 						errorMessage = '请先登录';
 					}
-					userStore.logout(true);
+					userStore.logout();
 					showAuthModal();
 					break;
 				case 403:

+ 4 - 4
sheep/router/index.js

@@ -58,10 +58,10 @@ const _go = (
   }
 
   // 页面登录拦截
-  // if (nextRoute.meta?.auth && !$store('user').isLogin) {
-  //   showAuthModal();
-  //   return;
-  // }
+  if (nextRoute.meta?.auth && !$store('user').isLogin) {
+    showAuthModal();
+    return;
+  }
 
   url = page;
   if (!isEmpty(query)) {

+ 6 - 3
sheep/store/cart.js

@@ -85,9 +85,12 @@ const cart = defineStore({
       }
     },
 
-    // 清空购物车
-    async emptyList() {
-      await this.delete(this.list.map((item) => item.id));
+    // 清空购物车。注意,仅用于用户退出时,重置数据
+    emptyList() {
+      this.list = [];
+      this.selectedIds = [];
+      this.isAllSelected = true;
+      this.totalPriceSelected = 0;
     },
   },
   persist: {

+ 12 - 17
sheep/store/user.js

@@ -102,7 +102,7 @@ const user = defineStore({
 			if (error === 0) uni.removeStorageSync('shareLog');
 		},
 
-		// 设置token
+		// 设置 token
     // TODO 芋艿:整理下;
     setToken(token = '') {
 			if (token === '') {
@@ -137,22 +137,27 @@ const user = defineStore({
 		},
 
 		// 重置用户默认数据
-    // TODO 芋艿:整理下;
     resetUserData() {
+      // 清空 token
 			this.setToken();
+      // 清空用户相关的缓存
 			this.userInfo = clone(defaultUserInfo);
       this.userWallet = clone(defaultUserWallet);
 			this.numData = cloneDeep(defaultNumData);
+      // 清空购物车的缓存
 			cart().emptyList();
 		},
 
-		// 登录后
+		// 登录后,加载各种信息
     // TODO 芋艿:整理下;
     async loginAfter() {
 			await this.updateUserData();
+
+      // 加载购物车
 			cart().getList();
 			// 登录后设置全局分享参数
 			$share.getShareInfo();
+
 			// 提醒绑定手机号
 			// if (app().platform.bind_mobile && !this.userInfo.verification?.mobile) {
 			// 	showAuthModal('changeMobile');
@@ -168,21 +173,11 @@ const user = defineStore({
 			}
 		},
 
-		// 登出
-    // TODO 芋艿:整理下;
-    async logout(force = false) {
-			if (!force) {
-				const { code } = AuthUtil.logout();
-				if (code === 0) {
-					this.resetUserData();
-				}
-			}
-			if (force) {
-				this.resetUserData();
-			}
-
+		// 登出系统
+    async logout() {
+      this.resetUserData();
 			return !this.isLogin;
-		},
+		}
 	},
 	persist: {
 		enabled: true,