fix: 代理系列授权店铺
Some checks failed
构建并部署前端到测试环境 / build-and-deploy (push) Failing after 2m0s

This commit is contained in:
sexygoat
2026-05-09 16:13:11 +08:00
parent 3c71ae0004
commit 73ce9af11a
26 changed files with 833 additions and 807 deletions

View File

@@ -8,6 +8,13 @@ import { ElMessage } from 'element-plus'
import { AssetService } from '@/api/modules'
import type { AssetWalletResponse, DeviceGatewayInfo, AssetPackageUsageRecord } from '@/types/api'
type TrafficDisplaySource = {
real_total_mb?: number | null
real_used_mb?: number | null
virtual_used_mb?: number | null
enable_virtual_data?: boolean | null
}
/**
* 格式化数据大小(MB -> GB/MB)
*/
@@ -18,6 +25,20 @@ const formatDataSize = (mb: number) => {
return `${mb.toFixed(2)}MB`
}
const getDisplayedTotalMb = (traffic?: TrafficDisplaySource | null) => traffic?.real_total_mb || 0
const getDisplayedUsedMb = (traffic?: TrafficDisplaySource | null) =>
traffic?.enable_virtual_data ? traffic?.virtual_used_mb || 0 : traffic?.real_used_mb || 0
const getDisplayedRemainingMb = (traffic?: TrafficDisplaySource | null) =>
getDisplayedTotalMb(traffic) - getDisplayedUsedMb(traffic)
const getDisplayedUsagePercentage = (traffic?: TrafficDisplaySource | null) => {
const totalMb = getDisplayedTotalMb(traffic)
const usedMb = getDisplayedUsedMb(traffic)
return totalMb > 0 ? `${((usedMb / totalMb) * 100).toFixed(2)}%` : '0.00%'
}
export function useAssetInfo() {
// 状态管理
const loading = ref(false)
@@ -105,13 +126,10 @@ export function useAssetInfo() {
// 流量/套餐信息
current_package: data.current_package || '',
packageSeries: data.series_name || '-',
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.real_total_mb > 0
? `${((data.real_used_mb / data.real_total_mb) * 100).toFixed(2)}%`
: '0.00%',
packageTotalFlow: formatDataSize(getDisplayedTotalMb(data)),
usedFlow: formatDataSize(getDisplayedUsedMb(data)),
remainFlow: formatDataSize(getDisplayedRemainingMb(data)),
usedFlowPercentage: getDisplayedUsagePercentage(data),
packageList: [] // 套餐列表需要单独调用API获取
}
@@ -209,23 +227,11 @@ export function useAssetInfo() {
}
// 同时更新 cardInfo 中的流量显示信息(根据是否启用虚流量选择数据源)
const useVirtual = pkg.enable_virtual_data
cardInfo.value.current_package = pkg.package_name
cardInfo.value.packageTotalFlow = formatDataSize(
useVirtual ? pkg.virtual_total_mb || 0 : pkg.real_total_mb || 0
)
cardInfo.value.usedFlow = formatDataSize(
useVirtual ? pkg.virtual_used_mb || 0 : pkg.real_used_mb || 0
)
cardInfo.value.remainFlow = formatDataSize(
useVirtual
? (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_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%'
cardInfo.value.packageTotalFlow = formatDataSize(getDisplayedTotalMb(pkg))
cardInfo.value.usedFlow = formatDataSize(getDisplayedUsedMb(pkg))
cardInfo.value.remainFlow = formatDataSize(getDisplayedRemainingMb(pkg))
cardInfo.value.usedFlowPercentage = getDisplayedUsagePercentage(pkg)
} else {
// code 为 0 但 data 为空,表示暂无当前生效套餐(正常情况)
currentPackage.value = null