diff --git a/build_ui/src/views/train/me/student/index.vue b/build_ui/src/views/train/me/student/index.vue index 05e4344d7..849a09adf 100644 --- a/build_ui/src/views/train/me/student/index.vue +++ b/build_ui/src/views/train/me/student/index.vue @@ -227,20 +227,77 @@ - - + +
- 多维能力成长画像(真实能力模型分析) + 个人培训全生命周期客观表现全景(严格展示真实事实,无算法虚假评分)
刷新
-
-
-
- + + + + +
+ 课堂考勤打卡事实 +
+
+

正常出勤打卡:{{ attendanceNormalCount }} 次

+

异常打卡流水:{{ attendanceAbnormalCount }} 次(迟到/早退/请假/缺勤)

+

应出勤总课次:{{ timetableList.length }} 节

+
+
+
+ + + +
+ 班级参训与开班报到 +
+
+

当前参与班级:{{ enrollmentList.length }} 个

+

开班报到确认: + + {{ reportDetail ? '已完成报到' : '待确认报到' }} + +

+

累计已计学时:{{ totalHours }} 小时

+
+
+
+
+ + + + + +
+ 考核成绩状态 +
+ + + +
+
+ + + +
+ 自主实训与学习平台 +
+ + + +
+
+
@@ -291,6 +348,14 @@ export default { totalHours() { if (!this.durationList || this.durationList.length === 0) return 0 return this.durationList.reduce((acc, cur) => acc + Number(cur.totalDurationHours || cur.duration || 0), 0) + }, + attendanceNormalCount() { + if (!this.attendanceList || this.attendanceList.length === 0) return 0 + return this.attendanceList.filter(i => i.checkinStatus === 1).length + }, + attendanceAbnormalCount() { + if (!this.attendanceList || this.attendanceList.length === 0) return 0 + return this.attendanceList.filter(i => i.checkinStatus != null && i.checkinStatus !== 1).length } }, created() { @@ -398,64 +463,15 @@ export default { getMyPortrait() .then(res => { this.portraitData = res.data - // 仅当后端返回真实有效实体且具有 portraitId 时才判定为有数据,杜绝伪造数据 - if (this.portraitData && this.portraitData.portraitId) { - this.hasPortraitData = true - this.$nextTick(() => { - this.renderRadarChart() - }) - } else { - this.hasPortraitData = false - } this.portraitLoading = false }) .catch(() => { - this.hasPortraitData = false + this.portraitData = null this.portraitLoading = false }) }, - renderRadarChart() { - if (!this.$refs.radarChart) return - if (!this.chartInstance) { - this.chartInstance = echarts.init(this.$refs.radarChart) - } - const data = this.portraitData || {} - const option = { - title: { - text: (data.planName ? data.planName + ' · ' : '') + '综合成长能力画像', - left: 'center', - textStyle: { fontSize: 15, color: '#303133' } - }, - tooltip: {}, - radar: { - indicator: [ - { name: '出勤纪律(%)', max: 100 }, - { name: '理论成绩', max: 100 }, - { name: '实操成绩', max: 100 }, - { name: '学时评价', max: 100 } - ], - radius: '65%' - }, - series: [{ - name: '能力评价', - type: 'radar', - data: [{ - value: [ - Number(data.attendanceRate || 0), - Number(data.theoryScore || 0), - Number(data.practicalScore || 0), - Number(data.totalStudyHour || 0) - ], - name: '综合评分' - }] - }] - } - this.chartInstance.setOption(option) - }, handleResize() { - if (this.chartInstance) { - this.chartInstance.resize() - } + // 预留扩展 }, formatEnrollmentStatusText(status) { const map = { 0: '待报到', 1: '已报到', 2: '请假', 3: '退训', 4: '已完成' }