/** * 废水 */ // import WasteWater from "../../table/components/WasteWater"; 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 = 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 layer.options.totransferData.Name } this.clickListener = (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 } }