From 7e5796e4813bb1f4d2696a0fd05f408147c3b96e Mon Sep 17 00:00:00 2001 From: wangfei <3597712270@qq.com> Date: 星期三, 11 六月 2025 15:16:01 +0800 Subject: [PATCH] 所有项目必填判断 --- UI-Project/src/views/Caching/cachingbefore.vue | 182 ++++++++++++++++++++++++++++---------------- 1 files changed, 115 insertions(+), 67 deletions(-) diff --git a/UI-Project/src/views/Caching/cachingbefore.vue b/UI-Project/src/views/Caching/cachingbefore.vue index 1c02239..278efc3 100644 --- a/UI-Project/src/views/Caching/cachingbefore.vue +++ b/UI-Project/src/views/Caching/cachingbefore.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([]) @@ -31,43 +34,54 @@ } 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/cachingbeforehistory`; }; // 鍘嗗彶浠诲姟 -const historical = async () => { - try { - var url="/cacheGlass/edgStorageDeviceTaskHistory?deviceId="+1 + "&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 historical = async () => { +// try { +// let startTime = window.localStorage.getItem('startTime') +// var url="/cacheGlass/edgStorageDeviceTaskHistory?deviceId="+1 + "&startTime=" + startTime + "&endTime=" + globalDate + "&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: 1, - startTime: timeRange.value[0] || '', - endTime: timeRange.value[1] || '', + startTime: (timeRange.value && timeRange.value[0]) || '', + endTime: (timeRange.value && timeRange.value[1]) || '', glassId: glassId.value || '', taskState: taskStat.value, taskType: taskType.value || '' @@ -84,7 +98,6 @@ } } catch (error) { - console.error(error); } } // 鐮存崯 @@ -113,7 +126,6 @@ } } } catch (error) { - console.error('鍙戠敓閿欒:', error); } }; // 鎷胯蛋 @@ -142,14 +154,13 @@ } } } catch (error) { - console.error('鍙戠敓閿欒:', error); } }; // 浠诲姟閲嶇疆 const handleptask = async() => { try { const confirmResult = await ElMessageBox.confirm( - t('workOrder.partasks'), + t('searchOrder.partasks'), t('workOrder.prompt'), { confirmButtonText: t('workOrder.yes'), @@ -167,9 +178,32 @@ } } } catch (error) { - console.error('鍙戠敓閿欒:', 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="+ 1; + 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 { @@ -183,9 +217,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 { @@ -193,7 +225,6 @@ } } } catch (error) { - console.error('鍙戠敓閿欒:', error); } }; const rowClassName = ({ row }) => { @@ -280,8 +311,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) { @@ -289,20 +319,30 @@ } }); 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: 400px; display: flex; z-index: 10;"> + <div>{{ $t('searchOrder.projectnumber') }}</div> + <div style="margin-left: 135px;">{{ $t('hellow.flowCardId') }}</div> + <div style="margin-left: 152px;">{{ $t('searchOrder.glassID') }}</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" - :row-class-name="rowClassName" :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }" row-key="id" > @@ -325,18 +365,18 @@ <template #default="props"> <el-table :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }" - :data="props.row.details" style="width: 100%;height: 200px;"> - <el-table-column prop="engineerId" align="center" :label="$t('searchOrder.projectnumber')" min-width="80" /> - <el-table-column prop="flowCardId" align="center" :label="$t('hellow.flowCardId')" min-width="80" /> - <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="80" /> - <el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="80" /> - <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="80" /> - <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="80" /> - <el-table-column fixed="right" :label="$t('hellow.operate')" align="center" width="150"> + :data="props.row.details" style="width: 100%;height: 70px;"> + <el-table-column prop="engineerId" align="center" min-width="80" /> + <el-table-column prop="flowCardId" align="center" min-width="80" /> + <el-table-column prop="glassId" align="center" min-width="80" /> + <el-table-column prop="width" align="center" min-width="80" /> + <el-table-column prop="height" align="center" min-width="80" /> + <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> @@ -344,6 +384,7 @@ </el-table-column> </el-table> </div> +</div> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;margin-top: 15px;"> <el-table height="90" ref="table" @selection-change="handleSelectionChange" @@ -378,31 +419,37 @@ </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;"> - <div + <img src="../../assets/woshihuancun.png" alt="" style="width: 50%;height: 100%;margin-left: 25%;position: relative;margin-top: 5px;"> + <div style="position: relative; width: 500px;height: 95px;margin-top: -146px;margin-left: 615px;"> + <div v-for="(rect, index) in adjustedRects" - :key="rect" + 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%"> +<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> +<!-- <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 @@ -475,7 +522,7 @@ <el-button @click="blindb = false">{{ $t('large.close') }}</el-button> </div> </template> - </el-dialog> + </el-dialog> --> </template> <style scoped> #dt { display:block; float:left;line-height: 20px;margin-left: 100px;} @@ -494,8 +541,9 @@ margin-left: 28%; } .awatch{ - height: 460px; + height: 350px; width: 1500px; max-width: 100%; + margin-left: 10% } </style> -- Gitblit v1.8.0