/* pages/teacher/count/count.wxss */ /* ===== Tab 切换 ===== */ .report-tabs { display: flex; margin: 24rpx 30rpx 0; background-color: #EAF4FF; border-radius: 60rpx; padding: 6rpx; box-sizing: border-box; } .report-tab-item { flex: 1; height: 68rpx; display: flex; align-items: center; justify-content: center; border-radius: 54rpx; font-size: 28rpx; color: #26A5F6; transition: all 0.25s; } .report-tab-active { background: linear-gradient(135deg, #26A5F6 0%, #1478D4 100%); color: #fff; font-weight: bold; box-shadow: 0 4rpx 16rpx rgba(38, 165, 246, 0.35); } /* ===== 心率图例 ===== */ .hr-legend { display: flex; justify-content: flex-end; gap: 30rpx; margin-top: 16rpx; } .hr-legend-item { display: flex; align-items: center; font-size: 22rpx; color: #666; } .hr-legend-line { width: 36rpx; height: 3rpx; margin-right: 10rpx; border-radius: 2rpx; } .hr-legend-moderate { background-color: #FFA30C; } .hr-legend-high { background-color: #FF4949; } /* ===== 心率统计卡片 ===== */ .stat-grid { display: flex; flex-wrap: wrap; gap: 16rpx; justify-content: space-evenly; margin: 24rpx 30rpx; } .stat-card { width: calc(50% - 20rpx); border-radius: 28rpx; padding: 30rpx 26rpx 28rpx; box-sizing: border-box; display: flex; flex-direction: column; gap: 12rpx; position: relative; overflow: hidden; box-shadow: 0 8rpx 28rpx rgba(0,0,0,0.13); } .stat-card-1 { background: linear-gradient(135deg, #ff5f6d 0%, #ffc371 100%); } .stat-card-2 { background: linear-gradient(135deg, #0fd850 0%, #00c3a9 100%); } .stat-card-3 { background: linear-gradient(135deg, #2980b9 0%, #6dd5fa 100%); } .stat-card-4 { background: linear-gradient(135deg, #7f7fd5 0%, #86a8e7 100%); } .stat-card-bar { position: absolute; width: 180rpx; height: 180rpx; border-radius: 50%; background: rgba(255,255,255,0.13); bottom: -50rpx; right: -40rpx; } .stat-card-label { font-size: 24rpx; color: rgba(255,255,255,0.88); } .stat-card-value { font-size: 38rpx; font-weight: bold; color: #fff; word-break: break-all; line-height: 1.2; text-shadow: 0 2rpx 8rpx rgba(0,0,0,0.12); } /* ===== 体测报告 header ===== */ .fitness-header { display: flex; align-items: center; justify-content: space-between; margin: 30rpx 30rpx 16rpx; } .fitness-class-picker { flex: 1; margin-right: 20rpx; } .fitness-picker-btn { display: flex; align-items: center; justify-content: center; height: 72rpx; background: linear-gradient(135deg, #26A5F6 0%, #1478D4 100%); border-radius: 50rpx; padding: 0 24rpx; box-shadow: 0 4rpx 16rpx rgba(38, 165, 246, 0.3); } .fitness-picker-btn text { color: #fff; font-size: 26rpx; font-weight: bold; flex: 1; text-align: center; } .picker-icon { display: none; } .picker-arrow { width: 24rpx; height: 24rpx; filter: brightness(10); } .fitness-count-badge { background-color: #EAF4FF; border: 2rpx solid #26A5F6; border-radius: 30rpx; padding: 8rpx 24rpx; white-space: nowrap; } .fitness-count-badge text { font-size: 24rpx; color: #26A5F6; } /* ===== 体测学生卡片 ===== */ .fitness-student-card { display: flex; align-items: center; background-color: #fff; border-radius: 20rpx; margin: 18rpx 30rpx; padding: 24rpx 28rpx; box-shadow: 0 4rpx 20rpx rgba(38, 165, 246, 0.08); border-left: 6rpx solid #26A5F6; } .fsc-avatar-wrap { width: 88rpx; height: 88rpx; border-radius: 50%; background: linear-gradient(135deg, #74C7FF 0%, #26A5F6 100%); padding: 4rpx; box-sizing: border-box; flex-shrink: 0; } .fsc-avatar { width: 100%; height: 100%; border-radius: 50%; border: 3rpx solid #fff; background-color: #e8f5ff; } .fsc-info { flex: 1; margin-left: 24rpx; } .fsc-name-row { display: flex; align-items: center; } .fsc-name { font-size: 30rpx; font-weight: bold; color: #222; } .fsc-sex { width: 36rpx; height: 36rpx; margin-left: 12rpx; } .fsc-meta { margin-top: 8rpx; } .fsc-no { font-size: 22rpx; color: #999; } .fsc-arrow { flex-shrink: 0; margin-left: 12rpx; } /* ===== 课堂报告骨架屏 ===== */ @keyframes cs-shimmer { 0% { background-position: -750rpx 0; } 100% { background-position: 750rpx 0; } } .course-skeleton { padding: 0 30rpx 40rpx; margin-top: 45rpx; } .cs-chart-wrap { background: #fff; border-radius: 24rpx; padding: 24rpx 20rpx; margin-bottom: 24rpx; box-shadow: 0 4rpx 16rpx rgba(0,0,0,0.06); } .cs-chart-label { width: 80rpx; height: 28rpx; border-radius: 8rpx; margin-bottom: 20rpx; background: linear-gradient(90deg, #f0f0f0 25%, #e8e8e8 50%, #f0f0f0 75%); background-size: 750rpx 100%; animation: cs-shimmer 1.4s infinite linear; } .cs-chart { height: 280rpx; border-radius: 16rpx; background: linear-gradient(90deg, #f0f0f0 25%, #e8e8e8 50%, #f0f0f0 75%); background-size: 750rpx 100%; animation: cs-shimmer 1.4s infinite linear; } .cs-grid { display: flex; flex-wrap: wrap; gap: 16rpx; justify-content: space-evenly; margin-bottom: 32rpx; } .cs-card { width: calc(50% - 20rpx); height: 140rpx; border-radius: 28rpx; background: linear-gradient(90deg, #f0f0f0 25%, #e8e8e8 50%, #f0f0f0 75%); background-size: 750rpx 100%; animation: cs-shimmer 1.4s infinite linear; } .cs-list-title { width: 160rpx; height: 32rpx; border-radius: 8rpx; margin-bottom: 24rpx; background: linear-gradient(90deg, #f0f0f0 25%, #e8e8e8 50%, #f0f0f0 75%); background-size: 750rpx 100%; animation: cs-shimmer 1.4s infinite linear; } .cs-row { height: 100rpx; border-radius: 16rpx; margin-bottom: 16rpx; background: linear-gradient(90deg, #f0f0f0 25%, #e8e8e8 50%, #f0f0f0 75%); background-size: 750rpx 100%; animation: cs-shimmer 1.4s 0.1s infinite linear; } /* ===== 加载中 ===== */ .fitness-loading { display: flex; flex-direction: column; align-items: center; padding: 80rpx 0; color: #26A5F6; font-size: 26rpx; } /* ===== 空状态 ===== */ .fitness-empty { display: flex; flex-direction: column; align-items: center; padding: 120rpx 0 60rpx; color: #bbb; font-size: 26rpx; } .fitness-empty-icon { font-size: 80rpx; margin-bottom: 20rpx; } .card{ background-color: #fff; box-shadow: 0 0 10rpx rgb(223, 222, 222); border-radius: 20rpx; margin: 28rpx 30rpx; box-sizing: border-box; display: flex; padding: 24rpx 40rpx 24rpx 30rpx; justify-content: space-between; } .left{ display: flex; align-items: center; font-size: 26rpx; } .img{ width: 60rpx; height: 60rpx; border-radius: 50%; margin-right: 16rpx; } .card1{ padding: 56rpx 40rpx; color: #333333; font-size: 24rpx; justify-content: space-between; align-items: center; } .num{ font-weight: bold; font-size: 60rpx; } .all-item{ display: flex; align-items: center; flex-direction: column; justify-content: center; } .all-item image{ width: 40rpx; height: 40rpx; margin-bottom: 20rpx; } .tab{ display: flex; padding: 0 50rpx; margin: 30rpx 0; justify-content: space-between; } .tab-item{ /* padding: 8rpx 24rpx 8rpx 30rpx; */ height: 54rpx; box-sizing: border-box; width: 100%; border: 2rpx solid #26A5F6; border-radius: 50rpx; font-size: 24rpx; color: #26A5F6; background-color: #fff; display: flex; align-items: center; justify-content: center; } .tab-item image{ width: 20rpx; height: 20rpx; margin-left: 16rpx; margin-bottom: -2rpx; } .nothing{ margin-top: 100rpx; text-align: center; } .pickerY{ width: 80%; margin: auto; margin-top: 40rpx; } .item2{ justify-content: center; } .table-t{ display: flex; margin: 0 30rpx; } .table-t view{ display: flex; align-items: center; justify-content: center; height: 80rpx; flex: 1; font-size: 26rpx; border: 2rpx solid rgba(0, 0, 0, 0.671); } .no-b{ border-bottom: none !important; } .no-r{ border-right: none !important; } .table-t view:last-child{ flex: 2; } .tp{ margin-top: 50rpx; } .title{ font-weight: bold; font-size: 28rpx; display: flex; align-items: center; margin-top: 60rpx; margin-left: 30rpx; } .title-before{ height: 24rpx; border-radius: 6rpx; width: 6rpx; margin-right: 16rpx; background:linear-gradient(180.00deg, rgb(38, 165, 246),rgba(38, 165, 246, 0) 100%) } .footer{ margin-bottom: 80rpx; padding-top: 20rpx; display: flex; } .footer button{ width: 35%; } .footer button:last-child{ background-color: #26A5F6; } .modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); display: flex; justify-content: center; align-items: center; } .modal-content { width: 80%; max-width: 500px; background-color: #fff; border-radius: 8px; padding: 20px; position: relative; } .modal-scroll { max-height: 60vh; overflow-y: auto; } .list-item { width: 90%; height: 70rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx rgba(223, 222, 222, 0.986); border: 2rpx solid #fff; box-sizing: border-box; margin: 0 auto; margin-top: 30rpx; display: flex; align-items: center; justify-content: center; position: relative; } .loading, .no-more { text-align: center; padding: 10px; color: #888; } .close-button { position: absolute; top: 10px; right: 10px; } .isClick{ border: 2rpx solid #26A5F6; } .clickIcon{ position: absolute; top: 0; right: 0; background-color: #26A5F6; border-radius: 0 20rpx 0 18rpx; width: 60rpx; display: flex; align-items: center; justify-content: center; /* padding: 0 16rpx; */ } .sex{ width: 40rpx; margin-left: 20rpx; margin-right: 20rpx; height: 40rpx; } .charts{ width: 330px; height: 320px; } .canvasCard{ margin-top: 14rpx; display: block; font-size: 26rpx; } .heart-box{ display: flex; box-sizing: border-box; padding: 0 30rpx; } .heart-item{ flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; background-color: rgba(214, 114, 114, 0.5); border-radius: 20rpx; height: 130rpx; margin: 0 20rpx; /* box-shadow: 0 0 10rpx rgb(223, 222, 222); */ padding-top: 10rpx; color: #fff; } /* .heart-item:nth-child(1){ box-shadow: 0 0 10rpx rgba(200, 85, 85, 0.5); } .heart-item:nth-child(3){ box-shadow: 0 0 10rpx rgba(114, 214, 156, 0.5); } */ .heart-min{ background-color: rgba(146, 146, 146,.5); } .heart-max{ background-color: rgba(92, 200, 85,.5); } .heart-text1{ color: rgb(14, 172, 3); font-size: 38rpx; } .heart-text2{ color: rgb(80, 80, 80); font-size: 38rpx; } .heart-text3{ color: rgb(211, 13, 13); font-size: 38rpx; } /* ===== page polish ===== */ .page-content { min-height: 100vh; /* background: #f5f8fb; */ /* padding-bottom: 48rpx; */ padding-bottom: 300rpx; box-sizing: border-box; } .section-title { display: flex; align-items: center; margin: 44rpx 30rpx 18rpx; font-size: 32rpx; font-weight: 700; color: #1f2d3d; } .section-title-line { width: 8rpx; height: 30rpx; border-radius: 8rpx; margin-right: 14rpx; background: linear-gradient(180deg, #26A5F6 0%, #7bd46d 100%); } .card { border-radius: 18rpx; box-shadow: 0 10rpx 30rpx rgba(31, 45, 61, 0.07); border: 1rpx solid rgba(38, 165, 246, 0.06); } .card1 { margin-top: 24rpx; padding: 44rpx 28rpx; background: linear-gradient(135deg, #ffffff 0%, #eef8ff 100%); } .all-item { min-width: 96rpx; text-align: center; } .all-item view { line-height: 1.35; } .tab { padding: 0 30rpx; gap: 16rpx; } .tab picker { flex: 1; } .tab-item { min-width: 0; height: 62rpx; padding: 0 18rpx; box-shadow: 0 6rpx 18rpx rgba(38, 165, 246, 0.08); } .pickerY { width: auto; margin: 18rpx 30rpx 0; height: 68rpx; font-size: 26rpx; font-weight: 600; } .title { margin-top: 42rpx; color: #1f2d3d; } .canvasCard { padding: 28rpx 24rpx 18rpx; } .charts { margin: 0 auto; } .stat-grid { justify-content: space-between; } .stat-card { border-radius: 18rpx; min-height: 150rpx; } .fitness-student-card { border-radius: 18rpx; box-shadow: 0 10rpx 26rpx rgba(31, 45, 61, 0.08); } .loading-dot { width: 18rpx; height: 18rpx; border-radius: 50%; margin-bottom: 16rpx; background: #26A5F6; box-shadow: -28rpx 0 0 rgba(38, 165, 246, 0.35), 28rpx 0 0 rgba(38, 165, 246, 0.35); } .report-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; margin: 34rpx 30rpx; min-height: 300rpx; background: #fff; border-radius: 18rpx; box-shadow: 0 10rpx 30rpx rgba(31, 45, 61, 0.07); color: #9aa7b2; font-size: 26rpx; } .report-empty-small { min-height: 180rpx; } .report-empty-icon { width: 96rpx; height: 96rpx; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 20rpx; background: #eef8ff; color: #26A5F6; font-size: 24rpx; font-weight: 600; }