{{ pageTitle }}

查看学校
🏫 {{ schoolName }} {{ today }} {{ currency.term || '-' }}
累计发行
{{ fmtCoin(kpi.issued_coin) }}币
发行上限 {{ fmtCoin(currency.total_cap_coin) }} 币
已兑换销毁
{{ fmtCoin(kpi.redeemed_coin) }}币
激励闭环回收
当前流通
{{ fmtCoin(kpi.circulating_coin) }}币
学生持有总量
人均持有
{{ fmtCoin(kpi.avg_coin) }}币
{{ kpi.student_count }} 名学生
发行进度 已用 {{ currency.cap_percent }}%
已发行 {{ fmtCoin(kpi.issued_coin) }} / 上限 {{ fmtCoin(currency.total_cap_coin) }} 币
近 30 天发放趋势
奖励项目分布
奖励分类占比
规模概览
班级数
{{ kpi.class_count }}
教师数
{{ kpi.teacher_count }}
学生数
{{ kpi.student_count }}
平均每名学生获得 {{ fmtCoin(kpi.avg_coin) }} 币
学生持有的币可随时在兑换商城消费,消费即销毁
{{ myRank.avatar_char }}
{{ myRank.name }} {{ myRank.grade }}{{ myRank.class_name }}
{{ rankScopeLabel }}共 {{ myRank.total }} 人 · 币值 {{ fmtCoin(myRank.score_coin) }}
{{ myRank.rank }}/{{ myRank.total }}
超越{{ rankScopeLabel }} {{ myRank.percent }}% 的同学
🏫 校级排名
🎓 年级排名
👥 班级排名
币种 显示前 {{ rank.length }} 名(共 {{ rankTotal }} 人)
{{ rank[1].avatar_char }}
{{ rank[1].name }}
{{ fmtCoin(rank[1].score_coin) }}
2
👑
{{ rank[0].avatar_char }}
{{ rank[0].name }}
{{ fmtCoin(rank[0].score_coin) }}
1
{{ rank[2].avatar_char }}
{{ rank[2].name }}
{{ fmtCoin(rank[2].score_coin) }}
3
排名 学生 学号 班级 币值
{{ r.rank }} {{ r.avatar_char }} {{ r.name }} 我 {{ r.student_no }} {{ r.grade }}{{ r.class_name }} {{ fmtCoin(r.score_coin) }}
📊暂无数据
至
时间单号类型学生班级 操作人项目金额(币)理由
{{ fmtTime(r.created_at) }} {{ r.txn_no }} {{ typeName(r.type) }} {{ r.student_name || '批量' }} {{ (r.grade||'') + (r.class_name||'') || '-' }} {{ r.operator_name || '-' }} {{ r.item_name || '-' }} {{ r.type==='redeem'?'-':'+' }}{{ fmtCoin(r.amount_coin) }} {{ r.reason }}
📒没有符合条件的记录
共 {{ ledger.total }} 条 {{ Math.floor(lf.offset/100)+1 }} / {{ Math.max(1,Math.ceil(ledger.total/100)) }}
至
按教师统计
按项目统计
教师角色所带班级 发放笔数发放总额(币)平均每笔
{{ r.real_name }} {{ ROLE_NAME[r.role] || r.role }} {{ r.class_label }} {{ r.txn_count }} {{ fmtCoin(r.total_coin) }} {{ fmtCoin(r.avg_coin) }}
📈暂无数据
奖励项目分类发放次数 发放总额(币)涉及教师涉及学生
{{ r.icon }} {{ r.name }} {{ r.category }} {{ r.txn_count }} {{ fmtCoin(r.total_coin) }} {{ r.teacher_count }} {{ r.student_count }}
📈暂无数据
校园币是校内激励代币。发行需要有锚:每发一枚币都来自教师的额度预算; 消费即销毁:学生兑换奖品后币被回收,形成激励闭环。设置发行总量上限可防止通胀。
币种列表
名称学年学期状态 发行上限已发行 已销毁流通中发行进度
{{ c.name }} {{ c.school_year }} {{ c.term }} {{ c.status==='active'?'启用中':'已归档' }} {{ fmtCoin(c.total_cap_coin) }} {{ fmtCoin(c.issued_coin) }} {{ fmtCoin(c.redeemed_coin) }} {{ fmtCoin(c.circulating_coin) }}
{{ c.cap_percent }}%
奖励项目模板
老师发币时可直接点选这些项目,快速完成发放。修改默认金额不会影响已发放的记录。
图标项目名称分类 默认币值已发放次数操作
{{ it.icon }} {{ it.name }} {{ it.category }} {{ fmtCoin(it.default_amount_coin) }} 币 {{ it.used_count || 0 }}
额度即发行锚。老师没有额度就无法发币。这能从源头控制发行总量,防止超发。 已使用额度不能低于实际已发放量。
教师额度分配
教师角色所带班级 授予额度已使用剩余 使用进度操作
{{ b.real_name }} {{ ROLE_NAME[b.role] }} {{ (b.grade||'') + (b.class_name||'') || '-' }} {{ fmtCoin(b.granted_coin) }} {{ fmtCoin(b.used_coin) }} {{ fmtCoin(b.remain_coin) }}
{{ pct(b) }}%
奖品列表
图标奖品名称分类 所需币值库存已兑换 说明操作
{{ p.icon }} {{ p.name }} {{ p.category }} {{ fmtCoin(p.cost_coin) }} 币 {{ p.stock < 0 ? '不限' : p.stock }} {{ p.redeemed_count || 0 }} {{ p.description }}
兑换记录(最近 100 条)
时间学生班级奖品 消耗币值状态
{{ fmtTime(r.created_at) }} {{ r.student_name }} {{ (r.grade||'')+(r.class_name||'') }} {{ r.prize_name }} -{{ fmtCoin(r.cost_coin) }} {{ r.status==='done'?'已完成':(r.status==='delivered'?'已发放':'已取消') }}
📜暂无兑换记录
余额修正涉及资金安全,采用双人复核制。 提出申请后,必须由另一位超级管理员审核通过才会生效。申请人本人不能审核自己的申请。
余额修正申请
全部
待审核
已通过
已驳回
申请时间学生调整数额理由 申请人审核人状态操作
{{ fmtTime(a.created_at) }} {{ a.student_name }} {{ a.amount_coin>=0?'+':'' }}{{ fmtCoin(a.amount_coin) }} {{ a.reason }} {{ a.proposer_name }} {{ a.reviewer_name || '-' }} {{ a.status==='approved'?'已通过':(a.status==='pending'?'待审核':'已驳回') }} 等待他人复核 仅超管可审核 {{ a.review_note || '-' }}
⚖️暂无修正记录
对账会校验三项核心不变量:① 每个账户的余额缓存是否等于其全部流水之和; ② 每笔事务的分录代数和是否为 0(复式记账平衡); ③ 是否存在负余额。发现异常时会以流水为准自动修复余额缓存。
对账中心
{{ reconResult.status==='ok' ? '✓ 对账通过' : '✗ 发现异常' }}
检查账户 {{ reconResult.checked_accounts }} 个,发现问题 {{ reconResult.issue_count }} 项
问题类型详情
{{ i.type }} {{ JSON.stringify(i) }}
历史对账报告
对账时间结果检查账户 检查事务问题数
{{ fmtTime(r.run_at) }} {{ r.status==='ok'?'通过':'异常' }} {{ r.checked_accounts }} {{ r.checked_txns }} {{ r.issue_count }}
🔍还没有对账记录
班级列表({{ classes.length }} 个)
校区年级班级班主任学生人数 班级总币值人均操作
{{ c.campus }}- {{ c.grade }} {{ c.name }} {{ c.head_teacher_name || '-' }} {{ c.student_count }} {{ fmtCoin(c.total_coin) }} {{ fmtCoin(c.avg_coin) }}
角色权限总览
功能模块{{ r.name }}
{{ m.module }} ✔ —

说明:班主任 / 任课老师日常在「教师端」发币、管理本班学生,也可在管理端「教师个人量化」中 提交加分申请、查看教师排名(审批由校长 / 超管把关);政教处登录本端仅见「量化管理」。

管理类账号({{ permUsers.length }} 个)
登录名姓名当前角色附加权限最近登录状态操作
{{ u.username }} {{ u.real_name }} 超级管理员(当前登录) 默认全部 {{ permsLabel(u).length }} 项附加 仅角色默认 {{ u.last_login_at || '从未登录' }} {{ u.status==='active'?'正常':'已停用' }}
暂无管理类账号
按账号设置功能权限(任意账号,含教师 / 班主任)

勾选的权限会叠加在该账号的角色默认权限之上,适合"一人多岗":例如给某位老师单独开通「量化分管理」或「兑换核销」。 取消勾选并保存即收回。

登录名姓名角色附加权限状态操作
{{ u.username }} {{ u.real_name }} {{ ROLE_NAME[u.role] || u.role }} {{ permsLabel(u).join('、') }} 无 {{ u.status==='active'?'正常':'已停用' }}
没有找到匹配的账号

输入姓名或登录名搜索账号后,点击「设置权限」勾选功能。

学生管理
学号姓名班级 当前余额(币)状态最近登录操作
{{ s.student_no }} {{ s.real_name }} {{ (s.grade||'')+(s.class_name||'') }} {{ fmtCoin(s.balance_coin) }} {{ s.status==='active'?'正常':'已禁用' }} {{ s.last_login_at || '从未登录' }}
👨‍🎓没有找到学生
共 {{ students.total }} 条 {{ Math.floor(sf.offset/100)+1 }} / {{ Math.max(1,Math.ceil(students.total/100)) }}
教师管理
工号姓名角色所带班级 已发放(币)状态操作
{{ t.username }} {{ t.real_name }} {{ ROLE_NAME[t.role] }} {{ t.class_names || '-' }} {{ fmtCoin(t.issued_coin) }} {{ t.status==='active'?'正常':'已停用' }}
👩‍🏫没有找到教师
教师在小程序端自助注册后,在此核对信息并「通过」开通账号(可修正角色 / 任教班级 / 班主任班); 不合规则「拒绝」并注明原因,申请人可在小程序看到拒绝理由。教师漏选班级时也可在「教师管理」补编辑。
教师注册申请
申请人手机号任教科目校区 意向班级状态申请时间操作
{{ r.real_name }}班主任 {{ r.phone }} {{ r.subject || '—' }} {{ r.campus || '—' }} 未选班级 {{ r.status==='approved'?'已通过':(r.status==='rejected'?'已拒绝':'待审核') }} {{ fmtTime(r.created_at) }} {{ r.reject_reason ? '拒绝原因:' + r.reject_reason : '已处理' }}
📝{{ regStatusF==='pending' ? '暂无待审核的注册申请' : '没有记录' }}
审计日志仅追加、不可修改删除,且查看权限与发币权限分离——任课老师和班主任无权查看。
操作审计日志
时间操作人角色操作 对象详情IP级别
{{ fmtTime(a.created_at) }} {{ a.actor_name }} {{ ROLE_NAME[a.actor_role] || '-' }} {{ a.action }} {{ a.target_type }} {{ a.target_id }} {{ a.detail }} {{ a.ip }} {{ a.level==='danger'?'高危':(a.level==='warn'?'警告':'普通') }}
🛡️暂无日志
共 {{ audit.total }} 条
以下限额是防止刷币和异常发放的风控阈值,修改后立即生效。金额单位为「币」。
风控限额设置
默认值:{{ settingLabel(s.key, true) || s.default }} · {{ settingHint(s.key) }}
仅超级管理员可修改系统设置
敏感操作密码
当前敏感操作(余额修正、批量导入等)需要输入操作密码二次确认。 默认密码为 admin888, 建议通过环境变量 CAMPUS_COIN_OP_PASSWORD 修改。
公共屏刷新设置({{ schoolName }})
上课期间公共屏若频繁自动刷新,会带走学生注意力。建议设为 固定时间刷新(仅在课间等整点更新)或 手动刷新(由老师在一体机点「🔄 刷新公示」时更新)。
建议填各节课间/眼保健操/大课间时间,公共屏只在命中的「时:分」刷新一次,避免课中跳动。
仅超级管理员 / 教务管理员可修改
校本部 → 南校区 配置同步
南校区是校本部的镜像:在校本部修改发币类型、发币理由、奖品、系统设置后,会自动同步到南校区(账号与流水各自独立,不复制)。 若需立即把校本部当前全部配置一次性推送到南校区(如首次启用、或事后补救),点下方按钮手动同步。
已同步:币种 {{ syncResult.currencies }} · 理由 {{ syncResult.reward_items }} · 奖品 {{ syncResult.prizes }} · 设置 {{ syncResult.settings }} · 奖品多价 {{ syncResult.prize_prices }}
仅超级管理员可执行同步