新增客户用电回路表及相关数据库迁移、后端服务、控制器、DTO、实体类和权限配置;新增前端API封装,同时调整路由名称以匹配新业务模块,复用现有菜单权限避免403错误。
132 lines
3.0 KiB
TypeScript
132 lines
3.0 KiB
TypeScript
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<CustomerCircuitListResult>('/customer-circuits', { params }),
|
|
|
|
getTopology: (customerId: number) =>
|
|
request.get<CustomerTopologyResult>('/customer-circuits/topology', { params: { customerId } }),
|
|
|
|
getDetail: (id: number) =>
|
|
request.get<CustomerCircuitInfo>(`/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}`),
|
|
}; |