问题:
新增和编辑是同一个表单。
先新增后编辑,编辑弹框可以正常赋值;
先编辑后新增,新增弹框会初始化编辑的数据;
原因:
resetFields()方法是初始化值,并不是清空所有值。这个初始值是在form mounted生命周期被赋值上去的。所以,在form mounted之前,如果form表单赋值了,那么后面调用resetFields()都是无效的,因为form表单的初始值已经在mounted之前就被赋值了
解决方法:
在form mounted之后进行赋值操作即可,就是在编辑赋值之前调用nextTick方法。
const openLayer = ((type, data) => {
openLayer.value = true
if (type == 'add') {
} else {
nextTick(() => {
form.name = data.name
})
}
})