This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user