部门名称同级不重复的写法

这段代码定义了一个用于校验部门名称的函数,根据是否在编辑模式下,查找并过滤出占用的部门名称。在添加模式下,占用名称列表为当前部门的子部门;在编辑模式下,占用名称列表为同级但不同ID的部门。如果输入的值存在于占用名称列表中,函数会返回错误提示。
摘要由CSDN通过智能技术生成
    // 定义校验部门名称的校验规则
    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()
      }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值