/** * 废水 */ const AnimalService = require('../service/AnimalService').default const mapApi = require('../../../api/mapApi').default // 弹窗数据引进 const publicBounced = require('../../BaseNav/PublicBounced/PublicBounced').default const NormalImg = '/assets/images/map/wastewater/fs_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_yellow.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], { test: data[i], icon: L.icon({ iconUrl: iconUrl, iconSize: [20, 20], iconAnchor: [10, 10] }) }) layer.addLayer(marker) } } this.bindTooltip = (layer) => { return layer.options.test.Name } this.clickListener = async (e) => { // console.log(e) this.animalService.pulseEffect(e.latlng) const dataValue = { StoragePlaceId: e.layer.options.test.StoragePlaceId } const drawback = await mapApi.getWasteWaterMonitoring() console.log(drawback) const result = await mapApi.getWasteWaterMonitoringDetails(dataValue) const PublicBounced = window.Vue.extend(publicBounced) const instance = new PublicBounced() instance.setWaterData(e.layer.options.test, result.Result.DataInfo, drawback.Result.DataInfo, 'feishui') // console.log(e.layer.options.test) instance.$mount() document.body.appendChild(instance.$el) this.setPanTo(e.latlng, 80) } // 根据返回值的不同标记不同图片 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 } this.setPanTo = (pos, value) => { var position = pos position = window.map.latLngToLayerPoint(position) position.y += value position = window.map.layerPointToLatLng(position) window.map.flyTo(position) } }