From 71594bd2dc9201834aa533099e9e49a9b84506cd Mon Sep 17 00:00:00 2001 From: wangfei <3597712270@qq.com> Date: 星期四, 12 六月 2025 15:32:25 +0800 Subject: [PATCH] 新增韩语 --- UI-Project/src/views/Caching/cachingun.vue | 217 ++++++++++++++++++++--------------------------------- 1 files changed, 82 insertions(+), 135 deletions(-) diff --git a/UI-Project/src/views/Caching/cachingun.vue b/UI-Project/src/views/Caching/cachingun.vue index b1370e3..c003ce2 100644 --- a/UI-Project/src/views/Caching/cachingun.vue +++ b/UI-Project/src/views/Caching/cachingun.vue @@ -2,10 +2,13 @@ import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive} from "vue"; import {useRouter} from "vue-router" import {host, WebSocketHost} from '@/utils/constants' +import dayjs from 'dayjs'; import request from "@/utils/request" import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService'; import {ElMessage, ElMessageBox} from 'element-plus' import {useI18n} from 'vue-i18n' +import { inject } from 'vue'; +const globalDate = inject('globalDate'); const {t} = useI18n() let language = ref(localStorage.getItem('lang') || 'zh') const tableDataa = ref([]) @@ -30,43 +33,37 @@ } tableDataa.value = data.EdgStorageCageinfos[0] tableDatab.value = data.taskMessage - // adjustedRects.value = data.EdgStorageCageinfos[0].map(rect => ({ - // ...rect, - // width: rect.width * 0.5 , - // id: rect.id * 10, - // })); -}; -// 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁� -onMounted(() => { + adjustedRects.value = data.EdgStorageCageinfos[0].map((rect, index) => ({ + ...rect, + id: rect.id * 9, + showRect: !!data.EdgStorageCageinfos[0][index]?.details[0] + })); + }; +// 鏍煎紡鍖栧悗绔椂闂村苟璁$畻涓�鍛ㄥ墠鐨勬椂闂� +const defaultTime = ref<[Date, Date]>([new Date(), new Date()]); +function parseAndSetTime() { + const backendTime = new Date(globalDate); + const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 鍑忓幓7澶� + oneWeekAgo.setHours(0, 0, 0, 0); + timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]; + window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo)) +} + onMounted(() => { socket = initializeWebSocket(socketUrl, handleMessage); + parseAndSetTime(); }); // 鍘嗗彶浠诲姟 +const iframeUrl = ref(''); const handlehistorical = (row) => { blindb.value = true; - historical() + iframeUrl.value = `${window.location.origin}/#/Caching/cachingunhistory`; }; -// 鍘嗗彶浠诲姟 -const historical = async () => { - try { - var url="/cacheGlass/edgStorageDeviceTaskHistory?deviceId="+2 + "&startTime=" + '' + "&endTime=" + '' + "&glassId=" + '' + "&taskState=" + '' + "&taskType=" + ''; - const response = await request.get(url) - if (response.code == 200) { - ElMessage.success(response.message); - tableDatad.value = response.data; - } else { - ElMessage.error(response.message); - } -} -catch (error) { - console.error(error); - } -} const sethistorical = async () => { try { const params = { deviceId: 2, - startTime: timeRange.value[0] || '', - endTime: timeRange.value[1] || '', + startTime: (timeRange.value && timeRange.value[0]) || '', + endTime: (timeRange.value && timeRange.value[1]) || '', glassId: glassId.value || '', taskState: taskState.value, taskType: taskType.value || '' @@ -83,7 +80,6 @@ } } catch (error) { - console.error(error); } } // 鐮存崯 @@ -111,8 +107,7 @@ ElMessage.error(response.msg); } } - } catch (error) { - console.error('鍙戠敓閿欒:', error); + } catch (error) { } }; // 鎷胯蛋 @@ -141,7 +136,6 @@ } } } catch (error) { - console.error('鍙戠敓閿欒:', error); } }; // 浠诲姟閲嶇疆 @@ -157,7 +151,7 @@ } ); if (confirmResult === 'confirm') { - var url="/cacheGlass/edgStorageDeviceTask/resetTask?deviceId="+ 1; + var url="/cacheGlass/edgStorageDeviceTask/resetTask?deviceId="+ 2; const response = await request.post(url) if (response.code === 200) { ElMessage.success(response.message); @@ -165,10 +159,33 @@ ElMessage.error(response.msg); } } - } catch (error) { - console.error('鍙戠敓閿欒:', error); + } catch (error) { } }; +// 浠诲姟鎴愬姛澶勭悊 +const successfull = async() => { + try { + const confirmResult = await ElMessageBox.confirm( + t('searchOrder.psuccessfullyprocessed'), + t('workOrder.prompt'), + { + confirmButtonText: t('workOrder.yes'), + cancelButtonText: t('workOrder.cancel'), + type: 'warning', + } + ); + if (confirmResult === 'confirm') { + var url="/cacheGlass/edgStorageDeviceTask/taskSuccess?deviceId="+ 2; + const response = await request.post(url) + if (response.code === 200) { + ElMessage.success(response.message); + } else { + ElMessage.error(response.msg); + } + } + } catch (error) { + } +}; // 鍒犻櫎 const handledelete = async(row) => { try { @@ -182,9 +199,7 @@ } ); if (confirmResult === 'confirm') { - const response = await request.post("/cacheGlass/edgStorageCageDetails/removeEdgDetails",{ - glassId: row.glassId - }) + const response = await request.post("/cacheGlass/edgStorageCageDetails/removeEdgDetails?glassId="+encodeURIComponent(row.glassId)) if (response.code === 200) { ElMessage.success(response.message); } else { @@ -192,7 +207,6 @@ } } } catch (error) { - console.error('鍙戠敓閿欒:', error); } }; const rowClassName = ({ row }) => { @@ -279,8 +293,7 @@ const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級 const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級 const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級 - // 鍙樉绀哄勾鏈堟棩锛屽鏋滈渶瑕佹樉绀烘椂闂达紝鍒欐嫾鎺� hours + ':' + minutes + ':' + seconds - return `${year}-${month}-${day}`; + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; } onUnmounted(() => { if (socket) { @@ -288,28 +301,29 @@ } }); onBeforeUnmount(() => { - console.log("鍏抽棴浜�") closeWebSocket(); }); </script> <template> <div style="height: 500px;"> - <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;" v-loading="loading"> + <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;"> <el-button style="margin-bottom: 15px;margin-left: 20px;" @click="handlehistorical" type="primary">{{ $t('searchOrder.historicaltasks') }}</el-button> + <el-button style="margin-bottom: 15px;margin-left: 20px;" @click="handleptask()" type="warning">{{ $t('searchOrder.partask') }}</el-button> + <el-button style="margin-bottom: 15px;margin-left: 20px;" @click="successfull()" type="success">{{ $t('searchOrder.successfullyprocessed') }}</el-button> <div style="position: relative; width: 100%; height: 100%;"> <!-- 娣诲姞鐩稿瀹氫綅 --> - <div style="position: absolute; margin-top: 28px; left: 430px; display: flex; z-index: 10;"> <!-- 娣诲姞缁濆瀹氫綅 --> + <div style="position: absolute; margin-top: 28px; left: 400px; display: flex; z-index: 10;"> <!-- 娣诲姞缁濆瀹氫綅 --> <div>{{ $t('searchOrder.projectnumber') }}</div> - <div style="margin-left: 155px;">{{ $t('hellow.flowCardId') }}</div> + <div style="margin-left: 135px;">{{ $t('hellow.flowCardId') }}</div> <div style="margin-left: 152px;">{{ $t('searchOrder.glassID') }}</div> - <div style="margin-left: 165px;">{{ $t('searchOrder.width') }}</div> - <div style="margin-left: 185px;">{{ $t('searchOrder.height') }}</div> - <div style="margin-left: 172px;">{{ $t('searchOrder.thickness') }}</div> - <div style="margin-left: 145px;">{{ $t('hellow.operate') }}</div> + <div style="margin-left: 135px;">{{ $t('searchOrder.width') }}</div> + <div style="margin-left: 169px;">{{ $t('searchOrder.height') }}</div> + <div style="margin-left: 162px;">{{ $t('searchOrder.thickness') }}</div> + <div style="margin-left: 135px;">{{ $t('hellow.operate') }}</div> </div> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> <el-table ref="table" - style="margin-top: 20px; height: 360px;" + style="margin-top: 20px; height: 300px;" :data="tableDataa" :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }" row-key="id" @@ -342,9 +356,9 @@ <el-table-column prop="thickness" align="center" min-width="80" /> <el-table-column fixed="right" align="center" width="150"> <template #default="scope"> - <el-button size="mini" type="text" plain @click="handletake(scope.row)">{{ $t('searchOrder.breakage') }}</el-button> - <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">{{ $t('searchOrder.takeout')}} </el-button> - <el-button size="mini" type="text" plain @click="handledelete(scope.row)">{{ $t('searchOrder.delete')}} </el-button> + <el-button type="text" plain @click="handletake(scope.row)">{{ $t('searchOrder.breakage') }}</el-button> + <el-button type="text" plain @click="handleBindRack(scope.row)">{{ $t('searchOrder.takeout')}} </el-button> + <el-button type="text" plain @click="handledelete(scope.row)">{{ $t('searchOrder.delete')}} </el-button> </template> </el-table-column> </el-table> @@ -387,103 +401,35 @@ </el-table-column> <el-table-column prop="formattedCreateTime" align="center" :label="$t('film.createtime')" min-width="120" /> <el-table-column prop="formattedupdateTime" align="center" :label="$t('sorter.updateTime')" min-width="120" /> - <el-table-column fixed="right" :label="$t('hellow.operate')" align="center" width="150"> - <template #default="scope"> - <el-button size="mini" type="text" plain @click="handleptask()">{{ $t('searchOrder.partask') }}</el-button> - </template> - </el-table-column> </el-table> </div> </el-card> <div class="awatch"> - <img src="../../assets/woshihuancun.png" alt="" style="width: 50%;height: 70%;margin-left: 30%;margin-top: 20px;position: relative;"> - <div style="position: relative; width: 500px;height: 95px;margin-top: -165px;margin-left: 450px;"> + <img src="../../assets/woshihuancun.png" alt="" style="width: 50%;height: 100%;margin-left: 25%;margin-top: 5px;position: relative;"> + <div style="position: relative; width: 500px;height: 95px;margin-top: -227px;margin-left: 615px;"> <div v-for="(rect, index) in adjustedRects" + v-show="rect.showRect" :key="rect" :style="{ position: 'absolute', - top: `${rect.id}px`, left: `10px`, width: `${rect.width}px`, height: `5px`, + top: `${rect.id}px`, left: `-85px`, width: `435px`, height: `3px`, backgroundColor: '#409EFF' }" > </div> +</div> </div> </div> -</div> <!-- 鍘嗗彶浠诲姟 --> -<el-dialog v-model="blindb" top="10vh" width="90%"> - <div style="display: flex;"> - <el-input v-model="glassId" style="margin-left: 10px;margin-bottom: 10px;width: 270px;" :placeholder="$t('searchOrder.inglassID')" /> - <el-select - :placeholder="$t('searchOrder.taskstatus')" - clearable - style="width: 270px;margin-left: 10px;" - v-model="taskState"> - <el-option - v-for="item in optionsa" - :key="item.value" - :label="item.label" - :value="item.value" - /> - </el-select> - <el-select - :placeholder="$t('film.enabletype')" - clearable - style="width: 270px;margin-left: 10px;" - v-model="taskType"> - <el-option - v-for="item in optionsb" - :key="item.value" - :label="item.label" - :value="item.value" - /> - </el-select> - <span class="demonstration" style="margin-left: 20px;margin-top: 3px;">{{ $t('workOrder.time') }}</span> - <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" :start-placeholder="$t('reportmanage.starttime')" - style="margin-left: 15px;" value-format = "YYYY-MM-DD hh:mm:ss" - :end-placeholder="$t('reportmanage.endtime')"> - </el-date-picker> - <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="sethistorical()">{{ - $t('reportmanage.inquire') - }}</el-button> - </div> - <el-table ref="table" style="margin-top: 20px;height: 650px;" :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> - <el-table-column prop="glassIdIn" align="center" :label="$t('searchOrder.intoglassid')" min-width="80" /> - <el-table-column prop="glassIdOut" align="center" :label="$t('searchOrder.outputglassID')" min-width="80" /> - <el-table-column prop="currentCell" align="center" :label="$t('sorter.layernow')" min-width="80" /> - <el-table-column prop="startCell" align="center" :label="$t('processCard.layer')" min-width="120" /> - <el-table-column - align="center" - :label="$t('film.taskstatus')" - min-width="80" - prop="taskState" - > - <template #default="scope"> - <el-tag :type="getStatusTypeb(scope.row.taskState)"> - {{ getStatusTextb(scope.row.taskState) }} - </el-tag> - </template> - </el-table-column> - <el-table-column - align="center" - :label="$t('film.enabletype')" - min-width="80" - prop="taskType" - > - <template #default="scope"> - <el-tag :type="getStatusTypea(scope.row.taskType)"> - {{ getStatusTexta(scope.row.taskType) }} - </el-tag> - </template> - </el-table-column> - <el-table-column prop="createTime" align="center" :label="$t('film.createtime')" min-width="120" /> - <el-table-column prop="updateTime" align="center" :label="$t('sorter.updateTime')" min-width="120" /> - </el-table> - <template #footer> - <div id="dialog-footer"> - <el-button @click="blindb = false">{{ $t('large.close') }}</el-button> - </div> - </template> +<el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl=''"> + <iframe + :src="iframeUrl" + marginwidth="2000px" + marginheight="2000px" + width="100%" + height="750px" + frameborder="0" + ></iframe> </el-dialog> </template> <style scoped> @@ -503,8 +449,9 @@ margin-left: 28%; } .awatch{ - height: 460px; + height: 350px; width: 1500px; max-width: 100%; + margin-left: 10% } </style> -- Gitblit v1.8.0