UNPKG

gxd-vue-library

Version:

依赖与element Ui插件库,聚福宝福利PC端插件库

58 lines (47 loc) 1.58 kB
'use strict'; const JsBarcode = require('jsbarcode'); /** * @description 获取二维码base64图片 * 参考地址://https://www.npmjs.com/package/jsbarcode?activeTab=readme * @param options {{text: string}} * @param options.text {String} 生产条形码维码文本数据 * @param options.width {Number} 生成条形码线条宽 默认:2.5px * @param options.height {Number} 生成条形码高度 默认:100px * @param options.background {Object} 生成图片背景色文件样式 * @param options.lineColor {Object} 生成条形码线条颜色图片内容颜色 * @param options.showText {Object} 是否显示条形码文本 */ export default function (options) { if(!options.text) { console.warn(`options.text=${options.text},文本不能为空`) } let color = { background: '#fff', //二维码颜色 lineColor: '#000', //二维码空区域颜色 }; let opt = { //https://github.com/lindell/JsBarcode/wiki/CODE128 //https://baike.baidu.com/item/code128/10180592?fr=aladdin format: 'CODE128', type: 'image/png', width: 2.5, height: 100, margin: 10, displayValue: true, fontSize: 20 }; //是否隐藏文本 if(options['showText'] === true ){ opt['fontSize'] = 20; } else { opt['fontSize'] = 0; } options = Object.assign({}, color, opt, options); return new Promise(async (resolve, reject)=>{ const canvas = document.createElement("canvas"); JsBarcode(canvas, options.text, options); let content = await canvas.toDataURL("image/png"); resolve(content) }) }