From 8b0d749cfbec8bf0afe71a8956bfeeed6f27cdfc Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期四, 16 一月 2025 15:32:30 +0800
Subject: [PATCH] Merge branch 'csc'

---
 Web/src/views/device/deviceMonitor/index.vue |   61 ++++++++++++++++++++++++++----
 1 files changed, 53 insertions(+), 8 deletions(-)

diff --git a/Web/src/views/device/deviceMonitor/index.vue b/Web/src/views/device/deviceMonitor/index.vue
index 03e945c..f66cf15 100644
--- a/Web/src/views/device/deviceMonitor/index.vue
+++ b/Web/src/views/device/deviceMonitor/index.vue
@@ -52,7 +52,6 @@
                 <div class="lineButtonfix">
                     <el-form label-position="left" label-width="80px">
                         <el-form-item>
-                            <el-button>鍐欏叆</el-button>
                             <el-button @click="openDialog">璁剧疆</el-button>
                         </el-form-item>
                     </el-form>
@@ -85,6 +84,9 @@
                             <el-form-item label="鐩殑宸ヤ綅">
                                 <el-input v-model="deviceInfo.endLocatNo"></el-input>
                             </el-form-item>
+                            <el-form-item label="鎵樼洏鐮�">
+                                <el-input v-model="deviceInfo.palletNo"></el-input>
+                            </el-form-item>
                             <el-form-item label="PLC">
                                 <el-input v-model="deviceInfo.plc"></el-input>
                             </el-form-item>
@@ -99,24 +101,50 @@
                     <div class="otherButtonfix">
                         <el-form label-position="left">
                             <el-form-item>
-                                <el-button>鍐欏叆</el-button>
+                                <el-button @click="write(deviceInfo)">鍐欏叆</el-button>
                             </el-form-item>
                         </el-form>
                     </div>
                 </el-card>
             </div>
         </el-main>
-        <setting ref="settingDialogRef" :title="title" v-model:listStationsData="listStationsData" v-model:stationValue="stationValue" />
+        <setting ref="settingDialogRef" :title="title" v-model:listStationsData="listStationsData"
+            v-model:stationValue="stationValue" />
     </el-container>
 </template>
 
 <script lang="ts" setup>
-import { ref, reactive } from 'vue';
-import { listWcsDevice } from '/@/api/wcs/wcsDevice';
+import { ref, onMounted  } from 'vue';
+import { listWcsDevice, writeValue } from '/@/api/wcs/wcsDevice';
 import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
 import { listWcsPlc } from '/@/api/wcs/wcsPlc';
-
+import { ElMessageBox, ElMessage } from 'element-plus';
 import setting from '/@/views/device/deviceMonitor/component/setting.vue'
+import { signalR,stopConnection } from './signalR';
+//杩炴帴signalR 鐩戝惉鍙樻洿
+onMounted(async () => {
+    signalR.off('PublicPlcDevice');
+    signalR.on('PublicPlcDevice', (data: any) => {
+        //todo 闇�瑕佹祴璇�
+        if (data.type == 0) {
+            var index = listStackingMachineData.value.findIndex(s => s.id == data.id);
+            if (index !== -1) {
+                listStackingMachineData.value.splice(index, 1, data);
+            }
+        }
+        else if (data.type == 1) {
+            lineOptions.value.forEach(s => {
+                var index = stations.value[s.id].findIndex(s => s.id == data.id);
+                if (index !== -1) {
+                    stations.value[s.id].splice(index, 1, data);
+                }
+            });
+            if (stationValue.value.id == data.id) {
+                stationValue.value = data;
+            }
+        }
+    });
+});
 
 const stations = ref<any>([]);
 const listStationsData = ref<any>([]);
@@ -138,12 +166,16 @@
 const openDialog = async () => {
     settingDialogRef.value.openDialog(stationValue);
 }
+const write = async (row: any) => {
+    await writeValue(row);
+    ElMessage.success('鍐欏叆鎴愬姛锛�');
+}
 // 鏌ヨ鎿嶄綔
 const handleQuery = async () => {
-    var listplc = await listWcsPlc({ type: 1 });
+    const listplc = await listWcsPlc({ type: 1 });
     lineOptions.value = listplc.data.result;
     lineValue.value = listplc.data.result[0].id;
-    var res = await listWcsDevice();
+    const res = await listWcsDevice();
     listStackingMachineData.value = res.data.result.filter(s => s.type == 0);
     const listConveyorLineData = res.data.result.filter(s => s.type == 1);
     listplc.data.result.forEach(s => {
@@ -153,6 +185,19 @@
         listStationsData.value = stations.value[lineValue.value];
         stationValue.value = listStationsData.value[0];
     }
+    else {
+        listStationsData.value = [];
+        stationValue.value = {
+            stationNum: '',
+            taskNo: '',
+            taskType: '',
+            startLocatNo: '',
+            endLocatNo: '',
+            plc: '',
+            wcs: '',
+            status: false
+        };
+    }
     title.value = listStationsData.value[0].text;
 };
 

--
Gitblit v1.8.0