{"version":3,"file":"print.vue2.mjs","sources":["../../../../../src/components/print/print.vue"],"sourcesContent":["<template>\n    <div class=\"my-print-preview-panel__wrap my-print-print_hidden\">\n        <div class=\"preview-panel__model\">\n            <div class=\"my-print-preview-panel__content\">\n                <div v-for=\"(page, index) in data.pageList\"\n                     ref=\"previewContentRef\"\n                     :key=\"index\"\n                     class=\"my-print-preview-panel__content_page preview-page-top\"\n                     :style=\"{\n                    width: valueUnit(page.width, data.panel),\n                    minHeight: valueUnit(page.height, data.panel),\n                    }\">\n                    <preview\n                        v-for=\"(element, index) in page.previewWrapperList\"\n                        :ref=\"(el) => setItemRef(el, element)\"\n                        :key=\"index\"\n                        :preview=\"element\" />\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { nextTick, reactive, ref } from 'vue-demi';\nimport { MyElement, Panel, PrintOptions, PrintResult } from '@myprint/design/types/entity';\nimport { getCurrentPanelUnit, valueUnit } from '@myprint/design/utils/elementUtil';\nimport Preview from '@myprint/design/components/preview/preview.vue';\nimport { autoPage } from '@myprint/design/components/preview/autoPage';\nimport { chrome2Img, toPdf } from '@myprint/design/utils/pdfUtil';\nimport { unit2px, unit2unit } from '@myprint/design/utils/devicePixelRatio';\nimport { downloadImg, downloadPdf } from '@myprint/design/api/pdfServer';\nimport { getPrintElementHtml, iFramePrint } from '@myprint/design/utils/myprint';\nimport {\n    handleClientResult,\n    handleTimeOut,\n    myPrintClientService,\n    printResult\n} from '@myprint/design/plugins/myprintClientService';\n\ndefineExpose({\n    handleChromePrint,\n    handleClientPrint,\n    handleChromeDownloadImg,\n    handleServerDownloadImg,\n    handleChromeDownloadPdf,\n    handleClientDownloadPdf,\n    handleServerDownloadPdf\n});\nconst data = reactive({\n    dialogVisible: false,\n    pageList: [] as any[],\n    resolveMap: {},\n    previewTimeOutMap: {},\n    panel: null! as Panel\n});\nconst previewContentRef = ref<HTMLDivElement[]>()!;\nlet itemRefs = {} as any;\n\nfunction setItemRef(el: any, item: MyElement) {\n    itemRefs[item.id] = el;\n}\n\nfunction handleChromePrint(printProps: PrintOptions) {\n    return new Promise<PrintResult>(async (resolve, _reject) => {\n        data.resolveMap[printProps.taskId!] = resolve;\n        \n        data.panel = printProps.panel as Panel;\n        await nextTick();\n        await autoPage(previewContentRef, data.pageList, data.panel, printProps.previewDataList);\n        await nextTick();\n        handleTimeOut(printProps, data.previewTimeOutMap, data.resolveMap);\n        printArea();\n        data.pageList.length = 0;\n        printResult(printProps.taskId!, {\n            status: 'SUCCESS',\n            type: 'CHROME_PRINT'\n        }, data.previewTimeOutMap, data.resolveMap);\n    });\n}\n\nfunction handleClientPrint(printProps: PrintOptions) {\n    return new Promise<PrintResult>(async (resolve, _reject) => {\n        data.resolveMap[printProps.taskId!] = resolve;\n        if (printProps.panel) {\n            data.panel = printProps.panel as Panel;\n            await nextTick();\n            await autoPage(previewContentRef, data.pageList, data.panel, printProps.previewDataList);\n            await nextTick();\n        }\n        \n        handleTimeOut(printProps, data.previewTimeOutMap, data.resolveMap);\n        // let printer = printProps.printer;\n        \n        if (!myPrintClientService.connectIs()) {\n            printResult(printProps.taskId!, {\n                status: 'ERROR',\n                msg: '客户端未连接',\n                type: 'CLIENT_PRINT'\n            }, data.previewTimeOutMap, data.resolveMap);\n            return;\n        }\n        \n        // if (isEmpty(printer)) {\n        // printResult(printProps.taskId!, {\n        //     status: 'ERROR',\n        //     msg: '未指定打印机',\n        //     type: 'CLIENT_PRINT'\n        // }, data.previewTimeOutMap, data.resolveMap);\n        // return;\n        // }\n        \n        myPrintClientService.print({\n            cmd: 'print',\n            taskId: printProps.taskId!,\n            options: {\n                ...printProps,\n                title: printProps.title ? printProps.title : (printProps.panel ? (printProps.panel as Panel).name : undefined),\n                html: printProps.panel ? getPrintElementHtml(previewContentRef.value!, data.pageList) : undefined,\n                file: printProps.file ? printProps.file as string : undefined,\n                panel: undefined!,\n                previewDataList: undefined!\n            }\n        }, data.panel).then(clientCmd => {\n            handleClientResult(clientCmd, printResult, data.previewTimeOutMap, data.resolveMap);\n        });\n    });\n}\n\nfunction handleChromeDownloadImg(printProps: PrintOptions) {\n    return new Promise<PrintResult>(async (resolve, _reject) => {\n        data.resolveMap[printProps.taskId!] = resolve;\n        \n        handleTimeOut(printProps, data.previewTimeOutMap, data.resolveMap);\n        data.panel = printProps.panel as Panel;\n        await nextTick();\n        await autoPage(previewContentRef, data.pageList, data.panel, printProps.previewDataList);\n        chrome2Img(previewContentRef.value, {\n            width: unit2px(data.panel.width, data.panel), height: unit2px(data.panel.height, data.panel)\n        }).then(blobList => {\n            // 清空内容\n            data.pageList = [];\n            printResult(printProps.taskId!, {\n                status: 'SUCCESS',\n                blobList,\n                type: 'CHROME_GENERATE_IMG'\n            }, data.previewTimeOutMap, data.resolveMap);\n        });\n    });\n}\n\nfunction handleServerDownloadImg(printProps: PrintOptions) {\n    return new Promise<Blob>(async (resolve, reject) => {\n        data.resolveMap[printProps.taskId!] = resolve;\n        \n        handleTimeOut(printProps, data.previewTimeOutMap, data.resolveMap);\n        data.panel = printProps.panel as Panel;\n        \n        await nextTick();\n        await autoPage(previewContentRef, data.pageList, data.panel, printProps.previewDataList);\n        const html = getPrintElementHtml(previewContentRef.value!, data.pageList);\n        downloadImg({\n            content: html,\n            height: unit2unit(getCurrentPanelUnit(data.panel), 'mm', data.panel.height),\n            width: unit2unit(getCurrentPanelUnit(data.panel), 'mm', data.panel.width)\n        }).then(blob => {\n            printResult(printProps.taskId!, {\n                status: 'SUCCESS',\n                blob,\n                type: 'SERVER_GENERATE_IMG'\n            }, data.previewTimeOutMap, data.resolveMap);\n        }).catch(e => {\n            reject({\n                status: 'SUCCESS',\n                msg: e.msg,\n                type: 'SERVER_GENERATE_IMG'\n            });\n        });\n    });\n}\n\nfunction handleChromeDownloadPdf(printProps: PrintOptions) {\n    return new Promise<PrintResult>(async (resolve, reject) => {\n        data.resolveMap[printProps.taskId!] = resolve;\n        \n        handleTimeOut(printProps, data.previewTimeOutMap, data.resolveMap);\n        data.panel = printProps.panel as Panel;\n        \n        await nextTick();\n        await autoPage(previewContentRef, data.pageList, data.panel, printProps.previewDataList);\n        toPdf(previewContentRef.value, {\n            width: unit2px(data.panel.width, data.panel), height: unit2px(data.panel.height, data.panel)\n        }).then(blob => {\n            data.pageList.length = 0;\n            printResult(printProps.taskId!, {\n                status: 'SUCCESS',\n                blob,\n                type: 'CHROME_GENERATE_PDF'\n            }, data.previewTimeOutMap, data.resolveMap);\n        }).catch(e => {\n            data.pageList.length = 0;\n            reject({\n                status: 'ERROR',\n                msg: e.msg,\n                type: 'CHROME_GENERATE_PDF'\n            });\n        });\n    });\n}\n\nfunction handleClientDownloadPdf(printProps: PrintOptions) {\n    return new Promise<PrintResult>(async (resolve, reject) => {\n        data.resolveMap[printProps.taskId!] = resolve;\n        \n        handleTimeOut(printProps, data.previewTimeOutMap, data.resolveMap);\n        data.panel = printProps.panel as Panel;\n        \n        await nextTick();\n        await autoPage(previewContentRef, data.pageList, data.panel, printProps.previewDataList);\n        \n        myPrintClientService.print({\n            options: { html: getPrintElementHtml(previewContentRef.value!, data.pageList) },\n            cmd: 'generatePdf',\n            taskId: printProps.taskId!\n        }, data.panel).then(res => {\n            handleClientResult(res, printResult, data.previewTimeOutMap, data.resolveMap);\n        }).catch(e => {\n            reject({\n                status: 'ERROR',\n                msg: e.msg,\n                type: 'CLIENT_GENERATE_PDF'\n            });\n        });\n    });\n}\n\nfunction handleServerDownloadPdf(printProps: PrintOptions) {\n    return new Promise<PrintResult>(async (resolve, reject) => {\n        data.resolveMap[printProps.taskId!] = resolve;\n        \n        handleTimeOut(printProps, data.previewTimeOutMap, data.resolveMap);\n        data.panel = printProps.panel as Panel;\n        \n        await nextTick();\n        await autoPage(previewContentRef, data.pageList, data.panel, printProps.previewDataList);\n        const html = getPrintElementHtml(previewContentRef.value!, data.pageList);\n        downloadPdf({\n            content: html,\n            height: unit2unit(getCurrentPanelUnit(data.panel), 'mm', data.panel.height),\n            width: unit2unit(getCurrentPanelUnit(data.panel), 'mm', data.panel.width)\n        }).then(blob => {\n            printResult(printProps.taskId!, {\n                status: 'SUCCESS',\n                blob: blob,\n                type: 'SERVER_GENERATE_PDF'\n            }, data.previewTimeOutMap, data.resolveMap);\n        }).catch(e => {\n            reject({\n                status: 'ERROR',\n                msg: e.msg,\n                type: 'SERVER_GENERATE_PDF'\n            });\n        });\n    });\n}\n\nfunction printArea() {\n    const html = getPrintElementHtml(previewContentRef.value!, data.pageList);\n    iFramePrint(data.panel, html);\n}\n\n</script>\n"],"names":[],"mappings":"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"}