fix:百分比
Some checks failed
构建并部署前端到生产环境 / build-and-deploy (push) Has been cancelled

This commit is contained in:
sexygoat
2026-05-07 16:19:00 +08:00
parent 7dfbb2de3d
commit 92c5c4ed50
8 changed files with 32 additions and 18 deletions

View File

@@ -64,10 +64,11 @@
// 流量数据
const usedMB = ref(0);
const realUsedMB = ref(0);
const totalMB = ref(0);
const remainMB = ref(0);
const toMB = (value) => Number(value) || 0;
// 格式化流量数据MB 转 GB
const formatTraffic = (mb) => {
if (!mb || mb === 0) {
@@ -104,13 +105,28 @@
// 使用百分比
const usedFlowPercent = computed(() => {
if (totalMB.value && realUsedMB.value) {
const percent = (realUsedMB.value / totalMB.value * 100);
if (totalMB.value > 0) {
const percent = (usedMB.value / totalMB.value * 100);
return Math.min(percent, 100).toFixed(2);
}
return '0.00';
});
const getTrafficMetrics = (data) => {
const enableVirtualData = !!data.enable_virtual_data;
const used = enableVirtualData ? toMB(data.virtual_used_mb) : toMB(data.real_used_mb);
const total = enableVirtualData ? toMB(data.virtual_limit_mb) : toMB(data.real_total_mb);
const remain = enableVirtualData ?
toMB(data.virtual_remain_mb ?? Math.max(total - used, 0)) :
Math.max(total - used, 0);
return {
used,
total,
remain
};
};
// 加载套餐流量数据
const loadPackageData = async () => {
const identifier = props.identifier || userStore.state.identifier;
@@ -120,16 +136,13 @@
const data = await assetApi.getInfo(identifier);
if (data.current_package_usage_id) {
const realUsed = data.real_used_mb || 0;
const realTotal = data.real_total_mb || 0;
usedMB.value = data.enable_virtual_data ? (data.virtual_used_mb || 0) : realUsed;
realUsedMB.value = realUsed;
totalMB.value = realTotal;
remainMB.value = Math.max(realTotal - realUsed, 0);
const metrics = getTrafficMetrics(data);
usedMB.value = metrics.used;
totalMB.value = metrics.total;
remainMB.value = metrics.remain;
emit('packageLoaded', data);
} else {
usedMB.value = 0;
realUsedMB.value = 0;
totalMB.value = 0;
remainMB.value = 0;
emit('packageLoaded', null);