微信支付前端

master
mhsnet 3 months ago
parent 99a96ff8c6
commit 807af7c8ec

@ -0,0 +1,15 @@
import request from "@/utils/request";
// import dayjs from "dayjs";
// 创建支付订单返回二维码
export function rechargeCreateOrder(enterpriseId, amount) {
let data = {
enterpriseId: enterpriseId,
amount: amount
};
return request({
url: `/api/scm/Payment/create-order`,
method: "POST",
data
});
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

@ -76,6 +76,16 @@ const baseRouter = [{
icon: 'icon-ym icon-ym-generator-link',
}
},
{
path: '/recharge/:enterpriseId',
component: (resolve) => require(['@/views/basic/recharge'], resolve),
name: 'recharge',
meta: {
title: 'recharge',
affix: false,
zhTitle: '充值',
icon: 'icon-ym icon-ym-generator-link',
}
},
]
export default baseRouter

@ -0,0 +1,288 @@
<template>
<div class="app-recharge">
<el-card class="recharge-card-a">
<el-row>
<el-col :span="24">
<div style="text-align: center;">
<span style="font-size: 36px;font-weight:bolder;">{{ fund }}</span
><span style="padding: 0px 10px;font-weight: bolder;"></span>
</div>
<div style="text-align: center;">
<span style="font-size:small;font-weight:bolder;">余额</span>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24" style="text-align: center; padding: 25px;">
<el-button type="primary" plain @click="fnGoUrl('/payment')"
>充值记录</el-button
>
<el-button type="primary" plain @click="fnGoUrl('/paymentlog')"
>微信平台记录</el-button
>
<el-button
type="primary"
plain
@click="fnGoUrl('/enterpriseaccountbill')"
>交易流水</el-button
>
</el-col>
</el-row>
</el-card>
<el-card class="recharge-card-b">
<el-row>
<el-col :span="4"><div class="label">充值方式</div></el-col>
<el-col :span="20">
<div style="padding-bottom:40px;">
<el-image
style="width: 140px; height: 48px;float:left;"
:src="require('@/assets/images/wxpayment.png')"
fit="fill"
></el-image>
<div
style="height: 48px;float:left;line-height: 48px;margin-left:10px;"
>
<span>手续费:</span
><span style="color: red;font-size:larger;">0.6%</span>
<span style="color: red;padding-left:10px;"
>支付成功后资金进入宁夏商户账户</span
>
</div>
</div>
</el-col>
</el-row>
<el-row style="margin-top: 20px;">
<el-col :span="4" class="label">充值金额</el-col>
<el-col :span="20">
<el-row>
<el-col :span="24">
<div v-if="amount == 1" class="recharge-btn recharge-slted">
1
</div>
<div v-else class="recharge-btn" @click="fnAmountSlted(1)">
1
</div>
<div v-if="amount == 10" class="recharge-btn recharge-slted">
10
</div>
<div v-else class="recharge-btn" @click="fnAmountSlted(10)">
10
</div>
<div v-if="amount == 20" class="recharge-btn recharge-slted">
20
</div>
<div v-else class="recharge-btn" @click="fnAmountSlted(20)">
20
</div>
<div v-if="amount == 50" class="recharge-btn recharge-slted">
50
</div>
<div v-else class="recharge-btn" @click="fnAmountSlted(50)">
50
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div v-if="amount == 100" class="recharge-btn recharge-slted">
100
</div>
<div v-else class="recharge-btn" @click="fnAmountSlted(100)">
100
</div>
<div v-if="amount == 200" class="recharge-btn recharge-slted">
200
</div>
<div v-else class="recharge-btn" @click="fnAmountSlted(200)">
200
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div v-if="amount == 500" class="recharge-btn recharge-slted">
500
</div>
<div v-else class="recharge-btn" @click="fnAmountSlted(500)">
500
</div>
<div v-if="amount == 1000" class="recharge-btn recharge-slted">
1000
</div>
<div v-else class="recharge-btn" @click="fnAmountSlted(1000)">
1000
</div>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row style="margin-top: 20px;">
<el-col :span="4" class="label">自定义充值金额</el-col>
<el-col :span="20">
<el-row>
<el-col :span="24">
<div style="line-height: 48px;">
<el-input-number
v-model="amount"
:precision="2"
:step="0.01"
:min="0.01"
:max="1000000"
placeholder="自定义金额"
></el-input-number>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="qrcode-box"><div id="qrcode" ref="qrCode"></div></div>
<div class="qrcode-des">
微信扫码充值<span
style="color: red;font-size:larger;padding: 0px 10px;"
>{{ amount }}</span
>
</div>
</el-col>
</el-row>
</el-col>
</el-row>
</el-card>
</div>
</template>
<script>
import request from "@/utils/request";
import { rechargeCreateOrder } from "@/api/recharge";
import QRCode from "qrcodejs2";
export default {
name: "recharge",
components: {},
data() {
return {
codeUrl: undefined,
orderNo: undefined,
enterpriseId: undefined,
fund: undefined,
amount: undefined,
intervalId: undefined
};
},
watch: {
amount: {
handler: function(val) {
if(val){
this.fnRechargeCreateOrder(this.enterpriseId, val);
}
}
},
orderNo: {
handler: function(val) {
// if(val){
// this.intervalId = setInterval(()=>[
// console.log(val)
// ], 1000)
// }
}
}
},
created() {
this.enterpriseId = this.$route.params.enterpriseId;
if (this.enterpriseId) {
this.initDeliveryOrderData();
}
},
computed: {},
methods: {
initDeliveryOrderData() {
request({
url:
`/api/scm/RecycleDeliveryOrder/deliveryOrderCount/` +
this.enterpriseId,
method: "get"
}).then(res => {
this.fund = res.data.fund;
});
},
fnAmountSlted(amount) {
this.amount = amount;
},
fnRechargeCreateOrder(enterpriseId, amount) {
rechargeCreateOrder(enterpriseId, amount)
.then(res => {
if (res.code == 200) {
this.codeUrl = res.data.codeUrl;
this.orderNo = res.data.orderNo;
this.getQRimg();
}
})
.catch(err => {
console.log(err);
});
},
getQRimg() {
if (!this.codeUrl) {
return;
}
this.$refs.qrCode.innerHTML = "";
let qrcode = new QRCode(this.$refs.qrCode, {
width: 180,
height: 180, //
text: this.codeUrl, //
// render: 'canvas' // tablecanvascanvas
// background: '#f0f'
// foreground: '#ff0'
correctLevel: QRCode.CorrectLevel.H // 1QRCode.CorrectLevel.L 2QRCode.CorrectLevel.M 3QRCode.CorrectLevel.Q 4QRCode.CorrectLevel.H
});
},
fnGoUrl(url) {
if (url) {
this.$router.push({ path: url });
}
}
}
};
</script>
<style lang="scss" scoped>
.app-recharge {
.recharge-card-b {
margin-top: 15px;
.label {
text-align: right;
line-height: 48px;
padding-right: 10px;
}
.recharge-btn {
float: left;
cursor: pointer;
border: solid 1px #e0e0e0;
width: 140px;
height: 48px;
line-height: 48px;
text-align: center;
margin-right: 15px;
margin-bottom: 15px;
}
.recharge-slted {
border: solid 1px #3775f6;
}
.qrcode-box {
background-color: #f9f9f9;
border-radius: 5px;
width: 200px;
height: 200px;
padding: 10px;
#qrcode {
width: 180px;
height: 180px;
}
}
.qrcode-des {
width: 200px;
text-align: center;
padding: 15px;
}
}
}
</style>

@ -395,7 +395,7 @@
<span style="color: green;font-size:24px;">{{
formatPrice(fund)
}}</span>
<span style="cursor: pointer;color:blue;font-size:large;" @click="fnPay"></span>
</div>
</el-card>
</el-col>
@ -590,6 +590,13 @@ export default {
},
computed: {},
methods: {
fnPay(){
if(this.dataForm.beLongCompanyId){
this.$router.push({ name: 'recharge', params: { enterpriseId: this.dataForm.beLongCompanyId } })
}else{
this.$message.error("请先选择要充值的商户");
}
},
formatPrice(price) {
if (price == null || price == undefined) {
return "0.00";

Loading…
Cancel
Save