Browse Source

feat: 代码合并

wu.jian2 1 year ago
parent
commit
ca34c497e6

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

@@ -141,6 +141,11 @@ public interface PageDesignConstant {
              * 跑马灯
              */
             String MARQUEE = "marquee";
+
+            /**
+             * 飞线地图
+             */
+            String FLY_MAP = "flyMap";
         }
     }
 

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

@@ -0,0 +1,106 @@
+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;
+
+import java.util.List;
+
+/**
+ * 飞线地图
+ * @author hongyang
+ * @version 1.0
+ * @date 2023/8/24 17:03
+ */
+@Data
+public class ScreenFlyMapChart extends Chart{
+
+
+    @ApiModelProperty(notes = "类型")
+    private String type = PageDesignConstant.BigScreen.Type.FLY_MAP;
+
+    @ApiModelProperty(notes = "个性化")
+    private Customize customize = new Customize();
+
+    @Data
+    public static class Customize {
+
+        @ApiModelProperty(notes = "是否显示文字")
+        private Boolean mapName;
+
+        @ApiModelProperty(notes = "悬浮框背景色")
+        private String tooltipBackgroundColor;
+
+        @ApiModelProperty(notes = "悬浮框边框色")
+        private String borderColor;
+
+        @ApiModelProperty(notes = "悬浮框字体颜色")
+        private String fontColor;
+
+        @ApiModelProperty(notes = "打点图背景颜色")
+        private String scatterBackgroundColor;
+
+        @ApiModelProperty(notes = "打点图文字颜色")
+        private String scatterColor;
+
+        @ApiModelProperty(notes = "打点图中心点文字颜色")
+        private String scatterCenterColor;
+
+        @ApiModelProperty(notes = "分割线颜色")
+        private String mapLineColor;
+
+        @ApiModelProperty(notes = "是否开启下钻")
+        private Boolean down;
+
+        @ApiModelProperty(notes = "轨迹图像")
+        private String symbol;
+
+        @ApiModelProperty(notes = "轨迹颜色")
+        private String symbolColor;
+
+        @ApiModelProperty(notes = "轨迹大小")
+        private Integer symbolSize;
+
+        @ApiModelProperty(notes = "地图级别")
+        private String level;
+
+        @ApiModelProperty(notes = "范围")
+        private String scope;
+
+        @ApiModelProperty(notes = "地图区域颜色")
+        private String areaColor;
+
+        @ApiModelProperty(notes = "是否开启筛选")
+        private Boolean visual;
+
+        @ApiModelProperty(notes = "筛选范围")
+        private List<Integer> range;
+
+        @ApiModelProperty(notes = "打点图格式化脚本")
+        private String scatterFormatter;
+
+        @ApiModelProperty(notes = "轨迹格式化脚本")
+        private String lineFormatter;
+
+        @ApiModelProperty(notes = "从上到下的颜色")
+        private List<String> rangeColor;
+
+        @ApiModelProperty(notes = "地图数据")
+        private String dataMap;
+
+        @ApiModelProperty(notes = "展示字段")
+        private String value;
+
+        @ApiModelProperty(notes = "横坐标")
+        private String xaxis;
+
+        @ApiModelProperty(notes = "纵坐标")
+        private String yaxis;
+
+        @ApiModelProperty(notes = "名称")
+        private String name;
+
+    }
+
+}

+ 22 - 12
data-room-ui/packages/BasicComponents/Marquee/index.vue

@@ -3,6 +3,14 @@
     <div class="scroll-area">
       <!-- 设置margin,使内容 有从无到有的出现效果 -->
       <div class="marquee-container">
+        <div class="icon">
+          <i
+            v-if="config.customize.icon.position === 'left'"
+            :class="config.customize.icon.name"
+            :style="{ color: config.customize.icon.color, fontSize: config.customize.fontSize + 'px' }"
+          />
+        </div>
+
         <svg class="svg-container">
           <defs>
             <linearGradient
@@ -50,7 +58,6 @@
             :style="{ fontSize: config.customize.fontSize + 'px', fontWeight: config.customize.fontWeight }"
             :fill="`url(#textGradient-${config.code})`"
           >
-
             <animate
               v-if="isAnimate"
               :attributeName="attributeName[config.customize.direction]"
@@ -59,19 +66,17 @@
               :dur="config.customize.dur + 's'"
               repeatCount="indefinite"
             />
-            <i
-              v-if="config.customize.icon.position === 'left'"
-              :class="config.customize.icon.name"
-              :style="{ color: config.customize.icon.color, fontSize: config.customize.fontSize + 'px' }"
-            />
+
             {{ config.customize.title }}
-            <i
-              v-if="config.customize.icon.position === 'right'"
-              :class="config.customize.icon.name"
-              :style="{ color: config.customize.icon.color, fontSize: config.customize.fontSize + 'px' }"
-            />
           </text>
         </svg>
+        <div class="icon">
+          <i
+            v-if="config.customize.icon.position === 'right'"
+            :class="config.customize.icon.name"
+            :style="{ color: config.customize.icon.color, fontSize: config.customize.fontSize + 'px' }"
+          />
+        </div>
       </div>
     </div>
   </div>
@@ -161,7 +166,7 @@ export default {
     .marquee-container {
       width: 100%;
       height: 100%;
-      display: inline-block;
+      display: flex;
 
       .svg-container {
         display: inline-block;
@@ -170,5 +175,10 @@ export default {
       }
     }
   }
+  .icon {
+    position: relative;
+    top: 0;
+    // 清除浮动
+  }
 }
 </style>