| | |
| | | reportTime: [{type: 'array', |
| | | required: true, |
| | | message: "报名日期", trigger: "change" |
| | | }], |
| | | }, |
| | | { |
| | | validator: (rule, value, callback) => { |
| | | // 获取活动时间(通过闭包访问表单数据) |
| | | const activityTime = this.activityFrom.time; |
| | | |
| | | // 解析时间(增强健壮性) |
| | | const parseTime = (timeStr) => { |
| | | const date = new Date(timeStr); |
| | | return isNaN(date.getTime()) ? NaN : date.getTime(); |
| | | }; |
| | | |
| | | const reportStart = parseTime(value[0]); |
| | | const reportEnd = parseTime(value[1]); |
| | | const activityStart = parseTime(activityTime[0]); |
| | | const activityEnd = parseTime(activityTime[1]); |
| | | // 核心验证逻辑 |
| | | if (reportStart > activityStart || reportEnd > activityStart) { |
| | | callback(new Error('报名时间段必须在活动开始时间前')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }, |
| | | trigger: 'change' |
| | | } |
| | | ], |
| | | // time: [{type: 'array', |
| | | // required: true, |
| | | // fields: { |
| | |
| | | }else { |
| | | this.activityFrom.endTime = this.activityFrom.time[1] |
| | | } |
| | | |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | this.submitLoading = true |