From d59f518f466274b2caeb2e01c10c92deafe7c93b Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 09 二月 2022 11:48:29 +0800 Subject: [PATCH] 2022-02-09 --- src/views/printTemplate/print.js | 53 +++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 41 insertions(+), 12 deletions(-) diff --git a/src/views/printTemplate/print.js b/src/views/printTemplate/print.js index b2cbe6f..de60e3d 100644 --- a/src/views/printTemplate/print.js +++ b/src/views/printTemplate/print.js @@ -4,7 +4,7 @@ * @param {Object} configs 閰嶇疆淇℃伅 * @param {Boolean} selectId 缂栬緫鍏冪礌 */ - static sketch (configs, selectId) { + static sketch (configs, selectId, debug = false) { if (!configs.height || !configs.width) return if (configs.height / configs.width > 10 || configs.width / configs.height > 10) return @@ -36,6 +36,13 @@ element.fontSize = element.fontSize * sizeradio } else if (element.type === 'qrcode') { element.qrcodeWidth = element.qrcodeWidth * ratio + + if (element.qrcodeWidth > element.height) { + element.qrcodeWidth = element.height + } + if (element.qrcodeWidth > element.width) { + element.qrcodeWidth = element.width + } } else if (element.type === 'image') { element.imgWidth = element.imgWidth * ratio element.imgHeight = element.imgHeight * ratio @@ -43,7 +50,7 @@ }) return new Promise(resolve => { - this.sketchothers(context, elements, selectId, ratio, resolve) + this.sketchothers(context, elements, selectId, debug, ratio, resolve) }) } else { return new Promise(resolve => { @@ -57,7 +64,7 @@ * @param {Object} context 鐢诲竷瀵硅薄 * @param {Object} elements 鍥剧墖鏂囧瓧淇℃伅 */ - static sketchothers (context, elements, selectId, ratio, resolve) { + static sketchothers (context, elements, selectId, debug, ratio, resolve) { let element = elements.splice(0, 1)[0] // 閫愪釜缁樺埗鍥剧墖鏂囧瓧 let textLineSpace = 5 // 缁樺埗鏃惰闂磋窛锛岄槻姝㈡枃瀛楅噸鍙� context.save() @@ -73,6 +80,12 @@ if (selectId === element.uuid) { // 閫変腑鍏冪礌锛岃缃閮ㄩ槾褰� context.shadowBlur = 5 context.shadowColor = '#1890ff' + context.fillStyle = 'white' + context.fillRect(element.left, element.top, element.width || 1, element.height || 1) + context.shadowBlur = 0 + } else if (debug) { + context.shadowBlur = 3 + context.shadowColor = 'orange' context.fillStyle = 'white' context.fillRect(element.left, element.top, element.width || 1, element.height || 1) context.shadowBlur = 0 @@ -117,7 +130,7 @@ if (!element.width || !element.height) { context.restore() // 閲嶇疆鐢诲竷 if (elements.length > 0) { - this.sketchothers(context, elements, selectId, ratio, resolve) + this.sketchothers(context, elements, selectId, debug, ratio, resolve) } else { this.cachesketch(context, resolve) } @@ -131,6 +144,14 @@ context.fillStyle = element.fontColor let lines = element.value.split('\n') + + if (!element.value && element.field) { + if (element.field === 'other_field') { + lines = [element.cusfield || ''] + } else { + lines = [element.field] + } + } let _y = element.top + element.padding + element.fontSize + element.borderSize let _left = element.left + element.borderSize + element.padding let _right = element.left + element.width - element.padding - element.borderSize @@ -258,7 +279,7 @@ context.restore() // 閲嶇疆鐢诲竷 if (elements.length > 0) { - this.sketchothers(context, elements, selectId, ratio, resolve) + this.sketchothers(context, elements, selectId, debug, ratio, resolve) } else { this.cachesketch(context, resolve) } @@ -301,7 +322,7 @@ context.restore() // 閲嶇疆鐢诲竷 if (elements.length > 0) { - this.sketchothers(context, elements, selectId, ratio, resolve) + this.sketchothers(context, elements, selectId, debug, ratio, resolve) } else { this.cachesketch(context, resolve) } @@ -314,7 +335,7 @@ context.restore() // 閲嶇疆鐢诲竷 if (elements.length > 0) { - this.sketchothers(context, elements, selectId, ratio, resolve) + this.sketchothers(context, elements, selectId, debug, ratio, resolve) } else { this.cachesketch(context, resolve) } @@ -343,7 +364,7 @@ context.restore() // 閲嶇疆鐢诲竷 if (elements.length > 0) { - this.sketchothers(context, elements, selectId, ratio, resolve) + this.sketchothers(context, elements, selectId, debug, ratio, resolve) } else { this.cachesketch(context, resolve) } @@ -353,7 +374,7 @@ context.restore() // 閲嶇疆鐢诲竷 if (elements.length > 0) { - this.sketchothers(context, elements, selectId, ratio, resolve) + this.sketchothers(context, elements, selectId, debug, ratio, resolve) } else { this.cachesketch(context, resolve) } @@ -382,10 +403,10 @@ if (image.complete) { context.drawImage(image, _left, _top, element.imgWidth, element.imgHeight) - + context.restore() // 閲嶇疆鐢诲竷 if (elements.length > 0) { - this.sketchothers(context, elements, selectId, ratio, resolve) + this.sketchothers(context, elements, selectId, debug, ratio, resolve) } else { this.cachesketch(context, resolve) } @@ -395,12 +416,20 @@ context.restore() // 閲嶇疆鐢诲竷 if (elements.length > 0) { - this.sketchothers(context, elements, selectId, ratio, resolve) + this.sketchothers(context, elements, selectId, debug, ratio, resolve) } else { this.cachesketch(context, resolve) } } } + image.onerror = () => { + context.restore() // 閲嶇疆鐢诲竷 + if (elements.length > 0) { + this.sketchothers(context, elements, selectId, debug, ratio, resolve) + } else { + this.cachesketch(context, resolve) + } + } } } -- Gitblit v1.8.0