UNPKG

vxe-pc-ui

Version:
1 lines 4.24 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_vn=require("../..//ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxePrint",props:{align:{type:String,default:()=>(0,_ui.getConfig)().print.align},title:String,headerAlign:{type:String,default:()=>(0,_ui.getConfig)().print.headerAlign},footerAlign:{type:String,default:()=>(0,_ui.getConfig)().print.footerAlign},showPageNumber:{type:Boolean,default:()=>(0,_ui.getConfig)().print.showPageNumber},customLayout:Boolean,pageBreaks:Array,content:String,html:String,headerHtml:String,footerHtml:String,leftHtml:String,rightHtml:String,showAllPageTitle:{type:Boolean,default:()=>(0,_ui.getConfig)().print.showAllPageTitle},customStyle:{type:String,default:()=>(0,_ui.getConfig)().print.customStyle},beforeMethod:Function},emits:[],setup(_,e){const{slots:h,emit:a}=e;var t=_xeUtils.default.uniqueId();const i=(0,_vue.ref)(),n=(0,_vue.reactive)({staticPageBreaks:[]}),r={refElem:i},l={},s={xID:t,props:_,context:e,reactData:n,getRefMaps:()=>r,getComputeMaps:()=>l};Object.assign(s,{dispatchEvent:(e,t,r)=>{a(e,(0,_ui.createEvent)(r,{$print:s},t))},print(){var e=i.value;return(0,_util.printHtml)(Object.assign({},_,{_pageBreaks:!!n.staticPageBreaks.length,html:(e?e.outerHTML:"")||_.html||_.content||""}))}},{});return s.renderVN=()=>{var e=_["customLayout"],t=n["staticPageBreaks"],r=h.default;return(0,_vue.h)("div",{ref:i,class:["vxe-print"]},e?r?(0,_vn.getSlotVNs)(r({})):[]:[(0,_vue.h)("div",{key:"slot",class:"vxe-print-slots"},r?(0,_vn.getSlotVNs)(r({})):[])].concat((t.length?()=>{const{title:o,showPageNumber:u,showAllPageTitle:g,align:v,headerAlign:p,footerAlign:d}=_;var e=n["staticPageBreaks"];const c=e.length;return e.map((e,t)=>{var e=e.slots||{},r=t+1,a=e.default,i=e.header||h.header,n=e.footer||h.footer,l=e.left||h.left,e=e.right||h.right,s={currentPage:r,pageCount:c};return(0,_vue.h)("div",{class:["vxe-print-page-break",v?"align--"+v:""]},[(0,_vue.h)("div",{class:["vxe-print-page-break--header",p?"align--"+p:""]},i?(0,_vn.getSlotVNs)(i(s)):[!o||!g&&t?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{class:"vxe-print-page-break--header-title"},""+(o||""))]),(0,_vue.h)("div",{class:"vxe-print-page-break--body"},[(0,_vue.h)("div",{class:"vxe-print-page-break--left"},l?(0,_vn.getSlotVNs)(l(s)):[]),(0,_vue.h)("div",{class:"vxe-print-page-break--content"},a?(0,_vn.getSlotVNs)(a(s)):[]),(0,_vue.h)("div",{class:"vxe-print-page-break--right"},e?(0,_vn.getSlotVNs)(e(s)):[])]),(0,_vue.h)("div",{class:["vxe-print-page-break--footer",d?"align--"+d:""]},n?(0,_vn.getSlotVNs)(n(s)):[u?(0,_vue.h)("div",{class:"vxe-print-page-break--footer-page-number"},r+"/"+c):(0,_vue.createCommentVNode)()])])})}:()=>{const{title:o,showPageNumber:u,showAllPageTitle:g,align:v,headerAlign:p,footerAlign:d}=_;var e=_.pageBreaks||[];const c=e.length;return e.map((e,t)=>{var r=e.bodyHtml,a=e.headerHtml||_.headerHtml,i=e.footerHtml||_.footerHtml,n=e.leftHtml||_.leftHtml,e=e.rightHtml||_.rightHtml,l=t+1,s={currentPage:l,pageCount:c};return(0,_vue.h)("div",{class:["vxe-print-page-break",v?"align--"+v:""]},[(0,_vue.h)("div",{class:["vxe-print-page-break--header",p?"align--"+p:""]},a?""+(_xeUtils.default.isFunction(a)?a(s):a||""):[!o||!g&&t?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{class:"vxe-print-page-break--header-title"},""+(o||""))]),(0,_vue.h)("div",{class:"vxe-print-page-break--body"},[(0,_vue.h)("div",{class:"vxe-print-page-break--left"},""+(_xeUtils.default.isFunction(n)?n(s):n||"")),(0,_vue.h)("div",{class:"vxe-print-page-break--content"},""+(_xeUtils.default.isFunction(r)?r(s):r||"")),(0,_vue.h)("div",{class:"vxe-print-page-break--right"},""+(_xeUtils.default.isFunction(e)?e(s):e||""))]),(0,_vue.h)("div",{class:["vxe-print-page-break--footer",d?"align--"+d:""]},i?""+(_xeUtils.default.isFunction(i)?i(s):i||""):[u?(0,_vue.h)("div",{class:"vxe-print-page-break--footer-page-number"},l+"/"+c):(0,_vue.createCommentVNode)()])])})})()))},(0,_vue.provide)("$xePrint",s),s},render(){return this.renderVN()}});