feat: 按文档对接账务管理下页面逻辑与字段
This commit is contained in:
@@ -0,0 +1,187 @@
|
||||
/**
|
||||
* 钱包交易明细假数据
|
||||
* 对应接口:GET /admin/finance/wallet/page
|
||||
*
|
||||
* type: 1=报名入账, 2=提现出账, 3=退款出账
|
||||
* status(由 freezeAmount/freezeTime 推导): 1=已解冻, 2=冻结中, 3=正常
|
||||
*/
|
||||
import type { WalletTransactionVO, WalletTransactionQueryParams, PageData } from '@/api/wallet';
|
||||
|
||||
const MOCK_TRANSACTIONS: (WalletTransactionVO & { status: number })[] = [
|
||||
{
|
||||
type: 1,
|
||||
amount: '+100.00',
|
||||
afterAmount: '600.00',
|
||||
withdrawAmount: '500.00',
|
||||
freezeAmount: '100.00',
|
||||
status: 1,
|
||||
freezeTime: '2026-06-10 08:00',
|
||||
unfreezeTime: '2026-06-12 08:00',
|
||||
orderNo: 'SN20260610001',
|
||||
createDate: '2026-06-10 08:00',
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
amount: '-500.00',
|
||||
afterAmount: '1100.00',
|
||||
withdrawAmount: '500.00',
|
||||
freezeAmount: '600.00',
|
||||
status: 2,
|
||||
freezeTime: '2026-06-10 06:00',
|
||||
unfreezeTime: '',
|
||||
orderNo: 'SN20260610002',
|
||||
createDate: '2026-06-10 06:00',
|
||||
},
|
||||
{
|
||||
type: 3,
|
||||
amount: '-100.00',
|
||||
afterAmount: '500.00',
|
||||
withdrawAmount: '500.00',
|
||||
freezeAmount: '0.00',
|
||||
status: 3,
|
||||
freezeTime: '',
|
||||
unfreezeTime: '',
|
||||
orderNo: 'SN20260610003',
|
||||
createDate: '2026-06-10 05:00',
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
amount: '+350.00',
|
||||
afterAmount: '850.00',
|
||||
withdrawAmount: '750.00',
|
||||
freezeAmount: '100.00',
|
||||
status: 3,
|
||||
freezeTime: '',
|
||||
unfreezeTime: '',
|
||||
orderNo: 'SN20260609001',
|
||||
createDate: '2026-06-09 17:30',
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
amount: '-250.00',
|
||||
afterAmount: '600.00',
|
||||
withdrawAmount: '500.00',
|
||||
freezeAmount: '100.00',
|
||||
status: 1,
|
||||
freezeTime: '2026-06-08 10:00',
|
||||
unfreezeTime: '2026-06-09 08:00',
|
||||
orderNo: 'SN20260608001',
|
||||
createDate: '2026-06-08 10:00',
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
amount: '+800.00',
|
||||
afterAmount: '2000.00',
|
||||
withdrawAmount: '1800.00',
|
||||
freezeAmount: '200.00',
|
||||
status: 3,
|
||||
freezeTime: '',
|
||||
unfreezeTime: '',
|
||||
orderNo: 'SN20260607001',
|
||||
createDate: '2026-06-07 14:00',
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
amount: '-300.00',
|
||||
afterAmount: '1200.00',
|
||||
withdrawAmount: '1000.00',
|
||||
freezeAmount: '200.00',
|
||||
status: 2,
|
||||
freezeTime: '2026-06-06 09:00',
|
||||
unfreezeTime: '',
|
||||
orderNo: 'SN20260606001',
|
||||
createDate: '2026-06-06 09:00',
|
||||
},
|
||||
{
|
||||
type: 3,
|
||||
amount: '-50.00',
|
||||
afterAmount: '1500.00',
|
||||
withdrawAmount: '1300.00',
|
||||
freezeAmount: '200.00',
|
||||
status: 1,
|
||||
freezeTime: '2026-06-05 10:00',
|
||||
unfreezeTime: '2026-06-07 10:00',
|
||||
orderNo: 'SN20260605001',
|
||||
createDate: '2026-06-05 10:00',
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
amount: '+200.00',
|
||||
afterAmount: '1550.00',
|
||||
withdrawAmount: '1350.00',
|
||||
freezeAmount: '200.00',
|
||||
status: 3,
|
||||
freezeTime: '',
|
||||
unfreezeTime: '',
|
||||
orderNo: 'SN20260604001',
|
||||
createDate: '2026-06-04 08:30',
|
||||
},
|
||||
{
|
||||
type: 2,
|
||||
amount: '-600.00',
|
||||
afterAmount: '950.00',
|
||||
withdrawAmount: '750.00',
|
||||
freezeAmount: '200.00',
|
||||
status: 1,
|
||||
freezeTime: '2026-06-03 16:00',
|
||||
unfreezeTime: '2026-06-05 16:00',
|
||||
orderNo: 'SN20260603001',
|
||||
createDate: '2026-06-03 16:00',
|
||||
},
|
||||
{
|
||||
type: 1,
|
||||
amount: '+450.00',
|
||||
afterAmount: '1050.00',
|
||||
withdrawAmount: '850.00',
|
||||
freezeAmount: '200.00',
|
||||
status: 1,
|
||||
freezeTime: '2026-06-02 11:00',
|
||||
unfreezeTime: '2026-06-04 11:00',
|
||||
orderNo: 'SN20260602001',
|
||||
createDate: '2026-06-02 11:00',
|
||||
},
|
||||
{
|
||||
type: 3,
|
||||
amount: '-120.00',
|
||||
afterAmount: '600.00',
|
||||
withdrawAmount: '400.00',
|
||||
freezeAmount: '200.00',
|
||||
status: 3,
|
||||
freezeTime: '',
|
||||
unfreezeTime: '',
|
||||
orderNo: 'SN20260601001',
|
||||
createDate: '2026-06-01 15:00',
|
||||
},
|
||||
];
|
||||
|
||||
function inDateRange(date: string, begin?: string, end?: string): boolean {
|
||||
if (!begin && !end) return true;
|
||||
const d = date.slice(0, 10);
|
||||
if (begin && d < begin) return false;
|
||||
if (end && d > end) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
export function buildMockWalletTransactionPage(
|
||||
page: number,
|
||||
limit: number,
|
||||
params: WalletTransactionQueryParams,
|
||||
): PageData<WalletTransactionVO> {
|
||||
let filtered = [...MOCK_TRANSACTIONS];
|
||||
|
||||
if (params.type) {
|
||||
filtered = filtered.filter((item) => item.type === Number(params.type));
|
||||
}
|
||||
if (params.status) {
|
||||
filtered = filtered.filter((item) => item.status === Number(params.status));
|
||||
}
|
||||
filtered = filtered.filter((item) =>
|
||||
inDateRange(item.createDate, params.createDateBegin, params.createDateEnd),
|
||||
);
|
||||
|
||||
const total = filtered.length;
|
||||
const start = (page - 1) * limit;
|
||||
const list = filtered.slice(start, start + limit).map(({ status, ...rest }) => rest);
|
||||
|
||||
return { total, list };
|
||||
}
|
||||
Reference in New Issue
Block a user