提交代码
This commit is contained in:
1 parent
2e09f12ad8
commit
5f7c6f16c7
6 files changed
+53
-15
No files matched your search
+1
-1
@@ -323,7 +323,7 @@ public class XgDormBedStudentController extends BaseController {
|
||||
|
||||
/**
|
||||
* 根据房间ID获取住在当前房间的所有学生信息
|
||||
* 包含学生姓名、学号、性别、学院名称、专业名称、班级名称
|
||||
* 包含学生姓名、学号、性别、学院名称、专业名称、班级名称、床位编码、床位ID
|
||||
*/
|
||||
@SaCheckPermission("dormBedStudent:dormBedStudent:list")
|
||||
@GetMapping("/getRoomStudents")
|
||||
|
||||
+2
-1
@@ -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,
|
||||
|
||||
+1
-1
@@ -236,7 +236,7 @@ public interface IXgDormBedStudentService {
|
||||
|
||||
/**
|
||||
* 根据房间ID获取住在当前房间的所有学生信息
|
||||
* 包含学生姓名、学号、性别、学院名称、专业名称、班级名称
|
||||
* 包含学生姓名、学号、性别、学院名称、专业名称、班级名称、床位编码、床位ID
|
||||
*
|
||||
* @param roomId 房间ID
|
||||
* @return 房间学生信息列表
|
||||
|
||||
+3
-1
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user