From c51c2a38142865cf43d33ceb5bc72b0283a110c2 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期四, 05 九月 2024 10:42:23 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/HangZhouMes
---
UI-Project/src/views/Returns/returns.vue | 222 ++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 161 insertions(+), 61 deletions(-)
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index 26b1c91..c5ffe12 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,12 +28,13 @@
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);
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
import { ref, onMounted, onUnmounted, onBeforeUnmount } from "vue";
-// 鍝嶅簲寮忔暟鎹�
const selectedProjectNo = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿
const selectedProjectNoa = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿
const selectedValue = ref(''); // 褰撳墠閫変腑鐨勫
@@ -89,13 +92,54 @@
// ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
}
};
-onMounted(() => {
+const handlezhiban = () => {
+ dialoglea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+ fetchFlowCardId();
+};
+const selectproject = () => {
+ dialogFormVisible.value = true;
+ selectgong();
+};
+// 鍊肩彮淇℃伅
+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,21 +196,59 @@
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
};
-// 璋冪敤鎺ュ彛鑾峰彇閫夐」鏁版嵁鐨勫嚱鏁�
+
+
+
+
+const selectgong = async (queryString: string) => {
+ try {
+ const response = await request.post('/loadGlass/optimizeProject/listByState',{
+ ...requestData,
+ query: queryString
+ })
+ if (response.code == 200) {
+ titleSelectJson.value.processType = response.data;
+ } else {
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
const fetchOptions = async (queryString: string) => {
try {
// 鍙戦�佽姹傚埌鍚庣鎺ュ彛
@@ -174,9 +256,8 @@
...requestData,
query: queryString // 灏嗘煡璇㈠瓧绗︿覆浣滀负鍙傛暟浼犻��
});
-
if (response.code == 200) {
- titleSelectJson.value.processType = response.data;
+ // titleSelectJson.value.processType = response.data;
console.log(response.data);
} else {
@@ -185,7 +266,7 @@
} catch (error) {
console.error('Error fetching options:', error);
}
-};
+};
// 澶勭悊鐢ㄦ埛杈撳叆鍙樺寲鐨勬柟娉�
const handleInputChange = async (value: string) => {
if (value) {
@@ -317,7 +398,6 @@
message: t('basicData.pause'),
})
}
-
};
// 鍒犻櫎
const handleConfirma = async () => {
@@ -329,8 +409,7 @@
filmsId: "",
patternThickness: 0,
number: 0
- });
-
+ });
if (response.code == 200) {
// 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
ElMessage.success(response.message);
@@ -377,7 +456,6 @@
const uniqueHeights = new Set(response.data.map(item => item.height));
const uniqueFilmsIds = new Set(response.data.map(item => item.filmsId));
const uniqueThicknesses = new Set(response.data.map(item => item.thickness));
-
selectOptions.value = Array.from(uniqueWidths).map(width => ({
value: width,
label: width,
@@ -407,12 +485,9 @@
}
// 寮�濮嬩笂鐗�
const handle = async () => {
- if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
-
+ if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
try {
let engineeringId = window.localStorage.getItem('engineeringId')
-console.log(engineeringId);
-
const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
engineerId: engineeringId,
state: 1,
@@ -575,47 +650,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',
@@ -637,7 +711,6 @@
}
};
</script>
-
<template>
<div>
<div id="dotClass">
@@ -652,15 +725,16 @@
<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="selectproject">{{ $t('basicData.selectproject') }}</el-button>
+ <el-button :disabled="!canSelectProject" :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">
<div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
<el-table
- height="150"
+ height="350"
ref="table"
:header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
:data="tableData"
@@ -716,6 +790,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