{"remainingRequest":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\cssc-fvue\\src\\views\\WindFarmOverview\\CrewOverview.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\cssc-fvue\\src\\views\\WindFarmOverview\\CrewOverview.vue","mtime":1698746225672},{"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//\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//\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//\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//\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 {Chart} from '@antv/g2'\r\nimport utils from '@/hotent-ui-util'\r\nimport AlarmCodeExplain from '@/views/AlarmCodeExplain.vue'\r\nlet that\r\nexport default {\r\n name: 'CrewOverview',\r\n components: {\r\n AlarmCodeExplain\r\n },\r\n data() {\r\n let ad = '56'\r\n return {\r\n currentPage: 1,\r\n pagelength: 10,\r\n pages: 1,\r\n transitionName: 'list-down',\r\n accecptData: false,\r\n showCrewList: false,\r\n // 机组概况\r\n workModeSrc: [],\r\n crewNumber: 0,\r\n crewName: undefined,\r\n mainData: {\r\n winSpd: {\r\n icon: 'fengsu1',\r\n name: '风速',\r\n value: null,\r\n unit: 'm/s'\r\n },\r\n var_363: {\r\n icon: 'fengxiang2',\r\n name: '风向',\r\n value: null,\r\n unit: '°'\r\n },\r\n powAct: {\r\n icon: 'power',\r\n name: '有功功率',\r\n value: null,\r\n unit: 'kW'\r\n },\r\n genSpeed: {\r\n icon: 'dashboard',\r\n name: '发电机转速',\r\n value: null,\r\n unit: 'rpm'\r\n },\r\n dayEnergy: {\r\n icon: 'leijifadianliang1',\r\n name: '日发电量',\r\n value: null,\r\n unit: 'kWh'\r\n },\r\n var_18: {\r\n icon: 'fadianliang2',\r\n name: '日耗电量',\r\n value: null,\r\n unit: 'kWh'\r\n },\r\n totalEnergy: {\r\n icon: 'dianchifang',\r\n name: '累计电量',\r\n value: null,\r\n unit: 'MWh'\r\n }\r\n },\r\n state: {\r\n workModeSrc: null,\r\n comState: null,\r\n line: '',\r\n type: ''\r\n },\r\n // 风速功率\r\n chart: null,\r\n // {date: 1489593600000, speed: 17, time: 123}\r\n chartData: [],\r\n // 机组详情\r\n boardkey1: {\r\n top: 8,\r\n left: 1,\r\n text: '发电机信息',\r\n icon: 'fadianji',\r\n showList: false\r\n },\r\n boardkey2: {\r\n top: 10,\r\n left: 40,\r\n text: '机舱信息',\r\n icon: 'dianji',\r\n showList: false\r\n },\r\n boardkey3: {\r\n top: 6,\r\n right: 2,\r\n text: '传动信息',\r\n icon: 'chuandonglingjian',\r\n showList: false\r\n },\r\n boardkey4: {\r\n top: 50,\r\n right: 1,\r\n text: '风轮',\r\n icon: 'fengsu',\r\n showList: false\r\n },\r\n boardkey5: {\r\n top: 75,\r\n right: 16,\r\n text: '偏航信息',\r\n icon: 'fengdian',\r\n showList: false\r\n },\r\n boardkey6: {\r\n top: 75,\r\n left: 30,\r\n text: '变流器',\r\n icon: 'bianliuqi',\r\n showList: false\r\n },\r\n boardkey7: {\r\n top: 70,\r\n // bottom: 2,\r\n left: 1,\r\n text: '电网信息',\r\n icon: 'dianwang',\r\n showList: false\r\n },\r\n boardkey1Data: {\r\n genSpeed: {\r\n name: '发电机转速',\r\n value: null,\r\n unit: 'rpm'\r\n },\r\n var_226: {\r\n name: '发电机转矩',\r\n value: null,\r\n unit: 'Nm'\r\n },\r\n var_213: {\r\n name: '发电机冷却水温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_13000: {\r\n name: '发电机冷却水压力',\r\n value: null,\r\n unit: 'bar'\r\n },\r\n var_222: {\r\n name: '发电机前轴承温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_223: {\r\n name: '发电机后轴承温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_206: {\r\n name: '发电机绕组u1温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_207: {\r\n name: '发电机绕组u2温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_208: {\r\n name: '发电机绕组v1温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_209: {\r\n name: '发电机绕组v2温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_210: {\r\n name: '发电机绕组w1温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_211: {\r\n name: '发电机绕组W2温度',\r\n value: null,\r\n unit: '°C'\r\n }\r\n },\r\n boardkey2Data: {\r\n winSpd: {\r\n name: '瞬时风速',\r\n value: null,\r\n unit: 'm/s'\r\n },\r\n var_363: {\r\n name: '瞬时风向',\r\n value: null,\r\n unit: '°'\r\n },\r\n winDir: {\r\n name: '机舱指北方向',\r\n value: null,\r\n unit: '°'\r\n },\r\n var_372: {\r\n name: '机舱温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n evnTemp: {\r\n name: '环境温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_382: {\r\n name: '机舱X方向振动',\r\n value: null,\r\n unit: 'm/s^2'\r\n },\r\n var_383: {\r\n name: '机舱Y方向振动',\r\n value: null,\r\n unit: 'm/s^2'\r\n },\r\n var_1771: {\r\n name: '消防系统运行状态',\r\n isBoolean: true,\r\n value: true,\r\n unit: ''\r\n }\r\n },\r\n boardkey3Data: {\r\n var_173: {\r\n name: '主轴前轴承温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_12030: {\r\n name: '主轴后轴承温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_175: {\r\n name: '齿轮箱油池温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_176: {\r\n name: '齿轮箱进口油温',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_182: {\r\n name: '齿轮箱进口压力',\r\n value: null,\r\n unit: 'bar'\r\n },\r\n var_183: {\r\n name: '齿轮箱油泵出口压力',\r\n value: null,\r\n unit: 'bar'\r\n },\r\n var_171: {\r\n name: '齿轮箱高速轴前端温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_172: {\r\n name: '齿轮箱高速轴后端温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_140: {\r\n name: '齿轮箱润滑泵高速',\r\n isBoolean: true,\r\n value: true,\r\n unit: ''\r\n },\r\n var_141: {\r\n name: '齿轮箱润滑泵低速',\r\n isBoolean: true,\r\n value: true,\r\n unit: ''\r\n }\r\n },\r\n boardkey4Data: {\r\n var_94: {\r\n name: '风轮转速',\r\n value: null,\r\n unit: 'rpm'\r\n },\r\n var_99: {\r\n name: '轮毂温度',\r\n value: null,\r\n unit: '°C'\r\n },\r\n var_100: {\r\n name: '叶片应变桨角度',\r\n value: null,\r\n unit: '°'\r\n },\r\n var_101: {\r\n name: '1#叶片实际角度',\r\n value: null,\r\n unit: '°'\r\n },\r\n var_102: {\r\n name: '2#叶片实际角度',\r\n value: null,\r\n unit: '°'\r\n },\r\n var_103: {\r\n name: '3#叶片实际角度',\r\n value: null,\r\n unit: '°'\r\n }\r\n },\r\n boardkey5Data: {\r\n var_409: {\r\n name: '偏航方位角',\r\n value: null,\r\n unit: '°'\r\n },\r\n var_412: {\r\n name: '偏航压力',\r\n value: null,\r\n unit: 'bar'\r\n },\r\n rightYawSingle: {\r\n name: '偏航在顺时针运行模式',\r\n isBoolean: true,\r\n value: true,\r\n unit: ''\r\n },\r\n leftYawSingle: {\r\n name: '偏航在逆时针运行模式',\r\n isBoolean: true,\r\n value: false,\r\n unit: ''\r\n },\r\n var_407: {\r\n name: '偏航速度',\r\n value: null,\r\n unit: '°/s'\r\n }\r\n },\r\n boardkey6Data: {\r\n var_15003: {\r\n name: '变流器故障代码',\r\n value: null,\r\n unit: ''\r\n },\r\n var_2759: {\r\n name: '变流器有功功率',\r\n value: null,\r\n unit: 'KW'\r\n },\r\n var_15016: {\r\n name: '变流器无功功率',\r\n value: null,\r\n unit: 'KW'\r\n },\r\n var_2727: {\r\n name: '变流器直流母线电压',\r\n value: null,\r\n unit: 'V'\r\n },\r\n var_273: {\r\n name: '变流器内温度',\r\n value: null,\r\n unit: '°C'\r\n }\r\n },\r\n boardkey7Data: {\r\n var_257: {\r\n name: '电网频率',\r\n value: null,\r\n unit: 'hz'\r\n },\r\n var_246: {\r\n name: '电网有功功率',\r\n value: null,\r\n unit: 'kW'\r\n },\r\n var_261: {\r\n name: '电网A相电压',\r\n value: null,\r\n unit: 'V'\r\n },\r\n var_262: {\r\n name: '电网B相电压',\r\n value: null,\r\n unit: 'V'\r\n },\r\n var_263: {\r\n name: '电网C相电压',\r\n value: null,\r\n unit: 'V'\r\n },\r\n var_264: {\r\n name: '电网A相电流',\r\n value: null,\r\n unit: 'A'\r\n },\r\n var_265: {\r\n name: '电网B相电流',\r\n value: null,\r\n unit: 'A'\r\n },\r\n var_266: {\r\n name: '电网C相电流',\r\n value: null,\r\n unit: 'A'\r\n }\r\n },\r\n tableHeight: 200,\r\n currentMessage: 'fault',\r\n tableColumn: {\r\n fault: [\r\n {\r\n prop: 'msgStartTime',\r\n text: '日期',\r\n width: 100\r\n },\r\n {\r\n prop: 'msgCode',\r\n text: '故障码',\r\n width: 80,\r\n renderColumn: true\r\n },\r\n {\r\n prop: 'msgLevel',\r\n text: '等级',\r\n width: 50\r\n },\r\n {\r\n prop: 'msgContent',\r\n text: '内容'\r\n }\r\n ],\r\n alarm: [\r\n {\r\n prop: 'msgStartTime',\r\n text: '日期',\r\n width: 100\r\n },\r\n {\r\n prop: 'msgCode',\r\n text: '故障码',\r\n width: 80,\r\n renderColumn: true\r\n },\r\n {\r\n prop: 'msgContent',\r\n text: '内容'\r\n }\r\n ],\r\n msg: [\r\n {\r\n prop: 'msgStartTime',\r\n text: '日期',\r\n width: 100\r\n },\r\n {\r\n prop: 'msgContent',\r\n text: '内容'\r\n }\r\n ]\r\n },\r\n tableData: {\r\n fault: [],\r\n alarm: [],\r\n msg: []\r\n },\r\n isShowItemDetail: false,\r\n currentItemName: '',\r\n currentItemData: {},\r\n cssc: window.context.cssc,\r\n crewsList: [],\r\n crewsListOrigin: [],\r\n showTable: false,\r\n isFlagship: 0 // 旗舰机\r\n }\r\n },\r\n beforeCreate() {\r\n that = this\r\n },\r\n filters: {\r\n workModeFilter: value => {\r\n let target = that.workModeSrc.filter(item => item.code == value)[0]\r\n if (target) {\r\n return target.name\r\n } else {\r\n return value\r\n }\r\n },\r\n comStateFilter: value => {\r\n if (value == null) {\r\n return ''\r\n } else if (value == 1) {\r\n return '通讯异常'\r\n } else if (value == 0) {\r\n return '通讯正常'\r\n }\r\n }\r\n },\r\n created() {\r\n this.initCrewList()\r\n this.initWorkMode()\r\n },\r\n mounted() {\r\n this.accecptData = true\r\n this.calcTableHeight()\r\n this.initChart()\r\n document.addEventListener('visibilitychange', this.windowVisiable)\r\n this.$bus.$on('SCADAMsg', data => {\r\n if (this.accecptData) {\r\n this.changeData(data)\r\n }\r\n })\r\n },\r\n beforeDestroy() {\r\n // 切换页面 不再接收数据\r\n this.accecptData = false\r\n document.removeEventListener('visibilitychange', this.windowVisiable)\r\n this.chart.clear()\r\n },\r\n methods: {\r\n handleMsgCode(errorCode) {\r\n this.$refs.AlarmCodeExplain.open(errorCode)\r\n },\r\n windowVisiable(e) {\r\n if (e.target.visibilityState == 'visible') {\r\n // console.log('回到当前tab标签')\r\n this.reloadChart()\r\n } else {\r\n // console.log('离开当前tab标签')\r\n }\r\n },\r\n reloadChart() {\r\n this.chartData = []\r\n this.chart.changeData(this.chartData)\r\n },\r\n bindImg(wordMode) {\r\n if (wordMode) {\r\n if (wordMode == 8) {\r\n return require('@/assets/img/crew-white.png')\r\n } else if (wordMode == 1) {\r\n return require('@/assets/img/crew-white.png')\r\n } else if (wordMode == 2) {\r\n return require('@/assets/img/crew-red.png')\r\n } else if (wordMode == 4) {\r\n return require('@/assets/img/crew-blue2.png')\r\n } else if (wordMode == 16) {\r\n return require('@/assets/img/crew-blue.gif')\r\n } else if (wordMode == 32) {\r\n return require('@/assets/img/crew-green.gif')\r\n } else if (wordMode == 64) {\r\n return require('@/assets/img/crew-orange.png')\r\n }\r\n } else {\r\n return require('@/assets/img/crew-gray.png')\r\n }\r\n },\r\n // 接收数据\r\n changeData(data) {\r\n if (!this.crewNumber) return\r\n if (!data.fan[this.crewNumber]) return\r\n // 风速/功率chart\r\n let newData = {\r\n date: parseInt(data.time),\r\n speed: data.fan[this.crewNumber].winSpd\r\n ? data.fan[this.crewNumber].winSpd.val\r\n : null, // 风速\r\n power: data.fan[this.crewNumber].powAct\r\n ? data.fan[this.crewNumber].powAct.val\r\n : null // 功率\r\n }\r\n // 风速功率任意点位存在就更新, 都不存在不更新\r\n if (\r\n data.fan[this.crewNumber].winSpd ||\r\n data.fan[this.crewNumber].powAct\r\n ) {\r\n this.formatData(newData)\r\n }\r\n\r\n // 风机状态\r\n this.state.workModeSrc = data.fan[this.crewNumber].workModeSrc\r\n ? data.fan[this.crewNumber].workModeSrc.val\r\n : null\r\n\r\n // 通讯状态\r\n this.state.comState = data.fan[this.crewNumber].comState\r\n ? data.fan[this.crewNumber].comState.val\r\n : null\r\n\r\n // 风速\r\n this.mainData.winSpd.value = data.fan[this.crewNumber].winSpd\r\n ? data.fan[this.crewNumber].winSpd.val\r\n : null\r\n\r\n // 风向\r\n this.mainData.var_363.value = data.fan[this.crewNumber].var_363\r\n ? data.fan[this.crewNumber].var_363.val\r\n : null\r\n\r\n // 有功功率\r\n this.mainData.powAct.value = data.fan[this.crewNumber].powAct\r\n ? data.fan[this.crewNumber].powAct.val\r\n : null\r\n\r\n // 发电机转速\r\n this.mainData.genSpeed.value = data.fan[this.crewNumber].genSpeed\r\n ? data.fan[this.crewNumber].genSpeed.val\r\n : null\r\n\r\n // 日发电量\r\n this.mainData.dayEnergy.value = data.fan[this.crewNumber].dayEnergy\r\n ? data.fan[this.crewNumber].dayEnergy.val\r\n : null\r\n\r\n // 日耗电量\r\n this.mainData.var_18.value = data.fan[this.crewNumber].var_18\r\n ? data.fan[this.crewNumber].var_18.val\r\n : null\r\n\r\n // 累计电量\r\n this.mainData.totalEnergy.value = data.fan[this.crewNumber].totalEnergy\r\n ? data.fan[this.crewNumber].totalEnergy.val\r\n : null\r\n\r\n // 发电机信息\r\n for (let key in this.boardkey1Data) {\r\n if (data.fan[this.crewNumber][key]) {\r\n this.boardkey1Data[key].value = data.fan[this.crewNumber][key].val\r\n }\r\n }\r\n // 机舱信息\r\n for (let key in this.boardkey2Data) {\r\n if (data.fan[this.crewNumber][key]) {\r\n this.boardkey2Data[key].value = data.fan[this.crewNumber][key].val\r\n }\r\n }\r\n // 传动信息\r\n for (let key in this.boardkey3Data) {\r\n if (data.fan[this.crewNumber][key]) {\r\n this.boardkey3Data[key].value = data.fan[this.crewNumber][key].val\r\n }\r\n }\r\n // 风轮\r\n for (let key in this.boardkey4Data) {\r\n if (data.fan[this.crewNumber][key]) {\r\n this.boardkey4Data[key].value = data.fan[this.crewNumber][key].val\r\n }\r\n }\r\n // 偏航信息\r\n for (let key in this.boardkey5Data) {\r\n if (data.fan[this.crewNumber][key]) {\r\n this.boardkey5Data[key].value = data.fan[this.crewNumber][key].val\r\n }\r\n }\r\n // 变流器\r\n for (let key in this.boardkey6Data) {\r\n if (data.fan[this.crewNumber][key]) {\r\n this.boardkey6Data[key].value = data.fan[this.crewNumber][key].val\r\n }\r\n }\r\n // 电网信息\r\n for (let key in this.boardkey7Data) {\r\n if (data.fan[this.crewNumber][key]) {\r\n this.boardkey7Data[key].value = data.fan[this.crewNumber][key].val\r\n }\r\n }\r\n },\r\n initWorkMode() {\r\n let params = {\r\n querys: [\r\n {\r\n group: 'main',\r\n operation: 'EQUAL',\r\n parentGroup: '',\r\n property: 'type',\r\n relation: 'AND',\r\n value: 'workMode'\r\n }\r\n ]\r\n }\r\n this.$http.post('${cssc}/biz/scada/scadaFault/v1/query', params).then(\r\n resp => {\r\n if (resp.data) {\r\n this.workModeSrc = resp.data.rows\r\n }\r\n },\r\n error => {\r\n reject(error)\r\n }\r\n )\r\n },\r\n // 查询消息\r\n getFaultData(type) {\r\n let data = {\r\n pageBean: {\r\n page: 1,\r\n pageSize: 100,\r\n showTotal: true\r\n },\r\n querys: [\r\n {\r\n group: 'filter',\r\n operation: 'EQUAL',\r\n property: 'msgSys',\r\n relation: 'AND',\r\n value: 'scada'\r\n },\r\n {\r\n group: 'filter',\r\n operation: 'EQUAL',\r\n property: 'msgType',\r\n relation: 'AND',\r\n value: type\r\n },\r\n {\r\n group: 'filter',\r\n operation: 'EQUAL',\r\n property: 'msgFan',\r\n relation: 'AND',\r\n value: this.crewNumber\r\n }\r\n ],\r\n sorter: [\r\n {\r\n direction: 'DESC',\r\n property: 'msgStartTime'\r\n },\r\n {\r\n direction: 'ASC',\r\n property: 'msgFan'\r\n }\r\n ]\r\n }\r\n this.$http\r\n .post(this.cssc + '/biz/base/faultMessage/v1/queryPage', data)\r\n .then(res => {\r\n if (res.status == 200) {\r\n this.tableData[type] = this.formatDate(res.data.rows)\r\n }\r\n })\r\n },\r\n formatDate(data) {\r\n let result = []\r\n if (data && data.length) {\r\n data.forEach(item => {\r\n let date = item.msgStartTime\r\n .slice(5)\r\n .slice(0, 11)\r\n .replace('-', '/')\r\n item.msgStartTime = date\r\n })\r\n result = data\r\n }\r\n return result\r\n },\r\n showItemAll() {\r\n this.isShowItemDetail = false\r\n },\r\n showMore(item) {\r\n this.isShowItemDetail = true\r\n this.currentItemName = item.text\r\n this.currentItemData = item.data\r\n },\r\n calcTableHeight() {\r\n this.$nextTick(() => {\r\n this.tableHeight = this.$refs.tableCon.clientHeight\r\n this.showTable = true\r\n })\r\n },\r\n changeMessageType(currentMessage) {\r\n this.currentMessage = currentMessage\r\n this.getFaultData(currentMessage)\r\n },\r\n back() {\r\n let fromType = this.$route.params.type\r\n this.$bus.$emit('changeTab', {from: 'CrewOverview', to: fromType})\r\n },\r\n initChart() {\r\n this.chart = new Chart({\r\n container: 'container',\r\n autoFit: true,\r\n height: 200\r\n })\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 speed: {\r\n alias: '风速(m/s)',\r\n sync: true, // 将 speed 字段数值同 power 字段数值进行同步\r\n nice: true,\r\n min: 0\r\n },\r\n power: {\r\n alias: '有功功率(kW)',\r\n sync: true, // 将 speed 字段数值同 power 字段数值进行同步\r\n nice: true,\r\n min: 0\r\n }\r\n })\r\n\r\n this.chart.axis('power', {\r\n grid: null,\r\n title: {\r\n position: 'center',\r\n autoRotate: true,\r\n style: {\r\n fill: '#ccf2ff'\r\n }\r\n },\r\n label: {\r\n style: {\r\n fill: '#ccf2ff'\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('speed', {\r\n title: {\r\n position: 'center',\r\n autoRotate: true,\r\n style: {\r\n fill: '#ccf2ff'\r\n }\r\n },\r\n label: {\r\n style: {\r\n fill: '#ccf2ff'\r\n }\r\n },\r\n line: {\r\n style: {\r\n stroke: '#414959'\r\n }\r\n },\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 alignTick: true\r\n }\r\n })\r\n this.chart.axis('date', {\r\n label: {\r\n style: {\r\n fill: '#ccf2ff'\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.tooltip({\r\n showCrosshairs: true,\r\n shared: 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.legend({\r\n position: 'top',\r\n custom: true,\r\n itemName: {\r\n style: {\r\n fill: '#979ba4'\r\n }\r\n },\r\n items: [\r\n {\r\n name: '风速',\r\n id: 'speed',\r\n value: 'speed',\r\n\r\n marker: {\r\n symbol: 'circle',\r\n style: {fill: '#00f4e1'}\r\n }\r\n },\r\n {\r\n name: '有功功率',\r\n id: 'power',\r\n value: 'power',\r\n marker: {\r\n symbol: 'circle',\r\n style: {fill: '#f29502'}\r\n }\r\n }\r\n ]\r\n })\r\n\r\n this.chart\r\n .line()\r\n .position('date*speed')\r\n .color('#00f4e1')\r\n this.chart\r\n .line()\r\n .position('date*power')\r\n .color('#f29502')\r\n .shape('dash')\r\n this.chart.render()\r\n },\r\n formatData(newData) {\r\n this.chartData.push(newData)\r\n if (this.chartData.length > 300) {\r\n this.chartData.splice(0, 1)\r\n }\r\n this.chart.changeData(this.chartData)\r\n },\r\n getData() {\r\n this.crewNumber = this.$route.params.id\r\n if (this.crewNumber) {\r\n // 从地图或者标准进入\r\n let index = this.crewsListOrigin.findIndex(item => {\r\n return item.fanCode == this.crewNumber\r\n })\r\n this.isFlagship = this.crewsListOrigin[index].isFlagship\r\n this.state.line = this.crewsListOrigin[index].lineCode\r\n this.state.type = this.crewsListOrigin[index].fanType\r\n this.crewName = this.crewsListOrigin[index].fanName\r\n this.getFaultData(this.currentMessage)\r\n } else {\r\n // 从机组模式进入\r\n let first = this.crewsListOrigin[0]\r\n this.isFlagship = first.isFlagship\r\n this.crewNumber = first.fanCode\r\n this.crewName = first.fanName\r\n this.state.line = first.lineCode\r\n this.state.type = first.fanType\r\n this.getFaultData(this.currentMessage)\r\n }\r\n },\r\n initCrewList(cb) {\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.crewsListOrigin = resp.data\r\n this.formatCrew(resp.data)\r\n }\r\n },\r\n error => {\r\n reject(error)\r\n }\r\n )\r\n },\r\n formatCrew(data) {\r\n let arr = []\r\n for (let i = 0; i < data.length; i += this.pagelength) {\r\n arr.push(data.slice(i, i + this.pagelength))\r\n }\r\n this.crewsList = arr\r\n this.currentPage = 1\r\n this.pages = arr.length\r\n this.getData()\r\n this.getFaultData('fault')\r\n },\r\n pageChange(type) {\r\n if (type == 'upper') {\r\n if (this.currentPage == 1) {\r\n return\r\n } else {\r\n this.currentPage = this.currentPage - 1\r\n this.transitionName = 'list-down'\r\n }\r\n } else {\r\n if (this.currentPage == this.pages) {\r\n return\r\n } else {\r\n this.currentPage = this.currentPage + 1\r\n this.transitionName = 'list-up'\r\n }\r\n }\r\n },\r\n changeCurrentCrew(crew) {\r\n this.crewNumber = crew.fanCode\r\n this.crewName = crew.fanName\r\n this.state.line = crew.lineCode\r\n this.state.type = crew.fanType\r\n this.getFaultData(this.currentMessage)\r\n },\r\n toggleCrewList() {\r\n this.showCrewList = !this.showCrewList\r\n },\r\n changeCrew(crew) {\r\n this.currentCrew = crew\r\n this.crewNumber = crew.fanCode\r\n this.crewName = crew.fanName\r\n this.state.line = crew.lineCode\r\n this.state.type = crew.fanType\r\n this.isFlagship = crew.isFlagship\r\n this.resetCrew()\r\n },\r\n resetCrew() {\r\n this.getFaultData(this.currentMessage)\r\n this.chartData = []\r\n this.chart.changeData(this.chartData)\r\n this.showCrewList = false\r\n this.bindImg(this.state.workModeSrc)\r\n\r\n // 风机状态\r\n this.state.workModeSrc = null\r\n\r\n // 通讯状态\r\n this.state.comState = null\r\n\r\n // 风速\r\n this.mainData.winSpd.value = null\r\n\r\n // 风向\r\n this.mainData.var_363.value = null\r\n\r\n // 有功功率\r\n this.mainData.powAct.value = null\r\n\r\n // 发电机转速\r\n this.mainData.genSpeed.value = null\r\n\r\n // 日发电量\r\n this.mainData.dayEnergy.value = null\r\n\r\n // 日耗电量\r\n this.mainData.var_18.value = null\r\n\r\n // 累计电量\r\n this.mainData.totalEnergy.value = null\r\n\r\n // 发电机信息\r\n for (let key in this.boardkey1Data) {\r\n this.boardkey1Data[key].value = null\r\n }\r\n // 机舱信息\r\n for (let key in this.boardkey2Data) {\r\n this.boardkey2Data[key].value = null\r\n }\r\n // 传动信息\r\n for (let key in this.boardkey3Data) {\r\n this.boardkey3Data[key].value = null\r\n }\r\n // 风轮\r\n for (let key in this.boardkey4Data) {\r\n this.boardkey4Data[key].value = null\r\n }\r\n // 偏航信息\r\n for (let key in this.boardkey5Data) {\r\n this.boardkey5Data[key].value = null\r\n }\r\n // 变流器\r\n for (let key in this.boardkey6Data) {\r\n this.boardkey6Data[key].value = null\r\n }\r\n // 电网信息\r\n for (let key in this.boardkey7Data) {\r\n this.boardkey7Data[key].value = null\r\n }\r\n },\r\n toggleBoard(key) {\r\n this[key].showList = !this[key].showList\r\n }\r\n }\r\n}\r\n",null]}