11.14

发布时间 2023-12-18 21:17:01作者: 看海不为月

本次我们连着上次的代码继续实现,剩下最后一个教学副院长类

后端

PresidentController

复制代码
package com.example.controller;

import com.example.pojo.Result;
import com.example.service.PresidentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/president")
public class PresidentController {
    @Autowired
    private PresidentService presidentService;

    @GetMapping("/getCollege/{username}")
    public Result getCollege(@PathVariable("username") String username) {
        return Result.success(presidentService.getCollege(username));
    }

    @GetMapping("/getTest/{pro}")
    public Result getTest(@PathVariable("pro") String pro) {
        return Result.success(presidentService.getTest(pro));
    }

    @PostMapping("/pass/{cardID}/{professional}/{f}/{audi}")
    public Result pass(@PathVariable("cardID") String cardID, @PathVariable("professional") String professional, @PathVariable("f") String f, @PathVariable("audi") int audi) {
        presidentService.pass(cardID, professional, f, audi);
        return Result.success(presidentService.getById(cardID));
    }
}
复制代码

PresidentService

复制代码
package com.example.service;


import com.example.mapper.PresidentMapper;
import com.example.pojo.Result;
import com.example.pojo.Teacher;
import com.example.pojo.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class PresidentService {
    @Autowired
    private PresidentMapper presidentMapper;

    public Teacher getCollege(String username) {
        return presidentMapper.getCollege(username);
    }

    public List<Test> getTest(String pro) {
        return presidentMapper.getTest(pro);
    }

    public void pass(String cardID, String professional, String f, int audi) {
        presidentMapper.pass(cardID, professional, f, audi);
    }

    public Test getById(String cardID) {
        return presidentMapper.getById(cardID);
    }
}
复制代码

PresidentMapper

复制代码
package com.example.mapper;

import com.example.pojo.Teacher;
import com.example.pojo.Test;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface PresidentMapper {
    @Select("select * from test.testteacher where TeacherID=#{username}")
    Teacher getCollege(String username);

    @Select("select * from test.test1 where CourseCollege=#{pro}")
    List<Test> getTest(String pro);

    @Update("update  test.test1 set Reasonable=#{professional},ReasonableConclusion=#{f},AuditStatus=#{audi} where CardId=#{cardID}")
    void pass(String cardID, String professional, String f, int audi);

    @Select("select * from test.test1 where CardId=#{cardID}")
    Test getById(String cardID);
}
复制代码

前端

1selectAll,html

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>浏览审批卡</title>
    <style>
        .reSet {
            background-color: #4CAF50;
            color: white;
            border: none;
            padding: 10px 20px;
            text-align: center;
            text-decoration: none;
            display: inline-block;
            font-size: 16px;
            margin: 4px 2px;
            cursor: pointer;
        }

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

        button {
            display: block;
            margin-top: 10px;
            padding: 10px;
            background-color: #007bff;
            color: #fff;
            border: none;
            border-radius: 3px;
            cursor: pointer;
        }
    </style>
</head>
<body>
<h1 style="text-align: center">浏览审批卡信息</h1>
<div class="centered-form">
    <div class="bordered-form">
        <div class="form">
            <div id="container">

            </div>
        </div>
    </div>
</div>
</body>
<script>
    var urlParams = new URLSearchParams(window.location.search);
    var username = urlParams.get('username');
    console.log("用户名为:" + username);
    const requestUrl = `http://localhost:8080/president/getCollege/${username}`;
    fetch(requestUrl,
        {
            method: 'GET',
            headers: {
                'Content-Type': 'application/json'
            },
        })
        .then(response => response.json())
        .then(data => {
            if (data.msg === 'success') {
                console.log(data.data.college);
                getAll(data.data.college);
            } else {
                alert("找不到所对应的学院");
            }
        })
        .catch(error => {
            alert("请求失败,请重试");
            console.error(error);
        });
</script>
<script>
    function getAll(pro) {
        console.log("pro  " + pro);
        const requestUrl = `http://localhost:8080/president/getTest/${pro}`;
        fetch(requestUrl,
            {
                method: 'GET',
                headers: {
                    'Content-Type': 'application/json'
                },
            })
            .then(response => response.json())
            .then(data => {
                if (data.msg === 'success') {
                    console.log("555");
                    generateTable(data.data);
                } else {
                    alert("当前不存在结果");
                }
            })
            .catch(error => {
                alert("请求失败2,请重试");
                console.error(error);
            });
    }
</script>
<script>
    function generateTable(data) {
        const tableContainer = document.getElementById("container");
        // 清空 tableContainer 中的所有子节点
        while (tableContainer.hasChildNodes()) {
            tableContainer.removeChild(tableContainer.firstChild);
        }
        const table = document.createElement("table");
        const tableBody = document.createElement("tbody");
        let row = document.createElement("tr");
        row.innerHTML = '<td>试卷审批卡编号</td><td>申请日期</td><td>课程名称</td><td>任课教师</td><td>课程编号</td><td>课程性质</td><td>学分</td><td>授课班级</td><td>授课专业</td><td>考试方式</td><td>考试日期</td><td>考试人数</td><td>出题方式</td><td>成绩组成</td><td>考核与评价方式</td><td>考核内容合理性分析</td><td>专业审查意见</td><td>专业审查结论</td><td>合理性审查意见</td><td>合理性审查结果</td><td>审核状态</td>';
        tableBody.appendChild(row);
        // 查询方式是按姓名查询或多条查询
        for (let i = 0; i < data.length; i++) {
            let s;
            if (data[i].auditStatus === 0) {
                s = "待审核";
            } else if (data[i].auditStatus === -1) {
                s = "未通过";
            } else if (data[i].auditStatus === 1) {
                s = "已符合";
            } else if (data[i].auditStatus === 2) {
                s = "已通过";
            }
            row = document.createElement("tr");
            let p1 = data[i].professional;
            let p2 = data[i].professionalConclusion;
            if (data[i].professional === null) {
                p1 = "未进行";
                p2 = "未进行";
            }
            let r1 = data[i].reasonable;
            let r2 = data[i].reasonableConclusion;
            if (data[i].reasonable === undefined || data[i].reasonable === null) {
                r1 = "未进行";
                r2 = "未进行";
            }
            console.log("9 " + data[i].auditStatus);
            console.log(s);
            row.innerHTML = `<td>${data[i].cardId}</td><td>${data[i].cardDate}</td><td>${data[i].courseName}</td><td>${data[i].courseTeacher}</td><td>${data[i].courseID}</td><td>${data[i].courseNature}</td><td>${data[i].credit}</td><td>${data[i].courseClass}</td><td>${data[i].courseMajor}</td><td>${data[i].testWay}</td><td>${data[i].testDate}</td><td>${data[i].testCount}</td><td>${data[i].testMethod}</td><td>${data[i].testGrade}</td><td>${data[i].testEvaluation}</td><td>${data[i].testAnalysis}</td><td>${p1}</td><td>${p2}</td><td>${r1}</td><td>${r2}</td><td>${s}</td>`;
            tableBody.appendChild(row);
            table.appendChild(tableBody);
            tableContainer.appendChild(table);
        }
    }
</script>
</html>
复制代码

3Pass.html

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>合理性审查</title>
    <style>
        .reSet {
            background-color: #4CAF50;
            color: white;
            border: none;
            padding: 10px 20px;
            text-align: center;
            text-decoration: none;
            display: inline-block;
            font-size: 16px;
            margin: 4px 2px;
            cursor: pointer;
        }

        .form {
            width: 600px;
            margin: 0 auto;
            /*border: 1px solid red;*/
        }

        .form table {
            margin: 0 auto;
        }

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

        button {
            display: block;
            margin-top: 10px;
            padding: 10px;
            background-color: #007bff;
            color: #fff;
            border: none;
            border-radius: 3px;
            cursor: pointer;
        }

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

        .bordered-form {
            border: 2px solid #000; /* 边框样式 */
            padding: 150px; /* 可选的内边距 */
            background-color: #f0f0f0; /* 可选的背景颜色 */
        }
    </style>
</head>
<body>
<h1 style="text-align: center">专业性审查</h1>
<!--边框居中-->
<div class="centered-form">
    <!--    增加边框-->
    <div class="bordered-form">
        <!--        调整边框大小-->
        <div class="form">
            <form id="pass">
                <label for="cardID">请输入要审查的id号</label>
                <input type="text" id="cardID" name="cardID" required>
                <br>
                <label>学院意见</label>
                <br>
                <label for="class1">考核内容与各课程目标要求掌握的内容的覆盖度:</label>
                <div id="class1">
                    <label><input type="radio" name="class1" value="全覆盖">全覆盖</label>
                    <label><input type="radio" name="class1" value="部分">部分</label>
                    <label><input type="radio" name="class1" value="基本覆盖">基本覆盖</label>
                    <label><input type="radio" name="class1" value="有待提高">有待提高</label>
                </div>
                <label for="purpose">考核方式课程目标要求达到的能力的有效性:</label>
                <div id="purpose">
                    <label><input type="radio" name="purpose" value="非常有效">非常有效</label>
                    <label><input type="radio" name="purpose" value="有效">有效</label>
                    <label><input type="radio" name="purpose" value="基本有效">基本有效</label>
                    <label><input type="radio" name="purpose" value="有待提高">有待提高</label>
                </div>
                <label for="final">试卷合理性审查最终意见:</label>
                <div id="final">
                    <label><input type="radio" name="final" value="通过">通过</label>
                    <label><input type="radio" name="final" value="不通过">不通过</label>
                </div>
                <br>
                <button type="submit" style="display: block; margin: 0 auto;">审批</button>
            </form>
        </div>
    </div>
</div>
</body>
<script>
    document.getElementById('pass').addEventListener('submit', function (event) {
        event.preventDefault();
        const cardID = document.getElementById('cardID').value;
        const class1 = document.querySelectorAll('input[name="class1"]');
        let c;
        class1.forEach(radio => {
            if (radio.checked) {
                c = radio.value;
                console.log(c);
            }
        });
        const purpose = document.querySelectorAll('input[name="purpose"]');
        let p;
        purpose.forEach(radio => {
            if (radio.checked) {
                p = radio.value;
                console.log(p);
            }
        });
        const professional = c + "," + p;
        console.log(professional);
        const final = document.querySelectorAll('input[name="final"]');
        let f;
        final.forEach(radio => {
            if (radio.checked) {
                f = radio.value;
                console.log(f);
            }
        });
        let audi;
        if (f === "通过") {
            audi = 2;

        } else {
            audi = -1;
        }
        const requestUrl = `http://localhost:8080/president/pass/${cardID}/${professional}/${f}/${audi}`;
        fetch(requestUrl,
            {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
            })
            .then(res => res.json())
            .then(data => {
                if (data.msg === 'success') {
                    alert("已完成信息的审查");
                    console.log(data);
                } else {
                    alert("审查失败 " + data.msg);
                }
            })
            .catch(error => {
                alert("请求失败,请重试");
                console.error(error);
            });
    })
</script>
</html>
复制代码

president.html

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>教学副院长页面</title>
    <style>
        .form {
            width: 600px;
            margin: 0 auto;
            /*border: 1px solid red;*/
        }

        .form table {
            margin: 0 auto;
        }

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

        button {
            display: block;
            margin-top: 10px;
            padding: 10px;
            background-color: #007bff;
            color: #fff;
            border: none;
            border-radius: 3px;
            cursor: pointer;
        }
    </style>
</head>
<body>
<h1 style="text-align: center">教学副院长信息管理</h1>
<div class="form">
    <table border="1px" cellspacing="0" width="600px">
        <tr>
            <th>编号</th>
            <th>功能</th>
        </tr>
        <tr>
            <td>1</td>
            <td>
                <button id="selectAll">浏览审批卡</button>
            </td>
        </tr>
        <tr>
            <td>2</td>
            <td>
                <button id="selectTest">查询考试信息</button>
            </td>
        </tr>
        <tr>
            <td>3</td>
            <td>
                <button id="pass">试卷专业性审查</button>
            </td>
        </tr>
    </table>
</div>
</body>
<script>
    var urlParams = new URLSearchParams(window.location.search);
    var username = urlParams.get('username');
    console.log(username);
    document.getElementById("selectAll").addEventListener("click", function () {
        window.location.href = "1seleceAll.html?username=" + encodeURIComponent(username);
    });
    document.getElementById("selectTest").addEventListener("click", function () {
        window.location.href = "../STUDENT/student3.html";
    });
    document.getElementById('pass').addEventListener('click', function () {
        window.location.href = "3Pass.html?username=" + encodeURIComponent(username);
    });
</script>
</html>
复制代码

test.html

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>查询考试信息</title>
    <style>
        .reSet {
            background-color: #4CAF50;
            color: white;
            border: none;
            padding: 10px 20px;
            text-align: center;
            text-decoration: none;
            display: inline-block;
            font-size: 16px;
            margin: 4px 2px;
            cursor: pointer;
        }

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

        button {
            display: block;
            margin-top: 10px;
            padding: 10px;
            background-color: #007bff;
            color: #fff;
            border: none;
            border-radius: 3px;
            cursor: pointer;
        }
    </style>
</head>
<body>
<div class="centered-form">
    <!--    增加边框-->
    <div class="bordered-form">
        <!--        调整边框大小-->
        <div class="form">
            <div id="container">

            </div>
        </div>
    </div>
</div>
</body>
<script>
    var urlParams = new URLSearchParams(window.location.search);
    var courseName = urlParams.has('courseName') ? decodeURI(urlParams.get('courseName')) : '';
    var courseClass = urlParams.has('courseClass') ? decodeURI(urlParams.get('courseClass')) : '';
    var courseMajor = urlParams.has('courseMajor') ? decodeURI(urlParams.get('courseMajor')) : '';

    console.log("用户名为:" + courseName);
    const requestUrl = `http://localhost:8080/user/selectTest/${courseName}/${courseClass}/${courseMajor}`;
    fetch(requestUrl,
        {
            method: 'GET',
            headers: {
                'Content-Type': 'application/json'
            },
        })
        .then(response => response.json())
        .then(data => {
            if (data.msg === 'success') {
                alert("查询成功");
                generateTable(data.data);
            } else {
                alert("查询失败");
            }
        })
        .catch(error => {
            alert("请求失败,请重试");
            console.error(error);
        });
</script>
<script>
    function generateTable(data) {
        const tableContainer = document.getElementById("container");
        // 清空 tableContainer 中的所有子节点
        while (tableContainer.hasChildNodes()) {
            tableContainer.removeChild(tableContainer.firstChild);
        }
        const table = document.createElement("table");
        const tableBody = document.createElement("tbody");
        let row = document.createElement("tr");
        row.innerHTML = '<td>试卷审批卡编号</td><td>申请日期</td><td>课程名称</td><td>任课教师</td><td>课程编号</td><td>课程性质</td><td>学分</td><td>授课班级</td><td>授课专业</td><td>授课学院</td><td>考试方式</td><td>考试日期</td><td>考试人数</td><td>出题方式</td><td>成绩组成</td><td>考核与评价方式</td><td>考核内容合理性分析</td><td>专业审查意见</td><td>专业审查结论</td><td>合理性审查意见</td><td>合理性审查结果</td><td>审核状态</td>';
        tableBody.appendChild(row);
        // 查询方式是按姓名查询或多条查询
        for (let i = 0; i < data.length; i++) {
            let s;
            console.log("222   " + data[i].auditStatus);
            if (data[i].auditStatus === 0) {
                s = "待审核";
            } else if (data[i].auditStatus === -1) {
                s = "未通过";
            } else if (data[i].auditStatus === 1) {
                s = "已符合";
            } else if (data[i].auditStatus === 2) {
                s = "已通过";
            }
            row = document.createElement("tr");
            let p1 = data[i].professional;
            let p2 = data[i].professionalConclusion;
            if (data[i].professional === null) {
                p1 = "未进行";
                p2 = "未进行";
            }
            let r1 = data[i].reasonable;
            let r2 = data[i].reasonableConclusion;
            if (data[i].reasonable === undefined) {
                r1 = "未进行";
                r2 = "未进行";
            }
            row.innerHTML = `<td>${data[i].cardId}</td><td>${data[i].cardDate}</td><td>${data[i].courseName}</td><td>${data[i].courseTeacher}</td><td>${data[i].courseID}</td><td>${data[i].courseNature}</td><td>${data[i].credit}</td><td>${data[i].courseClass}</td><td>${data[i].courseMajor}</td><td>${data[i].courseCollege}</td><td>${data[i].testWay}</td><td>${data[i].testDate}</td><td>${data[i].testCount}</td><td>${data[i].testMethod}</td><td>${data[i].testGrade}</td><td>${data[i].testEvaluation}</td><td>${data[i].testAnalysis}</td><td>${p1}</td><td>${p2}</td><td>${r1}</td><td>${r2}</td><td>${s}</td>`;
            tableBody.appendChild(row);
            table.appendChild(tableBody);
            tableContainer.appendChild(table);
        }
    }
</script>
</html>