|
@@ -32,12 +32,21 @@
|
|
<div class="scoll"> -->
|
|
<div class="scoll"> -->
|
|
<div class="matrix" v-if="showList.length > 0">
|
|
<div class="matrix" v-if="showList.length > 0">
|
|
<box-select node=".box" @selectList="selectList">
|
|
<box-select node=".box" @selectList="selectList">
|
|
|
|
+
|
|
|
|
+ <!-- v-if="showWh(showList[0])" -->
|
|
<MatrixBlock
|
|
<MatrixBlock
|
|
- @choose-click="handleClick"
|
|
|
|
- @on-click="handleDetails"
|
|
|
|
- :dataList="showList"
|
|
|
|
|
|
+ v-if="showWh(showList[0])"
|
|
|
|
+ @choose-click="handleClick"
|
|
|
|
+ @on-click="handleDetails"
|
|
|
|
+ :dataList="showList"
|
|
>
|
|
>
|
|
</MatrixBlock>
|
|
</MatrixBlock>
|
|
|
|
+ <MatrixBlockPv
|
|
|
|
+ v-else
|
|
|
|
+ @on-click="handleDetialPv"
|
|
|
|
+ :dataList="showList"
|
|
|
|
+ >
|
|
|
|
+ </MatrixBlockPv>
|
|
</box-select>
|
|
</box-select>
|
|
</div>
|
|
</div>
|
|
<!-- </div>
|
|
<!-- </div>
|
|
@@ -51,6 +60,8 @@
|
|
@close="handleClose"
|
|
@close="handleClose"
|
|
:windturbine="currentWindturbine"
|
|
:windturbine="currentWindturbine"
|
|
></WindturbineDetailPages>
|
|
></WindturbineDetailPages>
|
|
|
|
+ <PvDetailPages v-model="dialogPvDia" @close="handleClose" :windturbine="currentWindturbinePv">
|
|
|
|
+ </PvDetailPages>
|
|
<ParametersContrast
|
|
<ParametersContrast
|
|
:chooseList="chooseList"
|
|
:chooseList="chooseList"
|
|
v-model="parametersDisplay"
|
|
v-model="parametersDisplay"
|
|
@@ -60,7 +71,9 @@
|
|
|
|
|
|
<script>
|
|
<script>
|
|
import WindturbineDetailPages from "../WindturbineDetailPages.vue";
|
|
import WindturbineDetailPages from "../WindturbineDetailPages.vue";
|
|
|
|
+import PvDetailPages from "components/PvDetailPages.vue";
|
|
import MatrixBlock from "../matrixBlock.vue";
|
|
import MatrixBlock from "../matrixBlock.vue";
|
|
|
|
+import MatrixBlockPv from "../matrixBlockPv.vue";
|
|
import EaxyMatrxBlock from "../eaxyMatrixBlock.vue";
|
|
import EaxyMatrxBlock from "../eaxyMatrixBlock.vue";
|
|
import BackgroundData from "utils/BackgroundData";
|
|
import BackgroundData from "utils/BackgroundData";
|
|
import api from "api/index";
|
|
import api from "api/index";
|
|
@@ -71,7 +84,9 @@ export default {
|
|
name: "ProblemArea",
|
|
name: "ProblemArea",
|
|
components: {
|
|
components: {
|
|
WindturbineDetailPages,
|
|
WindturbineDetailPages,
|
|
|
|
+ PvDetailPages,
|
|
MatrixBlock,
|
|
MatrixBlock,
|
|
|
|
+ MatrixBlockPv,
|
|
boxSelect,
|
|
boxSelect,
|
|
ParametersContrast,
|
|
ParametersContrast,
|
|
EaxyMatrxBlock,
|
|
EaxyMatrxBlock,
|
|
@@ -93,7 +108,9 @@ export default {
|
|
chooseList: [],
|
|
chooseList: [],
|
|
lockValues: [],
|
|
lockValues: [],
|
|
currentWindturbine: {},
|
|
currentWindturbine: {},
|
|
|
|
+ currentWindturbinePv: {},
|
|
dialogVisible: false,
|
|
dialogVisible: false,
|
|
|
|
+ dialogPvDia: false,
|
|
showSvg: false,
|
|
showSvg: false,
|
|
parametersDisplay: false,
|
|
parametersDisplay: false,
|
|
windturbinelist: {},
|
|
windturbinelist: {},
|
|
@@ -144,128 +161,145 @@ export default {
|
|
computed: {},
|
|
computed: {},
|
|
created: function () {
|
|
created: function () {
|
|
this.initData();
|
|
this.initData();
|
|
|
|
+ this.handleWindturbineChange();
|
|
this.controls();
|
|
this.controls();
|
|
this.getLocks();
|
|
this.getLocks();
|
|
- this.handleWindturbineChange();
|
|
|
|
- this.intervals = setInterval(this.handleWindturbineChange, 3000);
|
|
|
|
|
|
+ this.intervals = setInterval(() =>{
|
|
|
|
+ this.handleWindturbineChange
|
|
|
|
+ }, 3000);
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ showWh(item) {
|
|
|
|
+ let show = false
|
|
|
|
+ if (item.stationId) {
|
|
|
|
+ show = true
|
|
|
|
+ }
|
|
|
|
+ return show
|
|
|
|
+ },
|
|
selectList(val) {
|
|
selectList(val) {
|
|
val.forEach((item) => {
|
|
val.forEach((item) => {
|
|
this.handleClick(this.windturbinelist[item.id]);
|
|
this.handleClick(this.windturbinelist[item.id]);
|
|
});
|
|
});
|
|
},
|
|
},
|
|
controls() {
|
|
controls() {
|
|
- this.options = [
|
|
|
|
- {
|
|
|
|
- value: "0",
|
|
|
|
- label: "问题设备",
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- value: "1",
|
|
|
|
- label: "故障",
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- value: "2",
|
|
|
|
- label: "维护",
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- value: "3",
|
|
|
|
- label: "离线",
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- value: "4",
|
|
|
|
- label: "挂牌",
|
|
|
|
- },
|
|
|
|
- ];
|
|
|
|
- let stationList = this.$store.state.stationList;
|
|
|
|
- stationList.forEach((item, index) => {
|
|
|
|
- let obj = {};
|
|
|
|
- obj.value = String(index + 6);
|
|
|
|
- obj.label = item.name;
|
|
|
|
- obj.stationId = item.code || item.id;
|
|
|
|
- this.options.push(obj);
|
|
|
|
- });
|
|
|
|
- let json = this.$store.state.windturbinelist;
|
|
|
|
- this.dataList = [];
|
|
|
|
- const showList = [];
|
|
|
|
- let arr = Object.keys(json).sort();
|
|
|
|
- for (let id of arr) {
|
|
|
|
- let val = json[id];
|
|
|
|
- this.chooseList.forEach((item) => {
|
|
|
|
- if (item.windturbineId === val.windturbineId) {
|
|
|
|
- val.active = true;
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- this.dataList.push(val);
|
|
|
|
- switch (Number(this.selectValue)) {
|
|
|
|
- case 0:
|
|
|
|
- if (
|
|
|
|
- val.status === 5 ||
|
|
|
|
- val.status === 6 ||
|
|
|
|
- val.status === 7 ||
|
|
|
|
- val.lockValue > 0
|
|
|
|
- ) {
|
|
|
|
- showList.push(val);
|
|
|
|
- }
|
|
|
|
- break;
|
|
|
|
- case 1:
|
|
|
|
- val.status === 5 ? showList.push(val) : "";
|
|
|
|
- break;
|
|
|
|
- case 2:
|
|
|
|
- val.status === 6 ? showList.push(val) : "";
|
|
|
|
- break;
|
|
|
|
- case 3:
|
|
|
|
- val.status === 7 ? showList.push(val) : "";
|
|
|
|
- break;
|
|
|
|
- case 4:
|
|
|
|
- val.lockValue > 0 ? showList.push(val) : "";
|
|
|
|
- break;
|
|
|
|
- default:
|
|
|
|
- if (
|
|
|
|
- val.stationId ===
|
|
|
|
- this.options.filter((ops) => ops?.value === this.selectValue)[0]
|
|
|
|
- .stationId
|
|
|
|
- ) {
|
|
|
|
- showList.push(val);
|
|
|
|
|
|
+ this.options = [
|
|
|
|
+ {
|
|
|
|
+ value: "0",
|
|
|
|
+ label: "问题设备",
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: "1",
|
|
|
|
+ label: "故障",
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: "2",
|
|
|
|
+ label: "维护",
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: "3",
|
|
|
|
+ label: "离线",
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ value: "4",
|
|
|
|
+ label: "挂牌",
|
|
|
|
+ },
|
|
|
|
+ ];
|
|
|
|
+ let stationList = this.$store.state.stationList;
|
|
|
|
+ stationList.forEach((item, index) => {
|
|
|
|
+ if (item.id.indexOf("FDC") != -1 || item.id.indexOf("GDC") != -1) {
|
|
|
|
+ let obj = {};
|
|
|
|
+ obj.value = String(index + 6);
|
|
|
|
+ obj.label = item.name;
|
|
|
|
+ obj.stationId = item.code || item.id;
|
|
|
|
+ this.options.push(obj);
|
|
}
|
|
}
|
|
- break;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- let checkoutList = BackgroundData.getInstance().checkouts;
|
|
|
|
- checkoutList.forEach((item) => {
|
|
|
|
- let showIndex = null;
|
|
|
|
- showList.forEach((param, index) => {
|
|
|
|
- if (item.windturbineId === param.windturbineId) {
|
|
|
|
- showIndex = index;
|
|
|
|
- }
|
|
|
|
});
|
|
});
|
|
- showList.splice(showIndex, 1);
|
|
|
|
- });
|
|
|
|
- showList.sort((a,b)=>{
|
|
|
|
- let aSubString = '0', bSubString = '0'
|
|
|
|
- let aStation = '1', bStation = '2'
|
|
|
|
- if(a.windturbineId && b.windturbineId){
|
|
|
|
- aSubString = a.windturbineId.substring(a.windturbineId.lastIndexOf('_')+1)
|
|
|
|
- bSubString = b.windturbineId.substring(b.windturbineId.lastIndexOf('_')+1)
|
|
|
|
|
|
+ // let json = this.$store.state.windturbinelist;
|
|
|
|
+ let wswind = JSON.parse(window.sessionStorage.getItem('windSbq'))
|
|
|
|
+ let pv = JSON.parse(window.sessionStorage.getItem('pvSbq'))
|
|
|
|
+ let json = {}
|
|
|
|
+ if (wswind && pv) {
|
|
|
|
+ json = {...wswind, ...pv}
|
|
|
|
+ this.dataList = [];
|
|
|
|
+ const showList = [];
|
|
|
|
+ let arr = Object.keys(json).sort();
|
|
|
|
+ for (let id of arr) {
|
|
|
|
+ let val = json[id];
|
|
|
|
+ this.chooseList.forEach((item) => {
|
|
|
|
+ if (item.windturbineId === val.windturbineId) {
|
|
|
|
+ val.active = true;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ this.dataList.push(val);
|
|
|
|
+ switch (Number(this.selectValue)) {
|
|
|
|
+ case 0:
|
|
|
|
+ if (
|
|
|
|
+ val.status === 5 ||
|
|
|
|
+ val.status === 6 ||
|
|
|
|
+ val.status === 7 ||
|
|
|
|
+ val.lockValue > 0
|
|
|
|
+ ) {
|
|
|
|
+ showList.push(val);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 1:
|
|
|
|
+ val.status === 5 ? showList.push(val) : "";
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ val.status === 6 ? showList.push(val) : "";
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ val.status === 7 ? showList.push(val) : "";
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ val.lockValue > 0 ? showList.push(val) : "";
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ if (
|
|
|
|
+ val.stationId ===
|
|
|
|
+ this.options.filter((ops) => ops?.value === this.selectValue)[0]
|
|
|
|
+ .stationId
|
|
|
|
+ ) {
|
|
|
|
+ showList.push(val);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ let checkoutList = BackgroundData.getInstance().checkouts;
|
|
|
|
+ checkoutList.forEach((item) => {
|
|
|
|
+ let showIndex = null;
|
|
|
|
+ showList.forEach((param, index) => {
|
|
|
|
+ if (item.windturbineId === param.windturbineId) {
|
|
|
|
+ showIndex = index;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ showList.splice(showIndex, 1);
|
|
|
|
+ });
|
|
|
|
+ showList.sort((a,b)=>{
|
|
|
|
+ let aSubString = '0', bSubString = '0'
|
|
|
|
+ let aStation = '1', bStation = '2'
|
|
|
|
+ if(a.windturbineId && b.windturbineId){
|
|
|
|
+ aSubString = a.windturbineId.substring(a.windturbineId.lastIndexOf('_')+1)
|
|
|
|
+ bSubString = b.windturbineId.substring(b.windturbineId.lastIndexOf('_')+1)
|
|
|
|
|
|
- aStation = a.windturbineId.substring(0, a.windturbineId.lastIndexOf('_'))
|
|
|
|
- bStation = b.windturbineId.substring(0, b.windturbineId.lastIndexOf('_'))
|
|
|
|
|
|
+ aStation = a.windturbineId.substring(0, a.windturbineId.lastIndexOf('_'))
|
|
|
|
+ bStation = b.windturbineId.substring(0, b.windturbineId.lastIndexOf('_'))
|
|
|
|
|
|
- }else if(a.id && b.id){
|
|
|
|
- aSubString = a.id.substring(a.id.lastIndexOf('_')+1)
|
|
|
|
- bSubString = b.id.substring(b.id.lastIndexOf('_')+1)
|
|
|
|
|
|
+ }else if(a.id && b.id){
|
|
|
|
+ aSubString = a.id.substring(a.id.lastIndexOf('_')+1)
|
|
|
|
+ bSubString = b.id.substring(b.id.lastIndexOf('_')+1)
|
|
|
|
|
|
- aStation = a.id.substring(0, a.id.lastIndexOf('_'))
|
|
|
|
- bStation = b.id.substring(0, b.id.lastIndexOf('_'))
|
|
|
|
- }
|
|
|
|
- if(aStation === bStation){
|
|
|
|
- return parseInt(aSubString) - parseInt(bSubString)
|
|
|
|
- }else{
|
|
|
|
- return 0
|
|
|
|
|
|
+ aStation = a.id.substring(0, a.id.lastIndexOf('_'))
|
|
|
|
+ bStation = b.id.substring(0, b.id.lastIndexOf('_'))
|
|
|
|
+ }
|
|
|
|
+ if(aStation === bStation){
|
|
|
|
+ return parseInt(aSubString) - parseInt(bSubString)
|
|
|
|
+ }else{
|
|
|
|
+ return 0
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ this.showList = showList
|
|
}
|
|
}
|
|
- })
|
|
|
|
- this.showList = showList
|
|
|
|
},
|
|
},
|
|
getLocks() {
|
|
getLocks() {
|
|
api.getCustomerLock().then((res) => {
|
|
api.getCustomerLock().then((res) => {
|
|
@@ -275,8 +309,97 @@ export default {
|
|
});
|
|
});
|
|
},
|
|
},
|
|
initData: function () {
|
|
initData: function () {
|
|
|
|
+ let mb = MessageBridge.getInstance();
|
|
|
|
+ let vss = [
|
|
|
|
+ { key: "/topic/voice-control", action: this.windturbineMessage },
|
|
|
|
+ ];
|
|
|
|
+ mb.register(vss);
|
|
|
|
+ },
|
|
|
|
+ windturbineMessage(msg) {
|
|
|
|
+ if (this.$store.state.current === 2) {
|
|
|
|
+ let arr = [];
|
|
|
|
+ if (msg === "CLOSE") {
|
|
|
|
+ arr.push(msg);
|
|
|
|
+ } else {
|
|
|
|
+ arr = msg.split("-");
|
|
|
|
+ }
|
|
|
|
+ this.dialogVisible = false;
|
|
|
|
+ this.showSvg = false;
|
|
|
|
+ this.svgWeb = "";
|
|
|
|
+ if (arr[0] === "OPEN_FJ") {
|
|
|
|
+ this.currentWindturbine = this.windturbinelist[arr[1]];
|
|
|
|
+ this.dialogVisible = true;
|
|
|
|
+ } else if (arr[0] === "CLOSE") {
|
|
|
|
+ this.dialogVisible = false;
|
|
|
|
+ } else if (
|
|
|
|
+ arr[0] === "CONTROL_START" ||
|
|
|
|
+ arr[0] === "CONTROL_STOP" ||
|
|
|
|
+ arr[0] === "CONTROL_MAINTAIN"
|
|
|
|
+ ) {
|
|
|
|
+ let windControlList = [];
|
|
|
|
+ let mss = {};
|
|
|
|
+ arr.forEach((item) => {
|
|
|
|
+ if (
|
|
|
|
+ item ===
|
|
|
|
+ (this.windturbinelist[item]
|
|
|
|
+ ? this.windturbinelist[item].windturbineId
|
|
|
|
+ : "")
|
|
|
|
+ ) {
|
|
|
|
+ switch (arr[0]) {
|
|
|
|
+ case "CONTROL_START":
|
|
|
|
+ this.windturbinelist[item].controlType = "1";
|
|
|
|
+ break;
|
|
|
|
+ case "CONTROL_STOP":
|
|
|
|
+ this.windturbinelist[item].controlType = "2";
|
|
|
|
+ break;
|
|
|
|
+ case "CONTROL_MAINTAIN":
|
|
|
|
+ this.windturbinelist[item].controlType = "6";
|
|
|
|
+ break;
|
|
|
|
+ case "CONTROL_UNMAINTAIN":
|
|
|
|
+ this.windturbinelist[item].controlType = "8";
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ windControlList.push(this.windturbinelist[item]);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ mss.type = "send";
|
|
|
|
+ this.sendCommand(mss, windControlList);
|
|
|
|
+ } else if (
|
|
|
|
+ arr[0] === "CONTROL_LOCK_OVERHAUL" ||
|
|
|
|
+ arr[0] === "CONTROL_LOCK_MAINTAIN" ||
|
|
|
|
+ arr[0] === "CONTROL_LOCK_LNVOLVED_OVERHAUL" ||
|
|
|
|
+ arr[0] === "CONTROL_LOCK_LNVOLVED_MAINTAIN" ||
|
|
|
|
+ arr[0] === "CONTROL_LOCK_LNVOLVED_PG" ||
|
|
|
|
+ arr[0] === "CONTROL_LOCK_LNVOLVED_WEATHER" ||
|
|
|
|
+ arr[0] === "CONTROL_UNLOCK"
|
|
|
|
+ ) {
|
|
|
|
+ let windturbine = this.windturbinelist[arr[1]];
|
|
|
|
+ switch (arr[0]) {
|
|
|
|
+ case "CONTROL_LOCK_OVERHAUL":
|
|
|
|
+ this.sendLock({ value: "CheckLock" }, windturbine);
|
|
|
|
+ break;
|
|
|
|
+ case "CONTROL_LOCK_MAINTAIN":
|
|
|
|
+ this.sendLock({ value: "FaultLock" }, windturbine);
|
|
|
|
+ break;
|
|
|
|
+ case "CONTROL_LOCK_LNVOLVED_OVERHAUL":
|
|
|
|
+ this.sendLock({ value: "StationCheckLock" }, windturbine);
|
|
|
|
+ break;
|
|
|
|
+ case "CONTROL_LOCK_LNVOLVED_MAINTAIN":
|
|
|
|
+ this.sendLock({ value: "StationFaulLock" }, windturbine);
|
|
|
|
+ break;
|
|
|
|
+ case "CONTROL_LOCK_LNVOLVED_PG":
|
|
|
|
+ this.sendLock({ value: "StationPowerLineLock" }, windturbine);
|
|
|
|
+ break;
|
|
|
|
+ case "CONTROL_LOCK_LNVOLVED_WEATHER":
|
|
|
|
+ this.sendLock({ value: "StationWeatherLock" }, windturbine);
|
|
|
|
+ break;
|
|
|
|
+ case "CONTROL_UNLOCK":
|
|
|
|
+ this.sendLock({ value: "UnLock" }, windturbine);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
},
|
|
},
|
|
-
|
|
|
|
/* 右键菜单 */
|
|
/* 右键菜单 */
|
|
contextmenu() {
|
|
contextmenu() {
|
|
const remote = require("electron").remote;
|
|
const remote = require("electron").remote;
|
|
@@ -290,12 +413,6 @@ export default {
|
|
this.selectValue === "4"
|
|
this.selectValue === "4"
|
|
) {
|
|
) {
|
|
menuTemplate = [
|
|
menuTemplate = [
|
|
- // {
|
|
|
|
- // label: "标注",
|
|
|
|
- // click() {
|
|
|
|
- // that.sendLock({ type: "marking" });
|
|
|
|
- // },
|
|
|
|
- // },
|
|
|
|
{
|
|
{
|
|
label: "挂牌",
|
|
label: "挂牌",
|
|
submenu: [
|
|
submenu: [
|
|
@@ -352,36 +469,36 @@ export default {
|
|
];
|
|
];
|
|
} else {
|
|
} else {
|
|
menuTemplate = [
|
|
menuTemplate = [
|
|
- // {
|
|
|
|
- // label: "启动",
|
|
|
|
- // click() {
|
|
|
|
- // that.sendCommand({ controlType: "1", deviceType: "Manual" });
|
|
|
|
- // },
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // label: "停机",
|
|
|
|
- // click() {
|
|
|
|
- // that.sendCommand({ controlType: "2", deviceType: "Manual" });
|
|
|
|
- // },
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // label: "复位",
|
|
|
|
- // click() {
|
|
|
|
- // that.sendCommand({ controlType: "5", deviceType: "Manual" });
|
|
|
|
- // },
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // label: "维护",
|
|
|
|
- // click() {
|
|
|
|
- // that.sendCommand({ controlType: "6", deviceType: "Manual" });
|
|
|
|
- // },
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // label: "取消维护",
|
|
|
|
- // click() {
|
|
|
|
- // that.sendCommand({ controlType: "8", deviceType: "Manual" });
|
|
|
|
- // },
|
|
|
|
- // },
|
|
|
|
|
|
+ {
|
|
|
|
+ label: "启动",
|
|
|
|
+ click() {
|
|
|
|
+ that.sendCommand({ controlType: "1", deviceType: "Manual" });
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: "停机",
|
|
|
|
+ click() {
|
|
|
|
+ that.sendCommand({ controlType: "2", deviceType: "Manual" });
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: "复位",
|
|
|
|
+ click() {
|
|
|
|
+ that.sendCommand({ controlType: "5", deviceType: "Manual" });
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: "维护",
|
|
|
|
+ click() {
|
|
|
|
+ that.sendCommand({ controlType: "6", deviceType: "Manual" });
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: "取消维护",
|
|
|
|
+ click() {
|
|
|
|
+ that.sendCommand({ controlType: "8", deviceType: "Manual" });
|
|
|
|
+ },
|
|
|
|
+ },
|
|
{
|
|
{
|
|
label: "挂牌",
|
|
label: "挂牌",
|
|
submenu: [
|
|
submenu: [
|
|
@@ -443,55 +560,55 @@ export default {
|
|
menu.popup(remote.getCurrentWindow());
|
|
menu.popup(remote.getCurrentWindow());
|
|
},
|
|
},
|
|
|
|
|
|
- // sendCommand(msg, windturbine) {
|
|
|
|
- // let bd = BackgroundData.getInstance();
|
|
|
|
- // if (!bd.LoginUser) {
|
|
|
|
- // this.$notify({
|
|
|
|
- // title: "请登录",
|
|
|
|
- // message: "控制风机需要先登录!",
|
|
|
|
- // type: "warning",
|
|
|
|
- // position: "bottom-right",
|
|
|
|
- // offset: 60,
|
|
|
|
- // duration: 3000,
|
|
|
|
- // });
|
|
|
|
- // return;
|
|
|
|
- // }
|
|
|
|
- // let sendList = [];
|
|
|
|
- // if (windturbine) {
|
|
|
|
- // sendList = windturbine;
|
|
|
|
- // } else {
|
|
|
|
- // this.chooseList.forEach((item) => {
|
|
|
|
- // item.controlType = Number(msg.controlType);
|
|
|
|
- // });
|
|
|
|
- // sendList = this.chooseList;
|
|
|
|
- // }
|
|
|
|
|
|
+ sendCommand(msg, windturbine) {
|
|
|
|
+ let bd = BackgroundData.getInstance();
|
|
|
|
+ if (!bd.LoginUser) {
|
|
|
|
+ this.$notify({
|
|
|
|
+ title: "请登录",
|
|
|
|
+ message: "控制风机需要先登录!",
|
|
|
|
+ type: "warning",
|
|
|
|
+ position: "bottom-right",
|
|
|
|
+ offset: 60,
|
|
|
|
+ duration: 3000,
|
|
|
|
+ });
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ let sendList = [];
|
|
|
|
+ if (windturbine) {
|
|
|
|
+ sendList = windturbine;
|
|
|
|
+ } else {
|
|
|
|
+ this.chooseList.forEach((item) => {
|
|
|
|
+ item.controlType = Number(msg.controlType);
|
|
|
|
+ });
|
|
|
|
+ sendList = this.chooseList;
|
|
|
|
+ }
|
|
|
|
|
|
- // if (sendList.length > 0) {
|
|
|
|
- // bd.checkout(sendList);
|
|
|
|
- // this.chooseList = [];
|
|
|
|
- // let pairs = {};
|
|
|
|
- // sendList.forEach((item) => {
|
|
|
|
- // let ct = {
|
|
|
|
- // windturbineId: item.windturbineId,
|
|
|
|
- // stationId: item.stationId,
|
|
|
|
- // projectId: item.projectId,
|
|
|
|
- // modelId: item.modelId,
|
|
|
|
- // controlType: item.controlType,
|
|
|
|
- // lockType: item.lockType,
|
|
|
|
- // userName: `system_${bd.LoginUser.name}`,
|
|
|
|
- // userId: 0,
|
|
|
|
- // auto: false,
|
|
|
|
- // deviceType: msg.deviceType,
|
|
|
|
- // };
|
|
|
|
- // pairs[ct.windturbineId] = ct;
|
|
|
|
- // });
|
|
|
|
- // api.windturbControl(pairs).then((res) => {
|
|
|
|
- // if (res) {
|
|
|
|
- // this.controlSuccess(res);
|
|
|
|
- // }
|
|
|
|
- // });
|
|
|
|
- // }
|
|
|
|
- // },
|
|
|
|
|
|
+ if (sendList.length > 0) {
|
|
|
|
+ bd.checkout(sendList);
|
|
|
|
+ this.chooseList = [];
|
|
|
|
+ let pairs = {};
|
|
|
|
+ sendList.forEach((item) => {
|
|
|
|
+ let ct = {
|
|
|
|
+ windturbineId: item.windturbineId,
|
|
|
|
+ stationId: item.stationId,
|
|
|
|
+ projectId: item.projectId,
|
|
|
|
+ modelId: item.modelId,
|
|
|
|
+ controlType: item.controlType,
|
|
|
|
+ lockType: item.lockType,
|
|
|
|
+ userName: `system_${bd.LoginUser.name}`,
|
|
|
|
+ userId: 0,
|
|
|
|
+ auto: false,
|
|
|
|
+ deviceType: msg.deviceType,
|
|
|
|
+ };
|
|
|
|
+ pairs[ct.windturbineId] = ct;
|
|
|
|
+ });
|
|
|
|
+ api.windturbControl(pairs).then((res) => {
|
|
|
|
+ if (res) {
|
|
|
|
+ this.controlSuccess(res);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ },
|
|
sendLock(msg, windturbine) {
|
|
sendLock(msg, windturbine) {
|
|
let bd = BackgroundData.getInstance();
|
|
let bd = BackgroundData.getInstance();
|
|
if (!bd.LoginUser) {
|
|
if (!bd.LoginUser) {
|
|
@@ -646,12 +763,22 @@ export default {
|
|
val.lockValue > 0 ? showList.push(val) : "";
|
|
val.lockValue > 0 ? showList.push(val) : "";
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
- if (
|
|
|
|
- val.stationId ===
|
|
|
|
- this.options.filter((ops) => ops?.value === this.selectValue)[0]
|
|
|
|
- .stationId
|
|
|
|
- ) {
|
|
|
|
- showList.push(val);
|
|
|
|
|
|
+ if (Number(this.selectValue) < 12) {
|
|
|
|
+ if (
|
|
|
|
+ val.stationId ===
|
|
|
|
+ this.options.filter((ops) => ops?.value === this.selectValue)[0]
|
|
|
|
+ .stationId
|
|
|
|
+ ) {
|
|
|
|
+ showList.push(val);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ if (
|
|
|
|
+ val.station ===
|
|
|
|
+ this.options.filter((ops) => ops?.value === this.selectValue)[0]
|
|
|
|
+ .stationId
|
|
|
|
+ ) {
|
|
|
|
+ showList.push(val);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -685,6 +812,10 @@ export default {
|
|
this.dialogVisible = true;
|
|
this.dialogVisible = true;
|
|
this.currentWindturbine = itm;
|
|
this.currentWindturbine = itm;
|
|
},
|
|
},
|
|
|
|
+ handleDetialPv(item) {
|
|
|
|
+ this.dialogPvDia = true;
|
|
|
|
+ this.currentWindturbinePv = item;
|
|
|
|
+ },
|
|
handleClose() {
|
|
handleClose() {
|
|
this.dialogVisible = false;
|
|
this.dialogVisible = false;
|
|
this.showSvg = false;
|
|
this.showSvg = false;
|
|
@@ -696,75 +827,121 @@ export default {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
handleWindturbineChange() {
|
|
handleWindturbineChange() {
|
|
- api.getWindturbine().then((res) => {
|
|
|
|
- if (res.data) {
|
|
|
|
- this.windturbinelist = res.data;
|
|
|
|
- this.$store.commit("windturbinelist", res.data);
|
|
|
|
- this.dataList = [];
|
|
|
|
- const showList = [];
|
|
|
|
- let arr = Object.keys(res.data).sort();
|
|
|
|
- let newArr = [];
|
|
|
|
- for (let id of arr) {
|
|
|
|
- let val = res.data[id];
|
|
|
|
- newArr.push(val);
|
|
|
|
- this.chooseList.forEach((item) => {
|
|
|
|
- if (item.windturbineId === val.windturbineId) {
|
|
|
|
- val.active = true;
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- if (val.lockValue === 9) {
|
|
|
|
- val.lockValues = this.lockValues.filter(
|
|
|
|
- (item) => val.windturbineId === item.windturbineID
|
|
|
|
- )[0]?.value;
|
|
|
|
- }
|
|
|
|
- this.dataList.push(val);
|
|
|
|
- switch (Number(this.selectValue)) {
|
|
|
|
- case 0:
|
|
|
|
- if (
|
|
|
|
- val.status === 5 ||
|
|
|
|
- val.status === 6 ||
|
|
|
|
- val.status === 7 ||
|
|
|
|
- val.lockValue > 0
|
|
|
|
- ) {
|
|
|
|
- showList.push(val);
|
|
|
|
|
|
+ let ws = MessageBridge.getInstance();
|
|
|
|
+ let wind = [
|
|
|
|
+ { key: "/topic/windturbine", action: this.getWindMsg },
|
|
|
|
+ ];
|
|
|
|
+ let guangfu = [
|
|
|
|
+ { key: "/topic/pv", action: this.getPvMsg },
|
|
|
|
+ ];
|
|
|
|
+ ws.register(wind);
|
|
|
|
+ ws.register(guangfu);
|
|
|
|
+ },
|
|
|
|
+ getPvMsg(msg) {
|
|
|
|
+ window.sessionStorage.removeItem('pvSbq')
|
|
|
|
+ // let jsonMsg = JSON.parse(msg)
|
|
|
|
+ window.sessionStorage.setItem('pvSbq', msg)
|
|
|
|
+ this.changeData()
|
|
|
|
+ },
|
|
|
|
+ getWindMsg(msg) {
|
|
|
|
+ window.sessionStorage.removeItem('windSbq')
|
|
|
|
+ // let jsonMsg = JSON.parse(msg)
|
|
|
|
+ window.sessionStorage.setItem('windSbq', msg)
|
|
|
|
+ this.changeData()
|
|
|
|
+ },
|
|
|
|
+ changeData() {
|
|
|
|
+ let wswind = JSON.parse(window.sessionStorage.getItem('windSbq'))
|
|
|
|
+ let pv = JSON.parse(window.sessionStorage.getItem('pvSbq'))
|
|
|
|
+ let msg = {}
|
|
|
|
+ if (wswind && pv) {
|
|
|
|
+ msg = {...wswind, ...pv}
|
|
|
|
+ this.windturbinelist = msg;
|
|
|
|
+ this.$store.commit("windturbinelist", msg);
|
|
|
|
+ this.dataList = [];
|
|
|
|
+ const showList = [];
|
|
|
|
+ let arr = Object.keys(msg).sort();
|
|
|
|
+ let newArr = [];
|
|
|
|
+ for (let id of arr) {
|
|
|
|
+ let val = msg[id];
|
|
|
|
+ newArr.push(val);
|
|
|
|
+ this.chooseList.forEach((item) => {
|
|
|
|
+ if (item.windturbineId === val.windturbineId) {
|
|
|
|
+ val.active = true;
|
|
}
|
|
}
|
|
- break;
|
|
|
|
- case 1:
|
|
|
|
- val.status === 5 ? showList.push(val) : "";
|
|
|
|
- break;
|
|
|
|
- case 2:
|
|
|
|
- val.status === 6 ? showList.push(val) : "";
|
|
|
|
- break;
|
|
|
|
- case 3:
|
|
|
|
- val.status === 7 ? showList.push(val) : "";
|
|
|
|
- break;
|
|
|
|
- case 4:
|
|
|
|
- val.lockValue > 0 ? showList.push(val) : "";
|
|
|
|
- break;
|
|
|
|
|
|
+ });
|
|
|
|
+ if (val.lockValue === 9) {
|
|
|
|
+ val.lockValues = this.lockValues.filter(
|
|
|
|
+ (item) => val.windturbineId === item.windturbineID
|
|
|
|
+ )[0]?.value;
|
|
|
|
+ }
|
|
|
|
+ this.dataList.push(val);
|
|
|
|
+ switch (Number(this.selectValue)) {
|
|
|
|
+ case 0:
|
|
|
|
+ if (
|
|
|
|
+ val.status === 5 ||
|
|
|
|
+ val.status === 6 ||
|
|
|
|
+ val.status === 7 ||
|
|
|
|
+ val.lockValue > 0
|
|
|
|
+ ) {
|
|
|
|
+ showList.push(val);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 1:
|
|
|
|
+ val.status === 5 ? showList.push(val) : "";
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ val.status === 6 ? showList.push(val) : "";
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ val.status === 7 ? showList.push(val) : "";
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ val.lockValue > 0 ? showList.push(val) : "";
|
|
|
|
+ break;
|
|
|
|
|
|
- default:
|
|
|
|
- if (
|
|
|
|
- val.stationId ===
|
|
|
|
- this.options.filter(
|
|
|
|
- (ops) => ops?.value === this.selectValue
|
|
|
|
- )[0].stationId
|
|
|
|
- ) {
|
|
|
|
- showList.push(val);
|
|
|
|
|
|
+ default:
|
|
|
|
+ // if (
|
|
|
|
+ // val.stationId ===
|
|
|
|
+ // this.options.filter(
|
|
|
|
+ // (ops) => ops?.value === this.selectValue
|
|
|
|
+ // )[0].stationId
|
|
|
|
+ // ) {
|
|
|
|
+ // this.showList.push(val);
|
|
|
|
+ // }
|
|
|
|
+ if (Number(this.selectValue) < 12) {
|
|
|
|
+ if (
|
|
|
|
+ val.stationId ===
|
|
|
|
+ this.options.filter((ops) => ops?.value === this.selectValue)[0]
|
|
|
|
+ .stationId
|
|
|
|
+ ) {
|
|
|
|
+ showList.push(val);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ if (
|
|
|
|
+ val.station ===
|
|
|
|
+ this.options.filter((ops) => ops?.value === this.selectValue)[0]
|
|
|
|
+ .stationId
|
|
|
|
+ ) {
|
|
|
|
+ showList.push(val);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
- break;
|
|
|
|
}
|
|
}
|
|
- }
|
|
|
|
- let checkoutList = BackgroundData.getInstance().checkouts;
|
|
|
|
- checkoutList.forEach((item) => {
|
|
|
|
- let showIndex = null;
|
|
|
|
- showList.forEach((param, index) => {
|
|
|
|
- if (item.windturbineId === param.windturbineId) {
|
|
|
|
- showIndex = index;
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- showList.splice(showIndex, 1);
|
|
|
|
- });
|
|
|
|
- showList.sort((a,b)=>{
|
|
|
|
|
|
+ // console.log('showList', this.showList)
|
|
|
|
+ let checkoutList = BackgroundData.getInstance().checkouts;
|
|
|
|
+ if (checkoutList.length>0) {
|
|
|
|
+ checkoutList.forEach((item) => {
|
|
|
|
+ let showIndex = null;
|
|
|
|
+ showList.forEach((param, index) => {
|
|
|
|
+ if (item.windturbineId === param.windturbineId) {
|
|
|
|
+ showIndex = index;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ showList.splice(showIndex, 1);
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ showList.sort((a,b)=>{
|
|
let aSubString = '0', bSubString = '0'
|
|
let aSubString = '0', bSubString = '0'
|
|
let aStation = '1', bStation = '2'
|
|
let aStation = '1', bStation = '2'
|
|
if(a.windturbineId && b.windturbineId){
|
|
if(a.windturbineId && b.windturbineId){
|
|
@@ -788,9 +965,9 @@ export default {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
this.showList = showList
|
|
this.showList = showList
|
|
|
|
+
|
|
}
|
|
}
|
|
- });
|
|
|
|
- },
|
|
|
|
|
|
+ }
|
|
},
|
|
},
|
|
unmounted() {
|
|
unmounted() {
|
|
clearInterval(this.intervals);
|
|
clearInterval(this.intervals);
|