|
|
@@ -42,6 +42,13 @@
|
|
|
v-if="isLoggedIn"
|
|
|
dimensionCode="mind"
|
|
|
:sandboxData="sandboxData" />
|
|
|
+ <!-- 心理维度 -->
|
|
|
+ <dimension-sub-dims
|
|
|
+ v-if="isLoggedIn && mindSubDims.length > 0"
|
|
|
+ title="🔥 心理维度"
|
|
|
+ subtitle="情绪与性格的综合评估"
|
|
|
+ accent-color="#FF6B9D"
|
|
|
+ :dims="mindSubDims" />
|
|
|
|
|
|
<!-- 心理报告卡片(登录后可见) -->
|
|
|
<view class="emi-card" v-if="isLoggedIn && emiData">
|
|
|
@@ -160,6 +167,7 @@ import TabTransition from '../../components/tab-transition.vue'
|
|
|
import PageBanner from '../../components/PageBanner.vue'
|
|
|
import DimensionIntroCard from '../../components/DimensionIntroCard.vue'
|
|
|
import RadarChart from '../../components/RadarChart.vue'
|
|
|
+import DimensionSubDims from '../../components/DimensionSubDims.vue'
|
|
|
import FamilyEnergyBar from '../../components/FamilyEnergyBar.vue'
|
|
|
import PsychCrisisBanner from '../../components/PsychCrisisBanner.vue'
|
|
|
import AIFloatingAvatar from '../../components/AIFloatingAvatar.vue'
|
|
|
@@ -171,7 +179,7 @@ import config from '../../config.js'
|
|
|
import { parseDate } from '../../utils/format.js'
|
|
|
|
|
|
export default {
|
|
|
-components: { TabTransition, PageBanner, RadarChart, FamilyEnergyBar, PsychCrisisBanner, AIFloatingAvatar, FamilyTianpanCard, FamilyMemberStrip, DimensionIntroCard },
|
|
|
+components: { TabTransition, PageBanner, RadarChart, DimensionSubDims, FamilyEnergyBar, PsychCrisisBanner, AIFloatingAvatar, FamilyTianpanCard, FamilyMemberStrip, DimensionIntroCard },
|
|
|
data() {
|
|
|
return {
|
|
|
isLoggedIn: false,
|
|
|
@@ -231,6 +239,7 @@ components: { TabTransition, PageBanner, RadarChart, FamilyEnergyBar, PsychCrisi
|
|
|
// 五维组件数据
|
|
|
userName: '',
|
|
|
children: [],
|
|
|
+ mindSubDims: [],
|
|
|
sandboxData: null,
|
|
|
currentView: 'self', // 'self' | 'family'
|
|
|
contactList: [],
|
|
|
@@ -609,6 +618,7 @@ var descList = descMap[this.dominantElement] || descMap.wood
|
|
|
getEmiReport(memberId).then(function(res) {
|
|
|
if (res.code === 200 && res.data) {
|
|
|
self.emiData = res.data
|
|
|
+ self.mindSubDims = (function() { var e = self.emiData || {}; return [{label:'情绪稳定性', score:e.emotionStability||0, desc:'识别、理解和管理情绪的综合能力'}, {label:'开放性', score:e.opennessScore||0, desc:'对新事物的接受程度'}, {label:'尽责性', score:e.conscientiousnessScore||0, desc:'做事有条理的程度'}, {label:'外向性', score:e.extraversionScore||0, desc:'社交活跃度'}, {label:'宜人性', score:e.agreeablenessScore||0, desc:'与人相处的和谐度'}, {label:'神经质', score:e.neuroticismScore||0, desc:'情绪波动程度(反向)'}, {label:'自主性', score:e.driveAutonomy||0, desc:'内在驱动力'}, {label:'胜任感', score:e.driveCompetence||0, desc:'对自己能力的信心'}, {label:'归属感', score:e.driveRelatedness||0, desc:'感受被接纳'}]; })();
|
|
|
}
|
|
|
self.emiLoading = false
|
|
|
}).catch(function() {
|
|
|
@@ -974,6 +984,59 @@ var descList = descMap[this.dominantElement] || descMap.wood
|
|
|
color: rgba(255,255,255,0.8);
|
|
|
line-height: 1.6;
|
|
|
}
|
|
|
+
|
|
|
+/* 子维度评分卡 */
|
|
|
+.subdim-section {
|
|
|
+ margin: 20rpx 30rpx;
|
|
|
+}
|
|
|
+.subdim-cards {
|
|
|
+ background: rgba(255,255,255,0.08);
|
|
|
+ border-radius: 20rpx;
|
|
|
+ overflow: hidden;
|
|
|
+ border: 1rpx solid rgba(255,255,255,0.12);
|
|
|
+}
|
|
|
+.subdim-card {
|
|
|
+ padding: 24rpx 28rpx;
|
|
|
+ border-bottom: 1rpx solid rgba(255,255,255,0.08);
|
|
|
+}
|
|
|
+.subdim-card:last-child {
|
|
|
+ border-bottom: none;
|
|
|
+}
|
|
|
+.subdim-card-left {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 12rpx;
|
|
|
+}
|
|
|
+.subdim-card-label {
|
|
|
+ font-size: 28rpx;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #fff;
|
|
|
+}
|
|
|
+.subdim-card-desc {
|
|
|
+ font-size: 22rpx;
|
|
|
+ color: rgba(255,255,255,0.5);
|
|
|
+ margin-top: 4rpx;
|
|
|
+}
|
|
|
+.subdim-card-right {
|
|
|
+ text-align: right;
|
|
|
+}
|
|
|
+.subdim-card-score {
|
|
|
+ font-size: 36rpx;
|
|
|
+ font-weight: 700;
|
|
|
+}
|
|
|
+.subdim-bar-track {
|
|
|
+ height: 8rpx;
|
|
|
+ background: rgba(255,255,255,0.1);
|
|
|
+ border-radius: 4rpx;
|
|
|
+ overflow: hidden;
|
|
|
+ margin-top: 8rpx;
|
|
|
+}
|
|
|
+.subdim-bar-fill {
|
|
|
+ height: 100%;
|
|
|
+ border-radius: 4rpx;
|
|
|
+ transition: width 0.5s ease;
|
|
|
+}
|
|
|
<style scoped>
|
|
|
.container {
|
|
|
min-height: 100vh;
|