From 162b6599783924b4113ccd2b00591026bbd10258 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期四, 12 十二月 2024 14:05:04 +0800
Subject: [PATCH] 信号交互显示

---
 Code Management/WCS/WIDESEAWCS_Client/src/views/Home.vue |  206 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 203 insertions(+), 3 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/views/Home.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/Home.vue
index 2d83b3c..e327eb1 100644
--- a/Code Management/WCS/WIDESEAWCS_Client/src/views/Home.vue
+++ b/Code Management/WCS/WIDESEAWCS_Client/src/views/Home.vue
@@ -1,5 +1,106 @@
 <template>
-  <div class="title"></div>
+  <div class="home-contianer">
+    <div>
+      <el-tabs type="border-card" @tab-click="handleClick" style="width: 100%; height: 100%;">
+        <el-tab-pane label="闄堝寲搴�" style="width: 100%;height: 100%;">
+          <div class="StackerOne">
+            <div class="content">{{ this.StackerOne.deviceName }}:</div>
+            <!-- <div :class="this.ConveyorlineOut.data.command.interactiveSignal==1 ? 'bool_false' : 'bool_true'"></div> -->
+            <div class="content">浠诲姟鍙凤細{{ this.StackerOne.data.currentTaskNum }}</div>
+            <div class="content display">
+              <div>宸ヤ綔妯″紡锛歿{ this.StackerOne.data.stackerCraneAutoStatusDes }}</div>
+              <div :class="this.StackerOne.data.stackerCraneAutoStatusDes != '鑷姩' ? 'bool_false' : 'bool_true'"></div>
+            </div>
+            <div class="content display">
+              <div>璁惧鐘舵�侊細{{ this.StackerOne.data.stackerCraneStatusDes }}</div>
+              <div :class="this.StackerOne.data.stackerCraneStatusDes != '姝e父' ? 'bool_false' : 'bool_true'"></div>
+            </div>
+            <div class="content display">
+              <div>浣滀笟鐘舵�侊細{{ this.StackerOne.data.stackerCraneWorkStatusDes }}</div>
+              <div :class="this.StackerOne.data.stackerCraneWorkStatusDes != '寰呮満' ? 'bool_false' : 'bool_true'"></div>
+            </div>
+          </div>
+          <div class="ConveyorlineOut">
+            <div class="content">{{ this.ConveyorlineOut.deviceName }}-----{{
+              this.ConveyorlineOut.data.childDeviceCode}}:</div>
+            <div class="display">
+              <div>
+                <div class="Signal">璇诲彇淇″彿锛�</div>
+                <div class="content ">浠诲姟鍙凤細{{ this.ConveyorlineOut.data.command.taskNum }}</div>
+                <div class="content ">鎵樼洏鍙凤細{{ this.ConveyorlineOut.data.command.barcode }}</div>
+                <div class="content ">缁堢偣鍦板潃锛歿{ this.ConveyorlineOut.data.command.targetAddress}}</div>
+                <div class="content display">
+                  <div>鎵爜绔欏彴鍏ュ簱璇锋眰锛�</div>
+                  <div
+                    :class="this.ConveyorlineOut.data.writeInteractiveSignal[0] != true ? 'bool_false' : 'bool_true'">
+                  </div>
+                </div>
+                <div class="content display">
+                  <div>鍫嗗灈鏈哄嚭搴撶珯鍙拌姹傦細</div>
+                  <div
+                    :class="this.ConveyorlineOut.data.writeInteractiveSignal[2] != true ? 'bool_false' : 'bool_true'">
+                  </div>
+                </div>
+                <div class="content display">
+                  <div>鍫嗗灈鏈哄叆搴撶珯鍙拌姹�</div>
+                  <div
+                    :class="this.ConveyorlineOut.data.writeInteractiveSignal[4] != true ? 'bool_false' : 'bool_true'">
+                  </div>
+                </div>
+                <div class="content display">
+                  <div>绾夸綋鍑哄簱鍙h姹傦細</div>
+                  <div
+                    :class="this.ConveyorlineOut.data.writeInteractiveSignal[6] != true ? 'bool_false' : 'bool_true'">
+                  </div>
+                </div>
+              </div>
+              <div style="margin-left: 40px;">
+                <div class="Signal">鍐欏叆淇″彿锛�</div>
+                <div class="content ">浠诲姟鍙凤細{{ this.ConveyorlineOut.data.commandWrite.taskNum }}</div>
+                <div class="content ">鎵樼洏鍙凤細{{ this.ConveyorlineOut.data.commandWrite.barcode }}</div>
+                <div class="content ">缁堢偣鍦板潃锛歿{ this.ConveyorlineOut.data.commandWrite.targetAddress}}</div>
+                <div class="content display">
+                  <div>鎵爜绔欏彴鍏ュ簱璇锋眰锛�</div>
+                  <div
+                    :class="this.ConveyorlineOut.data.writeInteractiveSignal[1] != true ? 'bool_false' : 'bool_true'">
+                  </div>
+                </div>
+                <div class="content display">
+                  <div>鍫嗗灈鏈哄嚭搴撶珯鍙拌姹傦細</div>
+                  <div
+                    :class="this.ConveyorlineOut.data.writeInteractiveSignal[3] != true ? 'bool_false' : 'bool_true'">
+                  </div>
+                </div>
+                <div class="content display">
+                  <div>鍫嗗灈鏈哄叆搴撶珯鍙拌姹�</div>
+                  <div
+                    :class="this.ConveyorlineOut.data.writeInteractiveSignal[5] != true ? 'bool_false' : 'bool_true'">
+                  </div>
+                </div>
+                <div class="content display">
+                  <div>绾夸綋鍑哄簱鍙h姹傦細</div>
+                  <div
+                    :class="this.ConveyorlineOut.data.writeInteractiveSignal[7] != true ? 'bool_false' : 'bool_true'">
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="闈欑疆搴�" id="print-content">
+
+        </el-tab-pane>
+        <el-tab-pane label="鍒嗗搴�" id="print-content">
+
+        </el-tab-pane><el-tab-pane label="楂樻俯搴�" id="print-content">
+
+        </el-tab-pane>
+        <el-tab-pane label="甯告俯搴�" id="print-content">
+
+        </el-tab-pane>
+      </el-tabs>
+    </div>
+  </div>
 </template>
 
 <script>
@@ -8,13 +109,62 @@
 export default {
   setup() {
     return {
+      StackerOne: {
+        deviceName: "",
+        data: {},
+      },
+      ConveyorlineOut: {
+        deviceName: "",
+        data: {
+          command: {},
+          commandWrite: {},
+          writeInteractiveSignal:[],
+        },
+      },
+      ConveyorlineIn: {
+        deviceName: "",
+        data: {
+          command: {},
+          commandWrite: {},
+          writeInteractiveSignal:[],
+        },
+      }
     }
 
+  },
+  methods: {
+     intToBitArrayFromBinaryString (num, numBits){
+        // 灏嗘暣鏁拌浆鎹负浜岃繘鍒跺瓧绗︿覆锛屽苟浣跨敤padStart鏂规硶琛ヨ冻鍒版寚瀹氱殑浣嶆暟锛堝墠闈㈣ˉ0锛�
+        let binaryString = num.toString(2).padStart(numBits, '0');
+        let bitArray = [];
+        for (let i = 0; i < numBits; i++) {
+            // 鐩存帴鏍规嵁瀛楃涓蹭腑瀛楃鏄惁涓�'1'鏉ョ‘瀹氭瘡涓�浣嶇殑鍊硷紙杞崲涓哄竷灏斿�硷級
+            bitArray.push(binaryString[i] === '1');
+        }
+        return bitArray;
+    }
+  },
+  mounted() {
     eventBus.on('stackerData', eventData => {
-        console.log(eventData);
+      if (eventData.deviceName == "闄堝寲1鍙峰爢鍨涙満") {
+        this.StackerOne.deviceName = eventData.deviceName;
+        this.StackerOne.data = eventData.data
+      }
+      // console.log(eventData);
     })
     eventBus.on('locationData', eventData => {
-        console.log(eventData);
+      console.log(eventData);
+      if (eventData.deviceName == "闄堝寲鍑哄簱杈撻�佺嚎") {
+        this.ConveyorlineOut.deviceName = eventData.deviceName;
+        this.ConveyorlineOut.data = eventData.data
+      }
+      if (eventData.data.childDeviceCode == '1018') {
+        this.ConveyorlineIn.deviceName = eventData.deviceName;
+        this.ConveyorlineIn.data = eventData.data
+        let number = eventData.data.commandWrite.writeInteractiveSignal
+        this.ConveyorlineIn.data.writeInteractiveSignal = this.intToBitArrayFromBinaryString(number, 8);
+        console.log(this.ConveyorlineIn.data.writeInteractiveSignal);
+      }
     })
   }
 }
@@ -27,4 +177,54 @@
   font-size: 28px;
   color: orange;
 }
+
+.bool_true {
+  width: 30px;
+  height: 20px;
+  margin-top: 10px;
+  margin-left: 10px;
+  background-color: rgb(99, 155, 16);
+}
+
+.bool_info {
+  width: 30px;
+  height: 10px;
+  background-color: #ccc;
+}
+
+.StackerOne {
+  width: 100%;
+  margin-bottom: 10px;
+  padding-left: 30px;
+  font-size: 25px;
+  border: 1px solid #ccc;
+}
+
+.ConveyorlineOut {
+  width: 100%;
+  margin-bottom: 10px;
+  padding-left: 30px;
+  font-size: 25px;
+  border: 1px solid #ccc;
+}
+
+.bool_false {
+  display: block;
+  width: 30px;
+  height: 20px;
+  margin-top: 10px;
+  margin-left: 10px;
+  background-color: rgb(204, 71, 71);
+}
+
+.content {
+  margin-bottom: 20px;
+}
+.Signal{
+  margin-bottom: 20px;
+  color:blueviolet;
+}
+.display {
+  display: flex;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3