From 451251eb5fa77ff44045adaaeaabb5e951270563 Mon Sep 17 00:00:00 2001
From: WYY <1062587448@qq.com>
Date: 星期三, 19 二月 2025 11:26:24 +0800
Subject: [PATCH] UI v1.0
---
Client/王雨阳/code/UI.html | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++
Client/王雨阳/log/日志_王雨阳_250218.doc | 0
Client/王雨阳/log/王雨阳_250218.doc | 0
Client/王雨阳/document/项目需求书2.0版.docx | 0
4 files changed, 202 insertions(+), 0 deletions(-)
diff --git "a/Client/\347\216\213\351\233\250\351\230\263/code/UI.html" "b/Client/\347\216\213\351\233\250\351\230\263/code/UI.html"
new file mode 100644
index 0000000..473c500
--- /dev/null
+++ "b/Client/\347\216\213\351\233\250\351\230\263/code/UI.html"
@@ -0,0 +1,202 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>浜鸿劯璇嗗埆鑰冨嫟 - 浜鸿劯褰曞叆妯″潡</title>
+ <style>
+ body {
+ font-family: Arial, sans-serif;
+ margin: 20px;
+ }
+ .container {
+ max-width: 600px;
+ margin: auto;
+ padding: 20px;
+ border: 1px solid #ccc;
+ border-radius: 8px;
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
+ }
+ h1 {
+ text-align: center;
+ color: #333;
+ }
+ .form-group {
+ margin-bottom: 15px;
+ }
+ label {
+ display: block;
+ margin-bottom: 5px;
+ font-weight: bold;
+ }
+ input[type="text"], button {
+ width: 100%;
+ padding: 10px;
+ font-size: 16px;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ }
+ button {
+ background-color: #007bff;
+ color: white;
+ cursor: pointer;
+ }
+ button:hover {
+ background-color: #0056b3;
+ }
+ .camera-preview {
+ margin-top: 20px;
+ text-align: center;
+ }
+ .camera-preview video {
+ max-width: 100%;
+ height: auto;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ }
+ .image-preview {
+ margin-top: 20px;
+ text-align: center;
+ }
+ .image-preview img {
+ max-width: 100%;
+ height: auto;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ }
+ .status-message {
+ margin-top: 15px;
+ text-align: center;
+ font-size: 14px;
+ color: #555;
+ }
+ </style>
+</head>
+<body>
+ <div class="container">
+ <h1>浜鸿劯璇嗗埆鑰冨嫟 - 浜鸿劯褰曞叆妯″潡</h1>
+
+ <!-- 宸ュ彿杈撳叆 -->
+ <div class="form-group">
+ <label for="employee-id">杈撳叆宸ュ彿:</label>
+ <input type="text" id="employee-id" placeholder="璇疯緭鍏ュ伐鍙�">
+ </div>
+
+ <!-- 鏌ヨ淇℃伅鎸夐挳 -->
+ <button onclick="searchUserInfo()">鏌ヨ淇℃伅</button>
+
+ <!-- 鐢ㄦ埛淇℃伅灞曠ず -->
+ <div class="form-group" id="user-info" style="display: none;">
+ <label>鐢ㄦ埛淇℃伅:</label>
+ <p id="user-details"></p>
+ </div>
+
+ <!-- 妯℃嫙鎽勫儚澶存姄鍙栧浘鐗� -->
+ <div class="camera-preview" id="camera-preview" style="display: none;">
+ <video id="camera-video" autoplay playsinline></video>
+ <div>
+ <button onclick="captureImage('front')">鎶撳彇姝h劯</button>
+ <button onclick="captureImage('left')">鎶撳彇宸︿晶鑴�</button>
+ <button onclick="captureImage('right')">鎶撳彇鍙充晶鑴�</button>
+ </div>
+ </div>
+
+ <!-- 鍥剧墖棰勮 -->
+ <div class="image-preview" id="image-preview" style="display: none;">
+ <h3>鎶撳彇鐨勫浘鐗囬瑙�</h3>
+ <div id="captured-images">
+ <img id="front-image" src="" alt="姝h劯鍥剧墖" style="display: none;">
+ <img id="left-image" src="" alt="宸︿晶鑴稿浘鐗�" style="display: none;">
+ <img id="right-image" src="" alt="鍙充晶鑴稿浘鐗�" style="display: none;">
+ </div>
+ </div>
+
+ <!-- 鎻愪氦鎸夐挳 -->
+ <button onclick="submitData()" style="display: none;" id="submit-btn">鎻愪氦</button>
+
+ <!-- 鐘舵�佹秷鎭� -->
+ <div class="status-message" id="status-message"></div>
+ </div>
+
+ <script>
+ let cameraStream = null;
+
+ // 妯℃嫙鏌ヨ鐢ㄦ埛淇℃伅
+ function searchUserInfo() {
+ const employeeId = document.getElementById('employee-id').value;
+ if (!employeeId) {
+ alert('璇疯緭鍏ュ伐鍙�');
+ return;
+ }
+
+ // 妯℃嫙鏌ヨ缁撴灉
+ const userInfo = {
+ id: employeeId,
+ name: '寮犱笁',
+ department: '鎶�鏈儴'
+ };
+
+ // 鏄剧ず鐢ㄦ埛淇℃伅
+ document.getElementById('user-details').innerText = `濮撳悕: ${userInfo.name}, 閮ㄩ棬: ${userInfo.department}`;
+ document.getElementById('user-info').style.display = 'block';
+
+ // 鏄剧ず鎽勫儚澶�
+ startCamera();
+ }
+
+ // 鎵撳紑鎽勫儚澶�
+ async function startCamera() {
+ try {
+ cameraStream = await navigator.mediaDevices.getUserMedia({ video: true });
+ const videoElement = document.getElementById('camera-video');
+ videoElement.srcObject = cameraStream;
+ document.getElementById('camera-preview').style.display = 'block';
+ } catch (error) {
+ alert('鏃犳硶璁块棶鎽勫儚澶达紝璇锋鏌ユ潈闄愭垨璁惧鏄惁鍙敤銆�');
+ console.error('鎽勫儚澶磋闂け璐�:', error);
+ }
+ }
+
+ // 鎶撳彇鍥剧墖
+ function captureImage(faceType) {
+ const videoElement = document.getElementById('camera-video');
+ const canvas = document.createElement('canvas');
+ canvas.width = videoElement.videoWidth;
+ canvas.height = videoElement.videoHeight;
+ const context = canvas.getContext('2d');
+ context.drawImage(videoElement, 0, 0, canvas.width, canvas.height);
+
+ // 灏嗘姄鍙栫殑鍥剧墖鏄剧ず鍦ㄩ〉闈腑
+ const imageUrl = canvas.toDataURL('image/png');
+ const imageElement = document.getElementById(`${faceType}-image`);
+ imageElement.src = imageUrl;
+ imageElement.style.display = 'block';
+
+ // 濡傛灉涓夊紶鍥剧墖閮藉凡鎶撳彇锛屾樉绀烘彁浜ゆ寜閽�
+ const frontImage = document.getElementById('front-image').src;
+ const leftImage = document.getElementById('left-image').src;
+ const rightImage = document.getElementById('right-image').src;
+ if (frontImage && leftImage && rightImage) {
+ document.getElementById('submit-btn').style.display = 'block';
+ }
+ }
+
+ // 妯℃嫙鎻愪氦鏁版嵁
+ function submitData() {
+ const employeeId = document.getElementById('employee-id').value;
+ if (!employeeId) {
+ alert('璇峰厛杈撳叆宸ュ彿骞舵煡璇俊鎭�');
+ return;
+ }
+
+ // 妯℃嫙涓婁紶鍥剧墖鍜屾彁浜ゆ暟鎹�
+ const statusMessage = document.getElementById('status-message');
+ statusMessage.innerText = '姝e湪涓婁紶鍥剧墖骞舵彁浜ゆ暟鎹�...';
+
+ setTimeout(() => {
+ statusMessage.innerText = '鎻愪氦鎴愬姛锛�';
+ }, 2000); // 妯℃嫙涓婁紶寤惰繜
+ }
+ </script>
+</body>
+</html>
\ No newline at end of file
diff --git "a/Client/\347\216\213\351\233\250\351\230\263/document/\351\241\271\347\233\256\351\234\200\346\261\202\344\271\2462.0\347\211\210.docx" "b/Client/\347\216\213\351\233\250\351\230\263/document/\351\241\271\347\233\256\351\234\200\346\261\202\344\271\2462.0\347\211\210.docx"
new file mode 100644
index 0000000..20310c4
--- /dev/null
+++ "b/Client/\347\216\213\351\233\250\351\230\263/document/\351\241\271\347\233\256\351\234\200\346\261\202\344\271\2462.0\347\211\210.docx"
Binary files differ
diff --git "a/Client/\347\216\213\351\233\250\351\230\263/log/\346\227\245\345\277\227_\347\216\213\351\233\250\351\230\263_250218.doc" "b/Client/\347\216\213\351\233\250\351\230\263/log/\346\227\245\345\277\227_\347\216\213\351\233\250\351\230\263_250218.doc"
new file mode 100644
index 0000000..133097d
--- /dev/null
+++ "b/Client/\347\216\213\351\233\250\351\230\263/log/\346\227\245\345\277\227_\347\216\213\351\233\250\351\230\263_250218.doc"
Binary files differ
diff --git "a/Client/\347\216\213\351\233\250\351\230\263/log/\347\216\213\351\233\250\351\230\263_250218.doc" "b/Client/\347\216\213\351\233\250\351\230\263/log/\347\216\213\351\233\250\351\230\263_250218.doc"
new file mode 100644
index 0000000..27a819f
--- /dev/null
+++ "b/Client/\347\216\213\351\233\250\351\230\263/log/\347\216\213\351\233\250\351\230\263_250218.doc"
Binary files differ
--
Gitblit v1.8.0