{"remainingRequest":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\cssc-fvue\\src\\views\\GridControl\\ActivePower.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\cssc-fvue\\src\\views\\GridControl\\ActivePower.vue","mtime":1681441192473},{"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":["//\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//\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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { Bar } from '@antv/g2plot'\r\nimport { Chart } from '@antv/g2'\r\nimport utils from '@/hotent-ui-util'\r\nexport default {\r\n name: 'reactivePower',\r\n data() {\r\n return {\r\n imgOn: require('@/assets/img/buttonOn.png'),\r\n imgOff: require('@/assets/img/buttonOff.png'),\r\n tableHeight: 300,\r\n accecptData: false,\r\n emsGridDispathActEnabled: false,\r\n emsGridDispatchAct: 0,\r\n emsGridDispatchActUnit: '',\r\n factoryPowAct: 0,\r\n factoryPowActUnit: '',\r\n columns: [\r\n // {\r\n // label: '机组名称',\r\n // prop: 'fanName',\r\n // minWidth: '15%',\r\n // sortable: true,\r\n // },\r\n {\r\n label: '风速',\r\n prop: 'winSpd',\r\n minWidth: '15%',\r\n sortable: true,\r\n unit: 'm/s',\r\n },\r\n {\r\n label: '有功分配值',\r\n prop: 'var_50',\r\n minWidth: '15%',\r\n sortable: true,\r\n unit: 'kW',\r\n },\r\n {\r\n label: '有功功率',\r\n prop: 'powAct',\r\n minWidth: '15%',\r\n sortable: true,\r\n unit: 'kW',\r\n },\r\n ],\r\n tableData: [],\r\n maxOriginValue: 0,\r\n maxValue: 0,\r\n chart: null,\r\n chartData: [],\r\n }\r\n },\r\n created() { },\r\n mounted() {\r\n this.initCrewList()\r\n this.accecptData = true\r\n this.$bus.$on('SCADAMsg', (data) => {\r\n if (this.accecptData) {\r\n console.log(data)\r\n this.changeData(data)\r\n }\r\n })\r\n this.$nextTick(() => {\r\n this.initChart()\r\n })\r\n },\r\n beforeDestroy() {\r\n this.accecptData = false\r\n },\r\n methods: {\r\n initCrewList() {\r\n let query = {\r\n sorter: [{ direction: 'ASC', property: 'sn' }],\r\n }\r\n this.$http.post('${cssc}/biz/base/fanInfo/v1/list', query).then(\r\n (resp) => {\r\n if (resp.data) {\r\n this.formatFan(resp.data)\r\n }\r\n },\r\n (error) => {\r\n reject(error)\r\n }\r\n )\r\n },\r\n formatFan(data) {\r\n this.crewsList = []\r\n data.forEach((item, index) => {\r\n this.crewsList.push({\r\n fancode: item.fanCode,\r\n fanName: item.fanName,\r\n var_50: null,\r\n powAct: null,\r\n })\r\n })\r\n },\r\n // 电网调度有功 emsGridDispathActEnabled 布尔\r\n // 电网有功调度值 emsGridDispatchAct 浮点\r\n // 有功功率用powAct\r\n // 有功分配用var_50\r\n initChart() {\r\n this.chart = new Chart({\r\n container: 'chart-container',\r\n autoFit: true,\r\n })\r\n this.chart.data(this.chartData)\r\n this.chart.scale({\r\n date: {\r\n alias: '时间',\r\n type: 'time',\r\n formatter: (value) => {\r\n return utils.formatDate(value, 'time')\r\n },\r\n },\r\n value: {\r\n sync: true, // 将数值同 date 字段数值进行同步\r\n nice: true,\r\n min: 0,\r\n },\r\n })\r\n this.chart.axis('date', {\r\n grid: null,\r\n label: {\r\n style: {\r\n fill: '#979ba4',\r\n },\r\n },\r\n line: {\r\n style: {\r\n stroke: '#414959',\r\n },\r\n },\r\n })\r\n this.chart.axis('value', {\r\n grid: {\r\n line: {\r\n style: {\r\n stroke: '#414959',\r\n lineWidth: 1,\r\n lineDash: [3, 3],\r\n },\r\n },\r\n },\r\n label: {\r\n style: {\r\n fill: '#979ba4',\r\n },\r\n formatter: (val) => {\r\n return val + \" \" + this.emsGridDispatchActUnit\r\n },\r\n },\r\n line: {\r\n style: {\r\n stroke: '#414959',\r\n },\r\n },\r\n })\r\n\r\n this.chart.legend({\r\n position: 'top',\r\n itemName: {\r\n style: {\r\n fill: '#979ba4',\r\n },\r\n },\r\n })\r\n this.chart.tooltip({\r\n shared: true,\r\n showCrosshairs: true,\r\n domStyles: {\r\n 'g2-tooltip': {\r\n background: 'rgba(0,0,0, 0.8)',\r\n color: '#d6e0ec',\r\n },\r\n },\r\n })\r\n this.chart\r\n .line()\r\n .position('date*value')\r\n .color('type', ['#399873', '#ff9c00'])\r\n this.chart.interaction('active-region')\r\n this.chart.render()\r\n },\r\n\r\n changeData(data) {\r\n if (data.wind) {\r\n this.emsGridDispathActEnabled = data.wind\r\n .emsGridDispathActEnabled\r\n ? data.wind.emsGridDispathActEnabled.val\r\n : false // 电网调度有功指令\r\n\r\n this.emsGridDispatchAct = data.wind.emsGridDispatchAct\r\n ? data.wind.emsGridDispatchAct.val\r\n : 0 // 电网调度有功指令值\r\n this.emsGridDispatchActUnit = data.wind.emsGridDispatchAct\r\n ? data.wind.emsGridDispatchAct.unit\r\n : ''// 电网调度有功指令值\r\n\r\n this.factoryPowAct = data.wind.factoryPowAct\r\n ? data.wind.factoryPowAct.val\r\n : 0 // 风场总有功\r\n this.factoryPowActUnit = data.wind.factoryPowAct\r\n ? data.wind.factoryPowAct.unit\r\n : ''\r\n\r\n if (data.wind.emsGridDispatchAct || data.wind.factoryPowAct) {\r\n let newData1 = {\r\n date: parseInt(data.time),\r\n value: data.wind.emsGridDispatchAct\r\n ? data.wind.emsGridDispatchAct.val\r\n : null,\r\n type: '电网有功调度指令值',\r\n }\r\n let newData2 = {\r\n date: parseInt(data.time),\r\n value: data.wind.factoryPowAct\r\n ? data.wind.factoryPowAct.val\r\n : null,\r\n type: '风场总有功',\r\n }\r\n this.chartData.push(newData1, newData2)\r\n if (this.chartData.length > 600) {\r\n this.chartData.splice(0, 2)\r\n }\r\n this.chart.changeData(this.chartData)\r\n }\r\n }\r\n if (data.fan) {\r\n this.maxOriginValue = 0\r\n this.maxValue = 0\r\n if (this.crewsList) {\r\n this.crewsList.forEach((item) => {\r\n item.winSpd = data.fan[item.fancode].winSpd\r\n ? data.fan[item.fancode].winSpd.val\r\n : null\r\n item.winSpdUnit = data.fan[item.fancode].winSpd\r\n ? data.fan[item.fancode].winSpd.unit\r\n : null\r\n item.var_50 = data.fan[item.fancode].var_50\r\n ? data.fan[item.fancode].var_50.val\r\n : null\r\n item.var_50Unit = data.fan[item.fancode].var_50\r\n ? data.fan[item.fancode].var_50.unit\r\n : null\r\n item.powAct = data.fan[item.fancode].powAct\r\n ? data.fan[item.fancode].powAct.val\r\n : null\r\n item.powActUnit = data.fan[item.fancode].powAct\r\n ? data.fan[item.fancode].powAct.unit\r\n : null\r\n this.maxOriginValue = Math.max(\r\n this.maxOriginValue,\r\n item.var_50,\r\n item.powAct\r\n )\r\n })\r\n this.maxValue = this.maxOriginValue\r\n this.crewsList.forEach((item) => {\r\n item.widthV =\r\n Math.round((item.var_50 / this.maxValue) * 10000) / 100\r\n item.widthP =\r\n Math.round((item.powAct / this.maxValue) * 10000) / 100\r\n })\r\n this.tableData = this.crewsList\r\n }\r\n }\r\n },\r\n },\r\n}\r\n",null]}