changes
This commit is contained in:
@@ -530,102 +530,6 @@ export default defineNuxtPlugin((nuxtApp) => {
|
||||
return result;
|
||||
};
|
||||
|
||||
const numberToVietnameseCurrency = (amount) => {
|
||||
if (amount === null || amount === undefined || amount === "") return "";
|
||||
|
||||
amount = Number(amount);
|
||||
if (isNaN(amount)) return "";
|
||||
|
||||
const units = ["", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín"];
|
||||
const scales = ["", "nghìn", "triệu", "tỷ"];
|
||||
|
||||
function readThreeDigits(num) {
|
||||
let result = "";
|
||||
const hundred = Math.floor(num / 100);
|
||||
const ten = Math.floor((num % 100) / 10);
|
||||
const unit = num % 10;
|
||||
|
||||
if (hundred > 0) {
|
||||
result += units[hundred] + " trăm";
|
||||
if (ten === 0 && unit > 0) result += " lẻ";
|
||||
}
|
||||
|
||||
if (ten > 1) {
|
||||
result += " " + units[ten] + " mươi";
|
||||
if (unit === 1) result += " mốt";
|
||||
else if (unit === 5) result += " lăm";
|
||||
else if (unit > 0) result += " " + units[unit];
|
||||
} else if (ten === 1) {
|
||||
result += " mười";
|
||||
if (unit === 5) result += " lăm";
|
||||
else if (unit > 0) result += " " + units[unit];
|
||||
} else if (ten === 0 && unit > 0 && hundred === 0) {
|
||||
result += units[unit];
|
||||
}
|
||||
|
||||
return result.trim();
|
||||
}
|
||||
|
||||
let text = "";
|
||||
let scaleIndex = 0;
|
||||
|
||||
while (amount > 0) {
|
||||
const chunk = amount % 1000;
|
||||
if (chunk > 0) {
|
||||
text = `${readThreeDigits(chunk)} ${scales[scaleIndex]} ${text}`;
|
||||
}
|
||||
amount = Math.floor(amount / 1000);
|
||||
scaleIndex++;
|
||||
}
|
||||
|
||||
text = text.trim();
|
||||
text = text.charAt(0).toUpperCase() + text.slice(1);
|
||||
|
||||
return text;
|
||||
};
|
||||
|
||||
const getFirstAndLastName = (fullName, showDots) => {
|
||||
if (!fullName) return "";
|
||||
|
||||
var parts = fullName.trim().replace(/\s+/g, " ").split(" ");
|
||||
|
||||
if (parts.length === 1) return parts[0];
|
||||
|
||||
var first = parts[0];
|
||||
var last = parts[parts.length - 1];
|
||||
|
||||
return showDots ? first + "..." + last : first + " " + last;
|
||||
};
|
||||
|
||||
const paymentQR = (content = "", bankCode = "MB", amount = 0) => {
|
||||
const listBanks = [
|
||||
{
|
||||
bank: {
|
||||
code: "MB",
|
||||
name: "MB Bank",
|
||||
},
|
||||
account: {
|
||||
number: "146768686868",
|
||||
name: "CONG TY CO PHAN BAT DONG SAN UTOPIA",
|
||||
},
|
||||
content: "Thanh toán hóa đơn",
|
||||
},
|
||||
];
|
||||
|
||||
let bankInfo = listBanks.find(
|
||||
(item) => item.bank.code && bankCode && item.bank.code.toLowerCase() === bankCode.toLowerCase(),
|
||||
);
|
||||
|
||||
if (!bankInfo) return;
|
||||
|
||||
const params = new URLSearchParams({
|
||||
addInfo: content || bankInfo.content,
|
||||
accountName: bankInfo.account.name || "",
|
||||
amount: amount || 0,
|
||||
});
|
||||
return `https://img.vietqr.io/image/${bankInfo.bank.code}-${bankInfo.account.number}-print.png?${params.toString()}`;
|
||||
};
|
||||
|
||||
function shortenCurrency(amount) {
|
||||
return new Intl.NumberFormat("en", { notation: "compact" }).format(Number(amount));
|
||||
}
|
||||
@@ -654,10 +558,7 @@ export default defineNuxtPlugin((nuxtApp) => {
|
||||
lang,
|
||||
formatFileSize,
|
||||
numberToVietnamese,
|
||||
numberToVietnameseCurrency,
|
||||
formatDateVN,
|
||||
getFirstAndLastName,
|
||||
paymentQR,
|
||||
shortenCurrency,
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user