import { defineVxeComponent } from '../../ui/src/comp'; import XEUtils from 'xe-utils'; import { createEvent } from '../../ui'; import { assemblePageBreak, destroyPageBreak } from './util'; export default { name: 'VxePrintPageBreak', props: {}, data() { const xID = XEUtils.uniqueId(); const reactData = {}; const pageBreakConfig = { id: xID, slots: {} }; return { xID: XEUtils.uniqueId(), reactData, pageBreakConfig }; }, inject: { $xePrint: { default: null } }, computed: Object.assign({}, {}), methods: { // // Method // dispatchEvent(type, params, evnt) { const $xePrintPageBreak = this; $xePrintPageBreak.$emit(type, createEvent(evnt, { $printPageBreak: $xePrintPageBreak }, params)); }, // // Render // renderVN(h) { return h('div', { ref: 'refElem' }); } }, mounted() { const $xePrintPageBreak = this; const slots = $xePrintPageBreak.$scopedSlots; const $xePrint = $xePrintPageBreak.$xePrint; const pageBreakConfig = $xePrintPageBreak.pageBreakConfig; pageBreakConfig.slots = slots; const elem = $xePrintPageBreak.$refs.refElem; if ($xePrint && elem) { assemblePageBreak($xePrint, elem, pageBreakConfig); } }, beforeDestroy() { const $xePrintPageBreak = this; const $xePrint = $xePrintPageBreak.$xePrint; const pageBreakConfig = $xePrintPageBreak.pageBreakConfig; if ($xePrint) { destroyPageBreak($xePrint, pageBreakConfig); } }, render(h) { return this.renderVN(h); } };