需求:
工作人员中包含了角色和工作人员,平且以一个数组的形式存储,在平时组件校验中,我们只需要在form-model-item中加入prop=‘workPerson’,并在rules中写入对应的校验规则
但这样做会出现一个问题,,我明明选择了但还是提示校验失败。究其原因,应该是这个校验并没有监听到我内部组件的变化,所以认为没有值。
解决方案:将workPerson校验规则写成这种形式,并在data中去定义checkSelect
判断数组中是否有这两个值,如果有的话就成功,没有的话就提示‘请选择工作人员’。
此时问题已经解决了,但还有个小问题,a-form-model-item有多个子元素时,无法实时监听表单元素的blur/change事件,意思就是当我们选择了工作人员,此时校验已通过,但是页面上仍然显示未通过,但我们希望看到提示消失。这个是组件自身的bug,究其原因:Form.Item 会对唯一子元素进行劫持,并监听 blur
和 change
事件,来达到自动校验的目的,所以请确保表单域没有其它元素包裹。如果有多个子元素,将只会监听第一个子元素的变化。
解决方案:加入@blur事件
这样就能实现失去焦点时,提示消失。
到这里问题就完全解决了~