From b3f0ef7aa6c405688a6179f376abc0ab78259e63 Mon Sep 17 00:00:00 2001 From: chenchuchuan <13554600537@163.com> Date: Wed, 12 Aug 2026 11:37:56 +0800 Subject: [PATCH] =?UTF-8?q?feat(widget):=20=E6=B7=BB=E5=8A=A0=E8=A7=84?= =?UTF-8?q?=E5=88=99=E6=95=B0=E7=BB=84=E8=8E=B7=E5=8F=96=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E5=AD=90=E8=A1=A8=E6=8E=A7=E4=BB=B6?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=94=B6=E9=9B=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 getRuleArray 方法用于获取指定设备端下的规则数组 - 添加 AppDeviceType 设备类型支持 - 优化子表控件字段收集逻辑,跳过 f7ShowName 字段的处理 - 引入 jodd.util.StringUtil 工具类进行字符串判断 - 修复空值检查逻辑,增强代码健壮性 --- .../apelet/common/online/util/WidgetJsonUtil.java | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/common/common-online/src/main/java/apelet/common/online/util/WidgetJsonUtil.java b/common/common-online/src/main/java/apelet/common/online/util/WidgetJsonUtil.java index 8c9d3c3..a9818e9 100644 --- a/common/common-online/src/main/java/apelet/common/online/util/WidgetJsonUtil.java +++ b/common/common-online/src/main/java/apelet/common/online/util/WidgetJsonUtil.java @@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import jodd.util.StringUtil; import java.util.HashMap; import java.util.HashSet; @@ -75,6 +76,24 @@ public class WidgetJsonUtil { } /** + * 获取当前设备端(AppDeviceType)下某规则数组(conditionTypeList / businessRulesList)。 + * + * @param widgetJson 在线表单的 widgetJson。 + * @param ruleKey 规则数组 key。 + * @return 规则数组,widgetJson 为空或设备节点不存在时返回 null。 + */ + public static JSONArray getRuleArray(String widgetJson, String ruleKey) { + if (StrUtil.isBlank(widgetJson) || StrUtil.isBlank(ruleKey)) { + return null; + } + JSONObject deviceData = JSON.parseObject(widgetJson).getJSONObject(AppDeviceType.getDeviceType()); + if (MapUtil.isEmpty(deviceData)) { + return null; + } + return deviceData.getJSONArray(ruleKey); + } + + /** * 收集子表控件(widgetType=100) bindData.tableName 的名称集合。 * * @param widgetJson 在线表单的 widgetJson。 @@ -233,6 +252,10 @@ public class WidgetJsonUtil { } for (int i = 0; i < tableColumnList.size(); i++) { JSONObject tableColumn = tableColumnList.getJSONObject(i); + if (tableColumn.containsKey("f7ShowName") && StringUtil.isNotBlank(tableColumn.getString("f7ShowName"))) { + //f7 不做字段的搜集 + continue; + } Integer fieldType = tableColumn.getInteger("fieldType"); if (fieldType != null && fieldType == 1) continue; String columnIdStr = tableColumn.getString("columnId");