From 56fab901b298857ff4985b7429ef843c9a9d1471 Mon Sep 17 00:00:00 2001 From: wangfei <3597712270@qq.com> Date: 星期三, 28 八月 2024 16:20:02 +0800 Subject: [PATCH] 钢化模块打印功能,新增表格字段 --- UI-Project/src/views/Identify/identify.vue | 169 +++++++++++++++++++++++++++++++++---------------------- 1 files changed, 101 insertions(+), 68 deletions(-) diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue index bcb4693..8d2760c 100644 --- a/UI-Project/src/views/Identify/identify.vue +++ b/UI-Project/src/views/Identify/identify.vue @@ -11,8 +11,8 @@ @current-change="handleCurrentChange" /> </div> - <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading"> - <el-scrollbar height="550px" width="1200px" style="background-color: #e9e9eb;"> + <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading"> + <el-scrollbar height="750px" width="1400px" style="background-color: #e9e9eb;"> <div style="position: relative;"> <div v-for="(rect, index) in adjustedRects" @@ -21,7 +21,7 @@ @click="showDialog(rect.glass_id)" :style="{ position: 'absolute', top: `${rect.y_axis}px`, left: `${rect.x_axis}px`, width: `${rect.width}px`, height: `${rect.height}px`, - backgroundColor: getRectColor(rect.glass_state) + backgroundColor: rect.isActive ? '#ADFF2F' : getRectColor(rect.glass_state) }" > <!-- 绠ご --> @@ -34,13 +34,13 @@ </div> </div> </el-scrollbar> - <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;"> - <el-button type="warning" plain :icon="Delete" @click="handleDamage(currentGlassId)" style="width: 140px;margin-left: 10px;"> + <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose"> + <el-button :disabled="currentGlassRect?.glass_state === 8" type="warning" plain :icon="Delete" @click="handleDamage(currentGlassId)" style="width: 140px;margin-left: 10px;"> {{ $t('order.dilapidation') }} </el-button> - <el-button type="danger" plain @click="handleManualTake(currentGlassId)" style="width: 140px;margin-top: 10px;"> + <el-button :disabled="currentGlassRect?.glass_state === 9" type="danger" plain @click="handleManualTake(currentGlassId)" style="width: 140px;margin-top: 10px;"> <el-icon class="el-icon--right"><Upload /></el-icon> - {{ $t('order.Takeaway') }}</el-button> + {{ $t('order.takeaway') }}</el-button> </el-dialog> </el-card> </template> @@ -60,6 +60,7 @@ const glass_id = ref(); const inputValue = ref(''); const currentGlassId = ref(null); // 瀛樺偍褰撳墠鐐瑰嚮鐭╁舰鐨� glass_id +const currentstate = ref(null); const adjustedRects = ref([]); const raw = ref([]); let webSocket: WebSocket | null = null; @@ -68,15 +69,27 @@ const currentPage = ref(1); const disabled = false; const size = 'small'; -const rawData = ref([]); +const rawData = ref([]); // const handleBind = (row) => { // blind.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗� // }; // 鏄剧ず瀵硅瘽妗嗗苟璁剧疆褰撳墠 glass_id -function showDialog(glassId: number) { +const currentGlassRect = computed(() => { + return adjustedRects.value.find(rect => rect.glass_id === currentGlassId.value); +}); +function showDialog(glassId: number) { currentGlassId.value = glassId; blind.value = true; + adjustedRects.value = adjustedRects.value.map(rect => + rect.glass_id === glassId ? { ...rect, isActive: true } : rect + ); } +const handleDialogClose = () => { + adjustedRects.value = adjustedRects.value.map(rect => ({ + ...rect, + isActive: false + })); +} // 鐮存崯 const handleDamage = async () => { try { @@ -84,17 +97,17 @@ // console.log(url); // const response = await request.post(url) const response = await request.post('/cacheGlass/taskCache/identControls', { - identId: currentGlassId.value, - controlsId: 201, + glassId: currentGlassId.value, + state: 8, line: 1001, - machine: '璇嗗埆', + workingProcedure: '璇嗗埆', }) if (response.code == 200) { ElMessage.success(response.message); // window.location.reload() blind.value = false; - updateRectStatus(currentGlassId.value, 201); - } else { + updateRectStatus(currentGlassId.value, 8); + } else { // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� ElMessage.error(response.msg); } @@ -111,18 +124,18 @@ // console.log(url); // const response = await request.post(url) const response = await request.post('/cacheGlass/taskCache/identControls', { - identId: currentGlassId.value, - controlsId: 200, + glassId: currentGlassId.value, + state: 9, line: 1001, - machine: '璇嗗埆', + workingProcedure: '璇嗗埆', }) if (response.code == 200) { // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫 ElMessage.success(response.message); // window.location.reload() blind.value = false; - updateRectStatus(currentGlassId.value, 200); - } else { + updateRectStatus(currentGlassId.value, 9); + } else { // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭� ElMessage.error(response.msg); } @@ -137,19 +150,19 @@ var url="/cacheGlass/taskCache/cutTerritory?current="+inputValue.value; const response = await request.post(url) if (response.code === 200) { - console.log(response.data); - const rawRects = response.data[0]; rawData.value = response.data; totalPages.value = rawData.value.length; + const scaleFactor = 1621.78/6000; + const scaleFactory = 750/3300; adjustedRects.value = rawRects.map(rect => ({ ...rect, - x_axis: (6000 -(rect.x_axis + rect.width)) * 0.2085, - y_axis: rect.y_axis * 0.17, - width: rect.width * 0.2 , + x_axis: (6000 -(rect.x_axis + rect.width)) * scaleFactor, + y_axis: rect.y_axis * scaleFactory, + width: rect.width * scaleFactor , widtha: rect.width , heighta: rect.height , - height: rect.height * 0.165 , + height: rect.height * scaleFactory, glass_state: rect.glass_state })); // 濡傛灉WebSocket宸茶繛鎺ワ紝鍒欏叧闂� @@ -166,36 +179,36 @@ const handleCurrentChange = (val: number) => { currentPage.value = val; const page = currentPage.value - 1 + const scaleFactor = 1621.78/6000; + const scaleFactory = 750/3300; adjustedRects.value = rawData.value[page]?.map(rect => ({ // adjustedRects.value = rawRects.map(rect => ({ ...rect, - x_axis: (6000 -(rect.x_axis + rect.width)) * 0.2085, - y_axis: rect.y_axis * 0.17, - width: rect.width * 0.2 , + x_axis: (6000 -(rect.x_axis + rect.width)) * scaleFactor, + y_axis: rect.y_axis * scaleFactory, + width: rect.width * scaleFactor , widtha: rect.width , heighta: rect.height , - height: rect.height * 0.165 , + height: rect.height * scaleFactory, glass_state: rect.glass_state - })); + })); }; -function getRectColor(state: number): string { - switch (state) { - case 0: - return '#e1f3d8'; - case 100: - return '#c8c9cc'; - case 110: - return '#b3e19d'; - case 120: - return '#f89898'; - case 200: - return 'lightblue'; - case 201: - return '#f3d19e'; - default: - return '#911005'; // 榛樿棰滆壊 - } -} +function getRectColor(state: number): string { + switch (state) { + case 0: + return '#e1f3d8'; + case 100: + return '#c8c9cc'; + case 110: + return '#b3e19d'; + case 120: + return '#f89898'; + case 8: + return '#911005'; + case 9: + return '#f3d19e'; + } +} // 鏇存柊鐭╁舰鐘舵�� function updateRectStatus(glassId: string, status: number) { adjustedRects.value.forEach(rect => { @@ -209,28 +222,48 @@ const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlass`; webSocket = new WebSocket(socketUrl); webSocket.onmessage = (event) => { - const data = JSON.parse(event.data); - adjustedRects.value = data.currentCutTerritory[0].map(rect => ({ - ...rect, - x_axis: (6000 -(rect.x_axis + rect.width)) * 0.2085, - y_axis: rect.y_axis * 0.17, - width: rect.width * 0.2 , - widtha: rect.width , - heighta: rect.height , - height: rect.height * 0.165 , - glass_state: rect.glass_state - })); + const data = JSON.parse(event.data); + const scaleFactor = 1621.78/6000; + const scaleFactory = 750/3300; + if (data.currentCutTerritory && data.currentCutTerritory.length > 0) { + const newRects = data.currentCutTerritory[0].map(rect => { + const existingRect = adjustedRects.value.find(r => r.glass_id === rect.glass_id); + + if (existingRect) { + return { + ...existingRect, + x_axis: (6000 - (rect.x_axis + rect.width)) * scaleFactor, + y_axis: rect.y_axis * scaleFactory, + width: rect.width * scaleFactor, + height: rect.height * scaleFactory, + widtha: rect.width, + heighta: rect.height, + glass_state: rect.glass_state, + // 淇濇寔 isActive 鐘舵�佷笉鍙� + }; + } else { + // 濡傛灉涓嶅瓨鍦紝鍒欐坊鍔犳柊鐭╁舰锛岄粯璁� isActive 涓� false + return { + ...rect, + x_axis: (6000 - (rect.x_axis + rect.width)) * scaleFactor, + y_axis: rect.y_axis * scaleFactory, + width: rect.width * scaleFactor, + height: rect.height * scaleFactory, + widtha: rect.width, + heighta: rect.height, + glass_state: rect.glass_state, + isActive: false, + glass_id: rect.glass_id, + }; + } + }); + adjustedRects.value = newRects; + } else if (data.currentCutTerritory == '') { + adjustedRects.value = []; + } }; - webSocket.onerror = (error) => { - console.error('WebSocket Error:', error); - }; - webSocket.onclose = () => { - console.log('WebSocket Connection Closed'); - // 鍙互閫夋嫨閲嶆柊杩炴帴 - }; - } + } }; - onMounted(() => { // 鍒濆鏃讹紝濡傛灉杈撳叆妗嗕负绌猴紝鍒欒繛鎺ebSocket if (!inputValue.value) { -- Gitblit v1.8.0