This commit is contained in:
Harry
2026-04-25 10:09:16 +08:00
committed by GitHub
commit bf215c4b9f
15 changed files with 2482 additions and 0 deletions

92
index.html Normal file
View File

@@ -0,0 +1,92 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>点名系统 - 用户点名</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
<header>
<h1>点名系统</h1>
<p id="modeIndicator" style="font-size: 12px; margin-top: 5px; opacity: 0.8;"></p>
</header>
<main>
<!-- 输入编号区域 -->
<section id="inputSection" class="section">
<h2>进入点名</h2>
<form id="enterForm">
<div class="form-group">
<label for="codeInput">请输入编号:</label>
<input type="text" id="codeInput" placeholder="6-12位数字" required pattern="\d{6,12}">
</div>
<button type="submit" class="btn btn-primary">进入点名</button>
</form>
<div class="divider">
<span></span>
</div>
<div class="qr-scanner">
<button id="scanQRBtn" class="btn btn-secondary">扫描二维码</button>
</div>
</section>
<!-- 点名区域 -->
<section id="rollCallSection" class="section" style="display: none;">
<h2>点名</h2>
<!-- 进度条 -->
<div class="progress-container">
<div class="progress-info">
<span>已点名:<strong id="completedCount">0</strong> / <strong id="totalCount">0</strong></span>
</div>
<div class="progress-bar">
<div id="progressFill" class="progress-fill"></div>
</div>
</div>
<!-- 名单列表 -->
<div class="member-list">
<h3>点名名单</h3>
<div id="memberListDisplay"></div>
</div>
<!-- 拍照点名 -->
<div class="photo-upload">
<h3>拍照点名</h3>
<div class="camera-container">
<video id="video" width="320" height="240" autoplay></video>
<canvas id="canvas" width="320" height="240" style="display: none;"></canvas>
</div>
<div class="camera-controls">
<button id="startCameraBtn" class="btn btn-primary">开启摄像头</button>
<button id="captureBtn" class="btn btn-primary" style="display: none;">拍照点名</button>
<button id="stopCameraBtn" class="btn btn-secondary" style="display: none;">关闭摄像头</button>
</div>
<div id="capturedPhoto" class="captured-photo" style="display: none;">
<img id="photoPreview" alt="拍摄的照片">
<div class="photo-actions">
<button id="confirmPhotoBtn" class="btn btn-primary">确认点名</button>
<button id="retakeBtn" class="btn btn-secondary">重新拍摄</button>
</div>
</div>
</div>
<!-- 手动点名 -->
<div class="manual-rollcall">
<h3>手动点名</h3>
<p>如果人脸识别失败,可以手动选择姓名进行点名:</p>
<select id="manualSelect" class="form-control">
<option value="">请选择姓名</option>
</select>
<button id="manualRollCallBtn" class="btn btn-primary">确认点名</button>
</div>
</section>
</main>
</div>
<script src="storage.js"></script>
<script src="index.js"></script>
</body>
</html>