vform2 表单数据回显
问题
ruoyi-flowable-plus 流程绑定的表单需要回显暂存的数据,使用JSON.stringify(this.$refs.vFormRef.getFormData(false))
存储数据后,如果表单中含有上传组件并且存储时上传组件没有上传,使用this.$refs.vFormRef.setFormData(JSON.parse(res.content))
后,再点击上传会报错
Cannot read properties of undefined (reading 'push')
使用单独的setFieldValue后,有发现因为有子表单数据,setFieldValue无法回显子表单,需要单独处理
解决办法
javascript
const thisObj = this.$refs.vFormRef.getFormData(false);
var oldValue = JSON.parse(res.content);
console.log( this.$refs.vFormRef.formDataModel)
Object.keys(oldValue).forEach(key => {
if (thisObj.hasOwnProperty(key)) {
if(key == 'p_member'){
this.$refs.vFormRef.formDataModel["p_member"] = oldValue[key];
// 通知SubForm组件:表单数据更新事件!!
this.$refs.vFormRef.broadcast('ContainerItem', 'setFormData', this.$refs.vFormRef.formDataModel)
} else {
this.$refs.vFormRef.setFieldValue(key, oldValue[key])
console.log('已设置', key ,oldValue[key]);
}
}
});
// 如果设置的上传值为null的话,以下方法会导致上传组件无法继续上传
// this.$refs.vFormRef.setFormData(JSON.parse(res.content));