fix: 操作
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 5m10s

This commit is contained in:
sexygoat
2026-04-27 18:34:02 +08:00
parent 030195d609
commit af3f38aba0
6 changed files with 75 additions and 115 deletions

View File

@@ -330,17 +330,6 @@
{{ deviceRealtime.imsi || '-' }}
</ElDescriptionsItem>
<!-- 流量信息 -->
<ElDescriptionsItem label="今日流量">
{{ formatDataSize(Number(deviceRealtime.daily_usage || 0) / (1024 * 1024)) }}
</ElDescriptionsItem>
<ElDescriptionsItem label="本次下载">
{{ formatDataSize(Number(deviceRealtime.dl_stats || 0) / (1024 * 1024)) }}
</ElDescriptionsItem>
<ElDescriptionsItem label="本次上传">
{{ formatDataSize(Number(deviceRealtime.ul_stats || 0) / (1024 * 1024)) }}
</ElDescriptionsItem>
<!-- 设备配置 -->
<ElDescriptionsItem label="限速">
{{ deviceRealtime.limit_speed ? `${deviceRealtime.limit_speed} KB/s` : '不限速' }}
@@ -538,9 +527,6 @@
mac_address?: string
imei?: string
imsi?: string
daily_usage?: string
dl_stats?: string
ul_stats?: string
limit_speed?: number
software_version?: string
switch_mode?: string

View File

@@ -42,20 +42,20 @@
<span class="stat-item">
<span class="stat-label">已使用</span>
<span class="stat-value">{{
formatDataSize(currentPackage.data_usage_mb || 0)
formatDataSize(currentPackage.real_used_mb || 0)
}}</span>
</span>
<span class="stat-item">
<span class="stat-label">总量</span>
<span class="stat-value">{{
formatDataSize(currentPackage.data_limit_mb || 0)
formatDataSize(currentPackage.real_total_mb || 0)
}}</span>
</span>
<span class="stat-item">
<span class="stat-label">剩余</span>
<span class="stat-value">{{
formatDataSize(
(currentPackage.data_limit_mb || 0) - (currentPackage.data_usage_mb || 0)
(currentPackage.real_total_mb || 0) - (currentPackage.real_used_mb || 0)
)
}}</span>
</span>
@@ -63,15 +63,15 @@
<ElProgress
:percentage="
getUsageProgress(
currentPackage.data_usage_mb || 0,
currentPackage.data_limit_mb || 0
currentPackage.real_used_mb || 0,
currentPackage.real_total_mb || 0
)
"
:color="
getProgressColorByPercentage(
getUsageProgress(
currentPackage.data_usage_mb || 0,
currentPackage.data_limit_mb || 0
currentPackage.real_used_mb || 0,
currentPackage.real_total_mb || 0
)
)
"
@@ -85,36 +85,28 @@
<span class="stat-item">
<span class="stat-label">已使用</span>
<span class="stat-value">{{
formatDataSize(currentPackage.virtual_data_used || 0)
formatDataSize(currentPackage.virtual_used_mb || 0)
}}</span>
</span>
<span class="stat-item">
<span class="stat-label">总量</span>
<span class="stat-label">停机阈值</span>
<span class="stat-value">{{
formatDataSize(currentPackage.virtual_limit_mb || 0)
}}</span>
</span>
<span class="stat-item">
<span class="stat-label">剩余</span>
<span class="stat-value">{{
formatDataSize(
(currentPackage.virtual_limit_mb || 0) - (currentPackage.virtual_data_used || 0)
)
formatDataSize(currentPackage.virtual_total_mb || 0)
}}</span>
</span>
</div>
<ElProgress
:percentage="
getUsageProgress(
currentPackage.virtual_data_used || 0,
currentPackage.virtual_limit_mb || 0
currentPackage.virtual_used_mb || 0,
currentPackage.virtual_total_mb || 0
)
"
:color="
getProgressColorByPercentage(
getUsageProgress(
currentPackage.virtual_data_used || 0,
currentPackage.virtual_limit_mb || 0
currentPackage.virtual_used_mb || 0,
currentPackage.virtual_total_mb || 0
)
)
"
@@ -133,8 +125,8 @@
{{
formatDataSize(
currentPackage.enable_virtual_data
? currentPackage.virtual_data_used || 0
: currentPackage.data_usage_mb || 0
? currentPackage.virtual_used_mb || 0
: currentPackage.real_used_mb || 0
)
}}
</span>
@@ -142,7 +134,7 @@
<div class="flow-stat-item">
<span class="flow-stat-label">总量</span>
<span class="flow-stat-value">
{{ formatDataSize(currentPackage.data_limit_mb || 0) }}
{{ formatDataSize(currentPackage.real_total_mb || 0) }}
</span>
</div>
<div class="flow-stat-item">
@@ -150,7 +142,7 @@
<span class="flow-stat-value">
{{
formatDataSize(
(currentPackage.data_limit_mb || 0) - (currentPackage.data_usage_mb || 0)
(currentPackage.real_total_mb || 0) - (currentPackage.real_used_mb || 0)
)
}}
</span>
@@ -161,18 +153,18 @@
:percentage="
getUsageProgress(
currentPackage.enable_virtual_data
? currentPackage.virtual_data_used || 0
: currentPackage.data_usage_mb || 0,
currentPackage.data_limit_mb || 0
? currentPackage.virtual_used_mb || 0
: currentPackage.real_used_mb || 0,
currentPackage.real_total_mb || 0
)
"
:color="
getProgressColorByPercentage(
getUsageProgress(
currentPackage.enable_virtual_data
? currentPackage.virtual_data_used || 0
: currentPackage.data_usage_mb || 0,
currentPackage.data_limit_mb || 0
? currentPackage.virtual_used_mb || 0
: currentPackage.real_used_mb || 0,
currentPackage.real_total_mb || 0
)
)
"

View File

@@ -61,16 +61,16 @@
<template v-if="isAdminOrPlatform">
<div class="progress-text">
<span class="used"
>已使用真流量: {{ formatDataSize(scope.row.data_usage_mb || 0) }}</span
>已使用真流量: {{ formatDataSize(scope.row.real_used_mb || 0) }}</span
>
<span class="total"
>真流量总量: {{ formatDataSize(scope.row.data_limit_mb || 0) }}</span
>真流量总量: {{ formatDataSize(scope.row.real_total_mb || 0) }}</span
>
<span class="remaining"
>真流量剩余:
{{
formatDataSize(
(scope.row.data_limit_mb || 0) - (scope.row.data_usage_mb || 0)
(scope.row.real_total_mb || 0) - (scope.row.real_used_mb || 0)
)
}}</span
>
@@ -78,11 +78,11 @@
<ElProgress
style="margin-top: 4px"
:percentage="
getUsageProgress(scope.row.data_usage_mb || 0, scope.row.data_limit_mb || 0)
getUsageProgress(scope.row.real_used_mb || 0, scope.row.real_total_mb || 0)
"
:color="
getProgressColorByPercentage(
getUsageProgress(scope.row.data_usage_mb || 0, scope.row.data_limit_mb || 0)
getUsageProgress(scope.row.real_used_mb || 0, scope.row.real_total_mb || 0)
)
"
/>
@@ -91,15 +91,7 @@
>已使用虚流量: {{ formatDataSize(scope.row.virtual_used_mb || 0) }}</span
>
<span class="total"
>虚流量总量: {{ formatDataSize(scope.row.virtual_limit_mb || 0) }}</span
>
<span class="remaining"
>虚流量剩余:
{{
formatDataSize(
(scope.row.virtual_limit_mb || 0) - (scope.row.virtual_used_mb || 0)
)
}}</span
>停机阈值: {{ formatDataSize(scope.row.virtual_total_mb || 0) }}</span
>
</div>
<ElProgress
@@ -107,14 +99,14 @@
:percentage="
getUsageProgress(
scope.row.virtual_used_mb || 0,
scope.row.virtual_limit_mb || 0
scope.row.virtual_total_mb || 0
)
"
:color="
getProgressColorByPercentage(
getUsageProgress(
scope.row.virtual_used_mb || 0,
scope.row.virtual_limit_mb || 0
scope.row.virtual_total_mb || 0
)
)
"
@@ -128,18 +120,18 @@
formatDataSize(
scope.row.enable_virtual_data
? scope.row.virtual_used_mb || 0
: scope.row.data_usage_mb || 0
: scope.row.real_used_mb || 0
)
}}</span
>
<span class="total"
>总量: {{ formatDataSize(scope.row.data_limit_mb || 0) }}</span
>总量: {{ formatDataSize(scope.row.real_total_mb || 0) }}</span
>
<span class="remaining"
>剩余:
{{
formatDataSize(
(scope.row.data_limit_mb || 0) - (scope.row.data_usage_mb || 0)
(scope.row.real_total_mb || 0) - (scope.row.real_used_mb || 0)
)
}}</span
>
@@ -150,8 +142,8 @@
getUsageProgress(
scope.row.enable_virtual_data
? scope.row.virtual_used_mb || 0
: scope.row.data_usage_mb || 0,
scope.row.data_limit_mb || 0
: scope.row.real_used_mb || 0,
scope.row.real_total_mb || 0
)
"
:color="
@@ -159,8 +151,8 @@
getUsageProgress(
scope.row.enable_virtual_data
? scope.row.virtual_used_mb || 0
: scope.row.data_usage_mb || 0,
scope.row.data_limit_mb || 0
: scope.row.real_used_mb || 0,
scope.row.real_total_mb || 0
)
)
"

View File

@@ -105,12 +105,12 @@ export function useAssetInfo() {
// 流量/套餐信息
current_package: data.current_package || '',
packageSeries: data.series_name || '-',
packageTotalFlow: formatDataSize(data.package_total_mb || 0),
usedFlow: formatDataSize(data.package_used_mb || 0),
remainFlow: formatDataSize((data.package_total_mb || 0) - (data.package_used_mb || 0)),
packageTotalFlow: formatDataSize(data.real_total_mb || 0),
usedFlow: formatDataSize(data.real_used_mb || 0),
remainFlow: formatDataSize((data.real_total_mb || 0) - (data.real_used_mb || 0)),
usedFlowPercentage:
data.package_total_mb > 0
? `${((data.package_used_mb / data.package_total_mb) * 100).toFixed(2)}%`
data.real_total_mb > 0
? `${((data.real_used_mb / data.real_total_mb) * 100).toFixed(2)}%`
: '0.00%',
packageList: [] // 套餐列表需要单独调用API获取
}
@@ -191,25 +191,20 @@ export function useAssetInfo() {
order_no: pkg.order_no || '',
package_name: pkg.package_name || '',
paid_amount: pkg.paid_amount || 0,
package_total_data: pkg.data_limit_mb || 0,
real_data_used: pkg.data_usage_mb || 0,
real_data_remaining: (pkg.data_limit_mb || 0) - (pkg.data_usage_mb || 0),
real_data_total: pkg.data_limit_mb || 0,
virtual_data_used: pkg.virtual_used_mb || 0,
virtual_data_remaining: pkg.virtual_remain_mb || 0,
virtual_data_total: pkg.virtual_limit_mb || 0,
real_total_mb: pkg.real_total_mb || 0,
real_used_mb: pkg.real_used_mb || 0,
real_remaining_mb: (pkg.real_total_mb || 0) - (pkg.real_used_mb || 0),
virtual_total_mb: pkg.virtual_total_mb || 0,
virtual_used_mb: pkg.virtual_used_mb || 0,
virtual_remaining_mb: (pkg.virtual_total_mb || 0) - (pkg.virtual_used_mb || 0),
reduction_pct: pkg.reduction_pct || 0,
start_time: pkg.activated_at || '',
expire_time: pkg.expires_at || '',
status: pkg.status || 0,
status_name: pkg.status_name,
duration_days: undefined,
virtual_ratio: pkg.virtual_ratio,
package_type: pkg.package_type,
enable_virtual_data: pkg.enable_virtual_data,
data_limit_mb: pkg.data_limit_mb,
virtual_limit_mb: pkg.virtual_limit_mb,
virtual_remain_mb: pkg.virtual_remain_mb,
data_usage_mb: pkg.data_usage_mb,
created_at: pkg.created_at || ''
}
@@ -217,18 +212,18 @@ export function useAssetInfo() {
const useVirtual = pkg.enable_virtual_data
cardInfo.value.current_package = pkg.package_name
cardInfo.value.packageTotalFlow = formatDataSize(
useVirtual ? pkg.virtual_limit_mb || 0 : pkg.data_limit_mb || 0
useVirtual ? pkg.virtual_total_mb || 0 : pkg.real_total_mb || 0
)
cardInfo.value.usedFlow = formatDataSize(
useVirtual ? pkg.virtual_used_mb || 0 : pkg.data_usage_mb || 0
useVirtual ? pkg.virtual_used_mb || 0 : pkg.real_used_mb || 0
)
cardInfo.value.remainFlow = formatDataSize(
useVirtual
? pkg.virtual_remain_mb || 0
: (pkg.data_limit_mb || 0) - (pkg.data_usage_mb || 0)
? (pkg.virtual_total_mb || 0) - (pkg.virtual_used_mb || 0)
: (pkg.real_total_mb || 0) - (pkg.real_used_mb || 0)
)
const totalMb = useVirtual ? pkg.virtual_limit_mb || 0 : pkg.data_limit_mb || 0
const usedMb = useVirtual ? pkg.virtual_used_mb || 0 : pkg.data_usage_mb || 0
const totalMb = useVirtual ? pkg.virtual_total_mb || 0 : pkg.real_total_mb || 0
const usedMb = useVirtual ? pkg.virtual_used_mb || 0 : pkg.real_used_mb || 0
cardInfo.value.usedFlowPercentage =
totalMb > 0 ? `${((usedMb / totalMb) * 100).toFixed(2)}%` : '0.00%'
} else {

View File

@@ -76,25 +76,20 @@ export interface PackageInfo {
package_id: number
package_name: string
package_price: number
package_total_data: number
real_data_used: number
real_data_remaining: number
real_data_total: number
virtual_data_used: number
virtual_data_remaining: number
virtual_data_total: number
real_total_mb: number
real_used_mb: number
real_remaining_mb: number
virtual_total_mb: number
virtual_used_mb: number
virtual_remaining_mb: number
start_time: string
expire_time: string
status: number
status_name?: string
duration_days?: number
virtual_ratio?: number // 虚流量比例
reduction_pct?: number // 展示增幅比例
package_type?: string // 套餐类型: formal正式套餐/ addon加油包
enable_virtual_data?: boolean // 是否启用虚流量
data_limit_mb?: number // 总量
virtual_limit_mb?: number // 虚流量上限
virtual_remain_mb?: number // 虚流量剩余
data_usage_mb?: number // 已用流量
order_no?: string // 订单号
}