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

//获取应用实例
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,
};
},
})