// pages/roomManger/roomManger
var util = require('./../../utils/util.js');
var api = require('./../../config/api.js');
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    roomList: [],
    hasData: true,
    loading: false,
    listNmb:{
      NotStart:0,
      Start:0,
    },
    isSearch: false,
    state: true,
    canShow: false,
    maxPage: false,
    fetcherData: {
      type: 32,
      address: '',
      page: 1,
      size: 20,
      name: '',
      state: 102
    }
  },
  async getUserInfo() {
    const {
      data
    } = await util.request(api.UserInfo)
    console.log('UserInfo', data)
    let {
      canShow
    } = data
    wx.setStorageSync('userinfoDetail', data)
    this.setData({
      canShow: canShow !== 1 ? false : true,
      userInfo: {
        nickName: data.nickname,
        avatarUrl: data.avatar,
      }
    })
  },
  async handleDelete(e) {
    wx.showModal({
      title: '温馨提示',
      content: this.data.fetcherData.state !== 102 ?'关闭房间后，房间内的所有人都会退出房间，是否继续关闭？':'删除房间后，房间信息将进行销毁，是否继续删除？',
      success: (res) => {
        console.log('requestDelete', res)
        if (res.confirm) {
          // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
          this.requestDelete(e);
        }
      }
    })
  },
  async requestDelete(e) {
    const businessId = e.target.dataset && e.target.dataset.id;
    const apiUrl = this.data.fetcherData.state == 102 ? api.deleteRoom : api.exitRoom;
    const res = await util.request(apiUrl, {
      businessId
    }, 'POST', 'application/json')
    const {
      data,
      code
    } = res
    if (code !== 200) return
    let roomList = this.data.roomList.filter(ele => ele.businessId !== businessId)
    this.setData({
      roomList: roomList,
    })
  },
  setActive(ev) {
    const that = this
    const {
      type
    } = ev.currentTarget.dataset
    this.setData({
      'fetcherData.state': type == 'true' ? 102 : 101,
    }, () => {
      that.searchRoomList()
    });
  },
  inputChange(e) {
    this.setData({
      'fetcherData.name': e.detail.value,
    });
  },
  search() {
    if (this.data.fetcherData.name != '') {
      wx.showLoading({
        title: '加载中...',
      });
      this.setData({
        isSearch: true
      })
      this.searchRoomList()
    } else {
      if (this.data.isSearch) {
        this.setData({
          isSearch: false
        })
        this.searchRoomList()
      } else {
        // wx.showToast({
        //   title: '请输入VR场景名称',
        //   icon: 'none'
        // })
        wx.showLoading({
          title: '加载中...',
        });
        this.setData({
          isSearch: true
        })
        this.searchRoomList()
      }


    }

  },
  addRoom() {
    wx.navigateTo({
      url: `/pages/room/add`,
    })
  },
  async getStartNum(){
    const res = await util.request(api.roomChatList, {
      ...this.data.fetcherData,
      state:101,
    }, 'POST', 'application/json')
    // debugger
    if (res.code === 200) {
      let listNmb = this.data.listNmb
      listNmb.Start = res.data.count
      if (res.data.data.length != 0) {
        this.setData({
          listNmb
        })
      }
    }
    this.setData({
      loading: false
    })
  },
  async getRoomList() {
    if (this.data.hasData) {
      if (!this.data.loading) {
        this.setData({
          loading: true
        })
        wx.showLoading({
          title: '加载中...',
        })
        try {
          const res = await util.request(api.roomChatList, this.data.fetcherData, 'POST', 'application/json')
          // debugger
          if (res.code === 200) {
            if (res.data.data.length != 0) {
              let listNmb = this.data.listNmb
              let objlistNmb = { 101:'Start', 102:'NotStart', }
              listNmb[objlistNmb[this.data.fetcherData.state]] = res.data.count
              let { totalPages } = res.data
              this.setData({
                roomList: this.data.roomList.concat(res.data.data),
                'fetcherData.page': this.data.fetcherData.page + 1,
                maxPage: totalPages == this.data.fetcherData.page,
                listNmb,
              })

            } else {
              this.setData({
                hasData: false
              })
            }
          }
          this.setData({
            loading: false
          })
          console.log('roomList', this.data.roomList, this.data.fetcherData.page);

        } catch (error) {
          this.setData({
            hasData: false
          })
        }
      }

    } else {
      console.log('没有更多数据')
    }

  },
  reloadData() {
    this.setData({
      hasData: true
    }, () => {
      this.getRoomList()
    })
  },
  searchRoomList() {
    if (!this.data.loading) {
      this.setData({
        loading: false
      })
      this.setData({
        'fetcherData.page': 1,
        'fetcherData.size': 100,
      })
      util.request(api.roomChatList, this.data.fetcherData, 'POST', 'application/json').then((res) => {
        this.setData({
          loading: false
        })
        wx.hideLoading()
        if (res.errno === 0) {
          let listNmb = this.data.listNmb
          let objlistNmb = { 101:'Start', 102:'NotStart', }
          listNmb[objlistNmb[this.data.fetcherData.state]] = res.data.count
          this.setData({
            roomList: res.data.data,
            listNmb,
          })
        }
      }).catch(err => {
        this.setData({
          loading: false
        })
      });
    }

  },
  gotoWV: function (event) {
    let {
      id,
      roomId
    } = event.detail
    const type = this.data.fetcherData.type || 33
    wx.navigateTo({
      url: `/pages/webview/index?id=${id}&type=${type}&roomId=${roomId}`,
    })


    util.request(api.increaseViewCount, {
      brandId: id,
      type: type
    }, 'GET').then((res) => {

    });

  },
  // storeGotoWv(event) {
  //   let {
  //     id,
  //     roomId,
  //     index
  //   } = event.detail
  //   debugger;
  //   wx.navigateTo({
  //     url: `/pages/webview/index?id=${id}&type=${this.data.fetcherData.type}&roomId=${roomId}`,
  //   })

  //   util.request(api.increaseViewCount, {
  //     brandId: id,
  //     type: this.data.fetcherData.type
  //   }, 'GET').then((res) => {
  //     var num = 'roomList[' + index + '].pvTotalNum'
  //     this.setData({
  //       [num]: res.data
  //     })
  //   });
  // },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    getApp().checkNetStatu();
    console.log(options)
    this.setData({
      'fetcherData.type': options.type
    })
    this.getRoomList()
    this.getUserInfo()
    this.getStartNum()
  },

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

  },

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

  },

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

  },

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

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    const that = this
    this.setData({
      hasData: true,
      'fetcherData': {
        ...that.data.fetcherData,
        page: 1,
      },
      "roomList": [],
    }, () => {
      that.getRoomList()
      wx.stopPullDownRefresh()
    })
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if (!this.data.isSearch && !this.data.maxPage) {
      this.getRoomList()
    }
  },

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

  }
})