volunteersEventDetail.js 7.93 KB
// 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,
    ownerCircleList:[],//圈主拥有的圈子列表
    checkCircleIndex:[],//临时记录圈子选中状态
    personalMemberList:[],//个人已报名
    circleMemberList:[],//已报名团体
    menuText:'',
    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.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({
              menuText:'报名参加',
              showActionButton:true,
              buttonClass:'actionBtn'
            })
          }
          if (res.data.result.isMember == true && res.data.result.isEnrollFinish == false) {
            that.setData({
              menuText: '取消报名',
              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 () {
  },

  //点击选中圈子或者取消
  onClickCircle(e) {
    // e.detail 为当前输入的值
    var index = e.currentTarget.dataset['index'];
    var tmp = this.data.checkCircleIndex;
    //赋值选中状态
    if (tmp[index] != e.detail) {
      tmp[index] = e.detail;
    }
    this.setData({
      checkCircleIndex: tmp
    })

  },

  //点击切换
  onChange(event) {
    
  },

  //圈主返回
  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');
    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.checkCircleIndex.length;i++) {
      if (that.data.checkCircleIndex[i] == true) {
        haveSelected = true
        circleIds += "|" + that.data.ownerCircleList[i].id
      }
    }
    if (haveSelected==false) {
      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) { },
    })
  }

})