一,組件,需要轉pdf下載的的html
<template>
<div id="faceCtx">
<el-row class="face-add-border">
<el-col :span="8" class="face-col-left">
<div class="grid-content bg-purple">
<div class="printOrder" v-for="(v,k) in codeList">
<barcode :value="v.barcodes" :options="barcode_option" tag="svg" ></barcode>
</div>
</div>
</el-col>
<el-col :span="8" class="face-col-center">
<div class="grid-content bg-purple-light face-title">采購訂單</div>
</el-col>
<el-col :span="8" class="face-col-right">
<div class="grid-content bg-purple face-logo">
<img src="../../../assets/404_images/jd_world_logo.png"/>
</div>
</el-col>
</el-row>
<!-- <el-row>
<el-col :span="24"><div class="grid-content bg-purple-dark face-tips">(此傳真件與原件具有同等法律效力)</div></el-col>
</el-row> -->
<el-row>
<el-col :span="12"><div class="grid-content bg-purple-dark">采購方:{{faceResult.fromWarehouseName}}</div></el-col>
<el-col :span="12"><div class="grid-content bg-purple-dark">訂購單號:{{faceResult.orderSn}}</div></el-col>
</el-row>
<el-row>
<el-col :span="12"><div class="grid-content bg-purple-dark">聯系人:{{faceResult.mobile}}</div></el-col>
<el-col :span="12"><div class="grid-content bg-purple-dark">訂購日期:{{faceResult.contacter}}</div></el-col>
</el-row>
<el-row>
<el-col :span="12"><div class="grid-content bg-purple-dark">電話:{{faceResult.distributionPlace}}</div></el-col>
<el-col :span="12"><div class="grid-content bg-purple-dark">供應商:{{faceResult.distributionPlace}}</div></el-col>
</el-row>
<el-row>
<el-col :span="24"><div class="grid-content bg-purple-dark"></div></el-col>
<el-col :span="24"><div class="grid-content bg-purple-dark" style="float:right">單位:人民幣</div></el-col>
</el-row>
<div>
<table class="face-table">
<thead>
<tr>
<th>序號</th>
<th>貨品名稱</th>
<th>規格/型號</th>
<th>單位</th>
<th>數量</th>
<th>含稅單價</th>
<th>含稅總價</th>
</tr>
</thead>
<tbody>
<tr v-for="item in faceResult.detailList">
<td>{{item.materialSn}}</td>
<td>{{item.materialName}}</td>
<td>{{item.boxSpecification}}</td>
<td>{{item.quantity}}</td>
<td>{{item.materialName}}</td>
<td>{{item.boxSpecification}}</td>
<td>{{item.quantity}}</td>
</tr>
<tr class="add-padding">
<td>貨款總金額(大寫)</td>
<td colspan="6">{{faceResult.totalQuantity}}</td>
</tr>
</tbody>
</table>
</div>
<el-row>
<el-col :span="12"><div class="grid-content bg-purple-dark">說明:</div></el-col>
</el-row>
<el-row>
<el-col :span="12"><div class="grid-content bg-purple-dark">一 交貨日期:{{faceResult.orderSn}}</div></el-col>
<el-col :span="12"><div class="grid-content bg-purple-dark"></div></el-col>
</el-row>
<el-row>
<el-col :span="12"><div class="grid-content bg-purple-dark">一 交貨地址:{{faceResult.orderSn}}</div></el-col>
<el-col :span="12"><div class="grid-content bg-purple-dark"></div></el-col>
</el-row>
<el-row style="margin-top:20px">
<el-col :span="12"><div class="grid-content bg-purple-dark">采購方(蓋章):</div></el-col>
<el-col :span="12"><div class="grid-content bg-purple-dark">供應商(蓋章):</div></el-col>
</el-row>
<el-row>
<el-col :span="12"><div class="grid-content bg-purple-dark">日期:</div></el-col>
<el-col :span="12"><div class="grid-content bg-purple-dark">日期:</div></el-col>
</el-row>
</div>
</template>
<script>
export default {
props:['faceResult'],
data() {
return {
barcode_option: {
displayValue: true, //是否默認顯示條形碼數據
//textPosition :'top', //條形碼數據顯示的位置
background: '#fff', //條形碼背景顏色
valid: function (valid) {
console.log(valid)
},
width:'1px',//單個條形碼的寬度
height: '40px',
fontSize: '14px' //字體大小
},
codeList: [{barcodes: ''}]
}
},
methods: {
fnGetOrderSn(faceSn) {
console.log(faceSn);
this.codeList = [];
this.codeList.push({
barcodes: faceSn
})
}
},
mounted() {
},
}
</script>
<style lang="scss" scoped>
#faceCtx {
width: 670px;
padding: 0 20px;
font-size: 14px;
position: absolute;
top: 5px;
left: 20px;
right: 20px;
z-index: -20;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
#faceCtx .face-title {
padding-top: 25px;
font-size: 18px;
font-weight: bold;
text-align: center;
}
#faceCtx .face-logo {
padding-top: 8px;
}
#faceCtx .face-add-border {
border-bottom: 1px solid #ebeef5;
}
#faceCtx .face-tips {
text-align: center;
padding: 10px;
}
#faceCtx .grid-content {
padding-bottom: 5px;
}
#faceCtx .face-table{
width: 100%;
}
#faceCtx .el-table td,#faceCtx .el-table th {
padding: 0px;
}
#faceCtx .face-table, #faceCtx .face-table th, #faceCtx .face-table td {
border: 1px solid #ebeef5;
border-collapse: collapse;
text-align: center;
}
#faceCtx .face-table th {
font-weight: normal;
padding: 2px;
background-color: #f1f1f1;
}
#faceCtx .face-table td {
padding: 2px;
}
#faceCtx .add-padding td {
padding: 20px 0;
}
#faceCtx .face-col-left {
text-align: left;
}
#faceCtx .face-col-center {
text-align: center;
}
#faceCtx .face-col-right {
text-align: right;
}
</style>
二,引入組件
<face-order :faceResult="faceResult" ref="fnFaceChild"></face-order> import FACEORDER from './faceOrder.vue' //引入組件 data中this.faceResult 調用后台接口獲取顯示數據 fnFacePrint(index, row) { console.log(row) let orderSn = row.orderSn; this.loading = true; fnGetOutFacePrint(orderSn) .then(res => { this.loading = false; console.log(res); if (res.code == 200) { this.faceResult = res.data; this.$refs.fnFaceChild.fnGetOrderSn(res.data.orderSn); document.querySelector('#faceCtx').style.left = '20px'; document.querySelector('#faceCtx').style.minHeight = '800px'; setTimeout( () => { //導出PDF console.log(this.faceResult) htmlToPdf.downloadPDF( document.querySelector('#faceCtx'),'導出面單'); }, 1000) } }) .catch(err => {}); },
