{% extends "base.html" %} {% from 'macros/sortable.html' import sort_th %} {% set list_params = {'keyword': keyword or none} %} {% block title %}学员列表 - 学生课程管理系统{% endblock %} {% block extra_css %} {% endblock %} {% block content %}

学员管理 财务视角{% if ledger_period %} · Excel {{ ledger_period }}{% endif %}

{% if current_user.has_permission('student_add') %} 新增学员 {% endif %} {% if current_user.has_permission('student_export') %} 导出 {% endif %}
{% if sort %}{% endif %} {% if sort %}{% endif %}
{% for s in students %} {% set sm = student_summaries.get(s.id) %} {% set fin = student_finance.get(s.id, {}) %} {% else %} {% endfor %}
ID 姓名 来源 {{ sort_th('student_list', 'hours', '剩余课时', sort, order, list_params) }} {{ sort_th('student_list', 'balance', '账户余额', sort, order, list_params, title='按实付折后单价计算的账面余额') }} {{ sort_th('student_list', 'refund', '应退金额', sort, order, list_params, title='按原价单价×剩余正课') }} {{ sort_th('student_list', 'status', '状态', sort, order, list_params, '') }} {{ sort_th('student_list', 'created', '注册时间', sort, order, list_params, '') }} 操作
{{ s.id }} {{ s.name }} {{ s.source or '新学员' }} {% if sm and sm.course_count %} {{ fmt_hours(sm.total_lessons) }} {{ sm.course_count }}门课 {% else %}-{% endif %} {% if sm and sm.course_count %} {{ fmt_money(sm.total_balance) }} {% else %}-{% endif %} {% if fin.kind == 'amount' %} {{ fmt_money(fin.amount) }} {% elif fin.kind == 'gift_only' %} {{ fin.text }} {% elif fin.kind == 'refunded' %} {{ fin.text }} {% else %} {{ fin.text or '-' }} {% endif %} {% if s.status == 1 %}在读 {% else %}停课{% endif %} {{ s.created_at.strftime('%Y-%m-%d') if s.created_at else '' }} 详情 {% if current_user.has_permission('student_edit') %} 编辑 {% endif %}
暂无学员数据
{% endblock %} {% block extra_js %} {% endblock %}