diff --git a/src/api/modules/asset.ts b/src/api/modules/asset.ts index 1ca0810..d68f867 100644 --- a/src/api/modules/asset.ts +++ b/src/api/modules/asset.ts @@ -104,7 +104,8 @@ export class AssetService extends BaseService { } /** - * 查询该资产所有套餐记录,含虚流量换算字段(分页) + * 查询该资产的历史套餐关系组(主套餐—加油包,分页) + * total 仅统计顶层关系组,子项由后端随父项一起返回。 * GET /api/admin/assets/:identifier/packages?page=1&page_size=50 * @param identifier 资产标识符(ICCID 或 VirtualNo) * @param params 查询参数(可选分页参数) @@ -115,12 +116,7 @@ export class AssetService extends BaseService { ): Promise> { return this.get>( `/api/admin/assets/${identifier}/packages`, - params, - { - requestOptions: { - show404Error: false // 404时不显示错误提示 - } - } + params ) } diff --git a/src/types/api/asset.ts b/src/types/api/asset.ts index 5b51d47..ac8108e 100644 --- a/src/types/api/asset.ts +++ b/src/types/api/asset.ts @@ -39,6 +39,9 @@ export enum PackageUsageStatus { // 套餐类型 export type PackageType = 'formal' | 'addon' +// 套餐关系状态(历史套餐列表) +export type AssetPackageRelationshipStatus = 'master_missing' + // 套餐使用类型 export type UsageType = 'single_card' | 'device' @@ -332,7 +335,7 @@ export type AssetRefreshResponse = AssetRealtimeStatusResponse /** * 资产套餐使用记录 - * 对应接口:GET /api/admin/assets/:asset_type/:id/packages + * 对应接口:GET /api/admin/assets/:identifier/packages */ export interface AssetPackageUsageRecord { id?: number // 兼容前端当前映射字段 @@ -353,31 +356,34 @@ export interface AssetPackageUsageRecord { virtual_ratio?: number // 虚流量比例(real/virtual) reduction_pct?: number // 展示增幅比例(小数,如 0.428571) enable_virtual_data?: boolean // 是否启用虚流量 - paid_amount?: number // 实际支付金额(分) - retail_amount?: number // 零售价(分) + paid_amount?: number | null // 实际支付金额(分,仅平台账号可见) + retail_amount?: number | null // 零售价(分) package_price?: number // 套餐价格(分) start_time?: string // 开始时间(兼容前端现有映射字段) expire_time?: string // 到期时间(兼容前端现有映射字段) duration_days?: number // 套餐时长(兼容前端现有映射字段) activated_at?: string // 激活时间 expires_at?: string // 到期时间 - master_usage_id?: number | null // 主套餐 ID(加油包时有值) + master_usage_id?: number | null // 主套餐使用记录 ID(加油包时有值) + relationship_status?: AssetPackageRelationshipStatus // 关系状态;master_missing 表示主套餐缺失 + relationship_status_name?: string // 关系异常状态名称 + expand_by_default?: boolean // 是否默认展开该主套餐下的加油包 + children?: AssetPackageUsageRecord[] // 归属于该主套餐的加油包,不单独分页 priority?: number // 优先级 created_at?: string // 创建时间 order_id?: number // 订单ID refund_id?: number // 退款ID(有退款时才有值) + refund_no?: string // 退款单号快照 + expiry_base?: ExpiryBase | null // 到期计时基准 } /** * 资产套餐列表分页响应 - * 对应接口:GET /api/admin/assets/:asset_type/:id/packages?page=1&page_size=50 + * 每个 items 元素为一个顶层主套餐关系组,total 只统计顶层组。 + * 对应接口:GET /api/admin/assets/:identifier/packages?page=1&page_size=50 */ -export interface AssetPackageUsageRecord { - expiry_base?: ExpiryBase | null // 到期计时基准 -} - export interface AssetPackageListResponse { - total: number // 总记录数 + total: number // 顶层主套餐关系组总数 page: number // 当前页码 page_size: number // 每页数量 items: AssetPackageUsageRecord[] // 套餐记录列表 @@ -389,6 +395,7 @@ export interface AssetPackageListResponse { export interface AssetPackageParams { page?: number // 页码,默认1 page_size?: number // 每页数量,默认50 + status?: PackageUsageStatus | null // 按同一条使用记录筛选 } export interface UpdateAssetPackageUsedDataRequest { diff --git a/src/views/asset-management/asset-information/components/PackageListCard.vue b/src/views/asset-management/asset-information/components/PackageListCard.vue index 65117b1..8fdcf3a 100644 --- a/src/views/asset-management/asset-information/components/PackageListCard.vue +++ b/src/views/asset-management/asset-information/components/PackageListCard.vue @@ -29,8 +29,19 @@
- - + +