From c56d28d684cee010f291295dbe851bab64c1b6a6 Mon Sep 17 00:00:00 2001
From: hwh <332078369@qq.com>
Date: 星期二, 03 九月 2024 09:52:22 +0800
Subject: [PATCH] 设备监控绑定plc数据

---
 Web/src/views/device/sortPallet/index.vue |  247 ++++++++++++++++++++++++++++---------------------
 1 files changed, 140 insertions(+), 107 deletions(-)

diff --git a/Web/src/views/device/sortPallet/index.vue b/Web/src/views/device/sortPallet/index.vue
index db8b0dc..92f969e 100644
--- a/Web/src/views/device/sortPallet/index.vue
+++ b/Web/src/views/device/sortPallet/index.vue
@@ -1,102 +1,101 @@
 <template>
-    <el-container>
-        <el-card shadow="hover" :body-style="{ paddingBottom: '0', padding: '10px' }" style="width: 100%;display: flex;align-items: center;justify-content: center;">
-            <div class="card-page">
-                <el-button type="primary" :plain="isPlain1" @click="floorTogglePlain(1)">1鍙风爜鍨涙満鍣ㄤ汉</el-button>
-                <el-button type="primary" :plain="isPlain2" @click="floorTogglePlain(2)">2鍙风爜鍨涙満鍣ㄤ汉</el-button>
-                <el-button type="primary" :plain="isPlain3" @click="floorTogglePlain(3)">3鍙风爜鍨涙満鍣ㄤ汉</el-button>
-            </div>
-        </el-card>
-    </el-container>
     <el-container>        
-        <div class="card-container">            
-            <el-card class="other-box-card" v-for="deviceInfo in deviceList" :key="deviceInfo.id">
-                <div slot="header" class="linefix">
-                    <span>{{ deviceInfo.name }}</span>
-                    <div :class="['lineStatus', { 'device-status-0': deviceInfo.status === 0 }, { 'device-status-1': deviceInfo.status === 1 }]"></div>
+        <el-cloum>
+            <el-row :span="1">
+                <div class="card-page">
+                    <el-button
+                        v-for="device in deviceList"
+                        :key="device.id"
+                        type="primary"
+                        :plain="selectedDeviceId !== device.id"
+                        @click="chooseDevice(device.id)"
+                        >
+                        {{ device.name }}
+                    </el-button>
+                </div>  
+            </el-row>
+            <el-row :span="2">
+                <div class="card-container">
+                    <el-card class="other-box-card" v-for="deviceInfo in devicePointData" :key="deviceInfo.id">
+                        <div slot="header" class="linefix">
+                            <span>{{ deviceInfo.name }}</span>
+                            <div :class="['lineStatus', { 'device-status-0': deviceInfo.status === 0 }, { 'device-status-1': deviceInfo.status === 1 }]"></div>
+                        </div>
+                        <div class="otherValuefix" >
+                            <el-form label-position="left" label-width="90px">
+                                <el-form-item label="WMS鏄庣粏鍗曞彿">
+                                    <el-input></el-input>
+                                </el-form-item>
+                                <el-form-item label="浠诲姟鍙�">
+                                    <el-input v-model="deviceInfo.taskNumber"></el-input>
+                                </el-form-item>
+                                <el-form-item label="鐗╂枡缂栫爜">
+                                    <el-input></el-input>
+                                </el-form-item>
+                                <el-form-item label="鐗╂枡鍚嶇О">
+                                    <el-input></el-input>
+                                </el-form-item>
+                                <el-form-item label="鍖呰鍚嶇О">
+                                    <el-input></el-input>
+                                </el-form-item>
+                                <el-form-item label="鐘舵��">
+                                    <el-input></el-input>
+                                </el-form-item>
+                                <el-form-item label="鎶撶鍝佺">
+                                    <el-input></el-input>
+                                </el-form-item>
+                                <el-form-item label="DB璁板綍绠辨暟">
+                                    <el-input></el-input>
+                                </el-form-item>
+                                <el-form-item label="鎵樼洏鍙�">
+                                    <el-input></el-input>
+                                </el-form-item>
+                                <el-form-item label="鐮佸灈绠辨暟">
+                                    <el-input></el-input>
+                                </el-form-item>
+                                <el-form-item label="WMS涓嬪彂鏁伴噺">
+                                    <el-input></el-input>
+                                </el-form-item>
+                            </el-form>
+                        </div>
+                        <div class="otherButtonfix">
+                            <el-form label-position="left">
+                                <el-form-item>
+                                    <el-button type="primary">缁戝畾</el-button>
+                                    <el-button>缁撴壒</el-button>
+                                </el-form-item>
+                            </el-form>
+                        </div>
+                    </el-card>
                 </div>
-                <div class="otherValuefix" >
-                    <el-form label-position="left" label-width="90px">
-                        <el-form-item label="WMS鏄庣粏鍗曞彿">
-                            <el-input></el-input>
-                        </el-form-item>
-                        <el-form-item label="浠诲姟鍙�">
-                            <el-input v-model="deviceInfo.taskNumber"></el-input>
-                        </el-form-item>
-                        <el-form-item label="鐗╂枡缂栫爜">
-                            <el-input></el-input>
-                        </el-form-item>
-                        <el-form-item label="鐗╂枡鍚嶇О">
-                            <el-input></el-input>
-                        </el-form-item>
-                        <el-form-item label="鍖呰鍚嶇О">
-                            <el-input></el-input>
-                        </el-form-item>
-                        <el-form-item label="鐘舵��">
-                            <el-input></el-input>
-                        </el-form-item>
-                        <el-form-item label="鎶撶鍝佺">
-                            <el-input></el-input>
-                        </el-form-item>
-                        <el-form-item label="DB璁板綍绠辨暟">
-                            <el-input></el-input>
-                        </el-form-item>
-                        <el-form-item label="鎵樼洏鍙�">
-                            <el-input></el-input>
-                        </el-form-item>
-                        <el-form-item label="鐮佸灈绠辨暟">
-                            <el-input></el-input>
-                        </el-form-item>
-                        <el-form-item label="WMS涓嬪彂鏁伴噺">
-                            <el-input></el-input>
-                        </el-form-item>
-                    </el-form>
-                </div>
-                <div class="otherButtonfix">
-                    <el-form label-position="left">
-                        <el-form-item>
-                            <el-button type="primary">缁戝畾</el-button>
-                            <el-button>缁撴壒</el-button>
-                        </el-form-item>
-                    </el-form>
-                </div>
-            </el-card>
-        </div>
+            </el-row>
+        </el-cloum>      
     </el-container>    
 </template>
   
   <script lang="ts" setup>
-  import { ref, reactive } from 'vue';
+    import { ref } from 'vue';
 
-  const stackList=[
+    const deviceList=[
+        {
+            id: 1,
+            name: '1鍙锋満鍣ㄤ汉'
+        },
+        {
+            id: 2,
+            name: '2鍙锋満鍣ㄤ汉'
+        },
+        {
+            id: 3,
+            name: '3鍙锋満鍣ㄤ汉'
+        },
+    ];
 
-  ];
-  const isPlain1 = ref(false);//涓�灞�
-  const isPlain2 = ref(true);//浜屽眰
-  const isPlain3 = ref(true);//涓夊眰
-  //鍒囨崲灞傚钩闈�
-  function floorTogglePlain(buttonNumber) {
-	if (buttonNumber === 1) {
-		isPlain1.value = !isPlain1.value;
-		isPlain2.value =true;
-		isPlain3.value =true;
-
-	} else if (buttonNumber === 2) {
-		isPlain2.value = !isPlain2.value;
-		isPlain1.value =true;
-		isPlain3.value =true;
-
-	} else if (buttonNumber === 3) {
-		isPlain3.value = !isPlain3.value;
-		isPlain1.value =true;
-		isPlain2.value =true;
-	}
-  }
-
-  const deviceList=[
+    const devicePointList=[
         {
           id: 1,
-          name: '1鍙风爜鍨涙満鍣ㄤ汉',
+          deviceId:1,
+          name: '1鍙锋満鍣ㄤ汉 1宸ヤ綅',
           taskNumber: 'T000001',
           taskType: '',
           plc: '',
@@ -105,7 +104,8 @@
         },
         {
           id: 2,
-          name: '2鍙风爜鍨涙満鍣ㄤ汉',
+          deviceId:1,
+          name: '1鍙锋満鍣ㄤ汉 2宸ヤ綅',
           taskNumber: '',
           taskType: '',
           plc: '',
@@ -114,41 +114,72 @@
         },
         {
           id: 3,
-          name: '3鍙风爜鍨涙満鍣ㄤ汉',
-          taskNumber: '',
-          taskType: '',
-          plc: '',
-          wcs: '',
-          status: 0
-        },{
-          id: 4,
-          name: '4鍙风爜鍨涙満鍣ㄤ汉',
+          deviceId:1,
+          name: '1鍙锋満鍣ㄤ汉 3宸ヤ綅',
           taskNumber: '',
           taskType: '',
           plc: '',
           wcs: '',
           status: 1
-        },{
-          id: 5,
-          name: '5鍙风爜鍨涙満鍣ㄤ汉',
-          taskNumber: '',
+        },
+        {
+          id: 4,
+          deviceId:2,
+          name: '2鍙锋満鍣ㄤ汉 1宸ヤ綅',
+          taskNumber: 'T000001',
           taskType: '',
           plc: '',
           wcs: '',
           status: 0
-        },{
-          id: 6,
-          name: '6鍙风爜鍨涙満鍣ㄤ汉',
+        },
+        {
+          id: 5,
+          deviceId:2,
+          name: '2鍙锋満鍣ㄤ汉 2宸ヤ綅',
           taskNumber: '',
+          taskType: '',
+          plc: '',
+          wcs: '',
+          status: 1
+        },
+        {
+          id: 6,
+          deviceId:3,
+          name: '3鍙锋満鍣ㄤ汉 1宸ヤ綅',
+          taskNumber: 'T000001',
           taskType: '',
           plc: '',
           wcs: '',
           status: 0
         }
-      ]
+    ];
+
+    //杈撻�佺嚎鏁版嵁
+    let devicePointFirst= devicePointList.filter(device => device.deviceId === deviceList[0].id)
+    let devicePointData = ref(devicePointFirst);
+    let selectedDeviceId = ref(deviceList[0].id);
+
+    //鍒囨崲灞傚钩闈�
+    function chooseDevice(id) {
+        selectedDeviceId.value = id;
+        devicePointData.value = devicePointList.filter(device => device.deviceId === id);
+    }
   </script>
   
   <style scoped>
+    .card-page {
+        width: 100%;
+        height: 50px;
+        display: flex;
+        text-align: center;
+        justify-content: center;
+        align-items: center;
+        text-align: center;
+    }
+    .card-page>button {
+        width: 150px;
+        height: 30px;
+    }
     .card-container {
           display: grid;
           grid-template-columns: repeat(6, 1fr);
@@ -156,6 +187,7 @@
     }
     .other-box-card {
           box-sizing: border-box;
+          background: linear-gradient(135deg, #66ccff, #3399ff);
     }
     .lineStatus{
         position: absolute;
@@ -172,6 +204,7 @@
         align-items: center;
         height: 40px;
         position: relative;
+        color: #fff;
     }
     .otherValuefix{
         width: 100%;
@@ -188,7 +221,7 @@
         padding: 0;
     }
     .device-status-0{
-        background-color: #67C23A;
+        background-color: #58f709;
     }
     .device-status-1{
         background-color: red;

--
Gitblit v1.8.0