gxd-vue-library
Version:
依赖与element Ui插件库,聚福宝福利PC端插件库
58 lines (47 loc) • 1.58 kB
JavaScript
;
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)
})
}