/** * 二维码生成工具类 */ 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) } }