2024-10-16 18:15:19 +08:00
|
|
|
import { hiprint } from 'vue-plugin-hiprint'
|
|
|
|
|
export const customProvider = function (options) {
|
|
|
|
|
var addElementTypes = function (context) {
|
|
|
|
|
context.removePrintElementTypes('customProvider')
|
|
|
|
|
context.addPrintElementTypes('customProvider', [
|
|
|
|
|
new hiprint.PrintElementTypeGroup('', [
|
|
|
|
|
{
|
2024-10-20 21:51:59 +08:00
|
|
|
tid: 'providerModule1.html',
|
|
|
|
|
title: 'temu条码',
|
|
|
|
|
data: 'XS888888888',
|
|
|
|
|
type: 'html',
|
|
|
|
|
formatter: function (title, options, templateData) {
|
|
|
|
|
console.log(options, templateData)
|
2024-10-21 18:01:56 +08:00
|
|
|
var elId = 'barCode-' + new Date().getTime()
|
2024-10-21 21:56:34 +08:00
|
|
|
// eslint-disable-next-line no-undef
|
|
|
|
|
$('body').append('<svg id="' + elId + '"></svg>')
|
2024-10-20 21:51:59 +08:00
|
|
|
|
2024-10-21 21:56:34 +08:00
|
|
|
// eslint-disable-next-line no-undef
|
2024-10-21 18:10:59 +08:00
|
|
|
JsBarcode('#'+ elId, '96778555251', {
|
2024-10-21 21:56:34 +08:00
|
|
|
format: "CODE128B",
|
2024-10-21 18:01:56 +08:00
|
|
|
width: 2,
|
2024-10-21 21:56:34 +08:00
|
|
|
height: options.height * 0.6 + 4,
|
2024-10-21 18:01:56 +08:00
|
|
|
margin: 0,
|
|
|
|
|
displayValue: false
|
2024-10-20 21:51:59 +08:00
|
|
|
})
|
2024-10-21 18:01:56 +08:00
|
|
|
|
2024-10-21 21:56:34 +08:00
|
|
|
// eslint-disable-next-line no-undef
|
2024-10-21 18:01:56 +08:00
|
|
|
const codeHtml = $(`#${elId}`).html()
|
2024-10-21 21:56:34 +08:00
|
|
|
// eslint-disable-next-line no-undef
|
2024-10-21 18:01:56 +08:00
|
|
|
$(`#${elId}`).remove()
|
2024-10-21 21:56:34 +08:00
|
|
|
// eslint-disable-next-line no-undef
|
|
|
|
|
$('document').on('resize', `#${elId}`, e => {
|
|
|
|
|
console.log(e)
|
|
|
|
|
});
|
2024-10-21 18:01:56 +08:00
|
|
|
var html = `
|
2024-10-20 21:51:59 +08:00
|
|
|
<div class="temuBarCode">
|
|
|
|
|
<div class="temuBarCode-top">
|
|
|
|
|
<div class="hiprint-printElement-text-content hiprint-printElement-content">(AA+AAA)*20PCS</div>
|
|
|
|
|
<div class="hiprint-printElement-text-content hiprint-printElement-content">AA 20PCS+AAA 20PCS</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="temuBarCode-middle">
|
|
|
|
|
<div class="hiprint-printElement-text-content hiprint-printElement-content temuBarCode-code">
|
2024-10-21 21:56:34 +08:00
|
|
|
<svg id="${elId}" style="display: block" width="100%" display="block" height="100%" class="hibarcode_imgcode" preserveAspectRatio="none slice">
|
2024-10-21 18:01:56 +08:00
|
|
|
${codeHtml}
|
|
|
|
|
</svg>
|
2024-10-20 21:51:59 +08:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="temuBarCode-bottom">
|
|
|
|
|
<div class="hiprint-printElement-text-content hiprint-printElement-content">1034130097</div>
|
|
|
|
|
<div class="hiprint-printElement-text-content hiprint-printElement-content">Made in China</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
`
|
2024-10-21 18:01:56 +08:00
|
|
|
return html
|
2024-10-20 21:51:59 +08:00
|
|
|
},
|
2024-10-16 18:15:19 +08:00
|
|
|
options: {
|
2024-10-20 21:51:59 +08:00
|
|
|
width: 316,
|
|
|
|
|
height: 120
|
2024-10-16 18:15:19 +08:00
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
tid: 'providerModule1.barcode',
|
|
|
|
|
title: '条形码',
|
|
|
|
|
data: 'XS888888888',
|
|
|
|
|
type: 'text',
|
|
|
|
|
options: {
|
|
|
|
|
field: 'barcode',
|
|
|
|
|
testData: 'XS888888888',
|
|
|
|
|
height: 32,
|
|
|
|
|
fontSize: 12,
|
|
|
|
|
lineHeight: 18,
|
|
|
|
|
textAlign: 'left',
|
|
|
|
|
textType: 'barcode',
|
|
|
|
|
hideTitle: false
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
tid: 'providerModule1.qrcode',
|
|
|
|
|
title: '二维码',
|
|
|
|
|
data: 'XS888888888',
|
|
|
|
|
type: 'text',
|
|
|
|
|
options: {
|
|
|
|
|
field: '',
|
|
|
|
|
testData: '',
|
|
|
|
|
height: 32,
|
|
|
|
|
fontSize: 12,
|
|
|
|
|
lineHeight: 18,
|
|
|
|
|
textType: 'qrcode',
|
|
|
|
|
hideTitle: false
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
tid: 'providerModule1.image',
|
|
|
|
|
title: 'Logo',
|
|
|
|
|
data: 'https://foruda.gitee.com/avatar/1677050350324030848/5400665_ccsimple_1591166830.png!avatar200',
|
|
|
|
|
type: 'image'
|
|
|
|
|
}
|
|
|
|
|
])
|
|
|
|
|
])
|
|
|
|
|
}
|
|
|
|
|
return {
|
|
|
|
|
addElementTypes: addElementTypes
|
|
|
|
|
}
|
|
|
|
|
}
|