11.14
本次我们连着上次的代码继续实现,剩下最后一个教学副院长类
后端
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>

浙公网安备 33010602011771号