11.28

今天实现职员的功能。

staff.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>员工页面</title>
    <style>
        .form {
            width: 600px;
            margin: 0 auto;
            /*border: 1px solid red;*/
        }

        .form table {
            margin: 0 auto;
        }

        .form table tr td {
            width: 100px;
            height: 30px;
            border: 1px solid #000;
            text-align: center;
        }

        button {
            display: block;
            margin-top: 10px;
            padding: 10px;
            background-color: #007bff;
            color: #fff;
            border: none;
            border-radius: 3px;
            cursor: pointer;
        }
    </style>
</head>
<body>
<h1 style="text-align: center">员工系统</h1>
<script>
    // 获取URL中的用户名参数
    var urlParams = new URLSearchParams(window.location.search);
    var username = urlParams.get('username');
    console.log(username);
</script>
<div class="form">
    <table border="1px" cellspacing="0" width="600px">
        <tr>
            <th>编号</th>
            <th>功能</th>
        </tr>
        <tr>
            <td>1</td>
            <td>
                <button id="select">查看个人信息</button>
            </td>
        </tr>
        <tr>
            <td>2</td>
            <td>
                <button id="update">修改信息</button>
            </td>
        </tr>
        <tr>
            <td>3</td>
            <td>
                <button id="update2">修改个人密码</button>
            </td>
        </tr>
        <tr>
            <td>4</td>
            <td>
                <button id="daily">日常考勤</button>
            </td>
        </tr>
        <tr>
            <td>5</td>
            <td>
                <button id="low">员工请假记录</button>
            </td>
        </tr>
    </table>
</div>
</body>
<script>
    document.getElementById("select").addEventListener("click", function () {
        window.location.href = "select.html?username=" + encodeURIComponent(username);
    });
    document.getElementById('update').addEventListener('click', function () {
        window.location.href = "../ROOT/update2.html?username=" + encodeURIComponent(username);
    });
    document.getElementById("update2").addEventListener("click", function () {
        window.location.href = "update1.html?username=" + encodeURIComponent(username);
    });
    document.getElementById('daily').addEventListener('click', function () {
        window.location.href = "daily.html?username=" + encodeURIComponent(username);
    });
    document.getElementById("low").addEventListener("click", function () {
        window.location.href = "low.html?username=" + encodeURIComponent(username);
    });

</script>
</html>

daily.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>考勤管理</title>
    <style>
        button {
            display: block;
            margin-top: 10px;
            padding: 10px;
            background-color: #007bff;
            color: #fff;
            border: none;
            border-radius: 3px;
            cursor: pointer;
        }

        .centered-form {
            text-align: center;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            height: 100vh;
        }

        .bordered-form {
            border: 2px solid #000; /* 边框样式 */
            padding: 20px; /* 可选的内边距 */
            background-color: #f0f0f0; /* 可选的背景颜色 */
        }
    </style>
</head>
<body>

<script>
    function getShanghaiTime() {
        var options = {timeZone: 'Asia/Shanghai'};
        return new Date().toLocaleString('en-US', options);
    }

    function formatDate(dateString) {
        var date = new Date(dateString);
        var hours = date.getHours();
        var minutes = date.getMinutes();

        hours = (hours < 10) ? "0" + hours : hours;
        minutes = (minutes < 10) ? "0" + minutes : minutes;

        return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " +
            hours + ":" + minutes;
    }

    function checkIn() {
        var attendanceTime = getShanghaiTime();
        var currentTime = new Date(attendanceTime);
        var hours = currentTime.getHours();
        if (hours >= 8 && hours < 9) {
            alert("打卡成功,已上班");
            document.getElementById("status").innerHTML = "已上班";
            document.getElementById("attendanceTime").innerHTML = "考勤时间:" + formatDate(attendanceTime);
            deal1(0, attendanceTime);
        } else {
            alert("已过上班打卡时间点,打卡无效");
        }
    }

    function checkOut() {
        var attendanceTime = getShanghaiTime();
        var currentTime = new Date(attendanceTime);
        var hours = currentTime.getHours();

        if (hours >= 17) {
            alert("打卡成功,已下班");
            document.getElementById("status").innerHTML = "已下班";
            document.getElementById("attendanceTime").innerHTML = "考勤时间:" + formatDate(attendanceTime);
            deal1(1, formatDate(attendanceTime));
            console.log(formatDate(attendanceTime));
        } else {
            alert("未到下班打卡时间点,打卡无效");
        }
    }
function deal1(type,attendanceTime)
{
    const requestUrl = `http://localhost:8080/staff/count`;
    fetch(requestUrl,
        {
            method: 'GET',
            headers: {
                'Content-Type': 'application/json'
            },
        })
        .then(res => res.json())
        .then(data => {
            deal(data+1,type,attendanceTime);
        })
        .catch(error => {
            alert("请求失败,请重试");
            console.error(error);
        });
}
    function deal(count,type, attendanceTime) {
        var urlParams = new URLSearchParams(window.location.search);
        var id = urlParams.get('username');
        console.log(id);
        const requestUrl = `http://localhost:8080/user/selectById/${id}`;
        fetch(requestUrl,
            {
                method: 'GET',
                headers: {
                    'Content-Type': 'application/json'
                },
            })
            .then(res => res.json())
            .then(data => {
                if (data.msg === 'success') {
                    console.log(data);
                    add(count,data.data, type, attendanceTime);
                } else {
                    alert("查询失败  " + data.msg);
                }
            })
            .catch(error => {
                alert("请求失败,请重试");
                console.error(error);
            });
    }

    function add(count,data, type, attendanceTime) {
        const requestUrl = `http://localhost:8080/staff/add`;
        fetch(requestUrl, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                id:count,
                attendanceTime: attendanceTime,
                jobID: data.jobID,
                name: data.name,
                sex: data.sex,
                department: data.department,
                attendanceType: type
            })
        })
            .then(response => response.json())
            .then(data => {
                if (data.msg === 'success') {
                    alert("打卡信息已添加");
                    console.log(data);
                } else {
                    alert("修改失败");
                }
            })
            .catch(error => {
                alert("请求失败,请重试");
                console.error(error);
            });
    }
</script>
<div class="centered-form">
    <div class="bordered-form">
        <h2>日常考勤管理</h2>
        <br>
        <br>
        <p id="attendanceTime"></p>
        <button onclick="checkIn()" style="display: block; margin: 0 auto;">上班</button>
        <br>
        <br>
        <button onclick="checkOut()" style="display: block; margin: 0 auto;">下班</button>
        <p id="status">考勤状态未知</p>
    </div>
</div>

</body>
</html>

low.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>请假申请</title>
    <style>
        button {
            display: block;
            margin-top: 10px;
            padding: 10px;
            background-color: #007bff;
            color: #fff;
            border: none;
            border-radius: 3px;
            cursor: pointer;
        }

        .centered-form {
            text-align: center;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            height: 100vh;
        }

        .bordered-form {
            border: 2px solid #000; /* 边框样式 */
            padding: 20px; /* 可选的内边距 */
            background-color: #f0f0f0; /* 可选的背景颜色 */
        }
    </style>
</head>
<body>
<div class="centered-form">
    <div class="bordered-form">
        <h1>请假申请</h1>

        <form id="leaveForm">
            <label for="startDate">开始时间:</label>
            <input type="date" id="startDate" required><br>

            <label for="endDate">结束时间:</label>
            <input type="date" id="endDate" required><br>

            <label for="leaveType">请假类型:</label>
            <select id="leaveType" required>
                <option value="病假">病假</option>
                <option value="事假">事假</option>
            </select><br>
            <label for="reason">请假原因:</label>
            <textarea id="reason" required></textarea><br>
            <button type="button" onclick="submitLeave()" style="display: block; margin: 0 auto;">提交</button>
        </form>
    </div>
</div>

<script>
    function submitLeave() {
        // Get form data
        var startDate = document.getElementById('startDate').value;
        var endDate = document.getElementById('endDate').value;
        var leaveType = document.getElementById('leaveType').value;
        var reason = document.getElementById('reason').value;
        const requestUrl = `http://localhost:8080/staff/count`;
        fetch(requestUrl,
            {
                method: 'GET',
                headers: {
                    'Content-Type': 'application/json'
                },
            })
            .then(res => res.json())
            .then(data => {
                deal(data + 1, startDate, endDate, leaveType, reason);
            })
            .catch(error => {
                alert("请求失败,请重试");
                console.error(error);
            });
    }
</script>
<script>
    function deal(count, startDate, endDate, leaveType, reason) {
        var urlParams = new URLSearchParams(window.location.search);
        var id = urlParams.get('username');
        console.log(id);
        const requestUrl = `http://localhost:8080/user/selectById/${id}`;
        fetch(requestUrl,
            {
                method: 'GET',
                headers: {
                    'Content-Type': 'application/json'
                },
            })
            .then(res => res.json())
            .then(data => {
                if (data.msg === 'success') {
                    console.log(data);
                    add(count, data.data, startDate, endDate, leaveType, reason);
                } else {
                    alert("查询失败  " + data.msg);
                }
            })
            .catch(error => {
                alert("请求失败,请重试");
                console.error(error);
            });
    }
</script>
<script>
    function add(count, data, startDate, endDate, leaveType, reason) {
        let s;
        if (leaveType === "事假") {
            s = 2;
        } else if (leaveType === "病假") {
            s = 3;
        }

        // Convert start and end dates to JavaScript Date objects
        const start = new Date(startDate);
        const end = new Date(endDate);

        // Iterate through the date range
        while (start <= end) {
            var leaveRequest = {
                id: count++,
                jobID: data.jobID,
                name: data.name,
                sex: data.sex,
                attendanceTime: start.toISOString().split('T')[0], // Format date as YYYY-MM-DD
                department: data.department,
                attendanceType: s,
                notes: reason,
                approvedType: 0,
            };

            // Send a separate request for each day
            const requestUrl = `http://localhost:8080/staff/add`;
            fetch(requestUrl, {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                },
                body: JSON.stringify(leaveRequest),
            })
                .then(response => response.json())
                .then(data => {
                    console.log(`Leave record for ${start.toISOString().split('T')[0]} created`);
                })
                .catch(error => {
                    console.error('Error:', error);
                });

            // Move to the next day
            start.setDate(start.getDate() + 1);
        }

        alert("请假成功,请等待审批");
    }
</script>

</body>
</html>

select.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>查询个人信息</title>
</head>
<body>
<div id="container">

</div>
</body>
<script>
    // 获取URL中的用户名参数
    var urlParams = new URLSearchParams(window.location.search);
    var id = urlParams.get('username');
    console.log(id);
    const requestUrl = `http://localhost:8080/user/selectById/${id}`;
    fetch(requestUrl,
        {
            method: 'GET',
            headers: {
                'Content-Type': 'application/json'
            },
        })
        .then(res => res.json())
        .then(data => {
            if (data.msg === 'success') {
                console.log(data);
                generateTable(data.data);
            } else {
                alert("查询失败  " + data.msg);
            }
        })
        .catch(error => {
            alert("请求失败,请重试");
            console.error(error);
        });
</script>
<script>
    function generateTable(data) {
        const tableContainer = document.getElementById("container");
        // 清空 tableContainer 中的所有子节点
        while (tableContainer.hasChildNodes()) {
            tableContainer.removeChild(tableContainer.firstChild);
        }
        const table = document.createElement("table");
        const tableBody = document.createElement("tbody");
        let row = document.createElement("tr");
        row.innerHTML = '<td>工号</td><td>姓名</td><td>性别</td><td>出生日期</td><td>部门</td><td>角色</td><td>密码</td>';
        tableBody.appendChild(row);
        row = document.createElement("tr");
        row.innerHTML = `<td>${data.jobID}</td><td>${data.name}</td><td>${data.sex}</td><td>${data.birthday}</td><td>${data.department}</td><td>${data.role}</td><td>${data.password}</td>`;
        tableBody.appendChild(row);
        table.appendChild(tableBody);
        tableContainer.appendChild(table);
    }
</script>
</html>

update1.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>修改密码</title>
    <style>
        button {
            display: block;
            margin-top: 10px;
            padding: 10px;
            background-color: #007bff;
            color: #fff;
            border: none;
            border-radius: 3px;
            cursor: pointer;
        }

        .centered-form {
            text-align: center;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            height: 100vh;
        }

        .bordered-form {
            border: 2px solid #000; /* 边框样式 */
            padding: 20px; /* 可选的内边距 */
            background-color: #f0f0f0; /* 可选的背景颜色 */
        }
    </style>
</head>
<body>
<h1 style="text-align: center">修改密码</h1>
<div class="centered-form">
    <div class="bordered-form">

        <label for="old">旧密码</label>
        <input type="text" id="old" required>
        <br>
        <label for="new1">新密码</label>
        <input type="text" id="new1" required>
        <br>
        <label for="new2">确认新密码</label>
        <input type="text" id="new2" required>
        <div id="match"></div>
        <br>
        <button id="update" style="display: block; margin: 0 auto;">更改密码</button>
    </div>
</div>
</body>
<script>
    const newPassword1 = document.getElementById("new1");
    const newPassword2 = document.getElementById("new2");
    const passwordMatchMessage = document.getElementById("match");

    function checkPasswordMatch() {
        const password1 = newPassword1.value;
        const password2 = newPassword2.value;

        if (password1 === password2) {
            passwordMatchMessage.textContent = "两次密码一致";
            passwordMatchMessage.style.color = "green";
        } else {
            passwordMatchMessage.textContent = "两次密码不一致";
            passwordMatchMessage.style.color = "red";
        }
    }

    newPassword1.addEventListener("input", checkPasswordMatch);
    newPassword2.addEventListener("input", checkPasswordMatch);
</script>
<script>
    var urlParams = new URLSearchParams(window.location.search);
    var id = urlParams.get('username');
    console.log("用户名为:" + id);
    document.getElementById('update').addEventListener('click', function () {
        const requestUrl = `http://localhost:8080/user/selectById/${id}`;
        fetch(requestUrl, {
            method: 'GET',
            headers: {
                'Content-Type': 'application/json'
            },
        })
            .then(response => response.json())
            .then(data => {
                if (data.msg === 'success') {
                    console.log(data);
                    deal(data.data);
                } else {
                    alert("此结果不存在");
                }
            })
            .catch(error => {
                alert("请求失败,请重试");
                console.error(error);
            });
    })
</script>
<script>
    function deal(data) {
        const old = document.getElementById('old').value;
        const new1 = document.getElementById('new1').value;
        const new2 = document.getElementById('new2').value;
        const password = data.password;
        console.log("密码为   " + password);
        if (old !== password) {
            alert("您输入的旧密码有误");
        } else if (old !== password && new1 !== new2) {
            alert("输入的两次密码不一致");
        } else if (old === password && new1 === new2) {
            const requestUrl = `http://localhost:8080/user/update/${id}/${new1}`;
            fetch(requestUrl, {
                method: 'GET',
                headers: {
                    'Content-Type': 'application/json'
                },
            })
                .then(response => response.json())
                .then(data => {
                    if (data.msg === 'success') {
                        alert("修改成功,请您重新登陆");
                        window.location.href = "http://localhost:8080/index.html";
                    } else {
                        alert("修改失败");
                    }
                })
                .catch(error => {
                    alert("请求失败,请重试");
                    console.error(error);
                });
        }
    }
</script>
</html>

 

posted @ 2023-12-18 12:38  七安。  阅读(6)  评论(0编辑  收藏  举报