{"remainingRequest":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\cssc-fvue\\src\\views\\WindFarmOverview\\MapModel.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\cssc-fvue\\src\\views\\WindFarmOverview\\MapModel.vue","mtime":1681441192488},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es6.array.find-index\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/web.dom.iterable\";\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// leaflet实现离线地图\nimport 'leaflet/dist/leaflet.css'; // 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用\n\nimport L from 'leaflet';\nexport default {\n name: 'map-model',\n data: function data() {\n return {\n map: null,\n markers: [],\n //标点集合\n fanState: {},\n //监听风机状态变化状态\n popups: [],\n overView: {\n setsNo: {\n icon: 'icon-fengdianchang',\n colorType: 'primary',\n label: '装机台数',\n value: null\n },\n capacity: {\n icon: 'icon-rongliangguanli',\n colorType: 'primary',\n label: '装机容量(MW)',\n value: null\n },\n emsFactoryWinspdAvg: {\n icon: 'icon-fengsu1',\n colorType: 'primary',\n label: '全场平均风速(m/s)',\n value: null\n },\n factoryPowAct: {\n icon: 'icon-yougonggongshuai',\n colorType: 'primary',\n label: '全场总有功功率(MW)',\n value: null\n },\n factoryDayEnergy: {\n icon: 'icon-rifadianliang',\n colorType: 'primary',\n label: '全场当日发电量(MWh)',\n value: null\n },\n normal: {\n icon: 'icon-fengdianta',\n colorType: 'success',\n label: '正常发电台数',\n value: null\n },\n emsFaultCount: {\n icon: 'icon-fengdianta',\n colorType: 'danger',\n label: '故障台数',\n value: null\n },\n emsComerrCount: {\n icon: 'icon-fengdianta',\n colorType: 'info',\n label: '通讯中断台数',\n value: null\n }\n },\n crewInfoShow: false,\n crewNumber: '',\n crewInfo: {\n // workModeSrc: {\n // label: '工作状态',\n // value: null,\n // unit: null,\n // },\n winSpd: {\n label: '瞬时风速',\n value: null,\n unit: 'm/s'\n },\n var_363: {\n label: '风向',\n value: null,\n unit: '°'\n },\n powAct: {\n label: '有功功率',\n value: null,\n unit: 'kW'\n },\n genSpeed: {\n label: '发电机转速',\n value: null,\n unit: 'rpm'\n },\n dayEnergy: {\n label: '今日发电量',\n value: null,\n unit: 'kWh'\n },\n evnTemp: {\n label: '环境温度',\n value: null,\n unit: '℃'\n }\n },\n crewInfoArr: [// {\n // label: '工作状态',\n // value: null,\n // unit: null,\n // },\n {\n label: '瞬时风速',\n value: null,\n unit: 'm/s'\n }, {\n label: '风向',\n value: null,\n unit: '°'\n }, {\n label: '有功功率',\n value: null,\n unit: 'kW'\n }, {\n label: '发电机转速',\n value: null,\n unit: 'rpm'\n }, {\n label: '今日发电量',\n value: null,\n unit: 'kWh'\n }, {\n label: '环境温度',\n value: null,\n unit: '℃'\n }],\n crewPoints: [],\n markerList: [],\n crewState: {},\n icon: require(\"../../assets/img/loading.gif\"),\n accecptData: false,\n layerUrl: window.context.layer,\n // 地图瓦片根路径\n workModeSrc: [],\n //机组工作状态\n crewWorkMode: {\n // 当前选中风机工作状态\n value: '',\n name: ''\n }\n };\n },\n created: function created() {//测试用的\n // setTimeout(() => {\n // this.diffState()\n // }, 5000)\n },\n mounted: function mounted() {\n var _this = this;\n\n this.initWorkMode();\n this.initWindFactory();\n this.accecptData = true;\n this.initCrewPoints();\n this.$bus.$on('SCADAMsg', function (data) {\n if (_this.accecptData) {\n _this.changeData(data);\n }\n });\n },\n beforeDestroy: function beforeDestroy() {\n // 切换页面 不再接收数据\n this.accecptData = false;\n },\n methods: {\n initWindFactory: function initWindFactory() {\n var _this2 = this;\n\n this.$http.post('${cssc}/biz/base/windFactory/v1/getOne').then(function (resp) {\n if (resp.data) {\n // console.log(resp.data, 'dd')\n _this2.overView.capacity.value = resp.data.capacity;\n _this2.overView.setsNo.value = resp.data.setsNo;\n }\n }, function (error) {\n reject(error);\n });\n },\n changeData: function changeData(data) {\n // console.log(data, 'data')\n // ------------头部总览\n // 正常发电台数\n var normal = 0;\n\n for (var crew in data.fan) {\n if (data.fan[crew].workModeSrc && data.fan[crew].workModeSrc.val === 32) {\n normal++;\n } // 风机状态监听\n // 空字符是加初始数据\n // if (!this.fanState) {\n // this.fanState[crew] !== data.fan[crew].workModeSrc.val\n // }\n // console.log(crew, this.fanState[crew], \"crew, this.fanState[crew]\")\n //diff数据是否变化\n\n\n if (data.fan[crew].workModeSrc && this.fanState[crew].crewStatus != data.fan[crew].workModeSrc.val) {\n // console.log(\n // this.fanState[crew].crewStatus,\n // data.fan[crew].workModeSrc.val\n // )\n // 变化了 存入changeFaultData\n this.fanState[crew].crewStatus = data.fan[crew].workModeSrc.val; //参数:风机编号, 风机状态\n\n this.diffState(crew, this.fanState[crew]);\n }\n } // console.log(normal)\n // console.log(this.overView, 'overView')\n\n\n this.overView.normal.value = normal; // 平均风速\n\n this.overView.emsFactoryWinspdAvg.value = data.wind.emsFactoryWinspdAvg ? data.wind.emsFactoryWinspdAvg.val : null; // 全场总有功功率\n\n this.overView.factoryPowAct.value = data.wind.factoryPowAct ? data.wind.factoryPowAct.val : null; // 全场当日发电量\n\n this.overView.factoryDayEnergy.value = data.wind.factoryDayEnergy ? data.wind.factoryDayEnergy.val : null; // 故障台数\n\n this.overView.emsFaultCount.value = data.wind.emsFaultCount ? data.wind.emsFaultCount.val : null; // 故障台数\n\n this.overView.emsComerrCount.value = data.wind.emsComerrCount ? data.wind.emsComerrCount.val : null; //-------------机组信息\n // console.log(this.crewInfo, 'this.crewInfo')\n // console.log(this.crewNumber, 'cred')\n\n if (this.crewNumber && data.fan[this.crewNumber]) {\n this.crewWorkMode.name = this.bindWorkMode(data.fan[this.crewNumber].workModeSrc.val);\n this.crewWorkMode.value = data.fan[this.crewNumber].workModeSrc.val; //瞬时风速\n // this.crewInfo.winSpd.value = data.fan[this.crewNumber].winSpd.val\n\n this.crewInfoArr[0].value = data.fan[this.crewNumber].winSpd.val; // 瞬时风向\n // this.crewInfo.var_363.value = data.fan[this.crewNumber].var_363.val\n\n this.crewInfoArr[1].value = data.fan[this.crewNumber].var_363.val; // 有功功率\n // this.crewInfo.powAct.value = data.fan[this.crewNumber].powAct.val\n\n this.crewInfoArr[2].value = data.fan[this.crewNumber].powAct.val; // 发电机转速\n // this.crewInfo.genSpeed.value = data.fan[this.crewNumber].genSpeed.val\n\n this.crewInfoArr[3].value = data.fan[this.crewNumber].genSpeed.val; // 今日发电量\n // this.crewInfo.dayEnergy.value = data.fan[this.crewNumber].dayEnergy.val\n\n this.crewInfoArr[4].value = data.fan[this.crewNumber].dayEnergy.val; // 环境温度\n // this.crewInfo.evnTemp.value = data.fan[this.crewNumber].evnTemp.val\n\n this.crewInfoArr[5].value = data.fan[this.crewNumber].evnTemp.val; //实时更新状态\n\n this.realTimeUpdate();\n } // diff状态 改变图片\n // this.formatPointData()\n\n },\n diffState: function diffState(code, fanState) {\n //fancode风机编码, state风机状态\n var fanCode = code; //变化的风机编号\n\n var fanName = fanState.fanName; //变化的风机名称\n\n var state = fanState.crewStatus; //变化风机的状态\n\n var option;\n\n if (this.map.getZoom() < 9) {\n option = {\n iconUrl: this.bindImg(state),\n iconSize: [25, 30],\n iconAnchor: [12.5, 30]\n };\n\n if (fanState.isFlagShip) {\n option.shadowUrl = require('@/assets/img/flagShadow.png');\n option.shadowSize = [15, 5];\n option.shadowAnchor = [7.5, 3];\n }\n } else {\n option = {\n iconUrl: this.bindImg(state),\n iconSize: [50, 60],\n iconAnchor: [25, 60]\n };\n\n if (fanState.isFlagShip) {\n option.shadowUrl = require('@/assets/img/flagShadow.png');\n option.shadowSize = [30, 10];\n option.shadowAnchor = [15, 6];\n }\n }\n\n var icon = new L.Icon(option); //实时更新状态\n\n this.markers.forEach(function (item) {\n if (item.options.title === fanName) {\n item.setIcon(icon).update();\n }\n });\n },\n initCrewPoints: function initCrewPoints() {\n var _this3 = this;\n\n var query = {\n sorter: [{\n direction: 'ASC',\n property: 'fanCode'\n }]\n };\n this.$http.post('${cssc}/biz/base/fanInfo/v1/list', query).then(function (resp) {\n _this3.crewPoints = [];\n var response = resp.data;\n response.forEach(function (el) {\n var arr = {\n fanCode: el.fanCode,\n fanName: el.fanName,\n position: [parseFloat(el.longitude), parseFloat(el.latitude)],\n state: 0,\n isFlagShip: el.isFlagship\n };\n\n _this3.crewPoints.push(arr);\n\n _this3.fanState[el.fanCode] = {\n crewStatus: 0,\n fanName: el.fanName,\n isFlagShip: el.isFlagship\n };\n }); // console.log(this.fanState, 'this.fanState')\n\n _this3.initMap();\n }, function (error) {\n reject(error);\n });\n },\n initMap: function initMap() {\n var _this4 = this;\n\n // let base = window.context.front\n // this.map = new AMap.Map('container', {\n // center: [106.972, 28.7757],\n // layers: [\n // // 卫星\n // new AMap.TileLayer.Satellite(),\n // // 路网\n // new AMap.TileLayer.RoadNet({opacity: 0.5}),\n // ],\n // zoom: 10,\n // })\n // this.initPointData()\n // this.map.setFitView()\n this.map = L.map('container', {\n zoominfoControl: true,\n zoomControl: false,\n zoomsliderControl: false,\n zoom: 5,\n center: [this.crewPoints[0].position[1], this.crewPoints[0].position[0]],\n attributionControl: true\n }); // http://119.3.200.177:8090\n\n L.tileLayer(\"\".concat(this.layerUrl, \"/{z}/{x}/{y}.png\"), {\n maxZoom: 14,\n minZoom: 4,\n attribution: ''\n }).addTo(this.map);\n this.initPointData();\n this.map.on(\"zoomend\", function () {\n if (_this4.map.getZoom() < 9) {\n _this4.markers.forEach(function (item) {\n var options = item.options.icon.options;\n options.iconSize = [25, 30];\n options.iconAnchor = [12.5, 30];\n options.shadowSize = [15, 5];\n options.shadowAnchor = [7.5, 3];\n var icon = new L.Icon(options);\n item.setIcon(icon).update();\n });\n } else {\n _this4.markers.forEach(function (item) {\n var options = item.options.icon.options;\n options.iconSize = [50, 60];\n options.iconAnchor = [25, 60];\n options.shadowSize = [30, 10];\n options.shadowAnchor = [15, 6];\n var icon = new L.Icon(options);\n item.setIcon(icon).update();\n });\n }\n });\n },\n bindImg: function bindImg(state) {\n if (state) {\n if (state == 8) {\n return require('@/assets/img/crew-white.png');\n } else if (state == 1) {\n return require('@/assets/img/crew-white.png');\n } else if (state == 2) {\n return require('@/assets/img/crew-red.png');\n } else if (state == 4) {\n return require('@/assets/img/crew-blue2.png');\n } else if (state == 16) {\n return require('@/assets/img/crew-blue.gif');\n } else if (state == 32) {\n return require('@/assets/img/crew-green.gif');\n } else if (state == 64) {\n return require('@/assets/img/crew-orange.png');\n }\n } else {\n return require('@/assets/img/crew-gray.png');\n }\n },\n initPointData: function initPointData() {\n var _this5 = this;\n\n //设置ICON相关配置\n var base = 'http://cqhuan.top:8081/fvue';\n this.crewPoints.forEach(function (crew) {\n crew.position = [crew.position[1], crew.position[0]];\n var option = {\n iconUrl: _this5.bindImg(crew.state),\n iconSize: [25, 30],\n iconAnchor: [12.5, 30]\n };\n\n if (crew.isFlagShip) {\n option.shadowUrl = require('@/assets/img/flagShadow.png');\n option.shadowSize = [15, 5];\n option.shadowAnchor = [7.5, 3];\n }\n\n var Icon = new L.Icon(option); // console.log(crew.position)\n\n var popup = L.popup().setLatLng(crew.position).setContent( // 机组编码: ${crew.fanCode}\n \"