差旅报销管理系统前端页面

差旅报销管理系统前端页面、

登录页面

<!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;
            background-color: #f7f7f7;
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }

        .login-container {
            background-color: #ffffff;
            padding: 20px;
            border-radius: 5px;
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
            width: 300px;
        }
        /* 提交按钮样式 */
        input[type="submit"] {
            padding: 12px;
            background-color: #5cb85c;
            color: white;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            font-size: 14px; /* 提交按钮字体大小调小为14px */
            transition: background-color 0.3s ease;
        }

        input[type="submit"]:hover {
            background-color: #4cae4c;
        }

        h2 {
            text-align: center;
            color: #333;
            margin-bottom: 20px;
        }

        form {
            display: flex;
            flex-direction: column;
        }

        label {
            margin-bottom: 5px;
            color: #666;
        }

        select {
            margin-bottom: 5px;
            color: #666;
        }

        option {
            margin-bottom: 5px;
            color: #666;
        }

        input[type="text"],
        input[type="password"] {
            padding: 10px;
            margin-bottom: 15px;
            border: 1px solid #ddd;
            border-radius: 4px;
        }

        button {
            padding: 10px;
            background-color: #5cb85c;
            color: white;
            border: none;
            border-radius: 4px;
            cursor: pointer;
            transition: background-color 0.3s ease;
        }

        button:hover {
            background-color: #4cae4c;
        }

        #message {
            margin-top: 10px;
            text-align: center;
        }
    </style>
</head>

<body>
<div class="login-container">
    <h2>请登录</h2>
    <form id="loginForm">
        <label for="userId">职员工号:</label>
        <input type="text" id="userId" name="userId" required>
        <label for="password">密码:</label>
        <input type="text" id="password" name="password" required>
<!--        <label for="identity">身份:</label>-->
<!--        <select id="identity" name="identity" required>-->
<!--            <option value="employee">职员</option>-->
<!--            <option value="personnel">部门经理</option>-->
<!--            <option value="general">总经理</option>-->
<!--            <option value="financial">财务人员</option>-->
<!--        </select>-->
<!--        <input type="submit" value="提交申请">-->
        <button type="button" onclick="login()">登录</button>
    </form>
    <div id="message"></div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>


<script>
    function login() {
        const userId = document.getElementById('userId').value; // 获取用户名输入框的值
        const password = document.getElementById('password').value; // 获取密码输入框的值

        // const userData = {
        //     userId: userId,
        //     password: password
        // };
        $.ajax({
            type:'POST',
            url:'http://localhost:9090/login',
            contentType:'application/json',
            data: JSON.stringify({
                userId: userId,
                password: password
            }),
            success:function(response){

                // 假设后端返回的数据中包含用户角色信息,比如 {role: "职员"} 这样的格式
                const role = response.data.role;
                let redirectUrl = '';
                switch (role) {
                    case "普通职员":
                        redirectUrl = '../RoleFunction/employee.html';
                        break;
                    case "部门经理":
                        redirectUrl = '../RoleFunction/personnel.html';
                        break;
                    case "总经理":
                        redirectUrl = '../RoleFunction/general.html';
                        break;
                    case "财务人员":
                        redirectUrl = '../RoleFunction/financial.html';
                        break;
                    default:
                        alert('未知角色,登录异常');
                        return;
                }
                window.location.href = redirectUrl;
                // window.location.href = '../BTA/personnelMenu.html';
            },
            error: function(error){
                console.error(error);
                alert('登录失败,请稍后再试')
            }
        })

    }
</script>

</body>

</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>
        /* 全局样式 */
        body {
            font-family: Arial, sans-serif;
            background-color: #f7f7f7;
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            overflow: hidden;
        }

        /* 表单容器样式 */
        .form-container {
            background-color: #ffffff;
            padding: 30px;
            border-radius: 10px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 500px;
            text-align: center;
        }

        /* 标题样式 */
        h1 {
            color: #333;
            margin-bottom: 30px;
        }

        /* 表单样式 */
        form {
            display: flex;
            flex-direction: column;
        }

        /* 表单组样式 */
        .form-group {
            margin-bottom: 20px;
            text-align: left;
        }

        /* 标签样式 */
        label {
            display: block;
            margin-bottom: 8px;
            color: #666;
            font-weight: bold;
        }

        /* 输入框样式 */
        input[type="text"],
        input[type="password"] {
            padding: 12px;
            width: 100%;
            border: 1px solid #ddd;
            border-radius: 6px;
            font-size: 16px;
            transition: border-color 0.3s ease;
        }

        input[type="text"]:focus,
        input[type="password"]:focus {
            border-color: #5cb85c;
        }

        /* 提交按钮样式 */
        input[type="submit"] {
            padding: 12px;
            background-color: #5cb85c;
            color: white;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            font-size: 16px;
            transition: background-color 0.3s ease;
        }

        input[type="submit"]:hover {
            background-color: #4cae4c;
        }

        /* 返回按钮样式 */
        .back-button {
            margin-top: 20px;
            padding: 10px 20px;
            background-color: #ccc;
            color: white;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            font-size: 14px;
            transition: background-color 0.3s ease;
        }

        .back-button:hover {
            background-color: #aaa;
        }
    </style>
</head>

<body>
<div class="form-container">
    <h1>注册</h1>
    <form id="reportForm">
        <div class="form-group">
            <label for="userId">职工编号:</label>
            <input type="text" id="userId" name="userId" required>
        </div>
        <div class="form-group">
            <label for="userName">职工姓名:</label>
            <input type="text" id="userName" name="userName" required>
        </div>
        <div class="form-group">
            <label for="department">部门:</label>
            <input type="text" id="department" name="department" required>
        </div>
        <div class="form-group">
            <label for="role">职位:</label>
            <input type="text" id="role" name="role" required>
        </div>
        <div class="form-group">
            <label for="password">密码:</label>
            <input type="password" id="password" name="password" required>
        </div>
        <input type="submit" value="提交">
    </form>
    <div>
        <a href="index.html">
            <button class="back-button">返回主界面</button>
        </a>
    </div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    $(document).ready(function () {
        $('#reportForm').submit(function (e) {
            e.preventDefault();
            let userId = $('#userId').val();
            let userName = $('#userName').val();
            let department = $('#department').val();
            let role = ($('#role').val());
            let password = ($('#password').val());

            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/add',
                contentType: 'application/json',
                data: JSON.stringify({
                    userId: userId,
                    userName: userName,
                    department: department,
                    role: role,
                    password: password
                }),
                success: function () {
                        alert('保存成功!');
                        window.location.href = '../login/index.html';
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });
        });
    });
</script>
</body>

</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>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
        }

        .sidebar {
            background-color: #333; /* 深色背景 */
            color: white; /* 白色文字 */
            width: 200px; /* 增加宽度 */
            height: 98vh; /* 垂直填充整个视口 */
            position: fixed; /* 固定位置 */
            top: 0; /* 顶部对齐 */
            left: 0; /* 左侧对齐 */
            padding-top: 50px; /* 增加顶部内边距 */
            box-shadow: 0 2px 5px rgba(0,0,0,0.2); /* 添加阴影效果 */
            z-index: 1000; /* 确保侧边栏在其他内容之上 */
        }

        .sidebar ul {
            list-style: none; /* 移除列表样式 */
            padding: 0; /* 移除内边距 */
            margin: 0; /* 移除外边距 */
        }

        .sidebar ul li {
            padding: 14px 26px; /* 增加内边距 */
            cursor: pointer; /* 鼠标悬停时显示指针 */
            border-bottom: 1px solid #444; /* 添加分隔线 */
        }

        .sidebar ul li:hover {
            background-color: #555; /* 鼠标悬停时的背景颜色 */
            color: #ddd; /* 鼠标悬停时的文字颜色 */
        }

        .sidebar ul li a {
            color: white; /* 链接颜色 */
            text-decoration: none; /* 移除下划线 */
            display: block; /* 使链接填满整个列表项 */
        }

        .sidebar ul li a:hover {
            color: #ddd; /* 鼠标悬停时的链接颜色 */
        }

        /* 可以添加一个选中状态样式 */
        .sidebar ul li.active {
            background-color: #555; /* 选中状态的背景颜色 */
        }

        /* 为第一个列表项添加不同的样式,因为它不是链接 */
        .sidebar ul li:first-child {
            font-size: 15px; /* 增大字体大小 */
            font-weight: bold; /* 加粗字体 */
            padding: 17px 26px; /* 增加内边距 */
            cursor: default; /* 移除指针 */
        }

        /* 为最后一个列表项添加样式,确保没有底部边框 */
        .sidebar ul li:last-child {
            border-bottom: none;
        }


        .content {
            margin-left: 200px;
            padding: 20px;
        }

        .header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 20px;
        }

        .table {
            width: 100%;
            border-collapse: collapse;
        }

        .table th,
        .table td {
            border: 1px solid #ccc;
            padding: 8px;
            text-align: left;
        }

        .button {
            background-color: green;
            color: white;
            border: none;
            padding: 8px 16px;
            cursor: pointer;
        }

        /* 表单容器样式 */
        .form-container {
            background-color: #ffffff;
            padding: 30px;
            border-radius: 10px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 500px;
            text-align: left;
        }

        /* 标题样式 */
        h1 {
            color: #333;
            margin-bottom: 30px;
            font-size: 20px;
        }

        /* 表单样式 */
        form {
            display: flex;
            flex-direction: column;
        }

        /* 表单组样式 */
        .form-group {
            margin-bottom: 20px;
            text-align: left;
        }

        /* 标签样式 */
        label {
            display: block;
            margin-bottom: 8px;
            color: #666;
            font-weight: bold;
            font-size: 14px;
        }

        /* 输入框样式 */
        input[type="text"],
        input[type="date"] {
            padding: 12px;
            width: 100%;
            border: 1px solid #ddd;
            border-radius: 6px;
            font-size: 14px;
            transition: border-color 0.3s ease;
        }

        input[type="text"]:focus,
        input[type="date"]:focus {
            border-color: #5cb85c;
        }

        /* 提交按钮样式 */
        input[type="submit"] {
            padding: 12px;
            background-color: #5cb85c;
            color: white;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            font-size: 14px;
            transition: background-color 0.3s ease;
        }

        input[type="submit"]:hover {
            background-color: #4cae4c;
        }

        /* 返回按钮样式 */
        .back-button {
            margin-top: 20px;
            padding: 10px 20px;
            background-color: #ccc;
            color: white;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            font-size: 12px;
            transition: background-color 0.3s ease;
        }

        .back-button:hover {
            background-color: #aaa;
        }

        /* 使表单组两列布局 */
        .form-group-two-columns {
            display: flex;
            justify-content: space-between;
        }

        /* 两列布局中每列的样式 */
        .form-group-two-columns > div {
            flex: 1;
            margin-right: 10px;
        }

        /* 去除最后一列的右边距 */
        .form-group-two-columns > div:last-child {
            margin-right: 0;
        }

        /* 查询结果容器样式 */
        .result-container {
            background-color: #ffffff;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 800px;
            margin-top: 20px;
        }

        /* 查询结果项样式 */
        .result-item {
            border-bottom: 1px solid #ddd;
            padding: 10px 0;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        /* 查询结果项内容样式 */
        .result-item-content {
            flex: 1;
        }
        .modal {
            display: none; /* 默认隐藏模态框 */
            position: fixed;
            z-index: 1;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            overflow: auto;
            background-color: rgba(0, 0, 0, 0.4); /* 半透明背景,营造模态效果 */
        }

        .modal-content {
            background-color: #fefefe;
            margin: 15% auto; /* 垂直居中显示 */
            padding: 20px;
            border: 1px solid #888;
            width: 80%;
            max-width: 500px;
            border-radius: 10px;
        }

        .close {
            color: #aaa;
            float: right;
            font-size: 28px;
            font-weight: bold;
            cursor: pointer;
        }

        .close:hover,
        .close:focus {
            color: black;
            text-decoration: none;
            cursor: pointer;
        }
    </style>
</head>

<body>
<div class="sidebar">
    <ul>
        <li>差旅费报销管理系统</li>
        <li>员工信息管理</li>
        <li><a href="/templates/BTA/menu.html">出差申请管理</a></li>
        <li><a href="financialMenu.html">报销差旅费管理</a></li>
        <li>综合管理</li>

    </ul>
</div>
<div class="content">
    <div class="header">
        <h2>出差申请</h2>
    </div>
    <input type="text" placeholder="请输入申请编号查询">
    <button id="queryButton" class="button">查询</button>
    <button id="addButton" class="button">新增</button>
    <button id="deleteApplyForm" class="button">删除</button>
    <button id="updateButton" class="button">更新</button>
<!--    <button id="approvalButton" class="button">审核</button>-->

    <!--    <ul><li><a href="personnelMenu.html">更新</a></li></ul>-->


    <div id="formContainer" style="display:none;">
        <form id="addApplyForm">
            <!-- 使用两列布局展示部分表单组 -->
            <div class="form-group-two-columns">
                <div>
                    <div class="form-group">
                        <label for="applyId">申请编号:</label>
                        <input type="text" id="applyId" name="applyId" required>
                    </div>
                    <div class="form-group">
                        <label for="applyName">申请人姓名:</label>
                        <input type="text" id="applyName" name="applyName" required>
                    </div>
                    <div class="form-group">
                        <label for="department">所在部门:</label>
                        <input type="text" id="department" name="department" required>
                    </div>
                </div>
                <div>
                    <div class="form-group">
                        <label for="destination">目的地:</label>
                        <input type="text" id="destination" name="destination" required>
                    </div>
                    <div class="form-group">
                        <label for="departureDate">出发日期:</label>
                        <input type="date" id="departureDate" name="departureDate" required>
                    </div>
                    <div class="form-group">
                        <label for="returnDate">返回日期:</label>
                        <input type="date" id="returnDate" name="returnDate" required>
                    </div>
                </div>
            </div>
            <div class="form-group">
                <label for="type">申请类型:</label>
                <input type="text" id="type" name="type" required>
            </div>
            <div class="form-group">
                <label for="typeContent">申请类型内容:</label>
                <input type="text" id="typeContent" name="typeContent" required>
            </div>
            <div class="form-group">
                <label for="reason">申请原因:</label>
                <input type="text" id="reason" name="reason" required>
            </div>
            <div class="form-group">
                <label for="state">申请状态:</label>
                <input type="text" id="state" name="state" required>
            </div>
            <div class="form-group">
                <label for="stateReason">状态原因:</label>
                <input type="text" id="stateReason" name="stateReason" required>
            </div>
            <input type="submit" value="提交申请">
        </form>
    </div>
    <div id="updateApplyFormContainer" style="display:none;">
        <form id="updateApplyForm">
            <!-- 使用两列布局展示部分表单组 -->
            <div class="form-group-two-columns">
                <div>
                    <div class="form-group">
                        <label for="updateApplyId">申请编号:</label>
                        <input type="text" id="updateApplyId" name="updateApplyId" readonly required>
                    </div>
                    <div class="form-group">
                        <label for="updateApplyName">申请人姓名:</label>
                        <input type="text" id="updateApplyName" name="updateApplyName" required>
                    </div>
                    <div class="form-group">
                        <label for="updateDepartment">所在部门:</label>
                        <input type="text" id="updateDepartment" name="updateDepartment" required>
                    </div>
                </div>
                <div>
                    <div class="form-group">
                        <label for="updateDestination">目的地:</label>
                        <input type="text" id="updateDestination" name="updateDestination" required>
                    </div>
                    <div class="form-group">
                        <label for="updateDepartureDate">出发日期:</label>
                        <input type="date" id="updateDepartureDate" name="updateDepartureDate" required>
                    </div>
                    <div class="form-group">
                        <label for="updateReturnDate">返回日期:</label>
                        <input type="date" id="updateReturnDate" name="updateReturnDate" required>
                    </div>
                </div>
            </div>
            <div class="form-group">
                <label for="updateType">申请类型:</label>
                <input type="text" id="updateType" name="updateType" required>
            </div>
            <div class="form-group">
                <label for="updateTypeContent">申请类型内容:</label>
                <input type="text" id="updateTypeContent" name="updateTypeContent" required>
            </div>
            <div class="form-group">
                <label for="updateReason">申请原因:</label>
                <input type="text" id="updateReason" name="updateReason" required>
            </div>
            <div class="form-group">
                <label for="updateState">申请状态:</label>
                <input type="text" id="updateState" name="updateState" required>
            </div>
            <div class="form-group">
                <label for="updateStateReason">状态原因:</label>
                <input type="text" id="updateStateReason" name="updateStateReason" required>
            </div>
            <input type="submit" value="更新申请">
        </form>
    </div>
    <!-- 审核模态框 -->
    <div id="approvalModal" class="modal">
        <div class="modal-content">
            <span class="close">&times;</span>
            <h2>审核申请</h2>
            <form id="approvalForm">
                <div class="form-group">
                    <label for="approvalState">申请状态:</label>
                    <input type="text" id="approvalState" name="approvalState" required>
                </div>
                <div class="form-group">
                    <label for="approvalStateReason">状态原因:</label>
                    <input type="text" id="approvalStateReason" name="approvalStateReason" required>
                </div>
                <input type="submit" value="提交审核">
            </form>
        </div>
    </div>
    <div id="resultContainer">
        <!-- 查询结果将动态生成在此处 -->
    </div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    $(document).ready(function () {
        // 点击查询按钮
        $('#queryButton').click(function () {
            let applyId = $('input[type="text"][placeholder="请输入申请编号查询"]').val();
            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/getApply',
                contentType: 'application/json',
                data: JSON.stringify({
                    applyId: applyId
                }),
                success: function (response) {
                    console.log(response);
                    if (response && response.code === 1) {
                        // 成功获取到数据,展示详细信息
                        let resultHtml = '';
                        resultHtml += '<div class="result-item">' +
                            '<div class="result-item-content">' +
                            '<p>申请编号: ' + response.data.applyId + '</p>' +
                            '<p>申请人姓名: ' + response.data.applyName + '</p>' +
                            '<p>所在部门: ' + response.data.department + '</p>' +
                            '<p>目的地: ' + response.data.destination + '</p>' +
                            '<p>出发日期: ' + response.data.departureDate + '</p>' +
                            '<p>返回日期: ' + response.data.returnDate + '</p>' +
                            '<p>申请类型: ' + response.data.type + '</p>' +
                            '<p>申请类型内容: ' + response.data.typeContent + '</p>' +
                            '<p>申请原因: ' + response.data.reason + '</p>' +
                            '<p>申请状态: ' + response.data.state + '</p>' +
                            '<p>状态原因: ' + response.data.stateReason + '</p>' +
                            '</div>' +
                            '</div>';
                        $('#resultContainer').html(resultHtml);
                    } else {
                        console.log('查询失败');
                        alert('查询失败,请稍后重试。');
                    }
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });
        });

        // 点击新增按钮
        $('#addButton').click(function () {
            $('#formContainer').show();
        });

        // 提交新增申请
        $('#addApplyForm').submit(function (e) {
            e.preventDefault();
            let applyId = $('#applyId').val();
            let applyName = $('#applyName').val();
            let department = $('#department').val();
            let destination = $('#destination').val();
            let departureDate = $('#departureDate').val();
            let returnDate = $('#returnDate').val();
            let type = $('#type').val();
            let typeContent = $('#typeContent').val();
            let reason = $('#reason').val();
            let state = $('#state').val();
            let stateReason = $('#stateReason').val();

            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/addApply',
                contentType: 'application/json',
                data: JSON.stringify({
                    applyId: applyId,
                    applyName: applyName,
                    department: department,
                    destination: destination,
                    departureDate: departureDate,
                    returnDate: returnDate,
                    type: type,
                    typeContent: typeContent,
                    reason: reason,
                    state: state,
                    stateReason: stateReason
                }),
                success: function () {
                    alert('添加成功!');
                    window.location.href = 'employeeMenu.html';
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });
        });

        // 删除功能点击事件示例框架,同样需要根据实际情况修改
        $('#deleteApplyForm').click(function () {
            let applyId = $('input[type="text"][placeholder="请输入申请编号查询"]').val();
            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/getApply',
                contentType: 'application/json',
                data: JSON.stringify({
                    applyId: applyId
                }),
                success: function (response) {
                    console.log(response);
                    if (response && response.code === 1) {
                         let states =response.data.state;
                         if(states !== "已通过" && states !== "未通过"){
                             alert('可以进行删除操作');
                             alert(response.data.state);
                             $.ajax({
                                 type: 'DELETE',
                                 url: 'http://localhost:9090/deleteApply',
                                 contentType: 'application/json',
                                 data: JSON.stringify({
                                     applyId: applyId
                                 }),
                                 success: function () {
                                     alert('删除成功!');
                                     // 可根据需要刷新页面或进行其他操作
                                 },
                                 error: function (error) {
                                     console.error(error);
                                     alert('发生错误,请稍后重试。');
                                 }
                             });
                         }
                    } else {
                        console.log('删除失败');
                        alert('删除失败,请稍后重试。');
                    }
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });

        });
        $('#updateButton').click(function () {
            let applyId = $('input[type="text"][placeholder="请输入申请编号查询"]').val();

            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/getApply',
                contentType: 'application/json',
                data: JSON.stringify({
                    applyId: applyId
                }),
                success: function (response) {
                    console.log(response);
                    let states =response.data.state;
                    if (response && response.code === 1) {
                        if(states !== "通过" || states !== "未通过"){
                            console.log('可以进行更新操作');
                            window.location.href = '/templates/BTA/updateBTA.html';
                        }
                    } else {
                        console.log('更新失败');
                        alert('更新失败,请稍后重试。');
                    }
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });

        });
        $('#approvalButton').click(function () {
            $('#approvalModal').show();
        });
        $('.close').click(function () {
            $('#approvalModal').hide();
        });
        $('#approvalForm').submit(function (e) {
            e.preventDefault();
            let approvalState = $('#approvalState').val();
            let approvalStateReason = $('#approvalStateReason').val();
            let applyId = $('input[type="text"][placeholder="请输入申请编号查询"]').val();

            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/updateStates', // 根据实际后端接口调整这里的URL
                contentType: 'application/json',
                data: JSON.stringify({

                    state: approvalState,
                    stateReason: approvalStateReason,
                    applyId: applyId

                }),
                success: function (response) {
                    console.log(response);
                    if (response && response.code === 1) {
                        console.log('审核成功');
                        alert('审核成功!');
                        $('#approvalModal').hide(); // 审核成功后隐藏模态框
                        $('#queryButton').click(); // 刷新查询结果,可根据实际情况调整刷新方式
                    } else {
                        console.log('审核失败');
                        alert('审核失败,请稍后重试。');
                    }
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });
        });

    });
</script>
</body>

</html>


财务人员页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>差旅费报销管理系统</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
        }

        .sidebar {
            background-color: #333; /* 深色背景 */
            color: white; /* 白色文字 */
            width: 200px; /* 增加宽度 */
            height: 98vh; /* 垂直填充整个视口 */
            position: fixed; /* 固定位置 */
            top: 0; /* 顶部对齐 */
            left: 0; /* 左侧对齐 */
            padding-top: 50px; /* 增加顶部内边距 */
            box-shadow: 0 2px 5px rgba(0,0,0,0.2); /* 添加阴影效果 */
            z-index: 1000; /* 确保侧边栏在其他内容之上 */
        }

        .sidebar ul {
            list-style: none; /* 移除列表样式 */
            padding: 0; /* 移除内边距 */
            margin: 0; /* 移除外边距 */
        }

        .sidebar ul li {
            padding: 14px 26px; /* 增加内边距 */
            cursor: pointer; /* 鼠标悬停时显示指针 */
            border-bottom: 1px solid #444; /* 添加分隔线 */
        }

        .sidebar ul li:hover {
            background-color: #555; /* 鼠标悬停时的背景颜色 */
            color: #ddd; /* 鼠标悬停时的文字颜色 */
        }

        .sidebar ul li a {
            color: white; /* 链接颜色 */
            text-decoration: none; /* 移除下划线 */
            display: block; /* 使链接填满整个列表项 */
        }

        .sidebar ul li a:hover {
            color: #ddd; /* 鼠标悬停时的链接颜色 */
        }

        /* 可以添加一个选中状态样式 */
        .sidebar ul li.active {
            background-color: #555; /* 选中状态的背景颜色 */
        }

        /* 为第一个列表项添加不同的样式,因为它不是链接 */
        .sidebar ul li:first-child {
            font-size: 15px; /* 增大字体大小 */
            font-weight: bold; /* 加粗字体 */
            padding: 17px 26px; /* 增加内边距 */
            cursor: default; /* 移除指针 */
        }

        /* 为最后一个列表项添加样式,确保没有底部边框 */
        .sidebar ul li:last-child {
            border-bottom: none;
        }


        .content {
            margin-left: 200px;
            padding: 20px;
        }

        .header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 20px;
        }

        .table {
            width: 100%;
            border-collapse: collapse;
        }

        .table th,
        .table td {
            border: 1px solid #ccc;
            padding: 8px;
            text-align: left;
        }

        .button {
            background-color: green;
            color: white;
            border: none;
            padding: 8px 16px;
            cursor: pointer;
        }

        /* 表单容器样式 */
        .form-container {
            background-color: #ffffff;
            padding: 30px;
            border-radius: 10px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 500px;
            text-align: left;
        }

        /* 标题样式 */
        h1 {
            color: #333;
            margin-bottom: 30px;
            font-size: 20px;
        }

        /* 表单样式 */
        form {
            display: flex;
            flex-direction: column;
        }

        /* 表单组样式 */
        .form-group {
            margin-bottom: 20px;
            text-align: left;
        }

        /* 标签样式 */
        label {
            display: block;
            margin-bottom: 8px;
            color: #666;
            font-weight: bold;
            font-size: 14px;
        }

        /* 输入框样式 */
        input[type="text"],
        input[type="date"] {
            padding: 12px;
            width: 100%;
            border: 1px solid #ddd;
            border-radius: 6px;
            font-size: 14px;
            transition: border-color 0.3s ease;
        }

        input[type="text"]:focus,
        input[type="date"]:focus {
            border-color: #5cb85c;
        }

        /* 提交按钮样式 */
        input[type="submit"] {
            padding: 12px;
            background-color: #5cb85c;
            color: white;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            font-size: 14px;
            transition: background-color 0.3s ease;
        }

        input[type="submit"]:hover {
            background-color: #4cae4c;
        }

        /* 返回按钮样式 */
        .back-button {
            margin-top: 20px;
            padding: 10px 20px;
            background-color: #ccc;
            color: white;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            font-size: 12px;
            transition: background-color 0.3s ease;
        }

        .back-button:hover {
            background-color: #aaa;
        }

        /* 使表单组两列布局 */
        .form-group-two-columns {
            display: flex;
            justify-content: space-between;
        }

        /* 两列布局中每列的样式 */
        .form-group-two-columns > div {
            flex: 1;
            margin-right: 10px;
        }

        /* 去除最后一列的右边距 */
        .form-group-two-columns > div:last-child {
            margin-right: 0;
        }

        /* 查询结果容器样式 */
        .result-container {
            background-color: #ffffff;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 800px;
            margin-top: 20px;
        }

        /* 查询结果项样式 */
        .result-item {
            border-bottom: 1px solid #ddd;
            padding: 10px 0;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        /* 查询结果项内容样式 */
        .result-item-content {
            flex: 1;
        }
        .modal {
            display: none; /* 默认隐藏模态框 */
            position: fixed;
            z-index: 1;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            overflow: auto;
            background-color: rgba(0, 0, 0, 0.4); /* 半透明背景,营造模态效果 */
        }

        .modal-content {
            background-color: #fefefe;
            margin: 15% auto; /* 垂直居中显示 */
            padding: 20px;
            border: 1px solid #888;
            width: 80%;
            max-width: 500px;
            border-radius: 10px;
        }

        .close {
            color: #aaa;
            float: right;
            font-size: 28px;
            font-weight: bold;
            cursor: pointer;
        }

        .close:hover,
        .close:focus {
            color: black;
            text-decoration: none;
            cursor: pointer;
        }
    </style>
</head>
<body>
<div class="sidebar">
    <ul>
        <li>差旅费报销管理系统</li>
        <li><a href="../../login/index.html">员工信息管理</a></li>
        <li><a href="/templates/BTA/menu.html">出差申请管理</a></li>
        <li><a href="../../TravelExpenses/ADUG/TravelExpenses.html">报销差旅费管理</a></li>
        <li>综合管理</li>
    </ul>

</div>
<div class="content">
    <div class="header">
        <h2>报销差旅费</h2>
    </div>
    <input type="text" placeholder="请输入申请编号查询">
    <button id="queryButton" class="button">查询</button>
    <button id="addButton" class="button">新增</button>
    <button id="deleteApplyForm" class="button">删除</button>
    <button id="updateButton" class="button">更新</button>
    <button id="approvalButton" class="button">审核</button>
    <button id="viewSpendAllButton" class="button">查看全部报销申请</button>


    <div id="formContainer" style="display:none;">
        <form id="addSpendForm">
            <!-- 使用两列布局展示部分表单组 -->
            <div class="form-group-two-columns">
                <div>
                    <div class="form-group">
                        <label for="spendId">申请编号:</label>
                        <input type="text" id="spendId" name="spendId" required>
                    </div>
                    <div class="form-group">
                        <label for="spendName">申请人姓名:</label>
                        <input type="text" id="spendName" name="spendName" required>
                    </div>
                    <div class="form-group">
                        <label for="department">所在部门:</label>
                        <input type="text" id="department" name="department" required>
                    </div>
                </div>
                <div>
                    <div class="form-group">
                        <label for="destination">目的地:</label>
                        <input type="text" id="destination" name="destination" required>
                    </div>
                    <div class="form-group">
                        <label for="departureDate">出发日期:</label>
                        <input type="date" id="departureDate" name="departureDate" required>
                    </div>
                    <div class="form-group">
                        <label for="returnDate">返回日期:</label>
                        <input type="date" id="returnDate" name="returnDate" required>
                    </div>
                </div>
            </div>

            <div class="form-group">
                <label for="reason">申请原因:</label>
                <input type="text" id="reason" name="reason" required>
            </div>
            <div class="form-group">
                <label for="startFare">出发车费:</label>
                <input type="text" id="startFare" name="startFare" required>
            </div>
            <div class="form-group">
                <label for="returnFare">返回车费:</label>
                <input type="text" id="returnFare" name="returnFare" required>
            </div>
            <div class="form-group">
                <label for="foodAllowance">伙食补助:</label>
                <input type="text" id="foodAllowance" name="foodAllowance" required>
            </div>
            <div class="form-group">
                <label for="localTrans">公杂补助:</label>
                <input type="text" id="localTrans" name="localTrans" required>
            </div>

            <div class="form-group">
                <label for="accommodation">住宿费:</label>
                <input type="text" id="accommodation" name="accommodation" required>
            </div>
            <div class="form-group">
                <label for="totalAmount">总金额:</label>
                <input type="text" id="totalAmount" name="totalAmount" required>
            </div>
            <div class="form-group">
                <label for="schedule">报销状态:</label>
                <input type="text" id="schedule" name="schedule" required>
            </div>
            <div class="form-group">
                <label for="scheduleReason">审批理由:</label>
                <input type="text" id="scheduleReason" name="scheduleReason" required>
            </div>
            <input type="submit" value="提交申请">
        </form>
    </div>

<!--    <div id="spendAll">-->
<!--        <br><br>-->
<!--        <table id="spendTable">-->

<!--            <thead>-->
<!--            <tr>-->
<!--                <th>报销编号</th>-->
<!--                <th>出差人姓名</th>-->
<!--                <th>所在部门</th>-->
<!--                <th>目的地</th>-->
<!--                <th>出发日期</th>-->
<!--                <th>返回日期</th>-->
<!--                <th>出差事由</th>-->
<!--                <th>出发车费</th>-->
<!--                <th>返回车费</th>-->
<!--                <th>伙食补贴</th>-->
<!--                <th>公杂补贴</th>-->
<!--                <th>住宿费</th>-->
<!--                <th>总金额</th>-->
<!--                <th>报销状态</th>-->
<!--                <th>审批理由</th>-->
<!--            </tr>-->
<!--            </thead>-->
<!--            <tbody>-->
<!--            </tbody>-->
<!--        </table>-->
<!--    </div>-->
    <div id="updateApplyFormContainer" style="display:none;">
        <form id="updateSpendForm">
            <!-- 使用两列布局展示部分表单组 -->
            <div class="form-group-two-columns">
                <div>
                    <div class="form-group">
                        <label for="updateSpendId">申请编号:</label>
                        <input type="text" id="updateSpendId" name="updateSpendId" required>
                    </div>
                    <div class="form-group">
                        <label for="updateSpendName">申请人姓名:</label>
                        <input type="text" id="updateSpendName" name="updateSpendName" required>
                    </div>
                    <div class="form-group">
                        <label for="updateDepartment">所在部门:</label>
                        <input type="text" id="updateDepartment" name="updateDepartment" required>
                    </div>
                </div>
                <div>
                    <div class="form-group">
                        <label for="updateDestination">目的地:</label>
                        <input type="text" id="updateDestination" name="updateDestination" required>
                    </div>
                    <div class="form-group">
                        <label for="updateDepartureDate">出发日期:</label>
                        <input type="date" id="updateDepartureDate" name="updateDepartureDate" required>
                    </div>
                    <div class="form-group">
                        <label for="updateReturnDate">返回日期:</label>
                        <input type="date" id="updateReturnDate" name="updateReturnDate" required>
                    </div>
                </div>
            </div>

            <div class="form-group">
                <label for="updateReason">申请原因:</label>
                <input type="text" id="updateReason" name="updateReason" required>
            </div>
            <div class="form-group">
                <label for="updateStartFare">出发车费:</label>
                <input type="text" id="updateStartFare" name="updateStartFare" required>
            </div>
            <div class="form-group">
                <label for="updateReturnFare">返回车费:</label>
                <input type="text" id="updateReturnFare" name="updateReturnFare" required>
            </div>
            <div class="form-group">
                <label for="updateFoodAllowance">伙食补助:</label>
                <input type="text" id="updateFoodAllowance" name="updateFoodAllowance" required>
            </div>
            <div class="form-group">
                <label for="updateLocalTrans">公杂补助:</label>
                <input type="text" id="updateLocalTrans" name="updateLocalTrans" required>
            </div>
            <div class="form-group">
                <label for="updateAccommodation">住宿费:</label>
                <input type="text" id="updateAccommodation" name="updateAccommodation" required>
            </div>
            <div class="form-group">
                <label for="updateTotalAmount">总金额:</label>
                <input type="text" id="updateTotalAmount" name="updateTotalAmount" required>
            </div>
            <div class="form-group">
                <label for="updateSchedule">报销状态:</label>
                <input type="text" id="updateSchedule" name="updateSchedule" required>
            </div>
            <div class="form-group">
                <label for="updateScheduleReason">审批理由:</label>
                <input type="text" id="updateScheduleReason" name="updateScheduleReason" required>
            </div>

            <input type="submit" value="更新申请">
        </form>
    </div>
    <!-- 审核模态框 -->
    <div id="approvalModal" class="modal">
        <div class="modal-content">
            <span class="close">&times;</span>
            <h2>审核申请</h2>
            <form id="approvalForm">
                <div class="form-group">
                    <label for="approvalSchedule">申请状态:</label>
                    <input type="text" id="approvalSchedule" name="approvalSchedule" required>
                </div>
                <div class="form-group">
                    <label for="approvalScheduleReason">状态原因:</label>
                    <input type="text" id="approvalScheduleReason" name="approvalScheduleReason" required>
                </div>
                <input type="submit" value="提交审核">
            </form>
        </div>
    </div>
    <div id="resultContainer">
        <!-- 查询结果将动态生成在此处 -->
    </div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    $(document).ready(function () {
        $('#querySpendForm').submit(function (e) {
            e.preventDefault();
            let spendId = $('input[type="text"][placeholder="请输入申请编号查询"]').val();

            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/getSpend',
                contentType: 'application/json',
                data: JSON.stringify({
                    spendId: spendId
                }),
                success: function (response) {
                    console.log(response);
                    if (response && response.code === 1) {
                        // 成功获取到数据,展示详细信息
                        let resultHtml = '';
                        resultHtml += '<div class="result-item">' +
                            '<div class="result-item-content">' +
                            '申请编号: ' + response.data.spendId +
                            '<p>申请人姓名: ' + response.data.spendName + '</p>' +
                            '<p>所在部门: ' + response.data.department + '</p>' +
                            '<p>目的地: ' + response.data.destination + '</p>' +
                            '<p>出发日期: ' + response.data.departureDate + '</p>' +
                            '<p>返回日期: ' + response.data.returnDate + '</p>' +
                            '<p>申请原因: ' + response.data.reason + '</p>' +
                            '<p>出发车费: ' + response.data.startFare + '</p>' +
                            '<p>返回车费: ' + response.data.returnFare + '</p>' +
                            '<p>伙食补助: ' + response.data.foodAllowance + '</p>' +
                            '<p>公杂补助: ' + response.data.localTrans + '</p>' +
                            '<p>住宿费: ' + response.data.accommodation + '</p>' +
                            '<p>总金额: ' + response.data.totalAmount + '</p>' +
                            '<p>报销状态: ' + response.data.schedule + '</p>' +
                            '<p>审批理由: ' + response.data.scheduleReason + '</p>' +
                            '</div>' +
                            '</div>';
                        $('#resultContainer').html(resultHtml);
                        alert('查询成功!');
                        window.location.href = '../../RoleFunction/employee.html';
                        // } else if (response && response.code === 0) {
                        //     // 未查询到数据或查询失败,展示相应提示信息
                        //     $('#resultContainer').html('<p>查询失败:' + response.message + '</p>');
                    } else {
                        console.log('查询失败');
                        alert('查询失败,请稍后重试。');
                    }
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });
        });

        // 点击新增按钮
        $('#addButton').click(function () {
            $('#formContainer').show();
        });

        $('#addSpendForm').submit(function (e) {
            e.preventDefault();
            let spendId = $('#spendId').val();
            let spendName = $('#spendName').val();
            let department = $('#department').val();
            let destination = $('#destination').val();
            let departureDate = $('#departureDate').val();
            let returnDate = $('#returnDate').val();
            let reason = $('#reason').val();
            let startFare = $('#startFare').val();
            let returnFare = $('#returnFare').val();
            let foodAllowance = $('#foodAllowance').val();
            let localTrans = $('#localTrans').val();
            let accommodation = $('#accommodation').val();
            let totalAmount = $('#totalAmount').val();
            let schedule = $('#schedule').val();
            let scheduleReason = $('#scheduleReason').val();


            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/addSpend',
                contentType: 'application/json',
                data: JSON.stringify({
                    spendId :spendId,
                    spendName :spendName,
                    department :department,
                    destination :destination,
                    departureDate :departureDate,
                    returnDate :returnDate,
                    // type :type,
                    // typeContent :typeContent,
                    reason :reason,
                    startFare :startFare,
                    returnFare :returnFare,
                    foodAllowance :foodAllowance,
                    localTrans :localTrans,
                    accommodation :accommodation,
                    totalAmount :totalAmount,
                    schedule :schedule,
                    scheduleReason :scheduleReason

                }),
                success: function () {
                    alert('添加成功!');
                    window.location.href = '../RoleFunction/employee.html';
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });
        });

        $('#updateButton').click(function () {
            window.location.href = 'menu.html';
        });
        $('#approval').click(function () {
            // 获取相关数据并发送审核请求到后端
            let schedule = $('#schedule').val();
            let scheduleReason = $('#scheduleReason').val();

            $.ajax({
                type: 'PUT',
                url: 'http://localhost:9090/updateSchedule',
                contentType: 'application/json',
                data: JSON.stringify({
                    schedule: schedule,
                    scheduleReason: scheduleReason

                }),
                success: function (response) {
                    if (response && response.code === 1) {
                        console.log('审核成功');
                        alert('审核成功!');
                        // 可根据需要刷新页面或进行其他操作
                    } else {
                        console.log('审核失败');
                        alert('审核失败,请稍后重试。');
                    }
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });
        });
        $('#viewSpendAllButton').click(function () {
            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/getSpendAll', // 对应后端的/getAll接口
                contentType: 'application/json',
                success: function (response) {
                    console.log(response);
                    if (response && response.length > 0) {
                        const spendTableBody = $('#spendTable tbody');
                        spendTableBody.empty(); // 先清空之前可能存在的数据
                        response.forEach(item => {
                            const rows = $('<tr></tr>');
                            // 根据后端返回的Apply对象的字段,依次添加表格单元格
                            rows.append($('<td></td>').text(item.spendId));
                            rows.append($('<td></td>').text(item.spendName));
                            rows.append($('<td></td>').text(item.department));
                            rows.append($('<td></td>').text(item.destination));
                            rows.append($('<td></td>').text(item.departureDate));
                            rows.append($('<td></td>').text(item.returnDate));
                            rows.append($('<td></td>').text(item.reason));
                            rows.append($('<td></td>').text(item.startFare));
                            rows.append($('<td></td>').text(item.returnFare));
                            rows.append($('<td></td>').text(item.foodAllowance));
                            rows.append($('<td></td>').text(item.localTrans));
                            rows.append($('<td></td>').text(item.accommodation));
                            rows.append($('<td></td>').text(item.totalAmount));
                            rows.append($('<td></td>').text(item.schedule));
                            rows.append($('<td></td>').text(item.scheduleReason));
                            // 根据实际更多的字段继续添加td元素
                            spendTableBody.append(rows);
                        });
                    } else {
                        console.log('暂无数据');
                        alert('暂无报销申请数据,请稍后重试。');
                    }
                },
                error: function (error) {
                    console.error(error);
                    alert('获取数据发生错误,请稍后重试。');
                }
            });
        });


    });
</script>
</body>
</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>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
        }

        .sidebar {
            background-color: #333; /* 深色背景 */
            color: white; /* 白色文字 */
            width: 200px; /* 增加宽度 */
            height: 98vh; /* 垂直填充整个视口 */
            position: fixed; /* 固定位置 */
            top: 0; /* 顶部对齐 */
            left: 0; /* 左侧对齐 */
            padding-top: 50px; /* 增加顶部内边距 */
            box-shadow: 0 2px 5px rgba(0,0,0,0.2); /* 添加阴影效果 */
            z-index: 1000; /* 确保侧边栏在其他内容之上 */
        }

        .sidebar ul {
            list-style: none; /* 移除列表样式 */
            padding: 0; /* 移除内边距 */
            margin: 0; /* 移除外边距 */
        }

        .sidebar ul li {
            padding: 14px 26px; /* 增加内边距 */
            cursor: pointer; /* 鼠标悬停时显示指针 */
            border-bottom: 1px solid #444; /* 添加分隔线 */
        }

        .sidebar ul li:hover {
            background-color: #555; /* 鼠标悬停时的背景颜色 */
            color: #ddd; /* 鼠标悬停时的文字颜色 */
        }

        .sidebar ul li a {
            color: white; /* 链接颜色 */
            text-decoration: none; /* 移除下划线 */
            display: block; /* 使链接填满整个列表项 */
        }

        .sidebar ul li a:hover {
            color: #ddd; /* 鼠标悬停时的链接颜色 */
        }

        /* 可以添加一个选中状态样式 */
        .sidebar ul li.active {
            background-color: #555; /* 选中状态的背景颜色 */
        }

        /* 为第一个列表项添加不同的样式,因为它不是链接 */
        .sidebar ul li:first-child {
            font-size: 15px; /* 增大字体大小 */
            font-weight: bold; /* 加粗字体 */
            padding: 17px 26px; /* 增加内边距 */
            cursor: default; /* 移除指针 */
        }

        /* 为最后一个列表项添加样式,确保没有底部边框 */
        .sidebar ul li:last-child {
            border-bottom: none;
        }


        .content {
            margin-left: 200px;
            padding: 20px;
        }

        .header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 20px;
        }

        .table {
            width: 100%;
            border-collapse: collapse;
        }

        .table th,
        .table td {
            border: 1px solid #ccc;
            padding: 8px;
            text-align: left;
        }

        .button {
            background-color: green;
            color: white;
            border: none;
            padding: 8px 16px;
            cursor: pointer;
        }

        /* 表单容器样式 */
        .form-container {
            background-color: #ffffff;
            padding: 30px;
            border-radius: 10px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 500px;
            text-align: left;
        }

        /* 标题样式 */
        h1 {
            color: #333;
            margin-bottom: 30px;
            font-size: 20px;
        }

        /* 表单样式 */
        form {
            display: flex;
            flex-direction: column;
        }

        /* 表单组样式 */
        .form-group {
            margin-bottom: 20px;
            text-align: left;
        }

        /* 标签样式 */
        label {
            display: block;
            margin-bottom: 8px;
            color: #666;
            font-weight: bold;
            font-size: 14px;
        }

        /* 输入框样式 */
        input[type="text"],
        input[type="date"] {
            padding: 12px;
            width: 100%;
            border: 1px solid #ddd;
            border-radius: 6px;
            font-size: 14px;
            transition: border-color 0.3s ease;
        }

        input[type="text"]:focus,
        input[type="date"]:focus {
            border-color: #5cb85c;
        }

        /* 提交按钮样式 */
        input[type="submit"] {
            padding: 12px;
            background-color: #5cb85c;
            color: white;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            font-size: 14px;
            transition: background-color 0.3s ease;
        }

        input[type="submit"]:hover {
            background-color: #4cae4c;
        }

        /* 返回按钮样式 */
        .back-button {
            margin-top: 20px;
            padding: 10px 20px;
            background-color: #ccc;
            color: white;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            font-size: 12px;
            transition: background-color 0.3s ease;
        }

        .back-button:hover {
            background-color: #aaa;
        }

        /* 使表单组两列布局 */
        .form-group-two-columns {
            display: flex;
            justify-content: space-between;
        }

        /* 两列布局中每列的样式 */
        .form-group-two-columns > div {
            flex: 1;
            margin-right: 10px;
        }

        /* 去除最后一列的右边距 */
        .form-group-two-columns > div:last-child {
            margin-right: 0;
        }

        /* 查询结果容器样式 */
        .result-container {
            background-color: #ffffff;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 800px;
            margin-top: 20px;
        }

        /* 查询结果项样式 */
        .result-item {
            border-bottom: 1px solid #ddd;
            padding: 10px 0;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        /* 查询结果项内容样式 */
        .result-item-content {
            flex: 1;
        }
        .modal {
            display: none; /* 默认隐藏模态框 */
            position: fixed;
            z-index: 1;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            overflow: auto;
            background-color: rgba(0, 0, 0, 0.4); /* 半透明背景,营造模态效果 */
        }

        .modal-content {
            background-color: #fefefe;
            margin: 15% auto; /* 垂直居中显示 */
            padding: 20px;
            border: 1px solid #888;
            width: 80%;
            max-width: 500px;
            border-radius: 10px;
        }

        .close {
            color: #aaa;
            float: right;
            font-size: 28px;
            font-weight: bold;
            cursor: pointer;
        }

        .close:hover,
        .close:focus {
            color: black;
            text-decoration: none;
            cursor: pointer;
        }
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 20px;
            background-color: #f4f4f4;
        }

        h1 {
            text-align: center;
            color: #333;
        }

        table {
            width: 100%;
            border-collapse: collapse;
            background-color: white;
            box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
        }

        thead th {
            background-color: #18680c;
            color: white;
            padding: 10px;
            text-align: left;
        }

        tbody tr {
            border-bottom: 1px solid #ccc;
        }

        tbody tr:last-child {
            border-bottom: none;
        }

        tbody td {
            padding: 8px 10px;
        }
    </style>
</head>

<body>
<div class="sidebar">
    <ul>
        <li>差旅费报销管理系统</li>
        <li><a href="../login/index.html">员工信息管理</a></li>
        <li><a href="/templates/BTA/menu.html">出差申请管理</a></li>
        <li><a href="../TravelExpenses/ADUG/TravelExpenses.html">报销差旅费管理</a></li>
        <li>综合管理</li>

    </ul>
</div>
<div class="content">
    <div class="header">
        <h2>出差申请</h2>
    </div>
    <input type="text" placeholder="请输入申请编号查询">
    <br><br>
    <button id="queryButton" class="button">查询</button>
    <button id="addButton" class="button">新增</button>
    <button id="deleteApplyForm" class="button">删除</button>
    <button id="updateButton" class="button">更新</button>
    <button id="approvalButton" class="button">审核</button>
    <button id="viewApplyAllButton" class="button">查看全部出差申请</button>
    <button id="viewSpendAllButton" class="button">查看全部报销申请</button>

    <!--    <ul><li><a href="personnelMenu.html">更新</a></li></ul>-->


    <div id="formContainer" style="display:none;">
        <form id="addApplyForm">
            <!-- 使用两列布局展示部分表单组 -->
            <div class="form-group-two-columns">
                <div>
                    <div class="form-group">
                        <label for="applyId">申请编号:</label>
                        <input type="text" id="applyId" name="applyId" required>
                    </div>
                    <div class="form-group">
                        <label for="applyName">申请人姓名:</label>
                        <input type="text" id="applyName" name="applyName" required>
                    </div>
                    <div class="form-group">
                        <label for="department">所在部门:</label>
                        <input type="text" id="department" name="department" required>
                    </div>
                </div>
                <div>
                    <div class="form-group">
                        <label for="destination">目的地:</label>
                        <input type="text" id="destination" name="destination" required>
                    </div>
                    <div class="form-group">
                        <label for="departureDate">出发日期:</label>
                        <input type="date" id="departureDate" name="departureDate" required>
                    </div>
                    <div class="form-group">
                        <label for="returnDate">返回日期:</label>
                        <input type="date" id="returnDate" name="returnDate" required>
                    </div>
                </div>
            </div>
            <div class="form-group">
                <label for="type">申请类型:</label>
                <input type="text" id="type" name="type" required>
            </div>
            <div class="form-group">
                <label for="typeContent">申请类型内容:</label>
                <input type="text" id="typeContent" name="typeContent" required>
            </div>
            <div class="form-group">
                <label for="reason">申请原因:</label>
                <input type="text" id="reason" name="reason" required>
            </div>
            <div class="form-group">
                <label for="state">申请状态:</label>
                <input type="text" id="state" name="state" required>
            </div>
            <div class="form-group">
                <label for="stateReason">状态原因:</label>
                <input type="text" id="stateReason" name="stateReason" required>
            </div>
            <input type="submit" value="提交申请">
        </form>
    </div>
    <div id="resultAll">
        <table id="applyTable">
            <thead>
            <br>
            <tr>
                <th>申请编号</th>
                <th>申请人姓名</th>
                <th>所在部门</th>
                <th>目的地</th>
                <th>出发日期</th>
                <th>返回日期</th>
                <th>申请类型</th>
                <th>申请类型内容</th>
                <th>申请原因</th>
                <th>申请状态</th>
                <th>状态原因</th>
                <!-- 根据实际后端返回的Apply对象包含的字段继续添加表头 -->
            </tr>
            </thead>
            <tbody>
            </tbody>
        </table>
    </div>

    <div id="spendAll">
        <br><br>
        <table id="spendTable">

            <thead>
            <tr>
                <th>报销编号</th>
                <th>出差人姓名</th>
                <th>所在部门</th>
                <th>目的地</th>
                <th>出发日期</th>
                <th>返回日期</th>
                <th>出差事由</th>
                <th>出发车费</th>
                <th>返回车费</th>
                <th>伙食补贴</th>
                <th>公杂补贴</th>
                <th>住宿费</th>
                <th>总金额</th>
                <th>报销状态</th>
                <th>审批理由</th>

                <!-- 根据实际后端返回的Apply对象包含的字段继续添加表头 -->
            </tr>
            </thead>
            <tbody>
            </tbody>
        </table>
    </div>
    <div id="updateApplyFormContainer" style="display:none;">
        <form id="updateApplyForm">
            <!-- 使用两列布局展示部分表单组 -->
            <div class="form-group-two-columns">
                <div>
                    <div class="form-group">
                        <label for="updateApplyId">申请编号:</label>
                        <input type="text" id="updateApplyId" name="updateApplyId" readonly required>
                    </div>
                    <div class="form-group">
                        <label for="updateApplyName">申请人姓名:</label>
                        <input type="text" id="updateApplyName" name="updateApplyName" required>
                    </div>
                    <div class="form-group">
                        <label for="updateDepartment">所在部门:</label>
                        <input type="text" id="updateDepartment" name="updateDepartment" required>
                    </div>
                </div>
                <div>
                    <div class="form-group">
                        <label for="updateDestination">目的地:</label>
                        <input type="text" id="updateDestination" name="updateDestination" required>
                    </div>
                    <div class="form-group">
                        <label for="updateDepartureDate">出发日期:</label>
                        <input type="date" id="updateDepartureDate" name="updateDepartureDate" required>
                    </div>
                    <div class="form-group">
                        <label for="updateReturnDate">返回日期:</label>
                        <input type="date" id="updateReturnDate" name="updateReturnDate" required>
                    </div>
                </div>
            </div>
            <div class="form-group">
                <label for="updateType">申请类型:</label>
                <input type="text" id="updateType" name="updateType" required>
            </div>
            <div class="form-group">
                <label for="updateTypeContent">申请类型内容:</label>
                <input type="text" id="updateTypeContent" name="updateTypeContent" required>
            </div>
            <div class="form-group">
                <label for="updateReason">申请原因:</label>
                <input type="text" id="updateReason" name="updateReason" required>
            </div>
            <div class="form-group">
                <label for="updateState">申请状态:</label>
                <input type="text" id="updateState" name="updateState" required>
            </div>
            <div class="form-group">
                <label for="updateStateReason">状态原因:</label>
                <input type="text" id="updateStateReason" name="updateStateReason" required>
            </div>
            <input type="submit" value="更新申请">
        </form>
    </div>
    <!-- 审核模态框 -->
    <div id="approvalModal" class="modal">
        <div class="modal-content">
            <span class="close">&times;</span>
            <h2>审核申请</h2>
            <form id="approvalForm">
                <div class="form-group">
                    <label for="approvalState">申请状态:</label>
                    <input type="text" id="approvalState" name="approvalState" required>
                </div>
                <div class="form-group">
                    <label for="approvalStateReason">状态原因:</label>
                    <input type="text" id="approvalStateReason" name="approvalStateReason" required>
                </div>
                <input type="submit" value="提交审核">
            </form>
        </div>
    </div>
    <div id="resultContainer">
        <!-- 查询结果将动态生成在此处 -->
    </div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    $(document).ready(function () {
        // 点击查询按钮
        $('#queryButton').click(function () {
            let applyId = $('input[type="text"][placeholder="请输入申请编号查询"]').val();
            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/getApply',
                contentType: 'application/json',
                data: JSON.stringify({
                    applyId: applyId
                }),
                success: function (response) {
                    console.log(response);
                    if (response && response.code === 1) {
                        // 成功获取到数据,展示详细信息
                        let resultHtml = '';
                        resultHtml += '<div class="result-item">' +
                            '<div class="result-item-content">' +
                            '<p>申请编号: ' + response.data.applyId + '</p>' +
                            '<p>申请人姓名: ' + response.data.applyName + '</p>' +
                            '<p>所在部门: ' + response.data.department + '</p>' +
                            '<p>目的地: ' + response.data.destination + '</p>' +
                            '<p>出发日期: ' + response.data.departureDate + '</p>' +
                            '<p>返回日期: ' + response.data.returnDate + '</p>' +
                            '<p>申请类型: ' + response.data.type + '</p>' +
                            '<p>申请类型内容: ' + response.data.typeContent + '</p>' +
                            '<p>申请原因: ' + response.data.reason + '</p>' +
                            '<p>申请状态: ' + response.data.state + '</p>' +
                            '<p>状态原因: ' + response.data.stateReason + '</p>' +
                            '</div>' +
                            '</div>';
                        $('#resultContainer').html(resultHtml);
                    } else {
                        console.log('查询失败');
                        alert('查询失败,请稍后重试。');
                    }
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });
        });
        // 点击新增按钮
        $('#addButton').click(function () {
            $('#formContainer').show();
        });
        // 提交新增申请
        $('#addApplyForm').submit(function (e) {
            e.preventDefault();
            let applyId = $('#applyId').val();
            let applyName = $('#applyName').val();
            let department = $('#department').val();
            let destination = $('#destination').val();
            let departureDate = $('#departureDate').val();
            let returnDate = $('#returnDate').val();
            let type = $('#type').val();
            let typeContent = $('#typeContent').val();
            let reason = $('#reason').val();
            let state = $('#state').val();
            let stateReason = $('#stateReason').val();

            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/addApply',
                contentType: 'application/json',
                data: JSON.stringify({
                    applyId: applyId,
                    applyName: applyName,
                    department: department,
                    destination: destination,
                    departureDate: departureDate,
                    returnDate: returnDate,
                    type: type,
                    typeContent: typeContent,
                    reason: reason,
                    state: state,
                    stateReason: stateReason
                }),
                success: function () {
                    alert('添加成功!');
                    window.location.href = 'menu.html';
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });
        });
        // 删除功能点击事件示例框架,同样需要根据实际情况修改
        $('#deleteApplyForm').click(function () {
            let applyId = $('input[type="text"][placeholder="请输入申请编号查询"]').val();
            $.ajax({
                type: 'DELETE',
                url: 'http://localhost:9090/deleteApply',
                contentType: 'application/json',
                data: JSON.stringify({
                    applyId: applyId
                }),
                success: function () {
                    alert('删除成功!');
                    // 可根据需要刷新页面或进行其他操作
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });
        });
        $('#updateButton').click(function () {
            window.location.href = '/templates/BTA/updateBTA.html';
        });
        $('#approvalButton').click(function () {
            $('#approvalModal').show();
        });
        $('.close').click(function () {
            $('#approvalModal').hide();
        });
        $('#approvalForm').submit(function (e) {
            e.preventDefault();
            let approvalState = $('#approvalState').val();
            let approvalStateReason = $('#approvalStateReason').val();
            let applyId = $('input[type="text"][placeholder="请输入申请编号查询"]').val();

            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/updateStates', // 根据实际后端接口调整这里的URL
                contentType: 'application/json',
                data: JSON.stringify({

                    state: approvalState,
                    stateReason: approvalStateReason,
                    applyId: applyId

                }),
                success: function (response) {
                    console.log(response);
                    if (response && response.code === 1) {
                        console.log('审核成功');
                        alert('审核成功!');
                        $('#approvalModal').hide(); // 审核成功后隐藏模态框
                        $('#queryButton').click(); // 刷新查询结果,可根据实际情况调整刷新方式
                    } else {
                        console.log('审核失败');
                        alert('审核失败,请稍后重试。');
                    }
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });
        });

        $('#viewApplyAllButton').click(function () {
            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/getAll', // 对应后端的/getAll接口
                contentType: 'application/json',
                success: function (response) {
                    console.log(response);
                    if (response && response.length > 0) {
                        const tableBody = $('#applyTable tbody');
                        tableBody.empty(); // 先清空之前可能存在的数据
                        response.forEach(item => {
                            const row = $('<tr></tr>');
                            // 根据后端返回的Apply对象的字段,依次添加表格单元格
                            row.append($('<td></td>').text(item.applyId));
                            row.append($('<td></td>').text(item.applyName));
                            row.append($('<td></td>').text(item.department));
                            row.append($('<td></td>').text(item.destination));
                            row.append($('<td></td>').text(item.departureDate));
                            row.append($('<td></td>').text(item.returnDate));
                            row.append($('<td></td>').text(item.type));
                            row.append($('<td></td>').text(item.typeContent));
                            row.append($('<td></td>').text(item.reason));
                            row.append($('<td></td>').text(item.state));
                            row.append($('<td></td>').text(item.stateReason),
                            // 根据实际更多的字段继续添加td元素
                            tableBody.append(row))
                        });
                    } else {
                        console.log('暂无数据');
                        alert('暂无出差申请数据,请稍后重试。');
                    }
                },
                error: function (error) {
                    console.error(error);
                    alert('获取数据发生错误,请稍后重试。');
                }
            });
        });

        $('#viewSpendAllButton').click(function () {
            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/getSpendAll', // 对应后端的/getAll接口
                contentType: 'application/json',
                success: function (response) {
                    console.log(response);
                    if (response && response.length > 0) {
                        const spendTableBody = $('#spendTable tbody');
                        spendTableBody.empty(); // 先清空之前可能存在的数据
                        response.forEach(item => {
                            const rows = $('<tr></tr>');

                            rows.append($('<td></td>').text(item.spendId));
                            rows.append($('<td></td>').text(item.spendName));
                            rows.append($('<td></td>').text(item.department));
                            rows.append($('<td></td>').text(item.destination));
                            rows.append($('<td></td>').text(item.departureDate));
                            rows.append($('<td></td>').text(item.returnDate));
                            rows.append($('<td></td>').text(item.reason));
                            rows.append($('<td></td>').text(item.startFare));
                            rows.append($('<td></td>').text(item.returnFare));
                            rows.append($('<td></td>').text(item.foodAllowance));
                            rows.append($('<td></td>').text(item.localTrans));
                            rows.append($('<td></td>').text(item.accommodation));
                            rows.append($('<td></td>').text(item.totalAmount));
                            rows.append($('<td></td>').text(item.schedule));
                            rows.append($('<td></td>').text(item.scheduleReason));
                            // 根据实际更多的字段继续添加td元素
                            spendTableBody.append(rows);
                        });
                    } else {
                        console.log('暂无数据');
                        alert('暂无报销申请数据,请稍后重试。');
                    }
                },
                error: function (error) {
                    console.error(error);
                    alert('获取数据发生错误,请稍后重试。');
                }
            });
        });

    });
</script>
</body>

</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>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
        }

        .sidebar {
            background-color: #333; /* 深色背景 */
            color: white; /* 白色文字 */
            width: 200px; /* 增加宽度 */
            height: 98vh; /* 垂直填充整个视口 */
            position: fixed; /* 固定位置 */
            top: 0; /* 顶部对齐 */
            left: 0; /* 左侧对齐 */
            padding-top: 50px; /* 增加顶部内边距 */
            box-shadow: 0 2px 5px rgba(0,0,0,0.2); /* 添加阴影效果 */
            z-index: 1000; /* 确保侧边栏在其他内容之上 */
        }

        .sidebar ul {
            list-style: none; /* 移除列表样式 */
            padding: 0; /* 移除内边距 */
            margin: 0; /* 移除外边距 */
        }

        .sidebar ul li {
            padding: 14px 26px; /* 增加内边距 */
            cursor: pointer; /* 鼠标悬停时显示指针 */
            border-bottom: 1px solid #444; /* 添加分隔线 */
        }

        .sidebar ul li:hover {
            background-color: #555; /* 鼠标悬停时的背景颜色 */
            color: #ddd; /* 鼠标悬停时的文字颜色 */
        }

        .sidebar ul li a {
            color: white; /* 链接颜色 */
            text-decoration: none; /* 移除下划线 */
            display: block; /* 使链接填满整个列表项 */
        }

        .sidebar ul li a:hover {
            color: #ddd; /* 鼠标悬停时的链接颜色 */
        }

        /* 可以添加一个选中状态样式 */
        .sidebar ul li.active {
            background-color: #555; /* 选中状态的背景颜色 */
        }

        /* 为第一个列表项添加不同的样式,因为它不是链接 */
        .sidebar ul li:first-child {
            font-size: 15px; /* 增大字体大小 */
            font-weight: bold; /* 加粗字体 */
            padding: 17px 26px; /* 增加内边距 */
            cursor: default; /* 移除指针 */
        }

        /* 为最后一个列表项添加样式,确保没有底部边框 */
        .sidebar ul li:last-child {
            border-bottom: none;
        }


        .content {
            margin-left: 200px;
            padding: 20px;
        }

        .header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 20px;
        }

        .table {
            width: 100%;
            border-collapse: collapse;
        }

        .table th,
        .table td {
            border: 1px solid #ccc;
            padding: 8px;
            text-align: left;
        }

        .button {
            background-color: green;
            color: white;
            border: none;
            padding: 8px 16px;
            cursor: pointer;
        }

        /* 表单容器样式 */
        .form-container {
            background-color: #ffffff;
            padding: 30px;
            border-radius: 10px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 500px;
            text-align: left;
        }

        /* 标题样式 */
        h1 {
            color: #333;
            margin-bottom: 30px;
            font-size: 20px;
        }

        /* 表单样式 */
        form {
            display: flex;
            flex-direction: column;
        }

        /* 表单组样式 */
        .form-group {
            margin-bottom: 20px;
            text-align: left;
        }

        /* 标签样式 */
        label {
            display: block;
            margin-bottom: 8px;
            color: #666;
            font-weight: bold;
            font-size: 14px;
        }

        /* 输入框样式 */
        input[type="text"],
        input[type="date"] {
            padding: 12px;
            width: 100%;
            border: 1px solid #ddd;
            border-radius: 6px;
            font-size: 14px;
            transition: border-color 0.3s ease;
        }

        input[type="text"]:focus,
        input[type="date"]:focus {
            border-color: #5cb85c;
        }

        /* 提交按钮样式 */
        input[type="submit"] {
            padding: 12px;
            background-color: #5cb85c;
            color: white;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            font-size: 14px;
            transition: background-color 0.3s ease;
        }

        input[type="submit"]:hover {
            background-color: #4cae4c;
        }

        /* 返回按钮样式 */
        .back-button {
            margin-top: 20px;
            padding: 10px 20px;
            background-color: #ccc;
            color: white;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            font-size: 12px;
            transition: background-color 0.3s ease;
        }

        .back-button:hover {
            background-color: #aaa;
        }

        /* 使表单组两列布局 */
        .form-group-two-columns {
            display: flex;
            justify-content: space-between;
        }

        /* 两列布局中每列的样式 */
        .form-group-two-columns > div {
            flex: 1;
            margin-right: 10px;
        }

        /* 去除最后一列的右边距 */
        .form-group-two-columns > div:last-child {
            margin-right: 0;
        }

        /* 查询结果容器样式 */
        .result-container {
            background-color: #ffffff;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 800px;
            margin-top: 20px;
        }

        /* 查询结果项样式 */
        .result-item {
            border-bottom: 1px solid #ddd;
            padding: 10px 0;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        /* 查询结果项内容样式 */
        .result-item-content {
            flex: 1;
        }
        .modal {
            display: none; /* 默认隐藏模态框 */
            position: fixed;
            z-index: 1;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            overflow: auto;
            background-color: rgba(0, 0, 0, 0.4); /* 半透明背景,营造模态效果 */
        }

        .modal-content {
            background-color: #fefefe;
            margin: 15% auto; /* 垂直居中显示 */
            padding: 20px;
            border: 1px solid #888;
            width: 80%;
            max-width: 500px;
            border-radius: 10px;
        }

        .close {
            color: #aaa;
            float: right;
            font-size: 28px;
            font-weight: bold;
            cursor: pointer;
        }

        .close:hover,
        .close:focus {
            color: black;
            text-decoration: none;
            cursor: pointer;
        }
    </style>
</head>

<body>
<div class="sidebar">
    <ul>
        <li>差旅费报销管理系统</li>
        <li><a href="../login/index.html">员工信息管理</a></li>
        <li><a href="/templates/BTA/menu.html">出差申请管理</a></li>
        <li><a href="../TravelExpenses/ADUG/TravelExpenses.html">报销差旅费管理</a></li>
        <li>综合管理</li>

    </ul>
</div>
<div class="content">
    <div class="header">
        <h2>出差申请</h2>
    </div>
    <input type="text" placeholder="请输入申请编号查询">
    <button id="queryButton" class="button">查询</button>
    <button id="addButton" class="button">新增</button>
    <button id="deleteApplyForm" class="button">删除</button>
    <button id="updateButton" class="button">更新</button>
    <button id="approvalButton" class="button">审核</button>

    <!--    <ul><li><a href="personnelMenu.html">更新</a></li></ul>-->


    <div id="formContainer" style="display:none;">
        <form id="addApplyForm">
            <!-- 使用两列布局展示部分表单组 -->
            <div class="form-group-two-columns">
                <div>
                    <div class="form-group">
                        <label for="applyId">申请编号:</label>
                        <input type="text" id="applyId" name="applyId" required>
                    </div>
                    <div class="form-group">
                        <label for="applyName">申请人姓名:</label>
                        <input type="text" id="applyName" name="applyName" required>
                    </div>
                    <div class="form-group">
                        <label for="department">所在部门:</label>
                        <input type="text" id="department" name="department" required>
                    </div>
                </div>
                <div>
                    <div class="form-group">
                        <label for="destination">目的地:</label>
                        <input type="text" id="destination" name="destination" required>
                    </div>
                    <div class="form-group">
                        <label for="departureDate">出发日期:</label>
                        <input type="date" id="departureDate" name="departureDate" required>
                    </div>
                    <div class="form-group">
                        <label for="returnDate">返回日期:</label>
                        <input type="date" id="returnDate" name="returnDate" required>
                    </div>
                </div>
            </div>
            <div class="form-group">
                <label for="type">申请类型:</label>
                <input type="text" id="type" name="type" required>
            </div>
            <div class="form-group">
                <label for="typeContent">申请类型内容:</label>
                <input type="text" id="typeContent" name="typeContent" required>
            </div>
            <div class="form-group">
                <label for="reason">申请原因:</label>
                <input type="text" id="reason" name="reason" required>
            </div>
            <div class="form-group">
                <label for="state">申请状态:</label>
                <input type="text" id="state" name="state" required>
            </div>
            <div class="form-group">
                <label for="stateReason">状态原因:</label>
                <input type="text" id="stateReason" name="stateReason" required>
            </div>
            <input type="submit" value="提交申请">
        </form>
    </div>
    <div id="updateApplyFormContainer" style="display:none;">
        <form id="updateApplyForm">
            <!-- 使用两列布局展示部分表单组 -->
            <div class="form-group-two-columns">
                <div>
                    <div class="form-group">
                        <label for="updateApplyId">申请编号:</label>
                        <input type="text" id="updateApplyId" name="updateApplyId" readonly required>
                    </div>
                    <div class="form-group">
                        <label for="updateApplyName">申请人姓名:</label>
                        <input type="text" id="updateApplyName" name="updateApplyName" required>
                    </div>
                    <div class="form-group">
                        <label for="updateDepartment">所在部门:</label>
                        <input type="text" id="updateDepartment" name="updateDepartment" required>
                    </div>
                </div>
                <div>
                    <div class="form-group">
                        <label for="updateDestination">目的地:</label>
                        <input type="text" id="updateDestination" name="updateDestination" required>
                    </div>
                    <div class="form-group">
                        <label for="updateDepartureDate">出发日期:</label>
                        <input type="date" id="updateDepartureDate" name="updateDepartureDate" required>
                    </div>
                    <div class="form-group">
                        <label for="updateReturnDate">返回日期:</label>
                        <input type="date" id="updateReturnDate" name="updateReturnDate" required>
                    </div>
                </div>
            </div>
            <div class="form-group">
                <label for="updateType">申请类型:</label>
                <input type="text" id="updateType" name="updateType" required>
            </div>
            <div class="form-group">
                <label for="updateTypeContent">申请类型内容:</label>
                <input type="text" id="updateTypeContent" name="updateTypeContent" required>
            </div>
            <div class="form-group">
                <label for="updateReason">申请原因:</label>
                <input type="text" id="updateReason" name="updateReason" required>
            </div>
            <div class="form-group">
                <label for="updateState">申请状态:</label>
                <input type="text" id="updateState" name="updateState" required>
            </div>
            <div class="form-group">
                <label for="updateStateReason">状态原因:</label>
                <input type="text" id="updateStateReason" name="updateStateReason" required>
            </div>
            <input type="submit" value="更新申请">
        </form>
    </div>
    <!-- 审核模态框 -->
    <div id="approvalModal" class="modal">
        <div class="modal-content">
            <span class="close">&times;</span>
            <h2>审核申请</h2>
            <form id="approvalForm">
                <div class="form-group">
                    <label for="approvalState">申请状态:</label>
                    <input type="text" id="approvalState" name="approvalState" required>
                </div>
                <div class="form-group">
                    <label for="approvalStateReason">状态原因:</label>
                    <input type="text" id="approvalStateReason" name="approvalStateReason" required>
                </div>
                <input type="submit" value="提交审核">
            </form>
        </div>
    </div>
    <div id="resultContainer">
        <!-- 查询结果将动态生成在此处 -->
    </div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    $(document).ready(function () {
        // 点击查询按钮
        $('#queryButton').click(function () {
            let applyId = $('input[type="text"][placeholder="请输入申请编号查询"]').val();
            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/getApply',
                contentType: 'application/json',
                data: JSON.stringify({
                    applyId: applyId
                }),
                success: function (response) {
                    console.log(response);
                    if (response && response.code === 1) {
                        // 成功获取到数据,展示详细信息
                        let resultHtml = '';
                        resultHtml += '<div class="result-item">' +
                            '<div class="result-item-content">' +
                            '<p>申请编号: ' + response.data.applyId + '</p>' +
                            '<p>申请人姓名: ' + response.data.applyName + '</p>' +
                            '<p>所在部门: ' + response.data.department + '</p>' +
                            '<p>目的地: ' + response.data.destination + '</p>' +
                            '<p>出发日期: ' + response.data.departureDate + '</p>' +
                            '<p>返回日期: ' + response.data.returnDate + '</p>' +
                            '<p>申请类型: ' + response.data.type + '</p>' +
                            '<p>申请类型内容: ' + response.data.typeContent + '</p>' +
                            '<p>申请原因: ' + response.data.reason + '</p>' +
                            '<p>申请状态: ' + response.data.state + '</p>' +
                            '<p>状态原因: ' + response.data.stateReason + '</p>' +
                            '</div>' +
                            '</div>';
                        $('#resultContainer').html(resultHtml);
                    } else {
                        console.log('查询失败');
                        alert('查询失败,请稍后重试。');
                    }
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });
        });

        // 点击新增按钮
        $('#addButton').click(function () {
            $('#formContainer').show();
        });

        // 提交新增申请
        $('#addApplyForm').submit(function (e) {
            e.preventDefault();
            let applyId = $('#applyId').val();
            let applyName = $('#applyName').val();
            let department = $('#department').val();
            let destination = $('#destination').val();
            let departureDate = $('#departureDate').val();
            let returnDate = $('#returnDate').val();
            let type = $('#type').val();
            let typeContent = $('#typeContent').val();
            let reason = $('#reason').val();
            let state = $('#state').val();
            let stateReason = $('#stateReason').val();

            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/addApply',
                contentType: 'application/json',
                data: JSON.stringify({
                    applyId: applyId,
                    applyName: applyName,
                    department: department,
                    destination: destination,
                    departureDate: departureDate,
                    returnDate: returnDate,
                    type: type,
                    typeContent: typeContent,
                    reason: reason,
                    state: state,
                    stateReason: stateReason
                }),
                success: function () {
                    alert('添加成功!');
                    window.location.href = 'menu.html';
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });
        });

        // 删除功能点击事件示例框架,同样需要根据实际情况修改
        $('#deleteApplyForm').click(function () {
            let applyId = $('input[type="text"][placeholder="请输入申请编号查询"]').val();
            $.ajax({
                type: 'DELETE',
                url: 'http://localhost:9090/deleteApply',
                contentType: 'application/json',
                data: JSON.stringify({
                    applyId: applyId
                }),
                success: function () {
                    alert('删除成功!');
                    // 可根据需要刷新页面或进行其他操作
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });
        });
        $('#updateButton').click(function () {
            window.location.href = '/templates/BTA/updateBTA.html';
        });
        $('#approvalButton').click(function () {
            $('#approvalModal').show();
        });
        $('.close').click(function () {
            $('#approvalModal').hide();
        });
        $('#approvalForm').submit(function (e) {
            e.preventDefault();
            let approvalState = $('#approvalState').val();
            let approvalStateReason = $('#approvalStateReason').val();
            let applyId = $('input[type="text"][placeholder="请输入申请编号查询"]').val();

            $.ajax({
                type: 'POST',
                url: 'http://localhost:9090/updateStates', // 根据实际后端接口调整这里的URL
                contentType: 'application/json',
                data: JSON.stringify({

                    state: approvalState,
                    stateReason: approvalStateReason,
                    applyId: applyId

                }),
                success: function (response) {
                    console.log(response);
                    if (response && response.code === 1) {
                        console.log('审核成功');
                        alert('审核成功!');
                        $('#approvalModal').hide(); // 审核成功后隐藏模态框
                        $('#queryButton').click(); // 刷新查询结果,可根据实际情况调整刷新方式
                    } else {
                        console.log('审核失败');
                        alert('审核失败,请稍后重试。');
                    }
                },
                error: function (error) {
                    console.error(error);
                    alert('发生错误,请稍后重试。');
                }
            });
        });

    });
</script>
</body>

</html>

以上内容是部分差旅报销管理页面,整个差旅报销管理题目中描述的部分功能没有实现,还需要继续优化。

posted @ 2024-12-13 15:16  haoyinuo  阅读(25)  评论(0)    收藏  举报