前端适配:Money工具函数和Wallet API类型更新

核心改造:
1. Money工具函数:新增formatCent、formatCentWithSymbol、yuanToCent等函数
2. Wallet API类型:WalletAccount和WalletLedger改为*_cent字段
3. API请求函数:rechargeWallet和startWalletRechargePayment自动转换元为分
4. 文档:生成完整的前端适配指南

技术细节:
- formatCent: 分转角并格式化(四舍五入到0.1元)
- yuanToCent: 元转分(用于表单提交)
- API函数自动处理转换,组件层面仍使用元
- 生成详细的适配指南供后续组件修改参考

下一步:
- 按照前端适配指南修改所有Vue组件
- 测试金额显示和计算精度
This commit is contained in:
yml
2026-06-09 14:07:55 +08:00
parent 2185cd152a
commit 86c080ae40
4 changed files with 826 additions and 9 deletions
+10 -8
View File
@@ -6,8 +6,8 @@ import type { PaymentOrder } from '@/features/orders/api/orders'
export interface WalletAccount {
user_id: number
available_balance: number
frozen_balance: number
available_balance_cent: number
frozen_balance_cent: number
status: WalletStatus
}
@@ -17,8 +17,8 @@ export interface WalletLedger {
user_id: number
order_id?: number
direction: LedgerDirection
amount: number
balance_after: number
amount_cent: number
balance_after_cent: number
balance_type: BalanceType
biz_type: string
biz_no: string
@@ -41,14 +41,16 @@ export async function fetchWalletLedger(page = 1, pageSize = 20) {
return data.data
}
export async function rechargeWallet(amount: number) {
const { data } = await apiClient.post<ApiResponse<WalletAccount>>('/wallet/recharge', { amount })
export async function rechargeWallet(amountYuan: number) {
const amount_cent = Math.round(amountYuan * 100)
const { data } = await apiClient.post<ApiResponse<WalletAccount>>('/wallet/recharge', { amount_cent })
return data.data
}
export async function startWalletRechargePayment(amount: number) {
export async function startWalletRechargePayment(amountYuan: number) {
const amount_cent = Math.round(amountYuan * 100)
const { data } = await apiClient.post<ApiResponse<PaymentOrder>>('/wallet/recharge/pay', {
amount,
amount_cent,
})
return data.data
}