UNPKG

myprint-design

Version:

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

1 lines 10.9 kB
{"version":3,"file":"index.vue2.mjs","sources":["../../../../../src/components/content/index.vue"],"sourcesContent":["<template>\n <section class=\"design-container-root cursor-resize\" v-bind=\"$attrs\"\n :style=\"style\"\n :data-rotation=\"appStore.dataRotation\">\n <aside class=\"my-aside display-flex-column\" style=\"border-right: 1px #e9e9e9 solid; background: #f8f8f8\">\n <widget :module-name=\"props.module?.name\" :showBackButton=\"showBackButton\" @back=\"back\" />\n </aside>\n <main class=\" my-main design-container-root_main\">\n <PanelView :designProps=\"props\" />\n </main>\n </section>\n <my-mouse-tips />\n</template>\n\n<script setup lang=\"ts\">\nimport widget from '@myprint/design/components/content/widget/index.vue';\nimport PanelView from '@myprint/design/components/content/panel/index.vue';\nimport { computed, CSSProperties, onMounted, onUnmounted, reactive, Ref, ref, watch } from 'vue-demi';\nimport { Panel, Provider, RuntimeElementOption } from '@myprint/design/types/entity';\nimport { mitt, to } from '@myprint/design/utils/utils';\nimport { init } from '@myprint/design/utils/historyUtil';\n// @ts-ignore\nimport { Module, SaveResult, Template } from '@myprint/design/types/R';\nimport { useAppStoreHook } from '@myprint/design/stores/app';\nimport MyMouseTips from '@myprint/design/components/my/mouse-tips/my-mouse-tips.vue';\nimport {\n defaultPreviewData,\n initPanel,\n parentInitElement,\n setCurrentPanel,\n setPreviewData,\n setProvider\n} from '@myprint/design/utils/elementUtil';\nimport { newSelecto } from '@myprint/design/plugins/moveable/selecto';\nimport { MyMessage } from '@myprint/design/components/my/message/my-message';\nimport { MyPrinter } from '@myprint/design/printer';\nimport { i18n } from '@myprint/design/locales';\n\nconst appStore = useAppStoreHook();\n\nconst $emit = defineEmits<{\n (e: 'back'): void;\n (e: 'panelImg', blobList: Blob[]): void;\n}>();\n\nconst data = reactive({\n buildImgIs: false\n});\n\nconst provider = ref({}) as Ref<Provider>;\nconst panel = reactive({\n runtimeOption: {\n dragInIs: false\n },\n type: 'Panel',\n dragSnapPanelIs: 1,\n dragSnapIs: 1\n}) as Panel;\nconst previewData = ref<any[]>([]);\nsetCurrentPanel(panel);\n\nconst props = withDefaults(defineProps<{\n module?: Module;\n template?: Template;\n height?: string;\n saveTemplate?: (template: Template) => Promise<SaveResult>;\n generateImg?: boolean;\n showBackButton?: boolean;\n showPrintButton?: boolean;\n showDownloadPdfButton?: boolean;\n showPreviewButton?: boolean;\n showClearButton?: boolean;\n showSaveButton?: boolean;\n}>(), {\n showBackButton: true,\n showPrintButton: true,\n showDownloadPdfButton: true,\n showPreviewButton: true,\n showClearButton: true,\n showSaveButton: true\n});\n\nconst style = computed(() => {\n return <CSSProperties>{\n height: props.height\n };\n});\n\nonMounted(() => {\n mitt.on('saveTemplate', saveTemplate);\n initModule();\n initTemplate();\n newSelecto();\n});\n\nonUnmounted(() => {\n mitt.off('saveTemplate', saveTemplate);\n});\n\nconst moduleWatchStop = watch(() => props.module, (_n, _o) => {\n if (props.module) {\n initModule();\n moduleWatchStop();\n }\n});\n\nfunction initModule() {\n if (!props.module) {\n return;\n }\n provider.value = JSON.parse(props.module.provider!);\n previewData.value = JSON.parse(props.module.previewData!);\n setPreviewData(previewData.value);\n setProvider(provider.value);\n initPanel(panel, provider);\n setCurrentPanel(panel);\n}\n\nconst templateWatchStop = watch(() => props.template, (_n, _o) => {\n if (props.template) {\n initTemplate();\n templateWatchStop();\n }\n});\n\nfunction initTemplate() {\n if (!props.template) {\n return;\n }\n to(JSON.parse(props.template.content), panel);\n setCurrentPanel(panel);\n \n // initPanel();\n \n if (!panel.watermarkContent) {\n // panel.watermarkContent = 'my-print';\n }\n if (!panel.groupList) {\n panel.groupList = [];\n }\n if (!panel.auxiliaryLineList) {\n panel.auxiliaryLineList = [];\n }\n for (let myAuxiliaryLine of panel.auxiliaryLineList) {\n myAuxiliaryLine.runtimeOption = { x: 0, y: 0, auxiliaryLineStatus: 'SHOW' } as RuntimeElementOption;\n }\n panel.runtimeOption = {} as any;\n \n // console.log(JSON.parse(JSON.stringify(panel.elementList[0])))\n // for (let i = 0; i < 1000; i++) {\n // const tmp = JSON.parse(JSON.stringify(panel.elementList[0]))\n // tmp.y = tmp.y + 0.2\n // // panel.elementList?.unshift(tmp)\n //\n // }\n for (let i = 0; i < panel.elementList.length; i++) {\n const element = panel.elementList[i];\n parentInitElement(panel, panel, element, i);\n }\n panel.pageHeader && parentInitElement(panel, panel, panel.pageHeader, 0);\n panel.pageFooter && parentInitElement(panel, panel, panel.pageFooter, 0);\n \n init();\n \n if (provider.value.pageUnit == undefined) {\n provider.value.pageUnit = 'px';\n }\n \n mitt.emit('updatePanel');\n mitt.emit('changePageSize');\n}\n\nfunction back() {\n $emit('back');\n}\n\nfunction saveTemplate() {\n if (props.generateImg) {\n if (!data.buildImgIs) {\n data.buildImgIs = true;\n MyPrinter.imgChrome({ previewDataList: [defaultPreviewData(previewData.value)[0]] })\n .then(res => {\n $emit('panelImg', res.blobList!);\n data.buildImgIs = false;\n }).catch(_e => {\n data.buildImgIs = false;\n });\n }\n }\n \n const template = {} as Template;\n template.name = panel.name;\n template.content = JSON.stringify(panel, (key, value) => {\n if ('runtimeOption' == key) return undefined;\n return value;\n });\n if (props.saveTemplate != null) {\n props.saveTemplate(template)\n .then(_res => {\n // 保存成功\n MyMessage.success(i18n('common.save.success'));\n }).catch(e => {\n // 保存失败\n let failMsg = i18n('common.save.fail');\n if (e.msg) {\n failMsg = failMsg + ': ' + e.msg;\n }\n MyMessage.success(failMsg);\n });\n }\n}\n</script>\n"],"names":[],"mappings":"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"}