UI-Project/src/lang/en.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/lang/py.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/lang/zh.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/views/Caching/cachingbefore.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/views/Caching/cachingun.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
UI-Project/src/lang/en.js
@@ -125,6 +125,8 @@ takeon:'The arrangement is complete', }, searchOrder:{ empty:'默认空任务', historicaltasks:'历史任务', cagedetails:'笼内详情', inkageEntity:'进片联机状态:', requestEntity:'进片请求状态:', UI-Project/src/lang/py.js
@@ -125,6 +125,8 @@ takeaway: 'Взять вручную', }, searchOrder: { empty:'默认空任务', historicaltasks:'历史任务', cagedetails:'笼内详情', inkageEntity:'进片联机状态:', requestEntity:'进片请求状态:', UI-Project/src/lang/zh.js
@@ -125,6 +125,8 @@ takeon:'摆片完成', }, searchOrder:{ empty:'默认空任务', historicaltasks:'历史任务', cagedetails:'笼内详情', inkageEntity:'进片联机状态:', requestEntity:'进片请求状态:', UI-Project/src/views/Caching/cachingbefore.vue
@@ -1,5 +1,5 @@ <script setup> import {onBeforeUnmount, onMounted, onUnmounted, ref} from "vue"; import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive} from "vue"; import {useRouter} from "vue-router" import {host, WebSocketHost} from '@/utils/constants' import request from "@/utils/request" @@ -10,7 +10,14 @@ let language = ref(localStorage.getItem('lang') || 'zh') const tableDataa = ref([]) const tableDatab = ref([]) const tableDatad = ref([]) const adjustedRects = ref([]); const selectValuesa = reactive([]); const timeRange = ref([]) const taskState = ref('') const taskType = ref('') const glassId = ref('') const blindb = ref(false) let socket = null; const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlassOne`; const handleMessage = (data) => { @@ -33,6 +40,176 @@ onMounted(() => { socket = initializeWebSocket(socketUrl, handleMessage); }); // 历史任务 const handlehistorical = (row) => { blindb.value = true; historical() }; // 历史任务 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 sethistorical = async () => { try { const params = { deviceId: 1, startTime: timeRange.value[0] || '', endTime: timeRange.value[1] || '', glassId: glassId.value || '', taskState: taskState.value || '', taskType: taskType.value || '' }; // 构建查询字符串 const queryString = new URLSearchParams(params).toString(); const url = `/cacheGlass/edgStorageDeviceTaskHistory?${queryString}`; 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 handletake = async(row) => { try { const confirmResult = await ElMessageBox.confirm( t('workOrder.messagedamaged'), t('workOrder.prompt'), { confirmButtonText: t('workOrder.yes'), cancelButtonText: t('workOrder.cancel'), type: 'warning', } ); if (confirmResult === 'confirm') { const response = await request.post("/cacheGlass/edgStorageCageDetails/edgDetailsOperate", { glassId: row.glassId, state: 8, line: 1, workingProcedure: '1', }) if (response.code === 200) { ElMessage.success(response.message); } else { ElMessage.error(response.msg); } } } catch (error) { console.error('发生错误:', error); } }; // 拿走 const handleBindRack = async(row) => { try { const confirmResult = await ElMessageBox.confirm( t('workOrder.takemessage'), t('workOrder.prompt'), { confirmButtonText: t('workOrder.yes'), cancelButtonText: t('workOrder.cancel'), type: 'warning', } ); if (confirmResult === 'confirm') { const response = await request.post("/cacheGlass/edgStorageCageDetails/edgDetailsOperate", { glassId: row.glassId, state: 9, line: 1, workingProcedure: '1', }) if (response.code === 200) { ElMessage.success(response.message); } else { ElMessage.error(response.msg); } } } catch (error) { console.error('发生错误:', error); } }; // 删除 const handledelete = async(row) => { try { const confirmResult = await ElMessageBox.confirm( t('searchOrder.deletemessage'), t('searchOrder.prompt'), { confirmButtonText: t('searchOrder.yes'), cancelButtonText: t('searchOrder.cancel'), type: 'warning', } ); if (confirmResult === 'confirm') { const response = await request.post("/cacheGlass/edgStorageCageDetails/removeEdgDetails",{ glassId: row.glassId }) if (response.code === 200) { ElMessage.success(response.message); } else { ElMessage.error(response.message); } } } catch (error) { console.error('发生错误:', error); } }; const rowClassName = ({ row }) => { // 根据 enableState 设置行的 CSS 类 return row.slot % 2 === 0 ? 'success-row' : ''; }; // 样式部分 const styles = ` .success-row { --el-table-tr-bg-color: var(--el-color-info-light-9); } `; // 动态添加样式到组件 const styleElement = document.createElement('style'); styleElement.textContent = styles; document.head.appendChild(styleElement); const optionsa = [ { value: 0, label: t('searchOrder.empty'), }, { value: 1, label: t('searchOrder.endtask'), } ] const optionsb = [ { value: 1, label: t('sorter.advancetask'), }, { value: 2, label: t('sorter.outputtasks'), }, { value: 3, label: t('sorter.straighttasks'), } ] function getStatusTypea(taskRunning) { switch (taskRunning) { case 0: @@ -129,18 +306,22 @@ </script> <template> <div style="height: 500px;"> <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading"> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> <el-table height="300" ref="table" @selection-change="handleSelectionChange" :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> <el-table-column prop="id" align="center" :label="$t('sorter.id')" min-width="80" /> <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="80" /> <el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="80" /> <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;" v-loading="loading"> <el-button style="margin-bottom: 15px;margin-left: 20px;" @click="handlehistorical" type="primary">{{ $t('searchOrder.historicaltasks') }}</el-button> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> <el-table ref="table" style="margin-top: 20px; height: 360px;" :data="tableDataa" :row-class-name="rowClassName" :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }" row-key="id" > <el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="10" /> <el-table-column align="center" :label="$t('sorter.startstatus')" min-width="80" min-width="10" prop="enableState" > <template #default="scope"> @@ -151,9 +332,29 @@ </el-tag> </template> </el-table-column> <el-table-column prop="remainWidth" align="center" :label="$t('sorter.remainWidth')" min-width="80" /> </el-table> </div> <el-table-column> <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"> <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> </template> </el-table-column> </el-table> </template> </el-table-column> </el-table> </div> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;margin-top: 15px;"> <el-table height="90" ref="table" @selection-change="handleSelectionChange" @@ -219,6 +420,94 @@ </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="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('sorter.place')" min-width="80" prop="inPlace" > <template #default="scope"> <el-tag :type="scope.row.inPlace === 1 ? 'success' : 'warning'" > {{ scope.row.inPlace === 1 ? $t('sorter.inPlace') : $t('sorter.ninPlace') }} </el-tag> </template> </el-table-column> <el-table-column align="center" :label="$t('sorter.taskRunning')" min-width="80" prop="taskRunning" > <template #default="scope"> <el-tag :type="getStatusTypea(scope.row.taskRunning)"> {{ getStatusTexta(scope.row.taskRunning) }} </el-tag> </template> </el-table-column> <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 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> </template> <style scoped> #dt { display:block; float:left;line-height: 20px;margin-left: 100px;} UI-Project/src/views/Caching/cachingun.vue
@@ -1,5 +1,5 @@ <script setup> import {onBeforeUnmount, onMounted, onUnmounted, ref} from "vue"; import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive} from "vue"; import {useRouter} from "vue-router" import {host, WebSocketHost} from '@/utils/constants' import request from "@/utils/request" @@ -10,7 +10,14 @@ let language = ref(localStorage.getItem('lang') || 'zh') const tableDataa = ref([]) const tableDatab = ref([]) const tableDatad = ref([]) const adjustedRects = ref([]); const selectValuesa = reactive([]); const timeRange = ref([]) const taskState = ref('') const taskType = ref('') const glassId = ref('') const blindb = ref(false) let socket = null; const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlassTwo`; const handleMessage = (data) => { @@ -33,6 +40,176 @@ onMounted(() => { socket = initializeWebSocket(socketUrl, handleMessage); }); // 历史任务 const handlehistorical = (row) => { blindb.value = true; historical() }; // 历史任务 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] || '', glassId: glassId.value || '', taskState: taskState.value || '', taskType: taskType.value || '' }; // 构建查询字符串 const queryString = new URLSearchParams(params).toString(); const url = `/cacheGlass/edgStorageDeviceTaskHistory?${queryString}`; 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 handletake = async(row) => { try { const confirmResult = await ElMessageBox.confirm( t('workOrder.messagedamaged'), t('workOrder.prompt'), { confirmButtonText: t('workOrder.yes'), cancelButtonText: t('workOrder.cancel'), type: 'warning', } ); if (confirmResult === 'confirm') { const response = await request.post("/cacheGlass/edgStorageCageDetails/edgDetailsOperate", { glassId: row.glassId, state: 8, line: 2, workingProcedure: '2', }) if (response.code === 200) { ElMessage.success(response.message); } else { ElMessage.error(response.msg); } } } catch (error) { console.error('发生错误:', error); } }; // 拿走 const handleBindRack = async(row) => { try { const confirmResult = await ElMessageBox.confirm( t('workOrder.takemessage'), t('workOrder.prompt'), { confirmButtonText: t('workOrder.yes'), cancelButtonText: t('workOrder.cancel'), type: 'warning', } ); if (confirmResult === 'confirm') { const response = await request.post("/cacheGlass/edgStorageCageDetails/edgDetailsOperate", { glassId: row.glassId, state: 9, line: 2, workingProcedure: '2', }) if (response.code === 200) { ElMessage.success(response.message); } else { ElMessage.error(response.msg); } } } catch (error) { console.error('发生错误:', error); } }; // 删除 const handledelete = async(row) => { try { const confirmResult = await ElMessageBox.confirm( t('searchOrder.deletemessage'), t('searchOrder.prompt'), { confirmButtonText: t('searchOrder.yes'), cancelButtonText: t('searchOrder.cancel'), type: 'warning', } ); if (confirmResult === 'confirm') { const response = await request.post("/cacheGlass/edgStorageCageDetails/removeEdgDetails",{ glassId: row.glassId }) if (response.code === 200) { ElMessage.success(response.message); } else { ElMessage.error(response.message); } } } catch (error) { console.error('发生错误:', error); } }; const rowClassName = ({ row }) => { // 根据 enableState 设置行的 CSS 类 return row.slot % 2 === 0 ? 'success-row' : ''; }; // 样式部分 const styles = ` .success-row { --el-table-tr-bg-color: var(--el-color-info-light-9); } `; // 动态添加样式到组件 const styleElement = document.createElement('style'); styleElement.textContent = styles; document.head.appendChild(styleElement); const optionsa = [ { value: 0, label: t('searchOrder.empty'), }, { value: 1, label: t('searchOrder.endtask'), } ] const optionsb = [ { value: 1, label: t('sorter.advancetask'), }, { value: 2, label: t('sorter.outputtasks'), }, { value: 3, label: t('sorter.straighttasks'), } ] function getStatusTypea(taskRunning) { switch (taskRunning) { case 0: @@ -129,18 +306,22 @@ </script> <template> <div style="height: 500px;"> <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading"> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> <el-table height="300" ref="table" @selection-change="handleSelectionChange" :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> <el-table-column prop="id" align="center" :label="$t('sorter.id')" min-width="80" /> <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="80" /> <el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="80" /> <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;" v-loading="loading"> <el-button style="margin-bottom: 15px;margin-left: 20px;" @click="handlehistorical" type="primary">{{ $t('searchOrder.historicaltasks') }}</el-button> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> <el-table ref="table" style="margin-top: 20px; height: 360px;" :data="tableDataa" :row-class-name="rowClassName" :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }" row-key="id" > <el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="10" /> <el-table-column align="center" :label="$t('sorter.startstatus')" min-width="80" min-width="10" prop="enableState" > <template #default="scope"> @@ -151,9 +332,29 @@ </el-tag> </template> </el-table-column> <el-table-column prop="remainWidth" align="center" :label="$t('sorter.remainWidth')" min-width="80" /> </el-table> </div> <el-table-column> <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"> <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> </template> </el-table-column> </el-table> </template> </el-table-column> </el-table> </div> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;margin-top: 15px;"> <el-table height="90" ref="table" @selection-change="handleSelectionChange" @@ -219,6 +420,94 @@ </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="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('sorter.place')" min-width="80" prop="inPlace" > <template #default="scope"> <el-tag :type="scope.row.inPlace === 1 ? 'success' : 'warning'" > {{ scope.row.inPlace === 1 ? $t('sorter.inPlace') : $t('sorter.ninPlace') }} </el-tag> </template> </el-table-column> <el-table-column align="center" :label="$t('sorter.taskRunning')" min-width="80" prop="taskRunning" > <template #default="scope"> <el-tag :type="getStatusTypea(scope.row.taskRunning)"> {{ getStatusTexta(scope.row.taskRunning) }} </el-tag> </template> </el-table-column> <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 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> </template> <style scoped> #dt { display:block; float:left;line-height: 20px;margin-left: 100px;}