11.10
今天实现的是专业负责人的前后端代码
HeadController
package com.example.controller; import com.example.pojo.Result; import com.example.service.HeadService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/head") public class HeadController { @Autowired private HeadService headService; @GetMapping("/getMajor/{username}") public Result getMajor(@PathVariable("username") String username) { return Result.success(headService.getMajor(username)); } @GetMapping("/getTest/{pro}") public Result getTest(@PathVariable("pro") String pro) { return Result.success(headService.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) { headService.pass(cardID, professional, f, audi); return Result.success(headService.getByID(cardID)); } }
HeadService
package com.example.service; import com.example.mapper.HeadMapper; 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 HeadService { @Autowired private HeadMapper headMapper; public Teacher getMajor(String username) { return headMapper.getMajor(username); } public List<Test> getTest(String pro) { return headMapper.getTest(pro); } public void pass(String cardID, String professional, String f, int audi) { headMapper.pass(cardID, professional, f, audi); } public Test getByID(String cardID) { return headMapper.getByID(cardID); } }
HeadMapper
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 HeadMapper { @Select("select * from testteacher where TeacherID = #{username}") Teacher getMajor(String username); @Select("select * from test1 where test1.CourseMajor =#{pro}") List<Test> getTest(String pro); @Update("update test1 set test1.Professional = #{professional},ProfessionalConclusion=#{f},AuditStatus=#{audi} where test1.CardId = #{cardID}") void pass(String cardID, String professional, String f, int audi); @Select("select * from test1 where test1.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/head/getMajor/${username}`;
fetch(requestUrl,
{
method: 'GET',
headers: {
'Content-Type': 'application/json'
},
})
.then(response => response.json())
.then(data => {
if (data.msg === 'success') {
console.log(data.data.professionals);
getAll(data.data.professionals);
} else {
alert("找不到所对应的专业");
}
})
.catch(error => {
alert("请求失败,请重试");
console.error(error);
});
</script>
<script>
function getAll(pro) {
console.log("pro " + pro);
const requestUrl = `http://localhost:8080/head/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><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 === 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].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>
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="purpose1">考核方式与课程目标达成情况的支持度::</label>
<div id="purpose1">
<label><input type="radio" name="purpose1" value="非常符合">非常支持</label>
<label><input type="radio" name="purpose1" value="支持">支持</label>
<label><input type="radio" name="purpose1" value="基本支持">基本支持</label>
<label><input type="radio" name="purpose1" 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 purpose1 = document.querySelectorAll('input[name="purpose1"]');
let p1;
class1.forEach(radio => {
if (radio.checked) {
p1 = radio.value;
console.log(p1);
}
});
const professional = c + "," + p + "," + p1;
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 = 1;
} else {
audi = -1;
}
const requestUrl = `http://localhost:8080/head/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>
head.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 = "1selectAll.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>

浙公网安备 33010602011771号