出现场景
人力资源类项目中一般都会有上下级关系,这时对于职称的命名也就会有讲究,比如,一个工程,不可能会同时出现两个项目经理,这时在做职位安排时,就只能安排一个职位用来放项目经理对应的位置,而项目经理下面又分有很多个部门,比如预算,安全,生产等等,但是这些职位都是平级关系,并且一个项目也不能同时有两个生产部门,这里就涉及到同级名称不能重复的问题
在进行添加功能操作的时候,需要对表单进行自定义校验:同级名称不重复
首先第一步就是获取到所有的同级名称,这里不能直接使用之前获取列表用来渲染table表格的那个数组,因为那个数组中的数据用来渲染表格了,过滤这个数组只能得到当前页的符合条件的数据,不能筛选出所有的,这时就需要重新声明一个变量用来接收接口获取到的数据,专门用来做数据筛选
获取源数组自定义校验
自定义校验要分两种情况进行筛选,添加状态下,只需要正常筛选,用filter()方法遍历出所有相同上级的兄弟名称的项,然后通过map方法,只留下每一项的name并返回数组,进行对输入框的数据(value)进行包含判断。
编辑状态下,需要在筛选找出所有兄弟name的前提下,将自己的名字也剔除在外,之后再进行包含判断。
这里的自己是双向绑定,所以输入发生更改,名字数组也会实时跟着变化,所以主要声明一个变量,用来专门对输入框的name 进行保存,在数据回填的同时进行赋值,然后只要判断获得的名字数组中不包含这个回填的数据尽可以了,这个数据只有在点击修改才会触发更改,所以不关闭弹框并且重新打开就不会使这个变量的值更改。
变量保存回填name值
网友评论