<template> <div class="print-view" id="print_view"> <div class="print-view-wrap" v-if="simpleClassName=='listView'"> <view_listview v-if="viewPrintData" :openParams="openParams" :view="viewPrintData" :isFormPrint="isFormPrint" /> </div> <div class="print-view-wrap" v-else-if="simpleClassName=='gridview'"> <view_gridview v-if="viewPrintData" :openParams="openParams" :view="viewPrintData" :isFormPrint="isFormPrint" /> </div> <div class="print-btn"> <div class="page-con"> <div @click="printView" class="btn no-print" v-show = 'isHide'> {{$t('report.print')}} </div> <!-- <el-button class="btn no-print" @click="printView" size="medium" type="primary" >{{$t('report.print')}}</el-button> --> </div> </div> </div> </template> <script> import view_listview from "@/components/view_listview.vue"; import view_gridview from "@/components/view_gridview.vue"; export default { name:"", props: [""], components: { view_listview, view_gridview }, computed: { }, created(){ let query = this.$route.query; if(query.simpleClassName == "ListView"){ if(query.openType == "288") { this.simpleClassName = "gridview"; } } console.log("--->",this.$route.query) }, mounted() { this.getViewData(); }, data: function() { return { viewPrintData:'', openParams:'', isFormPrint: 5,//鎵撳嵃鏃舵椂绛変簬5 simpleClassName: 'listView', isHide: true, } }, methods: { printView() { this.isHide = false setTimeout(function () { window.print(); }, 100); let that = this //window鎵撳嵃鐣岄潰鍏抽棴 window.onafterprint = function() { that.$nextTick(function(){ that.isHide = true }); }; }, getViewData(){ let appId = this.$root.appid; let viewId = this.$route.query.viewId; let isPrint = this.$route.query.isPrint; this.openParams = { appId, viewId, isPrint, isRelate: this.$route.query.isRelate, parentId: this.$route.query.parentId, } this.$api.getPrintViewTemplate(appId, viewId, isPrint, { onSucess: response => { this.viewPrintData = response.data.data; let columns = this.viewPrintData.columns; for(let i=0;i<columns.length;i++){ if((columns[i].hiddenColumn == true) || (!columns[i].visible4PagePrint)){ columns.splice(i,1); i--; } } } }) }, } } </script> <style lang="scss"> </style>