|
@@ -63,6 +63,38 @@
|
|
|
<text class="explain-text">{{ (dualDimension.primary && dualDimension.primary.score || 0) >= 80 ? '学习能力良好,继续保持学习节奏。' : (dualDimension.primary && dualDimension.primary.score || 0) >= 60 ? '学习能力一般,建议多做认知训练。' : '学习能力需要提升,建议进行专业评估。' }}</text>
|
|
<text class="explain-text">{{ (dualDimension.primary && dualDimension.primary.score || 0) >= 80 ? '学习能力良好,继续保持学习节奏。' : (dualDimension.primary && dualDimension.primary.score || 0) >= 60 ? '学习能力一般,建议多做认知训练。' : '学习能力需要提升,建议进行专业评估。' }}</text>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
|
|
+ <!-- ===== 认知强项与提升空间 ===== -->
|
|
|
|
|
+ <view class="section cognitive-insight" v-if="isLoggedIn && cognitiveReport">
|
|
|
|
|
+ <view class="section-header">
|
|
|
|
|
+ <text class="section-title">📈 认知强项与提升</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <template v-if="cogStrengths.length > 0 || cogImproves.length > 0">
|
|
|
|
|
+ <view class="insight-group" v-if="cogStrengths.length > 0">
|
|
|
|
|
+ <text class="insight-group-title">💪 你的强项</text>
|
|
|
|
|
+ <view class="insight-item" v-for="(item, idx) in cogStrengths" :key="'s' + idx">
|
|
|
|
|
+ <text class="insight-item-name">{{ item.label }}</text>
|
|
|
|
|
+ <text class="insight-item-score">{{ item.score }}分</text>
|
|
|
|
|
+ <text class="insight-item-tag tag-strong">强项</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="insight-group" v-if="cogImproves.length > 0">
|
|
|
|
|
+ <text class="insight-group-title">🌱 提升空间</text>
|
|
|
|
|
+ <view class="insight-item" v-for="(item, idx) in cogImproves" :key="'i' + idx">
|
|
|
|
|
+ <text class="insight-item-name">{{ item.label }}</text>
|
|
|
|
|
+ <text class="insight-item-score">{{ item.score }}分</text>
|
|
|
|
|
+ <text class="insight-item-tag tag-improve">待提升</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="insight-tip" v-if="cogStrengths.length > 0 && cogImproves.length > 0">
|
|
|
|
|
+ <text class="insight-tip-text">强项保持,薄弱维建议通过训练中心针对性提升</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <view class="insight-empty" v-else-if="!cognitiveReport || !hasCognitiveScore">
|
|
|
|
|
+ <text class="insight-empty-text">完成认知测评,查看强项与提升建议</text>
|
|
|
|
|
+ <button class="insight-btn" @click="goCognitiveReport">去测评</button>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
<!-- ===== DAN 报告(登录后) ===== -->
|
|
<!-- ===== DAN 报告(登录后) ===== -->
|
|
|
<view class="section" v-if="isLoggedIn">
|
|
<view class="section" v-if="isLoggedIn">
|
|
|
<view class="section-header">
|
|
<view class="section-header">
|
|
@@ -245,6 +277,46 @@ export default {
|
|
|
}
|
|
}
|
|
|
return scores
|
|
return scores
|
|
|
},
|
|
},
|
|
|
|
|
+ /** 认知测评是否已有有效得分(任一维度 > 0) */
|
|
|
|
|
+ hasCognitiveScore: function() {
|
|
|
|
|
+ if (!this.cognitiveReport) return false
|
|
|
|
|
+ var dims = this.cognitiveDimensions
|
|
|
|
|
+ for (var i = 0; i < dims.length; i++) {
|
|
|
|
|
+ var key = dims[i].key
|
|
|
|
|
+ var v = 0
|
|
|
|
|
+ if (key === 'wisdomGrowthMindset') {
|
|
|
|
|
+ v = this.cognitiveScores[this.cognitiveDimensions.length - 1] || 0
|
|
|
|
|
+ } else {
|
|
|
|
|
+ v = this.cognitiveReport[key] || 0
|
|
|
|
|
+ }
|
|
|
|
|
+ if (v > 0) return true
|
|
|
|
|
+ }
|
|
|
|
|
+ return false
|
|
|
|
|
+ },
|
|
|
|
|
+ /** 认知强项:得分 ≥75 的维度 */
|
|
|
|
|
+ cogStrengths: function() {
|
|
|
|
|
+ var dims = this.cognitiveDimensions
|
|
|
|
|
+ var result = []
|
|
|
|
|
+ for (var i = 0; i < dims.length; i++) {
|
|
|
|
|
+ var score = this.cognitiveScores[i] || 0
|
|
|
|
|
+ if (score >= 75) {
|
|
|
|
|
+ result.push({ label: dims[i].label, score: score })
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return result
|
|
|
|
|
+ },
|
|
|
|
|
+ /** 认知提升空间:得分 <60 的维度 */
|
|
|
|
|
+ cogImproves: function() {
|
|
|
|
|
+ var dims = this.cognitiveDimensions
|
|
|
|
|
+ var result = []
|
|
|
|
|
+ for (var i = 0; i < dims.length; i++) {
|
|
|
|
|
+ var score = this.cognitiveScores[i] || 0
|
|
|
|
|
+ if (score > 0 && score < 60) {
|
|
|
|
|
+ result.push({ label: dims[i].label, score: score })
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return result
|
|
|
|
|
+ },
|
|
|
/** 每月引导语 */
|
|
/** 每月引导语 */
|
|
|
monthlyGuidance: function() {
|
|
monthlyGuidance: function() {
|
|
|
var month = new Date().getMonth()
|
|
var month = new Date().getMonth()
|
|
@@ -874,4 +946,79 @@ export default {
|
|
|
line-height: 1.6;
|
|
line-height: 1.6;
|
|
|
margin: 0;
|
|
margin: 0;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+/* ===== 认知强项与提升卡片 ===== */
|
|
|
|
|
+.insight-group {
|
|
|
|
|
+ margin-bottom: 16rpx;
|
|
|
|
|
+}
|
|
|
|
|
+.insight-group-title {
|
|
|
|
|
+ font-size: 26rpx;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #333;
|
|
|
|
|
+ margin-bottom: 10rpx;
|
|
|
|
|
+ display: block;
|
|
|
|
|
+}
|
|
|
|
|
+.insight-item {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding: 12rpx 16rpx;
|
|
|
|
|
+ background: #F8FAFF;
|
|
|
|
|
+ border-radius: 12rpx;
|
|
|
|
|
+ margin-bottom: 8rpx;
|
|
|
|
|
+}
|
|
|
|
|
+.insight-item-name {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ font-size: 26rpx;
|
|
|
|
|
+ color: #333;
|
|
|
|
|
+}
|
|
|
|
|
+.insight-item-score {
|
|
|
|
|
+ font-size: 24rpx;
|
|
|
|
|
+ color: #666;
|
|
|
|
|
+ margin-right: 12rpx;
|
|
|
|
|
+}
|
|
|
|
|
+.insight-item-tag {
|
|
|
|
|
+ font-size: 20rpx;
|
|
|
|
|
+ padding: 4rpx 16rpx;
|
|
|
|
|
+ border-radius: 8rpx;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+}
|
|
|
|
|
+.insight-item-tag.tag-strong {
|
|
|
|
|
+ background: #D1FAE5;
|
|
|
|
|
+ color: #059669;
|
|
|
|
|
+}
|
|
|
|
|
+.insight-item-tag.tag-improve {
|
|
|
|
|
+ background: #FEF3C7;
|
|
|
|
|
+ color: #D97706;
|
|
|
|
|
+}
|
|
|
|
|
+.insight-tip {
|
|
|
|
|
+ padding: 12rpx 16rpx;
|
|
|
|
|
+ background: #EEF2FF;
|
|
|
|
|
+ border-radius: 12rpx;
|
|
|
|
|
+}
|
|
|
|
|
+.insight-tip-text {
|
|
|
|
|
+ font-size: 22rpx;
|
|
|
|
|
+ color: #6366F1;
|
|
|
|
|
+}
|
|
|
|
|
+.insight-empty {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding: 30rpx 0;
|
|
|
|
|
+}
|
|
|
|
|
+.insight-empty-text {
|
|
|
|
|
+ font-size: 24rpx;
|
|
|
|
|
+ color: #999;
|
|
|
|
|
+ margin-bottom: 20rpx;
|
|
|
|
|
+}
|
|
|
|
|
+.insight-btn {
|
|
|
|
|
+ background: linear-gradient(135deg, #6366F1, #818CF8);
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ font-size: 26rpx;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ border: none;
|
|
|
|
|
+ border-radius: 40rpx;
|
|
|
|
|
+ padding: 14rpx 60rpx;
|
|
|
|
|
+ line-height: 1.6;
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|