From f7e322d5954b5079b6cb200ff13e7de9687bb0e8 Mon Sep 17 00:00:00 2001
From: ltx <1006158920@qq.com>
Date: Tue, 28 Apr 2026 16:50:36 +0800
Subject: [PATCH] =?UTF-8?q?update:=E8=BF=90=E5=8A=A8=E9=A6=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pages/parent/report/report.wxml | 1 -
pages/teacher/count/count.js | 10 ++--
.../parent/fitness-detail/fitness-detail.js | 2 +-
.../parent/fitness-detail/fitness-detail.wxml | 4 +-
.../student-fitness-detail.js | 52 +++++++++++++++----
.../student-fitness-detail.wxml | 4 +-
6 files changed, 54 insertions(+), 19 deletions(-)
diff --git a/pages/parent/report/report.wxml b/pages/parent/report/report.wxml
index 19b63fd..fd4501d 100644
--- a/pages/parent/report/report.wxml
+++ b/pages/parent/report/report.wxml
@@ -187,7 +187,6 @@
上次成绩
{{selectedFitnessItem.scoreTrendChart.axisY[selectedFitnessItem.scoreTrendChart.axisY.length - 2] || '- -'}} {{selectedFitnessItem.unit}}
-
diff --git a/pages/teacher/count/count.js b/pages/teacher/count/count.js
index 2310b4a..7c0fad3 100644
--- a/pages/teacher/count/count.js
+++ b/pages/teacher/count/count.js
@@ -164,7 +164,7 @@ Page({
pageIndex: this.data.page,
PageSize: 20,
})
- if(!this.data.nowCourse.id && res.data.datas.length > 0){
+ if((!!this.data.nowCourse && !this.data.nowCourse.id) && res.data.datas.length > 0){
const detail = await getClassRoomReportDetails(res.data.datas[0].id)
this.setData({
nowCourseDetail:this.data.nowCourse.id ? this.data.nowCourseDetail: detail.data
@@ -176,7 +176,7 @@ Page({
courseList: refresh ? res.data.datas : [...this.data.courseList, ...res.data.datas],
page: this.data.page + 1,
hasMore: res.data.total > (this.data.page) * 20,
- nowCourse: !this.data.nowCourse.id || refresh ? res.data.datas[0] : this.data.nowCourse,
+ nowCourse: (!!this.data.nowCourse && !this.data.nowCourse.id) || refresh ? res.data.datas[0] : this.data.nowCourse,
})
},
@@ -378,7 +378,11 @@ Page({
hasMore:true
},()=>{
if(this.data.isTrainer){
- this.getTrainClass(true)
+ if(this.data.activeTab === 0){
+ this.getTrainClass(true)
+ }else if(this.data.activeTab === 1){
+ this.getFitnessStudents()
+ }
}else{
this.getClass()
}
diff --git a/subpackage/parent/fitness-detail/fitness-detail.js b/subpackage/parent/fitness-detail/fitness-detail.js
index fe03784..86c2993 100644
--- a/subpackage/parent/fitness-detail/fitness-detail.js
+++ b/subpackage/parent/fitness-detail/fitness-detail.js
@@ -20,7 +20,7 @@ Page({
const fmt = v => (v != null && !isNaN(v)) ? Number(v).toFixed(1) : v
const formattedItem = {
...item,
- lastScore: fmt(item.lastScore),
+ lastScore: fmt(item.scoreTrendChart.axisY.slice(-1)[0]),
classAvgScore: fmt(item.classAvgScore),
schoolAvgScore: fmt(item.schoolAvgScore),
}
diff --git a/subpackage/parent/fitness-detail/fitness-detail.wxml b/subpackage/parent/fitness-detail/fitness-detail.wxml
index 887da09..9d2496a 100644
--- a/subpackage/parent/fitness-detail/fitness-detail.wxml
+++ b/subpackage/parent/fitness-detail/fitness-detail.wxml
@@ -37,13 +37,13 @@
{{item ? item.lastScore : 0}}
-
+
机构平均成绩
diff --git a/subpackage/teacher/student-fitness-detail/student-fitness-detail.js b/subpackage/teacher/student-fitness-detail/student-fitness-detail.js
index bccbb8f..706b18f 100644
--- a/subpackage/teacher/student-fitness-detail/student-fitness-detail.js
+++ b/subpackage/teacher/student-fitness-detail/student-fitness-detail.js
@@ -31,13 +31,28 @@ Page({
this.setData({ studentNo: options.studentNo || '' });
try {
const res = await getReport({ studentNo: options.studentNo });
- const list = (res.data && res.data.categoryScoreList) || [];
+ const rawList = (res.data && res.data.categoryScoreList) || [];
+ const list = rawList.filter(item => !(item.name && item.name.includes('米') && item.name.includes('跑')));
+
+ // 雷达图根据 gradeId 过滤不适用的项目
+ const gradeId = list.length > 0 ? list[0].gradeId : null;
+ let radarList = list;
+ if (gradeId !== null && gradeId !== undefined) {
+ if (gradeId <= 2) {
+ radarList = list.filter(item => item.name !== '一分钟仰卧起坐' && item.name !== '立定跳远');
+ } else if (gradeId > 2 && gradeId <= 6) {
+ radarList = list.filter(item => item.name !== '立定跳远');
+ } else if (gradeId > 6) {
+ radarList = list.filter(item => item.name !== '一分钟跳绳');
+ }
+ }
+
const fitnessItems = list.map(item => ({
...item,
unit: UNIT_MAP[item.name] || '',
}));
this.setData({
- fitnessReport: list,
+ fitnessReport: radarList,
fitnessItems,
}, () => {
// 如果 onReady 已经触发,数据到位后立即绘图
@@ -54,8 +69,9 @@ Page({
onReady() {
const info = wx.getWindowInfo();
const pixelRatio = info.pixelRatio;
- const radarCWidth = info.windowWidth * 0.86;
- const radarCHeight = info.windowWidth * 0.86;
+ const rpxRatio = info.windowWidth / 750;
+ const radarCWidth = Math.floor(info.windowWidth - 2 * 30 * rpxRatio);
+ const radarCHeight = Math.floor(radarCWidth * 1.05);
this.setData({ radarCWidth, radarCHeight, pixelRatio, readyFired: true }, () => {
// 如果数据已经加载完,直接绘图;否则等 onLoad 回调里触发
if (this.data.fitnessReport && this.data.fitnessReport.length > 0) {
@@ -66,9 +82,23 @@ Page({
drawRadarChart(that) {
const list = that.data.fitnessReport || [];
- const categories = list.map(i => i.name);
+ // 长文本自动换行(超过5字在中间插入换行)
+ const categories = list.map(i => {
+ const name = i.name || '';
+ if (name.length > 5) {
+ const mid = Math.ceil(name.length / 2);
+ return name.slice(0, mid) + '\n' + name.slice(mid);
+ }
+ return name;
+ });
const prevData = list.map(i => i.prevScore || 0);
const currentData = list.map(i => i.lastScore || 0);
+ // 本次成绩数据标签:显示分数 + 等级
+ const currentDataLabels = list.map(i => {
+ const score = i.lastScore != null ? i.lastScore : '';
+ const rank = i.rank != null ? i.rank : '';
+ return rank ? score + '\n' + rank : String(score);
+ });
const query = wx.createSelectorQuery().in(that);
query.select('#radarCanvas').fields({ node: true, size: true }).exec(res => {
@@ -84,26 +114,27 @@ Page({
height: that.data.radarCHeight * that.data.pixelRatio,
categories,
series: [
- { name: '上次成绩', data: prevData, color: '#4A90E2' },
- { name: '本次成绩', data: currentData, color: '#E74C3C' },
+ { name: '上次成绩', data: prevData, color: '#4A90E2', dataLabel: false },
+ { name: '本次成绩', data: currentData, color: '#E74C3C', dataLabels: currentDataLabels, textColor: '#E74C3C', textSize: 11 },
],
pixelRatio: that.data.pixelRatio,
animation: true,
+ tapLegend: true,
background: 'rgba(0,0,0,0)',
color: ['#4A90E2', '#E74C3C'],
- padding: [0, 0, 0, 10],
+ padding: [0, 0, 0, 15],
legend: {
show: true,
position: 'bottom',
float: 'center',
fontSize: 12,
lineHeight: 11,
- margin: 5,
+ margin: 0,
itemGap: 20,
},
extra: {
radar: {
- gridType: 'radar',
+ gridType: that.data.fitnessReport.length === 4 ? 'circle' : 'radar',
gridColor: '#CCCCCC',
gridCount: 4,
opacity: 0.15,
@@ -112,6 +143,7 @@ Page({
labelShow: true,
labelColor: '#333',
fontSize: 13,
+ labelMargin: 30,
labelPointShow: false,
max: 100,
},
diff --git a/subpackage/teacher/student-fitness-detail/student-fitness-detail.wxml b/subpackage/teacher/student-fitness-detail/student-fitness-detail.wxml
index 2d4085d..dde0789 100644
--- a/subpackage/teacher/student-fitness-detail/student-fitness-detail.wxml
+++ b/subpackage/teacher/student-fitness-detail/student-fitness-detail.wxml
@@ -53,7 +53,7 @@
上次成绩
{{selectedFitnessItem.prevScore}} {{selectedFitnessItem.unit}}
-
+