diff --git a/pages/tabbar/components/topology/pv8FourthTopCenter.vue b/pages/tabbar/components/topology/pv8FourthTopCenter.vue index 6f9bb85..05b56b6 100644 --- a/pages/tabbar/components/topology/pv8FourthTopCenter.vue +++ b/pages/tabbar/components/topology/pv8FourthTopCenter.vue @@ -981,7 +981,7 @@ } ], - pointSpeed: 1, // 移动速度(像素/帧) + pointSpeed: 1.5, // 移动速度(像素/帧) kWValues: { pv1:null, pv2:null, @@ -994,7 +994,11 @@ pcs1:null, pcs2:null, pcs3:null, - pcs4:null + pcs4:null, + bms1:null, + bms2:null, + bms3:null, + bms4:null } } @@ -1247,42 +1251,34 @@ this.movingPoints.forEach(point => (point.isActive = false,point.isMove = false,point.currentStep = 0,point.x = point.path[0].x,point.y = point.path[0].y)); this.stationId = val this.textCanvasData.splice(10) - const api = [ this.getpv1(), this.getpv2(), this.getPcs1(), - this.getpv3(), this.getpv4(), this.getPcs2(), - this.getpv5(), this.getpv6(), this.getPcs3(), - this.getpv7(), this.getpv8(), this.getPcs4(), + const api = [ this.getpv1(), this.getpv2(), this.getPcs1(), this.getBms1(), + this.getpv3(), this.getpv4(), this.getPcs2(), this.getBms2(), + this.getpv5(), this.getpv6(), this.getPcs3(), this.getBms3(), + this.getpv7(), this.getpv8(), this.getPcs4(), this.getBms4(), this.getacdcCenter(), this.getAmmeter() ] Promise.all(api).finally((result) => { // 获取三个 kW 值 - const {pv1,pv2,pv3,pv4,pv5,pv6,pv7,pv8,pcs1,pcs2,pcs3,pcs4} = this.kWValues; + const {pv1,pv2,pv3,pv4,pv5,pv6,pv7,pv8,pcs1,pcs2,pcs3,pcs4,bms1,bms2,bms3,bms4} = this.kWValues; const pvvalues = [pv1,pv2,pv3,pv4,pv5,pv6,pv7,pv8]; const pcsvalues = [pcs1,pcs2,pcs3,pcs4]; + const bmsvalues = [bms1,bms2,bms3,bms4]; const pvallZero = pvvalues.every(v => v === 0); const anyPositive = pvvalues.some(v => v > 1); const anyNegative = pvvalues.some(v => v < 0); - const pcsanyNegative = pvvalues.some(v => v < 15); + const pcsValuesGreater = pcsvalues.some(v => v > 0); + const pcsValuesLess = pcsvalues.some(v => v < 0); // 重置所有点(确保干净) this.movingPoints.forEach(p => (p.isActive = false)); - // 条件3:全部为0 → 只显示点1 - if (pvallZero) { - this.movingPoints.find(p => p.id === 'point-1').isActive = true; - if(pcsanyNegative){ - this.movingPoints.find(p => p.id === 'point-2').isActive = true; - this.movingPoints.find(p => p.id === 'point-4').isActive = true; - this.movingPoints.find(p => p.id === 'point-5').isActive = true; - this.movingPoints.find(p => p.id === 'point-6').isActive = true; - this.movingPoints.find(p => p.id === 'point-7').isActive = true; - } - } else { - // 条件1:任一大于0 → 点6运动 - if (anyPositive) { - this.movingPoints.find(p => p.id === 'point-3').isActive = true; - } - // 再设置其他点显示逻辑 - this.updatePvPcsPoints(); + if(pcsValuesLess){ + this.movingPoints.find(p => p.id === 'point-3').isActive = true; } + if(pcsValuesGreater && ((pv1 + pv2) < pcs1 || (pv3 + pv4) < pcs2 || (pv5 + pv6) < pcs3 || (pv7 + pv8) < pcs4)){ + this.movingPoints.find(p => p.id === 'point-2').isActive = true; + } + // 设置其他点显示逻辑 + this.updatePvPcsPoints(); this.canvasData = [...this.textCanvasData, ...this.imageCanvasData, ...this .lineCanvasData, ...this.circleCanvasData ] @@ -1360,30 +1356,101 @@ }, updatePvPcsPoints() { - const {pv1,pv2,pv3,pv4,pv5,pv6,pv7,pv8,pcs1,pcs2,pcs3,pcs4} = this.kWValues; - + const {pv1,pv2,pv3,pv4,pv5,pv6,pv7,pv8,pcs1,pcs2,pcs3,pcs4,bms1,bms2,bms3,bms4} = this.kWValues; + // 处理点4、5、6、7 + const point4 = this.movingPoints.find(p => p.id === 'point-4'); + const point5 = this.movingPoints.find(p => p.id === 'point-5'); + const point6 = this.movingPoints.find(p => p.id === 'point-6'); + const point7 = this.movingPoints.find(p => p.id === 'point-7'); // 处理左边:点8、9、10、11、12 const point8 = this.movingPoints.find(p => p.id === 'point-8'); const point9 = this.movingPoints.find(p => p.id === 'point-9'); const point10 = this.movingPoints.find(p => p.id === 'point-10'); const point11 = this.movingPoints.find(p => p.id === 'point-11'); const point12 = this.movingPoints.find(p => p.id === 'point-12'); - if(pv1 > 1){ - point8.isActive = true; - point9.isActive = true; - }else if (pv1 < 1){ - point8.isActive = false; - point9.isActive = false; - } - if(pv2 > 1){ - point10.isActive = true; - point11.isActive = true; - }else if (pv2 < 1){ - point10.isActive = false; - point11.isActive = false; - } - if(pcs1 > 5){ - point12.isActive = true; + if(pcs1 > 0){ //正充 + if((pv1 + pv2) < pcs1){ // 光伏小于pcs功率 + point4.isActive = true; + point9.isActive = false; + point11.isActive = false; + if(pv1 > 0){ + point8.isActive = true; + }else{ + point8.isActive = false; + } + if(pv2 > 0){ + point10.isActive = true; + }else{ + point10.isActive = false; + } + point12.isActive = false; + }else if((pv1 + pv2) > pcs1){ // 光伏大于pcs功率 + point4.isActive = false; + if(pv1 > 0){ + point8.isActive = true; + point9.isActive = true; + }else{ + point8.isActive = false; + point9.isActive = false; + } + if(pv2 > 0){ + point10.isActive = true; + point11.isActive = true; + }else{ + point10.isActive = false; + point11.isActive = false; + } + point12.isActive = false; + }else{ + point4.isActive = false; + point8.isActive = true; + point9.isActive = false; + point10.isActive = true; + point11.isActive = false; + point12.isActive = false; + } + }else if(pcs1 < 0){ //负放 Math.abs(num) + if((pv1 + pv2) < Math.abs(pcs1)){ // 光伏小于pcs功率 + if(pv1 > 0){ //光伏有功率 + point8.isActive = false; + point9.isActive = true; + }else{ + point8.isActive = false; + point9.isActive = false; + } + if(pv2 > 0){ //光伏有功率 + point10.isActive = false; + point11.isActive = true; + }else{ + point10.isActive = false; + point11.isActive = false; + } + point12.isActive = true; + }else if((pv1 + pv2) > Math.abs(pcs1)){ // 光伏大于pcs功率 + if(pv1 > 0){ //光伏有功率 + point8.isActive = true; + point9.isActive = true; + }else{ + point8.isActive = false; + point9.isActive = false; + } + if(pv2 > 0){ //光伏有功率 + point10.isActive = true; + point11.isActive = true; + }else{ + point10.isActive = false; + point11.isActive = false; + } + point12.isActive = false; + } + point4.isActive = false; + }else{ + point4.isActive = false; + point8.isActive = false; + point9.isActive = false; + point10.isActive = false; + point11.isActive = false; + point12.isActive = false; } // 处理左边:点13、14、15、16、17 const point13 = this.movingPoints.find(p => p.id === 'point-13'); @@ -1391,22 +1458,89 @@ const point15 = this.movingPoints.find(p => p.id === 'point-15'); const point16 = this.movingPoints.find(p => p.id === 'point-16'); const point17 = this.movingPoints.find(p => p.id === 'point-17'); - if(pv3 > 1){ - point13.isActive = true; - point14.isActive = true; - }else if (pv3 < 1){ - point13.isActive = false; - point14.isActive = false; - } - if(pv4 > 1){ - point15.isActive = true; - point16.isActive = true; - }else if (pv4 < 1){ - point15.isActive = false; - point16.isActive = false; - } - if(pcs2 > 5){ - point17.isActive = true; + if(pcs2 > 0){ //正充 + if((pv3 + pv4) < pcs2){ // 光伏小于pcs功率 + point5.isActive = true; + point14.isActive = false; + point16.isActive = false; + if(pv3 > 0){ + point13.isActive = true; + }else{ + point13.isActive = false; + } + if(pv4 > 0){ + point15.isActive = true; + }else{ + point15.isActive = false; + } + point17.isActive = false; + }else if((pv3 + pv4) > pcs2){ // 光伏大于pcs功率 + point5.isActive = false; + if(pv3 > 0){ + point13.isActive = true; + point14.isActive = true; + }else{ + point13.isActive = false; + point14.isActive = false; + } + if(pv4 > 0){ + point15.isActive = true; + point16.isActive = true; + }else{ + point15.isActive = false; + point16.isActive = false; + } + point17.isActive = false; + }else{ + point5.isActive = false; + point13.isActive = true; + point14.isActive = false; + point15.isActive = true; + point16.isActive = false; + point17.isActive = false; + } + }else if(pcs2 < 0){ //负放 Math.abs(num) + if((pv3 + pv4) < Math.abs(pcs2)){ // 光伏小于pcs功率 + if(pv3 > 0){ //光伏有功率 + point13.isActive = false; + point14.isActive = true; + }else{ + point13.isActive = false; + point14.isActive = false; + } + if(pv4 > 0){ //光伏有功率 + point15.isActive = false; + point16.isActive = true; + }else{ + point15.isActive = false; + point16.isActive = false; + } + point17.isActive = true; + }else if((pv3 + pv4) > Math.abs(pcs2)){ // 光伏大于pcs功率 + if(pv3 > 0){ //光伏有功率 + point13.isActive = true; + point14.isActive = true; + }else{ + point13.isActive = false; + point14.isActive = false; + } + if(pv4 > 0){ //光伏有功率 + point15.isActive = true; + point16.isActive = true; + }else{ + point15.isActive = false; + point16.isActive = false; + } + point17.isActive = false; + } + point5.isActive = false; + }else{ + point5.isActive = false; + point13.isActive = false; + point14.isActive = false; + point15.isActive = false; + point16.isActive = false; + point17.isActive = false; } // 处理左边:点18、19、20、21、22 const point18 = this.movingPoints.find(p => p.id === 'point-18'); @@ -1414,22 +1548,89 @@ const point20 = this.movingPoints.find(p => p.id === 'point-20'); const point21 = this.movingPoints.find(p => p.id === 'point-21'); const point22 = this.movingPoints.find(p => p.id === 'point-22'); - if(pv5 > 1){ - point18.isActive = true; - point19.isActive = true; - }else if (pv5 < 1){ - point18.isActive = false; - point19.isActive = false; - } - if(pv6 > 1){ - point20.isActive = true; - point21.isActive = true; - }else if (pv6 < 1){ - point20.isActive = false; - point21.isActive = false; - } - if(pcs3 > 5){ - point22.isActive = true; + if(pcs3 > 0){ //正充 + if((pv5 + pv6) < pcs3){ // 光伏小于pcs功率 + point6.isActive = true; + point19.isActive = false; + point21.isActive = false; + if(pv5 > 0){ + point18.isActive = true; + }else{ + point18.isActive = false; + } + if(pv6 > 0){ + point20.isActive = true; + }else{ + point20.isActive = false; + } + point22.isActive = false; + }else if((pv5 + pv6) > pcs3){ // 光伏大于pcs功率 + point6.isActive = false; + if(pv5 > 0){ + point18.isActive = true; + point19.isActive = true; + }else{ + point19.isActive = false; + point20.isActive = false; + } + if(pv6 > 0){ + point20.isActive = true; + point21.isActive = true; + }else{ + point20.isActive = false; + point21.isActive = false; + } + point22.isActive = false; + }else{ + point6.isActive = false; + point18.isActive = true; + point19.isActive = false; + point20.isActive = true; + point21.isActive = false; + point22.isActive = false; + } + }else if(pcs3 < 0){ //负放 Math.abs(num) + if((pv5 + pv6) < Math.abs(pcs3)){ // 光伏小于pcs功率 + if(pv5 > 0){ //光伏有功率 + point18.isActive = true; + point19.isActive = false; + }else{ + point18.isActive = false; + point19.isActive = false; + } + if(pv6 > 0){ //光伏有功率 + point20.isActive = true; + point21.isActive = false; + }else{ + point20.isActive = false; + point21.isActive = false; + } + point22.isActive = true; + }else if((pv5 + pv6) > Math.abs(pcs3)){ // 光伏大于pcs功率 + if(pv5 > 0){ //光伏有功率 + point18.isActive = true; + point19.isActive = true; + }else{ + point18.isActive = false; + point19.isActive = false; + } + if(pv6 > 0){ //光伏有功率 + point20.isActive = true; + point21.isActive = true; + }else{ + point20.isActive = false; + point21.isActive = false; + } + point22.isActive = false; + } + point6.isActive = false; + }else{ + point6.isActive = false; + point18.isActive = false; + point19.isActive = false; + point20.isActive = false; + point21.isActive = false; + point22.isActive = false; } // 处理左边:点23、24、25、26、27 const point23 = this.movingPoints.find(p => p.id === 'point-23'); @@ -1437,23 +1638,91 @@ const point25 = this.movingPoints.find(p => p.id === 'point-25'); const point26 = this.movingPoints.find(p => p.id === 'point-26'); const point27 = this.movingPoints.find(p => p.id === 'point-27'); - if(pv7 > 1){ - point23.isActive = true; - point24.isActive = true; - }else if (pv7 < 1){ - point23.isActive = false; - point24.isActive = false; - } - if(pv8 > 1){ - point25.isActive = true; - point26.isActive = true; - }else if (pv8 < 1){ - point25.isActive = false; - point26.isActive = false; - } - if(pcs4 > 5){ - point27.isActive = true; + if(pcs4 > 0){ //正充 + if((pv7 + pv8) < pcs4){ // 光伏小于pcs功率 + point7.isActive = true; + point24.isActive = false; + point26.isActive = false; + if(pv7 > 0){ + point23.isActive = true; + }else{ + point23.isActive = false; + } + if(pv8 > 0){ + point25.isActive = true; + }else{ + point25.isActive = false; + } + point27.isActive = false; + }else if((pv7 + pv8) > pcs4){ // 光伏大于pcs功率 + point7.isActive = false; + if(pv7 > 0){ + point23.isActive = true; + point24.isActive = true; + }else{ + point23.isActive = false; + point24.isActive = false; + } + if(pv8 > 0){ + point25.isActive = true; + point26.isActive = true; + }else{ + point25.isActive = false; + point26.isActive = false; + } + point27.isActive = false; + }else{ + point7.isActive = false; + point23.isActive = true; + point24.isActive = false; + point25.isActive = true; + point26.isActive = false; + point27.isActive = false; + } + }else if(pcs4 < 0){ //负放 Math.abs(num) + if((pv7 + pv8) < Math.abs(pcs4)){ // 光伏小于pcs功率 + if(pv7 > 0){ //光伏有功率 + point23.isActive = false; + point24.isActive = true; + }else{ + point23.isActive = false; + point24.isActive = false; + } + if(pv8 > 0){ //光伏有功率 + point25.isActive = false; + point26.isActive = true; + }else{ + point25.isActive = false; + point26.isActive = false; + } + point27.isActive = true; + }else if((pv7 + pv8) > Math.abs(pcs4)){ // 光伏大于pcs功率 + if(pv7 > 0){ //光伏有功率 + point23.isActive = true; + point24.isActive = true; + }else{ + point23.isActive = false; + point24.isActive = false; + } + if(pv8 > 0){ //光伏有功率 + point25.isActive = true; + point26.isActive = true; + }else{ + point25.isActive = false; + point26.isActive = false; + } + point27.isActive = false; + } + point7.isActive = false; + }else{ + point7.isActive = false; + point23.isActive = false; + point24.isActive = false; + point25.isActive = false; + point26.isActive = false; + point27.isActive = false; } + }, @@ -1612,6 +1881,33 @@ stationId: this.stationId, pageLocation: 'triad-pcs-1' }) + .then((res) => { + if (res.data && res.data.length) { + res.data.forEach((item, index) => { + if (item.name.includes('kW')) { + const value = parseFloat(item.value); + self.kWValues.pcs1 = value; + } + }) + } else { + this.kWValues.pcs1 = 0; // 没数据视为 0 + } + resolve() + }).catch(() => { + this.kWValues.pcs1 = 0; // 出错也视为 0 + resolve(); + }) + }) + }, + + getBms1() { + let self = this; + return new Promise((resolve, reject) => { + self.$u.api.homePageData + .GetDynamicConfig({ + stationId: this.stationId, + pageLocation: 'triad-bms-1' + }) .then((res) => { if (res.data && res.data.length) { this.textCanvasData.push({ @@ -1641,7 +1937,7 @@ res.data.forEach((item, index) => { if (item.name.includes('SOC')) { const value = parseFloat(item.value); - this.kWValues.pcs1 = value; + this.kWValues.bms1 = value; } this.textCanvasData.push({ type: "text", @@ -1657,11 +1953,11 @@ }) }) } else { - this.kWValues.pcs1 = 0; // 没数据视为 0 + this.kWValues.bms1 = 0; // 没数据视为 0 } resolve() }).catch(() => { - this.kWValues.pcs1 = 0; // 出错也视为 0 + this.kWValues.bms1 = 0; // 出错也视为 0 resolve(); }) }) @@ -1801,6 +2097,33 @@ stationId: this.stationId, pageLocation: 'triad-pcs-2' }) + .then((res) => { + if (res.data && res.data.length) { + res.data.forEach((item, index) => { + if (item.name.includes('kW')) { + const value = parseFloat(item.value); + self.kWValues.pcs2 = value; + } + }) + } else { + this.kWValues.pcs2 = 0; // 没数据视为 0 + } + resolve() + }).catch(() => { + this.kWValues.pcs2 = 0; // 出错也视为 0 + resolve(); + }) + }) + }, + + getBms2() { + let self = this; + return new Promise((resolve, reject) => { + self.$u.api.homePageData + .GetDynamicConfig({ + stationId: this.stationId, + pageLocation: 'triad-bms-2' + }) .then((res) => { if (res.data && res.data.length) { this.textCanvasData.push({ @@ -1830,7 +2153,7 @@ res.data.forEach((item, index) => { if (item.name.includes('SOC')) { const value = parseFloat(item.value); - this.kWValues.pcs2 = value; + this.kWValues.bms2 = value; } this.textCanvasData.push({ type: "text", @@ -1846,11 +2169,11 @@ }) }) } else { - this.kWValues.pcs2 = 0; // 没数据视为 0 + this.kWValues.bms2 = 0; // 没数据视为 0 } resolve() }).catch(() => { - this.kWValues.pcs2 = 0; // 出错也视为 0 + this.kWValues.bms2 = 0; // 出错也视为 0 resolve(); }) }) @@ -1990,6 +2313,33 @@ stationId: this.stationId, pageLocation: 'triad-pcs-3' }) + .then((res) => { + if (res.data && res.data.length) { + res.data.forEach((item, index) => { + if (item.name.includes('kW')) { + const value = parseFloat(item.value); + self.kWValues.pcs3 = value; + } + }) + } else { + this.kWValues.pcs3 = 0; // 没数据视为 0 + } + resolve() + }).catch(() => { + this.kWValues.pcs3 = 0; // 出错也视为 0 + resolve(); + }) + }) + }, + + getBms3() { + let self = this; + return new Promise((resolve, reject) => { + self.$u.api.homePageData + .GetDynamicConfig({ + stationId: this.stationId, + pageLocation: 'triad-bms-3' + }) .then((res) => { if (res.data && res.data.length) { this.textCanvasData.push({ @@ -2019,7 +2369,7 @@ res.data.forEach((item, index) => { if (item.name.includes('SOC')) { const value = parseFloat(item.value); - this.kWValues.pcs3 = value; + this.kWValues.bms3 = value; } this.textCanvasData.push({ type: "text", @@ -2035,11 +2385,11 @@ }) }) } else { - this.kWValues.pcs3 = 0; // 没数据视为 0 + this.kWValues.bms3 = 0; // 没数据视为 0 } resolve() }).catch(() => { - this.kWValues.pcs3 = 0; // 出错也视为 0 + this.kWValues.bms3 = 0; // 出错也视为 0 resolve(); }) }) @@ -2179,6 +2529,33 @@ stationId: this.stationId, pageLocation: 'triad-pcs-4' }) + .then((res) => { + if (res.data && res.data.length) { + res.data.forEach((item, index) => { + if (item.name.includes('kW')) { + const value = parseFloat(item.value); + self.kWValues.pcs4 = value; + } + }) + } else { + this.kWValues.pcs4 = 0; // 没数据视为 0 + } + resolve() + }).catch(() => { + this.kWValues.pcs4 = 0; // 出错也视为 0 + resolve(); + }) + }) + }, + + getBms4() { + let self = this; + return new Promise((resolve, reject) => { + self.$u.api.homePageData + .GetDynamicConfig({ + stationId: this.stationId, + pageLocation: 'triad-bms-4' + }) .then((res) => { if (res.data && res.data.length) { this.textCanvasData.push({ @@ -2224,11 +2601,11 @@ }) }) } else { - this.kWValues.pcs4 = 0; // 没数据视为 0 + this.kWValues.bms4 = 0; // 没数据视为 0 } resolve() }).catch(() => { - this.kWValues.pcs4 = 0; // 出错也视为 0 + this.kWValues.bms4 = 0; // 出错也视为 0 resolve(); }) }) diff --git a/pages/tabbar/dashboard.vue b/pages/tabbar/dashboard.vue index d4e0c32..bac4142 100644 --- a/pages/tabbar/dashboard.vue +++ b/pages/tabbar/dashboard.vue @@ -53,8 +53,9 @@ - + + @@ -216,7 +217,8 @@ {name:'pv1AndStorage_sts_261',value:2}, {name:'pv2AndStorage_261',value:3}, {name:'pv2AndStorage_sts_261',value:4}, - {name:'pv8FourthTopCenter',value:5} + {name:'pv8FourthTopCenter',value:5}, + {name:'pv8FourthDieselTopCenter',value:6} ], pvTopologyType:0, society: [{ diff --git a/static/aidex/login/bg-logo1.png b/static/aidex/login/bg-logo1.png new file mode 100644 index 0000000..8104663 Binary files /dev/null and b/static/aidex/login/bg-logo1.png differ