yuminge-app/yun-min-program-plugin-master/packageA/member/ClockPunch/ClockPunch.js

601 lines
14 KiB
JavaScript

// 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: "",
});
}
});