diff --git a/src/modules/finance/api/account.ts b/src/modules/finance/api/account.ts index 1928d09..703036f 100644 --- a/src/modules/finance/api/account.ts +++ b/src/modules/finance/api/account.ts @@ -8,6 +8,23 @@ export interface PageResult { pages: number } +interface PageResultWire extends Omit, 'total' | 'page' | 'size' | 'pages'> { + total: number | string + page: number | string + size: number | string + pages: number | string +} + +function normalizePageResult(result: PageResultWire): PageResult { + return { + ...result, + total: Number(result.total), + page: Number(result.page), + size: Number(result.size), + pages: Number(result.pages), + } +} + export interface FinanceAccount { currencyCode: 'CNY' actualBalance: string @@ -71,20 +88,22 @@ export function getFinanceAccount() { return apiRequest({ method: 'GET', url: '/client/finance/v1/account' }) } -export function getAccountLedger(page: number, size: number) { - return apiRequest>({ +export async function getAccountLedger(page: number, size: number) { + const result = await apiRequest>({ method: 'GET', url: '/client/finance/v1/account/ledger', params: { page, size }, }) + return normalizePageResult(result) } -export function getRechargeRequests(page: number, size: number) { - return apiRequest>({ +export async function getRechargeRequests(page: number, size: number) { + const result = await apiRequest>({ method: 'GET', url: '/client/finance/v1/recharge-requests', params: { page, size }, }) + return normalizePageResult(result) } export function getRechargeChannels() { diff --git a/src/modules/finance/views/FinanceAccountView.test.mjs b/src/modules/finance/views/FinanceAccountView.test.mjs index 7c1dbbc..db18376 100644 --- a/src/modules/finance/views/FinanceAccountView.test.mjs +++ b/src/modules/finance/views/FinanceAccountView.test.mjs @@ -39,6 +39,11 @@ test('renders server balances, ledger and recharge states without internal ident assert.match(viewSource, /v-loading="pageLoading"/) assert.match(viewSource, /function formatAccountAmount[\s\S]*value == null \? '—' : formatAmount\(value\)/) assert.match(viewSource, /formatAccountAmount\(account\?\.actualBalance\)/) + assert.match(viewSource, /:default-current-page="ledgerPage"/) + assert.match(viewSource, /:default-current-page="rechargePage"/) + assert.doesNotMatch(viewSource, / { void loadAccountData() }) -
共 {{ ledgerTotal }} 条
+
共 {{ ledgerTotal }} 条
diff --git a/src/modules/first-leg/views/businessIdentifiers.test.mjs b/src/modules/first-leg/views/businessIdentifiers.test.mjs index 9d6f0ca..a19916e 100644 --- a/src/modules/first-leg/views/businessIdentifiers.test.mjs +++ b/src/modules/first-leg/views/businessIdentifiers.test.mjs @@ -32,7 +32,7 @@ test('keeps overseas warehouse operations first and renders readable list values assert.match(overseas, /columns: \['操作', '废弃申请单号'/) assert.match(overseas, /function statusLabel\(value: string\)/) assert.match(overseas, /function deliveryMethodLabel\(value: string\)/) - assert.match(overseas, /function formatDateTime\(value: string\)/) + assert.match(overseas, /function formatDateTime\(value\?: string \| null\)/) assert.match(overseas, /import SingleLineText from '@\/components\/common\/SingleLineText\.vue'/) assert.match(overseas, /