You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
431 lines
14 KiB
431 lines
14 KiB
<template> |
|
<el-dialog title="打印预览" append-to-body :modelValue="showPrint" fullscreen width="85%" |
|
@close="closeDialog"> |
|
<el-button v-print="printConfig" type="primary" class="printButton no-print">打 印</el-button> |
|
<div id="printMe" ref="printContent" class="printBox"> |
|
|
|
<div class="fixTopLeft">JONHON受控</div> |
|
<div class="printTitle">热表分厂质量记录卡</div> |
|
<div class="tableNo">表号:</div> |
|
|
|
<table v-loading="loading" id="cus-table" cellspacing="0" style="width:100%"> |
|
<tbody> |
|
<tr> |
|
<td colspan="3">订单号</td> |
|
<td colspan="2">{{ prWorkOrder.woCode }}</td> |
|
<td colspan="3">玻璃饼号</td> |
|
<td colspan="2">{{ dsPart.partName }}</td> |
|
<td colspan="2">批次号</td> |
|
<td colspan="2">{{ prWorkOrder.batchNo }}</td> |
|
</tr> |
|
<tr> |
|
<td colspan="3">数量</td> |
|
<td colspan="2">{{ prWorkOrder.pjYieldOrder.poQty }}</td> |
|
<td colspan="3">成型厚度(mm)</td> |
|
<td colspan="2">{{ dsPart.formingThickness }}</td> |
|
<td colspan="2">粉重(g)</td> |
|
<td colspan="2">{{ dsPart.powderWeight }}</td> |
|
</tr> |
|
<!-- 生产过程 --> |
|
<tr> |
|
<td colspan="14" style="font-size:19px">生产过程</td> |
|
</tr> |
|
<tr> |
|
<td>序号</td> |
|
<td>工序</td> |
|
<td colspan="12">内容</td> |
|
</tr> |
|
<template v-for="(prWpItem,prWpIndex) in prWorkPlanList" :key="prWpIndex"> |
|
<tr> |
|
<td v-if="prWpItem.procedureSet.ppsName == '玻璃饼压制'" :rowspan="prWpItem.totalPrList+2">{{ prWpItem.orders }}</td> |
|
<td v-if="prWpItem.procedureSet.ppsName == '玻璃饼压制'" :rowspan="prWpItem.totalPrList+2">{{ prWpItem.procedureSet.ppsName }}</td> |
|
<td v-if="prWpItem.procedureSet.ppsName == '玻璃饼振光'" :rowspan="3">{{ prWpItem.orders }}</td> |
|
<td v-if="prWpItem.procedureSet.ppsName == '玻璃饼振光'" :rowspan="3">{{ prWpItem.procedureSet.ppsName }}</td> |
|
<td v-if="prWpItem.procedureSet.ppsName == '玻璃饼排蜡玻化' || prWpItem.procedureSet.ppsName == '玻璃饼印字'" :rowspan="prWpItem.totalPrList+2">{{ prWpItem.orders }}</td> |
|
<td v-if="prWpItem.procedureSet.ppsName == '玻璃饼排蜡玻化' || prWpItem.procedureSet.ppsName == '玻璃饼印字'" :rowspan="prWpItem.totalPrList+2">{{ prWpItem.procedureSet.ppsName }}</td> |
|
<td v-if="prWpItem.procedureSet.ppsName == '玻璃封接零件检验'" :rowspan="prWpItem.printChildCheck != null ? prWpItem.printChildCheck.length+3:2">{{ prWpItem.orders }}</td> |
|
<td v-if="prWpItem.procedureSet.ppsName == '玻璃封接零件检验'" :rowspan="prWpItem.printChildCheck != null ? prWpItem.printChildCheck.length+3:2">{{ prWpItem.procedureSet.ppsName }}</td> |
|
</tr> |
|
<template v-if="prWpItem.procedureSet.ppsName == '玻璃饼压制'"> |
|
<tr :key="prWpIndex+Math.floor(Math.random()*100000)+1"> |
|
<td colspan="3">玻璃粉牌号</td> |
|
<td colspan="3">玻璃粉检验编号</td> |
|
<td colspan="2">制饼粉重(g)</td> |
|
<td colspan="2">模具编号</td> |
|
<td>设备编号</td> |
|
<td>操作者</td> |
|
</tr> |
|
<tr v-if="prWpItem != null && prWpItem.prList != null" :key="prWpIndex+Math.floor(Math.random()*100000)+1"> |
|
<td colspan="3">{{ prWpItem.prList[0] ? prWpItem.prList[0].dataFour:'' }}</td> |
|
<td colspan="3">{{ prWpItem.prList[0] ? prWpItem.prList[0].dataFive:'' }}</td> |
|
<td colspan="2">{{ prWpItem.prList[0] ? prWpItem.prList[0].dataSix:'' }}</td> |
|
<td colspan="2">{{ prWpItem.prList[0] ? prWpItem.prList[0].dataSeven:'' }}</td> |
|
<td>{{ prWpItem.prList[0] ? prWpItem.prList[0].deviceId:"" }}</td> |
|
<td>{{ prWpItem.prList[0] ? prWpItem.prList[0].createMan.userName:"" }}</td> |
|
</tr> |
|
</template> |
|
<template v-else-if="prWpItem.procedureSet.ppsName == '玻璃饼排蜡玻化'"> |
|
<tr :key="prWpIndex+Math.floor(Math.random()*100000)+1"> |
|
<td>数量</td> |
|
<td colspan="3">玻化温度(℃)</td> |
|
<td colspan="2">入炉时间</td> |
|
<td colspan="2">出炉时间</td> |
|
<td>链速(mm/min)</td> |
|
<td>操作者</td> |
|
<td colspan="2">设备编号</td> |
|
</tr> |
|
<template v-if="prWpItem != null && prWpItem.totalPrList>0 && prWpItem.prList != null"> |
|
<tr v-for="(prLItem,prLIndex) in prWpItem.prList" :key="'100'+prWpIndex+prLIndex"> |
|
<td>{{ prLItem.dataThree }}</td> |
|
<td colspan="3">{{ prLItem.tempSlot }}</td> |
|
<td colspan="2">{{ prLItem.inDate }}</td> |
|
<td colspan="2">{{ prLItem.outDate }}</td> |
|
<td>{{ prLItem.vSpeed }}</td> |
|
<td>{{ prLItem.createMan.userName }}</td> |
|
<td colspan="2">{{ prLItem.deviceId }}</td> |
|
</tr> |
|
</template> |
|
</template> |
|
<template v-if="prWpItem.procedureSet.ppsName == '玻璃饼振光'"> |
|
<tr v-if=" prWpItem != null && prWpItem.prList != null && prWpItem.prList.length>0 && prWpItem.prList[0].workSlot == '振光'" :key="prWpIndex+Math.floor(Math.random()*100000)"> |
|
<td>振光</td> |
|
<td>振光针规格</td> |
|
<td colspan="3">{{ prWpItem.prList[0].dataFour }}</td> |
|
<td>操作者</td> |
|
<td>{{ prWpItem.prList[0].createMan.userName }}</td> |
|
<td>设备编码</td> |
|
<td>{{ prWpItem.prList[0].deviceId }}</td> |
|
<td colspan="3" /> |
|
</tr> |
|
<tr v-else :key="prWpIndex+Math.floor(Math.random()*100000)"> |
|
<td>振光</td> |
|
<td>振光针规格</td> |
|
<td colspan="3" /> |
|
<td>操作者</td> |
|
<td /> |
|
<td>设备编码</td> |
|
<td /> |
|
<td colspan="3" /> |
|
</tr> |
|
<tr v-if="(prWpItem != null && prWpItem.prList != null&& prWpItem.prList.length>1 && prWpItem.prList[1].workSlot == '烘干')" :key="prWpIndex+Math.floor(Math.random()*100000)"> |
|
<td>烘干</td> |
|
<td>开始时间</td> |
|
<td>{{ prWpItem.prList[1].inDate }}</td> |
|
<td>结束时间</td> |
|
<td>{{ prWpItem.prList[1].outDate }}</td> |
|
<td>烘箱温度(℃)</td> |
|
<td>{{ prWpItem.prList[1].tempSlot }}</td> |
|
<td>操作者</td> |
|
<td>{{ prWpItem.prList[1].createMan.userName }}</td> |
|
<td>设备编号</td> |
|
<td colspan="2">{{ prWpItem.prList[1].deviceId }}</td> |
|
</tr> |
|
<tr v-else :key="prWpIndex+Math.floor(Math.random()*100000)"> |
|
<td>烘干</td> |
|
<td>开始时间</td> |
|
<td /> |
|
<td>结束时间</td> |
|
<td /> |
|
<td>烘箱温度(℃)</td> |
|
<td /> |
|
<td>操作者</td> |
|
<td /> |
|
<td>设备编号</td> |
|
<td colspan="2" /> |
|
</tr> |
|
</template> |
|
<template v-else-if="prWpItem.procedureSet.ppsName == '玻璃饼印字'"> |
|
<tr :key="prWpIndex+Math.floor(Math.random()*100000)+1"> |
|
<td>油墨物料号</td> |
|
<td colspan="3">印字版编号</td> |
|
<td>操作者</td> |
|
<td colspan="7" /> |
|
</tr> |
|
<template v-if="prWpItem != null && prWpItem.totalPrList>0 && prWpItem.prList != null"> |
|
<tr v-for="(prLItem,prLIndex) in prWpItem.prList" :key="'100'+prWpIndex+prLIndex"> |
|
<td>{{ prLItem.dataFour }}</td> |
|
<td colspan="3">{{ prLItem.dataFive }}</td> |
|
<td>{{ prLItem.createMan.userName }}</td> |
|
<td colspan="7" /> |
|
</tr> |
|
</template> |
|
</template> |
|
<!-- // 玻璃封接零件检验 --> |
|
<template v-if="prWpItem.procedureSet.ppsName == '玻璃封接零件检验' && prWpItem.printChildCheck != null && prWpItem.printChildCheck.length>0"> |
|
<tr :key="prWpIndex+Math.floor(Math.random()*100000)+1"> |
|
<td colspan="12">检验记录</td> |
|
</tr> |
|
<tr :key="prWpIndex+Math.floor(Math.random()*100000)+1"> |
|
<td>项目编号</td> |
|
<td colspan="4">检测项目</td> |
|
<td colspan="3">检验结果</td> |
|
<td colspan="2">检验人员</td> |
|
<td colspan="2">检验日期</td> |
|
</tr> |
|
<template v-for="(prCcItem,prCcIndex) in prWpItem.printChildCheck" :key="prCcIndex"> |
|
<tr> |
|
<td>{{ prCcItem.testOrders }}</td> |
|
<td colspan="4">{{ prCcItem.testName }}</td> |
|
<td colspan="3">{{ prCcItem.checkResult }}</td> |
|
<td colspan="2">{{ prCcItem.checkName }}</td> |
|
<td colspan="2">{{ prCcItem.checkDate }}</td> |
|
</tr> |
|
</template> |
|
</template> |
|
|
|
</template> |
|
</tbody> |
|
</table> |
|
</div> |
|
</el-dialog> |
|
</template> |
|
|
|
<script> |
|
export default { |
|
props: { |
|
showPrint: { |
|
type: Boolean, |
|
default: false, |
|
}, |
|
planList: { |
|
type: Array, |
|
default: () => [], |
|
}, |
|
checkRow: { |
|
type: Object, |
|
default: () => {}, |
|
}, |
|
}, |
|
data() { |
|
return { |
|
printConfig: { |
|
id: 'printMe', |
|
extraCss: 'https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.compat.css', |
|
extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>', |
|
}, |
|
loading: false, |
|
dsPart: {}, |
|
prWorkOrder: { pjYieldOrder: {} }, |
|
prWorkPlanList: [], |
|
}; |
|
}, |
|
created() { |
|
// 模拟数据 |
|
this.prWorkOrder = { |
|
woCode: 'WO-B24051800160-R001', |
|
batchNo: 'Y24051800160', |
|
pjYieldOrder: { poQty: 12 } |
|
}; |
|
this.dsPart = { |
|
partName: '13-45-玻璃饼', |
|
formingThickness: '', |
|
powderWeight: '' |
|
}; |
|
this.prWorkPlanList = [ |
|
{ |
|
orders: '0005', |
|
totalPrList: 1, |
|
procedureSet: { ppsName: '玻璃饼压制' }, |
|
prList: [{ |
|
dataFour: '11', |
|
dataFive: '44', |
|
dataSix: '77', |
|
dataSeven: '111', |
|
deviceId: '9652247', |
|
createMan: { userName: '崔殿龙' } |
|
}] |
|
}, |
|
{ |
|
orders: '0010', |
|
totalPrList: 0, |
|
procedureSet: { ppsName: '玻璃饼排蜡玻化' }, |
|
prList: [] |
|
}, |
|
{ |
|
orders: '0015', |
|
totalPrList: 2, |
|
procedureSet: { ppsName: '玻璃饼振光' }, |
|
prList: [ |
|
{ |
|
workSlot: '振光', |
|
dataFour: '111113333', |
|
createMan: { userName: '崔殿龙' }, |
|
deviceId: '9988777' |
|
}, |
|
{ |
|
workSlot: '烘干', |
|
inDate: '2024-05-31 15:48:45', |
|
outDate: '', |
|
tempSlot: '', |
|
createMan: { userName: '崔殿龙' }, |
|
deviceId: '9652247' |
|
} |
|
] |
|
}, |
|
{ |
|
orders: '0020', |
|
totalPrList: 1, |
|
procedureSet: { ppsName: '玻璃饼印字' }, |
|
prList: [{ |
|
dataFour: '2', |
|
dataFive: '25', |
|
createMan: { userName: '崔殿龙' } |
|
}] |
|
}, |
|
{ |
|
orders: '0025', |
|
totalPrList: 0, |
|
procedureSet: { ppsName: '玻璃封接零件检验' }, |
|
prList: [], |
|
printChildCheck: [ |
|
{ |
|
testOrders: '0025-0005', |
|
testName: '外观检测\n参照文件010-02235435《热表分厂表处理零件检验规范》', |
|
checkResult: '合格', |
|
checkName: '李素娟', |
|
checkDate: '2024-05-31 16:29:45.0' |
|
} |
|
] |
|
} |
|
]; |
|
}, |
|
methods: { |
|
closeDialog() { |
|
this.$emit('closeDialog'); |
|
}, |
|
}, |
|
}; |
|
</script> |
|
|
|
<style lang="scss" > |
|
.printButton { |
|
float: right; |
|
margin-right: 8px; |
|
margin-top: 16px; |
|
} |
|
.printBox { |
|
width: 100%; |
|
padding: 6px; |
|
text-align: center; |
|
.printTitle { |
|
font-size: 22px; |
|
font-weight: 700; |
|
padding: 8px; |
|
color: #606266; |
|
// margin-bottom: 6px; |
|
} |
|
|
|
.tableNo { |
|
text-align: right; |
|
margin-bottom: 10px; |
|
} |
|
|
|
table { |
|
width: 100%; |
|
table-layout: fixed; |
|
tr { |
|
width: 100%; |
|
// table-layout: fixed; |
|
page-break-inside: avoid; |
|
// break-inside: avoid; |
|
} |
|
td { |
|
width: 8.33%; |
|
min-width: 80px; |
|
height: 32px; |
|
border: 1px solid #000; |
|
background: transparent; |
|
color: #000; |
|
font-size: 13px; |
|
text-align: center; |
|
padding: 4px 2px; |
|
margin: 0; |
|
word-break: break-all; |
|
} |
|
// 分页提示行样式 |
|
.page-break-tip { |
|
page-break-before: always; |
|
break-before: always; |
|
height: 20px; |
|
border: none !important; |
|
} |
|
} |
|
} |
|
.fixTopLeft { |
|
// position: fixed; |
|
float: left; |
|
top: 1; |
|
left: 0; |
|
font-family: 'SimHei'; |
|
font-size: 24px; |
|
color: black; |
|
} |
|
|
|
@media print { |
|
/* 隐藏不需要打印的元素:按钮、导航栏、侧边栏等 */ |
|
.no-print, |
|
header, |
|
footer, |
|
.sidebar, |
|
button { |
|
display: none !important; |
|
} |
|
@page { |
|
size: auto; |
|
margin: 6mm; |
|
} |
|
} |
|
// @media print { @page { size:21cm 29.7cm } } |
|
</style> |
|
<style lang="scss"> |
|
@media print { |
|
.no-print { |
|
display: none !important; |
|
} |
|
|
|
.print-btn { |
|
display: none !important; |
|
} |
|
|
|
body { |
|
margin: 0; |
|
// padding: 20px; |
|
// font-size: 12pt; |
|
background: white !important; |
|
} |
|
|
|
@page { |
|
size: auto; |
|
margin: 6mm; |
|
} |
|
|
|
.printBox { |
|
width: 100% !important; |
|
overflow: visible !important; |
|
|
|
table { |
|
width: 100% !important; |
|
table-layout: fixed; |
|
border-collapse: collapse; |
|
|
|
tr { |
|
page-break-inside: avoid; |
|
|
|
td { |
|
width: 8.33%; |
|
font-size: 12px; |
|
padding: 3px 2px; |
|
} |
|
} |
|
} |
|
|
|
.print-table, |
|
.print-table td, |
|
.print-table th { |
|
border-collapse: collapse !important; |
|
box-sizing: border-box !important; |
|
page-break-inside: avoid !important; |
|
} |
|
} |
|
} |
|
</style>
|
|
|