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