diff --git a/backend/ruoyi-modules/ruoyi-zsjy/src/main/java/org/dromara/zsjy/domain/bo/ZsjyEnrollmentInfoBo.java b/backend/ruoyi-modules/ruoyi-zsjy/src/main/java/org/dromara/zsjy/domain/bo/ZsjyEnrollmentInfoBo.java index e222fae9..a3c1fbce 100644 --- a/backend/ruoyi-modules/ruoyi-zsjy/src/main/java/org/dromara/zsjy/domain/bo/ZsjyEnrollmentInfoBo.java +++ b/backend/ruoyi-modules/ruoyi-zsjy/src/main/java/org/dromara/zsjy/domain/bo/ZsjyEnrollmentInfoBo.java @@ -124,42 +124,36 @@ public class ZsjyEnrollmentInfoBo extends BaseEntity { /** * 语文成绩 */ - @NotNull(message = "语文成绩不能为空", groups = { AddGroup.class, EditGroup.class }) @DecimalMin(value = "0.0", message = "语文成绩不能小于0", groups = { AddGroup.class, EditGroup.class }) private BigDecimal chineseScore; /** * 数学成绩 */ - @NotNull(message = "数学成绩不能为空", groups = { AddGroup.class, EditGroup.class }) @DecimalMin(value = "0.0", message = "数学成绩不能小于0", groups = { AddGroup.class, EditGroup.class }) private BigDecimal mathScore; /** * 英语成绩 */ - @NotNull(message = "英语成绩不能为空", groups = { AddGroup.class, EditGroup.class }) @DecimalMin(value = "0.0", message = "英语成绩不能小于0", groups = { AddGroup.class, EditGroup.class }) private BigDecimal englishScore; /** * 科学成绩 */ - @NotNull(message = "科学成绩不能为空", groups = { AddGroup.class, EditGroup.class }) @DecimalMin(value = "0.0", message = "科学成绩不能小于0", groups = { AddGroup.class, EditGroup.class }) private BigDecimal scienceScore; /** * 社会成绩 */ - @NotNull(message = "社会成绩不能为空", groups = { AddGroup.class, EditGroup.class }) @DecimalMin(value = "0.0", message = "社会成绩不能小于0", groups = { AddGroup.class, EditGroup.class }) private BigDecimal socialScore; /** * 体育成绩 */ - @NotNull(message = "体育成绩不能为空", groups = { AddGroup.class, EditGroup.class }) @DecimalMin(value = "0.0", message = "体育成绩不能小于0", groups = { AddGroup.class, EditGroup.class }) private BigDecimal peScore; diff --git a/docs/开发文档/API/招生报名管理API.md b/docs/开发文档/API/招生报名管理API.md index 8106f08c..f4916be5 100644 --- a/docs/开发文档/API/招生报名管理API.md +++ b/docs/开发文档/API/招生报名管理API.md @@ -151,8 +151,8 @@ | middleSchool | String | 否 | 初中毕业学校 | | examNumber | String | 否 | 准考证号 | | examRegion | String | 否 | 中考地区 | -| totalScoreFull | Integer | 否 | 中考满分 | -| totalScore | Integer | 否 | 中考总分 | +| totalScoreFull | Integer | 是 | 中考满分 | +| totalScore | Integer | 是 | 中考总分(含体育) | | chineseScore | BigDecimal | 否 | 语文成绩 | | mathScore | BigDecimal | 否 | 数学成绩 | | englishScore | BigDecimal | 否 | 英语成绩 | @@ -200,8 +200,8 @@ | middleSchool | String | 否 | 初中毕业学校 | | examNumber | String | 否 | 准考证号 | | examRegion | String | 否 | 中考地区 | -| totalScoreFull | Integer | 否 | 中考满分 | -| totalScore | Integer | 否 | 中考总分 | +| totalScoreFull | Integer | 是 | 中考满分 | +| totalScore | Integer | 是 | 中考总分(含体育) | | chineseScore | BigDecimal | 否 | 语文成绩 | | mathScore | BigDecimal | 否 | 数学成绩 | | englishScore | BigDecimal | 否 | 英语成绩 | diff --git a/mobile/src/pages/enrollment/index.vue b/mobile/src/pages/enrollment/index.vue index 12878ce6..fedbaaa2 100644 --- a/mobile/src/pages/enrollment/index.vue +++ b/mobile/src/pages/enrollment/index.vue @@ -153,7 +153,7 @@ > - + - + - + - + - + - + [ }, ]; +const optionalNumber = (label, min = 0, max) => [ + { + validator: (rule, value, callback) => { + if (value === null || value === undefined || value === '') { + callback(); + } else if (Number(value) < min) { + callback(new Error(`${label}不能小于${min}`)); + } else if (max !== undefined && Number(value) > max) { + callback(new Error(`${label}不能大于${max}`)); + } else { + callback(); + } + }, + trigger: ['blur', 'change'], + }, +]; + export default { name: 'EnrollmentIndex', data() { @@ -583,12 +600,12 @@ export default { examRegion: requiredText('中考地区'), totalScoreFull: requiredNumber('中考满分', 100, 1000), totalScore: requiredNumber('中考成绩', 0), - chineseScore: requiredNumber('语文成绩', 0), - mathScore: requiredNumber('数学成绩', 0), - englishScore: requiredNumber('英语成绩', 0), - scienceScore: requiredNumber('科学成绩', 0), - socialScore: requiredNumber('社会成绩', 0), - peScore: requiredNumber('体育成绩', 0), + chineseScore: optionalNumber('语文成绩', 0), + mathScore: optionalNumber('数学成绩', 0), + englishScore: optionalNumber('英语成绩', 0), + scienceScore: optionalNumber('科学成绩', 0), + socialScore: optionalNumber('社会成绩', 0), + peScore: optionalNumber('体育成绩', 0), collegeName: requiredText('所属学院'), collegeId: requiredText('学院代码'), appliedMajor: requiredText('报考专业'), diff --git a/web/src/views/zsjy/enrollment/apply.vue b/web/src/views/zsjy/enrollment/apply.vue index 5bdb597e..c431c8a5 100644 --- a/web/src/views/zsjy/enrollment/apply.vue +++ b/web/src/views/zsjy/enrollment/apply.vue @@ -117,36 +117,36 @@ - + - + - + - + - + - + diff --git a/web/src/views/zsjy/enrollment/enrollmentFormRules.ts b/web/src/views/zsjy/enrollment/enrollmentFormRules.ts index eb1a9080..7dc55564 100644 --- a/web/src/views/zsjy/enrollment/enrollmentFormRules.ts +++ b/web/src/views/zsjy/enrollment/enrollmentFormRules.ts @@ -18,6 +18,32 @@ const requiredNumber = (label: string, min: number, max?: number) => { return rules; }; +/** 选填数字:为空跳过,有值时校验范围 */ +const optionalNumber = (label: string, min: number, max?: number) => { + const rules: FormRules[string] = [ + { + validator: (_rule, value, callback) => { + if (value === undefined || value === null || value === '') { + callback(); + return; + } + const num = Number(value); + if (Number.isNaN(num) || num < min) { + callback(new Error(`${label}不能小于${min}`)); + return; + } + if (max !== undefined && num > max) { + callback(new Error(`${label}不能大于${max}`)); + return; + } + callback(); + }, + trigger: 'blur' + } + ]; + return rules; +}; + /** 招生报名信息表单校验(特长爱好、获奖情况除外) */ export const enrollmentFormRules: FormRules = { name: requiredText('姓名'), @@ -44,12 +70,12 @@ export const enrollmentFormRules: FormRules = { examRegion: requiredText('中考地区'), totalScoreFull: requiredNumber('中考满分', 100, 1000), totalScore: requiredNumber('中考成绩', 0), - chineseScore: requiredNumber('语文成绩', 0), - mathScore: requiredNumber('数学成绩', 0), - englishScore: requiredNumber('英语成绩', 0), - scienceScore: requiredNumber('科学成绩', 0), - socialScore: requiredNumber('社会成绩', 0), - peScore: requiredNumber('体育成绩', 0), + chineseScore: optionalNumber('语文成绩', 0), + mathScore: optionalNumber('数学成绩', 0), + englishScore: optionalNumber('英语成绩', 0), + scienceScore: optionalNumber('科学成绩', 0), + socialScore: optionalNumber('社会成绩', 0), + peScore: optionalNumber('体育成绩', 0), collegeName: requiredText('所属学院', 'change'), collegeId: requiredText('学院代码'), appliedMajor: requiredText('报考专业', 'change'), diff --git a/web/src/views/zsjy/enrollment/index.vue b/web/src/views/zsjy/enrollment/index.vue index e4d33fa5..8229f41e 100644 --- a/web/src/views/zsjy/enrollment/index.vue +++ b/web/src/views/zsjy/enrollment/index.vue @@ -295,36 +295,36 @@ - + - + - + - + - + - +