完成批次 L-R:限流移除/白名单驱动/打印增强/全屏/表格对齐/主题变量/滚动闪烁修复
- 移除登录失败限流;fix-config.php 修正 e2e 串味的 127.0.0.1 连接 - 白名单驱动缺/待考名单(DataService + SurveyKingClient::getWhitelist,复用已取 survey) - 打印成绩明细增强(范围/合格列默认关/去页脚);看板全屏占满;表格 vertical-align:middle;隐藏登陆账号;导入默认追加 - 主题变量收口(:root 新增 brand/primary-2/ok-2 等,替换硬编码渐变);删死规则 - 表头/数据列对齐修复(index 未匹配表、dashboard 成员榜、draw 结果/历史/排除表);看板占位卡片配色一致 - 修复滚动闪烁:row-drop-in 动画经 _dropAnim 门控,仅强制重绘时播放 - 测试:新增 test-whitelist.js;run-all.sh 全绿 132
This commit is contained in:
@@ -125,14 +125,14 @@ $rosterCount = Roster::count();
|
||||
<table class="grid" id="dataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="sortable" data-k="sid">学号</th>
|
||||
<th class="sortable" data-k="name">姓名</th>
|
||||
<th class="sortable" data-k="cls">班级</th>
|
||||
<th class="sortable" data-k="grp">组别</th>
|
||||
<th class="sortable" data-k="score">成绩</th>
|
||||
<th class="sortable" data-k="attempts" title="该生提交过的次数,点击表头可排序">考试次数</th>
|
||||
<th class="sortable" data-k="submit_ts" title="最近一次提交时间">提交时间</th>
|
||||
<th class="sortable" data-k="duration">考试时长</th>
|
||||
<th class="sortable" data-k="sid" style="width:16%">学号</th>
|
||||
<th class="sortable" data-k="name" style="width:12%">姓名</th>
|
||||
<th class="sortable" data-k="cls" style="width:10%">班级</th>
|
||||
<th class="sortable" data-k="grp" style="width:7%">组别</th>
|
||||
<th class="sortable" data-k="score" style="width:10%">成绩</th>
|
||||
<th class="sortable" data-k="attempts" style="width:11%" title="该生提交过的次数,点击表头可排序">考试次数</th>
|
||||
<th class="sortable" data-k="submit_ts" style="width:22%" title="最近一次提交时间">提交时间</th>
|
||||
<th class="sortable" data-k="duration" style="width:12%">考试时长</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="tbody"><tr><td colspan="8" class="empty">请选择问卷 / 考试</td></tr></tbody>
|
||||
@@ -150,7 +150,7 @@ $rosterCount = Roster::count();
|
||||
</div>
|
||||
<div class="table-scroll short">
|
||||
<table class="grid compact" id="absentTable">
|
||||
<thead><tr><th>学号</th><th>姓名</th><th>班级</th><th>组别</th></tr></thead>
|
||||
<thead><tr><th style="width:25%">学号</th><th style="width:30%">姓名</th><th style="width:25%">班级</th><th style="width:20%">组别</th></tr></thead>
|
||||
<tbody id="absentBody"><tr><td colspan="4" class="empty">—</td></tr></tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -160,7 +160,7 @@ $rosterCount = Roster::count();
|
||||
<div class="panel-head"><h2>未匹配答卷 <small id="unmatchedHint">姓名不在名单中</small></h2></div>
|
||||
<div class="table-scroll short">
|
||||
<table class="grid compact">
|
||||
<thead><tr><th>姓名</th><th>成绩</th><th>提交时间</th><th style="width:90px">操作</th></tr></thead>
|
||||
<thead><tr><th style="width:25%">姓名</th><th style="width:18%" data-k="score">成绩</th><th style="width:35%" data-k="submit_ts">提交时间</th><th style="width:22%">操作</th></tr></thead>
|
||||
<tbody id="unmatchedBody"><tr><td colspan="4" class="empty">—</td></tr></tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -289,9 +289,10 @@ $rosterCount = Roster::count();
|
||||
</div>
|
||||
</div>
|
||||
<div class="roster-bar">
|
||||
<button class="btn sm" id="btnTpl" title="下载名单导入模板(CSV,含「登陆账号」列)">⬇ 下载模板</button>
|
||||
<div class="inline">
|
||||
<label class="chk"><input type="radio" name="impMode" value="replace" checked> 覆盖</label>
|
||||
<label class="chk"><input type="radio" name="impMode" value="append"> 追加</label>
|
||||
<label class="chk"><input type="radio" name="impMode" value="replace"> 覆盖</label>
|
||||
<label class="chk"><input type="radio" name="impMode" value="append" checked> 追加</label>
|
||||
</div>
|
||||
<input type="text" id="rosterSearch" placeholder="搜索学号 / 姓名">
|
||||
<span class="spacer"></span>
|
||||
@@ -302,7 +303,7 @@ $rosterCount = Roster::count();
|
||||
</div>
|
||||
<div class="table-scroll mid">
|
||||
<table class="grid compact" id="rosterTable">
|
||||
<thead><tr><th style="width:34px"><input type="checkbox" id="rosterCheckAll" title="全选"></th><th style="width:24%">学号</th><th style="width:20%">姓名</th><th>班级</th><th>组别</th><th>登陆账号</th></tr></thead>
|
||||
<thead><tr><th style="width:6%"><input type="checkbox" id="rosterCheckAll" title="全选"></th><th style="width:26%">学号</th><th style="width:22%">姓名</th><th style="width:26%">班级</th><th style="width:20%">组别</th></tr></thead>
|
||||
<tbody id="rosterBody"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -344,7 +345,7 @@ $rosterCount = Roster::count();
|
||||
<label>组别</label>
|
||||
<input type="text" id="addGrp" placeholder="如 A / B,可选">
|
||||
</div>
|
||||
<div class="fi">
|
||||
<div class="fi" hidden>
|
||||
<label>登陆账号</label>
|
||||
<input type="text" id="addLogin" placeholder="可选,用于抽取页登录">
|
||||
</div>
|
||||
@@ -420,9 +421,17 @@ $rosterCount = Roster::count();
|
||||
<option value="landscape">横向(A4,列多时不易折行)</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="fi">
|
||||
<label>打印范围</label>
|
||||
<select id="ptScope">
|
||||
<option value="latest" selected>按最新成绩打印(每人一行)</option>
|
||||
<option value="all">打印全部记录(含每位学生历史提交)</option>
|
||||
</select>
|
||||
<p class="hint">全部记录会把每位学生的每次提交各打一行,完整留存历史;按最新成绩则每人仅显示当前代表成绩。</p>
|
||||
</div>
|
||||
<div class="fi checks">
|
||||
<label><input type="checkbox" id="ptRank" checked> 显示名次(全表连续编号)</label>
|
||||
<label><input type="checkbox" id="ptPass" checked> 显示「是否合格」列</label>
|
||||
<label><input type="checkbox" id="ptPass"> 显示「是否合格」列(默认不显示)</label>
|
||||
<label><input type="checkbox" id="ptAttempts" checked> 显示考试次数</label>
|
||||
<label><input type="checkbox" id="ptAbsent" title="成绩表后另起一页附缺考名单,含备注列供手写"> 附缺考名单(另起一页)</label>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user