feat: 更新前端 API 接口和评估报告组件
- AreaApi 完善查询方法 - CellApi 新增获取列表方法 - ConsumptionApi 优化查询参数 - QuestionnaireApi 调整接口结构 - QuestionnaireRecordApi 完善类型定义 - RiskAssessmentApi 优化接口参数 - ReportDetailDialog 修复样式问题 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
4bac14276a
commit
934f2935ac
@ -39,11 +39,12 @@ export interface AreaSaveReqVO {
|
||||
name: string
|
||||
code: string
|
||||
parentId?: number
|
||||
level?: number
|
||||
type: number
|
||||
capacity: number
|
||||
level: number // 级别:1-监区(大队) 2-分监区(中队),必填
|
||||
type: number // 监区类型:1-普通监区 2-严管监区 3-集训监区 4-出监监区 5-医院监区 6-禁闭室
|
||||
capacity: number // 容纳人数
|
||||
currentCount?: number // 当前人数,创建时可不传
|
||||
sort?: number
|
||||
status?: number
|
||||
status: number // 状态:1-启用 2-禁用,必填
|
||||
remark?: string
|
||||
}
|
||||
|
||||
@ -51,11 +52,16 @@ export interface AreaSaveReqVO {
|
||||
export interface AreaPageReqVO {
|
||||
pageNo: number
|
||||
pageSize: number
|
||||
name?: string
|
||||
code?: string
|
||||
type?: number
|
||||
level?: number
|
||||
status?: number
|
||||
name?: string // 监区名称
|
||||
code?: string // 监区编码
|
||||
type?: number // 监区类型
|
||||
level?: number // 级别
|
||||
capacity?: number // 容纳人数
|
||||
currentCount?: number // 当前人数
|
||||
sort?: number // 排序
|
||||
status?: number // 状态:1-启用 2-禁用
|
||||
remark?: string // 备注
|
||||
createTime?: string[] // 创建时间范围 [开始时间, 结束时间]
|
||||
}
|
||||
|
||||
// 监区信息 API
|
||||
@ -80,6 +86,11 @@ export const AreaApi = {
|
||||
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 })
|
||||
|
||||
@ -23,6 +23,7 @@ export interface CellCreateReqVO {
|
||||
name: string
|
||||
code: string
|
||||
capacity: number
|
||||
currentCount?: number // 当前人数,创建时默认为0
|
||||
sort: number
|
||||
status: number
|
||||
remark?: string
|
||||
@ -39,7 +40,9 @@ export interface CellPageReqVO {
|
||||
pageSize: number
|
||||
areaId?: number
|
||||
name?: string
|
||||
code?: string // 监室编码
|
||||
status?: number
|
||||
createTime?: string[] // 创建时间范围
|
||||
}
|
||||
|
||||
// ========== 监室信息 API ==========
|
||||
@ -77,5 +80,10 @@ export const CellApi = {
|
||||
// 导出监室信息 Excel
|
||||
exportCell: async (params: CellPageReqVO) => {
|
||||
return await request.download({ url: '/prison/cell/export-excel', params })
|
||||
},
|
||||
|
||||
// 获取监室列表(下拉选择用)
|
||||
getCellList: async (params: { areaId?: number; status?: number }) => {
|
||||
return await request.get<CellVO[]>({ url: '/prison/cell/list', params })
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,15 +8,19 @@ export interface ConsumptionPageParams {
|
||||
prisonerName?: string // 罪犯姓名
|
||||
prisonAreaId?: number // 监区ID
|
||||
prisonCellId?: number // 监室ID
|
||||
type?: number
|
||||
status?: number
|
||||
totalAmount?: number
|
||||
orderNo?: string
|
||||
type?: number // 类型:1-购物 2-餐饮 3-医疗 4-通讯 5-其他
|
||||
status?: number // 状态:1-成功 2-失败
|
||||
totalAmount?: number // 订单总金额
|
||||
balance?: number // 账户余额
|
||||
orderNo?: string // 订单号
|
||||
tradeTime?: string[] // 交易时间范围
|
||||
createTime?: string[] // 创建时间范围
|
||||
}
|
||||
|
||||
/** 消费明细信息 */
|
||||
export interface ConsumptionDetail {
|
||||
id?: number // 明细ID
|
||||
consumptionId?: number // 消费订单ID
|
||||
goodsName: string // 商品名称
|
||||
goodsCode?: string // 商品编码
|
||||
goodsPrice: number // 商品单价
|
||||
@ -43,6 +47,7 @@ export interface Consumption {
|
||||
remark: string // 备注
|
||||
details?: ConsumptionDetail[] // 消费明细列表
|
||||
createTime?: Date // 创建时间
|
||||
updateTime?: Date // 更新时间
|
||||
}
|
||||
|
||||
// 消费订单 API
|
||||
|
||||
@ -31,6 +31,7 @@ export interface QuestionPageParams {
|
||||
title?: string // 问题标题
|
||||
type?: number // 问题类型
|
||||
partName?: string // 分区名称
|
||||
createTime?: string[] // 创建时间范围
|
||||
}
|
||||
|
||||
/** 批量更新请求 */
|
||||
@ -75,9 +76,9 @@ export const QuestionApi = {
|
||||
return await request.delete<boolean>({ url: `/prison/question/delete-list`, params: { ids: ids.join(',') } })
|
||||
},
|
||||
|
||||
// 批量更新问卷问题
|
||||
// 批量更新问卷问题(使用POST方法,与后端一致)
|
||||
batchUpdate: async (data: QuestionBatchUpdateReq) => {
|
||||
return await request.put<boolean>({ url: `/prison/question/batch-update`, data })
|
||||
return await request.post<boolean>({ url: `/prison/question/batch-update`, data })
|
||||
},
|
||||
|
||||
// 导出问卷问题 Excel
|
||||
|
||||
@ -6,10 +6,10 @@ export interface Questionnaire {
|
||||
title: string // 问卷标题
|
||||
type: number // 问卷类型:1-心理测评 2-行为评估 3-满意度调查
|
||||
description?: string // 问卷说明
|
||||
totalScore: number // 总分
|
||||
passScore: number // 及格分
|
||||
totalScore?: number | string // 总分(后端为BigDecimal,前端用number或string)
|
||||
passScore?: number | string // 及格分(后端为BigDecimal,前端用number或string)
|
||||
status: number // 状态:1-草稿 2-已发布 3-已禁用
|
||||
coverImage?: string // 封面图片URL
|
||||
coverImage?: string // 封面图片URL(单个图片地址)
|
||||
instruction?: string // 填写说明
|
||||
estimatedTime?: number // 预计耗时(分钟)
|
||||
partCount?: number // 分区数量
|
||||
@ -24,16 +24,16 @@ export interface Questionnaire {
|
||||
export interface QuestionnairePageParams {
|
||||
pageNo: number
|
||||
pageSize: number
|
||||
title?: string
|
||||
type?: number
|
||||
status?: number
|
||||
description?: string
|
||||
coverImage?: string
|
||||
instruction?: string
|
||||
estimatedTime?: number
|
||||
partCount?: number
|
||||
allowAnonymous?: boolean
|
||||
createTime?: string
|
||||
title?: string // 问卷标题
|
||||
type?: number // 问卷类型
|
||||
status?: number // 状态
|
||||
description?: string // 问卷说明
|
||||
coverImage?: string // 封面图片URL
|
||||
instruction?: string // 填写说明
|
||||
estimatedTime?: number // 预计耗时
|
||||
partCount?: number // 分区数量
|
||||
allowAnonymous?: boolean // 是否允许匿名
|
||||
createTime?: string[] // 创建时间范围
|
||||
}
|
||||
|
||||
// 问卷模板 API
|
||||
|
||||
@ -1,5 +1,13 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
// ========== 风险等级枚举 ==========
|
||||
export enum RiskLevelEnum {
|
||||
LOW = 1, // 低风险
|
||||
MEDIUM = 2, // 中风险
|
||||
HIGH = 3, // 高风险
|
||||
EXTREME = 4 // 极高风险
|
||||
}
|
||||
|
||||
// ========== 问卷答题记录/测评记录类型 ==========
|
||||
|
||||
/** 问卷答题记录/测评记录信息 */
|
||||
@ -13,13 +21,14 @@ export interface QuestionnaireRecord {
|
||||
status?: number // 状态:1-待测评 2-测评中 3-已完成 4-已过期 5-已取消
|
||||
startTime?: string // 开始时间
|
||||
endTime?: string // 结束时间
|
||||
answerTime?: string // 答题时间
|
||||
deadline?: string // 截止日期
|
||||
objectiveScore?: number // 客观题得分
|
||||
subjectiveScore?: number // 主观题得分
|
||||
totalScore?: number // 总分
|
||||
passScore?: number // 及格分数
|
||||
objectiveScore?: number | string // 客观题得分(后端为BigDecimal)
|
||||
subjectiveScore?: number | string // 主观题得分(后端为BigDecimal)
|
||||
totalScore?: number | string // 总分(后端为BigDecimal)
|
||||
passScore?: number | string // 及格分数(后端为BigDecimal)
|
||||
passStatus?: number // 及格状态:1-及格 2-不及格 3-待评阅
|
||||
riskLevel?: number // 风险等级:1-低风险 2-中风险 3-高风险 4-极高风险
|
||||
riskLevel?: RiskLevelEnum // 风险等级:1-低风险 2-中风险 3-高风险 4-极高风险
|
||||
evaluatorId?: number // 评阅人ID
|
||||
evaluatorName?: string // 评阅人姓名
|
||||
evaluateTime?: string // 评阅时间
|
||||
@ -34,16 +43,17 @@ export interface QuestionnaireRecord {
|
||||
export interface QuestionnaireRecordPageParams {
|
||||
pageNo: number
|
||||
pageSize: number
|
||||
questionnaireId?: number
|
||||
questionnaireName?: string
|
||||
prisonerId?: number
|
||||
prisonerNo?: string
|
||||
status?: number
|
||||
passStatus?: number
|
||||
riskLevel?: number
|
||||
startTime?: string[]
|
||||
endTime?: string[]
|
||||
createTime?: string[]
|
||||
questionnaireId?: number // 问卷ID
|
||||
questionnaireName?: string // 问卷名称
|
||||
prisonerId?: number // 罪犯ID
|
||||
prisonerNo?: string // 罪犯编号
|
||||
status?: number // 状态:1-待测评 2-测评中 3-已完成 4-已过期 5-已取消
|
||||
passStatus?: number // 及格状态:1-及格 2-不及格 3-待评阅
|
||||
riskLevel?: RiskLevelEnum // 风险等级
|
||||
startTime?: string[] // 开始时间范围
|
||||
endTime?: string[] // 结束时间范围
|
||||
deadline?: string[] // 截止日期范围
|
||||
createTime?: string[] // 创建时间范围
|
||||
}
|
||||
|
||||
/** 发起测评请求 */
|
||||
@ -73,7 +83,7 @@ export interface AssessmentManualScoreReq {
|
||||
recordId: number // 测评记录ID
|
||||
subjectiveScore: number // 主观题得分
|
||||
comment?: string // 评语
|
||||
riskLevel?: number // 风险等级:1-低风险 2-中风险 3-高风险 4-极高风险
|
||||
riskLevel?: RiskLevelEnum // 风险等级:1-低风险 2-中风险 3-高风险 4-极高风险
|
||||
}
|
||||
|
||||
/** 分数分布数据 */
|
||||
|
||||
@ -4,12 +4,15 @@ import request from '@/config/axios'
|
||||
export interface RiskAssessmentPageParams {
|
||||
pageNo: number
|
||||
pageSize: number
|
||||
prisonerId?: number
|
||||
prisonerNo?: string
|
||||
prisonerName?: string
|
||||
assessmentType?: number
|
||||
riskLevel?: number
|
||||
status?: number
|
||||
prisonerId?: number // 罪犯ID
|
||||
prisonerNo?: string // 罪犯编号
|
||||
prisonerName?: string // 罪犯姓名
|
||||
assessmentType?: number // 评估类型:1-入狱评估 2-定期评估 3-专项评估
|
||||
assessmentDate?: string[] // 评估日期范围
|
||||
riskLevel?: number // 风险等级:1-低风险 2-中风险 3-高风险 4-极高风险
|
||||
status?: number // 状态:1-待审核 2-已通过
|
||||
createTime?: string[] // 创建时间范围
|
||||
updateTime?: string[] // 更新时间范围
|
||||
}
|
||||
|
||||
/** 危险评估信息 */
|
||||
@ -27,13 +30,11 @@ export interface RiskAssessment {
|
||||
riskLevel?: number // 风险等级:1-低风险 2-中风险 3-高风险 4-极高风险
|
||||
riskFactors: string // 风险因素
|
||||
suggestions: string // 管控建议
|
||||
assessorId: number // 评估人ID
|
||||
assessorName: string // 评估人姓名
|
||||
// assessorId 和 assessorName 由后端自动从登录上下文获取,不需要前端传递
|
||||
nextAssessmentDate: string // 下次评估日期
|
||||
status?: number // 状态:1-待审核 2-已通过
|
||||
remark: string // 备注
|
||||
createTime?: string // 创建时间
|
||||
updateTime?: string // 更新时间
|
||||
}
|
||||
|
||||
// 危险评估 API
|
||||
|
||||
@ -53,13 +53,13 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
||||
import { EvaluationReportApi, EvaluationReport } from '@/api/prison/evaluation'
|
||||
import { ReportApi, type ReportVO } from '@/api/prison/evaluation-report'
|
||||
|
||||
defineOptions({ name: 'ReportDetailDialog' })
|
||||
|
||||
const dialogVisible = ref(false)
|
||||
const loading = ref(false)
|
||||
const reportData = ref<EvaluationReport | null>(null)
|
||||
const reportData = ref<ReportVO | null>(null)
|
||||
|
||||
/** 获取风险等级类型 */
|
||||
const getRiskLevelType = (level: number): string => {
|
||||
@ -78,7 +78,7 @@ const open = async (id: number) => {
|
||||
dialogVisible.value = true
|
||||
loading.value = true
|
||||
try {
|
||||
reportData.value = await EvaluationReportApi.getReport(id)
|
||||
reportData.value = await ReportApi.getReport(id)
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user