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