提交代码

This commit is contained in:
zlwu committed 2025-08-17 21:43:45 +08:00
1 parent 2e09f12ad8
commit 5f7c6f16c7
6 files changed
+53 -15

No files matched your search

@@ -323,7 +323,7 @@ public class XgDormBedStudentController extends BaseController {
/**
* 根据房间ID获取住在当前房间的所有学生信息
* 包含学生姓名、学号、性别、学院名称、专业名称、班级名称
* 包含学生姓名、学号、性别、学院名称、专业名称、班级名称、床位编码、床位ID
*/
@SaCheckPermission("dormBedStudent:dormBedStudent:list")
@GetMapping("/getRoomStudents")
@@ -143,7 +143,7 @@ public interface XgDormBedStudentMapper extends BaseMapperPlus<XgDormBedStudent,
/**
* 根据房间ID查询住在当前房间的所有学生信息
* 包含学生姓名、学号、性别、学院名称、专业名称、班级名称
* 包含学生姓名、学号、性别、学院名称、专业名称、班级名称、床位编码、床位ID
*
* @param roomId 房间ID
* @return 房间学生信息列表
@@ -160,6 +160,7 @@ public interface XgDormBedStudentMapper extends BaseMapperPlus<XgDormBedStudent,
-- 床位信息
b.bed_name,
b.bed_code,
-- 班级信息
c.class_name,
@@ -236,7 +236,7 @@ public interface IXgDormBedStudentService {
/**
* 根据房间ID获取住在当前房间的所有学生信息
* 包含学生姓名、学号、性别、学院名称、专业名称、班级名称
* 包含学生姓名、学号、性别、学院名称、专业名称、班级名称、床位编码、床位ID
*
* @param roomId 房间ID
* @return 房间学生信息列表
@@ -2270,7 +2270,7 @@ public class XgDormBedStudentServiceImpl implements IXgDormBedStudentService {
/**
* 根据房间ID获取住在当前房间的所有学生信息
* 包含学生姓名、学号、性别、学院名称、专业名称、班级名称
* 包含学生姓名、学号、性别、学院名称、专业名称、班级名称、床位编码、床位ID
*/
@Override
public List<Object> getRoomStudents(Long roomId) {
@@ -2299,6 +2299,8 @@ public class XgDormBedStudentServiceImpl implements IXgDormBedStudentService {
// 床位信息
studentInfo.put("bedName", detailMap.get("bed_name"));
studentInfo.put("bedCode", detailMap.get("bed_code"));
studentInfo.put("bedId", detailMap.get("bed_id"));
result.add(studentInfo);
}
+39 -6
View File
@@ -186,7 +186,7 @@
<u-form-item label="宿舍总分" prop="totalScore" required>
<u-input
v-model="formData.totalScore"
type="number"
type="digit"
placeholder="请输入宿舍总分(0-100分)"
@input="handleTotalScoreChange"
/>
@@ -236,7 +236,7 @@
<text class="form-label">个人得分</text>
<u-input
v-model="student.student_score"
type="number"
type="digit"
placeholder="0-100分"
size="small"
style="
@@ -678,11 +678,24 @@ export default {
checkLevel: [{ required: true, message: '请选择检查级别', trigger: 'change' }],
hygieneGrade: [{ required: true, message: '请选择卫生等级', trigger: 'change' }],
totalScore: [
{ required: true, message: '请输入宿舍总分', trigger: 'blur' },
{
pattern: /^([0-9]|[1-9]\d|100)$/,
message: '宿舍总分必须是0-100之间的整数',
required: true,
message: '请输入宿舍总分',
trigger: 'blur',
validator: (rule, value, callback) => {
if (value === null || value === undefined || value === '') {
callback(new Error('请输入宿舍总分'));
} else {
const numValue = Number(value);
if (isNaN(numValue)) {
callback(new Error('宿舍总分必须是数字'));
} else if (numValue < 0 || numValue > 100) {
callback(new Error('宿舍总分必须在0-100之间'));
} else {
callback();
}
}
},
},
],
},
@@ -1092,6 +1105,14 @@ export default {
if (res && res.code === 200 && res.data) {
Object.assign(this.formData, res.data);
// 确保totalScore为字符串类型,避免验证问题
if (
this.formData.totalScore !== null &&
this.formData.totalScore !== undefined
) {
this.formData.totalScore = String(this.formData.totalScore);
}
// 设置时间显示
if (this.formData.checkDate) {
const date = new Date(this.formData.checkDate);
@@ -1226,6 +1247,8 @@ export default {
student_grade: item.studentGrade || 'A',
showAttendancePicker: false,
showGradePicker: false,
bedCode: item.bedCode,
bedName: item.bedCode,
}));
return;
}
@@ -1501,6 +1524,11 @@ export default {
// 总分变化处理
handleTotalScoreChange() {
// 确保totalScore为字符串类型,避免验证问题
if (this.formData.totalScore !== null && this.formData.totalScore !== undefined) {
this.formData.totalScore = String(this.formData.totalScore);
}
const score = parseFloat(this.formData.totalScore);
// 验证分数范围
@@ -2515,7 +2543,8 @@ export default {
majorName: student.majorName,
collegeName: student.collegeName,
bedId: student.bedId,
bedCode: student.bedName,
bedCode: student.bedCode,
bedName: student.bedName,
studentScore: student.student_score ? Number(student.student_score) : undefined,
attendanceStatus: student.attendance_status,
studentGrade: student.student_grade,
@@ -2529,6 +2558,10 @@ export default {
// 构建提交数据
const submitData = {
...this.formData,
// 确保totalScore为数字类型
totalScore: this.formData.totalScore
? Number(this.formData.totalScore)
: undefined,
studentScores: studentScores,
};
@@ -744,18 +744,19 @@ const submitForm = () => {
// 处理学生信息数据,转换为符合API接口的格式
const studentScores = roomStudents.value.map((student: any) => {
const studentScore: any = {
studentId: Number(student.studentId), // 确保是数字类型
studentId: student.studentId, // 保持原始类型,避免精度丢失
studentName: student.studentName,
studentNo: student.studentNo,
className: student.className,
majorName: student.majorName,
collegeName: student.collegeName,
bedId: student.bedId ? Number(student.bedId) : undefined,
bedCode: student.bedName, // 使用bedName作为bedCode
studentScore: student.student_score ? Number(student.student_score) : undefined, // 确保是数字类型
bedId: student.bedId, // 保持原始类型,避免精度丢失
bedCode: student.bedCode,
bedName: student.bedName,
studentScore: student.student_score ? Number(student.student_score) : undefined, // 分数可以安全转换为数字
attendanceStatus: student.attendance_status,
studentGrade: student.student_grade,
isResponsiblePerson: student.isResponsiblePerson ? Number(student.isResponsiblePerson) : 0, // 确保是数字类型
isResponsiblePerson: student.isResponsiblePerson ? Number(student.isResponsiblePerson) : 0, // 布尔值转换安全
scoreRemarks: student.scoreRemarks || '',
improvementNotes: student.improvementNotes || ''
};
@@ -1132,6 +1133,7 @@ const loadRoomStudents = async () => {
collegeName: studentScore.collegeName,
bedId: studentScore.bedId,
bedName: studentScore.bedCode, // 使用bedCode作为bedName显示
bedCode: studentScore.bedCode,
gender: studentScore.gender || '1', // 默认女性,如果没有性别字段
// 使用历史评分数据
student_score: studentScore.studentScore || null,