UNPKG

myprint-design

Version:

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

1 lines 4.89 kB
{"version":3,"file":"devicePixelRatio.mjs","sources":["../../../../src/utils/devicePixelRatio.ts"],"sourcesContent":["import numberUtil from '@myprint/design/utils/numberUtil';\nimport { PageUnit, Panel } from '@myprint/design/types/entity';\nimport { getCurrentPanelUnit } from '@myprint/design/utils/elementUtil';\n\nexport let displayRatio = 3;\nconst unitConvert = {\n px: {\n mm: { ratio: displayRatio, compute: 'div' },\n cm: { ratio: displayRatio * 10, compute: 'div' }\n },\n mm: {\n px: { ratio: displayRatio, compute: 'mul' },\n cm: { ratio: 10, compute: 'div' }\n }\n} as any;\n\nexport function initDisplayRatio() {\n let mmDiv = document.createElement('div');\n let body = document.querySelector('body')!;\n mmDiv.id = 'mm';\n mmDiv.style.width = '1mm';\n mmDiv.className = 'scrollbar-measure';\n body.appendChild(mmDiv);\n// 原生方法获取浏览器对元素的计算值\n let mmDivRect = mmDiv.getBoundingClientRect();\n displayRatio = numberUtil.ceil(mmDivRect.width);\n body.removeChild(mmDiv);\n\n unitConvert.px = {\n mm: { ratio: displayRatio, compute: 'div' },\n cm: { ratio: displayRatio * 10, compute: 'div' }\n };\n unitConvert.mm = {\n px: { ratio: displayRatio, compute: 'mul' },\n cm: { ratio: 10, compute: 'div' }\n };\n}\n\nexport function px2unit(val: number, panel?: Panel): number {\n // 获取每毫米的像素值\n return unit2unit('px', getCurrentPanelUnit(panel), val);\n}\n\nexport function unit2px(val: number | undefined, panel?: Panel) {\n if (isNaN(val!)) {\n return 0;\n }\n // 获取每毫米的像素值\n return unit2unit(getCurrentPanelUnit(panel), 'px', val);\n}\n\nexport function unit2unit(oldUnit: PageUnit, newUnit: PageUnit, val: number | undefined): number {\n if (val == null) {\n return 0;\n }\n if (isNaN(val)) {\n return 0;\n }\n if (oldUnit === newUnit) {\n return val;\n }\n let convert = unitConvert[oldUnit]?.[newUnit];\n if (convert != null) {\n if (convert.compute === 'div') {\n return numberUtil.div(val, convert.ratio);\n } else {\n return numberUtil.mul(val, convert.ratio);\n }\n }\n\n convert = unitConvert[newUnit]?.[oldUnit];\n if (convert.compute === 'div') {\n return numberUtil.mul(val, convert.ratio);\n } else {\n return numberUtil.div(val, convert.ratio);\n }\n}\n\n\n"],"names":["numberUtil"],"mappings":"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"}