feat(frontend): 优化风险评估和预警表单交互

This commit is contained in:
tangweijie 2026-02-03 17:46:30 +08:00
parent 11e3ef148b
commit 2cee84c00d
3 changed files with 15 additions and 19 deletions

View File

@ -20,7 +20,7 @@ export interface RiskAssessment {
id: number // 评估ID id: number // 评估ID
prisonerId?: number // 罪犯ID prisonerId?: number // 罪犯ID
prisonerNo?: string // 罪犯编号 prisonerNo?: string // 罪犯编号
prisonerName?: string // 罪犯姓名 prisonerName?: string // 罪犯姓名(用于回显)
assessmentType?: number // 评估类型1-入狱评估 2-定期评估 3-专项评估 assessmentType?: number // 评估类型1-入狱评估 2-定期评估 3-专项评估
assessmentDate?: string // 评估日期 assessmentDate?: string // 评估日期
violenceScore: number // 暴力倾向得分 violenceScore: number // 暴力倾向得分
@ -31,7 +31,7 @@ export interface RiskAssessment {
riskFactors: string // 风险因素 riskFactors: string // 风险因素
suggestions: string // 管控建议 suggestions: string // 管控建议
// assessorId 和 assessorName 由后端自动从登录上下文获取,不需要前端传递 // assessorId 和 assessorName 由后端自动从登录上下文获取,不需要前端传递
nextAssessmentDate: string // 下次评估日期 nextAssessmentDate?: string // 下次评估日期
status?: number // 状态1-待审核 2-已通过 status?: number // 状态1-待审核 2-已通过
remark: string // 备注 remark: string // 备注
createTime?: string // 创建时间 createTime?: string // 创建时间

View File

@ -40,7 +40,7 @@
<el-date-picker <el-date-picker
v-model="formData.assessmentDate" v-model="formData.assessmentDate"
type="date" type="date"
value-format="x" value-format="YYYY-MM-DD"
placeholder="选择评估日期" placeholder="选择评估日期"
/> />
</el-form-item> </el-form-item>
@ -72,17 +72,12 @@
<el-form-item label="管控建议" prop="suggestions"> <el-form-item label="管控建议" prop="suggestions">
<el-input v-model="formData.suggestions" placeholder="请输入管控建议" /> <el-input v-model="formData.suggestions" placeholder="请输入管控建议" />
</el-form-item> </el-form-item>
<el-form-item label="评估人ID" prop="assessorId"> <!-- 评估人信息由后端自动从登录上下文获取不在前端显示 -->
<el-input v-model="formData.assessorId" placeholder="请输入评估人ID" />
</el-form-item>
<el-form-item label="评估人姓名" prop="assessorName">
<el-input v-model="formData.assessorName" placeholder="请输入评估人姓名" />
</el-form-item>
<el-form-item label="下次评估日期" prop="nextAssessmentDate"> <el-form-item label="下次评估日期" prop="nextAssessmentDate">
<el-date-picker <el-date-picker
v-model="formData.nextAssessmentDate" v-model="formData.nextAssessmentDate"
type="date" type="date"
value-format="x" value-format="YYYY-MM-DD"
placeholder="选择下次评估日期" placeholder="选择下次评估日期"
/> />
</el-form-item> </el-form-item>
@ -129,8 +124,9 @@ const formData = ref({
id: undefined, id: undefined,
prisonerId: undefined as number | undefined, prisonerId: undefined as number | undefined,
prisonerNo: undefined as string | undefined, prisonerNo: undefined as string | undefined,
prisonerName: undefined as string | undefined, //
assessmentType: undefined as number | undefined, assessmentType: undefined as number | undefined,
assessmentDate: undefined as number | undefined, assessmentDate: undefined as string | undefined,
violenceScore: undefined as number | undefined, violenceScore: undefined as number | undefined,
escapeScore: undefined as number | undefined, escapeScore: undefined as number | undefined,
suicideScore: undefined as number | undefined, suicideScore: undefined as number | undefined,
@ -138,9 +134,8 @@ const formData = ref({
riskLevel: undefined as number | undefined, riskLevel: undefined as number | undefined,
riskFactors: undefined as string | undefined, riskFactors: undefined as string | undefined,
suggestions: undefined as string | undefined, suggestions: undefined as string | undefined,
assessorId: undefined as number | undefined, // assessorId assessorName
assessorName: undefined as string | undefined, nextAssessmentDate: undefined as string | undefined,
nextAssessmentDate: undefined as number | undefined,
status: 1 as number | undefined, status: 1 as number | undefined,
remark: undefined as string | undefined remark: undefined as string | undefined
}) })
@ -153,7 +148,7 @@ const formRules = reactive({
}) })
const formRef = ref() // Ref const formRef = ref() // Ref
/** 搜索罪犯 */ /** 搜索罪犯 - 支持编号和姓名双条件搜索 */
const searchPrisoner = async (query: string) => { const searchPrisoner = async (query: string) => {
if (!query) { if (!query) {
prisonerList.value = [] prisonerList.value = []
@ -164,6 +159,7 @@ const searchPrisoner = async (query: string) => {
const data = await PrisonerApi.getPage({ const data = await PrisonerApi.getPage({
pageNo: 1, pageNo: 1,
pageSize: 20, pageSize: 20,
prisonerNo: query, //
name: query // name: query //
} as any) } as any)
prisonerList.value = data.list || [] prisonerList.value = data.list || []
@ -236,6 +232,7 @@ const resetForm = () => {
id: undefined, id: undefined,
prisonerId: undefined, prisonerId: undefined,
prisonerNo: undefined, prisonerNo: undefined,
prisonerName: undefined,
assessmentType: undefined, assessmentType: undefined,
assessmentDate: undefined, assessmentDate: undefined,
violenceScore: undefined, violenceScore: undefined,
@ -245,8 +242,7 @@ const resetForm = () => {
riskLevel: undefined, riskLevel: undefined,
riskFactors: undefined, riskFactors: undefined,
suggestions: undefined, suggestions: undefined,
assessorId: undefined, // assessorId assessorName
assessorName: undefined,
nextAssessmentDate: undefined, nextAssessmentDate: undefined,
status: 1, status: 1,
remark: undefined remark: undefined

View File

@ -385,8 +385,8 @@ const submitForm = async () => {
try { try {
const data = { const data = {
...formData.value, ...formData.value,
alertTime: formData.value.alertTime ? new Date(formData.value.alertTime).toISOString() : undefined, alertTime: formData.value.alertTime ? new Date(formData.value.alertTime).toISOString().slice(0, 19).replace('T', ' ') : undefined,
occurTime: formData.value.occurTime ? new Date(formData.value.occurTime).toISOString() : undefined occurTime: formData.value.occurTime ? new Date(formData.value.occurTime).toISOString().slice(0, 19).replace('T', ' ') : undefined
} as unknown as WarningSaveReqVO } as unknown as WarningSaveReqVO
if (formType.value === 'create') { if (formType.value === 'create') {
await WarningApi.createWarning(data) await WarningApi.createWarning(data)