新增 业务拓扑相关

This commit is contained in:
zxr
2026-06-29 21:47:46 +08:00
parent 2107f77081
commit 8f3dd3e43e
11 changed files with 1955 additions and 14 deletions

View File

@@ -71,6 +71,27 @@ export interface BusinessResourceMember {
description?: string
}
/** 业务拓扑资源 */
export interface BusinessTopologyResource {
id: number
resource_uid: string
resource_category: string
service_identity: string
display_name: string
description?: string
status: string
business_system_id?: number
owner_user_id?: number
department_id?: number
asset_id?: number
tags?: string
source_service?: string
source_table?: string
source_id?: number
created_at?: string
updated_at?: string
}
/** 业务拓扑节点 */
export interface BusinessTopologyNode {
id?: number
@@ -102,10 +123,10 @@ export interface BusinessDependency {
/** 业务拓扑 */
export interface BusinessTopology {
business_system_id: number
resources: unknown[]
dependencies: BusinessDependency[]
nodes: BusinessTopologyNode[]
links: BusinessTopologyEdge[]
resources: BusinessTopologyResource[] | null
dependencies: BusinessDependency[] | null
nodes: BusinessTopologyNode[] | null
links: BusinessTopologyEdge[] | null
}
/** 业务时间线项 */
@@ -146,7 +167,7 @@ export interface BusinessDocumentLink {
/** 列表响应 */
export interface ListResult<T> {
list: T[]
list: T[] | null
count: number
}
@@ -166,6 +187,21 @@ export const fetchBusinessHealth = (id: number) =>
export const fetchBusinessMembers = (id: number) =>
request.get<{ code?: number; details?: ListResult<BusinessResourceMember>; message?: string }>(`/DC-Control/v1/business-systems/${id}/resources`)
export interface BusinessResourceMemberPayload {
resource_uid?: string
resource_id?: number
role?: string
criticality?: string
weight?: number
description?: string
}
export const createBusinessMember = (id: number, data: BusinessResourceMemberPayload) =>
request.post<{ code?: number; details?: BusinessResourceMember; message?: string }>(`/DC-Control/v1/business-systems/${id}/resources`, data)
export const deleteBusinessMember = (id: number, memberId: number) =>
request.delete<{ code?: number; details?: { message: string }; message?: string }>(`/DC-Control/v1/business-systems/${id}/resources/${memberId}`)
/** 获取业务拓扑 */
export const fetchBusinessTopology = (id: number) =>
request.get<{ code?: number; details?: BusinessTopology; message?: string }>(`/DC-Control/v1/business-systems/${id}/topology`)

View File

@@ -80,6 +80,25 @@ export interface ControlResource {
updated_at?: string
}
export interface ControlResourcePayload {
resource_category?: string
service_identity?: string
display_name?: string
description?: string
status?: string
business_system_id?: number | null
owner_user_id?: number | null
department_id?: number | null
asset_id?: number | null
datacenter_id?: number | null
room_id?: number | null
rack_id?: number | null
unit_start?: number | null
unit_end?: number | null
location_ref?: string | null
tags?: string
}
export interface ControlResourceType {
id: number
resource_category: string
@@ -165,10 +184,10 @@ export const fetchControlResources = (params?: ResourceListParams) =>
export const fetchControlResourceOptions = (params?: { resource_category?: string }) =>
request.get<{ code?: number; details?: { list: OptionItem[]; count: number }; message?: string }>('/DC-Control/v1/resources/options', { params })
export const createControlResource = (data: Partial<ControlResource>) =>
export const createControlResource = (data: ControlResourcePayload) =>
request.post<{ code?: number; details?: ControlResource; message?: string }>('/DC-Control/v1/resources', data)
export const updateControlResource = (id: number, data: Partial<ControlResource>) =>
export const updateControlResource = (id: number, data: ControlResourcePayload) =>
request.put<{ code?: number; details?: ControlResource; message?: string }>(`/DC-Control/v1/resources/${id}`, data)
export const deleteControlResource = (id: number) =>