需求:表格中某个栏位为输入框,且是必填项!要求进行校验
设计如下:
// 校验字段
const checkFieldArr = ['groupBuy', 'actualPrice', 'adjustPrice', 'skuQuantity']
// 返回信息
const messages = {
groupBuy (index) { return `表格第${index + 1}行团购信息有误,请重新选择!!!` },
actualPrice (index) { return `表格第${index + 1}行成交单价信息有误,请重新填写!!!` },
djustPrice (index) { return `表格第${index + 1}行单价信息有误,请重新填写!!!` },
skuQuantity (index) { return `表格第${index + 1}行数量信息有误,请重新填写!!!` }
}
//校验方法
const checkField = (source, fields) => {
const sLen = source.length
const jLen = fields.length
let temp
for (let i = 0; i < sLen; i++) {
for (let j = 0; j < jLen; j++) {
temp = source[i][fields[j]]
if (!(temp === undefined ? temp : temp.toString())) {
return { bool: false, message: fields[j], index: i }
}
}
}
return { bool: true, message: undefined, index: undefined }
}
调用上述方法,返回数据错误的位置,和字段信息
const { bool, message, index } = checkField(this.goodsInfoData, checkFieldArr)
if (!bool) {
this.$message.error(messages[message](index))
return
}