派生自 wuyushui/SewerAndRainNetwork

chenyabin
2021-05-14 f6e2c7d08bb4f29f38a77b9f789c6d7a47d5bebe
src/components/LayerController/logic/WasteWater.js
@@ -1,49 +1,136 @@
/**
 * 废水
 */
const AnimalService = require('../service/AnimalService').default
const AjaxUtils = require('../../../utils/AjaxUtils').default
// import WasteWater from "../../table/components/WasteWater";
// const getWasteWater = require('../../../utils/axios').default
const AnimalService = require('../service/AnimalService').default
const mapApi = require('../../../api/mapApi').default
// 弹窗数据引进
const WasteWaterIndex = require('@components/BaseNav/WasteWater/WasteWaterIndex').default
// const publicBounced = require('../../BaseNav/PublicBounced/PublicBounced').default
const NormalImg = '/assets/images/map/wastewater/fs_bright_green.png' // 正常
const OffImg = '/assets/images/map/wastewater/fs_gray.png' // 停运
const AbnormalImg = '/assets/images/map/wastewater/fs_blue.png' // 异常
const MissImg = '/assets/images/map/wastewater/fs_bright_green.png' // 缺失
const AlarmImg = '/assets/images/map/wastewater/fs_red.png' // 报警闪烁
const WarnImg = '/assets/images/map/wastewater/fs_orange.png' // 预警闪烁
module.exports = function () {
  /**
   * 返回marker对象数组
   * @param L leaflet对象
   */
  this.init = (layer, L) => {
    this.animalService = new AnimalService({ L: L, layer: layer })
    AjaxUtils.get4JsonDataByUrl('http://10.246.162.140:8080/EPInterface/DataService/EPMapService.asmx/ObtainningConInfo', {
      companyId: 3900100145,
      id: '',
      monType: 1,
      userCode: 'wenchun.deng',
      monDuration: '',
      epName: '',
      secdDeptId: '',
      contrLevel: '',
      dataStatus: '',
      dataFlag: '',
      runStatus: '',
      emissTypeId: ''
    }, function (res) {
      console.log(res)
      const data = res.data.Result.DataInfo
      for (let i = 0; i < data.length; i++) {
        // 经纬度 位置
        const positionX = data[i].Latitude
        const positionY = data[i].Longitude
        layer.addLayer(L.marker([positionX, positionY], {}))
      }
  this.init = async (layer, L) => {
    this.animalService = new AnimalService({
      L: L,
      layer: layer
    })
    const res = await mapApi.getWasteWater()
    const data = res.Result.DataInfo || {}
    for (let i = 0; i < data.length; i++) {
      // 经纬度 位置
      const positionX = data[i].Latitude
      const positionY = data[i].Longitude
      // 定义类型 用来区分数据的不同
      const testValue = data[i].ContrLevel
      const iconUrl = this.differentTypes(testValue)
      const marker = L.marker([positionX, positionY], {
        totransferData: data[i],
        icon: L.icon({
          iconUrl: iconUrl,
          iconSize: [35, 35],
          iconAnchor: [15, 15]
        })
      })
      layer.addLayer(marker)
    }
  }
  // 分割线-------------------------------------------------------------------------------
  this.bindTooltip = (layer) => {
    return 'aaaa'
    return '<div class="company-bindTooltip-hover"><h3>天津石化</h3></div>' + layer.options.totransferData.Name
  }
  this.clickListener = (e) => {
    console.log(e)
    // 点击marker的pulse()光波
    this.animalService.pulseEffect(e.latlng)
    // 弹框标题
    const title = e.layer.options.totransferData.Name
    const res = e.layer.options.totransferData
    window.$layer.open({
      content: {
        content: WasteWaterIndex, // 组件
        parent: this, // 父组件
        data: { // 传递的参数
          // info: this.info
          storagePlaceId: res
        }
      },
      title: '天津石化' + title // 标题
    })
    this.animalService.setPanTo(e.latlng, 150)
  }
  this.requestWasteWaterData = async (e) => {
    // 基本信息 和 详细信息 展示数据所需参数
    // const dataValue = {
    //   StoragePlaceId: e.layer.options.test.StoragePlaceId
    // }
    // 弹框标题
    // const title = e.layer.options.totransferData.Name
    // console.log(e.layer.options)
    // 基本信息 tabs
    // const resultBasic = await mapApi.getWasteWater(dataValue)
    // 图表信息展示 echarts
    // 实时数据
    // const resultReal = await mapApi.getDataItems(Value)
    // 小时数据 及 明细表数据
    // const result = await mapApi.getQueryOnlineMonData(dataValue)
    // 日数据 及 明细表数据
    // const result = await mapApi.getQueryOnlineMonData(dataValue)
    // 人工数据
    // const resultEchart = await mapApi.getQueryLabMonData(dataValue)
    // // 绑定弹框实例
    // const PublicBounced = window.Vue.extend(publicBounced)
    // const instance = new PublicBounced().$mount()
    // document.body.appendChild(instance.$el)
    // // document.body.removeChild(instance.$el)
    // // 通过方法 向绑定弹框传递数据
    // instance.setData(title, resultBasic.Result.DataInfo, resultDetailed.Result.DataInfo, 'gufei')
    /* flyTo()弹出框平移事件 */
  }
  // 根据返回值的不同标记不同图片
  this.differentTypes = (testValue) => {
    let testChange
    switch (testValue) {
      case 1:
        testChange = NormalImg
        break
      case 2:
        testChange = OffImg
        break
      case 3:
        testChange = AbnormalImg
        break
      case 4:
        testChange = MissImg
        break
      case 5:
        testChange = NormalImg
        break
      case 6:
        testChange = AlarmImg
        break
      case 7:
        testChange = AbnormalImg
        break
      case 8:
        testChange = WarnImg
        break
    }
    return testChange
  }
}