123 lines
3.7 KiB
TypeScript
123 lines
3.7 KiB
TypeScript
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.post({ url: `/prison/area/delete-list`, data: ids })
|
||
},
|
||
|
||
// 导出监区信息 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 })
|
||
}
|
||
} |