diff --git a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/utils/ProcessFormUtils.java b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/utils/ProcessFormUtils.java index 95f46dac..bd7847d0 100644 --- a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/utils/ProcessFormUtils.java +++ b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/utils/ProcessFormUtils.java @@ -3,6 +3,7 @@ package com.ruoyi.flowable.utils; import cn.hutool.core.convert.Convert; import com.ruoyi.flowable.core.FormConf; +import java.util.List; import java.util.Map; /** @@ -13,6 +14,9 @@ import java.util.Map; */ public class ProcessFormUtils { + private static final String CONFIG = "__config__"; + private static final String MODEL = "__vModel__"; + /** * 填充表单项内容 * @@ -21,13 +25,26 @@ public class ProcessFormUtils { */ public static void fillFormData(FormConf formConf, Map data) { for (Map field : formConf.getFields()) { - String modelKey = Convert.toStr(field.get("__vModel__")); - Object value = data.get(modelKey); - if (value != null) { - @SuppressWarnings("unchecked") - Map configMap = (Map) field.get("__config__"); - configMap.put("defaultValue", value); + recursiveFillField(field, data); + } + } + + @SuppressWarnings("unchecked") + private static void recursiveFillField(final Map field, final Map data) { + if (!field.containsKey(CONFIG)) { + return; + } + Map configMap = (Map) field.get(CONFIG); + if (configMap.containsKey("children")) { + List> childrens = (List>) configMap.get("children"); + for (Map children : childrens) { + recursiveFillField(children, data); } } + String modelKey = Convert.toStr(field.get(MODEL)); + Object value = data.get(modelKey); + if (value != null) { + configMap.put("defaultValue", value); + } } }