This commit is contained in:
@@ -59,9 +59,12 @@ export interface AssetResolveResponse {
|
|||||||
realname_policy?: string // 实名认证策略 (none:无需实名, before_order:先实名后充值/购买, after_order:先充值/购买后实名)
|
realname_policy?: string // 实名认证策略 (none:无需实名, before_order:先实名后充值/购买, after_order:先充值/购买后实名)
|
||||||
network_status?: NetworkStatus // 网络状态:0 停机 / 1 开机(仅 card)
|
network_status?: NetworkStatus // 网络状态:0 停机 / 1 开机(仅 card)
|
||||||
current_package: string // 当前套餐名称(无则空)
|
current_package: string // 当前套餐名称(无则空)
|
||||||
package_total_mb: number // 当前套餐总虚流量 MB
|
current_package_usage_id: number | null // 当前主套餐对应的套餐使用记录 ID,无主套餐时为 null
|
||||||
package_used_mb: number // 已用虚流量 MB
|
real_total_mb: number // 真流量总量
|
||||||
package_remain_mb: number // 剩余虚流量 MB
|
real_used_mb: number // 真流量已用
|
||||||
|
virtual_total_mb: number // 业务停机阈值(展示用)
|
||||||
|
virtual_used_mb: number // 展示已用量
|
||||||
|
reduction_pct: number // 展示增幅比例(小数,如 0.428571)
|
||||||
device_protect_status?: DeviceProtectStatus // 保护期状态:none / stop / start(仅 device)
|
device_protect_status?: DeviceProtectStatus // 保护期状态:none / stop / start(仅 device)
|
||||||
activated_at: string // 激活时间
|
activated_at: string // 激活时间
|
||||||
created_at: string // 创建时间
|
created_at: string // 创建时间
|
||||||
@@ -140,9 +143,6 @@ export interface DeviceGatewayInfo {
|
|||||||
wan_ip?: string // 基站分配 IPv4
|
wan_ip?: string // 基站分配 IPv4
|
||||||
lan_ip?: string // 局域网网关 IP
|
lan_ip?: string // 局域网网关 IP
|
||||||
mac_address?: string // MAC 地址
|
mac_address?: string // MAC 地址
|
||||||
daily_usage?: string // 日使用流量(字节)
|
|
||||||
dl_stats?: string // 本次开机下载(字节)
|
|
||||||
ul_stats?: string // 本次开机上传(字节)
|
|
||||||
limit_speed?: number // 限速(KB/s),0=不限
|
limit_speed?: number // 限速(KB/s),0=不限
|
||||||
current_iccid?: string // 当前使用卡 ICCID
|
current_iccid?: string // 当前使用卡 ICCID
|
||||||
max_clients?: number // 最大连接客户端数
|
max_clients?: number // 最大连接客户端数
|
||||||
@@ -202,12 +202,12 @@ export interface AssetPackageUsageRecord {
|
|||||||
usage_type?: UsageType // 使用类型:single_card/device
|
usage_type?: UsageType // 使用类型:single_card/device
|
||||||
status?: PackageUsageStatus // 0 待生效 / 1 生效中 / 2 已用完 / 3 已过期 / 4 已失效
|
status?: PackageUsageStatus // 0 待生效 / 1 生效中 / 2 已用完 / 3 已过期 / 4 已失效
|
||||||
status_name?: string // 状态中文名
|
status_name?: string // 状态中文名
|
||||||
data_limit_mb?: number // 真流量总量 MB
|
real_total_mb?: number // 真流量总量(百分比以此为基准)
|
||||||
virtual_limit_mb?: number // 虚流量总量 MB(已按 virtual_ratio 换算)
|
real_used_mb?: number // 真流量已用
|
||||||
data_usage_mb?: number // 已用真流量 MB
|
virtual_total_mb?: number // 业务停机阈值
|
||||||
virtual_used_mb?: number // 已用虚流量 MB
|
virtual_used_mb?: number // 展示已用量
|
||||||
virtual_remain_mb?: number // 剩余虚流量 MB
|
|
||||||
virtual_ratio?: number // 虚流量比例(real/virtual)
|
virtual_ratio?: number // 虚流量比例(real/virtual)
|
||||||
|
reduction_pct?: number // 展示增幅比例(小数,如 0.428571)
|
||||||
enable_virtual_data?: boolean // 是否启用虚流量
|
enable_virtual_data?: boolean // 是否启用虚流量
|
||||||
paid_amount?: number // 实际支付金额(分)
|
paid_amount?: number // 实际支付金额(分)
|
||||||
package_price?: number // 套餐价格(分)
|
package_price?: number // 套餐价格(分)
|
||||||
|
|||||||
@@ -330,17 +330,6 @@
|
|||||||
{{ deviceRealtime.imsi || '-' }}
|
{{ deviceRealtime.imsi || '-' }}
|
||||||
</ElDescriptionsItem>
|
</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="限速">
|
<ElDescriptionsItem label="限速">
|
||||||
{{ deviceRealtime.limit_speed ? `${deviceRealtime.limit_speed} KB/s` : '不限速' }}
|
{{ deviceRealtime.limit_speed ? `${deviceRealtime.limit_speed} KB/s` : '不限速' }}
|
||||||
@@ -538,9 +527,6 @@
|
|||||||
mac_address?: string
|
mac_address?: string
|
||||||
imei?: string
|
imei?: string
|
||||||
imsi?: string
|
imsi?: string
|
||||||
daily_usage?: string
|
|
||||||
dl_stats?: string
|
|
||||||
ul_stats?: string
|
|
||||||
limit_speed?: number
|
limit_speed?: number
|
||||||
software_version?: string
|
software_version?: string
|
||||||
switch_mode?: string
|
switch_mode?: string
|
||||||
|
|||||||
@@ -42,20 +42,20 @@
|
|||||||
<span class="stat-item">
|
<span class="stat-item">
|
||||||
<span class="stat-label">已使用</span>
|
<span class="stat-label">已使用</span>
|
||||||
<span class="stat-value">{{
|
<span class="stat-value">{{
|
||||||
formatDataSize(currentPackage.data_usage_mb || 0)
|
formatDataSize(currentPackage.real_used_mb || 0)
|
||||||
}}</span>
|
}}</span>
|
||||||
</span>
|
</span>
|
||||||
<span class="stat-item">
|
<span class="stat-item">
|
||||||
<span class="stat-label">总量</span>
|
<span class="stat-label">总量</span>
|
||||||
<span class="stat-value">{{
|
<span class="stat-value">{{
|
||||||
formatDataSize(currentPackage.data_limit_mb || 0)
|
formatDataSize(currentPackage.real_total_mb || 0)
|
||||||
}}</span>
|
}}</span>
|
||||||
</span>
|
</span>
|
||||||
<span class="stat-item">
|
<span class="stat-item">
|
||||||
<span class="stat-label">剩余</span>
|
<span class="stat-label">剩余</span>
|
||||||
<span class="stat-value">{{
|
<span class="stat-value">{{
|
||||||
formatDataSize(
|
formatDataSize(
|
||||||
(currentPackage.data_limit_mb || 0) - (currentPackage.data_usage_mb || 0)
|
(currentPackage.real_total_mb || 0) - (currentPackage.real_used_mb || 0)
|
||||||
)
|
)
|
||||||
}}</span>
|
}}</span>
|
||||||
</span>
|
</span>
|
||||||
@@ -63,15 +63,15 @@
|
|||||||
<ElProgress
|
<ElProgress
|
||||||
:percentage="
|
:percentage="
|
||||||
getUsageProgress(
|
getUsageProgress(
|
||||||
currentPackage.data_usage_mb || 0,
|
currentPackage.real_used_mb || 0,
|
||||||
currentPackage.data_limit_mb || 0
|
currentPackage.real_total_mb || 0
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
:color="
|
:color="
|
||||||
getProgressColorByPercentage(
|
getProgressColorByPercentage(
|
||||||
getUsageProgress(
|
getUsageProgress(
|
||||||
currentPackage.data_usage_mb || 0,
|
currentPackage.real_used_mb || 0,
|
||||||
currentPackage.data_limit_mb || 0
|
currentPackage.real_total_mb || 0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
@@ -85,36 +85,28 @@
|
|||||||
<span class="stat-item">
|
<span class="stat-item">
|
||||||
<span class="stat-label">已使用</span>
|
<span class="stat-label">已使用</span>
|
||||||
<span class="stat-value">{{
|
<span class="stat-value">{{
|
||||||
formatDataSize(currentPackage.virtual_data_used || 0)
|
formatDataSize(currentPackage.virtual_used_mb || 0)
|
||||||
}}</span>
|
}}</span>
|
||||||
</span>
|
</span>
|
||||||
<span class="stat-item">
|
<span class="stat-item">
|
||||||
<span class="stat-label">总量</span>
|
<span class="stat-label">停机阈值</span>
|
||||||
<span class="stat-value">{{
|
<span class="stat-value">{{
|
||||||
formatDataSize(currentPackage.virtual_limit_mb || 0)
|
formatDataSize(currentPackage.virtual_total_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)
|
|
||||||
)
|
|
||||||
}}</span>
|
}}</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<ElProgress
|
<ElProgress
|
||||||
:percentage="
|
:percentage="
|
||||||
getUsageProgress(
|
getUsageProgress(
|
||||||
currentPackage.virtual_data_used || 0,
|
currentPackage.virtual_used_mb || 0,
|
||||||
currentPackage.virtual_limit_mb || 0
|
currentPackage.virtual_total_mb || 0
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
:color="
|
:color="
|
||||||
getProgressColorByPercentage(
|
getProgressColorByPercentage(
|
||||||
getUsageProgress(
|
getUsageProgress(
|
||||||
currentPackage.virtual_data_used || 0,
|
currentPackage.virtual_used_mb || 0,
|
||||||
currentPackage.virtual_limit_mb || 0
|
currentPackage.virtual_total_mb || 0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
@@ -133,8 +125,8 @@
|
|||||||
{{
|
{{
|
||||||
formatDataSize(
|
formatDataSize(
|
||||||
currentPackage.enable_virtual_data
|
currentPackage.enable_virtual_data
|
||||||
? currentPackage.virtual_data_used || 0
|
? currentPackage.virtual_used_mb || 0
|
||||||
: currentPackage.data_usage_mb || 0
|
: currentPackage.real_used_mb || 0
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
</span>
|
</span>
|
||||||
@@ -142,7 +134,7 @@
|
|||||||
<div class="flow-stat-item">
|
<div class="flow-stat-item">
|
||||||
<span class="flow-stat-label">总量</span>
|
<span class="flow-stat-label">总量</span>
|
||||||
<span class="flow-stat-value">
|
<span class="flow-stat-value">
|
||||||
{{ formatDataSize(currentPackage.data_limit_mb || 0) }}
|
{{ formatDataSize(currentPackage.real_total_mb || 0) }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flow-stat-item">
|
<div class="flow-stat-item">
|
||||||
@@ -150,7 +142,7 @@
|
|||||||
<span class="flow-stat-value">
|
<span class="flow-stat-value">
|
||||||
{{
|
{{
|
||||||
formatDataSize(
|
formatDataSize(
|
||||||
(currentPackage.data_limit_mb || 0) - (currentPackage.data_usage_mb || 0)
|
(currentPackage.real_total_mb || 0) - (currentPackage.real_used_mb || 0)
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
</span>
|
</span>
|
||||||
@@ -161,18 +153,18 @@
|
|||||||
:percentage="
|
:percentage="
|
||||||
getUsageProgress(
|
getUsageProgress(
|
||||||
currentPackage.enable_virtual_data
|
currentPackage.enable_virtual_data
|
||||||
? currentPackage.virtual_data_used || 0
|
? currentPackage.virtual_used_mb || 0
|
||||||
: currentPackage.data_usage_mb || 0,
|
: currentPackage.real_used_mb || 0,
|
||||||
currentPackage.data_limit_mb || 0
|
currentPackage.real_total_mb || 0
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
:color="
|
:color="
|
||||||
getProgressColorByPercentage(
|
getProgressColorByPercentage(
|
||||||
getUsageProgress(
|
getUsageProgress(
|
||||||
currentPackage.enable_virtual_data
|
currentPackage.enable_virtual_data
|
||||||
? currentPackage.virtual_data_used || 0
|
? currentPackage.virtual_used_mb || 0
|
||||||
: currentPackage.data_usage_mb || 0,
|
: currentPackage.real_used_mb || 0,
|
||||||
currentPackage.data_limit_mb || 0
|
currentPackage.real_total_mb || 0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
|
|||||||
@@ -61,16 +61,16 @@
|
|||||||
<template v-if="isAdminOrPlatform">
|
<template v-if="isAdminOrPlatform">
|
||||||
<div class="progress-text">
|
<div class="progress-text">
|
||||||
<span class="used"
|
<span class="used"
|
||||||
>已使用真流量: {{ formatDataSize(scope.row.data_usage_mb || 0) }}</span
|
>已使用真流量: {{ formatDataSize(scope.row.real_used_mb || 0) }}</span
|
||||||
>
|
>
|
||||||
<span class="total"
|
<span class="total"
|
||||||
>真流量总量: {{ formatDataSize(scope.row.data_limit_mb || 0) }}</span
|
>真流量总量: {{ formatDataSize(scope.row.real_total_mb || 0) }}</span
|
||||||
>
|
>
|
||||||
<span class="remaining"
|
<span class="remaining"
|
||||||
>真流量剩余:
|
>真流量剩余:
|
||||||
{{
|
{{
|
||||||
formatDataSize(
|
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
|
}}</span
|
||||||
>
|
>
|
||||||
@@ -78,11 +78,11 @@
|
|||||||
<ElProgress
|
<ElProgress
|
||||||
style="margin-top: 4px"
|
style="margin-top: 4px"
|
||||||
:percentage="
|
: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="
|
:color="
|
||||||
getProgressColorByPercentage(
|
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
|
>已使用虚流量: {{ formatDataSize(scope.row.virtual_used_mb || 0) }}</span
|
||||||
>
|
>
|
||||||
<span class="total"
|
<span class="total"
|
||||||
>虚流量总量: {{ formatDataSize(scope.row.virtual_limit_mb || 0) }}</span
|
>停机阈值: {{ formatDataSize(scope.row.virtual_total_mb || 0) }}</span
|
||||||
>
|
|
||||||
<span class="remaining"
|
|
||||||
>虚流量剩余:
|
|
||||||
{{
|
|
||||||
formatDataSize(
|
|
||||||
(scope.row.virtual_limit_mb || 0) - (scope.row.virtual_used_mb || 0)
|
|
||||||
)
|
|
||||||
}}</span
|
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<ElProgress
|
<ElProgress
|
||||||
@@ -107,14 +99,14 @@
|
|||||||
:percentage="
|
:percentage="
|
||||||
getUsageProgress(
|
getUsageProgress(
|
||||||
scope.row.virtual_used_mb || 0,
|
scope.row.virtual_used_mb || 0,
|
||||||
scope.row.virtual_limit_mb || 0
|
scope.row.virtual_total_mb || 0
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
:color="
|
:color="
|
||||||
getProgressColorByPercentage(
|
getProgressColorByPercentage(
|
||||||
getUsageProgress(
|
getUsageProgress(
|
||||||
scope.row.virtual_used_mb || 0,
|
scope.row.virtual_used_mb || 0,
|
||||||
scope.row.virtual_limit_mb || 0
|
scope.row.virtual_total_mb || 0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
@@ -128,18 +120,18 @@
|
|||||||
formatDataSize(
|
formatDataSize(
|
||||||
scope.row.enable_virtual_data
|
scope.row.enable_virtual_data
|
||||||
? scope.row.virtual_used_mb || 0
|
? scope.row.virtual_used_mb || 0
|
||||||
: scope.row.data_usage_mb || 0
|
: scope.row.real_used_mb || 0
|
||||||
)
|
)
|
||||||
}}</span
|
}}</span
|
||||||
>
|
>
|
||||||
<span class="total"
|
<span class="total"
|
||||||
>总量: {{ formatDataSize(scope.row.data_limit_mb || 0) }}</span
|
>总量: {{ formatDataSize(scope.row.real_total_mb || 0) }}</span
|
||||||
>
|
>
|
||||||
<span class="remaining"
|
<span class="remaining"
|
||||||
>剩余:
|
>剩余:
|
||||||
{{
|
{{
|
||||||
formatDataSize(
|
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
|
}}</span
|
||||||
>
|
>
|
||||||
@@ -150,8 +142,8 @@
|
|||||||
getUsageProgress(
|
getUsageProgress(
|
||||||
scope.row.enable_virtual_data
|
scope.row.enable_virtual_data
|
||||||
? scope.row.virtual_used_mb || 0
|
? scope.row.virtual_used_mb || 0
|
||||||
: scope.row.data_usage_mb || 0,
|
: scope.row.real_used_mb || 0,
|
||||||
scope.row.data_limit_mb || 0
|
scope.row.real_total_mb || 0
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
:color="
|
:color="
|
||||||
@@ -159,8 +151,8 @@
|
|||||||
getUsageProgress(
|
getUsageProgress(
|
||||||
scope.row.enable_virtual_data
|
scope.row.enable_virtual_data
|
||||||
? scope.row.virtual_used_mb || 0
|
? scope.row.virtual_used_mb || 0
|
||||||
: scope.row.data_usage_mb || 0,
|
: scope.row.real_used_mb || 0,
|
||||||
scope.row.data_limit_mb || 0
|
scope.row.real_total_mb || 0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
|
|||||||
@@ -105,12 +105,12 @@ export function useAssetInfo() {
|
|||||||
// 流量/套餐信息
|
// 流量/套餐信息
|
||||||
current_package: data.current_package || '',
|
current_package: data.current_package || '',
|
||||||
packageSeries: data.series_name || '-',
|
packageSeries: data.series_name || '-',
|
||||||
packageTotalFlow: formatDataSize(data.package_total_mb || 0),
|
packageTotalFlow: formatDataSize(data.real_total_mb || 0),
|
||||||
usedFlow: formatDataSize(data.package_used_mb || 0),
|
usedFlow: formatDataSize(data.real_used_mb || 0),
|
||||||
remainFlow: formatDataSize((data.package_total_mb || 0) - (data.package_used_mb || 0)),
|
remainFlow: formatDataSize((data.real_total_mb || 0) - (data.real_used_mb || 0)),
|
||||||
usedFlowPercentage:
|
usedFlowPercentage:
|
||||||
data.package_total_mb > 0
|
data.real_total_mb > 0
|
||||||
? `${((data.package_used_mb / data.package_total_mb) * 100).toFixed(2)}%`
|
? `${((data.real_used_mb / data.real_total_mb) * 100).toFixed(2)}%`
|
||||||
: '0.00%',
|
: '0.00%',
|
||||||
packageList: [] // 套餐列表需要单独调用API获取
|
packageList: [] // 套餐列表需要单独调用API获取
|
||||||
}
|
}
|
||||||
@@ -191,25 +191,20 @@ export function useAssetInfo() {
|
|||||||
order_no: pkg.order_no || '',
|
order_no: pkg.order_no || '',
|
||||||
package_name: pkg.package_name || '',
|
package_name: pkg.package_name || '',
|
||||||
paid_amount: pkg.paid_amount || 0,
|
paid_amount: pkg.paid_amount || 0,
|
||||||
package_total_data: pkg.data_limit_mb || 0,
|
real_total_mb: pkg.real_total_mb || 0,
|
||||||
real_data_used: pkg.data_usage_mb || 0,
|
real_used_mb: pkg.real_used_mb || 0,
|
||||||
real_data_remaining: (pkg.data_limit_mb || 0) - (pkg.data_usage_mb || 0),
|
real_remaining_mb: (pkg.real_total_mb || 0) - (pkg.real_used_mb || 0),
|
||||||
real_data_total: pkg.data_limit_mb || 0,
|
virtual_total_mb: pkg.virtual_total_mb || 0,
|
||||||
virtual_data_used: pkg.virtual_used_mb || 0,
|
virtual_used_mb: pkg.virtual_used_mb || 0,
|
||||||
virtual_data_remaining: pkg.virtual_remain_mb || 0,
|
virtual_remaining_mb: (pkg.virtual_total_mb || 0) - (pkg.virtual_used_mb || 0),
|
||||||
virtual_data_total: pkg.virtual_limit_mb || 0,
|
reduction_pct: pkg.reduction_pct || 0,
|
||||||
start_time: pkg.activated_at || '',
|
start_time: pkg.activated_at || '',
|
||||||
expire_time: pkg.expires_at || '',
|
expire_time: pkg.expires_at || '',
|
||||||
status: pkg.status || 0,
|
status: pkg.status || 0,
|
||||||
status_name: pkg.status_name,
|
status_name: pkg.status_name,
|
||||||
duration_days: undefined,
|
duration_days: undefined,
|
||||||
virtual_ratio: pkg.virtual_ratio,
|
|
||||||
package_type: pkg.package_type,
|
package_type: pkg.package_type,
|
||||||
enable_virtual_data: pkg.enable_virtual_data,
|
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 || ''
|
created_at: pkg.created_at || ''
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -217,18 +212,18 @@ export function useAssetInfo() {
|
|||||||
const useVirtual = pkg.enable_virtual_data
|
const useVirtual = pkg.enable_virtual_data
|
||||||
cardInfo.value.current_package = pkg.package_name
|
cardInfo.value.current_package = pkg.package_name
|
||||||
cardInfo.value.packageTotalFlow = formatDataSize(
|
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(
|
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(
|
cardInfo.value.remainFlow = formatDataSize(
|
||||||
useVirtual
|
useVirtual
|
||||||
? pkg.virtual_remain_mb || 0
|
? (pkg.virtual_total_mb || 0) - (pkg.virtual_used_mb || 0)
|
||||||
: (pkg.data_limit_mb || 0) - (pkg.data_usage_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 totalMb = useVirtual ? pkg.virtual_total_mb || 0 : pkg.real_total_mb || 0
|
||||||
const usedMb = useVirtual ? pkg.virtual_used_mb || 0 : pkg.data_usage_mb || 0
|
const usedMb = useVirtual ? pkg.virtual_used_mb || 0 : pkg.real_used_mb || 0
|
||||||
cardInfo.value.usedFlowPercentage =
|
cardInfo.value.usedFlowPercentage =
|
||||||
totalMb > 0 ? `${((usedMb / totalMb) * 100).toFixed(2)}%` : '0.00%'
|
totalMb > 0 ? `${((usedMb / totalMb) * 100).toFixed(2)}%` : '0.00%'
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -76,25 +76,20 @@ export interface PackageInfo {
|
|||||||
package_id: number
|
package_id: number
|
||||||
package_name: string
|
package_name: string
|
||||||
package_price: number
|
package_price: number
|
||||||
package_total_data: number
|
real_total_mb: number
|
||||||
real_data_used: number
|
real_used_mb: number
|
||||||
real_data_remaining: number
|
real_remaining_mb: number
|
||||||
real_data_total: number
|
virtual_total_mb: number
|
||||||
virtual_data_used: number
|
virtual_used_mb: number
|
||||||
virtual_data_remaining: number
|
virtual_remaining_mb: number
|
||||||
virtual_data_total: number
|
|
||||||
start_time: string
|
start_time: string
|
||||||
expire_time: string
|
expire_time: string
|
||||||
status: number
|
status: number
|
||||||
status_name?: string
|
status_name?: string
|
||||||
duration_days?: number
|
duration_days?: number
|
||||||
virtual_ratio?: number // 虚流量比例
|
reduction_pct?: number // 展示增幅比例
|
||||||
package_type?: string // 套餐类型: formal(正式套餐)/ addon(加油包)
|
package_type?: string // 套餐类型: formal(正式套餐)/ addon(加油包)
|
||||||
enable_virtual_data?: boolean // 是否启用虚流量
|
enable_virtual_data?: boolean // 是否启用虚流量
|
||||||
data_limit_mb?: number // 总量
|
|
||||||
virtual_limit_mb?: number // 虚流量上限
|
|
||||||
virtual_remain_mb?: number // 虚流量剩余
|
|
||||||
data_usage_mb?: number // 已用流量
|
|
||||||
order_no?: string // 订单号
|
order_no?: string // 订单号
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user