首先code是唯一的前提下,不用考虑同级问题
校验code

const validCode = (rule, value, callback) => {
console.log('validCode....', value)
// value就是当前用户输入的编码,它不能与现有的编码数据(originList)重复
// 如果重复,就验证不通过
// if(value能与现有的编码数据(originList)重复) {
// 1. 从originList([{id, pid,name, code},{id, pid,name, code}])中找出全部的编码数据
let existCodeList = this.originList.map(item => item.code)
if (this.isEdit) {
// 把当前正在编辑的部门编号(this.id)排除在外
console.log('现在是编辑状态,正在编辑的id是', this.id)
// 过滤掉当前的部门, map得到部门编号列表
existCodeList = this.originList.filter(item => item.id !== this.id).map(item => item.code)
}
console.log('existCodeList', existCodeList)
// 2. 检查value 是否存在其中
// if (existCodeList.includes(value)) {
// callback(new Error('编码' + value + '已经存在'))
// } else {
// callback()
// }
existCodeList.includes(value)
? callback(new Error('编码' + value + '已经存在'))
: callback()
}
name同级不重复
父组件通过自定义属性将源数组传递给子组件:这是源数组的值

父组件中单独计算编辑部门的同级部门名称:

网友评论