233 lines
10 KiB
Plaintext
233 lines
10 KiB
Plaintext
<!--pages/teacher/count/count.wxml-->
|
|
<view class="page-content">
|
|
<mp-bar background="linear-gradient(190deg, #49a5fc 0%, #f7f7f7 800rpx, #f7f7f7 100%)" title="统计" color="#fff" back="{{false}}"></mp-bar>
|
|
|
|
<block wx:if="{{!isTrainer}}">
|
|
<view class="card card1">
|
|
<view class="all-item">
|
|
<view class="num">{{total}}</view>
|
|
<view>总人数</view>
|
|
</view>
|
|
<view class="all-item">
|
|
<image src="https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/teacher/cccc.png" mode="" />
|
|
<view>不及格({{rank['不及格'] || 0}})</view>
|
|
</view>
|
|
<view class="all-item">
|
|
<image src="https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/teacher/dddd.png" mode="" />
|
|
<view>及格({{rank['及格'] || 0}})</view>
|
|
</view>
|
|
<view class="all-item">
|
|
<image src="https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/teacher/ssss.png" mode="" />
|
|
<view>良好({{rank['良好'] || 0}})</view>
|
|
</view>
|
|
<view class="all-item">
|
|
<image src="https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/teacher/jjjj.png" mode="" />
|
|
<view>优秀({{rank['优秀'] || 0}})</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="tab">
|
|
<picker style="width: 30%;" range="{{classList}}" range-key="name" bindchange="pickerChange" data-id="classList" data-key="nowClass">
|
|
<view class="tab-item">{{nowClass.name}}
|
|
<image src="https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/teacher/downn-b.png" mode="" />
|
|
</view>
|
|
|
|
</picker>
|
|
<picker style="width: 30%;" range="{{projectList}}" range-key="name" bindchange="pickerChange" data-id="projectList" data-key="nowProject">
|
|
<view class="tab-item">{{nowProject.name || '暂无'}}
|
|
<image src="https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/teacher/downn-b.png" mode="" />
|
|
</view>
|
|
|
|
</picker>
|
|
<picker style="width: 30%;" range="{{gradeList}}" bindchange="pickerChange" data-id="gradeList" data-key="nowGrade">
|
|
<view class="tab-item">{{nowGrade}}
|
|
<image src="https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/teacher/downn-b.png" mode="" />
|
|
</view>
|
|
</picker>
|
|
</view>
|
|
|
|
<view class="card" wx:for="{{studentList}}" wx:key="studentNo" data-item="{{item}}" bind:tap="goDetail">
|
|
<view class="left">
|
|
<image src="{{item.photo == '' ? 'https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/room/avater.png': item.photo}}" class="img" />
|
|
{{item.studentName}}
|
|
</view>
|
|
|
|
<mp-icon icon="arrow" size="{{13}}" color="#8c8c8c"></mp-icon>
|
|
</view>
|
|
|
|
<view wx:if="{{studentList.length == 0}}" class="nothing">暂无数据 ~~</view>
|
|
</block>
|
|
|
|
<block wx:else>
|
|
<!-- Tab 切换 -->
|
|
<view class="report-tabs">
|
|
<view class="report-tab-item {{activeTab === 0 ? 'report-tab-active' : ''}}" bindtap="switchTab" data-tab="{{0}}">
|
|
<text>课堂报告</text>
|
|
</view>
|
|
<view class="report-tab-item {{activeTab === 1 ? 'report-tab-active' : ''}}" bindtap="switchTab" data-tab="{{1}}">
|
|
<text>体测报告</text>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 课堂报告 -->
|
|
<block wx:if="{{activeTab === 0}}">
|
|
<view class="tab-item pickerY" bind:tap="showDialog">{{nowCourse.startingEndingTime}}
|
|
<image src="https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/teacher/downn-b.png" mode="" />
|
|
</view>
|
|
|
|
<!-- 骨架屏 -->
|
|
<block wx:if="{{courseLoading}}">
|
|
<view class="course-skeleton">
|
|
<view class="cs-chart-wrap">
|
|
<view class="cs-chart-label"></view>
|
|
<view class="cs-chart"></view>
|
|
</view>
|
|
<view class="cs-grid">
|
|
<view class="cs-card"></view>
|
|
<view class="cs-card"></view>
|
|
<view class="cs-card"></view>
|
|
<view class="cs-card"></view>
|
|
</view>
|
|
<view class="cs-list-title"></view>
|
|
<view class="cs-row"></view>
|
|
<view class="cs-row"></view>
|
|
<view class="cs-row"></view>
|
|
<view class="cs-row"></view>
|
|
</view>
|
|
</block>
|
|
|
|
<!-- 正式内容 -->
|
|
<block wx:else>
|
|
<view class="title">
|
|
<view class="title-before"></view>心率统计
|
|
</view>
|
|
<view class="card canvasCard" >
|
|
<view>次/分</view>
|
|
<view class="charts" style="width: {{cWidth}}px;height: {{cHeight}}px;">
|
|
<canvas canvas-id="mycanvas" type="2d" id="mycanvas" style="width: {{cWidth}}px;height: {{cHeight}}px;" bindtouchstart="touchstart" bindtouchmove="touchmove" bindtouchend="touchend" />
|
|
</view>
|
|
|
|
<!-- <view class="hr-legend">
|
|
<view class="hr-legend-item">
|
|
<view class="hr-legend-line hr-legend-moderate"></view>
|
|
<text>中等强度 {{nowCourseDetail._moderateHR}}次/分</text>
|
|
</view>
|
|
<view class="hr-legend-item">
|
|
<view class="hr-legend-line hr-legend-high"></view>
|
|
<text>高强度 {{nowCourseDetail._highHR}}次/分</text>
|
|
</view>
|
|
</view> -->
|
|
</view>
|
|
|
|
<view class="stat-grid">
|
|
<view class="stat-card stat-card-1">
|
|
<view class="stat-card-bar"></view>
|
|
<text class="stat-card-label">心率范围</text>
|
|
<text class="stat-card-value">{{nowCourseDetail.heartRange}}</text>
|
|
</view>
|
|
<view class="stat-card stat-card-2">
|
|
<view class="stat-card-bar"></view>
|
|
<text class="stat-card-label">平均心率</text>
|
|
<text class="stat-card-value">{{nowCourseDetail.avgHeart}}</text>
|
|
</view>
|
|
<view class="stat-card stat-card-3">
|
|
<view class="stat-card-bar"></view>
|
|
<text class="stat-card-label">中高强度时长</text>
|
|
<text class="stat-card-value">{{nowCourseDetail.highDuration}}</text>
|
|
</view>
|
|
<view class="stat-card stat-card-4">
|
|
<view class="stat-card-bar"></view>
|
|
<text class="stat-card-label">中高时间占比</text>
|
|
<text class="stat-card-value">{{nowCourseDetail.highRatio}}</text>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="title">
|
|
<view class="title-before"></view>学生列表
|
|
</view>
|
|
|
|
<view class="card" wx:for="{{nowCourseDetail.studentTrainingRecordList}}" wx:key="studentNo" data-item="{{item}}" bind:tap="goStudentList">
|
|
<view class="left">
|
|
<image src="{{item.photo == '' ? 'https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/room/avater.png': item.photo}}" class="img" />
|
|
{{item.studentName}}
|
|
<image class="sex" src="https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/report-icon/sex_{{item.sex}}.png" mode=""/>
|
|
</view>
|
|
<mp-icon icon="arrow" size="{{13}}" color="#8c8c8c"></mp-icon>
|
|
</view>
|
|
</block>
|
|
|
|
<mp-half-screen-dialog bindbuttontap="buttontap" show="{{showDialog}}" title="课堂记录">
|
|
<view slot="desc">
|
|
<scroll-view class="modal-scroll" scroll-y bindscrolltolower="getTrainClass" lower-threshold="50">
|
|
<view class="list">
|
|
<view wx:for="{{courseList}}" wx:key="id" class="list-item {{clickCouse.id == item.id ? 'isClick':''}}" bind:tap="clickCouse" data-item="{{item}}">
|
|
{{ item.startingEndingTime }}
|
|
<view class="clickIcon" wx:if="{{clickCouse.id == item.id}}">
|
|
<mp-icon icon="done" color="#fff" size="{{14}}"></mp-icon>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view wx:if="{{haveMore}}" class="loading">加载中...</view>
|
|
<view wx:if="{{!haveMore}}" class="no-more">没有更多数据了</view>
|
|
</scroll-view>
|
|
</view>
|
|
<view slot="footer" class="footer">
|
|
<button bind:tap="closeDialog">取消</button>
|
|
<button type="primary" bind:tap="sureClickCouse">确定</button>
|
|
</view>
|
|
</mp-half-screen-dialog>
|
|
</block>
|
|
|
|
<!-- 体测报告 -->
|
|
<block wx:if="{{activeTab === 1}}">
|
|
<!-- 班级选择器 -->
|
|
<view class="fitness-header">
|
|
<view class="fitness-class-picker">
|
|
<picker range="{{fitnessClassList}}" range-key="name" bindchange="fitnessPicker">
|
|
<view class="fitness-picker-btn">
|
|
<image src="https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/teacher/downn-b.png" class="picker-icon" />
|
|
<text>{{nowFitnessClass.name || '请选择班级'}}</text>
|
|
<image src="https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/teacher/downn-b.png" class="picker-arrow" />
|
|
</view>
|
|
</picker>
|
|
</view>
|
|
<view class="fitness-count-badge">
|
|
<text>共 {{fitnessStudentList.length}} 人</text>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 加载中 -->
|
|
<view wx:if="{{fitnessLoading}}" class="fitness-loading">
|
|
<view class="loading-dot"></view>
|
|
<text>加载中...</text>
|
|
</view>
|
|
|
|
<!-- 学生列表 -->
|
|
<view wx:elif="{{fitnessStudentList.length > 0}}">
|
|
<view class="fitness-student-card" wx:for="{{fitnessStudentList}}" wx:key="studentNo" bindtap="goFitnessDetail" data-item="{{item}}">
|
|
<view class="fsc-avatar-wrap">
|
|
<image class="fsc-avatar" src="{{item.photo || 'https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/room/avater.png'}}" mode="aspectFill" />
|
|
</view>
|
|
<view class="fsc-info">
|
|
<view class="fsc-name-row">
|
|
<text class="fsc-name">{{item.studentName || item.name}}</text>
|
|
<image wx:if="{{item.sex}}" class="fsc-sex" src="https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/report-icon/sex_{{item.sex}}.png" mode="aspectFit" />
|
|
</view>
|
|
<view class="fsc-meta">
|
|
<text wx:if="{{item.studentNo}}" class="fsc-no">学号:{{item.studentNo}}</text>
|
|
</view>
|
|
</view>
|
|
<view class="fsc-arrow">
|
|
<mp-icon icon="arrow" size="{{14}}" color="#26A5F6"></mp-icon>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 空状态 -->
|
|
<view wx:elif="{{!fitnessLoading}}" class="fitness-empty">
|
|
<view class="fitness-empty-icon">📋</view>
|
|
<text>暂无学生数据</text>
|
|
</view>
|
|
</block>
|
|
</block>
|
|
</view> |