update money currency
This commit is contained in:
parent
e3c9e81fa8
commit
77f5b76762
@ -113,7 +113,7 @@ export const BillList: React.FC<BillListProps> = (props) => {
|
|||||||
title: t('bill.title_actual_payment_amount'),
|
title: t('bill.title_actual_payment_amount'),
|
||||||
dataIndex: 'actual_payment_amount',
|
dataIndex: 'actual_payment_amount',
|
||||||
width: 150,
|
width: 150,
|
||||||
render: (_) => (<MoneyFormat money={_}/>),
|
render: (_,record) => (<MoneyFormat money={_} currency={record.currency}/>),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t('bill.title_pay_method'),
|
title: t('bill.title_pay_method'),
|
||||||
|
@ -2,10 +2,36 @@ import React from "react";
|
|||||||
|
|
||||||
type MoneyFormatProps = {
|
type MoneyFormatProps = {
|
||||||
money?: number | string | null;
|
money?: number | string | null;
|
||||||
currency?: 'US$' | 'HK$' | 'RMB';
|
currency?: string;
|
||||||
|
}
|
||||||
|
const AsiaPayCurrencyConfig: {
|
||||||
|
[key: string]: string
|
||||||
|
} = {
|
||||||
|
'344': 'HKD',
|
||||||
|
'840': 'USD',
|
||||||
|
"702": 'SGD',
|
||||||
|
"156": 'CNY(RMB)',
|
||||||
|
"392": 'JPY',
|
||||||
|
"901": 'TWD',
|
||||||
|
"036": 'AUD',
|
||||||
|
"978": 'EUR',
|
||||||
|
"826": 'GBP',
|
||||||
|
"124": 'CAD',
|
||||||
|
"446": 'MOP',
|
||||||
|
"608": 'PHP',
|
||||||
|
"764": 'THB',
|
||||||
|
"458": 'MYR',
|
||||||
|
"360": 'IDR',
|
||||||
|
"410": 'KRW',
|
||||||
|
"682": 'SAR',
|
||||||
|
"554": 'NZD',
|
||||||
|
"784": 'AED',
|
||||||
|
"096": 'BND',
|
||||||
|
"704": 'VND',
|
||||||
|
"356": 'INR',
|
||||||
}
|
}
|
||||||
|
|
||||||
function formatCurrency(amount: string | number) {
|
function formatMoneyNumber(amount: string | number) {
|
||||||
if (amount === '0' || amount === '0.00') {
|
if (amount === '0' || amount === '0.00') {
|
||||||
return '0.00';
|
return '0.00';
|
||||||
}
|
}
|
||||||
@ -25,8 +51,16 @@ function formatCurrency(amount: string | number) {
|
|||||||
return (isNegative ? '-' : '') + formattedIntPart + '.' + decimalPart;
|
return (isNegative ? '-' : '') + formattedIntPart + '.' + decimalPart;
|
||||||
}
|
}
|
||||||
|
|
||||||
const MoneyFormat: React.FC<MoneyFormatProps> = ({money, currency = 'HK$'}) => {
|
const formatCurrency = (currency = 'HKD') => {
|
||||||
|
if (currency && /^\d{3}$/.test(currency)) {
|
||||||
|
return AsiaPayCurrencyConfig[currency] || currency || 'HKD';
|
||||||
|
}
|
||||||
|
return currency || 'HKD';
|
||||||
|
}
|
||||||
|
|
||||||
|
const MoneyFormat: React.FC<MoneyFormatProps> = ({money, currency = 'HKD'}) => {
|
||||||
// 将货币数字转换为千分位格式且带2位小数
|
// 将货币数字转换为千分位格式且带2位小数
|
||||||
return (money||money==0||money=='0') ?<span className={'money-format'}>{currency} {formatCurrency(money)}</span>:null;
|
return (money || money == 0 || money == '0') ?
|
||||||
|
<span className={'money-format'}>{formatCurrency(currency)} {formatMoneyNumber(money)}</span> : null;
|
||||||
}
|
}
|
||||||
export default MoneyFormat;
|
export default MoneyFormat;
|
2
src/types/bill.d.ts
vendored
2
src/types/bill.d.ts
vendored
@ -52,7 +52,7 @@ declare type BillModel = {
|
|||||||
payment_amount?: number;
|
payment_amount?: number;
|
||||||
actual_payment_amount?: null | number;
|
actual_payment_amount?: null | number;
|
||||||
payment_method?: null | string | number;
|
payment_method?: null | string | number;
|
||||||
currency?: null | string | number;
|
currency?: string;
|
||||||
payment_channel?: null | string | number;
|
payment_channel?: null | string | number;
|
||||||
expiration_time?: BaseDate;
|
expiration_time?: BaseDate;
|
||||||
status: string;
|
status: string;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user