users/pages/order/offlinepay/index.js

427 lines
10 KiB
JavaScript

var core = getApp().globalData.requirejs("core"),
that
import cwxKeyboard from '@/components/cwx-keyboard/cwx-keyboard'
import rechargeDeductFn from './utils/rechargeDeductFn'
import creditDeductFn from './utils/creditDeductFn'
import orderSubmitFn from './utils/orderSubmitFn'
import moneyChangeFn from './utils/moneyChangeFn'
import getMerchFn from './utils/getMerchFn'
import intFn from './utils/intFn'
export default {
data() {
return {
list: {
realprice: 0.00,
credit: 0.00,
money_sub: 0.00,
deductcredit: 0.00,
deductprice: 0.00,
needpay: 0.00,
deduct_recharge: 0.00,
deductprice_zs:0.00,
deductcredit_zs:0.00
},
merch: {},
mockInputFocusText: ' ',
showKeyBoard: true,
showRemarkInput: false,
merchid: 0,
use_deductprice: false,
hideRechargeDeduct: false,
hideCreditDeduct: false,
// 是否已经获取公众号openid
getOpenIDAlready: '',
credit1: "",
// 储值卡
use_deduct_recharge: false,
recharge: 0,
submit: "", //提交状态
min_deduct_credit_price: 0.02,
on_paying: false,
option: {},
//活动赠送金豆
credit1_hot_set:0,
credit1_hot_rang:0,
use_deductprice_hot: false,
//活动金额范围 大于20才行
credit1_hot_set_jine:0,
//授权登录字段
openid:'',
ismobile:false,
//限额
quota:2000,
//可抵扣最大金额
use_max_credit_money:0
}
},
components: {
cwxKeyboard
},
props: {},
filters: {
limitDecimal(val) {
return parseFloat(val).toFixed(2);
},
},
onLoad: function (t) {
that = this
this.option = t
// uni.showLoading({
// title: '加载中'
// });
mockInputFocus()
intFn.init(that)
//加载用户openid
getApp().globalData.util.loginByCode(null, false).then(userInfo => {
if(userInfo.mobile==null||userInfo.mobile==''){
that.setData({
ismobile:true
})
}
that.setData({
openid:userInfo.openid
})
})
},
onShow: function () {
},
onHide: function () {
that.submit = false;
that.list = {};
that.use_deductprice = false;
uni.removeStorageSync('qr_scan_data');
this.$refs.clearMoney._handleClearKey();
},
methods: {
/**
* 检测是否需要跳转其他页面
* **/
isNeedGo2OtherPage: function (queryParam) {
let page = false
if (!queryParam) {
queryParam = that.option
} else {
return
}
let pageParam = '?id=' + queryParam.merchid
if (queryParam.needGo2MerCredit) {
page = 'merch/index_credit'
} else if (queryParam.needGo2MerGoods || queryParam.table_id) {
page = 'merch/index'
} else if (queryParam.needGo2MerDetails) {
page = 'merch/intro'
} else if (typeof queryParam.cashierid != "undefined" && queryParam.cashierid != "" && queryParam
.total >= 0.01) {
that.onMoneyInput(queryParam.total)
return
}
//如果是扫码点餐
if (queryParam.table_id) {
pageParam += '&table_id=' + queryParam.table_id
}
if (page) {
uni.navigateTo({
url: '/pages/' + page + pageParam
})
}
},
// 创建线下支付订单
getList: function (merchid) {
if (!merchid) {
uni.hideLoading()
uni.showModal({
title: '提示',
content: '网络开小差啦,重新扫码试试吧!1623124886'
})
return
}
getApp().globalData.request({
s: 'Merch_Index.GetMerchData4OfflinePay',
id: merchid
}).then(function (merchData) {
that.hasMerchData2Next(merchData)
});
},
// 获取到商家数据后 进行下一步操作
hasMerchData2Next: function (merchData) {
uni.hideLoading()
let merch = (merchData.data.data)
//默认金豆最大抵扣
that.use_max_credit_money=parseFloat(that.credit1*merch.credit_pay_rate).toFixed(2);
//金豆兑换比例
if (!merch) {
uni.showModal({
title: '提示',
content: '网络开小差啦,重新扫码试试吧!1623930867'
})
return;
}
if (0 == merch.err_code) {
// 获得当前商家设置信息
uni.setStorage({
key: 'cur_offline_merch_data',
data: merch
});
that.quota=merch.quota;
uni.setNavigationBarTitle({
title: '向' + merch.merchname + '付款'
})
that.min_deduct_credit_price = parseFloat(merch.min_offline_price) + 0.01
that.min_deduct_credit_price = getApp().globalData.util.numberFloor(that.min_deduct_credit_price)
// 生成随机数
const str = merch.credit_give_hot_rang;
const [min, max] = str.split(',');
const randomNum = Math.floor(Math.random() * (max - min + 1)) + parseInt(min);
let pt_title=["余乐兑平台"];
if(merch.activity_platform){
pt_title = JSON.parse(merch.activity_platform);
}
const index = Math.floor(Math.random() * pt_title.length);
that.setData({
merch: merch,
merchid: merch.id,
credit1_hot_set: merch.credit_give_hot_set,
credit1_hot_rang: randomNum,
activity_platform:pt_title[index]
})
if (merch.pay_need_mobile) {
getApp().globalData.checkBindMobile()
}
// 获取储值卡余额
that.getUserRecharge()
// 获取二步动作, 跳转等
that.isNeedGo2OtherPage()
} else if (merch && typeof merch.err_code_desc != undefined && merch.err_code_desc) {
let tipsText = ''
if (merch && merch.err_code_desc) {
tipsText += merch.err_code_desc
}
uni.hideLoading();
uni.showModal({
title: '提示',
content: tipsText,
showCancel: false
})
} else {
let tipsText = '网络开小差啦,重新扫码试试吧!1623124887';
if (merch && merch.err_code_desc) {
tipsText += merch.err_code_desc;
}
uni.hideLoading()
uni.showModal({
title: '提示',
content: tipsText
})
}
},
// 获取储值卡和金豆余额
getUserCredit: function () {
getApp().globalData.util.loginByCode(null, false).then(userInfo => {
that.setData({
credit1: userInfo.credit1
})
})
},
// 获取用户储值卡余额
getUserRecharge: function () {
getApp().globalData.request({
s: 'Member_Recharge.getUserRechargeBan',
userid: uni.getStorageSync('userInfo').id,
merchid: that.merchid
}).then(userRecharge => {
that.recharge = userRecharge.data.data.balance
})
},
//点击付款
submitFun: function () {
if(!this.use_deductprice_hot){
that.setData({
activity_platform:''
})
}
console.log("---------------------")
orderSubmitFn.orderSubmit(that)
},
/** 检查是否使用了金豆/储值卡抵扣,如果使用了,必须绑定手机号 */
checkCreditReBindMobile(list) {
if (list.deductcredit > 0 || list.deduct_recharge > 0) {
return true
}
return false
},
// 是否使用金豆抵扣
useCreditCheckBox: function (e) {
that.getUserCredit()
let noUseDeduct = false; // 不使用金豆抵扣
if (e.detail.value.length) {
noUseDeduct = true
}
this.use_deductprice = noUseDeduct;
creditDeductFn.modifyCreditDeduct(that)
},
// 是否使用赠送金豆活动抵扣
useCreditCheckBox_hot: function (e) {
let noUseDeduct = false; // 不使用金豆抵扣
if (e.detail.value[0]=='1') {
noUseDeduct = true
}
this.use_deductprice_hot = noUseDeduct;
creditDeductFn.modifyCreditDeduct(that)
},
// 是否使用储值卡
useRechargeCheckBox: function (e) {
that.getUserRecharge();
let noUseDeduct = false; // 不使用储值卡抵扣
if (e.detail.value.length) {
noUseDeduct = true
}
this.use_deduct_recharge = noUseDeduct
rechargeDeductFn.modifyRechargeDeduct(that, true)
},
onMoneyInput(e) {
//用于判断活动大于20元 回头改下
this.credit1_hot_set_jine=e
moneyChangeFn.changeEv(e, that)
},
toggleKeyboard() {
this.showKeyBoard = !this.showKeyBoard
},
showRemarkClick() {
this.showRemarkInput = true
},
// 显示推广人备注信息
showSpreadRemark() {
getApp().globalData.request({
s: 'Merch_Index.GetMerchData4OfflinePay',
id: that.merch.id
}).then(res => {
uni.showModal({
title: '提示',
showCancel: false,
content: '推广人备注:' + res.data.data.remark_spread
})
})
},
// 显示最小现金支付金额提示
showMiniCreditdeductTips() {
getApp().globalData.request({
s: 'Merch_Index.CreditCannotFullDeductTips',
id: that.merch.id
}).then(res => {
uni.showModal({
title: "提示",
showCancel: false,
content: res.data.data
})
})
},
// 使用数字人民币支付
useEcnyPay() {
uni.showModal({
title: "提示",
content: that.merch.e_cny_qrurl_psbc_tips,
showCancel: false
})
getApp().globalData.request({
s: 'Merch_Ecny.ShowDeviceEcnyQrCode',
merchid: that.merch.id,
e_cny_qrurl_psbc: that.merch.e_cny_qrurl_psbc
})
},
// 跳转到商家店铺页面
go2MerchIndex(merchid) {
// #ifdef H5
let h5Pla = getApp().globalData.util.getH5Platform()
if (h5Pla == "H5-ALIPAY") {
window.location.href = "alipays://platformapi/startapp?appId=2021001187681202&page=/pages/merch/index/index?id=" + merchid
}
// #endif
// #ifdef MP-ALIPAY||MP-WEIXIN
uni.navigateTo({
url: '/pages/merch/index/index?id=' + merchid
})
// #endif
},
//微信获取手机号
getPhoneNumber(e){
getApp().globalData.request({
s: 'Member_User.getPhone',
code: e.detail.code,
openid: that.openid,
platform: 'MP-WEIXIN'
}).then(function (res) {
if(res.data.data.result_code=="SUCCESS"){
that.ismobile=false; //手机按钮隐藏
that.use_deductprice=true; //复选框勾选
creditDeductFn.modifyCreditDeduct(that)
}
else{
uni.showToast({
title:'取消金豆会员抵扣',
icon:'none'
})
}
return false;
});
return false;
},
//微信获取手机号-平台赠送活动选项
getPhoneNumber_hot(e){
getApp().globalData.request({
s: 'Member_User.getPhone',
code: e.detail.code,
openid: that.openid,
platform: 'MP-WEIXIN'
}).then(function (res) {
if(res.data.data.result_code=="SUCCESS"){
that.ismobile=false; //手机按钮隐藏
that.use_deductprice_hot=true; //复选框勾选
creditDeductFn.modifyCreditDeduct(that)
}
else{
uni.showToast({
title:'取消活动赠送金豆',
icon:'none'
})
}
return false;
});
return false;
},
} // / methods
};
// 模拟光标
function mockInputFocus() {
setInterval(function () {
if (that.mockInputFocusText == '0.1') {
that.mockInputFocusText = '0.5'
} else {
that.mockInputFocusText = '0.1'
}
}, 1000)
}