人资中台 day7

244 阅读1分钟

在做中台项目添加数据的时候,自定义表单验证,如果在input框中输入的数据和同一节点下的名称相同,则提示不能重复名称。

具体实现思想:

  • 首先获得选择添加数据的父节点的数据,这是判断子节点的依据,因为同一节点下他们的pid是相同的,都为父节点的id。
  • 然后写自定义表单验证:
var checkName=async(rule,value,callback)=>{
    1.调用api接口,获取所有数据,
    const {data} = await getList()
    2.筛选数组中的数据的pid有没有和父节点id相同的数据
   const isOk = list.filter(item=>{
        return data.id===item.pid
        //然后在该结果的基础上进行二次筛选,判断是否存在同名的
   }).some(item=>{
       return item.name===value
   })
   //用三元表达式如果有相同的实例化一个错误,提示名称相同,如果没有通过验证
   isOk ? callback(new Error(`存在相同的名称${value}!`)) : callback()
}