|
|
<template>
|
|
|
<div>
|
|
|
<xy-dialog title="打印预览" :is-show.sync="isShow" :width="70" @on-ok="print" ok-text="打印">
|
|
|
<template v-slot:normalContent>
|
|
|
<div class="white-container" ref="printtable">
|
|
|
<div class="form-container">
|
|
|
<h2 class="form-title">苏州市河道管理处会议审批表</h2>
|
|
|
<div class="date-container">
|
|
|
<div class="date-field">
|
|
|
<span>{{ getYear }}</span>年
|
|
|
<span>{{ getMonth }}</span>月
|
|
|
<span>{{ getDay }}</span>日
|
|
|
</div>
|
|
|
</div>
|
|
|
<table class="approval-table">
|
|
|
<tbody>
|
|
|
<tr>
|
|
|
<td class="label">申请部门</td>
|
|
|
<td class="content">{{ getDepartment }}</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="label">会议名称</td>
|
|
|
<td class="content">{{ getMeetingName }}</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="label">会议类别</td>
|
|
|
<td class="content">({{ getMeetingType }})类会议</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="label">会议起止日期及天数</td>
|
|
|
<td class="content">{{ getDuration }}</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="label">会议地点</td>
|
|
|
<td class="content">{{ getLocation }}</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="label">会议规模</td>
|
|
|
<td class="content">代表人数:{{ getRepresentativeCount }} 工作人员数:{{ getStaffCount }}</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="label">会议经费预算(元)</td>
|
|
|
<td class="content">{{ getTotalBudget }}</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="label">其中:住宿费</td>
|
|
|
<td class="content">{{ getAccommodationFee }}</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="label">伙食费</td>
|
|
|
<td class="content">{{ getMealsFee }}</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="label">租场费</td>
|
|
|
<td class="content">{{ getVenueFee }}</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="label">其他费用</td>
|
|
|
<td class="content">{{ getOtherFees }}</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="label">科室负责人审核</td>
|
|
|
<td class="content">{{ getDepartmentApproval }}</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="label">分管领导审核</td>
|
|
|
<td class="content">{{ getSectionApproval }}</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="label">综合科审核</td>
|
|
|
<td class="content">{{ getComprehensiveApproval }}</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td class="label">单位负责人审核</td>
|
|
|
<td class="content">{{ getUnitApproval }}</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
</xy-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import html2canvas from 'html2canvas'
|
|
|
import * as printJS from "print-js";
|
|
|
|
|
|
export default {
|
|
|
name: 'PrintMeetingApproval',
|
|
|
data() {
|
|
|
return {
|
|
|
isShow: false,
|
|
|
meetingData: null
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
getYear() { return this.meetingData?.year || '' },
|
|
|
getMonth() { return this.meetingData?.month || '' },
|
|
|
getDay() { return this.meetingData?.day || '' },
|
|
|
getDepartment() { return this.meetingData?.department || '' },
|
|
|
getMeetingName() { return this.meetingData?.meetingName || '' },
|
|
|
getMeetingType() { return this.meetingData?.meetingType || '' },
|
|
|
getDuration() { return this.meetingData?.duration || '' },
|
|
|
getLocation() { return this.meetingData?.location || '' },
|
|
|
getRepresentativeCount() { return this.meetingData?.representativeCount || '' },
|
|
|
getStaffCount() { return this.meetingData?.staffCount || '' },
|
|
|
getTotalBudget() { return this.meetingData?.totalBudget || '' },
|
|
|
getAccommodationFee() { return this.meetingData?.accommodationFee || '' },
|
|
|
getMealsFee() { return this.meetingData?.mealsFee || '' },
|
|
|
getVenueFee() { return this.meetingData?.venueFee || '' },
|
|
|
getOtherFees() { return this.meetingData?.otherFees || '' },
|
|
|
getDepartmentApproval() { return this.meetingData?.departmentApproval || '' },
|
|
|
getSectionApproval() { return this.meetingData?.sectionApproval || '' },
|
|
|
getComprehensiveApproval() { return this.meetingData?.comprehensiveApproval || '' },
|
|
|
getUnitApproval() { return this.meetingData?.unitApproval || '' }
|
|
|
},
|
|
|
methods: {
|
|
|
getMeetingData(id) {
|
|
|
// 临时测试数据
|
|
|
this.meetingData = {
|
|
|
year: '2024',
|
|
|
month: '3',
|
|
|
day: '14',
|
|
|
department: '测试部门',
|
|
|
meetingName: '测试会议',
|
|
|
meetingType: '测试',
|
|
|
duration: '2024-03-14至2024-03-15,共2天',
|
|
|
location: '会议室',
|
|
|
representativeCount: '10',
|
|
|
staffCount: '5',
|
|
|
totalBudget: '10000',
|
|
|
accommodationFee: '3000',
|
|
|
mealsFee: '2000',
|
|
|
venueFee: '1000',
|
|
|
otherFees: '4000'
|
|
|
}
|
|
|
},
|
|
|
async print() {
|
|
|
try {
|
|
|
let canvas = await html2canvas(this.$refs['printtable'], {
|
|
|
backgroundColor: null,
|
|
|
useCORS: true,
|
|
|
})
|
|
|
printJS({
|
|
|
printable: canvas.toDataURL(),
|
|
|
type: 'image',
|
|
|
documentTitle: '苏州市河道管理处会议审批表',
|
|
|
style: '@page{margin:auto;}'
|
|
|
})
|
|
|
} catch (error) {
|
|
|
console.error('打印失败:', error)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
|
.white-container {
|
|
|
background: #fff;
|
|
|
padding: 20px;
|
|
|
}
|
|
|
|
|
|
.form-container {
|
|
|
position: relative;
|
|
|
width: 100%;
|
|
|
padding: 20px;
|
|
|
}
|
|
|
|
|
|
.form-title {
|
|
|
text-align: center;
|
|
|
font-size: 20px;
|
|
|
font-weight: bold;
|
|
|
margin-bottom: 10px;
|
|
|
}
|
|
|
|
|
|
.date-container {
|
|
|
width: 100%;
|
|
|
margin-bottom: 20px;
|
|
|
display: flex;
|
|
|
justify-content: flex-end;
|
|
|
padding-right: 50px;
|
|
|
}
|
|
|
|
|
|
.date-field {
|
|
|
font-size: 16px;
|
|
|
position: static;
|
|
|
}
|
|
|
|
|
|
.approval-table {
|
|
|
width: 100%;
|
|
|
border-collapse: collapse;
|
|
|
margin-top: 10px;
|
|
|
font-family: SimSun, serif;
|
|
|
}
|
|
|
|
|
|
.approval-table td {
|
|
|
border: 1px solid #000;
|
|
|
padding: 8px 12px;
|
|
|
font-size: 16px;
|
|
|
line-height: 1.5;
|
|
|
}
|
|
|
|
|
|
.approval-table .label {
|
|
|
width: 200px;
|
|
|
background-color: #fff;
|
|
|
text-align: left;
|
|
|
font-weight: normal;
|
|
|
}
|
|
|
|
|
|
.approval-table .content {
|
|
|
text-align: left;
|
|
|
min-height: 24px;
|
|
|
}
|
|
|
|
|
|
@media print {
|
|
|
.white-container {
|
|
|
padding: 0;
|
|
|
}
|
|
|
|
|
|
.form-container {
|
|
|
padding: 0;
|
|
|
}
|
|
|
|
|
|
.approval-table td {
|
|
|
border: 1px solid #000;
|
|
|
}
|
|
|
}
|
|
|
</style>
|