UNPKG

tav-ui

Version:
1 lines 4.8 kB
{"version":3,"file":"qr-code2.mjs","sources":["../../../../../../../packages/components/qr-code/src/qr-code.vue"],"sourcesContent":["<template>\n <div>\n <component :is=\"tag\" ref=\"wrapRef\" />\n </div>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, onMounted, ref, unref, watch } from 'vue'\nimport { toDataURL } from 'qrcode'\nimport { downloadByUrl } from '@tav-ui/utils/file/download'\nimport { toCanvas } from './qrcodePlus'\nimport { qrcodeProps } from './types'\nimport type { QrcodeDoneEventParams } from './typing'\n\nexport default defineComponent({\n name: 'TaQrCode',\n props: qrcodeProps,\n emits: { done: (data: QrcodeDoneEventParams) => !!data, error: (error: any) => !!error },\n setup(props, { emit }) {\n const wrapRef = ref<HTMLCanvasElement | HTMLImageElement | null>(null)\n async function createQrcode() {\n try {\n const { tag, value, options = {}, width, logo } = props\n const renderValue = String(value)\n const wrapEl = unref(wrapRef)\n\n if (!wrapEl) return\n\n if (tag === 'canvas') {\n const url: string = await toCanvas({\n canvas: wrapEl,\n width,\n logo: logo as any,\n content: renderValue,\n options: options || {},\n })\n emit('done', { url, ctx: (wrapEl as HTMLCanvasElement).getContext('2d') })\n return\n }\n\n if (tag === 'img') {\n const url = await toDataURL(renderValue, {\n errorCorrectionLevel: 'H',\n width,\n ...options,\n })\n ;(unref(wrapRef) as HTMLImageElement).src = url\n emit('done', { url })\n }\n } catch (error) {\n emit('error', error)\n }\n }\n /**\n * file download\n */\n function download(fileName?: string) {\n let url = ''\n const wrapEl = unref(wrapRef)\n if (wrapEl instanceof HTMLCanvasElement) {\n url = wrapEl.toDataURL()\n } else if (wrapEl instanceof HTMLImageElement) {\n url = wrapEl.src\n }\n if (!url) return\n downloadByUrl({\n url,\n fileName,\n })\n }\n\n onMounted(createQrcode)\n\n // 监听参数变化重新生成二维码\n watch(\n props,\n () => {\n createQrcode()\n },\n {\n deep: true,\n }\n )\n\n return { wrapRef, download }\n },\n})\n</script>\n"],"names":["_openBlock","_createElementBlock","_createBlock","_resolveDynamicComponent"],"mappings":"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"}