feat: 新增客户用电回路全链路功能
新增客户用电回路表及相关数据库迁移、后端服务、控制器、DTO、实体类和权限配置;新增前端API封装,同时调整路由名称以匹配新业务模块,复用现有菜单权限避免403错误。
This commit is contained in:
1 parent
3596462eca
commit
f72644c24f
12 files changed
+1975
-411
No files matched your search
@@ -0,0 +1,132 @@
|
||||
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}`),
|
||||
};
|
||||
Reference in new issue
Block a user