派生自 wuyushui/SewerAndRainNetwork

chenzeping
2021-04-21 9a7a37389c784684cb848d86817fcc15f22e0f4a
src/components/LayerController/logic/WasteGas.js
@@ -5,23 +5,27 @@
// const AjaxUtils = require('../../../utils/AjaxUtils').default
// 区分不同类型 使用不同img
const ImgBlue = '/assets/images/map/exhaust/fq_blue.png'
const ImgGray = '/assets/images/map/exhaust/fq_gray.png'
const ImagGreen = '/assets/images/map/exhaust/fq_green.png'
const ImagBright = '/assets/images/map/exhaust/fq_bright_green.png'
// const ImgBlue = '/assets/images/map/exhaust/fq_blue.png'
// const ImgGray = '/assets/images/map/exhaust/fq_gray.png'
const ImagGreen = '/assets/images/map/exhaust/fq_green2.png'
// const ImagBright = '/assets/images/map/exhaust/fq_bright_green.png'
const mapApi = require('../../../api/mapApi').default
const publicBounced = require('../../BaseNav/PublicBounced/PublicBounced').default
// const publicBounced = require('../../BaseNav/PublicBounced/PublicBounced').default
const WasteGasIndex = require('../../BaseNav/WasteGas/WasteGasIndex').default
// const WasteGasChats = require('./WasteGasChats').default
module.exports = function () {
  /**
   * 返回marker对象数组
   * @param L leaflet对象
   */
  this.init = async (layer, L) => {
    // console.log(WasteGasChats)
    this.animalService = new AnimalService({ L: L, layer: layer })
    const res = await mapApi.GetWasteGas()
    const res = await mapApi.getWasteGas()
    // console.log(res)
    const data = res.Result.DataInfo || {}
    console.log(data)
    // console.log(data)
    for (let i = 0; i < data.length; i++) {
      // 经纬度 位置
      const positionX = data[i].Latitude
@@ -29,12 +33,18 @@
      // 定义类型 用来区分数据
      const ContrLevel = data[i].ContrLevel
      var iconUrl = this.differentTypes(ContrLevel)
      const marker = L.marker.magic([positionX, positionY], {
      // const marker = L.canvasMarker([positionX, positionY], {
      //   img: {
      //     // url: 'assets/images/map/marker-icon.png',
      //     url: iconUrl,
      //     size: STYLES.ICON_SIZE
      //   }
      const marker = L.marker([positionX, positionY], {
        test: data[i],
        icon: L.icon({
          iconUrl: iconUrl,
          iconSize: [50, 50],
          iconAnchor: [25, 25]
          iconSize: [30, 30],
          iconAnchor: [15, 15]
        })
      })
      layer.addLayer(marker)
@@ -43,35 +53,47 @@
  }
  this.bindTooltip = (layer) => {
    console.log(layer)
    return '废气点'
    return layer.options.test.Name
  }
  this.clickListener = async (e) => {
    // console.log(e)
    console.log(e)
    this.animalService.pulseEffect(e.latlng)
    const dataValue = {
      StoragePlaceId: e.layer.options.test.StoragePlaceId
    }
    const result = await mapApi.GetWasteGas(dataValue)
    const PublicBounced = window.Vue.extend(publicBounced)
    const instance = new PublicBounced()
    instance.setData(result)
    instance.$mount()
    document.body.appendChild(instance.$el)
    const title = e.layer.options.test.Name
    const res = e.layer.options.test
    window.$layer.open({
      content: {
        content: WasteGasIndex, // 组件
        parent: this, // 父组件
        data: { // 传递的参数
          storagePlaceId: res
        }
      },
      title: title // 标题
    })
    this.setPanTo(e.latlng, 150)
  }
  // 不同类型图片加载
  this.differentTypes = (ContrLevel) => {
    var effectOfChange
    if (ContrLevel === 1) {
      effectOfChange = ImgBlue
    } else if (ContrLevel === 2) {
      effectOfChange = ImagGreen
    } else if (ContrLevel === 3) {
      effectOfChange = ImagBright
    } else {
      effectOfChange = ImgGray
    }
    /*
     if (ContrLevel === 1) {
       effectOfChange = ImgBlue
     } else if (ContrLevel === 2) {
    */
    effectOfChange = ImagGreen
    // } else if (ContrLevel === 3) {
    //   effectOfChange = ImagBright
    // } else {
    //   effectOfChange = ImgGray
    // }
    return effectOfChange
  }
  this.setPanTo = (pos, value) => {
    var position = pos
    position = window.map.latLngToLayerPoint(position)
    position.y += value
    position = window.map.layerPointToLatLng(position)
    window.map.flyTo(position)
  }
}