308 lines
7.3 KiB
JavaScript
308 lines
7.3 KiB
JavaScript
// pages/balance_recharge/balance_recharge.js
|
||
var yz_pay = require("../../../mycomponent/yz_pay/yz_pay");
|
||
var app = getApp();
|
||
Page({
|
||
behaviors: [yz_pay],
|
||
/**
|
||
* 页面的初始数据
|
||
*/
|
||
data: {
|
||
language: '',
|
||
credit2: 0,
|
||
buttons: [],
|
||
typename: '',
|
||
recharge: '',
|
||
ordersn: '',
|
||
money: '',
|
||
activatDes: {},
|
||
// 选择的充值方式
|
||
pay_type: '',
|
||
balanceLang: '余额',
|
||
proportion_status:0,
|
||
payMuch:'',
|
||
info:[],
|
||
popshow:false
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面加载
|
||
*/
|
||
onLoad: function(options) {
|
||
if(options.store_id){
|
||
this.setData({
|
||
store_id:options.store_id
|
||
});
|
||
}
|
||
},
|
||
onShow:function(){
|
||
this.getStoreBalance();
|
||
},
|
||
selectSpecs(e){
|
||
let val = e.detail;
|
||
for( let key in this.data.buttons){
|
||
if(this.data.buttons[key].value == val){
|
||
this.setData({
|
||
radio:this.data.buttons[key].value,
|
||
methodsArr : this.data.buttons[key]
|
||
});
|
||
}
|
||
}
|
||
},
|
||
/**
|
||
* 生命周期函数--监听页面初次渲染完成
|
||
*/
|
||
onReady: function() {
|
||
let language = wx.getStorageSync('langIndex');
|
||
this.setData({ 'language': language.en});
|
||
},
|
||
|
||
/**
|
||
* 用户点击右上角分享
|
||
*/
|
||
onShareAppMessage: function() {},
|
||
// 初始化参数
|
||
getStoreBalance() {
|
||
let that = this;
|
||
let urlStr = app.getNetAddresss('plugin.store-cashier.frontend.store.balance.balance.index');
|
||
app._getNetWork({
|
||
url: urlStr,
|
||
data:{
|
||
store_id:this.data.store_id
|
||
},
|
||
success: function(resdata) {
|
||
var res = resdata.data;
|
||
if (res.result == 1) {
|
||
that.setData({
|
||
credit2: res.data.member_balance,
|
||
show_activity:res.data.show_activity,
|
||
buttons: res.data.pay_buttons,
|
||
title: res.data.title,
|
||
activatDes: res.data.activity,
|
||
proportion_status:res.data.proportion_status,
|
||
info:res.data,
|
||
is_open_recharge_order:res.data.is_open_recharge_order == 0?false:true,
|
||
store:res.data.store
|
||
});
|
||
for (let i = 0; i < that.data.buttons.length; i++) {
|
||
if (that.data.buttons[i]) {
|
||
that.setData({
|
||
['buttons[' + i + '].btclass']: that.btnclass(that.data.buttons[i].value)
|
||
});
|
||
}
|
||
}
|
||
for( let key in that.data.buttons){
|
||
that.setData({
|
||
radio:that.data.buttons[key].value,
|
||
methodsArr : that.data.buttons[key]
|
||
});
|
||
return;
|
||
}
|
||
} else {
|
||
wx.showToast({
|
||
icon: 'none',
|
||
title: res.msg,
|
||
duration: 1500
|
||
});
|
||
}
|
||
},
|
||
fail: function(res) {
|
||
console.log(res);
|
||
}
|
||
});
|
||
},
|
||
moneyinp(e) {
|
||
let val = e.detail.value;
|
||
this.setData({
|
||
money: val
|
||
});
|
||
},
|
||
// 确认充值
|
||
confirm(e) {
|
||
console.log(this.data.methodsArr.value);
|
||
let type = this.data.methodsArr.value;
|
||
this.setData({
|
||
money: this.data.payMuch,
|
||
pay_type: type
|
||
});
|
||
let urlStr = app.getNetAddresss('plugin.store-cashier.frontend.store.balance.balance.recharge');
|
||
urlStr += '&client_type=2';
|
||
urlStr += '&app_type=wechat';
|
||
urlStr += '&pay_type_id=' + this.data.pay_type;
|
||
urlStr += '&recharge_money=' + this.data.money;
|
||
urlStr += '&store_id=' + this.data.store_id;
|
||
app._getNetWork({
|
||
url: urlStr,
|
||
success: (resdata)=> {
|
||
var res = resdata.data;
|
||
if (res.result == 1) {
|
||
if (app._isTextEmpty(res.data.ordersn)) {
|
||
wx.showToast({
|
||
icon: 'none',
|
||
title: '参数错误',
|
||
duration: 1500
|
||
});
|
||
return;
|
||
}
|
||
this.setData({
|
||
ordersn: res.data.ordersn
|
||
});
|
||
this.rechargePay(type, res, res.data.ordersn);
|
||
} else {
|
||
wx.showToast({
|
||
icon: 'none',
|
||
title: res.msg,
|
||
duration: 1500
|
||
});
|
||
}
|
||
},
|
||
fail:(res)=> {
|
||
console.log(res);
|
||
}
|
||
});
|
||
},
|
||
// 键盘
|
||
//处理按键
|
||
_handleKeyPress(e) {
|
||
let num = e.currentTarget.dataset.num;
|
||
//不同按键处理逻辑
|
||
// -1 代表无效按键,直接返回
|
||
if (num == -1) return false;
|
||
switch (String(num)) {
|
||
//小数点
|
||
case ".":
|
||
this._handleDecimalPoint();
|
||
break;
|
||
//删除键
|
||
case "D":
|
||
this._handleDeleteKey();
|
||
break;
|
||
//确认键
|
||
case "S":
|
||
this._handleConfirmKey();
|
||
break;
|
||
default:
|
||
this._handleNumberKey(num);
|
||
break;
|
||
}
|
||
},
|
||
//处理小数点函数
|
||
_handleDecimalPoint() {
|
||
//如果包含小数点,直接返回
|
||
if (this.data.payMuch.indexOf(".") > -1) {
|
||
return false;
|
||
}
|
||
//如果小数点是第一位,补0
|
||
if (!this.data.payMuch.length) {
|
||
this.setData({
|
||
payMuch: "0.",
|
||
});
|
||
} else {
|
||
//如果不是,添加一个小数点
|
||
this.setData({
|
||
payMuch: this.data.payMuch + ".",
|
||
});
|
||
}
|
||
},
|
||
//处理删除键
|
||
_handleDeleteKey() {
|
||
let S = this.data.payMuch;
|
||
//如果没有输入,直接返回
|
||
if (S.length <= 1) {
|
||
this.setData({
|
||
payMuch: "0",
|
||
});
|
||
return;
|
||
}
|
||
//否则删除最后一个
|
||
this.setData({
|
||
payMuch: S.substring(0, S.length - 1),
|
||
});
|
||
},
|
||
_handleConfirmKey() {
|
||
if(this.data.store){
|
||
let S = this.data.payMuch;
|
||
//未输入
|
||
if (!S.length || Number(S) === 0) {
|
||
wx.showToast({
|
||
icon: "none",
|
||
title: "您目前未输入!",
|
||
duration: 1500,
|
||
});
|
||
return false;
|
||
}
|
||
//将 8. 这种转换成 8.00
|
||
if (S.indexOf(".") > -1 && S.indexOf(".") === S.length - 1) {
|
||
S = Number(S.substring(0, S.length - 1)).toFixed(2);
|
||
}
|
||
//保留两位
|
||
S = Number(S).toFixed(2);
|
||
this.setData({
|
||
payMuch: S,
|
||
});
|
||
if(this.data.is_open_recharge_order){
|
||
this.setData({
|
||
popshow:true
|
||
});
|
||
}else{
|
||
this.confirmOrder();
|
||
}
|
||
}
|
||
},
|
||
confirmOrder() {
|
||
var val = this.data.payMuch;
|
||
if (val && val > 0) {
|
||
this.setData({
|
||
payPrice: val,
|
||
confirmOrderStatus: true,
|
||
isdisabled: true,
|
||
});
|
||
// this.preGoodsBuy();
|
||
this.confirm();
|
||
} else {
|
||
wx.showToast({
|
||
icon: "none",
|
||
title: "请输入正确的付款金额!",
|
||
duration: 1500,
|
||
});
|
||
this.setData({
|
||
confirmOrderStatus: false,
|
||
isdisabled: false,
|
||
});
|
||
}
|
||
},
|
||
//处理数字
|
||
_handleNumberKey(num) {
|
||
let S = this.data.payMuch;
|
||
//如果有小数点且小数点位数不小于2
|
||
if (S.indexOf(".") > -1 && S.substring(S.indexOf(".") + 1).length < 2) {
|
||
this.setData({
|
||
payMuch: S + num,
|
||
});
|
||
}
|
||
//没有小数点
|
||
if (!(S.indexOf(".") > -1)) {
|
||
//如果第一位是0,只能输入小数点
|
||
if (num == 0 && S.length == 0) {
|
||
this.setData({
|
||
payMuch: "0.",
|
||
});
|
||
} else {
|
||
if (S.length && Number(S.charAt(0)) === 0) {
|
||
this.setData({
|
||
payMuch: num,
|
||
});
|
||
return;
|
||
}
|
||
this.setData({
|
||
payMuch: S + num,
|
||
});
|
||
}
|
||
}
|
||
},
|
||
showOffMethod(e){
|
||
this.setData({
|
||
popshow:e.detail.show1
|
||
});
|
||
}
|
||
});
|