遇到的问题
1.表格验证未填写,但是没有填写,没有出现左上角的提示标记
原因:
1.两个都要存在
2.数据校验问题
问题1:编辑表格校验,根据条件判断该行的某个属性是否必填进行校验
1.vxe-table 标签加入属性
:edit-rules="validRules"
2.定义validRules,根据其他字段的条件判断是否校验该字段
如果该行的planType的值为1,就校验planTypeItem必填,否则不校验
data() {
return {
validRules: {
planType: [{ required: true, message: '必填字段' }],
planTypeItem: [{
validator (e) {
if (e.row.planType==1&&!e.cellValue) {//判断条件是否验证
return new Error('必填字段')
}
}
}
],
},
}
},
问题2:表格新增一行,但是不填写也能验证通过
async submit(){
const $table = self.$refs.xTable;
const errMap = await $table.validate(true).catch((errMap) => errMap);
if (errMap) {
self.$message({ type: 'error', message: '校验不通过!' });
return;
}
}
关键 全量数据校验:await $table.validate( true).catch((errMap) => errMap);