From 00c4dfc5ac687c93e0b7abafc33abb693b38edd6 Mon Sep 17 00:00:00 2001 From: 严智鑫 <test> Date: 星期一, 05 八月 2024 09:14:33 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes --- UI-Project/src/views/Returns/returns.vue | 177 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 131 insertions(+), 46 deletions(-) diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue index 3c14673..bcbbd2e 100644 --- a/UI-Project/src/views/Returns/returns.vue +++ b/UI-Project/src/views/Returns/returns.vue @@ -17,6 +17,8 @@ const flakea = ref(false) const flakeb = ref(false) const flakec = ref(false) +const dialoglea = ref(false) +const tableDatax = ref([]) const user = ref(''); const projectNo = ref(''); const workstationId = ref(''); @@ -26,6 +28,8 @@ const filmsId = ref(''); const patternThickness = ref(''); const number = ref(''); +const canSelectProject = ref(true); // 鍋囪寮�濮嬫椂鍙互閫夋嫨椤圭洰 +const canStartLoading = ref(false); import { WebSocketHost ,host} from '@/utils/constants' import request from "@/utils/request" const ida = ref(null); @@ -89,13 +93,50 @@ // ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯'); } }; -onMounted(() => { +const handlezhiban = () => { + dialoglea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗� + fetchFlowCardId(); +}; +// 鍊肩彮淇℃伅 +const fetchFlowCardId = async () => { + try { + const response = await request.post('/loadGlass/work_assignment/selectWorkAssignment',{ + line: 2001, + workingProcedure : '鍐峰姞宸�' + }) + if (response.code == 200) { + ElMessage.success(response.message); + tableDatax.value = response.data; + console.log(tableDatax.value); + console + } else { + ElMessage.error(response.message); + } +} +catch (error) { + // 澶勭悊閿欒 + console.error(error); + } +} +const handleConfirmb = async () => { + const response = await request.post("/loadGlass/work_assignment/updateWorkAssignment", tableDatax.value) + if (response.code === 200) { + ElMessage.success(response.message); + dialoglea.value = false; + } else { + ElMessage.error(response.message); + } +}; +onMounted(() => { list(''); fetchOptions(''); - initializeWebSocket(socketUrl, handleMessage); + socket = initializeWebSocket(socketUrl, handleMessage); }); -onMounted(() => { -}); + onUnmounted(() => { + if (socket) { + closeWebSocket(socket); + } + }); const list = async () => { try { const response = await request.get('/loadGlass/LoadGlass/list'); @@ -152,16 +193,34 @@ const titleSelectJsona = ref({ processTypea: [], }) +let socket = null; const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`; // 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺 const handleMessage = (data) => { - // 鏇存柊 tableData 鐨勬暟鎹� if(data.prioritylist!=null){ tableData.splice(0, tableData.length, ...data.prioritylist[0]); } if(data.list!=null){ tableDataa.value = data.list[0] } + if(data.engineering ){ + if ( Array.isArray(data.engineering) && data.engineering.length !== 0) { + canSelectProject.value = false; + canStartLoading.value = true; + }else{ + canSelectProject.value = true; + canStartLoading.value = false; + } +} +if (data.InkageStatus) { +if(data.InkageStatus!=null){ + const status = data.InkageStatus[0]; + cuttingMachine.value = status; + upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa'); + cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005'; + inKageWord.value = status === '1' ? 0 : 1; +} +} }; const requestData = { state: 100 @@ -575,47 +634,46 @@ ElMessage.error(t('basicData.glassnull')); } }; -const wsUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`; -const ws = new WebSocket(wsUrl); -ws.onopen = () => { - console.log('WebSocket杩炴帴宸叉墦寮�'); -}; +// 涓婄墖鏈鸿仈鏈虹姸鎬� +// const wsUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`; +// const ws = new WebSocket(wsUrl); +// ws.onopen = () => { +// console.log('WebSocket杩炴帴宸叉墦寮�'); +// }; -// 鐩戝惉WebSocket鐨勯敊璇簨浠� -ws.onerror = (error) => { - console.error('WebSocket鍙戠敓閿欒:', error); -}; +// // 鐩戝惉WebSocket鐨勯敊璇簨浠� +// ws.onerror = (error) => { +// console.error('WebSocket鍙戠敓閿欒:', error); +// }; -// 鐩戝惉WebSocket鐨勫叧闂簨浠� -ws.onclose = (event) => { - if (event.wasClean) { - console.log('WebSocket杩炴帴宸叉甯稿叧闂�'); - } else { - console.error('WebSocket杩炴帴寮傚父鍏抽棴'); - } -}; -// 鐩戝惉WebSocket鐨勬秷鎭簨浠� -ws.onmessage = (event) => { - try { - - const data = JSON.parse(event.data.replace('<END>', '')); // 瑙f瀽娑堟伅涓篔SON - - if (data && Array.isArray(data.InkageStatus) && data.InkageStatus.length > 0) { -if(data.InkageStatus!=null){ - const status = data.InkageStatus[0]; - cuttingMachine.value = status; - upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa'); - cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005'; - inKageWord.value = status === '1' ? 0 : 1; -} - } else { - // 澶勭悊閿欒鎯呭喌鎴栨棤鏁堟暟鎹� - // console.error('鎺ユ敹鍒扮殑鏁版嵁鏃犳晥', data); - } - } catch (error) { - // console.error('瑙f瀽WebSocket娑堟伅鏃跺彂鐢熼敊璇�', error); - } -}; +// // 鐩戝惉WebSocket鐨勫叧闂簨浠� +// ws.onclose = (event) => { +// if (event.wasClean) { +// console.log('WebSocket杩炴帴宸叉甯稿叧闂�'); +// } else { +// console.error('WebSocket杩炴帴寮傚父鍏抽棴'); +// } +// }; +// // 鐩戝惉WebSocket鐨勬秷鎭簨浠� +// ws.onmessage = (event) => { +// try { +// const data = JSON.parse(event.data.replace('<END>', '')); // 瑙f瀽娑堟伅涓篔SON +// if (data && Array.isArray(data.InkageStatus) && data.InkageStatus.length > 0) { +// if(data.InkageStatus!=null){ +// const status = data.InkageStatus[0]; +// cuttingMachine.value = status; +// upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa'); +// cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005'; +// inKageWord.value = status === '1' ? 0 : 1; +// } +// } else { +// // 澶勭悊閿欒鎯呭喌鎴栨棤鏁堟暟鎹� +// // console.error('鎺ユ敹鍒扮殑鏁版嵁鏃犳晥', data); +// } +// } catch (error) { +// // console.error('瑙f瀽WebSocket娑堟伅鏃跺彂鐢熼敊璇�', error); +// } +// }; const confirmCutting = async () => { try { const response = await request.post('/loadGlass/LoadGlass/updateMesInkageLoad', @@ -651,9 +709,10 @@ <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;" >{{ $t('basicData.change') }}</el-button> </div> - <el-button style="margin-top: 5px;margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisible = true">{{ $t('basicData.selectproject') }}</el-button> - <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="primary" @click="handleBind">{{ $t('basicData.startloading') }}</el-button> + <el-button :disabled="!canSelectProject" style="margin-top: 5px;margin-left: 15px;" type="primary" @click="dialogFormVisible = true">{{ $t('basicData.selectproject') }}</el-button> + <el-button :style="{ backgroundColor: canStartLoading ? 'green' : 'initial',color: canStartLoading ? 'white' : 'black', }" style="margin-top: 5px;margin-left: 20px;" @click="handleBind">{{ $t('basicData.startloading') }}</el-button> <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button> + <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button> <!-- <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="danger" @click="handleBindb">鍋滄浠诲姟</el-button> --> <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading"> @@ -715,6 +774,32 @@ </div> </template> </el-dialog> + +<el-dialog v-model="dialoglea" top="15vh" width="70%" :title="$t('searchOrder.dutyinformation')"> + <el-table ref="table" style="margin-top: 20px;height: 300px;" + :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> + <el-table-column prop="line" fixed align="center" :label="$t('searchOrder.line')"/> + <el-table-column prop="workProcesses" fixed align="center" :label="$t('searchOrder.process')" /> + <el-table-column prop="teamsGroupsName" align="center" :label="$t('searchOrder.team')"> + <template #default="{ row }"> + <el-input v-model="row.teamsGroupsName" autocomplete="off" min-width="150"/> + </template> + </el-table-column> + <el-table-column prop="deviceName" align="center" :label="$t('searchOrder.basic')"> + <template #default="{ row }"> + <el-input v-model="row.deviceName" autocomplete="off" min-width="150"/> + </template> + </el-table-column> + </el-table> + <template #footer> + <div id="dialog-footer"> + <el-button type="primary" @click="handleConfirm"> + {{ $t('searchOrder.add') }} + </el-button> + <el-button @click="dialoglea = false">{{ $t('searchOrder.cancel') }}</el-button> + </div> + </template> +</el-dialog> <el-dialog v-model="blinda" top="30vh" width="25%" :title="$t('basicData.whetherpause')"> <template #footer> <div id="dialog-footer"> -- Gitblit v1.8.0