diff --git a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/JsonUtil.java b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/JsonUtil.java index 182de44..d049d96 100644 --- a/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/JsonUtil.java +++ b/smtweb-framework/sw-framework-core/src/main/java/cc/smtweb/framework/core/util/JsonUtil.java @@ -24,10 +24,7 @@ import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Method; import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Map; +import java.util.*; import static org.springframework.beans.BeanUtils.getPropertyDescriptors; @@ -285,4 +282,15 @@ public class JsonUtil { throw new JsonParseException("can't convert type " + obj.getClass() + " to json string", e); } } + + public static SwMap bean2Map(Object obj) { + return parse(encodeString(obj), SwMap.class); + } + + public static List bean2MapList(Object obj) { + List list = new ArrayList<>(); + SwMap[] arr = parse(encodeString(obj), SwMap[].class); + Collections.addAll(list, arr); + return list; + } } diff --git a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormHelper.java b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormHelper.java index d41761c..33bccee 100644 --- a/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormHelper.java +++ b/smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/ModelFormHelper.java @@ -374,7 +374,7 @@ public class ModelFormHelper { PageDatasets datasets = form.getDatasets(); SwMap tmplModel = JsonUtil.parse(form.getTmpl(), SwMap.class); tmplModel.put("title", form.getTitle()); - tmplModel.put("datasets", form.getDatasets()); + tmplModel.put("datasets", JsonUtil.bean2MapList(form.getDatasets().list)); SwMap layout = tmplModel.readMap("layout"); //用到的自定义控件 Set setWidget = new HashSet<>(); diff --git a/smtweb-system/sw-system-bpm/src/main/resources/static/template/incModel/inc_model.ftl b/smtweb-system/sw-system-bpm/src/main/resources/static/template/incModel/inc_model.ftl index 2d2546c..7c63272 100644 --- a/smtweb-system/sw-system-bpm/src/main/resources/static/template/incModel/inc_model.ftl +++ b/smtweb-system/sw-system-bpm/src/main/resources/static/template/incModel/inc_model.ftl @@ -2,12 +2,12 @@ "dataset": "${dataset.id}", "label": "${dataset.label}", "fields": [ - <#list fields as field> + <#list dataset.fields as field> { "id": "${field.id}", "field": "${field.field}"<#if field.widget gt 0>, "lookup": { - "widgetId": "${field.widget}", + "widgetId": "${field.widget?c}", "widgetId_text": "${field.widgetText}", "filters": [] } @@ -16,7 +16,7 @@ ], "filters": [ - <#list filters as field> + <#list dataset.filters as field> { "id": "${field.field}", "field": "${field.field}",