这个业务校验就要比基础校验难多了,所以这是我们项目的难点之一

image.png image.png

由于我们的业务需要,我们对表单验证补充两个要求:

  1. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/21762447/1624699082167-0dc91e7d-7f2f-4928-ba5a-d97bfed4f185.png#clientId=u36ffa340-2ea5-4&from=paste&height=162&id=u00301b91&margin=%5Bobject%20Object%5D&name=image.png&originHeight=162&originWidth=403&originalType=binary&ratio=1&size=7891&status=done&style=none&taskId=uc12c85cb-7832-499a-bc25-d2d62e94525&width=403)

代码说明:

1.部门编号:

image.png

解释:

  1. 添加; 添加的时候,就是当前校验的value与所有的code都不能重复

  2. 编辑: 在做code编辑的时候,有一个小bug,就是在编辑当前的编码的时候,按理来说是可以编辑的,但是他会报校验的错误,这个是bug,因为在添加的时候,就已经把校验当前的code与所有的code都不能相等了,所以会报错,我们应该先把当前编辑的code先排除在外,(就是用filter如果当前编辑的id和item里面的id相同的话,就filter, 然后用map把剩下的code遍历出来,value就不能包含在这些name里面)然后在把要校验的value与剩下的来做校验(看是否有重复的)

2.部门名称:

image.png

解释:

  1. 添加:(找的是子部门) 首先点击添加子部门,就是不能与自己的子部门同名,这个就作为判断的条件,所以我们就要考虑:如何找到自己的子部门呢? 就是当前我自己的id如果和遍历出来的item的id相同的话,意思就是这些pid就是自己下一级了,这个是站在上级角度上考虑的,,我们找到了自己的下一级,需要怎么做呢? 把下一级的name找出来,一会还要把需要校验的value看看有没有在这些name中呢!

  2. 编辑:(找的是兄弟) 这里有一个bug: 就是当点击编辑部门名称的时候,自 己正在被编辑的那个名字会报错? 所以我们要解决bug: 先找到自己被编辑的pid,然后再找兄弟,就是pid和自己相同的,然后把自己排除在外,就可以找到不能与自己兄弟重名的name,然后把被校验的value在name里面做校验