Browse Source

Merge remote-tracking branch 'origin/master'

liu.shiyi 1 year ago
parent
commit
5778254160

+ 9 - 0
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/constant/PageDesignConstant.java

@@ -177,6 +177,15 @@ public interface PageDesignConstant {
              */
              */
             String DATE_TIME_PICKER = "dateTimePicker";
             String DATE_TIME_PICKER = "dateTimePicker";
 
 
+            /**
+             * 指标卡1
+             */
+            String INDEX_CARD = "indexCard";
+
+            /**
+             * 指标卡2
+             */
+            String INDICATOR_CARD = "indicatorCard";
 
 
         }
         }
     }
     }

+ 73 - 0
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/components/ScreenIndexCardChart.java

@@ -0,0 +1,73 @@
+package com.gccloud.dataroom.core.module.chart.components;
+
+import com.gccloud.dataroom.core.constant.PageDesignConstant;
+import com.gccloud.dataroom.core.module.chart.bean.Chart;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 指标卡组件
+ * @author hongyang
+ * @version 1.0
+ * @date 2023/10/7 10:58
+ */
+@Data
+public class ScreenIndexCardChart extends Chart {
+
+    @ApiModelProperty(notes = "类型")
+    private String type = PageDesignConstant.BigScreen.Type.INDEX_CARD;
+
+    @ApiModelProperty(notes = "个性化配置")
+    private Customize customize = new Customize();
+
+    @Data
+    public static class Customize {
+
+        @ApiModelProperty(notes = "图片地址")
+        private String src;
+
+        @ApiModelProperty(notes = "边框圆角")
+        private Integer borderRadius;
+
+        @ApiModelProperty(notes = "边框宽度")
+        private Integer borderWidth;
+
+        @ApiModelProperty(notes = "边框线距离")
+        private Integer lineDistance;
+
+        @ApiModelProperty(notes = "边框颜色")
+        private String borderColor;
+
+        @ApiModelProperty(notes = "背景颜色")
+        private String bgColor;
+
+        @ApiModelProperty(notes = "距离")
+        private Integer distance;
+
+        @ApiModelProperty(notes = "图片大小")
+        private Integer imgSize;
+
+        @ApiModelProperty(notes = "第一行字体大小")
+        private Integer firstSize;
+
+        @ApiModelProperty(notes = "第一行字体颜色")
+        private String firstColor;
+
+        @ApiModelProperty(notes = "第一行字体粗细")
+        private Integer firstWeight;
+
+        @ApiModelProperty(notes = "第二行字体大小")
+        private Integer secondSize;
+
+        @ApiModelProperty(notes = "第二行字体颜色")
+        private String secondColor;
+
+        @ApiModelProperty(notes = "第二行字体粗细")
+        private Integer secondWeight;
+
+        @ApiModelProperty(notes = "第二行字体内容")
+        private String secondLine;
+
+    }
+
+}

+ 64 - 0
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/chart/components/ScreenIndicatorCardChart.java

@@ -0,0 +1,64 @@
+package com.gccloud.dataroom.core.module.chart.components;
+
+import com.gccloud.dataroom.core.constant.PageDesignConstant;
+import com.gccloud.dataroom.core.module.chart.bean.Chart;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 指标卡组件
+ * @author hongyang
+ * @version 1.0
+ * @date 2023/10/7 10:58
+ */
+@Data
+public class ScreenIndicatorCardChart extends Chart {
+
+    @ApiModelProperty(notes = "类型")
+    private String type = PageDesignConstant.BigScreen.Type.INDICATOR_CARD;
+
+    @ApiModelProperty(notes = "个性化配置")
+    private Customize customize = new Customize();
+
+    @Data
+    public static class Customize {
+
+        @ApiModelProperty(notes = "边框圆角")
+        private Integer borderRadius;
+
+        @ApiModelProperty(notes = "边框宽度")
+        private Integer borderWidth;
+
+        @ApiModelProperty(notes = "边框线距离")
+        private Integer lineDistance;
+
+        @ApiModelProperty(notes = "边框颜色")
+        private String borderColor;
+
+        @ApiModelProperty(notes = "背景颜色")
+        private String bgColor;
+
+        @ApiModelProperty(notes = "第一行字体大小")
+        private Integer firstSize;
+
+        @ApiModelProperty(notes = "第一行字体颜色")
+        private String firstColor;
+
+        @ApiModelProperty(notes = "第一行字体粗细")
+        private Integer firstWeight;
+
+        @ApiModelProperty(notes = "第二行字体大小")
+        private Integer secondSize;
+
+        @ApiModelProperty(notes = "第二行字体颜色")
+        private String secondColor;
+
+        @ApiModelProperty(notes = "第二行字体粗细")
+        private Integer secondWeight;
+
+        @ApiModelProperty(notes = "第二行字体内容")
+        private String secondLine;
+
+    }
+
+}

+ 26 - 0
DataRoom/dataroom-core/src/main/java/com/gccloud/dataroom/core/module/manage/service/impl/DataRoomPageServiceImpl.java

@@ -8,6 +8,7 @@ import com.gccloud.dataroom.core.module.basic.dao.DataRoomPageDao;
 import com.gccloud.dataroom.core.module.basic.entity.PageEntity;
 import com.gccloud.dataroom.core.module.basic.entity.PageEntity;
 import com.gccloud.dataroom.core.module.basic.entity.PagePreviewEntity;
 import com.gccloud.dataroom.core.module.basic.entity.PagePreviewEntity;
 import com.gccloud.dataroom.core.module.chart.bean.Chart;
 import com.gccloud.dataroom.core.module.chart.bean.Chart;
+import com.gccloud.dataroom.core.module.chart.bean.Linkage;
 import com.gccloud.dataroom.core.module.chart.components.datasource.DataSetDataSource;
 import com.gccloud.dataroom.core.module.chart.components.datasource.DataSetDataSource;
 import com.gccloud.dataroom.core.module.manage.dto.DataRoomPageDTO;
 import com.gccloud.dataroom.core.module.manage.dto.DataRoomPageDTO;
 import com.gccloud.dataroom.core.module.manage.dto.DataRoomSearchDTO;
 import com.gccloud.dataroom.core.module.manage.dto.DataRoomSearchDTO;
@@ -23,6 +24,7 @@ import com.gccloud.common.utils.AssertUtils;
 import com.gccloud.common.utils.BeanConvertUtils;
 import com.gccloud.common.utils.BeanConvertUtils;
 import com.gccloud.common.vo.PageVO;
 import com.gccloud.common.vo.PageVO;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.FileUtils;
@@ -36,6 +38,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.IOException;
 import java.util.Base64;
 import java.util.Base64;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 import java.util.Objects;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
@@ -323,8 +326,31 @@ public class DataRoomPageServiceImpl extends ServiceImpl<DataRoomPageDao, PageEn
         config.setName(screenEntity.getName());
         config.setName(screenEntity.getName());
         config.setCode(screenEntity.getCode());
         config.setCode(screenEntity.getCode());
         List<Chart> chartList = config.getChartList();
         List<Chart> chartList = config.getChartList();
+        // 新旧编码映射
+        Map<String, String> chartCodeMap = Maps.newHashMap();
         for (Chart chart : chartList) {
         for (Chart chart : chartList) {
+            String oldChartCode = chart.getCode();
             chart.setCode(CodeGenerateUtils.generate(chart.getType() == null ? "chart" : chart.getType()));
             chart.setCode(CodeGenerateUtils.generate(chart.getType() == null ? "chart" : chart.getType()));
+            chartCodeMap.put(oldChartCode, chart.getCode());
+        }
+        // 处理图表之间的联动
+        for (Chart chart : chartList) {
+            Linkage linkage = chart.getLinkage();
+            if (linkage == null) {
+                continue;
+            }
+            List<Linkage.Component> components = linkage.getComponents();
+            if (components == null || components.isEmpty()) {
+                continue;
+            }
+            for (Linkage.Component component : components) {
+                String componentKey = component.getComponentKey();
+                if (StringUtils.isBlank(componentKey)) {
+                    continue;
+                }
+                String newCode = chartCodeMap.get(componentKey);
+                component.setComponentKey(newCode);
+            }
         }
         }
         boolean copy = this.copyCoverPicture(oldCode, screenEntity.getCode());
         boolean copy = this.copyCoverPicture(oldCode, screenEntity.getCode());
         if (!copy) {
         if (!copy) {

+ 1 - 1
data-room-ui/packages/Borders/Border14/index.vue

@@ -65,7 +65,7 @@ export default {
       return this.config.customize.gradientDirection
       return this.config.customize.gradientDirection
     },
     },
     opacity () {
     opacity () {
-      return this.config.customize.opacity || 100
+      return (this.config.customize.opacity === 0 || this.config.customize.opacity) ? this.config.customize.opacity : 100
     }
     }
   },
   },
   watch: {},
   watch: {},

+ 3 - 4
data-room-ui/packages/Borders/Border14/setting.vue

@@ -65,14 +65,13 @@
           </el-form-item>
           </el-form-item>
           <el-form-item
           <el-form-item
             label="不透明度"
             label="不透明度"
-            label-width="100px"
           >
           >
-            <el-slider
+            <el-input-number
               v-model="config.customize.opacity"
               v-model="config.customize.opacity"
-              class="bs-slider bs-el-input-number"
+              class="bs-el-input-number"
               :min="0"
               :min="0"
               :max="100"
               :max="100"
-              show-input
+              :step="1"
             />
             />
           </el-form-item>
           </el-form-item>
           <el-form-item label="左上圆角值">
           <el-form-item label="左上圆角值">

+ 4 - 7
data-room-ui/packages/Borders/Border15/setting.vue

@@ -93,16 +93,13 @@
             :step="1"
             :step="1"
           />
           />
         </el-form-item>
         </el-form-item>
-        <el-form-item
-          label="不透明度"
-          label-width="100px"
-        >
-          <el-slider
+        <el-form-item label="不透明度">
+          <el-input-number
             v-model="config.customize.opacity"
             v-model="config.customize.opacity"
-            class="bs-slider bs-el-input-number"
+            class="bs-el-input-number"
             :min="0"
             :min="0"
             :max="100"
             :max="100"
-            show-input
+            :step="1"
           />
           />
         </el-form-item>
         </el-form-item>
       </div>
       </div>

+ 1 - 1
data-room-ui/packages/DataSetLabelManagement/src/LabelSelect.vue

@@ -101,7 +101,7 @@
           <el-form-item>
           <el-form-item>
             <el-button
             <el-button
               type="primary"
               type="primary"
-              @click="getDataList"
+              @click="current=1;getDataList()"
             >
             >
               查询
               查询
             </el-button>
             </el-button>