场景:新增弹层和编辑弹层共用一个组件,其中有select需要做必填校验,select的必填触发规则是change。
当第一次打开的是新增弹层时,一切安好。
若是先打开编辑弹层,再打开新增弹层,新增弹层就会自动触发select的校验规则。

以上显然不符合需求。
为了取消el-select的自动校验,我尝试了更换select的校验触发方式为blur,但是会带来一个新的问题——先点击确定触发校验,再选择select,校验提示不会消失。
所以,显然更换blur并不符合需求。
检索了其他回答,均无用。
我猜测产生该问题的原因是:在关闭弹层事件中,我做了resetfileds和clearfileds,resetfileds置空form表单,其实本质上也是一种改变select的操作,故而触发了select的change事件,在第二次打开新增弹层时,select的值为'',所以才会触发表单校验规则。
因此,我在el-dialog上面加了销毁属性,当dialog关闭后,整个组件就被销毁,打开新增弹层时已经是一个新dom,就不会出现bug了。
解决方案: :destory-on-close="true"
<el-dialog
v-model="dialogVisible"
title="Tips"
width="30%"
:destory-on-close="true"
:before-close="handleClose"
>
</el-dialog>
`