270 lines
6.0 KiB
JavaScript
270 lines
6.0 KiB
JavaScript
|
var app = getApp();
|
||
|
var util = require('../../utils/util.js');
|
||
|
|
||
|
Page({
|
||
|
mixins: [require('../../mixin/globalMixin.js')],
|
||
|
data: {
|
||
|
canPay: false,
|
||
|
money: '',
|
||
|
onFocus: false,
|
||
|
accountMoney: 0,
|
||
|
chargetype_list: [],
|
||
|
activeTypeId: '',
|
||
|
recharge_get_money: '',
|
||
|
rewardIdx: -1,
|
||
|
chargeArr: []
|
||
|
},
|
||
|
rech_id: 0,
|
||
|
revenue: [],
|
||
|
reward: [],
|
||
|
handlerGobackClick(delta) {
|
||
|
const pages = getCurrentPages();
|
||
|
if (pages.length >= 2) {
|
||
|
wx.navigateBack({
|
||
|
delta: delta
|
||
|
});
|
||
|
} else {
|
||
|
wx.switchTab({
|
||
|
url: '/eaterplanet_ecommerce/pages/index/index'
|
||
|
});
|
||
|
}
|
||
|
},
|
||
|
handlerGohomeClick(url) {
|
||
|
wx.switchTab({
|
||
|
url: '/eaterplanet_ecommerce/pages/index/index'
|
||
|
});
|
||
|
},
|
||
|
/**
|
||
|
* 生命周期函数--监听页面加载
|
||
|
*/
|
||
|
onLoad: function (options) {
|
||
|
this.getAccountMoney();
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 生命周期函数--监听页面显示
|
||
|
*/
|
||
|
onShow: function () {
|
||
|
if (!util.check_login()) {
|
||
|
wx.redirectTo({
|
||
|
url: '/eaterplanet_ecommerce/pages/user/me',
|
||
|
})
|
||
|
}
|
||
|
},
|
||
|
|
||
|
getAccountMoney() {
|
||
|
let token = wx.getStorageSync('token');
|
||
|
let that = this;
|
||
|
app.util.request({
|
||
|
'url': 'entry/wxapp/user',
|
||
|
'data': {
|
||
|
controller: 'user.get_account_money',
|
||
|
token: token
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
success: function (res) {
|
||
|
if (res.data.code == 0) {
|
||
|
let rdata = res.data;
|
||
|
let member_charge_publish = rdata.member_charge_publish;
|
||
|
let chargetype_list = rdata.chargetype_list;
|
||
|
let recharge_get_money = rdata.recharge_get_money || '';
|
||
|
|
||
|
let chargeArr = chargetype_list.sort(function (a, b) {
|
||
|
return a.money - b.money;
|
||
|
});
|
||
|
let revenue = [];
|
||
|
let reward = [];
|
||
|
chargeArr.forEach(item => {
|
||
|
revenue.push(item.money * 1);
|
||
|
reward.push(item.send_money * 1);
|
||
|
})
|
||
|
that.revenue = revenue;
|
||
|
that.reward = reward;
|
||
|
|
||
|
let excharge_nav_name = res.data.excharge_nav_name || '详情';
|
||
|
wx.setNavigationBarTitle({
|
||
|
title: excharge_nav_name,
|
||
|
})
|
||
|
|
||
|
that.setData({
|
||
|
accountMoney: rdata.data,
|
||
|
chargetype_list,
|
||
|
member_charge_publish,
|
||
|
recharge_get_money,
|
||
|
chargeArr
|
||
|
})
|
||
|
} else if (res.data.code == 1) {
|
||
|
wx.redirectTo({
|
||
|
url: '/eaterplanet_ecommerce/pages/user/me',
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
|
||
|
getMoney: function (e) {
|
||
|
var val = e.detail.value;
|
||
|
val ? this.setData({
|
||
|
canPay: true
|
||
|
}) : this.setData({
|
||
|
canPay: false
|
||
|
});
|
||
|
let money = val;
|
||
|
let rewardIdx = -1;
|
||
|
if(this.data.recharge_get_money==1) {
|
||
|
rewardIdx = this.canAwardMoney(money);
|
||
|
console.log('rewardIdx', rewardIdx);
|
||
|
}
|
||
|
this.setData({
|
||
|
money,
|
||
|
rewardIdx
|
||
|
});
|
||
|
// return money;
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 获得送金额提示
|
||
|
*/
|
||
|
canAwardMoney: function (money) {
|
||
|
let revenue = this.revenue;
|
||
|
let reward = this.reward;
|
||
|
//小于最小值
|
||
|
if (money < Math.min.apply(null, revenue)) {
|
||
|
return -1;
|
||
|
}
|
||
|
if (money >= Math.max.apply(null, revenue)) {
|
||
|
return revenue.length - 1;
|
||
|
}
|
||
|
|
||
|
let idx = 0, i = 0, j = revenue.length;
|
||
|
for (i; i < j; i++) {
|
||
|
if (revenue[i] > money) {
|
||
|
idx = i;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
return idx-1;
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 余额充值
|
||
|
*/
|
||
|
wxcharge: function (sendMoney = 0) {
|
||
|
let oriMoney = 0;
|
||
|
if (sendMoney > 0) {
|
||
|
oriMoney = sendMoney;
|
||
|
} else {
|
||
|
oriMoney = this.data.money;
|
||
|
var reg = /^\d+(\.\d+)?$/;
|
||
|
if (!reg.test(oriMoney)) {
|
||
|
wx.showToast({
|
||
|
title: '请输入正确的金额',
|
||
|
icon: 'none'
|
||
|
})
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
let money = parseFloat(oriMoney).toFixed(2) || 0;
|
||
|
let token = wx.getStorageSync('token');
|
||
|
let that = this;
|
||
|
|
||
|
that.data.canPay && app.util.request({
|
||
|
url: 'entry/wxapp/user',
|
||
|
data: {
|
||
|
controller: 'car.wxcharge',
|
||
|
token: token,
|
||
|
money: money,
|
||
|
rech_id: that.rech_id
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
success: function (res) {
|
||
|
wx.requestPayment({
|
||
|
"appId": res.data.appId,
|
||
|
"timeStamp": res.data.timeStamp,
|
||
|
"nonceStr": res.data.nonceStr,
|
||
|
"package": res.data.package,
|
||
|
"signType": res.data.signType,
|
||
|
"paySign": res.data.paySign,
|
||
|
'success': function (wxres) {
|
||
|
that.setData({
|
||
|
canPay: false,
|
||
|
activeTypeId: 0
|
||
|
})
|
||
|
that.getAccountMoney();
|
||
|
that.rech_id = 0;
|
||
|
wx.showToast({
|
||
|
icon: 'none',
|
||
|
title: '充值成功',
|
||
|
})
|
||
|
setTimeout(() => {
|
||
|
wx.reLaunch({
|
||
|
url: '/eaterplanet_ecommerce/pages/user/me',
|
||
|
})
|
||
|
}, 2000)
|
||
|
},
|
||
|
'fail': function (error) {
|
||
|
if (that.rech_id > 0) that.setData({
|
||
|
canPay: false,
|
||
|
activeTypeId: 0
|
||
|
}), that.rech_id = 0;
|
||
|
wx.showToast({
|
||
|
icon: 'none',
|
||
|
title: '充值失败,请重试!',
|
||
|
})
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 获得焦点
|
||
|
*/
|
||
|
bindIptFocus: function () {
|
||
|
this.rech_id = 0;
|
||
|
this.setData({
|
||
|
onFocus: true,
|
||
|
activeTypeId: 0,
|
||
|
money: '',
|
||
|
canPay: false
|
||
|
})
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 失去焦点
|
||
|
*/
|
||
|
bindIptBlur: function () {
|
||
|
this.setData({
|
||
|
onFocus: false
|
||
|
})
|
||
|
},
|
||
|
|
||
|
goCharge: function (e) {
|
||
|
let that = this;
|
||
|
let chargetype_list = this.data.chargetype_list;
|
||
|
let idx = e.currentTarget.dataset.idx;
|
||
|
let rech_id = chargetype_list[idx].id;
|
||
|
let money = chargetype_list[idx].money;
|
||
|
this.rech_id = rech_id;
|
||
|
this.setData({
|
||
|
canPay: true
|
||
|
}, () => {
|
||
|
that.wxcharge(money);
|
||
|
})
|
||
|
},
|
||
|
|
||
|
selChargeType: function (e) {
|
||
|
let that = this;
|
||
|
let chargetype_list = this.data.chargetype_list;
|
||
|
let idx = e.currentTarget.dataset.idx;
|
||
|
let activeTypeId = chargetype_list[idx].id || 0;
|
||
|
let money = chargetype_list[idx].money;
|
||
|
this.rech_id = activeTypeId;
|
||
|
that.setData({
|
||
|
activeTypeId,
|
||
|
money,
|
||
|
canPay: true
|
||
|
})
|
||
|
}
|
||
|
})
|