diff --git a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java index 3aac71fbe5..52ad3447e5 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java @@ -932,6 +932,28 @@ public class PanelGroupService { } } } + + // 兼容过滤组件使用独立的数据集情况 + PanelGroupDTO panelGroupInfo = this.findOne(panelId); + String panelData = panelGroupInfo.getPanelData(); + try { + if (StringUtils.isNotEmpty(panelData)) { + JSONArray panelDataArray = JSONObject.parseArray(panelData); + for (int i = 0; i < panelDataArray.size(); i++) { + JSONObject element = panelDataArray.getJSONObject(i); + if ("custom".equals(element.getString("type"))) { + JSONObject fieldsParent = element.getJSONObject("options").getJSONObject("attrs").getJSONObject("fieldsParent"); + if (ObjectUtils.isNotEmpty(fieldsParent)) { + allTableIds.add(fieldsParent.getString("id")); + } + } + } + } + } catch (Exception e) { + //ignore + LogUtil.warn("custom component dataset id get error"); + } + } datasetTablesInfo = extDataSetTableMapper.findByTableIds(allTableIds); //4.获取所有数据集字段信息