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.
497 lines
14 KiB
497 lines
14 KiB
//获取应用实例
|
|
const app = getApp()
|
|
let interval
|
|
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'
|
|
}],
|
|
qrImageUrl: "",
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function (options) {
|
|
this.setData({
|
|
activityNo: options.activityNo == undefined ? "" : options.activityNo,
|
|
groupNo: options.groupNo == undefined ? "" : options.groupNo,
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow: function () {
|
|
//获取活动详情
|
|
this.getActivityDetail();
|
|
},
|
|
|
|
getActivityDetail: function () {
|
|
let that = this;
|
|
that.stopInterval();
|
|
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) {
|
|
console.log(res);
|
|
var data = res.data;
|
|
var status = data.code;
|
|
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);
|
|
//根据状态切换样式
|
|
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",
|
|
remark: "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() //停止下拉刷新
|
|
},
|
|
|
|
})
|
|
},
|
|
|
|
stopInterval: function () {
|
|
if (interval != undefined) {
|
|
clearInterval(interval);
|
|
interval = undefined
|
|
}
|
|
this.setData({
|
|
countDownDay: '00',
|
|
countDownHour: '00',
|
|
countDownMinute: '00',
|
|
countDownSecond: '00',
|
|
});
|
|
},
|
|
|
|
/**
|
|
*活动倒计时方法
|
|
*/
|
|
countActivityTime: function (timeStamp) {
|
|
var totalSecond = timeStamp - 1;
|
|
// totalSecond = 20;
|
|
if (totalSecond < 0 || interval != undefined) {
|
|
return
|
|
}
|
|
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) {//活动结束时
|
|
this.stopInterval();
|
|
this.getActivityDetail();
|
|
}
|
|
}.bind(this), 1000);
|
|
},
|
|
// 图片加载
|
|
ruleImageLoad: function (image) {//拼团失败时的图片加载
|
|
var imageHeight = getApp().gw.systemInfo.windowWidth / image.detail.width * image.detail.height;
|
|
this.setData({
|
|
rule_image_height: imageHeight
|
|
})
|
|
},
|
|
detailImageLoad: function (image) {//暂时不清楚是做什么的
|
|
var imageHeight = getApp().gw.systemInfo.windowWidth / image.detail.width * image.detail.height;
|
|
this.setData({
|
|
detail_image_height: imageHeight
|
|
})
|
|
},
|
|
|
|
//点击团按钮操作
|
|
groupTap: function (e) {
|
|
if (wx.getStorageSync('sessionId') == '') {
|
|
wx.navigateTo({
|
|
url: '../login/login'
|
|
})
|
|
return;
|
|
}
|
|
let that = this;
|
|
var url = "";
|
|
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,
|
|
});
|
|
let dr = data.response.weixinTransParameters;
|
|
console.log(dr);
|
|
wx.requestPayment({//微信支付
|
|
"timeStamp": dr.timeStamp,//时间戳
|
|
"nonceStr": dr.nonceStr,//随机字符串
|
|
"package": dr.package,//单接口返回的prepay_id参数值
|
|
"signType": dr.signType,//签名算法
|
|
"paySign": dr.paySign,//签名
|
|
"success": function (res) {//成功时回调
|
|
console.log(res);
|
|
wx.showToast({
|
|
title: '支付成功',
|
|
icon: 'success',
|
|
duration: 2000
|
|
})
|
|
console.log(that.data.activityDetail)
|
|
wx.navigateTo({
|
|
url: '../pay_result/pay_result?activityNo=' + that.data.activityNo + '&groupNo=' + that.data.groupNo + '&shareTitle=' + that.data.activityDetail.shareTitle + '&sharePhoto=' + that.data.activityDetail.sharePhoto
|
|
})
|
|
},
|
|
"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: '网络异常!',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
},
|
|
});
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload: function () {
|
|
this.stopInterval();
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom: function () {
|
|
|
|
},
|
|
|
|
//打败Actionsheet,进行分享
|
|
openActionsheet: function () {
|
|
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();
|
|
wx.showToast({
|
|
title: '暂未开放!',
|
|
icon: 'none',
|
|
duration: 1000
|
|
});
|
|
}
|
|
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,
|
|
};
|
|
},
|
|
})
|