Эх сурвалжийг харах

feat: 新增考生所有数据必填

zhangjie 11 сар өмнө
parent
commit
34dabecbc2

+ 72 - 4
src/modules/client/components/ManualBindDialog.vue

@@ -123,6 +123,7 @@
         <el-form-item
           v-for="field in extendFields"
           :key="field.code"
+          :prop="field.code"
           :label="`${field.name}:`"
         >
           <el-input
@@ -187,7 +188,7 @@ export default {
       modalIsShow: false,
       releaseStudent: null,
       modalForm: { ...initModalForm },
-      rules: {
+      commonRules: {
         studentName: [
           {
             required: true,
@@ -213,6 +214,11 @@ export default {
           },
         ],
         collegeName: [
+          {
+            required: true,
+            message: "请输入学院",
+            trigger: "change",
+          },
           {
             message: "学院不能超过50字符",
             max: 50,
@@ -220,6 +226,11 @@ export default {
           },
         ],
         majorName: [
+          {
+            required: true,
+            message: "请输入专业",
+            trigger: "change",
+          },
           {
             message: "专业不能超过50字符",
             max: 50,
@@ -227,6 +238,11 @@ export default {
           },
         ],
         className: [
+          {
+            required: true,
+            message: "请输入班级",
+            trigger: "change",
+          },
           {
             message: "班级不能超过50字符",
             max: 50,
@@ -234,6 +250,11 @@ export default {
           },
         ],
         teacher: [
+          {
+            required: true,
+            message: "请输入任课老师",
+            trigger: "change",
+          },
           {
             message: "任课老师不能超过30字符",
             max: 30,
@@ -241,6 +262,11 @@ export default {
           },
         ],
         teachClass: [
+          {
+            required: true,
+            message: "请输入教学班",
+            trigger: "change",
+          },
           {
             message: "教学班不能超过50字符",
             max: 50,
@@ -272,12 +298,24 @@ export default {
           },
         ],
         examRoom: [
+          {
+            required: true,
+            message: "请输入考场",
+            trigger: "change",
+          },
           {
             message: "考场不能超过50字符",
             max: 50,
             trigger: "change",
           },
         ],
+        score: [
+          {
+            required: true,
+            message: "请输入成绩",
+            trigger: "change",
+          },
+        ],
         remark: [
           {
             message: "备注不能超过50字符",
@@ -286,6 +324,7 @@ export default {
           },
         ],
       },
+      rules: {},
       extendFields: [],
     };
   },
@@ -308,6 +347,18 @@ export default {
       };
     },
   },
+  watch: {
+    editDisabled(val, oldval) {
+      if (val !== oldval) {
+        const staticFields = ["studentCode", "remark"];
+        Object.keys(this.rules).forEach((k) => {
+          if (staticFields.includes(k)) return;
+
+          this.rules[k][0].required = !val;
+        });
+      }
+    },
+  },
   methods: {
     async getExtendFields() {
       const res = await fieldListQuery();
@@ -316,6 +367,23 @@ export default {
       this.extendFields = fields.filter(
         (item) => !item.basicField && item.enable
       );
+      const extendFieldRules = {};
+      this.extendFields.forEach((field) => {
+        extendFieldRules[field.code] = [
+          {
+            required: true,
+            message: `请输入${field.name}`,
+            trigger: "change",
+          },
+          {
+            message: `${field.name}不能超过50字符`,
+            max: 50,
+            trigger: "change",
+          },
+        ];
+      });
+
+      this.rules = { ...this.commonRules, ...extendFieldRules };
     },
     async visibleChange() {
       await this.getExtendFields();
@@ -410,11 +478,11 @@ export default {
       });
     },
     async submit() {
-      const valid = await this.$refs.modalFormComp.validate().catch(() => {});
-      if (!valid) return;
-
       const datas = this.$objAssign(initModalForm, this.modalForm);
+
       if (!this.editDisabled) {
+        const valid = await this.$refs.modalFormComp.validate().catch(() => {});
+        if (!valid) return;
         // 新创建的考生,先保存
         if (this.extendFields.length) {
           const extendFieldsData = this.extendFields.map((field) => {