UNPKG

label-print-design

Version:

操作简单,组件丰富的一站式打印解决方案打印设计器

191 lines (186 loc) 6.39 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vue = require('vue'); var index$2 = require('./widget/index.vue.js'); var index$1 = require('./panel/index.vue.js'); var vueDemi = require('vue-demi'); var utils = require('../../utils/utils.js'); var historyUtil = require('../../utils/historyUtil.js'); var app = require('../../stores/app.js'); var myMouseTips = require('../my/mouse-tips/my-mouse-tips.vue.js'); var elementUtil = require('../../utils/elementUtil.js'); var selecto = require('../../plugins/moveable/selecto.js'); var myMessage = require('../my/message/my-message.js'); var printer = require('../../printer.js'); var index = require('../../locales/index.js'); const _hoisted_1 = ["data-rotation"]; const _hoisted_2 = { class: "my-main design-container-root_main" }; const _hoisted_3 = { class: "my-aside display-flex-column", style: { "border-right": "1px #e9e9e9 solid", "background": "#f8f8f8" } }; var _sfc_main = /* @__PURE__ */ vue.defineComponent({ __name: "index", props: { module: {}, template: {}, height: {}, saveTemplate: {}, generateImg: { type: Boolean }, showBackButton: { type: Boolean, default: true }, showPrintButton: { type: Boolean, default: true }, showDownloadPdfButton: { type: Boolean, default: true }, showPreviewButton: { type: Boolean, default: true }, showClearButton: { type: Boolean, default: true }, showSaveButton: { type: Boolean, default: true } }, emits: ["back", "panelImg"], setup(__props, { emit: __emit }) { const appStore = app.useAppStoreHook(); const $emit = __emit; const data = vueDemi.reactive({ buildImgIs: false }); const provider = vueDemi.ref({}); const panel = vueDemi.reactive({ runtimeOption: { dragInIs: false }, type: "Panel", dragSnapPanelIs: 1, dragSnapIs: 1 }); const previewData = vueDemi.ref([]); elementUtil.setCurrentPanel(panel); const props = __props; const style = vueDemi.computed(() => { return { height: props.height }; }); vueDemi.onMounted(() => { utils.mitt.on("saveTemplate", saveTemplate); initModule(); initTemplate(); selecto.newSelecto(); }); vueDemi.onUnmounted(() => { utils.mitt.off("saveTemplate", saveTemplate); }); const moduleWatchStop = vueDemi.watch(() => props.module, (_n, _o) => { if (props.module) { initModule(); moduleWatchStop(); } }); function initModule() { if (!props.module) { return; } provider.value = JSON.parse(props.module.provider); previewData.value = JSON.parse(props.module.previewData); elementUtil.setPreviewData(previewData.value); elementUtil.setProvider(provider.value); elementUtil.initPanel(panel, provider); elementUtil.setCurrentPanel(panel); } const templateWatchStop = vueDemi.watch(() => props.template, (_n, _o) => { if (props.template) { initTemplate(); templateWatchStop(); } }); function initTemplate() { if (!props.template) { return; } utils.to(JSON.parse(props.template.content), panel); elementUtil.setCurrentPanel(panel); if (!panel.watermarkContent) { } if (!panel.groupList) { panel.groupList = []; } if (!panel.auxiliaryLineList) { panel.auxiliaryLineList = []; } for (let myAuxiliaryLine of panel.auxiliaryLineList) { myAuxiliaryLine.runtimeOption = { x: 0, y: 0, auxiliaryLineStatus: "SHOW" }; } panel.runtimeOption = {}; for (let i = 0; i < panel.elementList.length; i++) { const element = panel.elementList[i]; elementUtil.parentInitElement(panel, panel, element, i); } panel.pageHeader && elementUtil.parentInitElement(panel, panel, panel.pageHeader, 0); panel.pageFooter && elementUtil.parentInitElement(panel, panel, panel.pageFooter, 0); historyUtil.init(); if (provider.value.pageUnit == void 0) { provider.value.pageUnit = "px"; } utils.mitt.emit("updatePanel"); utils.mitt.emit("changePageSize"); } function back() { $emit("back"); } function saveTemplate() { if (props.generateImg) { if (!data.buildImgIs) { data.buildImgIs = true; printer.MyPrinter.imgChrome({ previewDataList: [elementUtil.defaultPreviewData(previewData.value)[0]] }).then((res) => { $emit("panelImg", res.blobList); data.buildImgIs = false; }).catch((_e) => { data.buildImgIs = false; }); } } const template = {}; template.name = panel.name; template.content = JSON.stringify(panel, (key, value) => { if ("runtimeOption" == key) return void 0; return value; }); if (props.saveTemplate != null) { props.saveTemplate(template).then((_res) => { myMessage.MyMessage.success(index.i18n("common.save.success")); }).catch((e) => { let failMsg = index.i18n("common.save.fail"); if (e.msg) { failMsg = failMsg + ": " + e.msg; } myMessage.MyMessage.success(failMsg); }); } } return (_ctx, _cache) => { return vue.openBlock(), vue.createElementBlock( vue.Fragment, null, [ vue.createElementVNode("section", vue.mergeProps({ class: "design-container-root cursor-resize" }, _ctx.$attrs, { style: vue.unref(style), "data-rotation": vue.unref(appStore).dataRotation }), [ vue.createElementVNode("main", _hoisted_2, [ vue.createVNode(index$1.default, { designProps: props }) ]), vue.createElementVNode("aside", _hoisted_3, [ vue.createVNode(index$2.default, { "module-name": props.module?.name, showBackButton: _ctx.showBackButton, onBack: back }, null, 8, ["module-name", "showBackButton"]) ]) ], 16, _hoisted_1), vue.createVNode(myMouseTips.default) ], 64 /* STABLE_FRAGMENT */ ); }; } }); exports.default = _sfc_main; //# sourceMappingURL=index.vue2.js.map