加rules有两种方式
el-from上加 :rules="View.rules" 在想校验的字段上加prop
<el-col :span="7">
<el-form-item label="生单时间终点" prop="createTimeTo">
<el-date-picker
class="form-search-long-Item"
size="small"
v-model="View.searchItems.createTimeTo"
type="date"
:editable="false"
format="yyyy-MM-dd"
placeholder="生单时间终点"
@change="date => View.searchItems.createTimeTo = new Date(date).getTime()"
></el-date-picker>
</el-form-item>
</el-col>
data() {
// 生单开始时间不能大于结束时间
const checkCreateTime = (rule, value, callback) => {
if (this.View.searchItems.createTimeFrom > this.View.searchItems.createTimeTo) {
return callback(new Error(rule.message));
} else {
callback();
}
};
// 生单开始时间不能小于结束时间 + 31天
const checkCreateTime2 = (rule, value, callback) => {
const oneDayTime = 24 * 60 * 60 * 1000; // 一天的毫秒数
if (this.View.searchItems.createTimeFrom + oneDayTime * 31 < this.View.searchItems.createTimeTo) {
return callback(new Error(rule.message));
} else {
callback();
}
};
const viewItem = {
searchItems: {
asnCode: '', // 退仓单号
asnType: '', // 退仓类型
poNo: '', // 箱号
status: [100, 200], // 原先
createTimeFrom: startDate, // 生单时间起点
createTimeTo: endDate, // 生单时间终点
},
rules: {
createTimeFrom: [
{ required: true, message: '请输入生单时间起点' },
{ validator: checkCreateTime, message: '生单开始时间不能大于结束时间' },
{ validator: checkCreateTime2, message: '生单开始结束时间相差最多31天' }
],
createTimeTo: [
{ required: true, message: '请输入生单时间终点' },
{ validator: checkCreateTime, message: '生单开始时间不能大于结束时间' },
{ validator: checkCreateTime2, message: '生单开始结束时间相差最多31天' }
]
},
};
}