vform2 表单数据回显问题

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));
相关推荐
qq_2837200516 小时前
Python Celery + FastAPI + Vue 全栈异步任务实战
vue.js·python·fastapi
2401_8858850416 小时前
营销推广短信接口集成:结合营销策略实现的API接口动态变量填充方案
前端·python
小李子呢021116 小时前
前端八股性能优化(2)---回流(重排)和重绘
前端·javascript
程序员buddha17 小时前
深入理解ES6 Promise
前端·ecmascript·es6
吴声子夜歌17 小时前
ES6——Module详解
前端·ecmascript·es6
剪刀石头布啊17 小时前
原生form发起表单干了啥
前端
剪刀石头布啊17 小时前
表单校验场景,如何实现页面滚动到报错位置
前端
gyx_这个杀手不太冷静17 小时前
大人工智能时代下前端界面全新开发模式的思考(二)
前端·架构·ai编程
GreenTea18 小时前
AI Agent 评测的下半场:从方法论到落地实践
前端·人工智能·后端