SmartParks_visitore/common/qrutil.js
2025-08-21 11:23:54 +08:00

72 lines
1.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 二维码生成工具类
*/
export default {
/**
* 生成二维码
* @param {Object} options 配置参数
* @param {String} options.text 要生成二维码的文本内容
* @param {Number} options.size 二维码尺寸默认200
* @param {String} options.color 二维码颜色,默认#000000
* @param {String} options.bgColor 背景颜色,默认#FFFFFF
* @param {String} options.canvasId canvas标识默认qrcodeCanvas
* @param {Function} options.success 成功回调
*/
createQRCode(options = {}) {
// 默认配置
const defaults = {
text: '',
size: 200,
color: '#000000',
bgColor: '#FFFFFF',
canvasId: 'qrcodeCanvas',
success: () => {}
}
// 合并配置
const config = { ...defaults, ...options }
if (!config.text) {
console.error('请传入要生成二维码的文本内容')
return
}
// 引入uQRCode
const uQRCode = require('@/components/u-qrcode/u-qrcode.js')
// 生成二维码
uQRCode.make({
canvasId: config.canvasId,
componentInstance: this,
text: config.text,
size: config.size,
margin: 10,
foreground: config.color,
background: config.bgColor,
success: (res) => {
config.success(res)
},
fail: (err) => {
console.error('二维码生成失败:', err)
}
})
},
/**
* 将二维码转换为图片路径
* @param {String} canvasId canvas标识
* @param {Function} success 成功回调
*/
canvasToImage(canvasId = 'qrcodeCanvas', success) {
uni.canvasToTempFilePath({
canvasId: canvasId,
success: (res) => {
success && success(res.tempFilePath)
},
fail: (err) => {
console.error('canvas转换为图片失败', err)
}
}, this)
}
}