ソースを参照

feat: bug修改

allen 1 年間 前
コミット
bf9858c7e7
1 ファイル変更56 行追加43 行削除
  1. 56 43
      pages/waterandfernew/details.vue

+ 56 - 43
pages/waterandfernew/details.vue

@@ -517,13 +517,14 @@
 						sf_device_id: this.device_id,
 					},
 				});
+				console.log(res,'resresres')
 				let pickList = [];
 				let pickBtnList = []; // 肥料开关
 				let pickBanList = []; // 肥料搅拌机开关
 				let faList = []; // 管道阀开关
 				this.facilityvalve.forEach(item => {
 					res.forEach((pick, index) => {
-						if(pick.e_key == item.type) {
+						if (pick.e_key == item.type) {
 							let pickObj = Object.assign(item, pick);
 							// 获取当前灌溉泵位置
 							if(pick.e_type == 2) {
@@ -544,13 +545,14 @@
 								pickBanList.push(pickObj)
 							}
 							// 获取管道阀开关列表
-							if(pick.e_type == 1 || pick.e_type == 5) {
+							if (pick.e_type == 1 || pick.e_type == 5) {
 								faList.push(pickObj)
 							}
 							pickList.push(pickObj)
 						}
 					})
 				})
+				console.log(pickBtnList,faList,'faListfaListfaList')
 				// 把肥料和搅拌机位置对应起来(根据创建时间)
 				let resultBan = [];
 				pickBtnList.forEach(fei => {
@@ -563,7 +565,6 @@
 				this.pickBtnList = pickBtnList;
 				this.resultBan = resultBan;
 				this.faList = faList;
-				console.log(pickBtnList, pickBanList, resultBan, faList)
 			},
 			// 元素状态
 			async getEquipstatus() {
@@ -581,11 +582,15 @@
 				var conf = res.conf.relayName;
 				var dataobj = res.device_status;
 				var relayNum = res.conf.relayNum;
+        let controlConf = res.control_conf ? res.control_conf.relayName : ''
+				var controlDataObj = res.control_device_status ? res.control_device_status : {};
+        var controlRelayNum = res.control_conf ? res.control_conf.relayNum : '';
 				var arr = [];
 
 				function numberToArray(number) {
+					console.log(number,'nmuikejrkerjke')
 					// 将数字转换为字符串
-					let numString = number.toString();
+					let numString = number && number.toString();
 
 					// 创建一个空数组,用于存储结果
 					let result = [];
@@ -597,24 +602,22 @@
 
 					return result;
 				}
-				for (var i = 0; i < dataobj.length; i++) {
-					// if (offobj[i].indexOf("j") + 1) {
-					arr.push(offobj[i]);
-					// }
-				}
+				// for (var i = 0; i < dataobj.length; i++) {
+				// 	// if (offobj[i].indexOf("j") + 1) {
+				// 	arr.push(offobj[i]);
+				// 	// }
+				// }
 				conf = conf.split("/");
+        controlConf = controlConf && controlConf.split('/');
+        controlRelayNum = controlRelayNum && controlRelayNum.split('/');
 				relayNum = relayNum.split("/");
 				var arr1 = [];
-				var reg = /\d/;
+        let arr2 = [];
 				let totalP = Math.ceil((conf.length) / 32); //总圈数
+        let totalP2 = Math.ceil((controlConf.length) / 32); // 总圈数
 				for (var i = 0; i < conf.length; i++) {
 					var obj = {};
 					obj.name = conf[i];
-					// if (reg.test(conf[i])) {
-					//   obj.name2 = conf[i].slice(0, conf[i].length - 1);
-					// } else {
-					//   obj.name2 = conf[i];
-					// }
 					obj.name2 = this.typename[relayNum[i]];
 					obj.number = i;
 					obj.type = `j${i + 1}`;
@@ -627,19 +630,46 @@
 					// 当前是循环的第几轮
 					let baseP = Math.ceil((i + 1) / 32);
 					if (i > 31) {
-						dataobj[`j${i + 1}`] = dataobj[
-							`j${(i + 1) % 32 == 0 ? 32 : (i + 1) % 32}`]; // 当前脚标/32取余 当恰好整除的时候  取32
-					}
-					dataobj[`j${i + 1}`] = dataobj[`j${i + 1}`].slice(-totalP); // 截取当前圈数的最后几位数字
-					let baseOff = numberToArray(dataobj[`j${i + 1}`]); // 把当前值根据位数 转换为数组 
-					obj.off = baseOff[baseP - 1] == '0' ? false : true; // 根据当前圈数,取对应的数组的值
-					arr1.push(obj);
+            dataobj[`j${i + 1}`] = dataobj[`j${(i + 1) % 32 === 0 ? 32 : (i + 1) % 32}`]; // 当前脚标/32取余 当恰好整除的时候  取32
+          }
+          dataobj[`j${i + 1}`] = dataobj[`j${i + 1}`].slice(-totalP);// 截取当前圈数的最后几位数字
+          let baseOff = numberToArray(dataobj[`j${i + 1}`]); // 把当前值根据位数 转换为数组
+          // eslint-disable-next-line eqeqeq
+          obj.off = baseOff[baseP - 1] != '0'; // 根据当前圈数,取对应的数组的值
+          obj.isNew = false
+          arr1.push(obj);
 				}
-				for (var i = 0; i < arr1.length; i++) {
-					if (arr1[i].name != "-") {
-						this.facilityvalve.push(arr1[i]);
+				for (let i = 0; i < controlConf.length; i++) {
+          let obj = {};
+          obj.name = controlConf[i];
+          obj.name2 = this.typename[controlRelayNum[i]];
+          obj.number = i;
+          obj.type = `j${i + 1}`;
+          obj.disabled = false;
+          let baseP = Math.ceil((i + 1) / 32);
+          if (i > 31) {
+            controlDataObj[`j${i + 1}`] = controlDataObj[`j${(i + 1) % 32 === 0 ? 32 : (i + 1) % 32}`]; // 当前脚标/32取余 当恰好整除的时候  取32
+          }
+					controlDataObj[`j${i + 1}`] = controlDataObj[`j${i + 1}`] && controlDataObj[`j${i + 1}`].slice(-totalP2);// 截取当前圈数的最后几位数字
+					if (!controlDataObj[`j${i + 1}`]) { 
+						break
 					}
-				}
+          let baseOff = numberToArray(controlDataObj[`j${i + 1}`]); // 把当前值根据位数 转换为数组
+          // eslint-disable-next-line eqeqeq
+          obj.off = baseOff[baseP - 1] != '0'; // 根据当前圈数,取对应的数组的值
+          obj.isNew = true
+          arr2.push(obj);
+        }
+				// for (var i = 0; i < arr1.length; i++) {
+				// 	if (arr1[i].name != "-") {
+				// 		this.facilityvalve.push(arr1[i]);
+				// 	}
+				// }
+				for (let i = 0; i < arr2.length; i++) {
+          if (arr2[i].name !== '-') {
+            this.facilityvalve.push(arr2[i]);
+          }
+        }
 				let feiNum = 0; // 记录废料桶占据通道个数,两个通道为一个肥料桶
 				this.buttonList = [];
 				this.facilityvalve.forEach((item, index) => {
@@ -650,7 +680,6 @@
 				})
 				this.feiNum = feiNum;
 				this.getPickList();
-				console.log(this.facilityvalve)
 			},
 			async getEquipcontrol(num, state, double_order) {
 				//设备控制
@@ -759,22 +788,6 @@
 					// 判断施肥阀是否打开
 					this.feiBeng = e;
 				}
-				// if (this.colomRoundList.indexOf(item.type) > -1) {
-				//   let changeIndex = index;
-				//   if ((index + 1) % 2 == 0) {
-				//     // 偶数 往前取值
-				//     this.facilityvalve[index - 1].disabled = true;
-				//     changeIndex = index - 1;
-				//   } else if ((index + 1) % 2 == 1) {
-				//     // 基数 往后取值
-				//     this.facilityvalve[index + 1].disabled = true;
-				//     changeIndex = index + 1;
-				//   }
-				//   item.disabled = true;
-				//   this.changeTimeStatus(item, changeIndex);
-				//   this.getEquipcontrol(changeIndex, Number(!e));
-				// } else {
-				// }
 				item.disabled = true;
 				this.changeTimeStatus(item, index);
 				//console.log(Number(e), state);