Files
drl_2/xuexiao/templates/class_detail.html
user9994793890 ee860ce0ae Initial commit
2026-05-29 10:28:07 +08:00

111 lines
5.2 KiB
HTML

{% extends "base.html" %}
{% block title %}班级详情 - 学生课程管理系统{% endblock %}
{% block content %}
<div class="d-flex justify-content-between align-items-center mb-3">
<h4><i class="bi bi-grid"></i> 班级详情 - {{ class_.name }}</h4>
<div>
<a href="{{ url_for('class_attendance', class_id=class_.id) }}" class="btn btn-info"><i class="bi bi-clipboard-check"></i> 录入考勤</a>
<a href="{{ url_for('class_list') }}" class="btn btn-outline-secondary"><i class="bi bi-arrow-left"></i> 返回</a>
</div>
</div>
<!-- 班级信息 -->
<div class="card shadow-sm mb-3">
<div class="card-header bg-info text-white"><i class="bi bi-info-circle"></i> 班级信息</div>
<div class="card-body">
<div class="row">
<div class="col-md-3"><strong>课程:</strong>{{ class_.course.name }}</div>
<div class="col-md-3"><strong>授课老师:</strong>{{ class_.teacher.name }}</div>
<div class="col-md-3"><strong>上课安排:</strong>{{ class_.schedule or '-' }}</div>
<div class="col-md-3"><strong>学员数:</strong>{{ class_.current_students }}/{{ class_.max_students }}</div>
</div>
</div>
</div>
<!-- 学员列表 -->
<div class="card shadow-sm mb-3">
<div class="card-header bg-success text-white d-flex justify-content-between align-items-center">
<span><i class="bi bi-people"></i> 班级学员</span>
</div>
<div class="card-body">
<!-- 添加学员表单 -->
<form method="POST" action="{{ url_for('class_add_student', class_id=class_.id) }}" class="row g-2 mb-3">
<div class="col-md-4">
<select class="form-select" name="student_id">
<option value="">选择学员添加到班级</option>
{% for s in available_students %}
<option value="{{ s.id }}">{{ s.name }} ({{ s.phone }})</option>
{% endfor %}
</select>
</div>
<div class="col-md-2">
<button type="submit" class="btn btn-success"><i class="bi bi-plus"></i> 添加</button>
</div>
</form>
<div class="table-responsive">
<table class="table table-bordered table-hover table-sm">
<thead class="table-light">
<tr><th>学员ID</th><th>姓名</th><th>入班日期</th><th>状态</th><th>操作</th></tr>
</thead>
<tbody>
{% for cs in class_students %}
<tr>
<td>{{ cs.student_id }}</td>
<td>{{ cs.student.name }}</td>
<td>{{ cs.join_date }}</td>
<td>
{% if cs.status == 1 %}<span class="badge bg-success">在读</span>
{% elif cs.status == 2 %}<span class="badge bg-warning">已转出</span>
{% else %}<span class="badge bg-info">已毕业</span>{% endif %}
</td>
<td>
{% if cs.status == 1 %}
<form method="POST" action="{{ url_for('class_remove_student', class_id=class_.id, student_id=cs.student_id) }}" style="display:inline;" onsubmit="return confirm('确定移出该学员?')">
<button type="submit" class="btn btn-sm btn-danger"><i class="bi bi-x"></i> 移出</button>
</form>
{% endif %}
</td>
</tr>
{% endfor %}
{% if not class_students %}
<tr><td colspan="5" class="text-center text-muted">暂无学员</td></tr>
{% endif %}
</tbody>
</table>
</div>
</div>
</div>
<!-- 最近考勤 -->
<div class="card shadow-sm mb-3">
<div class="card-header"><i class="bi bi-clipboard-data"></i> 最近考勤</div>
<div class="card-body">
{% if attendance_records %}
<div class="table-responsive">
<table class="table table-bordered table-hover table-sm">
<thead class="table-light">
<tr><th>日期</th><th>学员</th><th>状态</th><th>备注</th></tr>
</thead>
<tbody>
{% for a in attendance_records %}
<tr>
<td>{{ a.date }}</td>
<td>{{ a.student.name }}</td>
<td>
{% if a.status == 'present' %}<span class="badge bg-success">出勤</span>
{% elif a.status == 'absent' %}<span class="badge bg-danger">缺勤</span>
{% else %}<span class="badge bg-warning">请假</span>{% endif %}
</td>
<td>{{ a.remark or '-' }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% else %}
<p class="text-muted">暂无考勤记录</p>
{% endif %}
</div>
</div>
{% endblock %}