Sfoglia il codice sorgente

feat(frontend): 首页能量沙盘门禁引导卡 - 未测评时显示GateLock (sandbox-gate)

- index-home 接入 GateLock:loadSandboxData 处理 locked 分支,锁定态渲染引导卡而非空沙盘
- gate-lock SELF_CHECK 按钮文案对齐五维基础能量检测

Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
E2E Test Bot 1 mese fa
parent
commit
2fb3a40788

+ 1 - 1
cfc-frontend/components/gate-lock.vue

@@ -43,7 +43,7 @@ export default {
     },
     btnText: function() {
       var map = {
-        SELF_CHECK: '完成五维自检,解锁个人沙盘',
+        SELF_CHECK: '完成五维基础能量检测,解锁能量沙盘',
         INVITE_FAMILY: '邀请家人加入,解锁全家沙盘',
         CREATE_FAMILY_MEMBER: '创建孩子账号,解锁微行动',
         PURCHASE: '去商城逛逛',

+ 18 - 3
cfc-frontend/pages/index-home/index.vue

@@ -63,9 +63,10 @@
       :intent="userIntent"
       @action="handleJourneyAction" />
 
-    <!-- 能量沙盘 — Canvas 五行星图 -->
+    <!-- 能量沙盘 — Canvas 五行星图(未测评时显示引导卡) -->
+    <GateLock v-if="sandboxLocked && sandboxLockGate" :gate="sandboxLockGate" />
     <WuxingSandbox
-      v-if="sandboxData"
+      v-else-if="sandboxData"
       mode="live"
       :scores="sandboxScores"
       :overallScore="sandboxData.overallScore || 0"
@@ -338,6 +339,7 @@
 <script>
 import store from '../../store/index.js'
 import WuxingSandbox from '../../components/wuxing-sandbox.vue'
+import GateLock from '../../components/gate-lock.vue'
 import PageBanner from '../../components/PageBanner.vue'
 import FamilyFeed from '../../components/FamilyFeed.vue'
 import DimensionProducts from '../../components/DimensionProducts.vue'
@@ -354,6 +356,7 @@ export default {
   components: {
     PageBanner,
     WuxingSandbox,
+    GateLock,
     FamilyFeed,
     DimensionProducts,
     ArticleBookshelf,
@@ -408,6 +411,8 @@ export default {
       membersChecked: false,
       selectedMemberId: null,
       sandboxData: null,
+      sandboxLocked: false,
+      sandboxLockGate: null,
       articles: [],
       children: [],
       currentChildId: null,
@@ -561,7 +566,17 @@ export default {
       var self = this
       getFamilyEnergySandbox().then(function(res) {
         if (res && res.data) {
-          self.sandboxData = res.data
+          var d = res.data
+          if (d.locked) {
+            // 未解锁:显示引导卡(GateLock 渲染自检引导按钮)
+            self.sandboxLocked = true
+            self.sandboxLockGate = d.gate || null
+            self.sandboxData = null
+          } else {
+            self.sandboxLocked = false
+            self.sandboxLockGate = null
+            self.sandboxData = d
+          }
           self._splashReady = true
           self._tryHideSplash()
         }