完成报到确认页完善:
增加勾选、全选本页、批量设置状态和统一备注;应用后点击“暂存当前页”保存。 修复 Excel 文件选择事件被错误放在键盘监听中的问题。 导入后显示读取行数、实际更新人数、未变化人数及状态变化明细;重复导入会明确提示“没有产生变化”。 “拍摄二维码”改为调用 getUserMedia 实时相机,图片选择仅作为备用方式。 扫码后先展示考生确认页,默认选择“确认报到”,点击“暂存”后才修改数据。 后端新增扫码预览接口,预览过程不会提前修改报到状态。
This commit is contained in:
+56
-6
@@ -968,21 +968,65 @@ body.review-subpage-open { overflow:hidden; }
|
||||
.reporting-stat-strip span { color:#667085; }
|
||||
.reporting-stat-strip b { margin-left:5px; color:#172d55; font-size:17px; }
|
||||
.reporting-stat-strip em { margin-left:auto; padding:5px 10px; border-radius:99px; color:#1f6f5f; background:#dfeee9; font-style:normal; font-weight:700; }
|
||||
.reporting-tools { display:grid; grid-template-columns:1fr auto auto minmax(360px,1.3fr); gap:12px; align-items:center; margin:20px 24px 0; padding:17px; border:1px solid #ead9a5; border-radius:10px; background:#fffaf0; }
|
||||
.reporting-tools > div { display:grid; gap:3px; }
|
||||
.reporting-tools { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:stretch; margin:20px 24px 0; }
|
||||
.reporting-excel-tool,.reporting-scan-tool { display:grid; grid-template-columns:1fr auto; gap:12px; align-items:center; padding:17px; border:1px solid #ead9a5; border-radius:10px; background:#fffaf0; }
|
||||
.reporting-scan-tool { border-color:#bcd8d0; background:#f3faf7; }
|
||||
.reporting-tools > div > div:first-child { display:grid; gap:3px; }
|
||||
.reporting-tools small { color:#7d735e; }
|
||||
.reporting-tools form { display:flex; gap:8px; }
|
||||
.reporting-tools form { grid-column:1/-1; display:flex; gap:8px; }
|
||||
.reporting-tools form input { min-width:220px; }
|
||||
.tool-buttons { display:flex; gap:8px; }
|
||||
.reporting-import-summary { grid-column:1/-1; display:grid; grid-template-columns:1fr auto; gap:4px 14px; padding:10px 12px; border-left:3px solid #1f6f5f; border-radius:6px; color:#315d52; background:#e7f3ee; }
|
||||
.reporting-import-summary.unchanged { border-left-color:#9a7a38; color:#6e5b33; background:#f8efd9; }
|
||||
.reporting-import-summary small { grid-column:1/-1; }
|
||||
.camera-button { min-height:42px; display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:0 16px; border:0; border-radius:8px; color:#fff; background:#1f6f5f; font-weight:700; cursor:pointer; box-shadow:0 8px 18px rgba(31,111,95,.2); }
|
||||
.qr-capture { min-height:38px; display:inline-flex; align-items:center; justify-content:center; padding:0 13px; border:1px dashed #1f6f5f; border-radius:8px; color:#1f6f5f; cursor:pointer; }
|
||||
.reporting-workbench > form,.reporting-ledger-readonly { padding:20px 24px 24px; }
|
||||
.reporting-workbench table select,.reporting-workbench table input { min-width:150px; }
|
||||
.reporting-workbench table input { width:100%; }
|
||||
.reporting-workbench table .selection-cell { width:56px; min-width:56px; text-align:center; }
|
||||
.reporting-workbench table .selection-cell input { width:17px; min-width:17px; height:17px; }
|
||||
.reporting-bulk-bar { display:grid; grid-template-columns:auto auto minmax(180px,.7fr) minmax(260px,1fr) auto; gap:12px; align-items:end; margin:14px 0; padding:14px; border:1px solid #d5e1e5; border-radius:9px; background:#f7f9fb; }
|
||||
.reporting-bulk-bar label:not(.bulk-check) { display:grid; gap:5px; }
|
||||
.reporting-bulk-bar label span { color:#667085; font-size:11px; }
|
||||
.reporting-bulk-bar .bulk-check { display:flex; align-items:center; gap:7px; min-height:40px; }
|
||||
.reporting-bulk-bar .bulk-check input { width:17px; height:17px; }
|
||||
.reporting-bulk-bar > strong { min-height:40px; display:flex; align-items:center; color:#1f6f5f; white-space:nowrap; }
|
||||
.reporting-actions { display:flex; justify-content:flex-end; gap:10px; padding-top:18px; }
|
||||
.reporting-decision { display:grid; grid-template-columns:1.2fr .7fr 1fr auto; gap:14px; align-items:end; margin:0; padding:22px 24px; border-top:1px solid #e3e9ed; background:#f7faf9; }
|
||||
.reporting-decision label { display:grid; gap:6px; }
|
||||
.reporting-decision p { margin:4px 0 0; color:#6b7688; }
|
||||
.reporting-readonly-note { padding:20px 24px; border-top:1px solid #e3e9ed; background:#f7f9fb; }
|
||||
.reporting-readonly-note p { margin:5px 0 0; color:#6f7a8d; }
|
||||
.reporting-camera-head,.reporting-confirm-head { border-bottom:1px solid #dce5e8; }
|
||||
.reporting-camera-stage { position:relative; margin:22px 24px 10px; overflow:hidden; aspect-ratio:16/10; border-radius:13px; background:#0c1725; }
|
||||
.reporting-camera-stage video { width:100%; height:100%; display:block; object-fit:cover; }
|
||||
.scan-frame { position:absolute; inset:15% 25%; display:grid; place-items:end center; padding:14px; color:#fff; background:linear-gradient(transparent,rgba(0,0,0,.48)); }
|
||||
.scan-frame i { position:absolute; width:36px; height:36px; border-color:#f1d28a; border-style:solid; }
|
||||
.scan-frame i:nth-child(1) { top:0; left:0; border-width:3px 0 0 3px; }
|
||||
.scan-frame i:nth-child(2) { top:0; right:0; border-width:3px 3px 0 0; }
|
||||
.scan-frame i:nth-child(3) { bottom:0; left:0; border-width:0 0 3px 3px; }
|
||||
.scan-frame i:nth-child(4) { right:0; bottom:0; border-width:0 3px 3px 0; }
|
||||
.scan-frame span { font-size:12px; }
|
||||
.reporting-camera-status { margin:0 24px 14px; color:#315d52; }
|
||||
.reporting-camera-status.error { color:#a0473f; }
|
||||
.reporting-camera-fallback { display:grid; grid-template-columns:1fr auto; gap:10px; margin:0 24px 24px; padding-top:14px; border-top:1px solid #e1e7ea; }
|
||||
.reporting-camera-fallback form { display:flex; gap:8px; }
|
||||
.reporting-camera-fallback form input { flex:1; }
|
||||
.reporting-confirm-form { padding:22px 24px 24px; }
|
||||
.reporting-candidate-card { position:relative; padding:20px; border:1px solid #cfe1db; border-radius:11px; background:#f4faf7; }
|
||||
.reporting-candidate-card dl { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:0; padding-right:90px; }
|
||||
.reporting-candidate-card dt { color:#748078; font-size:11px; }
|
||||
.reporting-candidate-card dd { margin:4px 0 0; color:#173f3a; font-weight:700; }
|
||||
.candidate-stamp { position:absolute; top:20px; right:18px; padding:7px 10px; border:2px solid #28735e; border-radius:5px; color:#28735e; font-weight:800; transform:rotate(-4deg); }
|
||||
.reporting-decision-options { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:20px 0; padding:0; border:0; }
|
||||
.reporting-decision-options legend { margin-bottom:9px; color:#29364b; font-weight:700; }
|
||||
.reporting-decision-options label { display:flex; gap:10px; padding:14px; border:1px solid #d7e0e4; border-radius:9px; cursor:pointer; }
|
||||
.reporting-decision-options label.selected { border-color:#1f6f5f; background:#edf7f3; box-shadow:inset 0 0 0 1px #1f6f5f; }
|
||||
.reporting-decision-options input { margin-top:3px; }
|
||||
.reporting-decision-options strong,.reporting-decision-options small { display:block; }
|
||||
.reporting-decision-options small { margin-top:4px; color:#788393; }
|
||||
.reporting-confirm-note { display:grid; gap:7px; }
|
||||
.workflow-hint { display:block; margin-top:12px; color:#7a8495; line-height:1.6; }
|
||||
.template-notice-number { margin:36px 0 28px; color:#6d655b; font:12px Consolas,monospace; text-align:right; }
|
||||
.template-qr-placeholder { position:absolute; right:52px; bottom:48px; width:88px; height:88px; display:grid; place-items:center; border:1px dashed var(--template-primary); color:var(--template-primary); font-size:10px; text-align:center; }
|
||||
@@ -994,9 +1038,9 @@ body.review-subpage-open { overflow:hidden; }
|
||||
@media (max-width: 1200px) {
|
||||
.notice-template-studio,.verification-hero { grid-template-columns: 1fr; }
|
||||
.notice-template-preview { position: static; }
|
||||
.reporting-tools { grid-template-columns:1fr auto auto; }
|
||||
.reporting-tools > div,.reporting-tools form { grid-column:1/-1; }
|
||||
.reporting-tools form { display:grid; grid-template-columns:minmax(180px,1fr) auto auto; }
|
||||
.reporting-tools { grid-template-columns:1fr; }
|
||||
.reporting-bulk-bar { grid-template-columns:auto auto 1fr; }
|
||||
.reporting-bulk-bar .bulk-note { grid-column:1/3; }
|
||||
.reporting-decision { grid-template-columns:1fr 1fr; }
|
||||
}
|
||||
@media (max-width: 850px) {
|
||||
@@ -1017,5 +1061,11 @@ body.review-subpage-open { overflow:hidden; }
|
||||
.reporting-stat-strip em { margin-left:0; }
|
||||
.reporting-tools,.reporting-decision,.reporting-public-stats { grid-template-columns:1fr; }
|
||||
.reporting-tools form { grid-template-columns:1fr; }
|
||||
.reporting-excel-tool,.reporting-scan-tool,.reporting-camera-fallback,.reporting-bulk-bar,.reporting-decision-options { grid-template-columns:1fr; }
|
||||
.tool-buttons { align-items:stretch; flex-direction:column; }
|
||||
.reporting-bulk-bar .bulk-note { grid-column:auto; }
|
||||
.reporting-camera-fallback form { display:grid; grid-template-columns:1fr; }
|
||||
.reporting-candidate-card dl { grid-template-columns:1fr; padding-right:0; }
|
||||
.candidate-stamp { position:static; display:inline-block; margin-bottom:16px; }
|
||||
.reporting-actions { align-items:stretch; flex-direction:column; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user