/*
 * @Descripttion: 二维码展示弹窗
 * @Company: 思宏科技
 * @version: v1.0
 * @Author: HJ
 * @Date: 2021-12-02 09:16:54
 * @LastEditors: OBKoro1
 * @LastEditTime: 2021-12-15 18:09:18
 */
import { fhCreateRemoteQr } from '../../../api/remote/index'
import { sceneEncode } from '../../../utils/util'
const { Loading, hLoading } = getApp()

const componentOptions = {
  // 组件选项
  options: {
    multipleSlots: true,
    addGlobalClass: true
  },
  behaviors: [],
  properties: {
    remoteVisitId: {
      type: [Number, String],
      value: null
    },
    visibled: {
      type: Boolean,
      value: false,
      observer(v) {
        if (v) this.getRemoteQr()
        else {
          this.setData({
            show: v
          })
        }
      }
    },
    disabled: {
      type: Boolean,
      value: false
    }
  },
  // 组件数据
  data: {
    isPageHidden: false, // 页面是否处于隐藏状态
    show: false, // 出示二维码
    qrImage: null
  },
  // 数据监听器
  observers: {},
  // 组件方法
  methods: {
    init() {},
    // 获取远程探视二维码
    async getRemoteQr() {
      this.createQr()
      // Loading('二维码加载中...')
      // try {
      //   const query = sceneEncode({
      //     id: this.data.remoteVisitId
      //   })
      //   const { results } = await fhCreateRemoteQr({
      //     page: 'pages/home/index',
      //     scene: `${query}`
      //   })
      //   hLoading()
      //   this.setData({
      //     qrImage: results,
      //     show: true
      //   })
      // } catch (e) {
      //   console.log('debug axios', e)
      // }
    },
    // 模拟生成二维码
    createQr() {
      this.setData({
        qrImage: `https://api.pwmqr.com/qrcode/create/?url=${this.data.remoteVisitId}`,
        show: true
      })
    },
    // 关闭弹窗
    close() {
      this.triggerEvent('close')
    }
  },
  // 组件生命周期
  lifetimes: {
    created() {},
    attached() {
      this.init()
    },
    ready() {},
    moved() {},
    detached() {}
  },
  definitionFilter() {},
  // 页面生命周期
  pageLifetimes: {
    // 页面被展示
    show() {
      const { isPageHidden } = this.data

      // show事件发生前，页面不是处于隐藏状态时
      if (!isPageHidden) {
        return
      }

      // 重新执行定时器等操作
    },
    // 页面被隐藏
    hide() {
      this.setData({
        isPageHidden: true
      })

      // 清除定时器等操作
    },
    // 页面尺寸变化时
    resize() {}
  }
}

Component(componentOptions)
