<template>
|
<j-modal title="预览(仅可预览已完成工单)" :width="948" :visible="visible" switchFullscreen centered
|
:mask-closable="false" @cancel="handleCancel" cancelText="关闭">
|
<a-spin :spinning="spinning" style="height: 100%">
|
<div id="dataTable">
|
<div v-for="dataItem in dataSource" class="table-container">
|
<div style="page-break-before:always"></div>
|
|
<table class="import-table" :id="dataItem.equipmentCode">
|
<thead>
|
<tr>
|
<td colspan="6" style="border: none">
|
<div style="text-align: right">{{dataItem.hfCode}}</div>
|
</td>
|
</tr>
|
</thead>
|
|
<tbody>
|
<tr style="height: 48px;">
|
<th colspan="6" style="border: none;font-size: 20px">生产设备二级保养完工移交单</th>
|
</tr>
|
|
<tr>
|
<td>设备名称</td>
|
<td>{{dataItem.equipmentName}}</td>
|
<td>设备型号</td>
|
<td>{{dataItem.equipmentModel}}</td>
|
<td>统一编号</td>
|
<td>{{dataItem.equipmentCode}}</td>
|
</tr>
|
|
<tr>
|
<td>使用单位</td>
|
<td>{{dataItem.factoryName}}</td>
|
<td>保养日期</td>
|
<td colspan="3">{{dataItem.maintenanceDateFormatted}}</td>
|
</tr>
|
|
<tr>
|
<td class="vertical-display" :rowspan="dataItem.maintenanceOrderDetails.length+1">维修人员保养内容</td>
|
<td class="vertical-display">序号</td>
|
<td colspan="2">保养内容</td>
|
<td>执行情况</td>
|
<td>执行人</td>
|
</tr>
|
|
<tr v-for="(item,index) in dataItem.maintenanceOrderDetails">
|
|
<td>{{item.itemCode}}</td>
|
<td colspan="2">{{item.itemName}}</td>
|
<td>{{item.maintenanceResult_dictText}}</td>
|
<td>{{item.createBy_dictText}}</td>
|
</tr>
|
|
<tr>
|
<td class="vertical-display" :rowspan="dataItem.operationOrderDetails.length+1">操作人员保养内容</td>
|
<td class="vertical-display">序号</td>
|
<td colspan="2">保养内容</td>
|
<td>执行情况</td>
|
<td>执行人</td>
|
</tr>
|
|
<tr v-for="(item,index) in dataItem.operationOrderDetails">
|
<td>{{item.itemCode}}</td>
|
<td colspan="2">{{item.itemName}}</td>
|
<td>{{item.maintenanceResult_dictText}}</td>
|
<td>{{item.createBy_dictText}}</td>
|
</tr>
|
|
<tr>
|
<td colspan="6" style="padding: 5px">
|
<div style="text-align: left">问题:{{dataItem.problemDescription}}</div>
|
<br/><br/><br/>
|
<div style="text-align: left">处理措施描述:{{dataItem.dealDescription}}</div>
|
<br/><br/><br/>
|
<div style="text-align: right">使用单位设备管理员:{{dataItem.manageUser_dictText}}</div>
|
</td>
|
</tr>
|
|
<tr>
|
<td colspan="6" style="padding: 5px">
|
<div style="text-align: left">该设备经二级保养检查后,达到保养规范要求。</div>
|
<br/><br/><br/>
|
<div style="text-align: right">设备检查人员:{{dataItem.inspector_dictText}}</div>
|
</td>
|
</tr>
|
|
<tr>
|
<td colspan="6" style="border: none">
|
填写说明:执行保养工作中,根据保养内容,在执行情况对应栏划“√”
|
</td>
|
</tr>
|
</tbody>
|
</table>
|
</div>
|
</div>
|
</a-spin>
|
|
<template slot="footer">
|
<a-button @click="handleCancel">关闭</a-button>
|
<a-button type="primary" @click="handleExportToExcel">导出</a-button>
|
<a-button type="primary" v-print="'#dataTable'">打印</a-button>
|
</template>
|
</j-modal>
|
</template>
|
|
<script>
|
import { getAction } from '@/api/manage'
|
import $ from 'jquery'
|
import '@/components/table2excel/table2excel'
|
|
export default {
|
name: 'EamSecondMaintenanceOrderBatchPrintModal',
|
data() {
|
return {
|
visible: false,
|
spinning: false,
|
dataSource: [],
|
url: {
|
list: '/eam/secondMaintenanceOrder/batchExport'
|
}
|
}
|
},
|
methods: {
|
/**
|
* 批量预览
|
* @param ids String 主页面列表勾选ids
|
*/
|
handlePreview(ids) {
|
this.visible = true
|
this.spinning = true
|
this.dataSource = []
|
const that = this
|
getAction(this.url.list, { ids })
|
.then(res => {
|
if (res.success) that.dataSource = res.result
|
})
|
.finally(() => {
|
that.spinning = false
|
})
|
},
|
|
// 导出到Excel
|
handleExportToExcel() {
|
document.querySelectorAll('table.import-table').forEach(element => {
|
console.log('element', element.id)
|
$(element).table2excel({
|
exclude: '.noExl',
|
name: 'Excel Document Name',
|
filename: '生产设备二级保养完工移交单-' + element.id,
|
exclude_img: true,
|
fileext: '.xls',
|
exclude_links: true,
|
exclude_inputs: false
|
})
|
})
|
},
|
|
handleCancel() {
|
this.close()
|
},
|
|
close() {
|
this.$emit('close')
|
this.visible = false
|
this.$refs.form.clearValidate()
|
}
|
}
|
}
|
</script>
|
|
<style scoped lang="less">
|
/deep/ .ant-modal {
|
height: 90%;
|
overflow: hidden;
|
|
.ant-modal-content {
|
height: 100%;
|
display: flex;
|
flex-direction: column;
|
overflow: hidden;
|
|
::-webkit-scrollbar {
|
width: 8px;
|
height: 8px;
|
}
|
|
.ant-modal-body {
|
flex: 1;
|
overflow: auto;
|
}
|
}
|
}
|
|
.table-container:not(:last-child) {
|
margin-bottom: 20px;
|
}
|
|
table {
|
width: 100%;
|
text-align: center;
|
table-layout: fixed;
|
|
td, th {
|
border: 1px solid #000;
|
}
|
|
td.vertical-display {
|
writing-mode: vertical-lr;
|
letter-spacing: 5px;
|
padding: 5px 0;
|
}
|
}
|
</style>
|