fix: 全量提示改为顶部 toast 飘窗 + 修复卷王 token 失效跳转死循环 + 调整行点击防御
- 所有 showAlert 改为 showToast 顶部飘窗(首屏 / 抽取页统一,含空消息守卫) - 导出排序新增 成绩升序 / 成绩降序 两种(前后端 + 设置弹窗都支持) - 设置保存:仅连接信息真变化才 reload projects,避免非连接改动导致持续刷新失败 - 强化历史成绩弹窗排序与兜底(缺 submit_ts 时按 idx 倒序) - 行点击事件加防御:要求父节点是 #tbody,避免被无关 tr 误触发 - 卷王 token 失效时:先 fetch logout 清会话再跳 login.php,登录页也加 token 探测兜底,根治"跳不过去"死循环 - 移除 index.php / draw.php 中已无用的内联 #alert DOM - 兼容 config_get 缺 export_sort 时回退 time 的 4 模式归一化
This commit is contained in:
@@ -84,6 +84,8 @@ $rosterCount = Roster::count();
|
||||
<select id="exportSortSel" style="height:30px;border-radius:8px;border:1px solid var(--border);padding:0 6px;background:#fff">
|
||||
<option value="time">按提交时间</option>
|
||||
<option value="sid">按学号</option>
|
||||
<option value="score_desc">按成绩降序</option>
|
||||
<option value="score_asc">按成绩升序</option>
|
||||
</select>
|
||||
</label>
|
||||
<button class="btn" id="btnExport">导出成绩</button>
|
||||
@@ -91,8 +93,6 @@ $rosterCount = Roster::count();
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="alert" class="alert hidden"></div>
|
||||
|
||||
<section class="cards" id="statCards">
|
||||
<div class="card accent-blue"><span>名单总人数</span><b id="sTotal">-</b></div>
|
||||
<div class="card ok accent-green"><span>已提交</span><b id="sSubmit">-</b></div>
|
||||
@@ -198,6 +198,8 @@ $rosterCount = Roster::count();
|
||||
<select id="cfgExportSort">
|
||||
<option value="time">按提交时间(默认)</option>
|
||||
<option value="sid">按学号(同学号按提交时间)</option>
|
||||
<option value="score_desc">按成绩降序</option>
|
||||
<option value="score_asc">按成绩升序</option>
|
||||
</select>
|
||||
<p class="hint">导出包含每次考试记录,始终带「考试次数」列</p>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user