自定义校验(同级不重复问题)

2021-09-03  本文已影响0人  沃德麻鸭

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

校验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同级不重复

父组件通过自定义属性将源数组传递给子组件:这是源数组的值

创建源数组

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

编辑状态找到同级部门占用的名字
上一篇 下一篇

猜你喜欢

热点阅读