fix: 流量保留两位小数
This commit is contained in:
@@ -2,7 +2,8 @@
|
||||
import { ref, computed, onMounted } from 'vue'
|
||||
import { getAssetDetail, getAssetPackages, getCurrentPackage, getAssetHistory, stopAsset, startAsset, getAssetRealtimeStatus } from '@/api/assets'
|
||||
import type { AssetType, CardInfo, DeviceInfo, AssetPackage, HistoryRecord } from '@/api/assets'
|
||||
import { formatDataSize, formatTime } from '@/utils/format'
|
||||
import { formatTime } from '@/utils/format'
|
||||
import { formatPackageDataSize, formatPackagePrice, getPackageRemainMb, getPackageTotalMb, getPackageUsagePercent, getPackageUsedMb } from '../package-display'
|
||||
|
||||
// 资产类型
|
||||
const assetType = ref<AssetType>('card')
|
||||
@@ -67,25 +68,6 @@ function getPackageStatusColor(status?: number) {
|
||||
return status !== undefined ? map[status] || { bg: '#f5f5f5', text: '#999' } : { bg: '#f5f5f5', text: '#999' }
|
||||
}
|
||||
|
||||
function getPackageUsedMb(pkg: AssetPackage) {
|
||||
return Number(pkg.enable_virtual_data ? pkg.virtual_used_mb : pkg.real_used_mb) || 0
|
||||
}
|
||||
|
||||
function getPackageTotalMb(pkg: AssetPackage) {
|
||||
return Number(pkg.real_total_mb) || 0
|
||||
}
|
||||
|
||||
function getPackageRemainMb(pkg: AssetPackage) {
|
||||
return Math.max(0, getPackageTotalMb(pkg) - (Number(pkg.real_used_mb) || 0))
|
||||
}
|
||||
|
||||
function getPackageUsagePercent(pkg: AssetPackage) {
|
||||
const total = getPackageTotalMb(pkg)
|
||||
if (total <= 0)
|
||||
return 0
|
||||
return Math.min(100, (getPackageUsedMb(pkg) / total) * 100)
|
||||
}
|
||||
|
||||
function getPackageTypeText(type?: AssetPackage['package_type']) {
|
||||
const map: Record<string, string> = {
|
||||
formal: '正式套餐',
|
||||
@@ -94,12 +76,6 @@ function getPackageTypeText(type?: AssetPackage['package_type']) {
|
||||
return type ? map[type] || type : '-'
|
||||
}
|
||||
|
||||
function formatPackagePrice(amount?: number) {
|
||||
if (amount === undefined || amount === null)
|
||||
return '-'
|
||||
return `¥${(amount / 100).toFixed(2)}`
|
||||
}
|
||||
|
||||
// 页面加载
|
||||
onMounted(() => {
|
||||
// 从路由参数获取 assetType 和 assetIdentifier
|
||||
@@ -548,15 +524,15 @@ function viewWallet() {
|
||||
<view class="grid grid-cols-3 gap-2 mb-3">
|
||||
<view class="bg-[#f5f5f5] rounded-8px p-2 text-center">
|
||||
<text class="text-10px text-[#999] block mb-1">总量</text>
|
||||
<text class="text-12px font-600 text-[#212121]">{{ formatDataSize(getPackageTotalMb(currentPackage)) }}</text>
|
||||
<text class="text-12px font-600 text-[#212121]">{{ formatPackageDataSize(getPackageTotalMb(currentPackage)) }}</text>
|
||||
</view>
|
||||
<view class="bg-[#f5f5f5] rounded-8px p-2 text-center">
|
||||
<text class="text-10px text-[#999] block mb-1">已使用</text>
|
||||
<text class="text-12px font-600 text-[var(--brand-primary)]">{{ formatDataSize(getPackageUsedMb(currentPackage)) }}</text>
|
||||
<text class="text-12px font-600 text-[var(--brand-primary)]">{{ formatPackageDataSize(getPackageUsedMb(currentPackage)) }}</text>
|
||||
</view>
|
||||
<view class="bg-[#f5f5f5] rounded-8px p-2 text-center">
|
||||
<text class="text-10px text-[#999] block mb-1">剩余</text>
|
||||
<text class="text-12px font-600 text-[#2e7d32]">{{ formatDataSize(getPackageRemainMb(currentPackage)) }}</text>
|
||||
<text class="text-12px font-600 text-[#2e7d32]">{{ formatPackageDataSize(getPackageRemainMb(currentPackage)) }}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -564,8 +540,8 @@ function viewWallet() {
|
||||
<view class="flex items-center justify-between mb-1">
|
||||
<text class="text-11px text-[#666]">已使用</text>
|
||||
<text class="text-11px font-600 text-[#212121]">
|
||||
{{ formatDataSize(getPackageUsedMb(currentPackage)) }} /
|
||||
{{ formatDataSize(getPackageTotalMb(currentPackage)) }}
|
||||
{{ formatPackageDataSize(getPackageUsedMb(currentPackage)) }} /
|
||||
{{ formatPackageDataSize(getPackageTotalMb(currentPackage)) }}
|
||||
</text>
|
||||
</view>
|
||||
<view class="h-4px bg-[#e0e0e0] rounded-full overflow-hidden">
|
||||
@@ -652,12 +628,20 @@ function viewWallet() {
|
||||
</view>
|
||||
<view class="flex items-center justify-between mb-1">
|
||||
<text class="text-12px text-[#666]">
|
||||
已用: {{ formatDataSize(getPackageUsedMb(pkg)) }} / {{ formatDataSize(getPackageTotalMb(pkg)) }}
|
||||
已用: {{ formatPackageDataSize(getPackageUsedMb(pkg)) }} / {{ formatPackageDataSize(getPackageTotalMb(pkg)) }}
|
||||
</text>
|
||||
<text class="text-11px text-[#999]">
|
||||
优先级: {{ pkg.priority || '-' }}
|
||||
</text>
|
||||
</view>
|
||||
<view class="flex items-center justify-between mb-1 text-12px">
|
||||
<text class="text-[#666]">剩余</text>
|
||||
<text class="text-[#212121]">{{ formatPackageDataSize(getPackageRemainMb(pkg)) }}</text>
|
||||
</view>
|
||||
<view class="flex items-center justify-between mb-1 text-12px">
|
||||
<text class="text-[#666]">金额</text>
|
||||
<text class="text-[#212121]">{{ formatPackagePrice(pkg.paid_amount) }}</text>
|
||||
</view>
|
||||
<text class="text-11px text-[#999]">
|
||||
{{ pkg.activated_at || '-' }} ~ {{ pkg.expires_at || '-' }}
|
||||
</text>
|
||||
|
||||
Reference in New Issue
Block a user