From 4e3b8155722b66e25df3c6fd42cc586b68dea391 Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期五, 06 六月 2025 13:55:39 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- UI-Project/src/views/StockBasicData/stockBasicData.vue | 211 ++++++++++++++++++++++++++++++---------------------- 1 files changed, 122 insertions(+), 89 deletions(-) diff --git a/UI-Project/src/views/StockBasicData/stockBasicData.vue b/UI-Project/src/views/StockBasicData/stockBasicData.vue index 70a5bcc..2747e44 100644 --- a/UI-Project/src/views/StockBasicData/stockBasicData.vue +++ b/UI-Project/src/views/StockBasicData/stockBasicData.vue @@ -1,43 +1,23 @@ <script setup> -import {Search} from "@element-plus/icons-vue"; -import {reactive} from "vue"; +import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue"; import {useRouter} from "vue-router" +import {host, WebSocketHost} from '@/utils/constants' +import request from "@/utils/request" +import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService'; +import {ElMessage, ElMessageBox} from 'element-plus' +import {useI18n} from 'vue-i18n' const router = useRouter() const adda = ref(false) -import { WebSocketHost ,host} from '@/utils/constants' -import request from "@/utils/request" -import { ref, onMounted , onBeforeUnmount,onUnmounted} from "vue"; -import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService'; -// import { ref } from 'vue' -import { ElMessage, ElMessageBox } from 'element-plus' -// import LanguageMixin from './lang/LanguageMixin' - import { useI18n } from 'vue-i18n' - const { t } = useI18n() - let language = ref(localStorage.getItem('lang') || 'zh') - +const {t} = useI18n() +let language = ref(localStorage.getItem('lang') || 'zh') const tableData = ref([]) +const blindb = ref(false) const slot = ref('') -const requestData = { - line: 2001 -}; -const now = new Date(); -const timeRange = ref([new Date(now.setHours(0, 0, 0, 0)), new Date(now.setHours(23, 59, 59, 999))]) +const requestData = { + line: 2001 +}; +const timeRange = ref([]) const selectValuesa = reactive([]); -// request.post("/cacheGlass/taskCache/selectEdgTask",{ -// ...requestData, - -// }).then((res) => { -// if (res.code == 200) { - -// console.log(res.data); -// tableData.value = res.data -// console.log(res.data[0].slot); -// } else { -// ElMessage.warning(res.msg) - -// } -// }); - // 纾ㄨ竟浠诲姟鏌ヨ const setEdgGlassInfoRequest = async () => { let celllist=[] @@ -52,8 +32,6 @@ stateList=[selectValuesa[1]]; } } - - const response = await request.post("/cacheGlass/edgGlassTaskInfo/setEdgGlassInfoRequest", { cellList: celllist, stateList: stateList, @@ -65,9 +43,7 @@ } else { ElMessage.error(response.message); } - } - // 鐮存崯 const open = async(row) => { try { @@ -80,25 +56,20 @@ type: 'warning', } ); - if (confirmResult === 'confirm') { - // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛 + if (confirmResult === 'confirm') { const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", { glassId: row.glassId, state: 8, line: row.line, - workingProcedure: '鍐峰姞宸�', + workingProcedure: '纾ㄨ竟', }) if (response.code === 200) { ElMessage.success(response.message); - } else { - // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛 + } else { ElMessage.error(response.msg); - // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message); } } - } catch (error) { - // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑 - console.error('鍙戠敓閿欒:', error); + } catch (error) { } }; // 鎷胯蛋 @@ -113,68 +84,109 @@ type: 'warning', } ); - if (confirmResult === 'confirm') { - // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛 + if (confirmResult === 'confirm') { const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", { glassId: row.glassId, state: 9, line: row.line, - workingProcedure: '鍐峰姞宸�', + workingProcedure: '纾ㄨ竟', }) if (response.code === 200) { ElMessage.success(response.message); - } else { - // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛 + } else { ElMessage.error(response.msg); - // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message); } } - } catch (error) { - // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑 - console.error('鍙戠敓閿欒:', error); + } catch (error) { } }; let socket = null; -const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlass`; -// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺 +const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/edgTasks`; const handleMessage = (data) => { - // 鏇存柊 tableData 鐨勬暟鎹� - tableData.value = data.edgTasks[0] + const formattedTasks = data.edgTasks[0].map(cageInfo => { + if (cageInfo && cageInfo.createTime) { + cageInfo.formattedCreateTime = formatTimestamp(cageInfo.createTime); + } + return cageInfo; + }); + tableData.value = formattedTasks +}; +// 鍘嗗彶浠诲姟 +const iframeUrl = ref(''); +const handlehistorical = (row) => { + blindb.value = true; + iframeUrl.value = `${window.location.origin}/#/StockBasicData/stockhistory`; }; onMounted(() => { socket = initializeWebSocket(socketUrl, handleMessage); }); onUnmounted(() => { if (socket) { - closeWebSocket(socket); + closeWebSocket(socket); } - }); + }); + function getStatusTypeb(state) { + switch (state) { + case 0: + return 'info'; + case 1: + return 'success'; + case 1: + return 'danger'; + } +} +function getStatusTextb(state) { + switch (state) { + case 0: + return t('workOrder.nedging'); + case 1: + return t('workOrder.edging'); + case 2: + return t('workOrder.finedging'); + } +} +function formatTimestamp(timestamp) { + const date = new Date(timestamp); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕佸姞1锛屽苟琛ラ浂 + const day = String(date.getDate()).padStart(2, '0'); // 琛ラ浂 + const hours = String(date.getHours()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級 + const minutes = String(date.getMinutes()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級 + const seconds = String(date.getSeconds()).padStart(2, '0'); // 琛ラ浂锛堝鏋滈渶瑕佹樉绀烘椂闂达級 + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; +} onBeforeUnmount(() => { - console.log("鍏抽棴浜�") closeWebSocket(); }); </script> <template> - <div> - <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading"> - <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('璇烽�夋嫨绾胯矾')" clearable> - <el-option label="纾ㄨ竟涓�绾�" value="2001"></el-option> - <el-option label="纾ㄨ竟浜岀嚎" value="2002"></el-option> + <div style="height: 500px;"> + <div> + <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" > + <div style="display: flex;"> + <!-- <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handlehistorical">{{ + $t('searchOrder.historicaltasks') + }} + </el-button> --> + <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('workOrder.cway')" clearable + style="margin-left: 20px;margin-bottom: 10px;"> + <el-option :label="$t('workOrder.edgingone')" value="930"></el-option> + <el-option :label="$t('workOrder.edgingtwo')" value="931"></el-option> + </el-select> + <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('workOrder.cstate')" clearable + style="margin-left: 20px;margin-bottom: 10px;"> + <el-option :label="$t('workOrder.nedging')" value="0"></el-option> + <el-option :label="$t('workOrder.edging')" value="1"></el-option> + <el-option :label="$t('workOrder.finedging')" value="2"></el-option> </el-select> - - <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('璇烽�夋嫨鐘舵��')" clearable > - <el-option label="鏈(杈�" value="0"></el-option> - <el-option label="纾ㄨ竟涓�" value="1"></el-option> - <el-option label="宸茬(杈�" value="2"></el-option> - </el-select> - <span class="demonstration">鏃堕棿娈�</span> - <el-date-picker v-model="timeRange" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡"> + <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;" @click="setEdgGlassInfoRequest()">{{ + <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="setEdgGlassInfoRequest()">{{ $t('reportmanage.inquire') }}</el-button> - + </div> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> <el-table height="750" ref="table" @selection-change="handleSelectionChange" @@ -183,27 +195,48 @@ <el-table-column prop="width" align="center" :label="$t('workOrder.width')" min-width="120" /> <el-table-column prop="height" align="center" :label="$t('workOrder.height')" min-width="80" /> <el-table-column prop="thickness" align="center" :label="$t('workOrder.thickness')" min-width="120" /> - <el-table-column prop="glassType" align="center" :label="$t('workOrder.glasstype')" min-width="120" /> + <el-table-column prop="filmsid" align="center" :label="$t('workOrder.glasstype')" min-width="120" /> <el-table-column prop="line" align="center" :label="$t('workOrder.line')" min-width="120" /> - <el-table-column prop="status" :label="$t('workOrder.status')" align="center" width="200"> - <template #default="scope"> + <el-table-column prop="formattedCreateTime" align="center" :label="$t('workOrder.time')" min-width="120" /> + <el-table-column prop="state" :label="$t('workOrder.status')" align="center" width="200"> + <!-- <template #default="scope"> {{ scope.row.status==0?"鏈(杈�":scope.row.status==1?"纾ㄨ竟涓�":"宸茬(杈�" }} - </template> + </template> --> + <template #default="scope"> + <el-tag :type="getStatusTypeb(scope.row.state)"> + {{ getStatusTextb(scope.row.state) }} + </el-tag> + </template> </el-table-column> - - <el-table-column fixed="right" :label="$t('workOrder.operate')" align="center" width="200"> <template #default="scope"> - <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('workOrder.breakage') }}</el-button> - <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('workOrder.takeout') }}</el-button> + <el-button type="text" plain @click="open(scope.row)">{{ + $t('workOrder.breakage') + }} + </el-button> + <el-button type="text" plain @click="opena(scope.row)">{{ + $t('workOrder.takeout') + }} + </el-button> </template> - </el-table-column> + </el-table-column> </el-table> </div> - </el-card> + </el-card> + </div> + <!-- 鍘嗗彶浠诲姟 --> +<el-dialog v-model="blindb" top="10vh" width="95%" @close="iframeUrl=''"> + <iframe + :src="iframeUrl" + marginwidth="2000px" + marginheight="2000px" + width="100%" + height="700px" + frameborder="0" + ></iframe> + </el-dialog> </div> </template> - <style scoped> #dt { display:block; float:left;line-height: 20px;margin-left: 100px;} #dta { display:block; float:left;line-height: 20px;margin-left: 80%;} -- Gitblit v1.8.0