需求:验证表格同一行的最低限价不能超过销售定价
思路:先获取当前行table的index,然后在做大小比较
1.局部html
<el-table-column label="销售定价(元)" min-width="200px"><template slot="header"><span class="star">*</span><span class="star-name">销售定价(元)</span></template><template slot-scope="scope"><el-form-item:prop="'skuList.' + scope.$index + '.price'":rules="tableRules.price"><el-inputsize="small"v-model.trim="scope.row.price"@input="userInput"placeholder="请输入销售定价"/></el-form-item></template>
</el-table-column><el-table-column label="最低限价(元)" min-width="200px"><template slot="header"><span class="star">*</span><span class="star-name">最低限价(元)</span></template><template slot-scope="scope"><el-form-item:prop="'skuList.' + scope.$index + '.floorPrice'":rules="tableRules.floorPrice"><el-inputsize="small"v-model.trim="scope.row.floorPrice"@input="userInput"placeholder="请输入最低限价"/></el-form-item></template>
</el-table-column>
2.验证规则
const checkFloorPrice = (rule, value, callback) => {let index = rule.field.split(".")[1];//获取当前行角标if (!value) {callback(new Error("请输入最低限价"));} else if (value == Infinity || value > Math.pow(2, 31) - 1) {callback(new Error("您填写的数字过长"));} else if (!/^\d+(\.\d{1,2})?$/.test(value)) {callback(new Error("请输入小数不超过两位的自然数"));} else if (value >= this.tableForm.skuList[index].price) {//重点看这里callback(new Error("最低限价不能超过销售定价"));} else {callback();}
};