fix(operator): fix operator edit issue
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 5m51s
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 5m51s
This commit is contained in:
@@ -59,6 +59,7 @@ export function useAssetInfo() {
|
||||
series_id: data.series_id,
|
||||
series_name: data.series_name,
|
||||
real_name_status: data.real_name_status,
|
||||
real_name_at: data.real_name_at,
|
||||
activated_at: data.activated_at,
|
||||
created_at: data.created_at,
|
||||
updated_at: data.updated_at,
|
||||
@@ -196,22 +197,32 @@ export function useAssetInfo() {
|
||||
status_name: pkg.status_name,
|
||||
duration_days: undefined, // API 没有返回时长
|
||||
virtual_ratio: pkg.virtual_ratio, // 虚流量比例
|
||||
package_type: pkg.package_type // 套餐类型
|
||||
package_type: pkg.package_type, // 套餐类型
|
||||
enable_virtual_data: pkg.enable_virtual_data // 是否启用虚流量
|
||||
}
|
||||
|
||||
// 同时更新 cardInfo 中的流量显示信息
|
||||
// 同时更新 cardInfo 中的流量显示信息(根据是否启用虚流量选择数据源)
|
||||
const useVirtual = pkg.enable_virtual_data
|
||||
cardInfo.value.current_package = pkg.package_name
|
||||
cardInfo.value.packageTotalFlow = formatDataSize(pkg.virtual_limit_mb || 0)
|
||||
cardInfo.value.usedFlow = formatDataSize(pkg.virtual_used_mb || 0)
|
||||
cardInfo.value.remainFlow = formatDataSize(pkg.virtual_remain_mb || 0)
|
||||
cardInfo.value.packageTotalFlow = formatDataSize(
|
||||
useVirtual ? pkg.virtual_limit_mb || 0 : pkg.data_limit_mb || 0
|
||||
)
|
||||
cardInfo.value.usedFlow = formatDataSize(
|
||||
useVirtual ? pkg.virtual_used_mb || 0 : pkg.data_usage_mb || 0
|
||||
)
|
||||
cardInfo.value.remainFlow = formatDataSize(
|
||||
useVirtual
|
||||
? pkg.virtual_remain_mb || 0
|
||||
: (pkg.data_limit_mb || 0) - (pkg.data_usage_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
|
||||
cardInfo.value.usedFlowPercentage =
|
||||
(pkg.virtual_limit_mb || 0) > 0
|
||||
? `${(((pkg.virtual_used_mb || 0) / (pkg.virtual_limit_mb || 1)) * 100).toFixed(2)}%`
|
||||
: '0.00%'
|
||||
totalMb > 0 ? `${((usedMb / totalMb) * 100).toFixed(2)}%` : '0.00%'
|
||||
} else {
|
||||
// code 为 0 但 data 为空,表示暂无当前生效套餐(正常情况)
|
||||
currentPackage.value = null
|
||||
currentPackageErrorMsg.value = '暂无当前生效套餐'
|
||||
currentPackageErrorMsg.value = ''
|
||||
}
|
||||
} else {
|
||||
// 接口返回 code 不为 0,保存错误信息
|
||||
@@ -222,7 +233,7 @@ export function useAssetInfo() {
|
||||
// 404表示无当前生效套餐,这是正常情况
|
||||
currentPackage.value = null
|
||||
if (error?.response?.status === 404) {
|
||||
currentPackageErrorMsg.value = '暂无当前生效套餐'
|
||||
currentPackageErrorMsg.value = ''
|
||||
} else {
|
||||
console.error('获取当前套餐失败:', error)
|
||||
currentPackageErrorMsg.value = error?.message || '获取当前套餐失败'
|
||||
@@ -263,7 +274,20 @@ export function useAssetInfo() {
|
||||
cardInfo.value.device_protect_status = data.device_protect_status
|
||||
}
|
||||
if (data.cards && data.cards.length > 0) {
|
||||
cardInfo.value.cards = data.cards
|
||||
// 合并实时卡数据与原始卡数据,保留 real_name_at 等静态字段
|
||||
// 仅用实时接口中非 null/undefined 的字段覆盖,避免清掉 resolve 接口返回的静态数据
|
||||
const existingCards: any[] = cardInfo.value.cards || []
|
||||
cardInfo.value.cards = data.cards.map((realtimeCard: any) => {
|
||||
const existing = existingCards.find((c: any) => c.iccid === realtimeCard.iccid)
|
||||
if (!existing) return realtimeCard
|
||||
const merged = { ...existing }
|
||||
for (const [key, value] of Object.entries(realtimeCard)) {
|
||||
if (value !== null && value !== undefined) {
|
||||
merged[key] = value
|
||||
}
|
||||
}
|
||||
return merged
|
||||
})
|
||||
}
|
||||
if (data.online_status !== undefined) {
|
||||
cardInfo.value.online_status = data.online_status
|
||||
|
||||
Reference in New Issue
Block a user