quanyawei
2023-10-09 f6649c6bddaf9e166c63fe049685421a3b5f95b1
fix:地图修改
2 files modified
297 ■■■■ changed files
src/views/UVA/index.vue 294 ●●●● patch | view | raw | blame | history
vue.config.js 3 ●●●●● patch | view | raw | blame | history
src/views/UVA/index.vue
@@ -7,18 +7,17 @@
      >
        <div style="width: 274px; margin: 13px auto">
          <el-date-picker
            ref="datePick"
            v-model="datenum"
            :picker-options="pickerOptions"
            placeholder="选择日期"
            popper-class="jlpMySelectPopper"
            ref="datePick"
            v-model="datenum"
            value-format="yyyy-MM-dd"
            style="width: 280px"
            @change="chooseDate"
            @blur="chooseDate1"
            @focus="chooseDate2"
            value-format="yyyy-MM-dd"
            style="width: 280px"
          >
          </el-date-picker>
          />
        </div>
        <!-- <el-card class="box-card" style="width: 274px; margin: 13px auto"> -->
@@ -44,10 +43,10 @@
        >
          <!--accordion 手风琴模式-->
          <el-collapse
            accordion
            style="box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1)"
            v-show="shou1 === true"
            v-loading="loading"
            accordion
            style="box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1)"
          >
            <el-collapse-item
              style="text-indent: 2em; position: relative; padding-botton: 10px"
@@ -56,23 +55,22 @@
                <img
                  style="position: absolute; left: 18px"
                  src="../../assets/images/uav/uav.png"
                />
                >
                <span
                  style="display: inline-block; position: absolute; left: 20px"
                >
                  该日期暂无无人机数据</span
                >
                  该日期暂无无人机数据</span>
              </template>
            </el-collapse-item>
          </el-collapse>
          <el-collapse
            v-show="shou1 === false"
            ref="collapse"
            v-model="asideData.activeNames"
            v-loading="loading"
            accordion
            style="box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1)"
            @change="handleChange"
            ref="collapse"
            v-show="shou1 === false"
            v-loading="loading"
          >
            <el-collapse-item
              v-for="(item1, index) in asideData.uavTimeFly"
@@ -84,12 +82,11 @@
                <img
                  style="position: absolute; left: 18px"
                  src="../../assets/images/uav/uav.png"
                />
                >
                <span
                  style="display: inline-block; position: absolute; left: 20px"
                >
                  {{ item1.name }}</span
                >
                  {{ item1.name }}</span>
              </template>
              <el-scrollbar style="height: 200px; overflow-x: hidden">
                <div
@@ -130,34 +127,34 @@
        >
          <div class="numss">
            <el-radio-group
              v-if="selecttrue === 1"
              v-model="radioSeven"
              size="medium"
              @change="changeCode"
              v-if="selecttrue === 1"
              style="margin-top: 10px; margin-left: 10px"
              @change="changeCode"
            >
              <el-radio-button label="PM2.5"></el-radio-button>
              <el-radio-button label="PM10"></el-radio-button>
              <el-radio-button label="SO2"></el-radio-button>
              <el-radio-button label="NO2"></el-radio-button>
              <el-radio-button label="CO"></el-radio-button>
              <el-radio-button label="03"></el-radio-button>
              <el-radio-button label="TVOC"></el-radio-button>
              <el-radio-button label="PM2.5" />
              <el-radio-button label="PM10" />
              <el-radio-button label="SO2" />
              <el-radio-button label="NO2" />
              <el-radio-button label="CO" />
              <el-radio-button label="03" />
              <el-radio-button label="TVOC" />
            </el-radio-group>
            <div class="Duo" v-if="selecttrue === 2">
            <div v-if="selecttrue === 2" class="Duo">
              <div class="spantuu">
                <span>无人机飞行高度范围(米): </span>
                <el-input
                  class="inputtu"
                  v-model="tallone"
                  ref="uvas"
                ></el-input>
                  v-model="tallone"
                  class="inputtu"
                />
                --
                <el-input
                  class="inputtu"
                  v-model="talltwo"
                  ref="uvas"
                ></el-input>
                  v-model="talltwo"
                  class="inputtu"
                />
              </div>
              <!-- <el-select v-model="Duovalue" placeholder="其他因子" class="slee">
                <el-option
@@ -169,14 +166,13 @@
                </el-option>
              </el-select> -->
              <div class="spantu">
                <span>图形边长(米): </span
                ><el-input
                  class="inputtu"
                <span>图形边长(米): </span><el-input
                  ref="uvas"
                  v-model="uvasize"
                  class="inputtu"
                  clearable
                  placeholder="请输入内容"
                  ref="uvas"
                ></el-input>
                />
              </div>
              <el-select v-model="Duovalue" placeholder="其他因子" class="slee">
                <el-option
@@ -184,8 +180,7 @@
                  :key="item.code"
                  :label="item.name"
                  :value="item.name"
                >
                </el-option>
                />
              </el-select>
              <!-- <div class="spantuu">
                <span>无人机飞行高度范围(米): </span>
@@ -203,9 +198,11 @@
              </div> -->
            </div>
            <div v-if="selecttrue === 1" style="margin-left: 10px">
              <el-button type="primary" @click="gengD" style="margin-top: 10px"
                >更多条件</el-button
              >
              <el-button
                type="primary"
                style="margin-top: 10px"
                @click="gengD"
              >更多条件</el-button>
            </div>
            <div
              v-if="selecttrue === 2"
@@ -216,8 +213,7 @@
                type="primary"
                icon="el-icon-setting"
                @click="dialogFormVisible = true"
                >6参设定</el-button
              >
              >6参设定</el-button>
              <el-button class="gengD" @click="shou">收起</el-button>
              <el-button type="primary" @click="selectDuo">查询</el-button>
            </div>
@@ -260,8 +256,7 @@
          label="PM2.5 | ug/m³"
          label-class-name="my-label"
          content-class-name="my-content"
          >22</el-descriptions-item
        >
        >22</el-descriptions-item>
        <el-descriptions-item label="PM10 | ug/m³">34</el-descriptions-item>
        <el-descriptions-item label="SO2 | ug/m³">4</el-descriptions-item>
        <el-descriptions-item label="NO2 | ug/m³">16</el-descriptions-item>
@@ -510,14 +505,14 @@
        2.0) /
      3.0
    return ret
  },
  }
}
export default {
  filters: {
    sensorFilter: function (value) {
      if (!value) return ''
      return json[value]
    },
    }
  },
  data() {
    return {
@@ -532,11 +527,11 @@
      selecttrue: 1,
      pickerOptions: {
        cellClassName: (time) => {
          let timeDate = moment(time.getTime()).format('yyyy-MM-DD')
          const timeDate = moment(time.getTime()).format('yyyy-MM-DD')
          if (this.timeNums.includes(timeDate)) {
            return 'dateArrClass' // 返回值设置的是我们添加的类名
          }
        },
        }
      },
      tallone: 0,
@@ -547,7 +542,7 @@
        activeNames: [0],
        uavTimeFly: [], // 存放无人机信息以及飞行时间区间
        activeKey: -1,
        activeAreaKey: 0,
        activeAreaKey: 0
      },
      load: 1,
      value: [],
@@ -559,7 +554,7 @@
        { code: 'a21004', name: 'NO2' },
        { code: 'a21005', name: 'CO' },
        { code: 'a05024', name: 'O3' },
        { code: 'a99054', name: 'TVOC' },
        { code: 'a99054', name: 'TVOC' }
      ],
      valuetime: '2023-01-01',
      defautRadio: { code: 'a34004', name: 'PM2.5' },
@@ -584,7 +579,7 @@
        'CO',
        'O3',
        'TVOC',
        '尘负荷',
        '尘负荷'
      ],
      changeColor: 0,
      changeColor1: 0,
@@ -616,7 +611,7 @@
          } else {
            return time.getTime() > new Date()
          }
        },
        }
      },
      sensorDate: null,
      noneData: true,
@@ -632,16 +627,16 @@
        { code: 'a99054', name: 'TVOC' },
        {
          code: 'a01006',
          name: '气压',
          name: '气压'
        },
        {
          code: 'a01001',
          name: '温度',
          name: '温度'
        },
        {
          code: 'a01002',
          name: '湿度',
        },
          name: '湿度'
        }
      ],
      sensorTableData: [
        {
@@ -652,7 +647,7 @@
          tab3: '115',
          tab4: '150',
          tab5: '250',
          tab6: '350',
          tab6: '350'
        },
        {
          sensorName: 'PM10',
@@ -662,7 +657,7 @@
          tab3: '250',
          tab4: '350',
          tab5: '420',
          tab6: '500',
          tab6: '500'
        },
        {
          sensorName: 'SO2',
@@ -672,7 +667,7 @@
          tab3: '475',
          tab4: '800',
          tab5: '1600',
          tab6: '2100',
          tab6: '2100'
        },
        {
          sensorName: 'NO2',
@@ -682,7 +677,7 @@
          tab3: '180',
          tab4: '280',
          tab5: '565',
          tab6: '750',
          tab6: '750'
        },
        {
          sensorName: 'CO',
@@ -692,7 +687,7 @@
          tab3: '14',
          tab4: '24',
          tab5: '36',
          tab6: '48',
          tab6: '48'
        },
        {
          sensorName: 'O3',
@@ -702,7 +697,7 @@
          tab3: '300',
          tab4: '400',
          tab5: '800',
          tab6: '1000',
          tab6: '1000'
        },
        {
          sensorName: 'TVOC',
@@ -712,7 +707,7 @@
          tab3: '0.5',
          tab4: '0.7',
          tab5: '0.9',
          tab6: '1',
          tab6: '1'
        },
        {
          sensorName: '尘负荷',
@@ -722,21 +717,21 @@
          tab3: '1000',
          tab4: '10000',
          tab5: '20000',
          tab6: '50000',
          tab6: '50000'
        },
        {
          sensorName: '气压',
          unit: 'hpa',
          unit: 'hpa'
        },
        {
          sensorName: '湿度',
          unit: '%',
          unit: '%'
        },
        {
          sensorName: '温度',
          unit: '℃',
        },
          unit: '℃'
        }
      ],
      carWs: null,
      map: null,
@@ -756,12 +751,12 @@
      dataTypeList: [
        {
          value: 'history',
          label: '历史数据',
          label: '历史数据'
        },
        {
          value: 'webSocket',
          label: '实时数据',
        },
          label: '实时数据'
        }
      ],
      dataTypeValue: 'history',
      historyView: true,
@@ -778,7 +773,7 @@
      uvasize: 20,
      timeValue: [
        new Date(2020, 1, 1, 0, 0, 0),
        new Date(2022, 12, 31, 23, 59, 59),
        new Date(2022, 12, 31, 23, 59, 59)
      ],
      timeNums: [],
      batchs: '',
@@ -792,7 +787,7 @@
          tab3: '115',
          tab4: '150',
          tab5: '250',
          tab6: '350',
          tab6: '350'
        },
        {
          sensorName: 'PM10',
@@ -802,7 +797,7 @@
          tab3: '250',
          tab4: '350',
          tab5: '420',
          tab6: '500',
          tab6: '500'
        },
        {
          sensorName: 'SO2',
@@ -812,7 +807,7 @@
          tab3: '650',
          tab4: '800',
          tab5: '',
          tab6: '',
          tab6: ''
        },
        {
          sensorName: 'NO2',
@@ -822,7 +817,7 @@
          tab3: '700',
          tab4: '1200',
          tab5: '2340',
          tab6: '3090',
          tab6: '3090'
        },
        {
          sensorName: 'CO',
@@ -832,7 +827,7 @@
          tab3: '35',
          tab4: '60',
          tab5: '90',
          tab6: '120',
          tab6: '120'
        },
        {
          sensorName: 'O3',
@@ -842,7 +837,7 @@
          tab3: '300',
          tab4: '400',
          tab5: '800',
          tab6: '1000',
          tab6: '1000'
        },
        {
          sensorName: 'TVOC',
@@ -852,7 +847,7 @@
          tab3: '0.5',
          tab4: '0.7',
          tab5: '0.9',
          tab6: '1',
          tab6: '1'
        },
        {
          sensorName: '尘负荷',
@@ -862,17 +857,10 @@
          tab3: '1000',
          tab4: '10000',
          tab5: '20000',
          tab6: '50000',
        },
      ],
          tab6: '50000'
    }
  },
  mounted() {
    this.initStart()
    // this.$refs.datePick.focus()
    // this.getDate()
    // this.flyData()
      ]
    }
  },
  watch: {
    dataTypeValue(n, o) {
@@ -895,7 +883,14 @@
      // console.log(n)
    },
    deep: true,
    immediate: true,
    immediate: true
  },
  mounted() {
    this.initStart()
    // this.$refs.datePick.focus()
    // this.getDate()
    // this.flyData()
  },
  created() {
    this.newTime(this.timeValue)
@@ -932,9 +927,9 @@
          uvasize: this.uvasize,
          mac: this.macs,
          height1: this.tallone,
          height2: this.talltwo,
          height2: this.talltwo
          // batch: '2023-06-16 16:21:21',
        },
        }
      }).then((res) => {
        // console.log(res)
        this.carData = []
@@ -1010,7 +1005,7 @@
        h: date.getHours(),
        i: date.getMinutes(),
        s: date.getSeconds(),
        a: date.getDay(),
        a: date.getDay()
      }
      const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {
        const value = formatObj[key]
@@ -1115,8 +1110,8 @@
        method: 'get',
        params: {
          organizationId: this.$store.state.orgId,
          date: item,
        },
          date: item
        }
      }).then((res) => {
        // console.log(res, 'res.data.vos')
        if (res.code === -47) {
@@ -1174,9 +1169,9 @@
          uvasize: this.uvasize,
          height1: this.tallone,
          height2: this.talltwo,
          mac: mac,
          mac: mac
          // batch: '2023-06-16 16:21:21',
        },
        }
      }).then((res) => {
        // console.log(res)
        this.carData = []
@@ -1200,8 +1195,8 @@
        url: '/uav/queryDate',
        method: 'get',
        params: {
          organizationId: this.$store.state.orgId,
        },
          organizationId: this.$store.state.orgId
        }
      }).then((res) => {
        this.asideData.dates = JSON.parse(JSON.stringify(res.data.datesStr))
        this.timeNums = this.asideData.dates
@@ -1229,10 +1224,13 @@
      const that = this
      if (!res) {
        that.map = new BMapGL.Map('map_container')
        console.log('BMap', BMap)
        console.log('BMapGL', BMapGL)
        console.log('window', window.BMapGL)
        that.map.enableScrollWheelZoom(true) // 开启鼠标滚轮,地图可以进行放大、缩小s
        that.map.setMapType(BMAP_EARTH_MAP) // 设置地图类型为地球模式
        that.map.setDisplayOptions({
          street: false, // 是否显示路网(只对卫星图和地球模式有效)
          street: false // 是否显示路网(只对卫星图和地球模式有效)
        })
        that.map.setHeading(0) // 设置旋转角度
        if (that.viewKey === '2D') {
@@ -1247,31 +1245,31 @@
              elementType: 'all',
              stylers: {
                color: '#ffffff',
                visibility: 'off',
              },
                visibility: 'off'
              }
            },
            {
              featureType: 'building',
              elementType: 'all',
              stylers: {
                visibility: 'off',
              },
                visibility: 'off'
              }
            },
            {
              featureType: 'poilabel',
              elementType: 'all',
              stylers: {
                visibility: 'off',
              },
                visibility: 'off'
              }
            },
            {
              featureType: 'manmade',
              elementType: 'all',
              stylers: {
                visibility: 'off',
              },
            },
          ],
                visibility: 'off'
              }
            }
          ]
        })
        showNoPoints()
        this.loading1 = false
@@ -1363,7 +1361,7 @@
        if (that.firstPlayFlag) {
          that.map.centerAndZoom(that.centerPoint, that.mapZoom)
          that.view = new mapvgl.View({
            map: that.map,
            map: that.map
          })
          that.firstPlayFlag = false
          that.loading1 = false
@@ -1372,7 +1370,7 @@
          this.map.clearOverlays()
          that.map.centerAndZoom(that.centerPoint, that.mapZoom)
          that.view = new mapvgl.View({
            map: that.map,
            map: that.map
          })
          that.loading1 = false
@@ -1396,7 +1394,7 @@
              selectedIndex: -1, // 选中项
              selectedColor: '#ee1111', // 选中项颜色
              autoSelect: true, // 根据鼠标位置来自动设置选中项
              riseTime: 1800, // 楼块初始化升起时间
              riseTime: 1800 // 楼块初始化升起时间
            })
            that.shapeLayer.setData(data)
            that.view.addLayer(that.shapeLayer)
@@ -1423,7 +1421,7 @@
              new BMapGL.Point(sw.lng, sw.lat), // 左下角
              new BMapGL.Point(ne.lng, sw.lat), // 左上角
              new BMapGL.Point(ne.lng, ne.lat), // 右上角
              new BMapGL.Point(sw.lng, ne.lat), // 右下角
              new BMapGL.Point(sw.lng, ne.lat) // 右下角
            ],
            {
              strokeWeight: 0.1, //边框线的宽度,以像素为单位
@@ -1431,7 +1429,7 @@
              fillColor: color, //是否需要填充色
              fillOpacity: 0.8, //填充色的透明度,0~1之间
              strokeColor: 'black', //边框线的颜色
              strokeStyle: 'solid', //边线的样式,solid或dashed。
              strokeStyle: 'solid' // 边线的样式,solid或dashed。
            }
          )
          that.map.addOverlay(polygon)
@@ -1448,7 +1446,7 @@
        )
        var startMark = new BMapGL.Marker(that.showPoints[0], {
          icon: startIcon,
          offset: new BMapGL.Size(0, -20),
          offset: new BMapGL.Size(0, -20)
        })
        that.map.addOverlay(startMark)
        var endIcon = new BMapGL.Icon(
@@ -1459,7 +1457,7 @@
          that.showPoints[that.showPoints.length - 1],
          {
            icon: endIcon,
            offset: new BMapGL.Size(0, -20),
            offset: new BMapGL.Size(0, -20)
          }
        )
        that.map.addOverlay(endMark)
@@ -1477,8 +1475,8 @@
        data.push({
          geometry: {
            type: '"LineString"',
            coordinates: [points],
          },
            coordinates: [points]
          }
        })
        var lineLayer = new mapvgl.LineLayer({
          color: 'red',
@@ -1486,7 +1484,7 @@
          animation: true,
          duration: 10, // 循环时间2s
          trailLength: 0.1, // 拖尾长度占间隔的0.4
          interval: 0.3, // 粒子长度占线整体长度的0.2
          interval: 0.3 // 粒子长度占线整体长度的0.2
        })
        that.view.addLayer(lineLayer)
        lineLayer.setData(data)
@@ -1605,77 +1603,77 @@
              data0.push({
                geometry: {
                  type: 'Polygon',
                  coordinates: [polygon],
                  coordinates: [polygon]
                },
                properties: {
                  height: height,
                },
                  height: height
                }
              })
              break
            case 1:
              data1.push({
                geometry: {
                  type: 'Polygon',
                  coordinates: [polygon],
                  coordinates: [polygon]
                },
                properties: {
                  height: height,
                },
                  height: height
                }
              })
              break
            case 2:
              data2.push({
                geometry: {
                  type: 'Polygon',
                  coordinates: [polygon],
                  coordinates: [polygon]
                },
                properties: {
                  height: height,
                },
                  height: height
                }
              })
              break
            case 3:
              data3.push({
                geometry: {
                  type: 'Polygon',
                  coordinates: [polygon],
                  coordinates: [polygon]
                },
                properties: {
                  height: height,
                },
                  height: height
                }
              })
              break
            case 4:
              data4.push({
                geometry: {
                  type: 'Polygon',
                  coordinates: [polygon],
                  coordinates: [polygon]
                },
                properties: {
                  height: height,
                },
                  height: height
                }
              })
              break
            case 5:
              data5.push({
                geometry: {
                  type: 'Polygon',
                  coordinates: [polygon],
                  coordinates: [polygon]
                },
                properties: {
                  height: height,
                },
                  height: height
                }
              })
              break
            case 6:
              data6.push({
                geometry: {
                  type: 'Polygon',
                  coordinates: [polygon],
                  coordinates: [polygon]
                },
                properties: {
                  height: height,
                },
                  height: height
                }
              })
              break
          }
@@ -1894,7 +1892,7 @@
          "<span class='my-maptip'>" + content + '<br /><span>', // 为lable填写内容
          {
            offset: new BMapGL.Size(-8, -10), // label的偏移量,为了让label的中心显示在点上
            position: point,
            position: point
          } // label的位置
        )
        var offsetSize = new BMapGL.Size(0, 0)
@@ -1909,7 +1907,7 @@
          lineHeight: '20px',
          fontFamily: '微软雅黑',
          backgroundColor: '0.05',
          fontWeight: 'bold',
          fontWeight: 'bold'
        }
        label.setStyle(labelStyle)
        that.map.addOverlay(label)
@@ -2002,8 +2000,8 @@
          break
      }
      this.initStart(this.carData)
    },
  },
    }
  }
}
</script>
vue.config.js
@@ -28,9 +28,6 @@
  productionSourceMap: false,
  devServer: {
    port: port,
    client: {
      webSocketURL: 'ws://0.0.0.0:8080/ws'
    },
    open: false,
    overlay: {
      warnings: false,