// 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) { }, }) } })