diff --git a/src/api/ops/dcControl.ts b/src/api/ops/dcControl.ts index c4ee9e4..57a8cb0 100644 --- a/src/api/ops/dcControl.ts +++ b/src/api/ops/dcControl.ts @@ -1,22 +1,27 @@ import { request } from '@/api/request' -/** 许可证配置(与 DC-Control `LicenceConfig` / 接口 `data` 一致;字段按实际响应可能部分缺失) */ -export interface LicenceConfig { - title?: string - version?: string - company_name?: string - create_time?: string - expire_time?: string - machine_code?: string - max_database?: number - max_middleware?: number - max_pc?: number - max_server?: number - max_client?: number - max_user?: number - max_role?: number - max_permission?: number - max_menu?: number +export interface LicenceQuotas { + max_database: number + max_middleware: number + max_network_device: number + max_security: number + max_storage: number + max_pc: number + max_server: number + max_user: number + max_role: number + max_permission: number + max_menu: number +} + +export interface LicenceInfo { + id: string + platform_name: string + workspace: string + issued_on: string + valid_from: string + expires_on: string + quotas: LicenceQuotas } /** 获取 采集器 */ @@ -39,7 +44,8 @@ export const updateCollector = (data: any) => request.put(`/DC-Control/v1/collec export const fetchCollectorStatistics = () => request.get('/DC-Control/v1/statistics') /** 获取 许可证信息 */ -export const fetchLicenseInfo = () => request.get<{ code?: number; data?: LicenceConfig; message?: string }>('/DC-Control/v1/license') +export const fetchLicenseInfo = () => + request.get<{ code: number; details: LicenceInfo; message: string; timeseq: number }>('/DC-Control/v1/license') export interface PageResult { total: number @@ -182,7 +188,9 @@ export const fetchControlResources = (params?: ResourceListParams) => request.get<{ code?: number; details?: PageResult; message?: string }>('/DC-Control/v1/resources', { params }) export const fetchControlResourceOptions = (params?: { resource_category?: string }) => - request.get<{ code?: number; details?: { list: OptionItem[]; count: number }; message?: string }>('/DC-Control/v1/resources/options', { params }) + request.get<{ code?: number; details?: { list: OptionItem[]; count: number }; message?: string }>('/DC-Control/v1/resources/options', { + params, + }) export const createControlResource = (data: ControlResourcePayload) => request.post<{ code?: number; details?: ControlResource; message?: string }>('/DC-Control/v1/resources', data) @@ -203,10 +211,9 @@ export const fetchControlResourceTypeOptions = () => request.get<{ code?: number; details?: { list: OptionItem[]; count: number }; message?: string }>('/DC-Control/v1/resource-types/options') export const fetchControlMetricDefinitions = (params?: { page?: number; size?: number; keyword?: string; resource_category?: string }) => - request.get<{ code?: number; details?: PageResult; message?: string }>( - '/DC-Control/v1/metric-definitions', - { params } - ) + request.get<{ code?: number; details?: PageResult; message?: string }>('/DC-Control/v1/metric-definitions', { + params, + }) export const fetchControlMetricDefinitionOptions = (params?: { resource_category?: string }) => request.get<{ code?: number; details?: { list: OptionItem[]; count: number }; message?: string }>( @@ -218,10 +225,14 @@ export const fetchControlMetricSeries = (params?: MetricSeriesListParams) => request.get<{ code?: number; details?: PageResult; message?: string }>('/DC-Control/v1/metric-series', { params }) export const fetchControlBusinessSystems = (params?: { page?: number; size?: number; keyword?: string; status?: string }) => - request.get<{ code?: number; details?: PageResult; message?: string }>('/DC-Control/v1/business-systems', { params }) + request.get<{ code?: number; details?: PageResult; message?: string }>('/DC-Control/v1/business-systems', { + params, + }) export const fetchControlBusinessSystemOptions = () => - request.get<{ code?: number; details?: { list: OptionItem[]; count: number }; message?: string }>('/DC-Control/v1/business-systems/options') + request.get<{ code?: number; details?: { list: OptionItem[]; count: number }; message?: string }>( + '/DC-Control/v1/business-systems/options' + ) export const fetchCollectionStatus = (params?: { page?: number @@ -231,7 +242,6 @@ export const fetchCollectionStatus = (params?: { resource_uid?: string status?: string }) => - request.get<{ code?: number; details?: PageResult; message?: string }>( - '/DC-Control/v1/collection/status', - { params } - ) + request.get<{ code?: number; details?: PageResult; message?: string }>('/DC-Control/v1/collection/status', { + params, + }) diff --git a/src/api/ops/ipam.ts b/src/api/ops/ipam.ts index 4b94972..5860576 100644 --- a/src/api/ops/ipam.ts +++ b/src/api/ops/ipam.ts @@ -1,5 +1,13 @@ import { request } from '@/api/request' +/** IPAM服务统一响应 */ +export interface IPAMResponse { + code: number + details: T + message?: string + timeseq?: number +} + /** IP地址运行状态 */ export type IPStatus = 'online' | 'offline' | 'unknown' @@ -118,7 +126,8 @@ export interface IPGroupListParams { /** IP分组列表响应 */ export interface IPGroupListResponse { - data: IPGroupItem[] + list: IPGroupItem[] + count: number } /** IP分组表单数据 */ @@ -359,92 +368,96 @@ export interface IPAnomalyFormData { /** ========== 概览 API ========== */ /** 获取IPAM概览统计 */ -export const fetchIPAMOverview = () => request.get('/DC-Control/v1/ipam/overview') +export const fetchIPAMOverview = () => request.get>('/DC-Control/v1/ipam/overview') /** ========== IP地址 API ========== */ /** 获取IP地址列表 */ export const fetchIPAddressList = (params?: IPAddressListParams) => - request.get('/DC-Control/v1/ipaddresses', { params }) + request.get>('/DC-Control/v1/ipaddresses', { params }) /** 获取IP地址详情 */ -export const fetchIPAddressDetail = (id: number) => request.get(`/DC-Control/v1/ipaddresses/${id}`) +export const fetchIPAddressDetail = (id: number) => request.get>(`/DC-Control/v1/ipaddresses/${id}`) /** 创建IP地址 */ -export const createIPAddress = (data: IPAddressFormData) => request.post('/DC-Control/v1/ipaddresses', data) +export const createIPAddress = (data: IPAddressFormData) => request.post>('/DC-Control/v1/ipaddresses', data) /** 更新IP地址 */ export const updateIPAddress = (id: number, data: Partial) => - request.put<{ message: string }>(`/DC-Control/v1/ipaddresses/${id}`, data) + request.put>(`/DC-Control/v1/ipaddresses/${id}`, data) /** 删除IP地址 */ -export const deleteIPAddress = (id: number) => request.delete<{ message: string }>(`/DC-Control/v1/ipaddresses/${id}`) +export const deleteIPAddress = (id: number) => request.delete>(`/DC-Control/v1/ipaddresses/${id}`) /** ========== IP分组 API ========== */ /** 获取IP分组列表(树形) */ -export const fetchIPGroupList = (params?: IPGroupListParams) => request.get('/DC-Control/v1/ip-groups', { params }) +export const fetchIPGroupList = (params?: IPGroupListParams) => + request.get>('/DC-Control/v1/ip-groups', { params }) /** 创建IP分组 */ -export const createIPGroup = (data: IPGroupFormData) => request.post('/DC-Control/v1/ip-groups', data) +export const createIPGroup = (data: IPGroupFormData) => request.post>('/DC-Control/v1/ip-groups', data) /** 更新IP分组 */ export const updateIPGroup = (id: number, data: Partial) => - request.put<{ message: string }>(`/DC-Control/v1/ip-groups/${id}`, data) + request.put>(`/DC-Control/v1/ip-groups/${id}`, data) /** 删除IP分组 */ -export const deleteIPGroup = (id: number) => request.delete<{ message: string }>(`/DC-Control/v1/ip-groups/${id}`) +export const deleteIPGroup = (id: number) => request.delete>(`/DC-Control/v1/ip-groups/${id}`) /** ========== IP子网 API ========== */ /** 获取IP子网列表 */ -export const fetchIPSubnetList = (params?: IPSubnetListParams) => request.get('/DC-Control/v1/ip-subnets', { params }) +export const fetchIPSubnetList = (params?: IPSubnetListParams) => + request.get>('/DC-Control/v1/ip-subnets', { params }) /** 获取IP子网详情 */ -export const fetchIPSubnetDetail = (id: number) => request.get(`/DC-Control/v1/ip-subnets/${id}`) +export const fetchIPSubnetDetail = (id: number) => request.get>(`/DC-Control/v1/ip-subnets/${id}`) /** 创建IP子网 */ -export const createIPSubnet = (data: IPSubnetFormData) => request.post('/DC-Control/v1/ip-subnets', data) +export const createIPSubnet = (data: IPSubnetFormData) => request.post>('/DC-Control/v1/ip-subnets', data) /** 更新IP子网 */ export const updateIPSubnet = (id: number, data: Partial) => - request.put<{ message: string }>(`/DC-Control/v1/ip-subnets/${id}`, data) + request.put>(`/DC-Control/v1/ip-subnets/${id}`, data) /** 删除IP子网 */ -export const deleteIPSubnet = (id: number) => request.delete<{ message: string }>(`/DC-Control/v1/ip-subnets/${id}`) +export const deleteIPSubnet = (id: number) => request.delete>(`/DC-Control/v1/ip-subnets/${id}`) /** ========== DHCP租约 API ========== */ /** 获取DHCP租约列表 */ export const fetchDHCPLeaseList = (params?: DHCPLeaseListParams) => - request.get('/DC-Control/v1/ipam/dhcp-leases', { params }) + request.get>('/DC-Control/v1/ipam/dhcp-leases', { params }) /** 创建DHCP租约 */ -export const createDHCPLease = (data: DHCPLeaseFormData) => request.post('/DC-Control/v1/ipam/dhcp-leases', data) +export const createDHCPLease = (data: DHCPLeaseFormData) => + request.post>('/DC-Control/v1/ipam/dhcp-leases', data) /** ========== IP冲突 API ========== */ /** 获取IP冲突列表 */ export const fetchIPConflictList = (params?: IPConflictListParams) => - request.get('/DC-Control/v1/ipam/conflicts', { params }) + request.get>('/DC-Control/v1/ipam/conflicts', { params }) /** 创建IP冲突记录 */ -export const createIPConflict = (data: IPConflictFormData) => request.post('/DC-Control/v1/ipam/conflicts', data) +export const createIPConflict = (data: IPConflictFormData) => + request.post>('/DC-Control/v1/ipam/conflicts', data) /** ========== IP变更 API ========== */ /** 获取IP变更列表 */ export const fetchIPChangeList = (params?: IPChangeListParams) => - request.get('/DC-Control/v1/ipam/changes', { params }) + request.get>('/DC-Control/v1/ipam/changes', { params }) /** 创建IP变更记录 */ -export const createIPChange = (data: IPChangeFormData) => request.post('/DC-Control/v1/ipam/changes', data) +export const createIPChange = (data: IPChangeFormData) => request.post>('/DC-Control/v1/ipam/changes', data) /** ========== IP异常 API ========== */ /** 获取IP异常列表 */ export const fetchIPAnomalyList = (params?: IPAnomalyListParams) => - request.get('/DC-Control/v1/ipam/anomalies', { params }) + request.get>('/DC-Control/v1/ipam/anomalies', { params }) /** 创建IP异常记录 */ -export const createIPAnomaly = (data: IPAnomalyFormData) => request.post('/DC-Control/v1/ipam/anomalies', data) +export const createIPAnomaly = (data: IPAnomalyFormData) => request.post>('/DC-Control/v1/ipam/anomalies', data) diff --git a/src/api/ops/room-device.ts b/src/api/ops/room-device.ts index 2c337b1..5ccae70 100644 --- a/src/api/ops/room-device.ts +++ b/src/api/ops/room-device.ts @@ -9,7 +9,7 @@ export interface RoomDeviceItem { service_identity: string name: string description: string - room_id: string + room_id: number device_code?: string device_category: string type?: string @@ -69,7 +69,7 @@ export interface RoomDeviceCreateData { service_identity?: string name: string description?: string - room_id: string + room_id: number device_category: string agent_config?: string collect_method?: 'api' | 'snmp' @@ -97,7 +97,7 @@ export interface RoomDeviceCreateData { export interface RoomDeviceUpdateData { name?: string description?: string - room_id?: string + room_id?: number device_category?: string agent_config?: string collect_method?: 'api' | 'snmp' diff --git a/src/api/ops/storage.ts b/src/api/ops/storage.ts index 2754816..9600949 100644 --- a/src/api/ops/storage.ts +++ b/src/api/ops/storage.ts @@ -67,7 +67,7 @@ export interface StorageListParams { /** 创建存储设备请求参数 */ export interface StorageCreateData { - service_identity: string + service_identity?: string name: string category?: string type: string diff --git a/src/api/types.ts b/src/api/types.ts index a6c7b13..72a6409 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -15,6 +15,7 @@ export interface LoginData { /** 用户信息 */ export interface UserItem { id?: number + user_id?: number account?: string password?: string confirmPassword?: string diff --git a/src/components/navbar/index.vue b/src/components/navbar/index.vue index db1d029..70dfcdf 100644 --- a/src/components/navbar/index.vue +++ b/src/components/navbar/index.vue @@ -93,7 +93,8 @@
  • - avatar + avatar +