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 791075fa0c..8f4119f477 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java @@ -372,6 +372,7 @@ public class PanelGroupService { String templateData = null; String dynamicData = null; String staticResource = null; + Boolean mobileLayout = false; if (PanelConstants.NEW_PANEL_FROM.NEW.equals(newFrom)) { // do nothing } else { @@ -381,11 +382,13 @@ public class PanelGroupService { templateStyle = panelTemplate.getTemplateStyle(); templateData = panelTemplate.getTemplateData(); dynamicData = panelTemplate.getDynamicData(); + mobileLayout = panelViewService.havaMobileLayout(templateData); } else if (PanelConstants.NEW_PANEL_FROM.NEW_OUTER_TEMPLATE.equals(newFrom)) { templateStyle = request.getPanelStyle(); templateData = request.getPanelData(); dynamicData = request.getDynamicData(); staticResource = request.getStaticResource(); + mobileLayout = panelViewService.havaMobileLayout(templateData); } Map dynamicDataMap = gson.fromJson(dynamicData, Map.class); List panelViews = new ArrayList<>(); @@ -418,6 +421,7 @@ public class PanelGroupService { request.setId(newPanelId); request.setCreateTime(System.currentTimeMillis()); request.setCreateBy(AuthUtils.getUser().getUsername()); + request.setMobileLayout(mobileLayout); return newPanelId; } diff --git a/backend/src/main/java/io/dataease/service/panel/PanelViewService.java b/backend/src/main/java/io/dataease/service/panel/PanelViewService.java index 92da5afb59..6dabb1229b 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelViewService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelViewService.java @@ -133,6 +133,21 @@ public class PanelViewService { return viewIds; } + public Boolean havaMobileLayout(String panelData){ + Boolean mobileLayout = false; + if (StringUtils.isNotEmpty(panelData)) { + JsonArray dataArray = JsonParser.parseString(panelData).getAsJsonArray(); + for (int i = 0; i < dataArray.size(); i++) { + JsonObject jsonObject = dataArray.get(i).getAsJsonObject(); + if (jsonObject.get("mobileSelected") != null && jsonObject.get("mobileSelected").getAsBoolean()) { + mobileLayout = true; + } + } + } + + return mobileLayout; + } + public List detailList(String panelId) { return extPanelViewMapper.getPanelViewDetails(panelId); }