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/deviceMonitor/index.vue |  106 +++++++++++++++++++++++++++-------------------------
 1 files changed, 55 insertions(+), 51 deletions(-)

diff --git a/Web/src/views/device/deviceMonitor/index.vue b/Web/src/views/device/deviceMonitor/index.vue
index 6f2883e..66a81a1 100644
--- a/Web/src/views/device/deviceMonitor/index.vue
+++ b/Web/src/views/device/deviceMonitor/index.vue
@@ -4,43 +4,49 @@
             <el-card class="box-card">
                 <div slot="header" class="linefix">
                     <span>杈撻�佺嚎</span>
-                    <div class="lineStatus"></div>
+                    <div
+                        :class="['lineStatus', { 'device-status-0': stationValue.status === true }, { 'device-status-1': stationValue.status === false }]">
+                    </div>
                 </div>
                 <div class="choosefix">
-                    <el-select v-model="lineValue" placeholder="璇烽�夋嫨">
+                    <el-select v-model="lineValue" placeholder="璇烽�夋嫨" @change="handleLineChange('item', $event)">
                         <el-option v-for="item in lineOptions" :key="item.value" :label="item.label"
                             :value="item.value"></el-option>
                     </el-select>
-                    <el-select v-model="stationValue" placeholder="璇烽�夋嫨" style="margin-top: 10px;">
-                        <el-option v-for="item in stations" :key="item.id" :label="item.stationNum"
-                            :value="item.id"></el-option>
+                    <el-select v-model="stationValue" placeholder="璇烽�夋嫨" style="margin-top: 10px;"
+                        value-key="stationNum">
+                        <el-option v-for="item in listStationsData" :key="item.id" :label="item.stationNum"
+                            :value="item">
+                        </el-option>
                     </el-select>
                 </div>
                 <div class="lineValuefix">
                     <el-form label-position="left" label-width="80px">
                         <el-form-item label="浠诲姟鍙�">
-                            <el-input></el-input>
+                            <el-input v-model="stationValue.taskNo"></el-input>
                         </el-form-item>
                         <el-form-item label="浠诲姟绫诲瀷">
-                            <el-input></el-input>
+                            <el-select clearable v-model="stationValue.taskType" placeholder="璇烽�夋嫨浠诲姟绫诲瀷">
+								<el-option v-for="(item,index) in dl('TaskTypeEnum')" :key="index" :value="Number(item.value)" :label="`${item.name} [${item.value}]`"></el-option>
+							</el-select>
                         </el-form-item>
                         <el-form-item label="璧峰宸ヤ綅">
-                            <el-input></el-input>
+                            <el-input v-model="stationValue.startLocatNo"></el-input>
                         </el-form-item>
                         <el-form-item label="鐩殑宸ヤ綅">
-                            <el-input></el-input>
+                            <el-input v-model="stationValue.endLocatNo"></el-input>
                         </el-form-item>
                         <el-form-item label="鎵樼洏鐮�">
-                            <el-input></el-input>
+                            <el-input v-model="stationValue.palletNo"></el-input>
                         </el-form-item>
                         <el-form-item label="PLC">
-                            <el-input></el-input>
+                            <el-input v-model="stationValue.plc"></el-input>
                         </el-form-item>
                         <el-form-item label="WCS">
-                            <el-input></el-input>
+                            <el-input v-model="stationValue.wcs"></el-input>
                         </el-form-item>
                         <el-form-item label="鐘舵��">
-                            <el-input></el-input>
+                            <el-input :value="stationValue.status ? '鍦ㄧ嚎' : '绂荤嚎'" readonly></el-input>
                         </el-form-item>
                     </el-form>
                 </div>
@@ -71,8 +77,15 @@
                             <el-form-item label="浠诲姟绫诲瀷">
                                 <el-select clearable="" v-model="deviceInfo.taskType" placeholder="璇烽�夋嫨鐘舵��">
                                     <el-option v-for="(item, index) in dl('TaskTypeEnum')" :key="index"
-                                        :value="Number(item.value)" :label="`${item.name} (${item.code}) [${item.value}] `" />
+                                        :value="Number(item.value)"
+                                        :label="`${item.name} [${item.value}] `" />
                                 </el-select>
+                            </el-form-item>
+                            <el-form-item label="璧峰宸ヤ綅">
+                                <el-input v-model="deviceInfo.startLocatNo"></el-input>
+                            </el-form-item>
+                            <el-form-item label="鐩殑宸ヤ綅">
+                                <el-input v-model="deviceInfo.endLocatNo"></el-input>
                             </el-form-item>
                             <el-form-item label="PLC">
                                 <el-input v-model="deviceInfo.plc"></el-input>
@@ -106,10 +119,19 @@
 import { getDictLabelByVal as dv } from '/@/utils/dict-utils';
 
 const stations = ref<any>([]);
+const listStationsData = ref<any>([]);
 const listStackingMachineData = ref<any>([]);
 
-const lineValue = ref('1');
-const stationValue = ref();
+const lineValue = ref(1);
+const stationValue = ref<any>({
+    taskNo: '',
+    taskType: '',
+    startLocatNo:'',
+    endLocatNo: '',
+    plc: '',
+    wcs: '',
+    status: false
+});
 
 // 鏌ヨ鎿嶄綔
 const handleQuery = async () => {
@@ -117,47 +139,29 @@
     listStackingMachineData.value = res.data.result.filter(s => s.type == 0);
     const listConveyorLineData = res.data.result.filter(s => s.type == 1 || s.type == 4);
     stations.value = {
-        '1': listConveyorLineData.filter(s => s.text = '1灞傛墭鐩樿緭閫佺嚎'),
-        '2': listConveyorLineData.filter(s => s.text = '2灞傛墭鐩樿緭閫佺嚎'),
-        '3': listConveyorLineData.filter(s => s.text = '3灞傛墭鐩樿緭閫佺嚎')
+        1: listConveyorLineData.filter(s => s.text == '1灞傛墭鐩樿緭閫佺嚎'),
+        2: listConveyorLineData.filter(s => s.text == '2灞傛墭鐩樿緭閫佺嚎'),
+        3: listConveyorLineData.filter(s => s.text == '3灞傛墭鐩樿緭閫佺嚎')
     }
-    if (stations.value.length > 0)
-        stationValue.value = stations.value[0][0].id;
-    debugger;
+    if (stations.value[1].length > 0) {
+        listStationsData.value = stations.value[1];
+        stationValue.value = listStationsData.value[0];
+    }
 };
 handleQuery();
 
+const handleLineChange = (field: string, value: number) => {
+    listStationsData.value = stations.value[value];
+    stationValue.value = {};
+};
+
 
 const lineOptions = [
-    { value: '1', label: '涓�妤艰緭閫佺嚎' },
-    { value: '2', label: '浜屾ゼ杈撻�佺嚎' },
-    { value: '3', label: '涓夋ゼ杈撻�佺嚎' }
+    { value: 1, label: '涓�妤艰緭閫佺嚎' },
+    { value: 2, label: '浜屾ゼ杈撻�佺嚎' },
+    { value: 3, label: '涓夋ゼ杈撻�佺嚎' }
 ];
 
-const deviceList = reactive([
-    { id: 1, name: '1鍙风爜鍨涙満鍣ㄤ汉', taskNumber: 'T000001', taskType: '', plc: '', wcs: '', status: 0 },
-    { id: 2, name: '2鍙风爜鍨涙満鍣ㄤ汉', taskNumber: '', taskType: '', plc: '', wcs: '', status: 1 },
-    { id: 3, name: '3鍙风爜鍨涙満鍣ㄤ汉', taskNumber: '', taskType: '', plc: '', wcs: '', status: 0 },
-    { id: 4, name: '4鍙风爜鍨涙満鍣ㄤ汉', taskNumber: '', taskType: '', plc: '', wcs: '', status: 1 },
-    { id: 5, name: '5鍙风爜鍨涙満鍣ㄤ汉', taskNumber: '', taskType: '', plc: '', wcs: '', status: 0 },
-    { id: 6, name: '6鍙风爜鍨涙満鍣ㄤ汉', taskNumber: '', taskType: '', plc: '', wcs: '', status: 0 },
-    { id: 7, name: '7鍙风爜鍨涙満鍣ㄤ汉', taskNumber: '', taskType: '', plc: '', wcs: '', status: '' },
-    { id: 8, name: '8鍙风爜鍨涙満鍣ㄤ汉', taskNumber: '', taskType: '', plc: '', wcs: '', status: 0 }
-]);
-
-const deviceTypeText = (taskType: number) => {
-    switch (taskType) {
-        case 0:
-            return '鍏ュ簱浠诲姟'
-        case 1:
-            return '鍑哄簱浠诲姟'
-        case 2:
-            return '绉诲簱浠诲姟'
-        case 3:
-            return 'PLC鐢宠鍏ュ簱'
-    }
-    return ''
-};
 </script>
 
 <style scoped>
@@ -165,8 +169,8 @@
     font-size: 14px;
 }
 
-.item {
-    margin-bottom: 18px;
+.el-form-item--small {
+    margin-bottom: 10px;
 }
 
 .linefix {

--
Gitblit v1.8.0