From 6b68425fc633b7d0daee7a43806ee7498998a40f Mon Sep 17 00:00:00 2001 From: wxw <Administrator@DESKTOP-5BIMHQ3> Date: 星期三, 11 九月 2024 14:44:14 +0800 Subject: [PATCH] Merge branch 'master' into wxw --- Web/src/views/device/deviceMonitor/index.vue | 81 +++++++++++++++++++++++++++++++++++----- 1 files changed, 71 insertions(+), 10 deletions(-) diff --git a/Web/src/views/device/deviceMonitor/index.vue b/Web/src/views/device/deviceMonitor/index.vue index 8865fab..f66cf15 100644 --- a/Web/src/views/device/deviceMonitor/index.vue +++ b/Web/src/views/device/deviceMonitor/index.vue @@ -11,7 +11,7 @@ <el-option v-for="item in lineOptions" :key="item.id" :label="item.text" :value="item.id"></el-option> </el-select> - <el-select v-model="stationValue" placeholder="璇烽�夋嫨" style="margin-top: 10px;" + <el-select v-model="stationValue" placeholder="璇烽�夋嫨" style="margin-top: 10px;" filterable value-key="stationNum"> <el-option v-for="item in listStationsData" :key="item.id" :label="item.stationNum" :value="item"> @@ -52,8 +52,7 @@ <div class="lineButtonfix"> <el-form label-position="left" label-width="80px"> <el-form-item> - <el-button>鍐欏叆</el-button> - <el-button>璁剧疆</el-button> + <el-button @click="openDialog">璁剧疆</el-button> </el-form-item> </el-form> </div> @@ -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,28 +101,57 @@ <div class="otherButtonfix"> <el-form label-position="left"> <el-form-item> - <el-button>鍐欏叆</el-button> - <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" /> </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>([]); const listStackingMachineData = ref<any>([]); const lineOptions = ref<any>([]); const lineValue = ref(1); +const title = ref<string>(''); const stationValue = ref<any>({ taskNo: '', taskType: '', @@ -130,13 +161,21 @@ wcs: '', status: false }); - +const settingDialogRef = ref(); +// 鎵撳紑鎵撳嵃椤甸潰 +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 => { @@ -146,11 +185,27 @@ 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; }; + handleQuery(); const handleLineChange = (field: string, value: number) => { listStationsData.value = stations.value[value]; + title.value = lineOptions.value.filter(s => s.id == value)[0].text; if (listStationsData.value.length > 0) stationValue.value = listStationsData.value[0]; }; @@ -166,6 +221,12 @@ margin-bottom: 10px; } +.el-button { + background-color: #fff; + border-color: #fff; + color: #000000; +} + .linefix { border-bottom: 1px solid rgb(197, 195, 195); display: flex; -- Gitblit v1.8.0