// pages/member/ClockPunch/ClockPunch.js var yz_pay = require("../../../mycomponent/yz_pay/yz_pay"); var app = getApp(); Page({ behaviors: [yz_pay], /** * 页面的初始数据 */ data: { language: '', //总共余额 totalAmonut: "", //总共参与人数 totalNumber: "", //总共参与会员 totalMember: [], //已打卡数量 clockInNum: 0, clockFirstShow: false, //第一名打卡会员 clockFirstMember: {}, luckyMemberShow: false, //连续打卡会员 continueMember: {}, continueMemberShow: false, //未打卡数量 notClockInNum: 0, btnStatus: "", amount: "1", //弹窗按钮控制 actionSheetShow: false, actionSheetItemsData: [], clockin_title: "早起打卡", share_title: "", share_icon: "", share_desc: "", clock_begintime: "", clock_endtime: "", ios_virtual_pay: false, forbidden: true }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.checkrouter(); try { var value = wx.getStorageSync('ios_virtual_pay'); if (value) { this.setData({ ios_virtual_pay: value }); } } catch (e) { console.log(e); } }, checkrouter() { try { // 推广中心是否开启该功能,没开启跳转到指定路径 let basic_info = wx.getStorageSync("yz_basic_info"); let stop_info = basic_info.popularize_page.mini.vue_route; for (let i = 0; i < stop_info.length; i++) { if (stop_info[i] == 'ClockPunch') { console.log(basic_info.popularize_page.mini.mini_url + "跳转的路径"); wx.showToast({ title: '未开启推广权限', duration: 1000, icon: 'none', success: function () { setTimeout(() => { wx.redirectTo({ url: basic_info.popularize_page.mini.mini_url, }); }, 1000); } }); return; } } } catch (e) { console.log(e); } }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { let language = wx.getStorageSync('langIndex'); this.setData({ 'language': language.en }); }, /** * 生命周期函数--监听页面显示 */ onShow: function () { wx.showShareMenu({ withShareTicket: false, menus: ['shareAppMessage', 'shareTimeline'] }); this._initData(); this._getTodayPay(); this._getTodayClockOn(); this._getCurrentPayStatus(); this._getPayData(); this._getClockin(); }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareTimeline() { return { title: this.data.share_title, imageUrl: this.data.share_icon }; }, onShareAppMessage: function () { return { title: this.data.share_title, imageUrl: this.data.share_icon }; }, //获取今日支付数据 _getTodayPay() { let that = this; let urlStr = app.getNetAddresss("plugin.clock-in.api.clock-in.get-today-pay-data"); app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1) { that.setData({ totalAmonut: res.data.today_pay_amount, totalNumber: res.data.today_pay_num, totalMember: res.data.today_pay_member }); } }, fail: function (res) { console.log(res); } }); }, //获取今日打卡数据 _getTodayClockOn() { let that = this; let urlStr = app.getNetAddresss("plugin.clock-in.api.clock-in.get-today-clock-data"); app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1) { if (app._isTextEmpty(res.data.clock_firat_member)) { that.setData({ clockFirstShow: false }); } else { that.setData({ clockFirstShow: true, clockFirstMember: res.data.clock_firat_member }); } if (app._isTextEmpty(res.data.reward_lucky_member)) { that.setData({ luckyMemberShow: false }); } else { that.setData({ luckyMemberShow: true, luckyMember: res.data.reward_lucky_member }); } if (app._isTextEmpty(res.data.clock_continuity_member)) { that.setData({ continueMemberShow: false }); } else { that.setData({ continueMemberShow: true, continueMember: res.data.clock_continuity_member }); } that.setData({ clockInNum: res.data.clock_in_num, notClockInNum: res.data.not_clock_in_num }); } }, fail: function (res) { console.log(res); } }); }, //获取当前支付打卡状态 _getCurrentPayStatus() { let that = this; let urlStr = app.getNetAddresss("plugin.clock-in.api.clock-in.get-member-pay-status"); app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1) { that.setData({ amount: res.data.amount, btnStatus: res.data.status }); that.initBtnView(res.data); } else { wx.showToast({ icon: 'none', title: res.msg, duration: 1000 }); } }, fail: function (res) { console.log(res); } }); }, //初始化btn状态 initBtnView(data) { let that = this; switch (data.status) { case -1: that.setData({ message: "支付" + that.data.amount + (that.data.language['元'] ? that.data.language['元'] : '元') + "参与挑战" }); break; case 0: that.setData({ message: "支付" + that.data.amount + (that.data.language['元'] ? that.data.language['元'] : '元') + "参与挑战" }); break; case 1: that.setData({ forbidden: true, cutDownTime: this.getCutDownTime(data) }); that._countDown(); break; case 2: that.setData({ message: '打卡' }); break; case 3: that.setData({ forbidden: true, cutDownTime: this.getCutDownTime(data) }); that._countDown(); break; case 4: that.setData({ forbidden: true, cutDownTime: this.getCutDownTime(data) }); that._countDown(); break; default: break; } }, //倒计时 _countDown: function () { if (!this.data.forbidden) { return false; } let newTime = new Date().getTime(); let endTime = this.data.cutDownTime; let obj = null; if (endTime - newTime > 0) { let time = (endTime - newTime) / 1000; // 获取天、时、分、秒 let day = parseInt(time / (60 * 60 * 24)); let hou = parseInt(time % (60 * 60 * 24) / 3600); let min = parseInt(time % (60 * 60 * 24) % 3600 / 60); let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60); obj = { day: this._timeFormat(day), hou: this._timeFormat(hou), min: this._timeFormat(min), sec: this._timeFormat(sec) }; } else { //活动已结束,全部设置为'00' obj = { day: '00', hou: '00', min: '00', sec: '00' }; } this.setData({ message: '倒计时' + obj.day + '天' + obj.hou + '时' + obj.min + '分' + obj.sec + '秒' }); if (endTime - newTime < 0) { this.setData({ forbidden: false, }); this._getTodayClockOn(); this._getCurrentPayStatus(); } else { setTimeout(this._countDown.bind(this), 1000); } }, //小于10的格式化函数 _timeFormat(param) { //小于10的格式化函数 return param < 10 ? '0' + param : param; }, //获取倒计时 getCutDownTime(data) { var currentTime = parseInt(data.current_time); var startTime = parseInt(data.start_time); var restTime = 0; if (currentTime < startTime) { restTime = startTime; } return restTime * 1000; }, //获取支付数据 _getPayData() { let that = this; let urlStr = app.getNetAddresss("plugin.clock-in.api.clock-in-pay.get-pay-button"); app._getNetWork({ url: urlStr, success: (resdata)=> { var res = resdata.data; if (res.result == 1) { let btnData = res.data.buttons; if (!app._isTextEmpty(btnData) && btnData.length > 0) { let actionSheetItemsData = []; for (let i = 0; i < btnData.length; i++) { actionSheetItemsData.push({ name: btnData[i].name, openType: btnData[i].value }); } that.setData({ actionSheetItemsData: actionSheetItemsData, }); } } }, fail: function (res) { console.log(res); } }); }, //初始化支付回调 initPayCallBack(type) { let that = this; switch (type) { case 1: that.weChatPay(); break; case 55: that.weChatPay(); break; case 3: that.balancePay(); break; case 28: that.balanceHjPay(); break; default: break; } }, //微信支付 weChatPay() { this.payPost(1); }, //余额支付 balancePay() { this.payPost(3); }, // 第三方汇聚支付 balanceHjPay() { this.payPost(28); }, //支付 payPost(type) { let urlStr = app.getNetAddresss("plugin.clock-in.api.clock-in-pay.run-clock-pay"); urlStr += '&pay_method=' + type; urlStr += '&amount=' + this.data.amount; urlStr += "&client_type=2"; app._getNetWork({ url: urlStr, success: (resdata)=> { var res = resdata.data; if (res.result == 1) { this.rechargePay(type, res, res.data.ordersn, 'clock'); } else { wx.showToast({ icon: 'none', title: res.msg, duration: 1000 }); } }, fail: (res)=> { console.log(res); } }); }, clokinBtnCallBack() { let that = this; if (this.data.ios_virtual_pay) { wx.showModal({ title: '提示', content: '十分抱歉,由于相关规定,你暂时无法在这里充值!', confirmText: '知道了', showCancel: false, success(res) { console.log(res); } }); return false; } switch (this.data.btnStatus) { case -1: that.setData({ actionSheetShow: true }); break; case 0: that.setData({ actionSheetShow: true }); break; case 1: break; case 2: that.postClockIn(); break; case 3: that.setData({ actionSheetShow: true }); break; case 4: break; default: break; } }, //打卡 postClockIn() { let that = this; let urlStr = app.getNetAddresss("plugin.clock-in.api.clock-in.run-clock-in"); app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1) { that._getCurrentPayStatus(); that._getTodayPay(); wx.showToast({ icon: 'none', title: res.msg, duration: 1000 }); } else { wx.showToast({ icon: 'none', title: res.msg, duration: 1000 }); } }, fail: function (res) { console.log(res); } }); }, actionbtn(e) { let openType = e.detail.openType; this.initPayCallBack(openType); }, onClose() { this.setData({ actionSheetShow: false }); }, goClockPunchRule() { wx.navigateTo({ url: '/packageA/member/ClockPunchRule/ClockPunchRule' }); }, goClockPunchRecord() { wx.navigateTo({ url: '/packageA/member/ClockPunchRecord/ClockPunchRecord' }); }, //获取早起打卡设置 _getClockin() { let that = this; let urlStr = app.getNetAddresss("plugin.clock-in.api.clock-in.get-set"); app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1) { that.setData({ clockin_title: res.data.plugin_name, share_title: res.data.share.share_title, share_icon: res.data.share.share_icon, share_desc: res.data.share.share_desc, clock_begintime: res.data.clock_time.starttime, clock_endtime: res.data.clock_time.endtime, }); } else { if(res.data.is_clock_in==0){ let plugin_name = res.data.plugin_name; wx.showModal({ title: '提示', content: `${plugin_name}已禁用`, showCancel:false, success (res) { if (res.confirm) { wx.redirectTo({ url: '/packageG/member_v2/member_v2', }); } } }); } } }, fail: function (res) { console.log(res); } }); }, _initData() { this.setData({ //总共余额 totalAmonut: "", //总共参与人数 totalNumber: "", //总共参与会员 totalMember: [], //已打卡数量 clockInNum: 0, clockFirstShow: false, //第一名打卡会员 clockFirstMember: {}, luckyMemberShow: false, //连续打卡会员 continueMember: {}, continueMemberShow: false, //未打卡数量 notClockInNum: 0, btnStatus: "", amount: "1", //弹窗按钮控制 actionSheetShow: false, actionSheetItemsData: [], clockin_title: "早起打卡", share_title: "", share_icon: "", share_desc: "", clock_begintime: "", clock_endtime: "", }); } });