You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
550 lines
16 KiB
550 lines
16 KiB
//获取应用实例
|
|
const app = getApp()
|
|
|
|
var WxParse = require('../../wxParse/wxParse.js');//主要为了能够显示获取的html代码
|
|
|
|
Page({
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
activityNo: "",
|
|
groupNo: "",
|
|
memberList: [],
|
|
activityDetail: {},
|
|
currentMemberType: -1,//参与人角色,-1游客,0发起者,10参与者
|
|
groupStatus:0,//团状态,0发起拼团,10正在拼团,20拼团成功,90拼团失败
|
|
rule_image_height: 0,//活动规则图片高度
|
|
detail_image_height: 0,//活动详情图片高度
|
|
bannerImage: '/images/activity_banner.png',
|
|
ruleImage: '/images/banner1.png',
|
|
countDownDay: 0,
|
|
countDownHour: 0,
|
|
countDownMinute: 0,
|
|
countDownSecond: 0,
|
|
countdownSec: 0,
|
|
//根据状态切换样式
|
|
grounpInfo: "none",
|
|
grounpInfo2: "none",
|
|
one_content: "none",
|
|
two_content: "none",
|
|
bottomBGColor: '#F36619',
|
|
buttomText: '我要开团',
|
|
tagColor: "#F8B551",
|
|
remark: "none",
|
|
remarkText:"已退款",
|
|
//分享
|
|
show: false,
|
|
cancelWithMask: true,
|
|
actions: [{
|
|
name: '微信好友',
|
|
icon: '../../images/wechat_ico.png',
|
|
openType: 'share'
|
|
}, {
|
|
name: '朋友圈',
|
|
icon: '../../images/moments_ico.png'
|
|
}, {
|
|
name: '朋友圈',
|
|
icon: '../../images/moments_ico.png'
|
|
}, {
|
|
name: '朋友圈',
|
|
icon: '../../images/moments_ico.png'
|
|
}],
|
|
qrImageUrl: "",
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function (options) {
|
|
this.setData({
|
|
activityNo: options.activityNo == undefined ? "" : options.activityNo,
|
|
groupNo: options.groupNo == undefined ? "" : options.groupNo,
|
|
});
|
|
|
|
},
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady: function () {
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow: function () {
|
|
//获取活动详情
|
|
this.getActivityDetail();
|
|
},
|
|
|
|
getActivityDetail: function () {
|
|
let that = this;
|
|
wx.showNavigationBarLoading(); //在标题栏中显示加载
|
|
var url = "";
|
|
var data = {};
|
|
if (that.data.groupNo != "") {
|
|
url = "/mall/wxa/activity/group/detail";
|
|
} else {
|
|
url = "/mall/wxa/activity/detail";
|
|
}
|
|
|
|
wx.request({
|
|
url: app.gw.hostUrl + url,
|
|
method: 'get',
|
|
data: {
|
|
activityNo: that.data.activityNo,
|
|
groupNo: that.data.groupNo,
|
|
},
|
|
header: {
|
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
'sessionId': wx.getStorageSync('sessionId')
|
|
},
|
|
success: function (res) {
|
|
var data = res.data;
|
|
var status = data.code;
|
|
console.log(res);
|
|
if (status == 0) {
|
|
|
|
that.setData({
|
|
activityDetail: data.response,
|
|
activityNo: data.response.activityNo,
|
|
groupNo: data.response.groupNo == undefined ? that.data.groupNo : data.response.groupNo,
|
|
memberList: data.response.memberList == undefined ? [] : data.response.memberList,
|
|
groupStatus: data.response.status,
|
|
currentMemberType: data.response.currentMemberType== undefined ? -1 : data.response.currentMemberType,
|
|
countdownSec: data.response.countdownSec,
|
|
});
|
|
let activityContent = data.response.activityContent;
|
|
WxParse.wxParse('activityContent', 'html', activityContent, that);
|
|
console.log("currentMemberType:" + data.response.currentMemberType + "&&status:" + that.data.groupStatus + "&&groupNo" + that.data.groupNo);
|
|
//根据状态切换样式
|
|
if (that.data.groupNo !=""){
|
|
//开团后页面变化
|
|
if (that.data.groupStatus == 10){
|
|
//团倒计时时
|
|
that.countActivityTime(data.response.countdownSec);
|
|
//正在拼团
|
|
that.setData({
|
|
grounpInfo: "block",
|
|
grounpInfo2: "none",
|
|
remark: "block",
|
|
tagColor: "#F8B551",
|
|
});
|
|
if (that.data.currentMemberType == -1){
|
|
//游客
|
|
that.setData({
|
|
one_content: "none",
|
|
two_content: "block",
|
|
buttomText: '参与拼团',
|
|
});
|
|
} else if (that.data.currentMemberType == 0 || that.data.currentMemberType == 10){
|
|
//发起人和邀请人
|
|
that.setData({
|
|
one_content: "block",
|
|
two_content: "none",
|
|
bottomBGColor: '#21BE8D',
|
|
buttomText: '邀请好友拼团',
|
|
});
|
|
}
|
|
} else if (that.data.groupStatus == 20){
|
|
//拼团成功
|
|
if (that.data.currentMemberType == -1) {
|
|
//游客
|
|
that.setData({
|
|
one_content: "block",
|
|
two_content: "none",
|
|
bottomBGColor: '#F36619',
|
|
buttomText: '我要开团',
|
|
grounpInfo: "none",
|
|
grounpInfo2: "block",
|
|
|
|
});
|
|
} else if (that.data.currentMemberType == 0 || that.data.currentMemberType == 10) {
|
|
//发起人和邀请人
|
|
that.setData({
|
|
tagColor: "#21BE8D",
|
|
one_content: "block",
|
|
two_content: "none",
|
|
bottomBGColor: '#21BE8D',
|
|
buttomText: '立即预约',
|
|
grounpInfo: "block",
|
|
grounpInfo2: "none",
|
|
remarkText: "",
|
|
});
|
|
}
|
|
} else if (that.data.groupStatus == 90){
|
|
//拼团失败
|
|
if (that.data.currentMemberType == -1) {
|
|
//游客
|
|
that.setData({
|
|
one_content: "block",
|
|
two_content: "none",
|
|
bottomBGColor: '#F36619',
|
|
buttomText: '我要开团',
|
|
grounpInfo: "none",
|
|
grounpInfo2: "block",
|
|
|
|
});
|
|
} else if (that.data.currentMemberType == 0 || that.data.currentMemberType == 10) {
|
|
//发起人和邀请人
|
|
that.setData({
|
|
tagColor: "#999999",
|
|
one_content: "block",
|
|
two_content: "none",
|
|
bottomBGColor: '#F36619',
|
|
buttomText: '重新开团',
|
|
grounpInfo: "block",
|
|
grounpInfo2: "none",
|
|
remarkText: "已退款",
|
|
});
|
|
}
|
|
}
|
|
|
|
}else{
|
|
that.countActivityTime(data.response.countdownSec);
|
|
that.setData({
|
|
one_content: "block",
|
|
grounpInfo: "none",
|
|
grounpInfo2: "none",
|
|
});
|
|
}
|
|
} else {
|
|
wx.showToast({
|
|
title: data.msg,
|
|
icon: 'none',
|
|
duration: 3000
|
|
});
|
|
return;
|
|
}
|
|
},
|
|
fail: function (res) {
|
|
wx.showToast({
|
|
title: '加载数据失败',
|
|
});
|
|
},
|
|
complete: function (res) {
|
|
// complete
|
|
wx.hideNavigationBarLoading() //完成停止加载
|
|
wx.stopPullDownRefresh() //停止下拉刷新
|
|
},
|
|
|
|
})
|
|
},
|
|
/**
|
|
*活动倒计时方法
|
|
*/
|
|
countActivityTime: function (timeStamp) {
|
|
var totalSecond = timeStamp - 1;
|
|
var interval = setInterval(function () {
|
|
// 秒数
|
|
var second = totalSecond;
|
|
|
|
// 天数位
|
|
var day = Math.floor(second / 3600 / 24);
|
|
var dayStr = day.toString();
|
|
if (dayStr.length == 1) dayStr = '0' + dayStr;
|
|
|
|
// 小时位
|
|
var hr = Math.floor((second - day * 3600 * 24) / 3600);
|
|
var hrStr = hr.toString();
|
|
if (hrStr.length == 1) hrStr = '0' + hrStr;
|
|
|
|
// 分钟位
|
|
var min = Math.floor((second - day * 3600 * 24 - hr * 3600) / 60);
|
|
var minStr = min.toString();
|
|
if (minStr.length == 1) minStr = '0' + minStr;
|
|
|
|
// 秒位
|
|
var sec = second - day * 3600 * 24 - hr * 3600 - min * 60;
|
|
var secStr = sec.toString();
|
|
if (secStr.length == 1) secStr = '0' + secStr;
|
|
|
|
this.setData({
|
|
countDownDay: dayStr,
|
|
countDownHour: hrStr,
|
|
countDownMinute: minStr,
|
|
countDownSecond: secStr,
|
|
});
|
|
totalSecond--;
|
|
if (totalSecond < 0) {
|
|
clearInterval(interval);
|
|
wx.showToast({
|
|
title: '活动已结束',
|
|
});
|
|
this.setData({
|
|
countDownDay: '00',
|
|
countDownHour: '00',
|
|
countDownMinute: '00',
|
|
countDownSecond: '00',
|
|
});
|
|
}
|
|
}.bind(this), 1000);
|
|
},
|
|
// 图片加载
|
|
ruleImageLoad: function (image) {
|
|
var app = getApp();
|
|
console.log(image)
|
|
var imageHeight = app.gw.systemInfo.windowWidth / image.detail.width * image.detail.height;
|
|
this.setData({
|
|
rule_image_height: imageHeight
|
|
})
|
|
},
|
|
detailImageLoad: function (image) {
|
|
var app = getApp();
|
|
console.log(image)
|
|
var imageHeight = app.gw.systemInfo.windowWidth / image.detail.width * image.detail.height;
|
|
this.setData({
|
|
detail_image_height: imageHeight
|
|
})
|
|
},
|
|
|
|
//点击团按钮操作
|
|
groupTap: function (e) {
|
|
let that = this;
|
|
var url = "";
|
|
console.log("groupNo:" + that.data.groupNo + "¤tMemberType:" + that.data.currentMemberType + "&groupStatus:" + that.data.groupStatus);
|
|
if (that.data.groupNo == ""){
|
|
url = '/mall/wxa/activity/group/open';
|
|
//首次开团
|
|
this.groupOpenOrJoin(url);
|
|
}else{
|
|
if (that.data.groupStatus == 10) {
|
|
//正在拼团
|
|
if (that.data.currentMemberType == -1) {
|
|
//游客
|
|
url = '/mall/wxa/activity/group/join';
|
|
this.groupOpenOrJoin(url);
|
|
}else{
|
|
//团长与参与人点击分享
|
|
this.openActionsheet();
|
|
}
|
|
} else if (that.data.groupStatus == 20) {
|
|
//拼团成功
|
|
if (that.data.currentMemberType == -1) {
|
|
//游客
|
|
url = '/mall/wxa/activity/group/open';
|
|
this.groupOpenOrJoin(url);
|
|
} else {
|
|
//团长与参与人立即预约
|
|
|
|
wx.showModal({
|
|
title: '',
|
|
content: '服务卡已放入您的账户中,搜索关注“一号家政服务号”即可预约',
|
|
showCancel: false,
|
|
success: function (res) {
|
|
if (res.confirm) {
|
|
//用户点击确定
|
|
}
|
|
}
|
|
})
|
|
wx.sh
|
|
}
|
|
} else if (that.data.groupStatus == 90){
|
|
//拼团失败
|
|
url = '/mall/wxa/activity/group/open';
|
|
this.groupOpenOrJoin(url);
|
|
}
|
|
}
|
|
},
|
|
|
|
//开团与参团
|
|
groupOpenOrJoin: function (url) {
|
|
let that = this;
|
|
|
|
wx.showToast({
|
|
title: '正在调起支付',
|
|
icon: 'loading'
|
|
})
|
|
wx.request({//获取微信支付想要的数据
|
|
url: app.gw.hostUrl + url,
|
|
method: 'get',
|
|
data: {
|
|
openid: app.globalData.openid,
|
|
activityNo: that.data.activityNo,
|
|
groupNo: that.data.groupNo,
|
|
},
|
|
header: {
|
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
'sessionId': wx.getStorageSync('sessionId')
|
|
},
|
|
success: function (res) {
|
|
//--init data
|
|
let data = res.data;
|
|
let status = data.code;
|
|
if (status != 0) {
|
|
wx.showToast({
|
|
title: data.msg,
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
return;
|
|
}
|
|
that.setData({
|
|
groupNo: data.response.orderNo == undefined ? that.data.groupNo : data.response.orderNo,
|
|
});
|
|
console.log(data.response);
|
|
let dr = data.response.weixinTransParameters;
|
|
console.log(dr);
|
|
wx.requestPayment({//微信支付
|
|
"timeStamp": dr.timeStamp,
|
|
"nonceStr": dr.nonceStr,
|
|
"package": dr.package,
|
|
"signType": dr.signType,
|
|
"paySign": dr.paySign,
|
|
"success": function (res) {
|
|
console.log(res);
|
|
wx.showToast({
|
|
title: '支付成功',
|
|
icon: 'success',
|
|
duration: 2000
|
|
})
|
|
wx.navigateTo({
|
|
url: '../pay_result/pay_result?activityNo=' + that.data.activityNo + '&groupNo=' + that.data.groupNo
|
|
})
|
|
|
|
},
|
|
"fail": function (res) {
|
|
console.log(res);
|
|
if (res.errMsg == 'requestPayment:fail cancel') {
|
|
wx.showToast({
|
|
title: '取消支付',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '支付出错',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
}
|
|
}
|
|
})
|
|
},
|
|
fail: function (e) {
|
|
wx.showToast({
|
|
title: '网络异常!err:authlogin',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
},
|
|
});
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom: function () {
|
|
|
|
},
|
|
|
|
//打败Actionsheet,进行分享
|
|
openActionsheet: function () {
|
|
// if (this.data.qrImageUrl.length == 0) {
|
|
// wx.showLoading({
|
|
// title: '正在获取',
|
|
// mask: true,
|
|
// });
|
|
// var that = this;
|
|
// wx.request({
|
|
// url: getApp().gw.hostUrl + '/mall/wxa/activity/group/wxa_code',
|
|
// method: 'get',
|
|
// data: {
|
|
// groupNo: that.data.groupNo,
|
|
// width: 80,
|
|
// page: 'index/index'
|
|
// },
|
|
// header: {
|
|
// 'Content-Type': 'application/x-www-form-urlencoded',
|
|
// 'sessionId': wx.getStorageSync('sessionId')
|
|
// },
|
|
// success: function (res) {
|
|
// wx.hideLoading();
|
|
// if (res.statusCode == 200) {
|
|
// that.setData({
|
|
// qrImageUrl: res.data.msg,
|
|
// show: true
|
|
// });
|
|
// } else {
|
|
// wx.showToast({
|
|
// title: '获取信息失败!',
|
|
// icon: 'none',
|
|
// duration: 1000
|
|
// });
|
|
// }
|
|
// },
|
|
// fail: function (res) {
|
|
// wx.hideLoading();
|
|
// wx.showToast({
|
|
// title: '网络错误!',
|
|
// icon: 'none',
|
|
// duration: 1000
|
|
// });
|
|
// }
|
|
// });
|
|
// } else {
|
|
// console.log("openActionsheet>>qrImageUrl:" + this.data.qrImageUrl)
|
|
// this.setData({
|
|
// 'show': true
|
|
// });
|
|
// }
|
|
|
|
this.setData({
|
|
'show': true
|
|
});
|
|
},
|
|
|
|
closeActionSheet: function () {
|
|
this.setData({
|
|
'show': false
|
|
});
|
|
},
|
|
|
|
clickAction({ detail }) {
|
|
// 如果是分享按钮被点击, 不处理关闭
|
|
const { index } = detail;
|
|
if (index === 0) {
|
|
return
|
|
} else if (index == 1) {
|
|
// this.showMomentImage();
|
|
}
|
|
this.setData({
|
|
[`show`]: false,
|
|
[`actions[${index}].loading`]: false
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage: function () {
|
|
return {
|
|
title: this.data.activityDetail.shareTitle,
|
|
imageUrl: this.data.activityDetail.sharePhoto,
|
|
path: '/pages/activity_detail/activity_detail?activityNo=' + this.data.activityNo + '&groupNo=' + this.data.groupNo,
|
|
};
|
|
},
|
|
})
|