第一種表格
先上效果圖:
上圖就是打印的效果,但表格的樣式沒有出來,在vue-cli腳手架裏樣式是起作用的。
這個打印是用的原生javascript的方法實現的,但引用了vue.js
和element
代碼如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>vue中打印</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<style>
#printTest table{
font-family:"宋體";
border-collapse:collapse;
width:99.5%;
}
#printTest table thead th{
height: 40px;
font-size: 13px;
/* width: 10px; */
text-align: center;
border: 1px solid black;
}
#printTest table tbody tr{
font-size:13px;
border: 1px solid black;
height: 40px;
text-align: center;
}
#printTest table tbody td{
font-size: 13px;
text-align: center;
border: 1px solid black;
}
</style>
</head>
<body>
<div id="apps">
<el-button class="filter-item" @click="handleFinish" type="primary">打印</el-button>
<el-dialog title="詳情單" :close-on-click-modal="false" :visible.sync="printDialogVisible"
width="60%">
<el-button type="success" @click="yinp">
<svg-icon icon-class="print" />打印</el-button>
<div id="printTest">
<div style="font-size: 22px;padding-bottom:10px;font-weight:800;font-family:宋體; text-align:center">表單
</div>
<span style="font-size:16px;font-family:宋體;float:left;">客戶名稱:</span>
<span style="font-size:16px;font-family:宋體;float:right;">日期:2019年08月03日</span>
<table>
<thead>
<th>日期</th>
<th>名字</th>
<th>地址</th>
<th>愛好</th>
<th>數量</th>
<th>運動</th>
<th>備註</th>
</thead>
<tbody>
<tr v-for="item in tableData" :key="item.id">
<td>{{item.date}}</td>
<td>{{item.name}}</td>
<td>{{item.address}}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</el-dialog>
</div>
</body>
<script src="https://cdn.bootcss.com/vue/2.5.1/vue.min.js"></script>
<script src="https://cdn.bootcss.com/element-ui/2.3.9/index.js"></script>
<script>
var apps = new Vue({
el:'#apps',
data(){
return{
printDialogVisible:false,
tableData: [{
id:1,
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀區金沙江路 1518 弄'
}, {
id:2,
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀區金沙江路 1517 弄'
}, {
id:3,
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀區金沙江路 1519 弄'
}, {
id:4,
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀區金沙江路 1516 弄'
}]
}
},
methods: {
handleFinish(){
this.printDialogVisible = true
},
yinp(){
var newstr = document.getElementById("printTest").innerHTML;//得到需要打印的元素HTML
var oldstr = document.body.innerHTML
document.body.innerHTML = newstr;
window.print();
document.body.innerHTML = oldstr;
},
},
})
</script>
</html>
第二種表格
這個是vue-cli腳手架裏用的打印功能。
通過npm 安裝插件
1,安裝 npm install vue-print-nb --save
2,引入 安裝好以後在main.js文件中引入
import Print from ‘vue-print-nb’
Vue.use(Print); //註冊
3,現在就可以使用了
<div id="printTest" >
<p>鋤禾日當午</p>
<p>汗滴禾下土 </p>
<p>誰知盤中餐</p>
<p>粒粒皆辛苦</p>
</div>
<button v-print="'#printTest'">打印</button>
現在就把表格代碼貼出來:
<el-dialog title="設備廠內遷移單預覽" v-dialogDrag :close-on-click-modal="false" :visible.sync="printDialogVisible" width="99.5%">
<el-button type="primary" @click="printDialogVisible = false">返回</el-button>
<el-button type="success" v-print="'#printTest2'"><svg-icon icon-class="print"/>打印</el-button>
<div id="printTest2">
<table border= "0" width="99.5%">
<thead>
<tr>
<th colspan="12">{{daolist.transferInCompanyName}}</th>
</tr>
<tr>
<th colspan="12">設備廠內遷移單</th>
</tr>
<tr>
<td colspan="12"><span>調出單位:{{daolist.transferOutCompanyName}} / {{daolist.transferOutFactoryName}} / {{daolist.transferOutDepartmentName}}</span></td>
</tr>
<tr>
<td colspan="6"><span>調入單位:{{daolist.transferInCompanyName}} / {{daolist.transferInFactoryName}} / {{daolist.transferInDepartmentName}}</span></td>
<td colspan="6" style="text-align:right"><span>編號:{{daolist.formCode}}</span></td>
</tr>
</thead>
<tbody>
<tr >
<td rowspan="2" style="text-align:center;border:1px solid black;">固定資產編號</td>
<td rowspan="2" style="text-align:center;border:1px solid black;">設備名稱</td>
<td rowspan="2" style="text-align:center;border:1px solid black;">型號規格</td>
<td rowspan="2" style="text-align:center;border:1px solid black;">出廠編號</td>
<td rowspan="2" style="text-align:center;border:1px solid black;">製造廠家</td>
<td rowspan="2" style="text-align:center;border:1px solid black;">數量</td>
<td rowspan="2" style="text-align:center;border:1px solid black;">單位</td>
<td colspan="2" style="text-align:center;border:1px solid black;">年限</td>
<td colspan="2" style="text-align:center;border:1px solid black;">固定資產價值(元)</td>
<td rowspan="2" style="text-align:center;border:1px solid black;">備註</td>
</tr>
<tr>
<td style="text-align:center;border:1px solid black;">折舊</td>
<td style="text-align:center;border:1px solid black;">已用</td>
<td style="text-align:center;border:1px solid black;">原值</td>
<td style="text-align:center;border:1px solid black;">淨值</td>
</tr>
<tr style="height:50px">
<td style="text-align:center;border:1px solid black;">{{daolist.fixedAssetCode}}</td>
<td style="text-align:center;border:1px solid black;">{{daolist.equipName}}</td>
<td style="text-align:center;border:1px solid black;">{{daolist.equipType}}</td>
<td style="text-align:center;border:1px solid black;">{{daolist.serialNumber}}</td>
<td style="text-align:center;border:1px solid black;">{{daolist.manufacturer}}</td>
<td style="text-align:center;border:1px solid black;">{{daolist.nums}}</td>
<td style="text-align:center;border:1px solid black;">臺</td>
<td style="text-align:center;border:1px solid black;">{{daolist.depreciationPeriod}}</td>
<td style="text-align:center;border:1px solid black;">{{daolist.usedPeriod}}</td>
<td style="text-align:center;border:1px solid black;">{{daolist.originalFinancialValue}}</td>
<td style="text-align:center;border:1px solid black;">{{daolist.netBookValue}}</td>
<td style="text-align:center;border:1px solid black;">{{daolist.remark}}</td>
</tr>
<tr style="height:70px">
<td colspan="1" style="border:1px solid black">調撥原因</td>
<td colspan="11" style="text-align:left;border:1px solid black">{{daolist.reason}}</td>
</tr>
<tr style="height:70px">
<td colspan="1" style="border:1px solid black">其他說明</td>
<td colspan="11" style="text-align:left;border:1px solid black">{{daolist.otherDescription}}</td>
</tr>
<tr style="height:50px">
<td colspan="2" style="border:1px solid black">經辦人簽字</td>
<td colspan="3" style="border:1px solid black">設備科長簽字</td>
<!-- <td colspan="2">調出廠簽字</td> -->
<td colspan="2" style="border:1px solid black">設備副總簽字</td>
<td colspan="3" style="border:1px solid black">資產部副部長簽字</td>
<td colspan="2" style="border:1px solid black">資產部蓋章</td>
</tr>
<tr style="height:50px">
<td colspan="2" style="border:1px solid black;border-bottom:none" align=“left” valign="top"><div style="width:265px">意見:{{operator}}</div></td>
<td colspan="3" style="border:1px solid black;border-bottom:none" align=“left” valign="top"><div style="width:265px">意見:{{branch}}</div></td>
<!-- <td colspan="2" align=“left” valign="top">意見:</td> -->
<td colspan="2" style="border:1px solid black;border-bottom:none" align=“left” valign="top"><div style="width:205px">意見:{{fuzong}}</div></td>
<td colspan="3" style="border:1px solid black;border-bottom:none" align=“left” valign="top"><div style="width:265px">意見:{{zichan}}</div></td>
<td colspan="2" style="border:1px solid black;border-bottom:none" align=“left” valign="top"><div style="width:265px">意見:</div></td>
</tr>
<tr style="height:40px">
<td colspan="2" style="border:1px solid black;border-bottom:none;border-top:none">經辦人:{{operatorname}}</td>
<td colspan="3" style="border:1px solid black;border-bottom:none;border-top:none">經辦人:{{branchname}}</td>
<!-- <td colspan="2" style="border-top:1px solid #fff">經辦人:</td> -->
<td colspan="2" style="border:1px solid black;border-bottom:none;border-top:none">經辦人:{{fuzongname}}</td>
<td colspan="3" style="border:1px solid black;border-bottom:none;border-top:none">經辦人:{{zichanname}}</td>
<td colspan="2" style="border:1px solid black;border-bottom:none;border-top:none">經辦人:</td>
</tr>
<tr style="height:40px">
<td colspan="2" style="border:1px solid black;border-top:none">日期:{{operatordate}}</td>
<td colspan="3" style="border:1px solid black;border-top:none">日期:{{branchdate}}</td>
<!-- <td colspan="2" style="border-top:1px solid #fff">日期:</td> -->
<td colspan="2" style="border:1px solid black;border-top:none">日期:{{fuzongdate}}</td>
<td colspan="3" style="border:1px solid black;border-top:none">日期:{{zichandate}}</td>
<td colspan="2" style="border:1px solid black;border-top:none">日期:</td>
</tr>
</tbody>
</table>
</div>
</el-dialog>
這個是一個彈框裏的內容。
css代碼:
#printTest2 table{
border-collapse:collapse;
}
#printTest2 table thead th{
font-size: 20px;
padding:10px;
}
#printTest2 table tbody tr{
height:30px;
font-size:14px;
}
#printTest2 table tbody td span{
margin-right:20px;
}
第三種表格的寫法
這個幾種表格的格式是不一樣的:
代碼:
<el-dialog title="設備報修單預覽" v-dialogDrag :close-on-click-modal="false" :visible.sync="printDialogVisible" width="60%">
<el-button type="primary" @click="printDialogVisible = false">返回</el-button>
<el-button type="success" v-print="'#printTest1'"><svg-icon icon-class="print"/>打印</el-button>
<div id="printTest1">
<!-- <h2 style="text-align:center;">{{srintList.repairCompany}}設備報修單</h2> -->
<table border= "0" width="99%" >
<thead>
<tr>
<th colspan="8">{{srintList.repairCompany}}設備報修單</th>
</tr>
</thead>
<tbody>
<tr style="height:60px">
<td style="border:1px solid black">設備名稱</td>
<td style="border:1px solid black" colspan="3">{{srintList.equipmentName}}</td>
<td style="border:1px solid black" colspan="3">固定資產編號</td>
<td style="border:1px solid black" colspan="1">{{srintList.fixedAssetCode}}</td>
</tr>
<tr style="height:60px">
<td style="border:1px solid black">型號規格</td>
<td style="border:1px solid black" colspan="3">{{srintList.model}}</td>
<td style="border:1px solid black" colspan="3">報修時間</td>
<td style="border:1px solid black" colspan="1">{{srintList.repariDate}}</td>
</tr>
<tr style="height:60px">
<td style="border:1px solid black">電路板名稱</td>
<td style="border:1px solid black" colspan="3">{{srintList.circuitBoardName}}</td>
<td style="border:1px solid black" colspan="3">電路板型號</td>
<td style="border:1px solid black" colspan="1">{{srintList.circuitBoardModel}}</td>
</tr >
<tr style="height:60px">
<td style="border:1px solid black">報修部門</td>
<td style="border:1px solid black" colspan="3">{{srintList.repairDivision}}</td>
<td style="border:1px solid black" colspan="3">要求完成時間</td>
<td style="border:1px solid black" colspan="1">{{srintList.requestDate}}</td>
</tr>
<tr>
<td colspan="8" style="height:40px;border:1px solid black">
<!-- <input type="checkbox" id="cheni1"><span>外部維修</span>
<input type="checkbox" id="cheni2"><span>內部維修</span> -->
<span style="margin-left:170px">外部維修(<span v-if="suggestShow">√</span>)</span><span style="margin-left:120px">內部維修(<span v-if="sugg">√</span>)</span>
</td>
</tr>
<tr style="height:100px">
<td colspan="8" style="border:1px solid black" align="left" valign="top">
<div>故障原因及內容:{{srintList.causeReason}}</div>
</td>
</tr>
<tr style="height:100px">
<td colspan="8" align="left" valign="top" style="height:50px;border:1px solid black;border-bottom:none">設備科審覈意見:{{fixing}}</td>
</tr>
<tr style="border-top:0px solid white;">
<td colspan="8" align="right" style="border:1px solid black;border-top:none"><span>簽字:{{fixingName}}</span><span>日期:{{fixingDate}}</span></td>
</tr>
<tr style="height:100px">
<td colspan="8" align="left" valign="top" style="height:50px;border:1px solid black;border-bottom:none">廠長審覈意見:{{factoryst}}</td>
</tr>
<tr style="border-top:0px solid white;">
<td colspan="8" align="right" style="border:1px solid black;border-top:none"><span>簽字:{{factorystName}}</span><span>日期:{{factorystDate}}</span></td>
</tr>
<tr style="height:100px">
<td colspan="8" align="left" valign="top" style="height:50px;border:1px solid black;border-bottom:none">事業部分管副總意見:{{enterprise}}</td>
</tr>
<tr style="border-top:0px solid white;">
<td colspan="8" align="right" style="border:1px solid black;border-top:none"><span>簽字:{{enterpriseName}}</span><span>日期:{{enterpriseDate}}</span></td>
</tr>
<tr style="height:100px">
<td colspan="8" align="left" valign="top" style="height:50px;border:1px solid black;border-bottom:none">資產部意見:{{propertyst}}</td>
</tr>
<tr style="border-top:0px solid white;">
<td colspan="8" align="right" style="border:1px solid black;border-top:none"><span>簽字:{{propertystName}}</span><span>日期:{{propertystDate}}</span></td>
</tr>
</tbody>
</table>
</div>
</el-dialog>
css代碼:
#printTest1 table{
border-collapse:collapse;
}
#printTest1 table thead th{
font-size: 20px;
padding:10px;
}
#printTest1 table tbody tr{
height:30px;
font-size:14px;
}
#printTest1 table tbody td{
width:25%;
}
#printTest1 table tbody td span{
margin-right:20px;
}
第四種和第一種是一樣的只不過是放在了vue-cli腳手架裏
代碼:
<el-dialog title="材料出庫單" v-dialogDrag :close-on-click-modal="false" :visible.sync="printDialogVisible" width="60%">
<el-button type="success" v-print="'#printTest'"><svg-icon icon-class="print"/>打印</el-button>
<div id="printTest">
<div style="font-size: 22px;padding-bottom:10px;font-weight:800;font-family:宋體; text-align:center">出庫單</div>
<span style="font-size:16px;font-family:宋體;float:left;">客戶名稱:</span>
<span style="font-size:16px;font-family:宋體;float:right;">出庫日期:2019年08月03日</span>
<table>
<thead>
<th>材料編號</th>
<th>材料名稱</th>
<th>單位</th>
<th>訂單號</th>
<th>數量</th>
<th>箱數</th>
<th>備註</th>
</thead>
<tbody>
<tr v-for="item in tableData" :key="item.id">
<td>{{item.date}}</td>
<td>{{item.name}}</td>
<td>{{item.address}}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</el-dialog>
css代碼:
#printTest table{
font-family:"宋體";
border-collapse:collapse;
width:99.5%;
}
#printTest table thead th{
height: 40px;
font-size: 13px;
/* width: 10px; */
text-align: center;
border: 1px solid black;
}
#printTest table tbody tr{
font-size:13px;
border: 1px solid black;
height: 40px;
text-align: center;
}
#printTest table tbody td{
font-size: 13px;
text-align: center;
border: 1px solid black;
}