UNPKG

label-print-design

Version:

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

111 lines (108 loc) 4.64 kB
import { defineComponent, openBlock, createElementBlock, createElementVNode, createVNode, createCommentVNode } from 'vue'; import StyleDesign from './style-design.vue.mjs'; import { defaultPreviewData, clearPanel, getCurrentPanel } from '../../../utils/elementUtil.mjs'; import { record, ActionEnum } from '../../../utils/historyUtil.mjs'; import { updatePanel } from '../../../plugins/moveable/moveable.mjs'; import { MyPrinter } from '../../../printer.mjs'; import { download, mitt } from '../../../utils/utils.mjs'; import { MyMessage } from '../../my/message/my-message.mjs'; import { useAppStoreHook } from '../../../stores/app.mjs'; const _hoisted_1 = { class: "toolbar-container" }; const _hoisted_2 = { class: "display-flex space-between width-100-p" }; var _sfc_main = /* @__PURE__ */ defineComponent({ __name: "toolbar", props: { designProps: {} }, setup(__props) { const useApp = useAppStoreHook(); function print() { const defaultPrinter = MyPrinter.getDefaultPrinter(); MyPrinter.clientPrinter({ previewDataList: defaultPreviewData(useApp.previewData), printer: defaultPrinter?.name }).then((res) => { switch (res.status) { case "SUCCESS": break; case "TIMEOUT": MyMessage.error("\u6253\u5370\u8D85\u65F6"); break; case "ERROR": MyMessage.error("\u6253\u5370\u5931\u8D25\uFF0C" + res.msg); break; } }).catch((e) => { MyMessage.error("\u6253\u5370\u5931\u8D25\uFF0C" + e.msg); }); } function serverDownloadPdf() { MyPrinter.pdfServer({ previewDataList: defaultPreviewData(useApp.previewData) }).then((res) => { switch (res.status) { case "SUCCESS": download(res.blob, "myprint.pdf"); break; case "TIMEOUT": MyMessage.error("\u4E0B\u8F7D\u8D85\u65F6"); break; case "ERROR": MyMessage.error("\u4E0B\u8F7D\u5931\u8D25\uFF0C" + res.msg); break; } }).catch((e) => { MyMessage.error("\u4E0B\u8F7D\u5931\u8D25\uFF0C" + e.msg); }); } function preview() { MyPrinter.chromePreview({ previewDataList: defaultPreviewData(useApp.previewData) }); } function save() { mitt.emit("saveTemplate", {}); } function clearPanelClick() { clearPanel(getCurrentPanel()); updatePanel(); record({ action: ActionEnum.CLEAR }); } return (_ctx, _cache) => { return openBlock(), createElementBlock("div", _hoisted_1, [ createElementVNode("div", _hoisted_2, [ createVNode(StyleDesign), createCommentVNode(` <div class="display-flex-column toolbar-tool"> <div class="display-flex"> <my-button v-if="designProps.showPrintButton" size="small" class="toolbar-tool_button_margin_right" @click="print"> <my-icon> <Printer /> </my-icon> {{ i18n('toolbar.print') }} </my-button> <my-button v-if="designProps.showDownloadPdfButton" size="small" class="toolbar-tool_button_margin_right" @click="serverDownloadPdf"> <my-icon> <Printer /> </my-icon> {{ i18n('toolbar.download') }} </my-button> <my-button v-if="designProps.showPreviewButton" size="small" class="toolbar-tool_button_margin_right" @click="preview"> <i class="icon-zitiyulan iconfont" /> {{ i18n('toolbar.preview') }} </my-button> <my-button v-if="designProps.showClearButton" size="small" class="toolbar-tool_button_margin_right" @click="clearPanelClick"> {{ i18n('toolbar.clear') }} </my-button> <my-button v-if="designProps.showSaveButton" size="small" class="toolbar-tool_button_margin_right" :disabled="getCurrentPanel().name == null || getCurrentPanel().name == ''" @click="save">{{ i18n('toolbar.save') }} </my-button> </div> </div> `) ]) ]); }; } }); export { _sfc_main as default }; //# sourceMappingURL=toolbar.vue2.mjs.map