diff --git a/src/utils/tools.ts b/src/utils/tools.ts index 738e4b2..e55814a 100644 --- a/src/utils/tools.ts +++ b/src/utils/tools.ts @@ -197,15 +197,17 @@ export function CountDown(time: number) { /** * 字节转换为可读格式 * @param {number} bytes - 字节数 - * @param {number} decimals - 保留小数位数,默认2位 + * @param {number} options - 选项对象 + * @param {number} options.decimals - 保留小数位数,默认2位 + * @param {boolean} options.unitBig - 是否使用大写单位,默认false * @returns {string} 格式化后的字符串 */ -export function FormatBytes(bytes, decimals = 2) { - if (bytes === 0) return '0 B'; +export function FormatBytes(bytes, options: { decimals?: number, unitBig?: boolean } = {}) { if (!bytes || isNaN(bytes)) return '0 B'; + const { decimals = 2, unitBig = false } = options; const k = 1024; - const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; + const sizes = unitBig ? ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] : ['b', 'kb', 'mb', 'gb', 'tb', 'pb', 'eb', 'zb', 'yb']; const i = Math.floor(Math.log(bytes) / Math.log(k)); const value = bytes / Math.pow(k, i); return `${Number(value.toFixed(decimals))} ${sizes[i]}`; -} +} \ No newline at end of file diff --git a/src/views/shoppingCart/sc-list.vue b/src/views/shoppingCart/sc-list.vue index 9717385..c5c8332 100644 --- a/src/views/shoppingCart/sc-list.vue +++ b/src/views/shoppingCart/sc-list.vue @@ -84,7 +84,7 @@ }) const allTotalSize = computed(() => { const total = list.value.reduce((pre, cur) => pre + cur.fileSize, 0) - const str = FormatBytes(total) + const str = FormatBytes(total, { unitBig: true }) return { size: str.split(' ')[0], unit: str.split(' ')[1]