From 7353c4eede33cbebd0d4d62070f10896e070c208 Mon Sep 17 00:00:00 2001 From: zxr <271055687@qq.com> Date: Sat, 1 Aug 2026 16:24:52 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=B5=84=E4=BA=A7=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ops/dcControl.ts | 68 ++++--- src/api/ops/ipam.ts | 61 ++++--- src/api/ops/room-device.ts | 6 +- src/api/ops/storage.ts | 2 +- src/api/types.ts | 1 + src/components/navbar/index.vue | 5 +- src/components/password-change/index.vue | 7 +- src/components/profile-change/index.vue | 13 +- src/views/login/components/banner.vue | 8 +- src/views/ops/pages/alert/tackle/index.vue | 2 +- .../ops/pages/datacenter/u-position/index.vue | 4 +- .../device-collect/components/FormDialog.vue | 11 +- .../pages/dc/middleware/components/Detail.vue | 2 +- .../pages/dc/security/components/Detail.vue | 2 +- .../components/HardwareDeviceConfigDialog.vue | 2 +- .../dc/server/components/ServerFormDialog.vue | 4 +- .../ops/pages/monitor/environment/index.vue | 8 +- src/views/ops/pages/monitor/storage/index.vue | 8 + .../ops/pages/netarch/auto-topology/index.vue | 2 +- .../netarch/ip/components/AnomaliesTab.vue | 22 ++- .../netarch/ip/components/ChangesTab.vue | 20 ++- .../netarch/ip/components/ConflictsTab.vue | 20 ++- .../netarch/ip/components/DHCPLeasesTab.vue | 18 +- .../ip/components/IPAddressListTab.vue | 24 ++- .../netarch/ip/components/OverviewTab.vue | 2 +- .../netarch/ip/components/SubnetListTab.vue | 18 +- .../ops/pages/netarch/topo-group/index.vue | 2 +- .../pages/netarch/topo/hooks/useEdgeStyles.ts | 3 +- src/views/ops/pages/netarch/topo/index.vue | 6 +- src/views/ops/pages/netarch/topo/types.ts | 2 +- src/views/ops/pages/netarch/traffic/index.vue | 2 +- src/views/ops/pages/overview/index.vue | 17 +- .../components/PermissionTree.vue | 2 +- .../system-settings/license-center/index.vue | 169 ++++-------------- tsconfig.json | 1 + 35 files changed, 273 insertions(+), 271 deletions(-) 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 +