+
+
+
+ {{
+ cardInfo?.virtual_no || '--'
+ }}
+
+
+ {{ getAssetStatusName(cardInfo?.status) }}
+
+
+
+
+
+ {{ cardInfo?.iccid || '--' }}
+ {{
+ cardInfo?.msisdn || '--'
+ }}
+ {{ cardInfo?.imsi || '--' }}
+ {{
+ cardInfo?.carrier_name || '--'
+ }}
+
+
+ {{ cardInfo?.network_status === 1 ? '开机' : '停机' }}
+
+
+ {{
+ cardInfo?.card_category || '--'
+ }}
+ {{
+ cardInfo?.bound_device_name || '--'
+ }}
+ {{
+ formatDateTime(cardInfo?.last_sync_time) || '--'
+ }}
+ {{
+ formatDataSize(cardInfo?.current_month_usage_mb || 0)
+ }}
+
+
+
+
+ {{
+ cardInfo?.device_name || '--'
+ }}
+ {{
+ cardInfo?.device_model || '--'
+ }}
+ {{
+ cardInfo?.device_type || '--'
+ }}
+ {{
+ cardInfo?.manufacturer || '--'
+ }}
+ {{ cardInfo?.imei || '--' }}
+ {{ cardInfo?.sn || '--' }}
+ {{
+ cardInfo?.max_sim_slots || '--'
+ }}
+ {{
+ cardInfo?.bound_card_count || 0
+ }}
+
+
+ {{ getProtectStatusName(cardInfo?.device_protect_status) }}
+
+
+
+
+
+
+ {{ getRealNameStatusName(cardInfo?.real_name_status) }}
+
+
+ {{
+ cardInfo?.activated_at || '--'
+ }}
+
+
+
+
+
+ {{ cardInfo?.asset_type === 'card' ? '卡信息' : '设备信息' }}
+
+ {{ cardInfo?.asset_type === 'card' ? 'IoT卡' : '设备' }}
+
+
+
+
-
-
-
- {{
- cardInfo?.virtual_no || '--'
- }}
-
-
- {{ getAssetStatusName(cardInfo?.status) }}
-
-
-
-
-
- {{ cardInfo?.iccid || '--' }}
- {{
- cardInfo?.msisdn || '--'
- }}
- {{ cardInfo?.imsi || '--' }}
- {{
- cardInfo?.carrier_name || '--'
- }}
-
-
- {{ cardInfo?.network_status === 1 ? '开机' : '停机' }}
-
-
- {{
- cardInfo?.card_category || '--'
- }}
- {{
- cardInfo?.bound_device_name || '--'
- }}
- {{
- formatDateTime(cardInfo?.last_sync_time) || '--'
- }}
- {{
- formatDataSize(cardInfo?.current_month_usage_mb || 0)
- }}
-
-
-
-
- {{
- cardInfo?.device_name || '--'
- }}
- {{
- cardInfo?.device_model || '--'
- }}
- {{
- cardInfo?.device_type || '--'
- }}
- {{
- cardInfo?.manufacturer || '--'
- }}
- {{ cardInfo?.imei || '--' }}
- {{ cardInfo?.sn || '--' }}
- {{
- cardInfo?.max_sim_slots || '--'
- }}
- {{
- cardInfo?.bound_card_count || 0
- }}
-
-
- {{ getProtectStatusName(cardInfo?.device_protect_status) }}
-
-
-
-
-
-
- {{ getRealNameStatusName(cardInfo?.real_name_status) }}
-
-
- {{
- cardInfo?.activated_at || '--'
- }}
-
-
-
-
- {{ cardInfo?.asset_type === 'card' ? '卡信息' : '设备信息' }}
-
- {{ cardInfo?.asset_type === 'card' ? 'IoT卡' : '设备' }}
-
-
-
-
@@ -1342,6 +1342,8 @@
if (!cardInfo.value?.currentPackageDetail) return '0.00'
const total = cardInfo.value.currentPackageDetail.data_limit_mb || 0
const used = cardInfo.value.currentPackageDetail.data_usage_mb || 0
+ // 如果真流量总量和真流量已用都是0,则显示100%
+ if (total === 0 && used === 0) return '100.00'
if (total === 0) return '0.00'
return ((used / total) * 100).toFixed(2)
}
diff --git a/src/views/package-management/package-list/index.vue b/src/views/package-management/package-list/index.vue
index ae68641..4bb511c 100644
--- a/src/views/package-management/package-list/index.vue
+++ b/src/views/package-management/package-list/index.vue
@@ -594,6 +594,7 @@
{ required: true, message: '请输入套餐名称', trigger: 'blur' },
{ min: 1, max: 255, message: '长度在 1 到 255 个字符', trigger: 'blur' }
],
+ series_id: [{ required: true, message: '请选择套餐系列', trigger: 'change' }],
package_type: [{ required: true, message: '请选择套餐类型', trigger: 'change' }],
duration_months: [
{ required: true, message: '请输入有效期', trigger: 'blur' },