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