From b1534cf31e9a044dae175329e0f4129c7126a0d5 Mon Sep 17 00:00:00 2001 From: admin <> Date: Mon, 15 Apr 2024 10:54:05 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E5=B7=A5=E4=BD=9C=E5=8F=B0=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E6=A0=BC=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pagesHome/index.vue | 3 ++- src/utils/index.ts | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/pagesHome/index.vue b/src/pagesHome/index.vue index aab0494..7dc75e8 100644 --- a/src/pagesHome/index.vue +++ b/src/pagesHome/index.vue @@ -20,7 +20,7 @@ :src="`https://backend-common.obs.cn-east-3.myhuaweicloud.com/static/pages/${item.imgUrl}`" /> - {{ item.num }} + {{ formatMoney(item.num) }} {{ item.title }} @@ -158,6 +158,7 @@ import { useMemberStore } from "@/store/index"; import { ProfileApi, ReceiveApi, ShipmentApi } from "@/services/index"; import TabBar from "@/components/TabBar/index.vue"; +import { formatMoney } from "@/utils"; const store = useMemberStore(); const navbarRect = reactive({ height: 32, diff --git a/src/utils/index.ts b/src/utils/index.ts index 820d8e1..dc4f720 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -160,3 +160,42 @@ export function timeRange(id: number) { } return { startTime: startTime, endTime: endTime }; } + +// 格式化金额 +export function formatMoney(number:any, decimals = 0, decPoint = '.', thousandsSep = ',') { + number = (number + '').replace(/[^0-9+-Ee.]/g, '') + const n = !isFinite(+number) ? 0 : +number + const prec = !isFinite(+decimals) ? 0 : Math.abs(decimals) + const sep = typeof thousandsSep === 'undefined' ? ',' : thousandsSep + const dec = typeof decPoint === 'undefined' ? '.' : decPoint + let s:any = '' + const toFixedFix = function(n:number, prec:number) { + const k = Math.pow(10, prec) + return '' + Math.ceil(signFigures(n * k)) / k + } + s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.') + const re = /(-?\d+)(\d{3})/ + while (re.test(s[0])) { + s[0] = s[0].replace(re, '$1' + sep + '$2') + } + if ((s[1] || '').length < prec) { + s[1] = s[1] || '' + s[1] += new Array(prec - s[1].length + 1).join('0') + } + return s.join(dec) +} +export function signFigures (num:number, rank = 6) { + if (!num) return (0) + const sign = num / Math.abs(num) + const number = num * sign + const temp = rank - 1 - Math.floor(Math.log10(number)) + let ans + if (temp > 0) { + ans = parseFloat(number.toFixed(temp)) + } else if (temp < 0) { + ans = Math.round(number / Math.pow(10, temp)) * temp + } else { + ans = Math.round(number) + } + return (ans * sign) +}