// 定义校验部门编码的校验规则
var validateCode = (rule, value, callback) => {
console.log('校验的值是', value)
console.log('校验参考的数据是', this.originList)
// 要校验编码的数据value是否在codeList里面存在
// 处理部门编码信息
let codeList = this.originList.map(it => it.code)
console.log(codeList)
// 编辑的特殊处理 剔除正在编辑的部门信息
if (this.isEdit) {
// 先找到目前正在编辑的部门 去掉这个正在编辑的部门 找出里面code
codeList = codeList
.filter((it) => it.id !== this.id)
.map((it) => it.code)
}
// 添加
if (codeList.includes(value)) {
callback(new Error(value + '部门编码已经存在'))
} else {
callback()
}
}
参考数据origlist来源于父组件
// 自定义表单校验参考的数据
this.originList = res.data.depts.map((it) => {
return { id: it.id, pid: it.pid, code: it.code, name: it.name }
})
console.log('自定义表单校验参考的数据', this.originList)