// pages/activeDetails/activeDetails.js
import Dialog from '../../dist/dialog/dialog';
import Notify from '../../dist/notify/notify';
var app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    circleId: 0,
    eventId:0,
    active: 0,

    buttonClass:'actionBtn',
    volunteerEventDat:[],
    isEnrollFinish:false,
    isComplete: false,
    isCircleOwner: false,
    isMember: false,
    isCircleOwner: false,
    maxMemberTitle:'',

    ownerCircleList:[],//圈主拥有的圈子列表
    checkCircleIndex:[],//临时记录圈子选中状态

    personalMemberList:[],//个人已报名
    circleMemberList:[],//已报名团体

    menuText:'',


    circleButtonTitle: '圈子报名',
    personalButtonTitle: '个人报名',

    showOwnerDialog:false,
    showActionButton:false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var that=this;
    if (options != null) {
      that.setData({
        circleId: options.circleId,
        eventId: options.eventId
      })
    }
    var config = wx.getStorageSync('config');
    wx.request({
      url: app.url + 'ajax_get_volunteer_event_detail.php',
      data: {
        unionId: config.unionId,
        eventId: that.data.eventId
      },
      header: { 'content-type': 'application/json' },
      method: 'GET',
      dataType: 'json',
      success: function (res) {
        console.log(res)
        if(res.statusCode==200){
          that.setData({
            volunteerEventDat: res.data.result.volunteerEventDat,
            isEnrollFinish: res.data.result.isEnrollFinish,
            isComplete: res.data.result.isComplete,
            isCircleOwner: res.data.result.isCircleOwner,
            ownerCircleList: res.data.result.ownerCircleList,
            isMember: res.data.result.isMember,
            personalMemberList: res.data.result.personalMemberList,
            circleMemberList: res.data.result.circleMemberList,
            showOwnerDialog: false
          })
          if (res.data.result.volunteerEventDat.max_member > 0) {
            that.setData({
              maxMemberTitle: res.data.result.volunteerEventDat.max_member + "人"
            })
          } else {
            that.setData({
              maxMemberTitle: "不限"
            })
          }
          //设定选择的默认状态
          if (res.data.result.isCircleOwner) {
            var tmp = [];
            for (var i = 0; i < res.data.result.ownerCircleList.length;i++) {
              tmp[i] = false;
            }
            that.setData({
              checkCircleIndex: tmp
            })
          }
          
          //按钮文字控制
          if (res.data.result.isMember == false && res.data.result.isEnrollFinish==false){
            that.setData({
              circleButtonTitle: '圈子报名',
              personalButtonTitle:'个人报名',
              showActionButton:true,
              buttonClass:'actionBtn'
            })
          }
          if (res.data.result.isMember == true && res.data.result.isEnrollFinish == false) {
            that.setData({
              circleButtonTitle: '取消报名',
              personalButtonTitle: '取消报名',
              showActionButton: true,
              buttonClass: 'cancelBtn'
            })
          }
          if (res.data.result.isMember == true && res.data.result.isEnrollFinish == true && res.data.result.isComplete ==false) {
            that.setData({
              menuText: '上传凭证',
              //showActionButton: true,
              buttonClass: 'actionBtn'
            })
          }
        }
      },
      fail: function (res) { },
      complete: function (res) { },
    })
  },

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

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

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

  //展示对对话框
  showDialog(event) {
    this.setData({
      showOwnerDialog: true
    })
  },

  //点击切换圈子的选中状态
  clickCircle(e) {
    let index = e.currentTarget.dataset['index']
    let tmpList = this.data.ownerCircleList;
    if (tmpList[index].itemClass == "circleItem") {
      tmpList[index].itemClass = "circleItemSelected";
    } else {
      tmpList[index].itemClass = "circleItem";
    }
    this.setData({
      ownerCircleList: tmpList
    })
  },

  //圈主返回
  back(event) {
    wx.navigateBack({ 
      delta: 1,
    })
  },

  //按钮事件处理
  userAction(e){
    var that = this;
    var config = wx.getStorageSync('config');
    //获取按钮上面的文字.
    //圈主的情况下,显示圈主报名对话框
    if (that.data.isCircleOwner && that.data.menuText =="报名参加") {
      that.setData({
        showOwnerDialog: true,
      })
    }

    //个人报名【非圈主】
    if (!that.data.isCircleOwner && that.data.menuText == "报名参加") {
      //非圈主身份的时候个人报名处理
      that.personalEnroll();
    }

    if (that.data.menuText == "取消报名") {
      //跳转到上传凭证页面
      Dialog.confirm({
        title: '',
        message: '是否取消报名?'
      }).then(() => {
        //取消报名处理
        wx.request({
          url: app.url + 'ajax_cancel_volunteer_event.php',
          data: {
            unionId: config.unionId,
            eventId: that.data.eventId
          },
          header: { 'content-type': 'application/json' },
          method: 'GET',
          dataType: 'json',
          success: function (res) {
            console.log(res)
            if (res.statusCode == 200) {
              Notify({ type: 'success', message: res.data.result.message });
              //如果取消成功,停留在本页面
              if (res.data.status == "OK") {
                that.onLoad();
              }
            }
          },
          fail: function (res) {
            Notify({ type: 'danger', message: res.data.result.message });
          },
          complete: function (res) { },
        })
      }).catch(() => {

      });

    }

    if (that.data.menuText == "上传凭证") {
      //跳转到上传凭证页面
      Dialog.confirm({
        title: '',
        message: '是否上传凭证?'
      }).then(() => {
        wx.navigateTo({
          url: '../uploadDocuments/uploadDocuments',
        })
      }).catch(() => {
        // on cancel
        Notify({ type: 'danger', message: '取消报名' });
      });
    }
  },

  //个人报名/取消
  personalEnroll() {
    var that = this;
    var config = wx.getStorageSync('config');
    if (that.data.personalButtonTitle == "取消报名") {
      //取消报名处理
      wx.request({
        url: app.url + 'ajax_cancel_volunteer_event.php',
        data: {
          unionId: config.unionId,
          eventId: that.data.eventId
        },
        header: { 'content-type': 'application/json' },
        method: 'GET',
        dataType: 'json',
        success: function (res) {
          console.log(res)
          if (res.statusCode == 200) {
            Notify({ type: 'success', message: res.data.result.message });
            //如果取消成功,停留在本页面
            if (res.data.status == "OK") {
              that.onLoad();
            }
          }
        },
        fail: function (res) {
          Notify({ type: 'danger', message: res.data.result.message });
        },
        complete: function (res) { },
      })
    } else {
      //个人报名
      wx.request({
        url: app.url + 'ajax_attend_volunteer_event_personal.php',
        data: {
          unionId: config.unionId,
          eventId: that.data.eventId,
          circleId: that.data.circleId
        },
        header: { 'content-type': 'application/json' },
        method: 'GET',
        dataType: 'json',
        success: function (res) {
          console.log(res)
          if (res.statusCode == 200) {
            Notify({ type: 'success', message: res.data.result.message });
            //如果报名成功则刷新本页面
            if (res.data.status == "OK") {
              that.onLoad();
            }
          }
        },
        fail: function (res) {
          Notify({ type: 'danger', message: res.data.result.message });
        },
        complete: function (res) { },
      })
    }
  },

  //团体报名/取消
  circleEnroll() {
    var that = this;
    var config = wx.getStorageSync('config');
    //获取选中的圈子id
    var haveSelected = false;
    var circleIds = "";
    for (var i = 0; i < that.data.ownerCircleList.length;i++) {
      if (that.data.ownerCircleList[i].itemClass == "circleItemSelected") {
        haveSelected = true
        circleIds += "|" + that.data.ownerCircleList[i].id + "_" + that.data.ownerCircleList[i].itemClass
      } else {
        circleIds += "|" + that.data.ownerCircleList[i].id + "_" + that.data.ownerCircleList[i].itemClass
      }
    }
    if (haveSelected == false && this.data.circleButtonTitle =="圈子报名") {
      Notify('请选择圈子')
      return;
    }
    //调用接口
    wx.request({
      url: app.url + 'ajax_attend_volunteer_event_circle.php',
      data: {
        unionId: config.unionId,
        eventId: that.data.eventId,
        circleIds: circleIds
      },
      header: { 'content-type': 'application/json' },
      method: 'GET',
      dataType: 'json',
      success: function (res) {
        console.log(res)
        if (res.statusCode == 200) {
          Notify({ type: 'success', message: res.data.result.message });
          //如果报名成功则刷新本页面
          if (res.data.status == "OK") {
            that.onLoad();
          }
        }
      },
      fail: function (res) {
        Notify({ type: 'danger', message: res.data.result.message });
      },
      complete: function (res) { },
    })
  }

})