import request from '@/config/axios' /** 监区信息信息 */ export interface Area { id: number // 监区ID name?: string // 监区名称 code?: string // 监区编码 parentId?: number // 父级ID,0表示顶级监区 level?: number // 级别:1-监区(大队) 2-分监区(中队) type: number // 监区类型:1-普通监区 2-严管监区 3-集训监区 4-出监监区 5-医院监区 6-禁闭室 capacity: number // 容纳人数 currentCount: number // 当前人数 sort: number // 排序 status?: number // 状态:1-启用 2-禁用 remark: string // 备注 children?: Area[] // 子监区列表(树形结构) createTime?: Date // 创建时间 } // 监区树形节点 export interface AreaNode { id: number name: string code: string parentId: number level: number type: number capacity: number currentCount: number sort: number status: number remark: string children?: AreaNode[] } // 监区信息创建/更新请求 export interface AreaSaveReqVO { id?: number name: string code: string parentId?: number level: number // 级别:1-监区(大队) 2-分监区(中队),必填 type: number // 监区类型:1-普通监区 2-严管监区 3-集训监区 4-出监监区 5-医院监区 6-禁闭室 capacity: number // 容纳人数 currentCount?: number // 当前人数,创建时可不传 sort?: number status: number // 状态:1-启用 2-禁用,必填 remark?: string } // 监区信息分页查询 export interface AreaPageReqVO { pageNo: number pageSize: number name?: string // 监区名称 code?: string // 监区编码 type?: number // 监区类型 level?: number // 级别 capacity?: number // 容纳人数 currentCount?: number // 当前人数 sort?: number // 排序 status?: number // 状态:1-启用 2-禁用 remark?: string // 备注 createTime?: string[] // 创建时间范围 [开始时间, 结束时间] } // 监区信息 API export const AreaApi = { // 查询监区信息分页 getAreaPage: async (params: AreaPageReqVO) => { return await request.get({ url: `/prison/area/page`, params }) }, // 查询监区信息详情 getArea: async (id: number) => { return await request.get({ url: `/prison/area/get?id=` + id }) }, // 查询监区树形结构 getAreaTree: async (params?: { name?: string; type?: number; level?: number; status?: number }) => { return await request.get({ url: `/prison/area/tree`, params }) }, // 查询父级监区列表(用于新增/编辑时选择) getParentAreas: async (level?: number) => { return await request.get({ url: `/prison/area/parent-list`, params: { level } }) }, // 查询子监区列表(用于下拉选择) getChildAreas: async (parentId: number) => { return await request.get({ url: `/prison/area/children`, params: { parentId } }) }, // 新增监区信息 createArea: async (data: AreaSaveReqVO) => { return await request.post({ url: `/prison/area/create`, data }) }, // 修改监区信息 updateArea: async (data: AreaSaveReqVO) => { return await request.put({ url: `/prison/area/update`, data }) }, // 删除监区信息 deleteArea: async (id: number) => { return await request.delete({ url: `/prison/area/delete?id=` + id }) }, /** 批量删除监区信息 */ deleteAreaList: async (ids: number[]) => { return await request.delete({ url: `/prison/area/delete-list?ids=${ids.join(',')}` }) }, // 导出监区信息 Excel exportArea: async (params) => { return await request.download({ url: `/prison/area/export-excel`, params }) }, // 同步监区当前人数 syncCurrentCount: async (areaId: number) => { return await request.post({ url: `/prison/area/sync-current-count?areaId=` + areaId }) } }