<el-form-item
v-else
:key="formList.nationalType"
label="销售价:"
prop="multistage_price"
:rules="[{ validator: multistagePriceRule2 }]" // 自定义校验
>
问题是当把下面的代码用方法封装一下callback,循环value这个数组去调用的话,callback无效
最终解决的代码,手动一行行自己展开写
multistagePriceRule2(rule, value, callback) {
if (!value.length) {
return callback(new Error('销售价必填'))
} else if (value[0].min_num <= 0) {
return callback(new Error('起批量必须大于0'))
} else if((value[0].min_num % 1 != 0) || value[0].min_num == 0 ) {
return callback(new Error('起批量必须是大于0的正整数'))
} else if (value[0].price <= 0) {
return callback(new Error('销售价必须大于0'))
} else if (value[0].price.split(".")[1] && value[0].price.split(".")[1].length > 2) {
return callback(new Error('请保留小数位数为两位数'))
} else if (value[1] && value[1].min_num <= 0) {
return callback(new Error('起批量必须大于0'))
} else if(value[1] && ((value[1].min_num % 1 != 0) || value[1].min_num == 0) ) {
return callback(new Error('起批量必须是大于0的正整数'))
} else if (value[1] && value[1].price <= 0) {
return callback(new Error('销售价必须大于0'))
} else if (value[1] && value[1].price.split(".")[1] && value[1].price.split(".")[1].length > 2) {
return callback(new Error('请保留小数位数为两位数'))
} else if (value[2] && value[2].min_num <= 0) {
return callback(new Error('起批量必须大于0'))
} else if(value[2] && ((value[2].min_num % 1 != 0) || value[2].min_num == 0) ) {
return callback(new Error('起批量必须是大于0的正整数'))
} else if (value[2] && value[2].price <= 0) {
return callback(new Error('销售价必须大于0'))
} else if (value[2] && value[2].price.split(".")[1] && value[2].price.split(".")[1].length > 2) {
return callback(new Error('请保留小数位数为两位数'))
} else {
callback()
}
},
效果: