First
This commit is contained in:
92
index.html
Normal file
92
index.html
Normal 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>
|
||||
Reference in New Issue
Block a user