docs: 同步交接摘要 / PRD / 原型,并记录品牌改名「深学在线」

- 交接摘要补 §一·三十五~§一·三十八:角色与授权、需求收敛(4 角色 / 10 菜单 / 取消二期)、
  PC 端重搭后的 UI 修复与卡片式基线、品牌改名与新标识
- PRD 与功能逻辑卷只改标题行与产品代号线;**文件名不动** —— verify-docs.py 按路径读,
  全库还有 20+ 处按文件名引用,改名会连带炸脚本
- 原型 index / admin-web / teacher-app / student-app 的品牌区改「深学在线」,
  admin-web 的 .mark(10 处)换成内嵌的新标 data URI,保持原型"单文件自包含"的约定
- 根 AGENTS.md 与 frontend-pc 的规范同步:接线检查补第 ⑨ 项(SVG 资产是不是合法 XML ——
  SVG 注释里出现连续两个减号就 not well-formed,图标裂开而控制台一句话都不报)、
  「最容易写错的约定」6 -> 7 条(新增品牌标)
- deploy/docker-compose.yml 只改头注释里的项目名(compose 的 name 与七牛对象前缀都没动)
This commit is contained in:
2026-10-10 16:49:04 +08:00
parent 1f3c485ceb
commit 7df078e0ea
22 changed files with 1158 additions and 1093 deletions
+7 -76
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>填报通 · 学生端交互原型</title>
<title>深学在线 · 学生端交互原型</title>
<style>
:root{
--ink:#1b2430; --ink2:#4a5768; --ink3:#8b95a3;
@@ -145,11 +145,6 @@ figcaption .tag{
.input.mono{font-family:var(--font-mono);letter-spacing:.13em;font-size:16.5px}
.input:focus{outline:0;border-color:var(--ink);box-shadow:0 0 0 3px rgba(27,36,48,.07)}
.input::placeholder{color:#b3b9c1;letter-spacing:normal;font-size:15px}
/* 申请加入名单入口(次要路径,视觉上不与主操作竞争) */
.apply-entry{border-top:1px dashed var(--line2);padding-top:12px;margin-bottom:6px;text-align:center}
.apply-entry .ae-t{font-size:12px;color:var(--ink3);margin-bottom:9px}
.apply-entry .ae-btn{width:100%;justify-content:center}
.apply-hint{font-size:11.5px;color:var(--ink3);line-height:1.7;margin-top:9px;text-align:left}
.stepbox{display:flex;gap:10px;margin-bottom:15px}
.stepbox .sb{flex:1;display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink3)}
.stepbox .sb i{width:19px;height:19px;border-radius:50%;background:var(--line);color:var(--ink3);display:flex;align-items:center;justify-content:center;font-style:normal;font-size:11px;font-family:var(--font-mono);flex:none}
@@ -347,10 +342,10 @@ figcaption .tag{
<header class="masthead">
<div class="kicker">Prototype · 学生端 · V1.2</div>
<h1>填报通 · <em>学生填报端</em>交互原型</h1>
<h1>深学在线 · <em>学生填报端</em>交互原型</h1>
<p class="sub">
11 屏完整流程:<strong>门禁核验 → 信息核对 → 选材上传 → 自动规范化 → 提交审核</strong>。<br>
<span style="font-size:12.5px;color:var(--ink3)">新增 STEP 03B「申请加入名单」——门禁失败后的受控出口,客户确认后加入。</span><br>
10 屏完整流程:<strong>门禁核验 → 信息核对 → 选材上传 → 自动规范化 → 提交审核</strong>。<br>
<span style="font-size:12.5px;color:var(--ink3)">门禁失败只有「重新填写」一条系统内出路;确实不在名单里时由老师手工加人(系统内不展示联系方式)。</span><br>
设计方向为「档案室 / 电子卷宗」——本系统替代的是纸质材料袋与红章审批,界面应让人感到<strong>有秩序、可信、像一份正经公文</strong>。<br>
图标为内联 SVG 线性图标(统一 1.7px 描边、继承文字色),不用 emoji——避免跨平台渲染不一致,也避免消费级观感。<br>
全部文案遵循「零术语 · 指出位置 · 给出动作」三原则;数据取自真实批次 <code>24中技数控1班</code> 的 28 名学生。
@@ -446,7 +441,7 @@ figcaption .tag{
<div class="pagehead">
<div class="glyph gray"><svg class="ico xl"><use href="#i-search"/></svg></div>
<h2>没有找到你的信息</h2>
<p>请核对姓名和身份证号是否与老师提供的名单一致。<br>如果确实已报名,可以申请加入名单,由老师审核。</p>
<p>请核对姓名和身份证号是否与老师提供的名单一致。<br>如确认已报名,请联系老师把你加入名单。</p>
</div>
<div class="body">
<div class="panel">
@@ -461,10 +456,6 @@ figcaption .tag{
</div>
<div class="foot">
<button class="btn primary" style="width:100%;margin-bottom:13px">重新填写</button>
<div class="apply-entry">
<div class="ae-t">名单里确实没有你?</div>
<button class="btn ghost ae-btn"><svg class="ico"><use href="#i-user-plus"/></svg>申请加入名单</button>
</div>
<div class="center-note">连续 10 次未匹配将暂时锁定,1 小时后可重试</div>
</div>
</div></div>
@@ -473,73 +464,13 @@ figcaption .tag{
<b>门禁失败(统一提示)</b>
<span style="color:var(--seal)">故意不区分失败原因</span>——无论"号码不在名单"还是"姓名不符",文案完全一致。<br>
否则这个接口就能被用来<b style="display:inline">逐个探测身份证号是否在名单里</b>。这一屏是安全设计,不是文案设计。
<span class="note">底部只有两条出路,都是<b>系统内的动作</b>:<br>
<span class="note">底部只有一条<b>系统内的出路</b>:<br>
① <b>重新填写</b>(主路径)——大多数情况只是名字打错了;<br>
② <b>申请加入名单</b>(FR-509)——确实不在名单里时自助申请,由管理员逐条审批。<br>
② 确实不在名单里时,<b>请联系老师把你加入名单</b>(由老师在任务里手工加人)。<br>
<b>系统内不展示任何联系方式</b>——学生在班级群里本来就有班主任的联系方式,系统再放一份既不必要,也带来维护与隐私成本。</span>
</figcaption>
</figure>
<!-- ③B 申请加入名单(客户确认新增) -->
<figure>
<div class="device"><div class="screen">
<div class="statusbar"><span>9:41</span><span class="icons"><svg class="ico"><use href="#i-signal"/></svg><svg class="ico"><use href="#i-wifi"/></svg><i class="bat"></i></span></div>
<div class="navbar"><span class="back"><svg class="ico"><use href="#i-back"/></svg></span>申请加入名单</div>
<div class="body">
<div class="stepbox">
<div class="sb on"><i>1</i>填写申请</div>
<div class="sb"><i>2</i>等待审核</div>
<div class="sb"><i>3</i>重新核验</div>
</div>
<div class="notice info">
<span class="ni"><svg class="ico lg"><use href="#i-shield"/></svg></span>
<div>提交后由学校老师审核,<b>审核期间还不能填报</b>。通过后你会收到通知,届时重新核验即可进入。</div>
</div>
<div class="panel">
<div class="ptitle">申请人信息</div>
<div class="field">
<label>姓名<span class="req">*</span></label>
<input class="input" value="李四">
</div>
<div class="field">
<label>身份证号<span class="req">*</span></label>
<input class="input mono" value="361004200812153318">
</div>
<div class="field" style="margin-bottom:0">
<label>手机号<span class="req">*</span></label>
<input class="input mono" value="13800008888">
<div class="apply-hint">用于老师与你联系,不会公开展示</div>
</div>
</div>
<div class="panel">
<div class="ptitle">补充说明 <span class="badge lock">选填</span></div>
<div class="field">
<label>你所在的班级</label>
<input class="input" value="24中技数控2班">
</div>
<div class="field" style="margin-bottom:0">
<label>说明</label>
<textarea class="input" style="height:64px;padding:10px 13px;line-height:1.6;resize:none">我是这学期转到2班的,原名单上没有我</textarea>
</div>
</div>
</div>
<div class="foot">
<button class="btn primary" style="width:100%">提交申请</button>
<div class="center-note">同一任务最多申请 2 次 · 提交后不可修改</div>
</div>
</div></div>
<figcaption>
<span class="tag">STEP 03B · 客户确认新增</span>
<b>申请加入名单</b>
三步进度条把"<b>提交 → 等待 → 重新核验</b>"讲清楚,避免学生误以为提交完就能填了。<br>
<span class="note">顶部那条提示是本屏的关键:<b>「审核期间还不能填报」</b>。如果这句话不写,学生会反复回来点填报、以为系统坏了。<br>
补充说明是<b>选填</b>——实测里"我是转班过来的"这类信息对管理员判断很有用,但不能设成必填,否则会挡住真正需要帮助的人。</span>
</figcaption>
</figure>
<!-- ④ 填报主页 -->
<figure>
<div class="device"><div class="screen">