UI-Project/src/lang/zh.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/layout/MainErpView.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/utils/WebSocketService.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/views/GlassStorage/MaterialRackManagement.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/views/Identify/identify.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/views/PurchaseReturn/purchaseStorage.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/views/ReportWork/reportWork.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
UI-Project/src/views/Slicecage/slicecage.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
UI-Project/src/lang/zh.js
@@ -212,6 +212,8 @@ layoutnumber:'钢化版图号', numberglasses:'玻璃数量', specifytemperinga:'是否指定钢化该条信息?', temperedswitch:'钢化开关', dutyinformation:'值班信息', }, workOrder:{ glassID:'玻璃ID', @@ -453,11 +455,17 @@ number :'序号', layer :'层', typebreakage :'破损类型', ptypebreakage :' 请选择破损类型', causebreakage :'破损原因', pcausebreakage :'请选择破损原因', responsibleprocess :'责任工序', responsiblepersonnel :'责任人员', presponsiblepersonnel :'请输入责任人员', responsibleteam :'责任班组', presponsibleteam :'请选择责任班组', responsibleequipment :'责任设备', presponsibleequipment :'请选择责任设备', remark :'备注', premark :'请输入备注', }, } UI-Project/src/layout/MainErpView.vue
@@ -168,7 +168,7 @@ <img src="../assets/northGlass.ico" alt="" style="max-width: 100%;max-height: 100%"> <h3 style="margin: 1rem ;font-weight: bold;width: 33vw;"> {{ $t('main.titleFirst') }}{{ user }}{{ $t('main.titleLast') }}</h3> <h3 style="margin: 1rem ;font-weight: bold;width: 33vw;"> {{ $t('main.titleFirst') }}{{ userName }}{{ $t('main.titleLast') }}</h3> <!-- <div class="header-left"> <el-button :icon="isCollapse ? 'el-icon-s-unfold' : 'el-icon-s-fold'" @click="toggleCollapse" style="height:30px;"></el-button> UI-Project/src/utils/WebSocketService.js
@@ -1,8 +1,8 @@ // WebSocketService.js let socket = null; let messages='' ; export const initializeWebSocket = (socketUrl, messageHandler) => { let messages='' ; if (typeof WebSocket === "undefined") { console.log("Your browser does not support WebSocket"); return null; UI-Project/src/views/GlassStorage/MaterialRackManagement.vue
@@ -20,20 +20,20 @@ <el-dialog v-model="Hidden" top="10vh" width="80%" > <el-table :data="tableData" v-model="dialogVisible3" style="width: 98%; height: 200px" style="width: 98%; height: 500px" @selection-change="handleSelectionChange" :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }" ref="table" empty-text="No Data" > <el-table-column prop="location" label="库位号"></el-table-column> <el-table-column prop="type" label="类型"></el-table-column> <el-table-column prop="length" label="长度(mm)"></el-table-column> <el-table-column prop="height" label="高度(mm)"></el-table-column> <el-table-column prop="thickness" label="厚度(mm)"></el-table-column> <el-table-column prop="quantity" label="数量"></el-table-column> <el-table-column prop="entry_time" label="入库时间"></el-table-column> <el-table-column prop="batchnumber" label="批次号"></el-table-column> <el-table-column prop="location" align="center" label="库位号"></el-table-column> <el-table-column prop="type" align="center" label="类型"></el-table-column> <el-table-column prop="length" align="center" label="长度(mm)"></el-table-column> <el-table-column prop="height" align="center" label="高度(mm)"></el-table-column> <el-table-column prop="thickness" align="center" label="厚度(mm)"></el-table-column> <el-table-column prop="quantity" align="center" label="数量"></el-table-column> <el-table-column prop="entry_time" align="center" min-width="180" label="入库时间"></el-table-column> <el-table-column prop="batchnumber" align="center" label="批次号"></el-table-column> <el-table-column align="center" label="料架状态" @@ -47,7 +47,7 @@ </template> </el-table-column> <!-- 操作列 --> <el-table-column label="操作" width="250"> <el-table-column label="操作" align="center" width="250"> <template #default="{ row }"> <el-button type="primary" size="mini" @click="edithandleRowClick(row)">修改</el-button> <el-button type="danger" size="mini" @click="handleDelete(row)">删除</el-button> UI-Project/src/views/Identify/identify.vue
@@ -182,10 +182,7 @@ }); } const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/cacheGlass`; // 定义消息处理函数,更新 receivedData 变量 const handleMessage = (data) => { // 更新 tableData 的数据 // adjustedRects.value = data.currentCutTerritory[0] adjustedRects.value = data.currentCutTerritory[0].map(rect => ({ ...rect, // 复制原始对象的其他属性 UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -28,20 +28,27 @@ if(data.intoGlass!=null){ adjustedRects1.value = data.intoGlass[0].map(rect => { console.log( adjustedRects1.value); let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta; let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; let newX = rect.yCoordinate; if (rect.width < rect.height) { widtha = rect.height; heighta = rect.width; }else { widtha = rect.width; heighta = rect.height; } if (rect.angle === 0) { adjustedWidth = rect.height * 0.12; adjustedHeight = rect.width * 0.1; adjustedWidtha = rect.height; adjustedHeighta = rect.width; newX = 5087 - (rect.xCoordinate + rect.height); adjustedWidth = heighta * 0.12; adjustedHeight = widtha * 0.1; adjustedWidtha = heighta; adjustedHeighta = widtha; newX = 5087 - (rect.xCoordinate + heighta); } else { adjustedWidth = rect.width * 0.12; adjustedHeight = rect.height * 0.1; adjustedWidtha = rect.width; adjustedHeighta = rect.height; newX = 5087 - (rect.xCoordinate + rect.width); adjustedWidth = widtha * 0.12; adjustedHeight = heighta * 0.1; adjustedWidtha = widtha; adjustedHeighta = heighta; newX = 5087 - (rect.xCoordinate + widtha); } return { ...rect, @@ -59,20 +66,27 @@ if(data.intoGlass2!=null){ adjustedRects2.value = data.intoGlass2[0].map(rect => { console.log( adjustedRects2.value); let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta; let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; let newX = rect.yCoordinate; if (rect.width < rect.height) { widtha = rect.height; heighta = rect.width; }else { widtha = rect.width; heighta = rect.height; } if (rect.angle === 0) { adjustedWidth = rect.height * 0.12; adjustedHeight = rect.width * 0.1; adjustedWidtha = rect.height; adjustedHeighta = rect.width; newX = 5087 - (rect.xCoordinate + rect.height); adjustedWidth = heighta * 0.12; adjustedHeight = widtha * 0.1; adjustedWidtha = heighta; adjustedHeighta = widtha; newX = 5087 - (rect.xCoordinate + heighta); } else { adjustedWidth = rect.width * 0.12; adjustedHeight = rect.height * 0.1; adjustedWidtha = rect.width; adjustedHeighta = rect.height; newX = 5087 - (rect.xCoordinate + rect.width); adjustedWidth = widtha * 0.12; adjustedHeight = heighta * 0.1; adjustedWidtha = widtha; adjustedHeighta = heighta; newX = 5087 - (rect.xCoordinate + widtha); } return { ...rect, @@ -90,20 +104,27 @@ // 进炉前 if(data.waitingGlass!=null){ adjustedRectsa.value = data.waitingGlass[0].map(rect => { let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta; let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; let newX = rect.yCoordinate; if (rect.width < rect.height) { widtha = rect.height; heighta = rect.width; }else { widtha = rect.width; heighta = rect.height; } if (rect.angle === 0) { adjustedWidth = rect.width * 0.24; adjustedHeight = rect.height * 0.16; adjustedWidtha = rect.width; adjustedHeighta = rect.height; newX = 5190 - (rect.yCoordinate + rect.width); adjustedWidth = widtha * 0.24; adjustedHeight = heighta * 0.16; adjustedWidtha = widtha; adjustedHeighta = heighta; newX = 5190 - (rect.yCoordinate + widtha); } else { adjustedWidth = rect.height * 0.24; adjustedHeight = rect.width * 0.16; adjustedWidtha = rect.height; adjustedHeighta = rect.width; newX = 5190 - (rect.yCoordinate + rect.height); adjustedWidth = heighta * 0.24; adjustedHeight = widtha * 0.16; adjustedWidtha = heighta; adjustedHeighta = widtha; newX = 5190 - (rect.yCoordinate + heighta); } return { ...rect, @@ -121,20 +142,27 @@ // 已出炉 if(data.outGlass!=null){ adjustedRectsb.value = data.outGlass[0].map(rect => { let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta; let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; let newX = rect.yCoordinate; if (rect.width < rect.height) { widtha = rect.height; heighta = rect.width; }else { widtha = rect.width; heighta = rect.height; } if (rect.angle === 0) { adjustedWidth = rect.width * 0.24; adjustedHeight = rect.height * 0.16; adjustedWidtha = rect.width; adjustedHeighta = rect.height; // newX = 5190 - (rect.yCoordinate + rect.width); adjustedWidth = widtha * 0.24; adjustedHeight = heighta * 0.16; adjustedWidtha = widtha; adjustedHeighta = heighta; // newX = 5190 - (rect.yCoordinate + widtha); } else { adjustedWidth = rect.height * 0.24; adjustedHeight = rect.width * 0.16; adjustedWidtha = rect.height; adjustedHeighta = rect.width; // newX = 5190 - (rect.yCoordinate + rect.height); adjustedWidth = heighta * 0.24; adjustedHeight = widtha * 0.16; adjustedWidtha = heighta; adjustedHeighta = widtha; // newX = 5190 - (rect.yCoordinate + heighta); } return { ...rect, // 复制原始对象的其他属性 UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -36,20 +36,27 @@ // 更新 tableData 的数据 if(data.overGlass!=null){ adjustedRects.value = data.overGlass[0].map(rect => { let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta; let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta; let newX = rect.yCoordinate; if (rect.angle === 0) { adjustedWidth = rect.width * 0.24; adjustedHeight = rect.height * 0.16; adjustedWidtha = rect.width; adjustedHeighta = rect.height; // newX = 5190 - (rect.yCoordinate + rect.width); if (rect.width < rect.height) { widtha = rect.height; heighta = rect.width; }else { widtha = rect.width; heighta = rect.height; } if (rect.angle === 0) { adjustedWidth = widtha * 0.24; adjustedHeight = heighta * 0.16; adjustedWidtha = widtha; adjustedHeighta = heighta; // newX = 5190 - (rect.yCoordinate + rect.width); } else { adjustedWidth = rect.height * 0.24; adjustedHeight = rect.width * 0.16; adjustedWidtha = rect.height; adjustedHeighta = rect.width; // newX = 5190 - (rect.yCoordinate + rect.height); adjustedWidth = heighta * 0.24; adjustedHeight = widtha * 0.16; adjustedWidtha = heighta; adjustedHeighta = widtha; // newX = 5190 - (rect.yCoordinate + rect.height); } return { ...rect, UI-Project/src/views/ReportWork/reportWork.vue
@@ -23,7 +23,7 @@ <el-option :label="$t('reportmanage.steel')" value="3"></el-option> </el-select> <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('reportmanage.inquire') }}</el-button> <el-button type="success" style="margin-left: 10px;" >{{ $t('reportmanage.signingwork') }}</el-button> <el-button type="success" style="margin-left: 10px;" @click="handleConfirm">{{ $t('reportmanage.signingwork') }}</el-button> </div> <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;"> @@ -33,22 +33,102 @@ <el-table-column prop="deviceName" align="center" :label="$t('reportmanage.reportingequipment')" min-width="120" /> <el-table-column prop="line" align="center" :label="$t('reportmanage.line')" min-width="120" /> <el-table-column prop="workingProcedure" align="center" :label="$t('reportmanage.process')" min-width="120" /> <el-table-column prop="glassId" align="center" :label="$t('reportmanage.glassID')" min-width="120" /> <el-table-column prop="glassId" align="center" :label="$t('reportmanage.glassID')" min-width="130" /> <el-table-column prop="engineerId" align="center" :label="$t('reportmanage.projectnumber')" min-width="120" /> <el-table-column prop="temperingLayoutId" align="center" :label="$t('reportmanage.layoutID')" min-width="120" /> <el-table-column prop="damageTime" align="center" :label="$t('reportmanage.productiontime')" min-width="120" /> <el-table-column prop="damageTime" align="center" :label="$t('reportmanage.productiontime')" min-width="230" /> <el-table-column prop="type" align="center" :label="$t('reportmanage.type')" min-width="120" /> <el-table-column prop="status" align="center" :label="$t('reportmanage.state')" min-width="120" /> <el-table-column prop="processId" align="center" :label="$t('reportmanage.processcards')" min-width="120" /> <el-table-column prop="processId" align="center" :label="$t('reportmanage.processcards')" min-width="140" /> <el-table-column prop="orderNumber" align="center" :label="$t('reportmanage.number')" min-width="120" /> <el-table-column prop="technologyNumber" align="center" :label="$t('reportmanage.layer')" min-width="120" /> <el-table-column prop="breakageType" align="center" :label="$t('reportmanage.typebreakage')" min-width="120" /> <el-table-column prop="breakageReason" align="center" :label="$t('reportmanage.causebreakage')" min-width="120" /> <el-table-column prop="responsibleProcess" align="center" :label="$t('reportmanage.responsibleprocess')" min-width="120" /> <el-table-column prop="responsiblePersonnel" align="center" :label="$t('reportmanage.responsiblepersonnel')" min-width="120" /> <el-table-column prop="responsibleTeam" align="center" :label="$t('reportmanage.responsibleteam')" min-width="120" /> <el-table-column prop="responsibleEquipment" align="center" :label="$t('reportmanage.responsibleequipment')" min-width="120" /> <el-table-column prop="remark" align="center" :label="$t('reportmanage.remark')" min-width="120" /> <el-table-column prop="breakageType" align="center" :label="$t('reportmanage.typebreakage')" min-width="180"> <template #default="{ row }"> <el-select v-model="selectValuesa[row.id]" filterable :placeholder="$t('reportmanage.pcausebreakage')" clearable @input="handleInputChangea($event, row.id)" > <el-option v-for="item in selectOptionsa" :key="item.basicName" :label="item.basicName" :value="item.basicName" /> </el-select> </template> </el-table-column> <el-table-column prop="breakageReason" align="center" :label="$t('reportmanage.causebreakage')" min-width="180"> <template #default="{ row }"> <el-select v-model="selectValuesb[row.id]" filterable :placeholder="$t('reportmanage.ptypebreakage')" clearable @input="handleInputChangea($event, row.id)" > <el-option v-for="item in selectOptionsb" :key="item.basicName" :label="item.basicName" :value="item.basicName" /> </el-select> </template> </el-table-column> <el-table-column align="center" :label="$t('reportmanage.responsibleprocess')" min-width="120"> <template #default="{ row }"> <span>{{ '切割磨边钢化' }}</span> </template> </el-table-column> <el-table-column prop="responsiblePersonnel" align="center" :label="$t('reportmanage.responsiblepersonnel')" min-width="180"> <template #default="{ row }"> <el-input :placeholder="$t('reportmanage.presponsiblepersonnel')" v-model="inputValuesa[row.id]" autocomplete="off" /> </template> </el-table-column> <el-table-column prop="responsibleTeam" align="center" :label="$t('reportmanage.responsibleteam')" min-width="180"> <template #default="{ row }"> <el-select v-model="selectValuesc[row.id]" filterable :placeholder="$t('reportmanage.presponsibleteam')" clearable @input="handleInputChangea($event, row.id)" > <el-option v-for="item in selectOptionsc" :key="item.basicName" :label="item.basicName" :value="item.basicName" /> </el-select> </template> </el-table-column> <el-table-column prop="responsibleEquipment" align="center" :label="$t('reportmanage.responsibleequipment')" min-width="180"> <template #default="{ row }"> <el-select v-model="selectValuesd[row.id]" filterable :placeholder="$t('reportmanage.presponsibleequipment')" clearable @input="handleInputChangea($event, row.id)" > <el-option v-for="item in selectOptionsd" :key="item.basicName" :label="item.basicName" :value="item.basicName" /> </el-select> </template> </el-table-column> <el-table-column prop="remark" align="center" :label="$t('reportmanage.remark')" min-width="180"> <template #default="{ row }"> <el-input :placeholder="$t('reportmanage.premark')" v-model="inputValuesb[row.id]" autocomplete="off" /> </template> </el-table-column> </el-table> </div> </el-card> @@ -70,6 +150,16 @@ }); const reportData = ref([]) const timeRange = ref(["2022-01-01", "2025-01-01"]) const selectOptionsa = ref([]); const selectOptionsb = ref([]); const selectOptionsc = ref([]); const selectOptionsd = ref([]); const selectValuesa = reactive({}); const selectValuesb = reactive({}); const selectValuesc = reactive({}); const selectValuesd = reactive({}); const inputValuesa = reactive({}); const inputValuesb = reactive({}); // 查询数据 @@ -96,7 +186,44 @@ status:"2" }) }; // 报工 const handleConfirm = async () => { const response = await request.post("/cacheVerticalGlass/damage/submitDamage", reportData.value) if (response.code === 200) { ElMessage.success(response.message); } else { ElMessage.error(response.message); } }; const fetchTableData = async () => { try { const response = await request.post('/cacheVerticalGlass/basic_data_produce/selectBasicDataProduceGroup'); if (response.code == 200) { selectOptionsa.value = response.data.breakagetype.filter(item => item !== null) .map(item => ({ basicName: item.basicName })); selectOptionsb.value = response.data.breakagereason.filter(item => item !== null) .map(item => ({ basicName: item.basicName })); selectOptionsc.value = response.data.teamsgroups.filter(item => item !== null) .map(item => ({ basicName: item.basicName })); selectOptionsd.value = response.data.device.filter(item => item !== null) .map(item => ({ basicName: item.basicName })); } else { ElMessage.warning(response.data); } } catch (error) { console.error('Error fetching options:', error); } }; const handleInputChangea = (value, rowId) => { // 更新对应行的 select 值 selectValuesa[rowId] = value; selectValuesb[rowId] = value; selectValuesc[rowId] = value; selectValuesd[rowId] = value; inputValuesa[rowId] = value; inputValuesb[rowId] = value; }; fetchTableData(); const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/screen`; const handleMessage = (data) => { // adjustedRects.value = data.device[0].map(rect => ({ @@ -126,7 +253,7 @@ onMounted(() => { // fetchFlowCardId(); // fetchTableData(); // 获取数据 fetchTableData(); initializeWebSocket(socketUrl, handleMessage); }); onBeforeUnmount(() => { UI-Project/src/views/Slicecage/slicecage.vue
@@ -510,8 +510,24 @@ console.error('发生错误:', error); } }; // const handleBindRack = (row) => { // fetchFlowCardId(); // dialogFormVisiblea.value = true; // 打开绑定架子对话框 // }; const fetchFlowCardId = async () => { try { const response = await request.get('unLoadGlass/downWorkStation/getflowCardId'); console.log(response) if (response.code === 200) { } else { ElMessage.error(response.msg); } } catch (error) { console.error(error); } }; function handleRowClick(row) { selectedRow.value = row; // 更新选中的行数据 } @@ -544,11 +560,16 @@ if(data.bigStorageCageDetailsOutTask!=null){ tableDatac.value = data.bigStorageCageDetailsOutTask[0] adjusta.value = data.bigStorageCageDetailsOutTask[0].filter(rect => rect.slot !== null && rect.slot !== undefined); } else { tableDatac.value = '', adjusta.value = '' } if(data.bigStorageCageDetailsFeedTask!=null){ tableDatad.value = data.bigStorageCageDetailsFeedTask[0] adjust.value = data.bigStorageCageDetailsFeedTask[0].filter(rect => rect.slot !== null && rect.slot !== undefined); } }else{ tableDatad.value = '' } // adjust.value = data.bigStorageCageDetailsFeedTask[0].map(rect => ({ // ...rect, @@ -559,19 +580,29 @@ // }); if(data.bigStorageCageInfo!=null){ tableData.value = data.bigStorageCageInfo[0] } }else{ tableData.value = '' } if(data.temperingGlassInfoList!=null){ tableDatab.value = data.temperingGlassInfoList[0] } }else{ tableDatab.value = '' } if(data.bigStorageCageUsage!=null){ tableDatae.value = data.bigStorageCageUsage[0] } }else{ tableDatae.value = '' } if(data.carPostion!=null){ carPosition.value = data.carPostion[0] } }else{ carPosition.value = '' } if(data.temperingSwitch!=null){ ganghua.value = data.temperingSwitch[0] } }else{ ganghua.value = '' } console.log(data.temperingSwitch[0]); if(data.bigStorageCageInfos!=null){ window.localStorage.setItem('length', data.bigStorageCageInfos[0][1].length) @@ -621,6 +652,8 @@ height: 20/length, top: 29/length })); }else{ adjustedRects.value = '' } @@ -691,8 +724,9 @@ <div style="height: 600px;"> <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary" @click="dialogFormVisiblea = true">{{ $t('searchOrder.cageinformation') }}</el-button> <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="success" @click="dialogFormVisibleb = true">{{ $t('searchOrder.productionqueue') }}</el-button> <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="info" @click="dialogFormVisiblec = true">{{ $t('searchOrder.temperingqueries') }}</el-button> <el-switch style="margin-top: 5px;margin-left: 10px;" v-model="ganghua" class="mb-2" inactive-text="钢化开关" @change="handleChange" /> <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="warning" @click="dialogFormVisiblec = true">{{ $t('searchOrder.temperingqueries') }}</el-button> <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="info" @click="dialogFormVisiblec = true">{{ $t('searchOrder.dutyinformation') }}</el-button> <el-switch style="margin-top: 5px;margin-left: 10px;" v-model="ganghua" class="mb-2" :inactive-text="$t('searchOrder.temperedswitch')" @change="handleChange" /> <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading"> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;"> <el-table height="100px" ref="table"