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