Ver Fonte

fix: 去除地图的未开启下钻提示;地图飞线图的地名文本样式支持配置;飞线地图完善数据配置项,以前使用的是指定的属性名,现在可配置

hong.yang há 1 ano atrás
pai
commit
adaf937d13

+ 27 - 14
data-room-ui/packages/BasicComponents/FlyMap/index.vue

@@ -121,15 +121,28 @@ export default {
       }
       this.$dataRoomAxios.get(mapInfoUrl, {}, true).then(res => {
         if (this.config.option.data) {
+          // 起点名称
+          const fromName = config.customize.dataField?.fromName || 'from'
+          // 起点经度
+          const fromLng = config.customize.dataField?.fromLng || 'lng1'
+          // 起点纬度
+          const fromLat = config.customize.dataField?.fromLat || 'lat1'
+          // 终点名称
+          const toName = config.customize.dataField?.toName || 'to'
+          // 终点经度
+          const toLng = config.customize.dataField?.toLng || 'lng2'
+          // 终点纬度
+          const toLat = config.customize.dataField?.toLat || 'lat2'
+          // 值
+          const value = config.customize.dataField?.value || 'value'
+
           this.config.option.data.forEach(val => {
-            lines_coord.push({value: val.value, msg: {...val}, coords: [[val.lat1, val.lng1], [val.lat2, val.lng2]]})
-            if (val.type === 'move_in') {
-              coord.push({name: val.from, value: [val.lat1, val.lng1, val.value], msg: {...val}})
-              fromCoord.push({name: val.to, value: [val.lat2, val.lng2, val.value], msg: {...val}})
-            } else {
-              coord.push({name: val.to, value: [val.lat2, val.lng2, val.value], msg: {...val}})
-              fromCoord.push({name: val.from, value: [val.lat1, val.lng1, val.value], msg: {...val}})
-            }
+            // 飞线
+            lines_coord.push({value: val[value], msg: {...val}, coords: [[val[fromLat], val[fromLng]], [val[toLat], val[toLng]]]})
+            // 起点散点
+            fromCoord.push({name: val[fromName], value: [val[fromLat], val[fromLng], val[value]], msg: {...val}})
+            // 终点散点
+            coord.push({name: val[toName], value: [val[toLat], val[toLng], val[value]], msg: {...val}})
           })
         }
         let mapData = hasMapId ? JSON.parse(res.data.geoJson) : res
@@ -161,13 +174,17 @@ export default {
               normal: {
                 show: config.customize.mapName,
                 textStyle: {
-                  color: '#fff'
+                  color: config.customize.mapNameColor || '#fff',
+                  fontSize: config.customize.mapNameSize || 12,
+                  fontWeight: config.customize.mapNameWeight || 500
                 }
               },
               // 鼠标放上去的样式
               emphasis: {
                 textStyle: {
-                  color: '#fff'
+                  color: config.customize.mapNameColor || '#fff',
+                  fontSize: config.customize.mapNameSize || 12,
+                  fontWeight: config.customize.mapNameWeight || 500
                 }
               }
             },
@@ -288,10 +305,6 @@ export default {
         this.charts.on('click', async (params) => {
           if (params.name == '') return
           if (!config.customize.down) {
-            this.$message({
-              message: '该地图未开启下钻',
-              type: 'warning'
-            })
             return
           }
           // 到达允许下钻的层数,则不再下钻

+ 35 - 0
data-room-ui/packages/BasicComponents/FlyMap/setting.vue

@@ -51,6 +51,41 @@
             active-color="#007aff"
           />
         </el-form-item>
+        <el-form-item
+          v-if="config.customize.mapName"
+          label="地名字体颜色"
+          label-width="100px"
+        >
+          <ColorPicker
+            v-model="config.customize.mapNameColor"
+            :predefine-colors="predefineThemeColors"
+          />
+        </el-form-item>
+        <el-form-item
+          v-if="config.customize.mapName"
+          label="地名字体大小"
+          label-width="100px"
+        >
+          <el-input-number
+            v-model="config.customize.mapNameSize"
+            class="bs-el-input-number"
+            placeholder="请输入字体大小"
+            :min="0"
+          />
+        </el-form-item>
+        <el-form-item
+          v-if="config.customize.mapName"
+          label="地名字体权重"
+          label-width="100px"
+        >
+          <el-input-number
+            v-model="config.customize.mapNameWeight"
+            class="bs-el-input-number"
+            placeholder="请输入字体权重"
+            :min="100"
+            :step="100"
+          />
+        </el-form-item>
         <el-form-item
           label="地图级别"
           label-width="100px"

+ 28 - 2
data-room-ui/packages/BasicComponents/FlyMap/settingConfig.js

@@ -20,6 +20,9 @@ export const settingConfig = {
     mapField: {
       enable: false
     },
+    flyMapField: {
+      enable: true
+    },
     metricField: {
       // 指标
       label: '维度',
@@ -49,11 +52,18 @@ const customConfig = {
     skewX: 0,
     skewY: 0
   },
+
   customize: {
     // 地图id
     mapId: '',
     // 是否显示文字
     mapName: false,
+    // 文字颜色
+    mapNameColor: '#fff',
+    // 文字大小
+    mapNameSize: 12,
+    // 文字权重
+    mapNameWeight: 500,
     // 悬浮框背景色
     tooltipBackgroundColor: '#0C121C',
     // 悬浮框边框色
@@ -106,8 +116,24 @@ const customConfig = {
     // 纵坐标
     yaxis: '',
     // 名称
-    name: ''
-
+    name: '',
+    // 数据字段配置
+    dataField: {
+      // 起点名称
+      fromName: '',
+      // 起点经度
+      fromLng: '',
+      // 起点纬度
+      fromLat: '',
+      // 终点名称
+      toName: '',
+      // 终点经度
+      toLng: '',
+      // 终点纬度
+      toLat: '',
+      // 轨迹数据
+      value: '',
+    }
   }
 }
 

+ 6 - 6
data-room-ui/packages/BasicComponents/Map/index.vue

@@ -132,13 +132,17 @@ export default {
             normal: {
               show: config.customize.mapName,
               textStyle: {
-                color: '#fff'
+                color: config.customize.mapNameColor || '#fff',
+                fontSize: config.customize.mapNameSize || 12,
+                fontWeight: config.customize.mapNameWeight || 500
               }
             },
             // 鼠标放上去的样式
             emphasis: {
               textStyle: {
-                color: '#fff'
+                color: config.customize.mapNameColor || '#fff',
+                fontSize: config.customize.mapNameSize || 12,
+                fontWeight: config.customize.mapNameWeight || 500
               }
             }
           },
@@ -276,10 +280,6 @@ export default {
       this.charts.on('click', async (params) => {
         if (params.name == '') return
         if (!config.customize.down) {
-          this.$message({
-            message: '该地图未开启下钻',
-            type: 'warning'
-          })
           return
         }
         // 到达允许下钻的层数,则不再下钻

+ 36 - 0
data-room-ui/packages/BasicComponents/Map/setting.vue

@@ -51,6 +51,42 @@
             active-color="#007aff"
           />
         </el-form-item>
+        <el-form-item
+          v-if="config.customize.mapName"
+          label="地名字体颜色"
+          label-width="100px"
+        >
+          <ColorPicker
+          v-model="config.customize.mapNameColor"
+          :predefine-colors="predefineThemeColors"
+          />
+        </el-form-item>
+        <el-form-item
+          v-if="config.customize.mapName"
+          label="地名字体大小"
+          label-width="100px"
+        >
+          <el-input-number
+            v-model="config.customize.mapNameSize"
+            class="bs-el-input-number"
+            placeholder="请输入字体大小"
+            :min="0"
+          />
+        </el-form-item>
+        <el-form-item
+          v-if="config.customize.mapName"
+          label="地名字体权重"
+          label-width="100px"
+        >
+          <el-input-number
+            v-model="config.customize.mapNameWeight"
+            class="bs-el-input-number"
+            placeholder="请输入字体权重"
+            :min="100"
+            :step="100"
+          />
+        </el-form-item>
+
         <el-form-item
           label="地图级别"
           label-width="100px"

+ 6 - 0
data-room-ui/packages/BasicComponents/Map/settingConfig.js

@@ -58,6 +58,12 @@ const customConfig = {
     center2: 50,
     // 是否显示文字
     mapName: true,
+    // 文字颜色
+    mapNameColor: '#fff',
+    // 文字大小
+    mapNameSize: 12,
+    // 文字权重
+    mapNameWeight: 500,
     // 地图背景色
     backgroundColor: 'rgb(21, 26, 38)',
     // 是否打点

+ 203 - 1
data-room-ui/packages/BigScreenDesign/RightSetting/DataSetting.vue

@@ -104,7 +104,6 @@
         >
           <div class="lc-field-head">
             <div
-              v-if="config.type!=='flyMap'"
               class="lc-field-title"
             >
               数据配置
@@ -505,6 +504,209 @@
             </el-form-item>
           </div>
         </div>
+        <div
+          v-if="config.option.displayOption.flyMapField && config.option.displayOption.flyMapField.enable"
+          name="飞线地图数据配置"
+        >
+          <div class="lc-field-body">
+            <el-form-item
+              label="起点经度"
+              class="data-form-item"
+            >
+              <el-select
+                v-model="config.customize.dataField.fromLng"
+                class="bs-el-select"
+                popper-class="bs-el-select"
+                filterable
+                clearable
+              >
+                <el-option
+                  v-for="(field, index) in dataSourceDataList"
+                  :key="index"
+                  :label="field.comment"
+                  :value="field.name"
+                >
+                  <div class="source-key-option">
+                    <div>
+                      {{ field.comment !== "" ? field.comment : field.name }}
+                    </div>
+                    <div class="option-txt">
+                      {{ field.name }}
+                    </div>
+                  </div>
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item
+              label="起点纬度"
+              class="data-form-item"
+            >
+              <el-select
+                v-model="config.customize.dataField.fromLat"
+                class="bs-el-select"
+                popper-class="bs-el-select"
+                filterable
+                clearable
+              >
+                <el-option
+                  v-for="(field, index) in dataSourceDataList"
+                  :key="index"
+                  :label="field.comment"
+                  :value="field.name"
+                >
+                  <div class="source-key-option">
+                    <div>
+                      {{ field.comment !== "" ? field.comment : field.name }}
+                    </div>
+                    <div class="option-txt">
+                      {{ field.name }}
+                    </div>
+                  </div>
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item
+              label="终点经度"
+              class="data-form-item"
+            >
+              <el-select
+                v-model="config.customize.dataField.toLng"
+                class="bs-el-select"
+                popper-class="bs-el-select"
+                filterable
+                clearable
+              >
+                <el-option
+                  v-for="(field, index) in dataSourceDataList"
+                  :key="index"
+                  :label="field.comment"
+                  :value="field.name"
+                >
+                  <div class="source-key-option">
+                    <div>
+                      {{ field.comment !== "" ? field.comment : field.name }}
+                    </div>
+                    <div class="option-txt">
+                      {{ field.name }}
+                    </div>
+                  </div>
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item
+              label="终点纬度"
+              class="data-form-item"
+            >
+              <el-select
+                v-model="config.customize.dataField.toLat"
+                class="bs-el-select"
+                popper-class="bs-el-select"
+                filterable
+                clearable
+              >
+                <el-option
+                  v-for="(field, index) in dataSourceDataList"
+                  :key="index"
+                  :label="field.comment"
+                  :value="field.name"
+                >
+                  <div class="source-key-option">
+                    <div>
+                      {{ field.comment !== "" ? field.comment : field.name }}
+                    </div>
+                    <div class="option-txt">
+                      {{ field.name }}
+                    </div>
+                  </div>
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item
+              label="起点名称"
+              class="data-form-item"
+            >
+              <el-select
+                v-model="config.customize.dataField.fromName"
+                class="bs-el-select"
+                popper-class="bs-el-select"
+                filterable
+                clearable
+              >
+                <el-option
+                  v-for="(field, index) in dataSourceDataList"
+                  :key="index"
+                  :label="field.comment"
+                  :value="field.name"
+                >
+                  <div class="source-key-option">
+                    <div>
+                      {{ field.comment !== "" ? field.comment : field.name }}
+                    </div>
+                    <div class="option-txt">
+                      {{ field.name }}
+                    </div>
+                  </div>
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item
+              label="终点名称"
+              class="data-form-item"
+            >
+              <el-select
+                v-model="config.customize.dataField.toName"
+                class="bs-el-select"
+                popper-class="bs-el-select"
+                filterable
+                clearable
+              >
+                <el-option
+                  v-for="(field, index) in dataSourceDataList"
+                  :key="index"
+                  :label="field.comment"
+                  :value="field.name"
+                >
+                  <div class="source-key-option">
+                    <div>
+                      {{ field.comment !== "" ? field.comment : field.name }}
+                    </div>
+                    <div class="option-txt">
+                      {{ field.name }}
+                    </div>
+                  </div>
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item
+              label="值"
+              class="data-form-item"
+            >
+              <el-select
+                v-model="config.customize.dataField.value"
+                class="bs-el-select"
+                popper-class="bs-el-select"
+                filterable
+                clearable
+              >
+                <el-option
+                  v-for="(field, index) in dataSourceDataList"
+                  :key="index"
+                  :label="field.comment"
+                  :value="field.name"
+                >
+                  <div class="source-key-option">
+                    <div>
+                      {{ field.comment !== "" ? field.comment : field.name }}
+                    </div>
+                    <div class="option-txt">
+                      {{ field.name }}
+                    </div>
+                  </div>
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+        </div>
         <div
           v-if="config.option.displayOption.params.enable && config.dataSource.source !== 'expression'"
           class="data-setting-data-box"