Explorar o código

Merge branch 'master' of http://47.99.164.66:3000/hzdyjs-xg/all-project

zlwu hai 3 meses
pai
achega
10f90d3824

+ 0 - 6
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;
 

+ 4 - 4
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 | 否 | 英语成绩 |

+ 29 - 12
mobile/src/pages/enrollment/index.vue

@@ -153,7 +153,7 @@
                         ></u-number-box>
                     </u-form-item>
 
-                    <u-form-item label="语文成绩" prop="chineseScore" required>
+                    <u-form-item label="语文成绩" prop="chineseScore">
                         <u-number-box
                             v-model="formData.chineseScore"
                             :min="0"
@@ -162,7 +162,7 @@
                         ></u-number-box>
                     </u-form-item>
 
-                    <u-form-item label="数学成绩" prop="mathScore" required>
+                    <u-form-item label="数学成绩" prop="mathScore">
                         <u-number-box
                             v-model="formData.mathScore"
                             :min="0"
@@ -171,7 +171,7 @@
                         ></u-number-box>
                     </u-form-item>
 
-                    <u-form-item label="英语成绩" prop="englishScore" required>
+                    <u-form-item label="英语成绩" prop="englishScore">
                         <u-number-box
                             v-model="formData.englishScore"
                             :min="0"
@@ -180,7 +180,7 @@
                         ></u-number-box>
                     </u-form-item>
 
-                    <u-form-item label="科学成绩" prop="scienceScore" required>
+                    <u-form-item label="科学成绩" prop="scienceScore">
                         <u-number-box
                             v-model="formData.scienceScore"
                             :min="0"
@@ -189,7 +189,7 @@
                         ></u-number-box>
                     </u-form-item>
 
-                    <u-form-item label="社会成绩" prop="socialScore" required>
+                    <u-form-item label="社会成绩" prop="socialScore">
                         <u-number-box
                             v-model="formData.socialScore"
                             :min="0"
@@ -198,7 +198,7 @@
                         ></u-number-box>
                     </u-form-item>
 
-                    <u-form-item label="体育成绩" prop="peScore" required>
+                    <u-form-item label="体育成绩" prop="peScore">
                         <u-number-box
                             v-model="formData.peScore"
                             :min="0"
@@ -466,6 +466,23 @@ const requiredNumber = (label, min = 0, max) => [
     },
 ];
 
+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('报考专业'),

+ 6 - 6
web/src/views/zsjy/enrollment/apply.vue

@@ -117,36 +117,36 @@
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="语文成绩" prop="chineseScore" required>
+              <el-form-item label="语文成绩" prop="chineseScore">
                 <el-input-number v-model="applyForm.chineseScore" placeholder="请输入语文成绩" :min="0" style="width: 100%" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="数学成绩" prop="mathScore" required>
+              <el-form-item label="数学成绩" prop="mathScore">
                 <el-input-number v-model="applyForm.mathScore" placeholder="请输入数学成绩" :min="0" style="width: 100%" />
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="英语成绩" prop="englishScore" required>
+              <el-form-item label="英语成绩" prop="englishScore">
                 <el-input-number v-model="applyForm.englishScore" placeholder="请输入英语成绩" :min="0" style="width: 100%" />
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="科学成绩" prop="scienceScore" required>
+              <el-form-item label="科学成绩" prop="scienceScore">
                 <el-input-number v-model="applyForm.scienceScore" placeholder="请输入科学成绩" :min="0" style="width: 100%" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="社会成绩" prop="socialScore" required>
+              <el-form-item label="社会成绩" prop="socialScore">
                 <el-input-number v-model="applyForm.socialScore" placeholder="请输入社会成绩" :min="0" style="width: 100%" />
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="体育成绩" prop="peScore" required>
+              <el-form-item label="体育成绩" prop="peScore">
                 <el-input-number v-model="applyForm.peScore" placeholder="请输入体育成绩" :min="0" style="width: 100%" />
               </el-form-item>
             </el-col>

+ 32 - 6
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'),

+ 6 - 6
web/src/views/zsjy/enrollment/index.vue

@@ -295,36 +295,36 @@
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="语文成绩" prop="chineseScore" required>
+              <el-form-item label="语文成绩" prop="chineseScore">
                 <el-input-number v-model="form.chineseScore" placeholder="请输入语文成绩" :min="0" style="width: 100%" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="数学成绩" prop="mathScore" required>
+              <el-form-item label="数学成绩" prop="mathScore">
                 <el-input-number v-model="form.mathScore" placeholder="请输入数学成绩" :min="0" style="width: 100%" />
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="英语成绩" prop="englishScore" required>
+              <el-form-item label="英语成绩" prop="englishScore">
                 <el-input-number v-model="form.englishScore" placeholder="请输入英语成绩" :min="0" style="width: 100%" />
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="科学成绩" prop="scienceScore" required>
+              <el-form-item label="科学成绩" prop="scienceScore">
                 <el-input-number v-model="form.scienceScore" placeholder="请输入科学成绩" :min="0" style="width: 100%" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="社会成绩" prop="socialScore" required>
+              <el-form-item label="社会成绩" prop="socialScore">
                 <el-input-number v-model="form.socialScore" placeholder="请输入社会成绩" :min="0" style="width: 100%" />
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="体育成绩" prop="peScore" required>
+              <el-form-item label="体育成绩" prop="peScore">
                 <el-input-number v-model="form.peScore" placeholder="请输入体育成绩" :min="0" style="width: 100%" />
               </el-form-item>
             </el-col>