import request from '@/utils/request'; export interface CustomerCircuitInfo { id: number; customerId: number; buildingId: number; roomId?: number | null; floorNo?: string; circuitCode: string; circuitName: string; loopSpec?: string; loadType?: string; ratedVoltage?: string; ratedCurrent?: string; ratedPower?: number | string | null; status: number; remark?: string; sortOrder?: number; createdAt?: string; } export interface CustomerCircuitQuery { page?: number; pageSize?: number; keyword?: string; customerId?: number; buildingId?: number; roomId?: number; floorNo?: string; } export interface CustomerCircuitListResult { list: CustomerCircuitInfo[]; total: number; page: number; pageSize: number; } export interface CustomerCircuitCreateParams { circuitCode: string; customerId: number; buildingId: number; circuitName: string; roomId?: number; floorNo?: string; loopSpec?: string; loadType?: string; ratedVoltage?: string; ratedCurrent?: string; ratedPower?: number; status?: number; remark?: string; sortOrder?: number; } export interface CustomerCircuitUpdateParams { circuitCode?: string; customerId?: number; buildingId?: number; circuitName?: string; roomId?: number; floorNo?: string; loopSpec?: string; loadType?: string; ratedVoltage?: string; ratedCurrent?: string; ratedPower?: number; status?: number; remark?: string; sortOrder?: number; } // ==================== 空间拓扑(一次返回整棵树) ==================== export interface TopologyRoom { id: number; roomCode: string; roomName: string; buildingId: number; floorNo?: string; roomPurpose?: string; deptId?: number; circuits: CustomerCircuitInfo[]; } export interface TopologyFloor { floorNo: string; rooms: TopologyRoom[]; circuits: CustomerCircuitInfo[]; } export interface TopologyBuilding { id: number; customerId: number; buildingName: string; purpose?: string; basicInfo?: string; floorCount?: number; floorDownCount?: number; floors: TopologyFloor[]; } export interface CustomerTopologyResult { buildings: TopologyBuilding[]; } // ==================== 常量 ==================== export const CIRCUIT_LOAD_TYPES = ['照明', '动力', '空调', '插座', '电梯', '消防', '其他']; export const CIRCUIT_STATUS_OPTIONS = [ { label: '正常', value: 1 }, { label: '停用', value: 0 }, ]; export const customerCircuitApi = { getList: (params: CustomerCircuitQuery) => request.get('/customer-circuits', { params }), getTopology: (customerId: number) => request.get('/customer-circuits/topology', { params: { customerId } }), getDetail: (id: number) => request.get(`/customer-circuits/${id}`), create: (data: CustomerCircuitCreateParams) => request.post('/customer-circuits', data), update: (id: number, data: CustomerCircuitUpdateParams) => request.put(`/customer-circuits/${id}`, data), delete: (id: number) => request.delete(`/customer-circuits/${id}`), };