users/pages/order/offlinepay/index.vue

394 lines
12 KiB
Vue
Raw Normal View History

2024-11-08 14:43:06 +08:00
<template>
<view>
<view class="top-main-box">
2024-11-26 15:26:32 +08:00
<view v-if="merch.shop_name">
<!-- @click="go2MerchIndex(merchid)" -->
<navigator class="fukuan-top">
2024-11-08 14:43:06 +08:00
<view>
2024-11-26 15:26:32 +08:00
<view class="fukuan-title">付款给[{{ merch.shop_name }}]</view>
2024-11-08 14:43:06 +08:00
</view>
2024-11-26 15:26:32 +08:00
<image style="border-radius:12rpx;" :src="merch.door_photo"
@error="this.merch.door_photo = 'http://yuledui.oss-cn-qingdao.aliyuncs.com/' + merch.door_photo">
</image>
2024-11-08 14:43:06 +08:00
</navigator>
<view class="fui-cell-group fukuan-jin-e">
2024-11-26 15:26:32 +08:00
<view class="top-money-remark">
<text>金额</text>
<!-- <text @click="showRemarkClick" class="reamrk-btn">备注</text> -->
2024-11-08 14:43:06 +08:00
</view>
<view class="fui-cell" @click="toggleKeyboard(1)">
<view class="fui-cell-labelf">¥</view>
<view class="fui-cell-remark noremark"
style="margin-left:25rpx;text-align:left;font-size:58rpx;">
<text v-if="!list.realprice" :style="'opacity:' + mockInputFocusText + ';'">|</text>
<text v-if="list.realprice" class="fui-input textl" id="price">{{ list.realprice ?
list.realprice : '' }}</text>
<text v-else style="opacity:0.5;">在此输入金额</text>
</view>
</view>
<view class="remark-money"><input v-if="showRemarkInput" @input="listChange" class="fui-input textl"
id="remark" placeholder="请输入备注" type="text" /></view>
</view>
</view>
<!-- / -->
<!-- 金豆赠送活动抵扣 -->
2024-11-26 15:26:32 +08:00
<view class="fui-cell-group">
<block>
<view class="fui-cell" v-if="credit1_hot_rang.toFixed(2)>0">
<view class="fui-cell-info" style="color:#666;flex:inherit;margin-right:15rpx;">
{{ list.realprice }}元赠送{{ credit1_hot_rang|limitDecimal }}金豆
2024-11-08 14:43:06 +08:00
</view>
<view class="flex">
2024-11-26 15:26:32 +08:00
<view class="" style="font-size:30rpx;color:red">
可抵扣约{{ credit1_hot_rang*0.15|limitDecimal }}
2024-11-08 14:43:06 +08:00
</view>
</view>
</view>
</block>
2024-11-26 15:26:32 +08:00
2024-11-08 14:43:06 +08:00
</view>
<!-- / -->
<!-- 金豆抵扣 -->
2024-11-26 15:26:32 +08:00
<view class="fui-cell-group" v-if="!hideCreditDeduct&&(use_max_credit_money.toFixed(2)>0)">
2024-11-08 14:43:06 +08:00
<view class="fui-cell" style="flex-wrap:wrap;" v-if="list.realprice">
2024-11-26 15:26:32 +08:00
<block v-if="bean > 0">
2024-11-08 14:43:06 +08:00
<block v-if="ismobile">
<view class="flex">
2024-11-26 15:26:32 +08:00
<view>
<checkbox-group @change="useCreditCheckBox" style="transform: scale(0.75);">
<checkbox color="#ed6d00" :checked="use_deductprice"></checkbox>
</checkbox-group>
2024-11-08 14:43:06 +08:00
</view>
2024-11-26 15:26:32 +08:00
<view style="font-size:30rpx;color:red">
本次消费可用金豆抵扣约{{use_max_credit_money|limitDecimal}}
2024-11-08 14:43:06 +08:00
</view>
</view>
</block>
</block>
<text class="text tip-txt" v-else>暂无可抵扣金豆</text>
</view>
</view>
<!-- / -->
<view class="fui-cell-group">
<!-- 满减 -->
2024-11-26 15:26:32 +08:00
<view class="fui-cell " v-if="list.realprice>list.money_sub&&list.money_sub!=0">
2024-11-08 14:43:06 +08:00
<view v-if="list.money_sub > 0" class="fui-cell-info credit-title-txt">
2024-11-26 15:26:32 +08:00
本次随机立减:
<text style="color:#1aac19;">{{ list.money_sub|limitDecimal }}</text>
2024-11-08 14:43:06 +08:00
<text class="tip-txt hide"><text style="margin-left:5rpx">(消费越多 优惠越多)</text></text>
</view>
</view>
<navigator class="fui-cell " openType="navigate">
<view class="fui-cell-info credit-title-txt">
金豆余额:
2024-11-26 15:26:32 +08:00
<text style="color:#FF9933;">{{ bean }}</text>
<text @click="showMiniCreditdeductTips" class="icox icox-bangzhuzhongxin"
style="margin-left: 5rpx;"></text>
2024-11-08 14:43:06 +08:00
<view class="tip-txt"><text class="hide">(消费所得金豆可用于抵扣现金)</text>
</view>
</view>
</navigator>
<navigator target="miniProgram" :app-id="merch.third_company_credit_miniappid" path="/pages/index/index"
class="fui-cell"
v-if="merch.third_company_credit_order == 'yes' && merch.third_company_credit_miniappid">
<image style="width: 90rpx;height: 90rpx;" v-if="merch.third_company_credit_merchlogo != ''"
class="icon" :src="merch.third_company_credit_merchlogo"></image>
<view class="fui-cell-info credit-title-txt">
<view class="text">
<text>{{ merch.third_company_credit_miniappid_click_tips }}</text>
</view>
</view>
</navigator>
2024-11-26 15:26:32 +08:00
<!-- <view v-if="list.realprice > 0" class="fui-cell " openType="navigate">
2024-11-08 14:43:06 +08:00
<view class="fui-cell-info credit-title-txt">
最终应付:
<text class="realprice">{{ list.needpay }}</text>
<view class="tip-txt hide"><text>(所得金豆可以再次抵现)</text></view>
</view>
2024-11-26 15:26:32 +08:00
</view> -->
2024-11-08 14:43:06 +08:00
</view>
</view>
<!-- 数字人民币显示 -->
<!-- <button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber" class="mini-btn" v-if="ismobile">授权手机号</button> -->
2024-11-26 15:26:32 +08:00
<!-- <button @click="useEcnyPay" class="e-cny-button" v-if="merch.e_cny_qrurl_psbc">点我使用数字人民币支付</button> -->
2024-11-08 14:43:06 +08:00
<!-- / -->
<view class="yuledui-biaoyu">
2024-11-26 15:26:32 +08:00
<text>要省钱 就用</text>
2024-11-08 14:43:06 +08:00
<text class="yld-txt">余乐兑</text>
<text class="shangbiao-txt">®</text>
</view>
2024-11-26 15:26:32 +08:00
<button open-type="getPhoneNumber" v-if="!isMobeil" @getphonenumber="onGetPhoneNumber">授权并获取手机号</button>
2024-11-08 14:43:06 +08:00
<view style="text-align:center;"> <!-- 隐藏键盘按钮 -->
<img @click="toggleKeyboard" class="hide-btn"
src="http://yuledui.oss-cn-qingdao.aliyuncs.com/wx_miniapp/order/offlinepay/down-hide.png" />
</view>
<view :class="showKeyBoard ? '' : 'hide'" class="bottom-key">
<cwx-keyboard v-if="option.cashierid && option.cashierid != '' && option.total > 0" ref="clearMoney"
2024-11-26 15:26:32 +08:00
@confirmEvent="submitFun" :hideInputNumber="true" :btn-color='btnColor' title="点我付款"></cwx-keyboard>
2024-11-08 14:43:06 +08:00
<cwx-keyboard v-else ref="clearMoney" @oninputBind="onMoneyInput" @confirmEvent="submitFun"
2024-11-26 15:26:32 +08:00
:money.sync="list.realprice" :btn-color='btnColor' title="付款"></cwx-keyboard>
2024-11-08 14:43:06 +08:00
</view>
</view>
</template>
2024-11-26 15:26:32 +08:00
<script>
import {
ulogin,
register,
getShop,
getmanager,
pay,
getReduction,
zfbRegister
} from '@/utils/api.js'
var core = getApp().globalData.requirejs("core"),
that
import cwxKeyboard from '@/components/cwx-keyboard/cwx-keyboard'
import {
globalAgent
} from 'http';
// import intFn from './utils/intFn' //扫码相关
export default {
data() {
return {
openId: '',
showKeyBoard: true,
option: {},
credit1_hot_rang: 0, //赠送金豆数量
use_deductprice_hot: false,
isMobeil: false, //是否已经注册过了
merch: {}, //商户信息
bean: 0, //金豆数量
money_sub: 0, //随机立减
hideCreditDeduct: false,
mockInputFocusText: ' ',
list: {
realprice: 0.00, //原价
needpay: 0.00, //需要支付
credit: 0.00, //金豆奖励
money_sub: 0.00, //随机立减
},
ismobile: true,
activity_platform: 0,
use_max_credit_money: 0.00, //金豆抵扣钱数
money_ratio: 0, //金豆赠送比例
bean_ratio: 0, //金豆抵扣比列
isUsebean: false, //是否使用金豆抵扣
btnColor: ''
}
},
components: {
cwxKeyboard
},
filters: {
limitDecimal(val) {
return parseFloat(val).toFixed(2);
},
},
//二维码上只有shop_id
onLoad: function(t) {
that = this
this.option = t
// mockInputFocus()
// this.getManage()
// this.logins()
// this.getMoney()
},
onShow: function() {
// #ifdef MP-ALIPAY
this.btnColor = '#1677ff'
// #endif
// #ifdef MP-WEIXIN
this.btnColor = '#08c163'
// #endif
this.list = {
realprice: 0.00, //原价
needpay: 0.00, //需要支付
credit: 0.00, //金豆奖励
money_sub: 0.00, //随机立减
}
this.credit1_hot_rang = 0;
this.bean = 0;
this.money_sub = 0;
this.activity_platform = 0;
this.use_max_credit_money = 0;
this.money_ratio = 0;
this.bean_ratio = 0;
mockInputFocus()
this.getManage()
this.logins()
this.getMoney()
},
onHide: function() {
that.submit = false;
that.list = {};
that.use_deductprice = false;
uni.removeStorageSync('qr_scan_data');
this.$refs.clearMoney._handleClearKey();
},
methods: {
//注册
onGetPhoneNumber(e) {
console.log(e);
let that = this
// #ifdef MP-ALIPAY
if (e.detail.errMsg === 'getPhoneNumber:ok') {
// 用户授权成功
zfbRegister({response: e.detail.encryptedData}).then(res=>{
console.log(res);
if(!res.code){
uni.setStorageSync('phone', res.data.mobile)
that.getShopmsg()
}
})
} else {
// // 用户未授权
console.log('用户未授权获取手机号');
}
// #endif
// #ifdef MP-WEIXIN
register({
code: e.detail.code,
openId: uni.getStorageSync("openId")
}).then(response => {
that.getShopmsg()
})
// #endif
},
//登录
logins() {
let that = this
uni.login({
// #ifdef MP-ALIPAY
provider: 'alipay', //使用微信登录
// #endif
// #ifdef MP-WEIXIN
provider: 'weixin', //使用微信登录
// #endif
success: function(res) {
console.log(res);
// #ifdef MP-WEIXIN
ulogin({
jsCode: res.code
}).then(r => {
if (!r.code) {
uni.setStorageSync('openId', r.data.openid)
if (r.data.mobile == '') {
this.isMobeil = false
} else {
this.isMobeil = true
uni.setStorageSync('phone', r.data.mobile)
uni.setStorageSync('bean', r.data.bean)
that.getShopmsg()
}
}
})
//#endif
}
})
},
//获取商户信息
getShopmsg() {
getShop({
shop_id: 'na2svl0blg0d5qt1qprt6f8200qurv11'
}).then(res => {
console.log(res);
this.merch = res.data
this.bean = uni.getStorageSync('bean')
if (uni.getStorageSync('phone') != '') {
this.isMobeil = true
}
console.log(this.bean);
})
},
//获取商户抵扣 赠送比例
getManage() {
getmanager({
shop_id: 'na2svl0blg0d5qt1qprt6f8200qurv11'
}).then(res => {
this.money_ratio = res.data.gift_rate / 100 //金豆赠送
this.bean_ratio = res.data.deduction_ratio / 100 //金豆抵扣
// this.money_sub = res.data.rand_reduction / 100 //随机立减
uni.getStorageSync('money_ratio', this.money_ratio)
uni.getStorageSync('bean_ratio', this.bean_ratio)
})
},
onMoneyInput(e) {
this.list.realprice = e
this.credit1_hot_rang = e * this.money_ratio / 0.15 //赠送豆数
if (e * this.bean_ratio / 0.15 > this.bean) {
this.use_max_credit_money = this.bean * 0.15
} else {
this.use_max_credit_money = e * this.bean_ratio //抵扣豆数
}
// this.getMoney()
// moneyChangeFn.changeEv(e, that)
},
//获取随机立减金额
getMoney() {
getReduction({
shopId: 'na2svl0blg0d5qt1qprt6f8200qurv11'
}).then(res => {
console.log(res);
this.list.money_sub = res.data.reduction / 100
})
},
toggleKeyboard() {
this.showKeyBoard = !this.showKeyBoard
},
//点击付款
submitFun() {
//this.list.money_sub 是元
let subMoney = this.list.money_sub * 100 //分
if (Number(this.list.realprice) - Number(this.list.money_sub) < 0.02) {
subMoney = 0
}
const data = {
shopId: 'na2svl0blg0d5qt1qprt6f8200qurv11', //商户ID
price: this.list.realprice, //商品原价 元
bean: this.isUsebean ? parseFloat(this.use_max_credit_money / 0.15).toFixed(2) : 0, //抵扣金豆
openId: uni.getStorageSync('openId'), //微信OpenId 或者支付宝的唯一id
channel: '1',
reduction: subMoney
}
this.$u.route({
url: '/pages/order/offlinepay/pay/index?val=' + JSON.stringify(data),
})
},
// 是否使用金豆抵扣
useCreditCheckBox(e) {
if (e.detail.value.length) {
this.isUsebean = true
} else {
this.isUsebean = false
}
},
}
};
// 模拟光标
function mockInputFocus() {
setInterval(function() {
if (that.mockInputFocusText == '0.1') {
that.mockInputFocusText = '0.5'
} else {
that.mockInputFocusText = '0.1'
}
}, 1000)
}
</script>
2024-11-08 14:43:06 +08:00
<style>
2024-11-26 15:26:32 +08:00
@import './index.css';
</style>