myprint-design
Version:
操作简单,组件丰富的一站式打印解决方案打印设计器
1 lines • 7.08 kB
Source Map (JSON)
{"version":3,"file":"text.vue2.mjs","sources":["../../../../../../src/components/design/text/text.vue"],"sourcesContent":["<template>\n <my-barcode v-if=\"element.contentType === 'Barcode'\" :element=\"element\" />\n <my-qrcode v-else-if=\"element.contentType === 'QrCode'\" :element=\"element\" />\n <div\n v-else\n class=\"my-print-text_container\"\n ref=\"contentRef\"\n :contentEditable=\"elementHandleEditStatusList.includes(element.runtimeOption.status)\"\n v-html=\"data.content\"\n :style=\"style\"\n @input=\"handleInput\"\n @keydown=\"handleKeydown($event)\" />\n</template>\n<script setup lang=\"ts\">\nimport { computed, onMounted, reactive, ref, watch } from 'vue-demi';\nimport { MyElement } from '@myprint/design/types/entity';\nimport MyBarcode from '@myprint/design/components/design/barcode';\nimport MyQrcode from '@myprint/design/components/design/qrcode';\nimport { elementCommonStyle, formatter } from '@myprint/design/utils/elementUtil';\nimport { checkInput, freshMoveableOption, moveableEditing } from '@myprint/design/plugins/moveable/moveable';\nimport { elementHandleEditStatusList } from '@myprint/design/constants/common';\nimport { br2n, n2br } from '@myprint/design/utils/utils';\n\nconst props = withDefaults(defineProps<{\n element: MyElement\n}>(), {\n element: () => ({} as MyElement)\n});\nconst contentRef = ref();\nconst data = reactive({\n content: '',\n innerContent: ''\n});\nconst style = computed(() => {\n return elementCommonStyle(props.element);\n});\n\nonMounted(() => {\n data.content = n2br(props.element.data);\n data.innerContent = data.content;\n if (props.element.data == null) {\n const elementData = formatter(props.element);\n if (elementData != null) {\n props.element.data = elementData;\n data.content = n2br(elementData);\n data.innerContent = elementData;\n }\n }\n});\n\nfunction handleKeydown(event: KeyboardEvent) {\n if (event.code === 'Enter') {\n // ‌\n document.execCommand('insertHTML', false, '<br>‌');\n event.preventDefault();\n }\n event.stopPropagation();\n}\n\nfunction click(event: MouseEvent) {\n props.element.runtimeOption.status = 'HANDLE_EDIT_ING';\n \n checkInput();\n \n moveableEditing();\n \n const x = event.clientX;\n const y = event.clientY;\n // @ts-ignore\n const range = document.caretRangeFromPoint(x, y) || document.caretPositionFromPoint(x, y);\n \n if (range) {\n const sel = window.getSelection()!;\n sel.removeAllRanges();\n sel.addRange(range);\n }\n \n contentRef.value.focus();\n}\n\nfunction handleInput(event: any) {\n // 处理输入事件,更新 content\n props.element.data = br2n(event.target.innerHTML);\n data.innerContent = props.element.data;\n}\n\nwatch(() => props.element.runtimeOption.status, (n, _o) => {\n if (contentRef.value == undefined) {\n return;\n }\n if (n == 'HANDLE_ED') {\n contentRef.value.addEventListener('dblclick', click);\n } else {\n contentRef.value.removeEventListener('dblclick', click);\n }\n});\n\nwatch(() => props.element.data, (_n, _o) => {\n if (data.innerContent !== props.element.data) {\n data.content = n2br(props.element.data);\n data.innerContent = data.content;\n }\n});\n\nwatch(() => props.element.option.formatter, (_n, _o) => {\n const elementData = formatter(props.element);\n if (elementData != null) {\n props.element.data = elementData;\n data.content = n2br(elementData);\n data.innerContent = elementData;\n }\n});\n\nwatch(() => props.element.contentType, (n, _o) => {\n if (n != 'QrCode') {\n props.element.option.keepRatio = undefined!;\n } else {\n props.element.option.keepRatio = true;\n }\n freshMoveableOption(props.element);\n});\n</script>\n"],"names":[],"mappings":"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"}