Sfoglia il codice sorgente

chore: auto bump version and changelog [skip ci]

iwt 1 mese fa
parent
commit
6de00bfdc2

+ 125 - 0
cfc-frontend/components/DimensionIntroCard.vue

@@ -0,0 +1,125 @@
+<template>
+  <view class="dim-intro-card" :style="'background:' + bgGradient">
+    <view class="dim-intro-header">
+      <text class="dim-intro-icon">{{ icon }}</text>
+      <view class="dim-intro-text">
+        <text class="dim-intro-title">{{ dimName }}</text>
+        <text class="dim-intro-subtitle">{{ subtitle }}</text>
+      </view>
+    </view>
+    <view class="dim-intro-features">
+      <view class="dim-intro-feature" v-for="(f, i) in features" :key="i">
+        <text class="dim-intro-bullet">●</text>
+        <text class="dim-intro-feature-text">{{ f }}</text>
+      </view>
+    </view>
+    <view class="dim-intro-footer" v-if="learnMoreText">
+      <text class="dim-intro-link" @click="onLearnMore">{{ learnMoreText }}</text>
+    </view>
+  </view>
+</template>
+
+<script>
+var DIM_CONFIG = {
+  body:    { icon: '🌏', name: '身', subtitle: '科学管理全家健康数据', features: ['七维雷达图', '健康报告AI解读', '能量打卡', '精准营养方案'], gradient: 'linear-gradient(135deg, #FFF7ED, rgba(255,140,66,0.12))', color: '#FF8C42' },
+  mind:    { icon: '🔥', name: '心', subtitle: '关注全家心理健康与情绪成长', features: ['EMI心理测评', '情绪趋势追踪', '家庭天盘', '疏导工具'], gradient: 'linear-gradient(135deg, #FFF0F5, rgba(255,107,157,0.12))', color: '#FF6B9D' },
+  wisdom:  { icon: '⚡', name: '智', subtitle: '提升全家认知能力与学习效率', features: ['认知雷达图', '认知训练', '测评预约', '成长档案'], gradient: 'linear-gradient(135deg, #F0F0FF, rgba(99,102,241,0.12))', color: '#6366F1' },
+  action:  { icon: '🌿', name: '行', subtitle: '改善全家关系与沟通能力', features: ['关系质量问卷', '互动记录', '任务协作', '家庭挑战'], gradient: 'linear-gradient(135deg, #F0FFF4, rgba(16,185,129,0.12))', color: '#10B981' },
+  wealth:  { icon: '💧', name: '富', subtitle: '分享价值,收获财富', features: ['财富能量仪表盘', '推广收益统计', '邀请返利', '会员权益'], gradient: 'linear-gradient(135deg, #FFFBEB, rgba(245,158,11,0.12))', color: '#F59E0B' }
+}
+
+export default {
+  name: 'DimensionIntroCard',
+  props: {
+    dimCode: {
+      type: String,
+      required: true,
+      validator: function(v) { return DIM_CONFIG.hasOwnProperty(v) }
+    },
+    learnMoreText: {
+      type: String,
+      default: '了解更多 ›'
+    },
+    learnMoreUrl: {
+      type: String,
+      default: ''
+    }
+  },
+  computed: {
+    dimConfig: function() {
+      return DIM_CONFIG[this.dimCode]
+    },
+    icon: function() { return this.dimConfig.icon },
+    dimName: function() { return this.dimConfig.name },
+    subtitle: function() { return this.dimConfig.subtitle },
+    features: function() { return this.dimConfig.features },
+    bgGradient: function() { return this.dimConfig.gradient }
+  },
+  methods: {
+    onLearnMore: function() {
+      if (this.learnMoreUrl) {
+        uni.navigateTo({ url: this.learnMoreUrl })
+      }
+    }
+  }
+}
+</script>
+
+<style>
+.dim-intro-card {
+  margin: 16rpx 30rpx 0;
+  padding: 24rpx 28rpx;
+  border-radius: 16rpx;
+  box-shadow: 0 2rpx 8rpx rgba(0,0,0,0.04);
+}
+.dim-intro-header {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  margin-bottom: 20rpx;
+}
+.dim-intro-icon {
+  font-size: 48rpx;
+  margin-right: 16rpx;
+}
+.dim-intro-text {
+  flex: 1;
+}
+.dim-intro-title {
+  font-size: 28rpx;
+  font-weight: bold;
+  color: #333;
+  display: block;
+}
+.dim-intro-subtitle {
+  font-size: 22rpx;
+  color: #666;
+  margin-top: 4rpx;
+  display: block;
+}
+.dim-intro-features {
+  margin-bottom: 16rpx;
+}
+.dim-intro-feature {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  margin-bottom: 8rpx;
+}
+.dim-intro-bullet {
+  font-size: 16rpx;
+  color: #999;
+  margin-right: 8rpx;
+}
+.dim-intro-feature-text {
+  font-size: 24rpx;
+  color: #333;
+}
+.dim-intro-footer {
+  text-align: right;
+}
+.dim-intro-link {
+  font-size: 24rpx;
+  color: #999;
+}
+</style>

+ 5 - 1
cfc-frontend/pages/action-detail/member-action-detail.vue

@@ -56,6 +56,9 @@
       @productClick="goProductDetail"
       @productClick="goProductDetail"
       @moreProducts="goMoreProducts" />
       @moreProducts="goMoreProducts" />
 
 
+    <!-- 行维度介绍卡片 -->
+    <DimensionIntroCard dimCode="action" v-if="isLoggedIn" learn-more-url="/pages/action-detail/dimension-intro" />
+
     <!-- 底部占位 -->
     <!-- 底部占位 -->
     <view class="bottom-spacer"></view>
     <view class="bottom-spacer"></view>
   </view>
   </view>
@@ -67,10 +70,11 @@ import FamilyRelationGraph from '../../components/FamilyRelationGraph.vue'
 import DimensionTasks from '../../components/DimensionTasks.vue'
 import DimensionTasks from '../../components/DimensionTasks.vue'
 import DimensionActivities from '../../components/DimensionActivities.vue'
 import DimensionActivities from '../../components/DimensionActivities.vue'
 import DimensionProducts from '../../components/DimensionProducts.vue'
 import DimensionProducts from '../../components/DimensionProducts.vue'
+import DimensionIntroCard from '../../components/DimensionIntroCard.vue'
 import { getEnergyOverview, getFamilyEnergySandbox, getChildren } from '../../utils/api.js'
 import { getEnergyOverview, getFamilyEnergySandbox, getChildren } from '../../utils/api.js'
 
 
 export default {
 export default {
-  components: { FamilyEnergyBar, FamilyRelationGraph, DimensionTasks, DimensionActivities, DimensionProducts },
+  components: { FamilyEnergyBar, FamilyRelationGraph, DimensionTasks, DimensionActivities, DimensionProducts, DimensionIntroCard },
   data() {
   data() {
     return {
     return {
       memberId: null,
       memberId: null,

+ 5 - 1
cfc-frontend/pages/body-detail/index.vue

@@ -95,6 +95,9 @@
 
 
       </view>
       </view>
 
 
+    <!-- 身维度介绍卡片(登录后显示) -->
+    <DimensionIntroCard dimCode="body" v-if="isLoggedIn" learn-more-url="/pages/body-detail/dimension-intro" />
+
     <!-- 底部占位 -->
     <!-- 底部占位 -->
     <view class="bottom-spacer"></view>
     <view class="bottom-spacer"></view>
     <AIFloatingAvatar />
     <AIFloatingAvatar />
@@ -108,11 +111,12 @@ import LoginGuideCard from '../../components/LoginGuideCard.vue'
 import FamilyEnergyBar from '../../components/FamilyEnergyBar.vue'
 import FamilyEnergyBar from '../../components/FamilyEnergyBar.vue'
 import RadarChart from '../../components/RadarChart.vue'
 import RadarChart from '../../components/RadarChart.vue'
 import AIFloatingAvatar from '../../components/AIFloatingAvatar.vue'
 import AIFloatingAvatar from '../../components/AIFloatingAvatar.vue'
+import DimensionIntroCard from '../../components/DimensionIntroCard.vue'
 import FamilyMemberStrip from '../../components/FamilyMemberStrip.vue'
 import FamilyMemberStrip from '../../components/FamilyMemberStrip.vue'
 import { getVisibleSections, getEnergyOverview, getChildren, getFamilyEnergySandbox, getVisibleFamilyMembers, getDimensionOverview } from '../../utils/api.js'
 import { getVisibleSections, getEnergyOverview, getChildren, getFamilyEnergySandbox, getVisibleFamilyMembers, getDimensionOverview } from '../../utils/api.js'
 
 
 export default {
 export default {
-  components: { TabTransition, PageBanner, LoginGuideCard, FamilyEnergyBar, RadarChart, AIFloatingAvatar, FamilyMemberStrip },
+  components: { TabTransition, PageBanner, LoginGuideCard, FamilyEnergyBar, RadarChart, AIFloatingAvatar, FamilyMemberStrip, DimensionIntroCard },
   data() {
   data() {
     return {
     return {
       isLoggedIn: false,
       isLoggedIn: false,

+ 5 - 1
cfc-frontend/pages/mind-detail/index.vue

@@ -133,6 +133,9 @@
       </view>
       </view>
     </view>
     </view>
 
 
+    <!-- 心维度介绍卡片(登录后显示) -->
+    <DimensionIntroCard dimCode="mind" v-if="isLoggedIn" learn-more-url="/pages/mind-detail/dimension-intro" />
+
     <!-- 底部占位 -->
     <!-- 底部占位 -->
     <view class="bottom-spacer"></view>
     <view class="bottom-spacer"></view>
     <AIFloatingAvatar />
     <AIFloatingAvatar />
@@ -143,6 +146,7 @@
 import TabTransition from '../../components/tab-transition.vue'
 import TabTransition from '../../components/tab-transition.vue'
 import PageBanner from '../../components/PageBanner.vue'
 import PageBanner from '../../components/PageBanner.vue'
 import LoginGuideCard from '../../components/LoginGuideCard.vue'
 import LoginGuideCard from '../../components/LoginGuideCard.vue'
+import DimensionIntroCard from '../../components/DimensionIntroCard.vue'
 import RadarChart from '../../components/RadarChart.vue'
 import RadarChart from '../../components/RadarChart.vue'
 import FamilyEnergyBar from '../../components/FamilyEnergyBar.vue'
 import FamilyEnergyBar from '../../components/FamilyEnergyBar.vue'
 import PsychCrisisBanner from '../../components/PsychCrisisBanner.vue'
 import PsychCrisisBanner from '../../components/PsychCrisisBanner.vue'
@@ -154,7 +158,7 @@ import config from '../../config.js'
 import { parseDate } from '../../utils/format.js'
 import { parseDate } from '../../utils/format.js'
 
 
 export default {
 export default {
-components: { TabTransition, PageBanner, RadarChart, LoginGuideCard, FamilyEnergyBar, PsychCrisisBanner, AIFloatingAvatar, FamilyTianpanCard, FamilyMemberStrip },
+components: { TabTransition, PageBanner, RadarChart, LoginGuideCard, FamilyEnergyBar, PsychCrisisBanner, AIFloatingAvatar, FamilyTianpanCard, FamilyMemberStrip, DimensionIntroCard },
   data() {
   data() {
     return {
     return {
       isLoggedIn: false,
       isLoggedIn: false,

+ 7 - 0
cfc-frontend/pages/wealth/index.vue

@@ -179,11 +179,18 @@
           <text>👤 个人中心</text>
           <text>👤 个人中心</text>
           <text class="arrow">›</text>
           <text class="arrow">›</text>
         </view>
         </view>
+        <view class="menu-item" @click="goToPointsLogs">
+          <text>📊 积分记录</text>
+          <text class="arrow">›</text>
+        </view>
         <view class="menu-item logout-item" @click="logout">
         <view class="menu-item logout-item" @click="logout">
           <text>🚪 退出登录</text>
           <text>🚪 退出登录</text>
           <text class="arrow">›</text>
           <text class="arrow">›</text>
         </view>
         </view>
       </view>
       </view>
+
+      <!-- 富维度介绍卡片 -->
+      <DimensionIntroCard dimCode="wealth" v-if="isLoggedIn" learn-more-url="/pages/wealth/dimension-intro" />
     </template>
     </template>
   </view>
   </view>
 </template>
 </template>

+ 6 - 2
cfc-frontend/pages/wisdom-detail/index.vue

@@ -103,11 +103,14 @@
         <text class="action-text">测评预约</text>
         <text class="action-text">测评预约</text>
       </view>
       </view>
       <view class="action-btn" @click="goDanUpload">
       <view class="action-btn" @click="goDanUpload">
-        <text class="action-icon">&#x1F4C4;</text>
+        <text class="action-icon">📄</text>
         <text class="action-text">上传报告</text>
         <text class="action-text">上传报告</text>
       </view>
       </view>
     </view>
     </view>
 
 
+    <!-- 智维度介绍卡片(登录后显示) -->
+    <DimensionIntroCard dimCode="wisdom" v-if="isLoggedIn" learn-more-url="/pages/wisdom-detail/dimension-intro" />
+
     <!-- 底部占位 -->
     <!-- 底部占位 -->
     <view class="bottom-spacer"></view>
     <view class="bottom-spacer"></view>
     <AIFloatingAvatar />
     <AIFloatingAvatar />
@@ -123,11 +126,12 @@ import RadarChart from '../../components/RadarChart.vue'
 import FamilyEnergyBar from '../../components/FamilyEnergyBar.vue'
 import FamilyEnergyBar from '../../components/FamilyEnergyBar.vue'
 import AIFloatingAvatar from '../../components/AIFloatingAvatar.vue'
 import AIFloatingAvatar from '../../components/AIFloatingAvatar.vue'
 import FamilyMemberStrip from '../../components/FamilyMemberStrip.vue'
 import FamilyMemberStrip from '../../components/FamilyMemberStrip.vue'
+import DimensionIntroCard from '../../components/DimensionIntroCard.vue'
 import { getVisibleSections, getChildren, getFamilyEnergySandbox, getAssessmentLatestResult, getDanReportByChild } from '../../utils/api.js'
 import { getVisibleSections, getChildren, getFamilyEnergySandbox, getAssessmentLatestResult, getDanReportByChild } from '../../utils/api.js'
 import { parseDate } from '../../utils/format.js'
 import { parseDate } from '../../utils/format.js'
 
 
 export default {
 export default {
-  components: { TabTransition, PageBanner, LoginGuideCard, RadarChart, FamilyEnergyBar, AIFloatingAvatar, FamilyMemberStrip },
+  components: { TabTransition, PageBanner, LoginGuideCard, RadarChart, FamilyEnergyBar, AIFloatingAvatar, FamilyMemberStrip, DimensionIntroCard },
   data() {
   data() {
     return {
     return {
       isLoggedIn: false,
       isLoggedIn: false,

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-b4ce9f49bd2b3239b5f7d033b02e16376f447b80
+a0b32fb1b12869b625408f4b6f1f3f2ea1c1b2c7

+ 2 - 2
cfc-web/package-lock.json

@@ -1,12 +1,12 @@
 {
 {
   "name": "cfc-web",
   "name": "cfc-web",
-  "version": "1.0.905",
+  "version": "1.0.907",
   "lockfileVersion": 3,
   "lockfileVersion": 3,
   "requires": true,
   "requires": true,
   "packages": {
   "packages": {
     "": {
     "": {
       "name": "cfc-web",
       "name": "cfc-web",
-      "version": "1.0.905",
+      "version": "1.0.907",
       "dependencies": {
       "dependencies": {
         "@wangeditor/editor": "^5.1.23",
         "@wangeditor/editor": "^5.1.23",
         "@wangeditor/editor-for-vue": "^1.0.2",
         "@wangeditor/editor-for-vue": "^1.0.2",

+ 1 - 1
cfc-web/package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "cfc-web",
   "name": "cfc-web",
-  "version": "1.0.906",
+  "version": "1.0.907",
   "private": true,
   "private": true,
   "scripts": {
   "scripts": {
     "dev": "vue-cli-service serve",
     "dev": "vue-cli-service serve",

+ 6 - 0
cfc-web/public/CHANGELOG-v1.0.md

@@ -4,6 +4,12 @@
 
 
 ---
 ---
 
 
+## v1.0.907 (2026-08-09)
+
+### 新功能
+- 登录前页面改版 - 五维品牌定位语+LoginGuideCard升级+我的页跳过入口+富维度商城预览
+
+
 ## v1.0.906 (2026-08-09)
 ## v1.0.906 (2026-08-09)
 
 
 ### Bug 修复
 ### Bug 修复

+ 7 - 1
cfc-web/public/CHANGELOG.md

@@ -1,6 +1,6 @@
 # 更新日志
 # 更新日志
 
 
-> 当前版本: v1.0.906
+> 当前版本: v1.0.907
 
 
 ## 历史版本
 ## 历史版本
 
 
@@ -8,6 +8,12 @@
 
 
 ---
 ---
 
 
+## v1.0.907 (2026-08-09)
+
+### 新功能
+- 登录前页面改版 - 五维品牌定位语+LoginGuideCard升级+我的页跳过入口+富维度商城预览
+
+
 ## v1.0.906 (2026-08-09)
 ## v1.0.906 (2026-08-09)
 
 
 ### Bug 修复
 ### Bug 修复