diff --git a/apps/web-antd/src/api/pay/wallet/balance/index.ts b/apps/web-antd/src/api/pay/wallet/balance/index.ts index 71e8e76d6..e3440f911 100644 --- a/apps/web-antd/src/api/pay/wallet/balance/index.ts +++ b/apps/web-antd/src/api/pay/wallet/balance/index.ts @@ -20,7 +20,7 @@ export namespace PayWalletApi { } /** 钱包分页请求 */ - export interface WalletPageReq extends PageParam { + export interface WalletPageReqVO extends PageParam { userId?: number; userType?: number; balance?: number; @@ -38,7 +38,7 @@ export function getWallet(params: PayWalletApi.PayWalletUserReq) { } /** 查询会员钱包列表 */ -export function getWalletPage(params: PayWalletApi.WalletPageReq) { +export function getWalletPage(params: PayWalletApi.WalletPageReqVO) { return requestClient.get>( '/pay/wallet/page', { diff --git a/apps/web-antd/src/api/pay/wallet/rechargePackage/index.ts b/apps/web-antd/src/api/pay/wallet/rechargePackage/index.ts index 32c3bbfaf..aa60f1141 100644 --- a/apps/web-antd/src/api/pay/wallet/rechargePackage/index.ts +++ b/apps/web-antd/src/api/pay/wallet/rechargePackage/index.ts @@ -3,6 +3,7 @@ import type { PageParam, PageResult } from '@vben/request'; import { requestClient } from '#/api/request'; export namespace WalletRechargePackageApi { +// TODO @AI:改成 WalletRecharge;相关方法也是! /** 充值套餐信息 */ export interface Package { id?: number; diff --git a/apps/web-antd/src/views/pay/wallet/balance/data.ts b/apps/web-antd/src/views/pay/wallet/balance/data.ts index 4f78c062b..a6a30895c 100644 --- a/apps/web-antd/src/views/pay/wallet/balance/data.ts +++ b/apps/web-antd/src/views/pay/wallet/balance/data.ts @@ -1,6 +1,7 @@ -import type { VxeTableGridOptions } from '@vben/plugins/vxe-table'; +import type { VxeTableGridOptions as VxeTableGridOptionsLegacy } from '@vben/plugins/vxe-table'; import type { VbenFormSchema } from '#/adapter/form'; +import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import { DICT_TYPE } from '@vben/constants'; import { getDictOptions } from '@vben/hooks'; @@ -16,6 +17,7 @@ export function useGridFormSchema(): VbenFormSchema[] { component: 'Input', componentProps: { placeholder: '请输入用户编号', + allowClear: true, }, }, { @@ -25,6 +27,7 @@ export function useGridFormSchema(): VbenFormSchema[] { componentProps: { options: getDictOptions(DICT_TYPE.USER_TYPE, 'number'), placeholder: '请选择用户类型', + allowClear: true, }, }, { @@ -32,28 +35,30 @@ export function useGridFormSchema(): VbenFormSchema[] { label: '创建时间', component: 'RangePicker', componentProps: { - allowClear: true, ...getRangePickerDefaultProps(), - placeholder: ['开始日期', '结束日期'], + allowClear: true, }, }, ]; } /** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { +export function useGridColumns(): VxeTableGridOptionsLegacy['columns'] { return [ { title: '编号', field: 'id', + minWidth: 100, }, { title: '用户编号', field: 'userId', + minWidth: 120, }, { title: '用户类型', field: 'userType', + minWidth: 120, cellRender: { name: 'CellDict', props: { type: DICT_TYPE.USER_TYPE }, @@ -62,33 +67,73 @@ export function useGridColumns(): VxeTableGridOptions['columns'] { { title: '余额', field: 'balance', + minWidth: 120, formatter: 'formatAmount2', }, { title: '累计支出', field: 'totalExpense', + minWidth: 120, formatter: 'formatAmount2', }, { title: '累计充值', field: 'totalRecharge', + minWidth: 120, formatter: 'formatAmount2', }, { title: '冻结金额', field: 'freezePrice', + minWidth: 120, formatter: 'formatAmount2', }, { title: '创建时间', field: 'createTime', + minWidth: 180, formatter: 'formatDateTime', }, { title: '操作', field: 'actions', + width: 80, fixed: 'right', slots: { default: 'actions' }, }, ]; } + +/** 钱包交易记录列表字段 */ +export function useTransactionGridColumns(): VxeTableGridOptions['columns'] { + return [ + { + field: 'id', + title: '编号', + minWidth: 100, + }, + { + field: 'title', + title: '关联业务标题', + minWidth: 200, + }, + { + field: 'price', + title: '交易金额', + minWidth: 120, + formatter: 'formatAmount2', + }, + { + field: 'balance', + title: '钱包余额', + minWidth: 120, + formatter: 'formatAmount2', + }, + { + field: 'createTime', + title: '交易时间', + minWidth: 180, + formatter: 'formatDateTime', + }, + ]; +} diff --git a/apps/web-antd/src/views/pay/wallet/balance/index.vue b/apps/web-antd/src/views/pay/wallet/balance/index.vue index a8aa1a3af..e4b41f17b 100644 --- a/apps/web-antd/src/views/pay/wallet/balance/index.vue +++ b/apps/web-antd/src/views/pay/wallet/balance/index.vue @@ -9,20 +9,21 @@ import { getWalletPage } from '#/api/pay/wallet/balance'; import { $t } from '#/locales'; import { useGridColumns, useGridFormSchema } from './data'; -import WalletDetail from './modules/detail.vue'; +import Detail from './modules/detail.vue'; -/** 刷新表格 */ -function onRefresh() { - gridApi.query(); -} - -const [WalletModal, walletModalApi] = useVbenModal({ - connectedComponent: WalletDetail, +const [DetailModal, detailModalApi] = useVbenModal({ + connectedComponent: Detail, destroyOnClose: true, }); +/** 刷新表格 */ +function handleRefresh() { + gridApi.query(); +} + +/** 查看钱包 */ function handleDetail(row: Required) { - walletModalApi.setData(row).open(); + detailModalApi.setData(row).open(); } const [Grid, gridApi] = useVbenVxeGrid({ @@ -46,6 +47,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ }, rowConfig: { keyField: 'id', + isHover: true, }, toolbarConfig: { refresh: true, @@ -61,8 +63,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ - - +