// 定义校验部门名称的校验规则
var validateName = (rule, value, callback) => {
console.log('校验的值是', value)
// 在某个部门点击添加时,被占用名字的列表 = 这个部门的子部门
// 怎么找这个部门的子部门 在originList里面找it.pid===this.id 这就是子部门
console.log('校验参考的数据是', this.originList)
// 添加
// 这个部门的子部门数据
let nameList = this.originList.filter(it => it.pid === this.id)
console.log(nameList)
nameList = nameList.map(it => it.name)
console.log(nameList)
// 在某个部门点击编辑时,被占用名字的列表 = 当前部门的兄弟-自己的名字
// 怎么找当前部门的兄弟
// 先找当前部门
const currentDep = this.originList.find(it => it.id === this.id)
console.log(`currentDep的结果是`, currentDep)
// 找到当前部门的pid
const pid = currentDep.pid
console.log(`currentDep的pid是`, pid)
// 它的兄弟部门和它有一样的pid
if (this.isEdit) {
// 被占用的名字列表
nameList = this.originList.filter(it => it.pid === pid && it.id !== this.id)
console.log(`nameList不重复的是`, nameList)
}
if (nameList.includes(value)) {
callback(new Error(value + '部门名称已经存在'))
} else {
callback()
}
}
部门名称同级不重复的写法
最新推荐文章于 2024-10-05 17:11:00 发布
这段代码定义了一个用于校验部门名称的函数,根据是否在编辑模式下,查找并过滤出占用的部门名称。在添加模式下,占用名称列表为当前部门的子部门;在编辑模式下,占用名称列表为同级但不同ID的部门。如果输入的值存在于占用名称列表中,函数会返回错误提示。
摘要由CSDN通过智能技术生成