feat 钱包支持预冻结额度操作, 新增个人钱包, 储值卡调试

This commit is contained in:
xxm1995
2023-06-27 16:19:45 +08:00
parent 3f1172cc7a
commit 068c575b6a
5 changed files with 101 additions and 26 deletions

View File

@@ -83,7 +83,6 @@
payChannel: payChannelEnum.ALI,
payWay: payWayEnum.QRCODE,
businessId: '',
walletId: '',
voucherNo: '',
title: '测试支付订单',
// 二维码支付方式
@@ -143,7 +142,6 @@
// 获取钱包
findWalletByUser().then((res) => {
wallet = res.data
form.walletId = wallet.id as string
})
}
@@ -175,6 +173,7 @@
createMessage.success('支付成功')
initWallet()
genOrderNo()
getVoucher()
pause()
}
})
@@ -197,6 +196,7 @@
cashierQrCode.handleClose()
loading = false
genOrderNo()
getVoucher()
pause()
}
</script>

View File

@@ -38,7 +38,7 @@
/>
</a-form-item>
<a-form-item label="有效期" name="enduring">
<a-switch checkedChildren="长期" unCheckedChildren="期限" v-model:value="form.enduring" />
<a-switch checkedChildren="长期" unCheckedChildren="期限" v-model:checked="form.enduring" />
</a-form-item>
<a-form-item label="有效期" name="enduring" v-if="!form.enduring">
<a-range-picker valueFormat="YYYY-MM-DD" @change="changeTime" />
@@ -95,16 +95,19 @@
function init() {
visible.value = true
confirmLoading.value = true
// confirmLoading.value = true
resetForm()
}
// 时间范围变动
function changeTime (_, times) {
form.startTime = times[0] + ' 00:00:00' as any
form.endTime = times[1] + ' 23:59:59' as any
function changeTime(_, times) {
form.startTime = (times[0] + ' 00:00:00') as any
form.endTime = (times[1] + ' 23:59:59') as any
}
/**
* 生成储值卡
*/
function handleOk() {
formRef?.validate().then(async () => {
confirmLoading.value = true

View File

@@ -62,7 +62,7 @@
@page-change="handleTableChange"
/>
<voucher-info ref="voucherInfo" />
<voucher-generation ref="voucherGeneration" />
<voucher-generation ref="voucherGeneration" @ok="queryPage" />
</div>
</div>
</template>

View File

@@ -7,7 +7,7 @@ import { BaseEntity } from '/#/web'
*/
export function page(params) {
return defHttp.get<Result<PageResult<Wallet>>>({
url: '/wallet/page',
url: '/wallet/admin/page',
params,
})
}
@@ -17,7 +17,7 @@ export function page(params) {
*/
export function pageByNotWallet(params) {
return defHttp.get<Result<PageResult<Wallet>>>({
url: '/wallet/pageByNotWallet',
url: '/wallet/admin/pageByNotWallet',
params: params,
})
}
@@ -27,7 +27,7 @@ export function pageByNotWallet(params) {
*/
export function findAll() {
return defHttp.get<Result<Wallet[]>>({
url: '/wallet/findAll',
url: '/wallet/admin/findAll',
})
}
@@ -36,7 +36,7 @@ export function findAll() {
*/
export function get(id) {
return defHttp.get<Result<Wallet>>({
url: '/wallet/findById',
url: '/wallet/admin/findById',
params: { id },
})
}
@@ -46,7 +46,7 @@ export function get(id) {
*/
export function add(obj: Wallet) {
return defHttp.post({
url: '/wallet/add',
url: '/wallet/admin/add',
data: obj,
})
}
@@ -56,7 +56,7 @@ export function add(obj: Wallet) {
*/
export function update(obj: Wallet) {
return defHttp.post({
url: '/wallet/update',
url: '/wallet/admin/update',
data: obj,
})
}
@@ -66,7 +66,7 @@ export function update(obj: Wallet) {
*/
export function del(id) {
return defHttp.delete({
url: '/wallet/delete',
url: '/wallet/admin/delete',
params: { id },
})
}
@@ -76,7 +76,7 @@ export function del(id) {
*/
export function getWalletInfo(walletId) {
return defHttp.get<Result<Wallet>>({
url: '/wallet/getWalletInfo',
url: '/wallet/admin/getWalletInfo',
params: { walletId },
})
}
@@ -86,7 +86,7 @@ export function getWalletInfo(walletId) {
*/
export function createWalletBatch(obj) {
return defHttp.post({
url: '/wallet/createWalletBatch',
url: '/wallet/admin/createWalletBatch',
data: obj,
})
}
@@ -96,7 +96,7 @@ export function createWalletBatch(obj) {
*/
export function lock(walletId) {
return defHttp.post({
url: '/wallet/lock',
url: '/wallet/admin/lock',
params: { walletId },
})
}
@@ -106,7 +106,7 @@ export function lock(walletId) {
*/
export function unlock(walletId) {
return defHttp.post({
url: '/wallet/unlock',
url: '/wallet/admin/unlock',
params: { walletId },
})
}
@@ -116,20 +116,29 @@ export function unlock(walletId) {
*/
export function changerBalance(obj) {
return defHttp.post({
url: '/wallet/changerBalance',
url: '/wallet/admin/changerBalance',
data: obj,
})
}
/**
* 根据用户查询钱包
* 查询用户钱包
*/
export function findByUser() {
return defHttp.get({
return defHttp.get<Result<Wallet>>({
url: '/wallet/findByUser',
})
}
/**
* 开通钱包
*/
export function createWallet() {
return defHttp.post<Result<void>>({
url: '/wallet/createWallet',
})
}
/**
* 钱包
*/

View File

@@ -1,22 +1,85 @@
<template>
<a-card :bordered="false">
<a-spin :spinning="loading">
<div v-if="wallet">
<a-form ref="formRef" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-form-item label="状态">
{{ dictConvert('WalletStatus', wallet.status) }}
</a-form-item>
<a-form-item label="余额">
{{ wallet.balance }}
</a-form-item>
<a-form-item>
<template #label>
<basic-title
helpMessage="输入网址或以outside://开头会的路径从外部打开页面,请求路径后添加?onlytab=1&__full__参数后只显示显示标签页内容"
>预冻结额度</basic-title
>
</template>
{{ wallet.freezeBalance }}
</a-form-item>
</a-form>
</div>
<div v-else>
<a-button type="primary" @click="createMyWallet">开通钱包</a-button>
</div>
</a-spin>
</a-card>
</template>
<script setup lang="ts">
import { $ref } from 'vue/macros'
import { Wallet } from '/@/views/modules/payment/wallet/Wallet.api'
import { createWallet, findByUser, Wallet } from '../Wallet.api'
import { useMessage } from '/@/hooks/web/useMessage'
import BasicTitle from '/@/components/Basic/src/BasicTitle.vue'
import { onMounted } from 'vue'
import { useDict } from '/@/hooks/bootx/useDict'
const { notification, createMessage, createConfirm } = useMessage()
const { dictConvert } = useDict()
const labelCol = {
sm: { span: 7 },
}
const wrapperCol = {
sm: { span: 13 },
}
let loading = $ref(false)
let wallet = $ref<Wallet>()
onMounted(() => {
initWallet()
})
/**
* 初始化钱包信息
*/
function initWallet(){
async function initWallet() {
loading = true
const { data } = await findByUser()
wallet = data
loading = false
}
/**
* 开通钱包
*/
async function createMyWallet() {
createConfirm({
iconType: 'warning',
title: '警告',
content: '是否开通我的钱包',
onOk: async () => {
await createWallet()
createMessage.success('钱包开通中...')
await initWallet()
},
})
}
</script>
<style scoped lang="less"></style>
<style scoped lang="less">
.vben-basic-title {
font-size: 14px;
}
</style>