上片机手动状态接口、bug,理片笼模块新增表格,中空理片笼小片恢复
| | |
| | | takeon:'The arrangement is complete', |
| | | }, |
| | | searchOrder:{ |
| | | totallogarithms:'总对数', |
| | | numberpairs:'配对数', |
| | | numberoccupied:'占用格子数', |
| | | totalfurnaces:'总炉数', |
| | | cagesnumber:'笼内数量', |
| | | slotnumber:'占有格子数', |
| | | progress:'进度', |
| | | temperingpriority:'钢化优先级', |
| | | whethersame:'是否相同', |
| | | same:'相同', |
| | | notsame:'不相同', |
| | |
| | | basicData: { |
| | | rackreset:'架子复位', |
| | | prackreset:'是否架子复位?', |
| | | deletemessage: 'Удалить эту информацию или нет?', |
| | | laserprinting: 'Машина лазерной маркировки готова:', |
| | | cuttingmachine: 'Машина для резки готова:', |
| | | machine: 'Состояние станок загрузки в режиме онлайн:', |
| | |
| | | takeaway: 'Взять вручную', |
| | | }, |
| | | searchOrder: { |
| | | totallogarithms:'总对数', |
| | | numberpairs:'配对数', |
| | | numberoccupied:'占用格子数', |
| | | totalfurnaces:'总炉数', |
| | | cagesnumber:'笼内数量', |
| | | slotnumber:'占有格子数', |
| | | progress:'进度', |
| | | temperingpriority:'钢化优先级', |
| | | whethersame:'是否相同', |
| | | same:'相同', |
| | | notsame:'不相同', |
| | |
| | | takeon:'摆片完成', |
| | | }, |
| | | searchOrder:{ |
| | | totallogarithms:'总对数', |
| | | numberpairs:'配对数', |
| | | numberoccupied:'占用格子数', |
| | | totalfurnaces:'总炉数', |
| | | cagesnumber:'笼内数量', |
| | | slotnumber:'占有格子数', |
| | | progress:'进度', |
| | | temperingpriority:'钢化优先级', |
| | | whethersame:'是否相同', |
| | | same:'相同', |
| | | notsame:'不相同', |
| | |
| | | window.localStorage.setItem('engineeringIda', tableData[0].engineeringId) |
| | | } |
| | | } catch (error) { |
| | | ElMessage.error(response.message); |
| | | // ElMessage.error(response.message); |
| | | } |
| | | }; |
| | | let socket = null; |
| | | const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`; |
| | | const handleMessage = (data: any) => { |
| | | if (data.LoadOneState != null) { |
| | | cuttingMachineStatusColor.value = data.LoadOneState[0] == 1 ? 'green' : '#911005'; |
| | | } |
| | | if (data.list!=null) { |
| | | tableDataa.value = data.list[0].slice(0, 2); |
| | | if(data.loadTask1.length !=0){ |
| | | }else { |
| | | tableDataa.value = '' |
| | | } |
| | | if(data.loadTask1!=null){ |
| | | tableData.value = data.loadTask1[0] |
| | | window.localStorage.setItem('engineeringIda', tableData.value[0].engineeringId) |
| | | canSelectProjecta.value = false; |
| | |
| | | const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`; |
| | | const handleMessage = (data: any) => { |
| | | tableDataa.value = data.list[0].slice(2, 4); |
| | | if(data.loadTask2.length !=0){ |
| | | if (data.list!=null) { |
| | | tableDataa.value = data.list[0].slice(2, 4); |
| | | }else { |
| | | tableDataa.value = '' |
| | | } |
| | | if (data.LoadTwoervice != null) { |
| | | cuttingMachineStatusColor.value = data.LoadTwoervice[0] == 1 ? 'green' : '#911005'; |
| | | } |
| | | if(data.loadTask2!=null){ |
| | | // tableData.splice(0, tableData.length, ...data.loadTask2[0]); |
| | | tableData.value = data.loadTask2[0] |
| | | window.localStorage.setItem('engineeringIda', tableData.value[0].engineeringId) |
| | |
| | | </el-button> |
| | | <div style="margin-left: 70px;">{{ upstatus }}</div> |
| | | <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i> |
| | | <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;">{{ |
| | | $t('basicData.change') |
| | | }} |
| | | </el-button> |
| | | </div> |
| | | <el-button :disabled="!canSelectProjecta" style="margin-top: 5px;margin-left: 15px;" type="primary" @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button> |
| | | <el-button :disabled="!canSelectProjectb" style="margin-top: 5px;margin-left: 20px;" type="success" @click="handleBind">{{ $t('basicData.startloading') }}</el-button> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-card style="flex: 1;margin-left: 1220px;margin-top: -510px;" v-loading="loading"> |
| | | <div style="width: 100%; height: calc(100% - 35px); overflow-y: auto;max-height: 420px;"> |
| | | <el-table height="420px" ref="table" border |
| | | :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="glassId" align="center" :label="$t('Mounting.project')" min-width="140" /> |
| | | <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.totalfurnaces')" min-width="120" /> |
| | | <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.cagesnumber')" min-width="120" /> |
| | | <el-table-column prop="targetSlot" align="center" :label="$t('large.are')" min-width="120" /> |
| | | <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.fullfurnaces')" min-width="120" /> |
| | | <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.slotnumber')" min-width="120" /> |
| | | <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.progress')" min-width="120" /> |
| | | <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.temperingpriority')" min-width="120" /> |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | | |
| | | </div> |
| | | <el-dialog v-model="add" top="10vh" width="70%" :title="$t('searchOrder.addcage')" > |
| | | <div style="margin-bottom: 20px"> |
| | |
| | | const dialogFormVisibled = ref(false) |
| | | const dialogFormVisiblee = ref(false) |
| | | const add = ref(false) |
| | | const adda = ref(false) |
| | | const adda = ref(false) |
| | | const currentPage2 = ref(1) |
| | | const currentRow = reactive({}); |
| | | const formattedProcessType = ref([]); |
| | |
| | | const rectStyle = (rect, index) => ({ |
| | | position: 'absolute', |
| | | width: '170px', |
| | | right: '0px', |
| | | left: '0px', |
| | | top: `${index*rect.top}px`, |
| | | height: `${rect.height}px`, |
| | | }); |
| | |
| | | // 计算每个小矩形的样式 |
| | | const subRectStyle = (rectIndex, subIndex) => { |
| | | const width = '18px'; |
| | | const marginRight = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginRight)); |
| | | const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`; |
| | | const marginLeft = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft)); |
| | | const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`; |
| | | return { |
| | | position: 'absolute', |
| | | width, |
| | | height: '100%', |
| | | marginRight, |
| | | marginLeft, |
| | | top: '0px', |
| | | backgroundColor: '#911005', |
| | | right, |
| | | left, |
| | | }; |
| | | }; |
| | | // 计算每个大矩形的样式 |
| | | const rectStylea = (rect, index) => ({ |
| | | position: 'absolute', |
| | | width: '170px', |
| | | right: '0px', |
| | | left: '0px', |
| | | top: `${index*rect.top}px`, |
| | | height: `${rect.height}px`, |
| | | }); |
| | |
| | | // 计算每个小矩形的样式 |
| | | const subRectStylea = (rectIndex, subIndex) => { |
| | | const width = '18px'; |
| | | const marginRight = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginRight)); |
| | | const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`; |
| | | const marginLeft = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft)); |
| | | const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`; |
| | | return { |
| | | position: 'absolute', |
| | | width, |
| | | height: '100%', |
| | | marginRight, |
| | | marginLeft, |
| | | top: '0px', |
| | | backgroundColor: '#911005', |
| | | right, |
| | | left, |
| | | }; |
| | | }; |
| | | // 计算每个大矩形的样式 |
| | | const rectStyleb = (rect, index) => ({ |
| | | position: 'absolute', |
| | | width: '170px', |
| | | right: '0px', |
| | | left: '0px', |
| | | top: `${index*rect.top}px`, |
| | | height: `${rect.height}px`, |
| | | }); |
| | |
| | | // 计算每个小矩形的样式 |
| | | const subRectStyleb = (rectIndex, subIndex) => { |
| | | const width = '18px'; |
| | | const marginRight = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginRight)); |
| | | const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`; |
| | | const marginLeft = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft)); |
| | | const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`; |
| | | return { |
| | | position: 'absolute', |
| | | width, |
| | | height: '100%', |
| | | marginRight, |
| | | marginLeft, |
| | | top: '0px', |
| | | backgroundColor: '#911005', |
| | | right, |
| | | left, |
| | | }; |
| | | }; |
| | | // 计算每个大矩形的样式 |
| | | const rectStylec = (rect, index) => ({ |
| | | position: 'absolute', |
| | | width: '170px', |
| | | right: '0px', |
| | | left: '0px', |
| | | top: `${index*rect.top}px`, |
| | | height: `${rect.height}px`, |
| | | }); |
| | |
| | | // 计算每个小矩形的样式 |
| | | const subRectStylec = (rectIndex, subIndex) => { |
| | | const width = '18px'; |
| | | const marginRight = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginRight)); |
| | | const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`; |
| | | const marginLeft = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft)); |
| | | const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`; |
| | | return { |
| | | position: 'absolute', |
| | | width, |
| | | height: '100%', |
| | | marginRight, |
| | | marginLeft, |
| | | top: '0px', |
| | | backgroundColor: '#911005', |
| | | right, |
| | | left, |
| | | }; |
| | | }; |
| | | // 计算每个大矩形的样式 |
| | | const rectStyled = (rect, index) => ({ |
| | | position: 'absolute', |
| | | width: '170px', |
| | | right: '0px', |
| | | left: '0px', |
| | | top: `${index*rect.top}px`, |
| | | height: `${rect.height}px`, |
| | | }); |
| | |
| | | // 计算每个小矩形的样式 |
| | | const subRectStyled = (rectIndex, subIndex) => { |
| | | const width = '18px'; |
| | | const marginRight = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginRight)); |
| | | const right = `${(subIndex * (parseInt(width) + parseInt(marginRight))) / totalWidth * 100}%`; |
| | | const marginLeft = '8px'; |
| | | const totalWidth = 6 * (parseInt(width) + parseInt(marginLeft)); |
| | | const left = `${(subIndex * (parseInt(width) + parseInt(marginLeft))) / totalWidth * 100}%`; |
| | | return { |
| | | position: 'absolute', |
| | | width, |
| | |
| | | marginLeft, |
| | | top: '0px', |
| | | backgroundColor: '#911005', |
| | | right, |
| | | left, |
| | | }; |
| | | }; |
| | | onMounted(() => { |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-card style="flex: 1;margin-left: 1020px;margin-top: -670px;" v-loading="loading"> |
| | | <div style="width: 100%; height: calc(100% - 35px); overflow-y: auto;max-height: 550px;"> |
| | | <el-table height="550px" ref="table" border |
| | | :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="glassId" align="center" :label="$t('searchOrder.cardnumber')" min-width="140" /> |
| | | <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.totallogarithms')" min-width="120" /> |
| | | <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.numberpairs')" min-width="120" /> |
| | | <el-table-column prop="targetSlot" align="center" :label="$t('hellow.totalnumber')" min-width="120" /> |
| | | <el-table-column prop="startSlot" align="center" :label="$t('hellow.realpieces')" min-width="120" /> |
| | | <el-table-column prop="startSlot" align="center" :label="$t('searchOrder.numberoccupied')" min-width="120" /> |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <!-- 添加理片笼信息 --> |
| | | <el-dialog v-model="add" top="10vh" width="70%" :title="$t('searchOrder.addcage')" > |