美文网首页
自定义校验(同级不重复问题)

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

作者: 沃德麻鸭 | 来源:发表于2021-09-03 08:44 被阅读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同级不重复

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

创建源数组

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

编辑状态找到同级部门占用的名字

相关文章

网友评论

      本文标题:自定义校验(同级不重复问题)

      本文链接:https://www.haomeiwen.com/subject/fyoniltx.html