// pages/login/login.js
import WxValidate from '../../utils/wxValidate'
const app = getApp()
var type = "";//用来保存picker组件选中的类别id
Page({
  /**
   * 页面的初始数据
   */
  data: {
    frameStyle: { useTop: true, name: '比赛修改', leftArrow: true, useBar: false },
    // 主体高度
    infoHeight: '',
    ids: '',
    form: {},
    cateArray: [
      { id: '0', type: '未开始' }, { id: '1', type: '报名中' }, { id: '2', type: '待比赛' }, { id: '3', type: '进行中' }, { id: '4', type: '已结束' }],
    cateIndex: 0,
    starttime: '2018-01-01',//默认起始时间  
    endtime: '2018-01-24',//默认结束时间 
    timedate: '2018-09-01',
    time: '12:01',
    // 赛制信息
    // 默认值
    szValue: [],
    // 赛制选择信息
    valueList: [],
    // 原数据
    levelArray: [
      ['淘汰制', '循环制'],
      ['单败淘汰', '双败淘汰', '交叉淘汰'],
      ['单循环', '双循环', '四循环']
    ],
    // 赛制储存信息
    szList: [],
  },
  //验证是否输入
  initValidate() {
    const rules = { name: { required: true }, match_time: { required: true, }, single_time: { required: true }, address: { required: true, }, format: { required: true } }
    // 验证字段的提示信息，若不传则调用默认的信息
    const messages = { name: { required: '请输入比赛名称', }, match_time: { required: '请输入时间', }, single_time: { required: '请输入单场时间', }, address: { required: '请输入地点', }, format: { required: '请选择赛制', } };
    this.WxValidate = new WxValidate(rules, messages)
  },
  //当用户点击确定时，执行的事件
  bindCatePickerChange: function (e) {
    var cid = this.data.cateArray[e.detail.value].id;
    type = cid
    //下面重新赋值必须有，页面显示的信息才会改为刚刚选中的值
    this.setData({
      cateIndex: e.detail.value,
    })
  },
  // 确定选择
  szChange: function (e) {
    const that = this;
    let value = e.detail.value;
    let list = that.data.valueList;
    let data = []
    for (let [index, val] of value.entries()) {
      if (list[index][val]) data.push(list[index][val])
      else data.push(list[index][0])
    }
    //存值
    let sz = [...that.data.szList, { type: data[0], name: data[1] }]
    that.setData({ szList: sz })
    that.setData({ szValue: data })
    that.search();
  },
  // 列值改变时
  columnChange: function (e) {
    const that = this;
    let array = that.data.levelArray;
    let list = that.data.valueList;
    if (e.detail.column == '0') list[1] = array[parseInt(e.detail.value) + 1];
    that.setData({ valueList: list });
  },
  //删除
  toDel: function (e) {
    const that = this;
    let list = that.data.szList;
    let value = e.currentTarget.dataset.index;
    let data = list.filter((i, index) => index != value)
    this.setData({ szList: data })
  },
  bindDateChange3: function (e) {
    this.setData({
      timedate: e.detail.value
    })
  },
  bindTimeChange: function (e) {
    this.setData({
      time: e.detail.value
    })
  },
  // 时间段选择  
  bindDateChange(e) {
    let that = this;
    that.setData({
      starttime: e.detail.value,
    })
  },
  bindDateChange2(e) {
    let that = this;
    that.setData({
      endtime: e.detail.value,
    })
  },
  //提交
  formSubmit: function (e) {
    const value = e.detail.value;
    value.match_time = this.data.starttime + ' - ' + this.data.endtime;
    value.single_time = this.data.timedate + ' ' + this.data.time;
    value.format = this.data.szList;
    value.status = this.data.cateIndex;
    var id = this.data.ids;
    if (!this.WxValidate.checkForm(value)) {
      const error = this.WxValidate.errorList[0];
      wx.showToast({ title: `${error.msg}`, icon: 'error', duration: 2000 })
      return false
    } else {
      wx.getStorage({
        key: 'token',
        success: function (res) {
          wx.request({
            url: `${app.globalData.publicUrl}/courtAdmin/api/match/${id}`,
            method: 'post',
            data: value,
            success(res) {
              console.log(res.data.data);
              wx.showToast({ title: `修改比赛成功`, icon: 'success', duration: 2000 })
            }
          })
        }
      })
    }
  },
  back: function () {
    wx.navigateBack({ url: '/pages/home/index' })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    const that = this;
    that.setData({ ids: options.id })
    //选择器
    var cindex = that.data.cateIndex
    type = that.data.cateArray[cindex].id
    // 监听用户是否登录
    that.watchLogin();
    //验证规则函数
    that.initValidate()
    // 计算高度
    that.searchHeight()
    // 初始化数据
    that.search();
  },

  // 监听用户是否登录
  watchLogin: function () {
    var that = this;
    var id = that.data.ids;
    wx.getStorage({
      key: 'token',
      success: res => {
        wx.request({
          url: `${app.globalData.publicUrl}/courtAdmin/api/match/${id}`,
          method: 'get',
          data: {},
          success(res) {
            that.setData({
              form: res.data.data,
              timedate: res.data.data.single_time.substring(0, 10),
              time: res.data.data.single_time.substring(11, 16),
              starttime: res.data.data.match_time.substring(0, 10),
              endtime: res.data.data.match_time.substring(13, 28),
              cateIndex: res.data.data.status,
              szList: res.data.data.format
            });
          }
        })
      },
      fail: res => {
        return wx.redirectTo({ url: '/pages/login/index', })
      }
    })
  },
  //查找选择器的值
  search: function () {
    const that = this;
    let data = that.data.levelArray;
    that.setData({ valueList: [data[0], data[1]] })
  },
  // 计算高度
  searchHeight: function () {
    let frameStyle = this.data.frameStyle;
    let client = app.globalData.client;
    let infoHeight = client.windowHeight;
    // 是否去掉状态栏
    if (frameStyle.useTop) infoHeight = infoHeight - (client.statusBarHeight + client.getMenu.height + (client.getMenu.top - client.statusBarHeight) * 2);
    // 是否减去底部菜单
    if (frameStyle.useBar) infoHeight = infoHeight - 50;
    if (infoHeight) this.setData({ infoHeight: infoHeight })
  },

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

  },

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

  },

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

  },

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

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

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

  },

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

  }
})