tangweijie bbf4c64391 feat(prison): 新增评估报告等前端页面,优化问卷与罪犯管理
核心变更:
1. 新增页面模块
   - 快捷评语管理 (quick-comment)
   - 报告模板管理 (report-template)
   - 评估报告编辑 (report)
   - 风险分析页面 (risk)
   - 预警管理 (warning)
   - 服刑情况跟踪 (situation)

2. 功能优化
   - 罪犯管理: 新增Workbench工作台页面
   - 问卷模块: 完善QuestionForm组件
   - 计分考核: 优化ScoreForm支持多种评分方式
   - 危险评估: 完善RiskAssessmentForm

3. UI改进
   - 登录页面: 新增监狱特色Loading动画
   - 罪犯详情: 优化展示效果
   - 消费记录: 增强查询功能

4. 基础设施
   - 新增JusticeIcon图标组件
   - 优化字典格式化工具
   - 更新路由配置

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-16 20:15:17 +08:00

158 lines
3.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import request from '@/config/axios'
// 性别枚举0-未知 1-男 2-女
export const GENDER_ENUM = {
UNKNOWN: 0,
MALE: 1,
FEMALE: 2
} as const
export type GenderType = typeof GENDER_ENUM[keyof typeof GENDER_ENUM]
export interface PrisonerVO {
id: number
prisonerNo: string
name: string
gender: number // 性别0-未知 1-男 2-女
genderName?: string // 性别名称
birthday: string
idCard: string
ethnicity: string
nativePlace: string
education: number
educationName?: string // 文化程度名称
occupation: string
address: string
crime: string
sentenceYears: number
sentenceMonths: number
lifeImprisonment: number
deathSentenceReprieve: number
courtName: string
judgmentDate: string
judgmentNo: string
originalSentence: string
imprisonmentDate: string
releaseDate: string
supervisionLevel: number
supervisionLevelName?: string // 监管等级名称
riskLevel: number
riskLevelName?: string // 风险等级名称
prisonAreaId: number
prisonAreaName?: string // 监区名称
prisonCellId: number
prisonCellName?: string // 监室名称
status: number
statusName?: string // 状态名称
photo?: string // 照片URL
releaseType?: number // 释放类型
releaseReason?: string // 释放原因
remark: string
createTime: Date
}
// 服刑人员创建/更新请求
export interface PrisonerCreateVO {
id?: number
prisonerNo: string
name: string
gender: number // 性别0-未知 1-男 2-女
birthday: string
idCard: string
ethnicity: string
nativePlace: string
education: number
occupation: string
address: string
crime: string
sentenceYears: number
sentenceMonths: number
lifeImprisonment: number
deathSentenceReprieve: number
courtName: string
judgmentDate: string
judgmentNo: string
originalSentence: string
imprisonmentDate: string
releaseDate: string
supervisionLevel: number
riskLevel: number
prisonAreaId: number
prisonCellId: number
photo?: string // 照片URL
remark: string
}
// PrisonerApi 对象 - 统一使用对象导出模式
export const PrisonerApi = {
// 分页查询
getPage: (params: PageParam) => {
return request.get({ url: '/prison/prisoner/page', params })
},
// 获取详情
get: (id: number) => {
return request.get({ url: '/prison/prisoner/get', params: { id } })
},
// 创建
create: (data: PrisonerCreateVO) => {
return request.post({ url: '/prison/prisoner/create', data })
},
// 更新
update: (data: PrisonerCreateVO) => {
return request.put({ url: '/prison/prisoner/update', data })
},
// 删除
delete: (id: number) => {
return request.delete({ url: '/prison/prisoner/delete', params: { id } })
},
// 批量删除
deleteList: (ids: number[]) => {
return request.delete({ url: '/prison/prisoner/delete-list', params: { ids: ids.join(',') } })
},
// 导出
export: (params: PageParam) => {
return request.download({ url: '/prison/prisoner/export-excel', params })
},
// 调监
doTransfer: (data: TransferReqVO) => {
return request.post({ url: '/prison/prisoner/transfer', params: data })
},
// 获取位置历史
getAreaHistory: (prisonerId: number) => {
return request.get({ url: '/prison/prisoner-area-log/list-by-prisoner-id', params: { prisonerId } })
},
// 导入
import: (data: FormData) => {
return request.upload({ url: '/prison/prisoner/import-excel', data })
}
}
// 调监请求
export interface TransferReqVO {
prisonerId: number
targetCellId: number
reason?: string
}
// 罪犯位置历史记录
export interface PrisonerAreaLogVO {
id: number
prisonerId: number
prisonerNo: string
prisonerName: string
fromAreaId: number
fromAreaName: string
fromCellId: number
fromCellName: string
toAreaId: number
toAreaName: string
toCellId: number
toCellName: string
transferType: number
transferTypeName: string
reason: string
operatorId: number
operatorName: string
createTime: string
}