// pages/scan/entrance.js

const gateService = require("../../services/gate")

Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 传入参数
    gateId: "",

    // 接口返回数据
    gateDetail: "",

    // UI显示用
    gateName: "未知",
    open: false, // 大门是否开始

    currentTime: "",

    // 是否已经完成开门
    finishOpen: false,
    // 用户是否有权限进入
    isForbidden: false,
    forbiddenMsg: "",
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log("entrance -> options", typeof (options), options)
    let scene = options.scene ? decodeURIComponent(options.scene) : undefined // %3B == ;   %26 == &
    console.log("scene", options.scene, scene)
    if (!scene || scene.indexOf(';') == -1) {
      wx.showModal({
        title: '出错啦',
        content: '参数不正确' + JSON.stringify(options),
        showCancel: false,
        complete: (res) => {
          wx.navigateBack()
        }
      })
      return
    }

    let gateId = scene.split(';')[1]
    this.setData({
      gateId: gateId,
    });

    this.loadPageData()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.loadPageData()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },


  loadPageData() {
    let gateId = this.data.gateId;
    (async () => {
      let gateDetail = await gateService.getGateDetail(gateId)
      console.log("gateDetail", gateDetail)
      this.setData({
        gateDetail: JSON.stringify(gateDetail),
        gateName: gateDetail.name,
        open: gateDetail.open,
        currentTime: new Date(Date.now() + 8 * 3600 * 1000).toISOString().replace('T', ' ').substring(0, 19)
      });
    })();
  },

  enterGate: function () {
    (async () => {
      let enterGate = await gateService.enterGate(this.data.gateId, "IN")
      console.log("enterGate", enterGate)
      if (enterGate === true) {
        // 开门成功
        this.setData({
          finishOpen: true,
          isForbidden: false,
        })
      } else {
        // 无权进入大门
        this.setData({
          finishOpen: true,
          isForbidden: true,
          forbiddenMsg: "开门失败",
        })
      }
    })();
  },

  navigateBack: function () {
    wx.navigateBack()
  }
})