bug
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 7m10s

This commit is contained in:
sexygoat
2026-04-11 12:19:35 +08:00
parent 90ae585651
commit 33e15314ac
30 changed files with 1077 additions and 532 deletions

View File

@@ -977,38 +977,47 @@
}
// 显示新增/编辑对话框
const showDialog = (type: string, row?: PackageResponse) => {
const showDialog = async (type: string, row?: PackageResponse) => {
dialogVisible.value = true
dialogType.value = type
if (type === 'edit' && row) {
form.id = row.id
form.package_code = row.package_code
form.package_name = row.package_name
form.series_id = row.series_id
form.package_type = row.package_type
form.calendar_type = row.calendar_type || undefined
form.duration_days = row.duration_days || undefined
form.duration_months = row.duration_months
form.data_reset_cycle = row.data_reset_cycle || undefined
form.enable_virtual_data = row.enable_virtual_data || false
form.expiry_base = row.expiry_base || 'from_activation'
form.real_data_mb = row.real_data_mb || 0
form.virtual_data_mb = row.virtual_data_mb || 0
// MB 转换为 GB 显示
realDataGb.value = form.real_data_mb ? Number((form.real_data_mb / 1024).toFixed(2)) : 0
// 从虚流量额度反推比例:比例 = (1 - 虚流量/真流量) × 100%
if (form.real_data_mb > 0 && form.virtual_data_mb > 0) {
const ratio = (1 - form.virtual_data_mb / form.real_data_mb) * 100
virtualRatioPercent.value = Number(ratio.toFixed(2))
} else {
virtualRatioPercent.value = null
try {
const res = await PackageManageService.getPackageDetail(row.id)
if (res.code === 0 && res.data) {
const data = res.data
form.id = data.id
form.package_code = data.package_code
form.package_name = data.package_name
form.series_id = data.series_id
form.package_type = data.package_type
form.calendar_type = data.calendar_type || undefined
form.duration_days = data.duration_days
form.duration_months = data.duration_months
form.data_reset_cycle = data.data_reset_cycle || undefined
form.enable_virtual_data = data.enable_virtual_data || false
form.expiry_base = data.expiry_base || 'from_activation'
form.real_data_mb = data.real_data_mb || 0
form.virtual_data_mb = data.virtual_data_mb || 0
// MB 转换为 GB 显示
realDataGb.value = form.real_data_mb ? Number((form.real_data_mb / 1024).toFixed(2)) : 0
// 从虚流量额度反推比例:比例 = (1 - 虚流量/真流量) × 100%
if (form.real_data_mb > 0 && form.virtual_data_mb > 0) {
const ratio = (1 - form.virtual_data_mb / form.real_data_mb) * 100
virtualRatioPercent.value = Number(ratio.toFixed(2))
} else {
virtualRatioPercent.value = null
}
form.cost_price = (data.cost_price ?? 0) / 100 // 分转换为元显示
form.suggested_retail_price = data.suggested_retail_price
? data.suggested_retail_price / 100
: undefined
form.description = data.description || ''
}
} catch (error) {
console.error('获取套餐详情失败:', error)
ElMessage.error('获取套餐详情失败')
}
form.cost_price = (row.cost_price ?? 0) / 100 // 分转换为元显示
form.suggested_retail_price = row.suggested_retail_price
? row.suggested_retail_price / 100
: undefined
form.description = row.description || ''
} else {
form.id = 0
form.package_code = ''
@@ -1126,7 +1135,7 @@
if (form.data_reset_cycle) {
data.data_reset_cycle = form.data_reset_cycle
}
if (form.duration_days !== undefined && form.duration_days !== null) {
if (form.duration_days !== undefined) {
data.duration_days = form.duration_days
}
if (form.enable_virtual_data !== undefined) {