测试版使用说明
双击本文件即可在浏览器打开,无需微信开发者工具。数据存于浏览器本地,可随时重置。
① 状态流转图
提交→
待学生处审核→
待门卫核验出校→
已出校·未返校→
已销假完成
待学生处审核→驳回→
已驳回→改后重提→
待学生处审核
待门卫核验→人证不符→
门卫拦截·已终止
(终态,须重新申请)
任一前序状态→班主任撤销→
已撤销
已销假完成→管理员退回(误销假纠错)→
已出校·未返校→门卫重登记→
已销假完成
② 建议按此顺序测一遍
- 班主任 · 发起请假:姓名输入
张明轩 → 自动带出班级与家长信息;
家长确认开关默认不勾,需手动勾选后提交 → 状态变「待学生处审核」
- 班主任:再提交一条不勾家长确认的单据,留着测门卫拦截
- 学生处 · 待审核:按年级分层,点开「高一」→ 再点「高一(3)班」才看到单据;
对第 1 条点「同意」;对第 2 条点「驳回」不填意见看是否被拦
- 门卫 · 待出校:同样年级分层。点开班主任照片与现场学生比对;
不点人证选项看放行按钮是否置灰;选「一致」后按钮变绿并呼吸高亮 → 点「确认出校」
- 门卫:对第 2 条(家长未确认)看是否禁止放行;再对另一条选「人证不一致」→
填拦截说明 → 单据进入终态
- 门卫 · 待返校:对已出校单据点「登记返校」完成销假
- 超时预警:让某单据处于「已出校」,顶部时钟点
+130分 → 二级预警红色提示
- 学生处:用「紧急放行登记」开单 → 门卫可直接放行 → 班主任补录材料
- 管理员:看统计看板,改预警阈值,最后点「重置演示数据」
演示学籍名册:张明轩、李思彤、陈子航、孙晓阳、林清和、王浩然、吴梓豪、
郑书瑶、赵一诺、何嘉树、周雨桐、黄乐乐。输入姓名即可自动带出。
③ 已实现的制度硬约束
- 家长知情确认须班主任手动勾选(默认不勾);未确认 → 门卫禁止放行,
学生处审核时提前预警,避免「批了却放不了」
- 学生处与门卫端均按年级 → 班级两级分层展示,不堆长列表
- 驳回必须填意见,否则无法提交
- 门卫未选人证核验结果,放行按钮置灰
- 门卫可点开班主任上传的照片与现场学生比对,确认人证一致后再放行
- 家长来接方式须班主任提交前二选一(有家长来校接领 / 学生自行回家);未选任何一项将无法提交
- 人证不符 → 单据强制终止,说明必填,且不可撤销/重新放行
- 家长未确认知情 → 门卫禁止放行
- 紧急放行单不可撤销、不可重复审核,24 小时内须补录
- 请假 ≥3 天自动标记长时请假,提示须德育处复核备案
- 超过计划返校 60/120 分钟 → 一级/二级预警
- 门卫误销假 → 管理员可将「已销假完成」单据退回门卫,撤销误登记的返校记录,由门卫重新核验登记(须填退回原因,入纠错台账)
- 已撤销 / 门卫拦截为真正终态,任何角色均不可再流转;已销假单据仅管理员可走上述退回纠错
④ 测试版不做的事(正式版必补)
- 无登录鉴权:任意切换角色,正式版须按角色分配账号与数据权限
- 无服务器:数据存在浏览器 localStorage,换浏览器/清缓存即丢失
- 无微信服务通知:家长确认、审批结果、超时预警的推送需对接订阅消息
- 照片仅压缩存本地,正式版须上传对象存储并做敏感信息保护
业务逻辑内核在 leave-core.js,已通过 83 项断言测试(node _test_core.js)。
正式开发时把它换成后端接口即可,函数签名不用改;其中
lookupStudent / findStudents 对应学籍档案查询接口,
groupByGrade 对应后端的年级分组查询。