Просмотр исходного кода

feat(shop): 商城页开通会员未登录时先登录,登录后再进入会员开通页

Agnes Agent 1 неделя назад
Родитель
Сommit
448421d7a0
1 измененных файлов с 15 добавлено и 0 удалено
  1. 15 0
      cfc-frontend/pages/shop/index/index.vue

+ 15 - 0
cfc-frontend/pages/shop/index/index.vue

@@ -1,5 +1,7 @@
 <template>
   <view class="container" :style="{ '--font-scale': fontScale }">
+    <!-- 通用登录浮层(未登录点击开通会员时先登录) -->
+    <login-sheet ref="loginSheet" @success="onSheetLoginSuccess" />
     <!-- Member Upgrade Banner -->
     <view v-if="!isMember" class="member-banner" @click="goUpgrade">
       <view class="member-banner-content">
@@ -286,8 +288,21 @@ export default {
       })
     },
     goUpgrade() {
+      // 未登录:先弹出登录浮层,登录成功后再进入会员开通页
+      if (!uni.getStorageSync('token')) {
+        this._pendingUpgrade = true
+        this.openLoginSheet({ redirect: '/pages/membership/upgrade' })
+        return
+      }
       uni.navigateTo({ url: '/pages/membership/upgrade' })
     },
+    // 登录成功回调(login-sheet @success → 全局 mixin onSheetLoginSuccess → 此处)
+    onLoginSuccess() {
+      if (this._pendingUpgrade) {
+        this._pendingUpgrade = false
+        uni.navigateTo({ url: '/pages/membership/upgrade' })
+      }
+    },
     goDetail(id) {
       uni.navigateTo({ url: '/pages/discover-detail/product-detail/product-detail?id=' + id })
     },