动态心电界面

This commit is contained in:
Flow 2025-07-15 16:43:46 +08:00
parent 2c21ec062f
commit e5e61cfb15
4 changed files with 866 additions and 158 deletions

View File

@ -18,7 +18,7 @@ export interface abpmVO {
systolicPressure: number // 收缩压(mmHg)
diastolicPressure: number // 舒张压(mmHg)
heartRate: number // 心率(次/分)
measureTime: Date // 测量时间
weartime: Date // 佩戴时间
analysisResult: string // 分析结果
}

55
src/api/abpmdata/index.ts Normal file
View File

@ -0,0 +1,55 @@
import request from '@/config/axios'
// 动态血压监测数据 VO
export interface AbpmdataVO {
id: number // 主键ID
regid: string // 注册ID
examid: string // 检查ID
weartime: Date // 佩戴时间
measuretime: Date // 测量时间
deviceid: string // 设备ID
devicename: string // 设备名称
systolicpressure: number // 收缩压(mmHg)
diastolicpressure: number // 舒张压(mmHg)
heartrate: number // 心率(次/分)
createdtime: Date // 创建时间
updatedtime: Date // 更新时间
}
// 动态血压监测数据 API
export const AbpmdataApi = {
// 查询动态血压监测数据分页
getAbpmdataPage: async (params: any) => {
return await request.get({ url: `/system/abpmdata/page`, params })
},
// 查询动态血压监测数据详情
getAbpmdata: async (id: number) => {
return await request.get({ url: `/system/abpmdata/get?id=` + id })
},
// 新增动态血压监测数据
createAbpmdata: async (data: AbpmdataVO) => {
return await request.post({ url: `/system/abpmdata/create`, data })
},
// 修改动态血压监测数据
updateAbpmdata: async (data: AbpmdataVO) => {
return await request.put({ url: `/system/abpmdata/update`, data })
},
// 删除动态血压监测数据
deleteAbpmdata: async (id: number) => {
return await request.delete({ url: `/system/abpmdata/delete?id=` + id })
},
// 导出动态血压监测数据 Excel
exportAbpmdata: async (params) => {
return await request.download({ url: `/system/abpmdata/export-excel`, params })
},
// 查询动态血压监测数据统计
getAbpmdataStatistics: async (params: any) => {
return await request.get({ url: `/system/abpmdata/statistics`, params })
}
}

View File

@ -71,7 +71,7 @@
<!-- 数据表格区 -->
<el-card class="table-card" shadow="never" style="margin-top: 16px">
<el-table v-loading="loading" :data="tableData" border stripe style="width: 100%">
<el-table-column type="index" label="序号" align="center" min-width="60" />
<el-table-column prop="examid" label="检查ID" align="center" min-width="180" />
<el-table-column prop="name" label="姓名" align="center" min-width="90" />
<el-table-column prop="gender" label="性别" align="center" min-width="60">
<template #default="{ row }">
@ -79,12 +79,12 @@
</template>
</el-table-column>
<el-table-column prop="age" label="年龄" align="center" min-width="60" />
<el-table-column prop="measureTime" label="佩戴时间" align="center" min-width="180">
<el-table-column prop="weartime" label="佩戴时间" align="center" min-width="180">
<template #default="{ row, $index }">
<!-- 编辑状态 -->
<div v-if="row.editingMeasureTime" style="display: flex; align-items: center; gap: 8px">
<el-date-picker
v-model="row.measureTime"
v-model="row.weartime"
type="datetime"
placeholder="选择时间"
size="small"
@ -103,7 +103,7 @@
v-else
style="display: flex; align-items: center; justify-content: center; gap: 8px"
>
<span>{{ formatMeasureTime(row.measureTime) }}</span>
<span>{{ formatMeasureTime(row.weartime) }}</span>
<el-button type="primary" size="small" @click="editMeasureTime(row, $index)" link>
<Icon icon="ep:edit" />
</el-button>
@ -334,28 +334,28 @@ const cancelEditDevice = (row: any, index: number) => {
//
const editMeasureTime = (row: any, index: number) => {
//
row.originalMeasureTime = row.measureTime
row.originalMeasureTime = row.weartime
row.editingMeasureTime = true
}
const saveMeasureTime = async (row: any, index: number) => {
try {
//
const measureTimeTimestamp = row.measureTime ? new Date(row.measureTime).getTime() : null
const measureTimeTimestamp = row.weartime ? new Date(row.weartime).getTime() : null
// API
const updateData = { ...row, measureTime: measureTimeTimestamp }
const updateData = { ...row, weartime: measureTimeTimestamp }
await abpmApi.updateabpm(updateData)
row.editingMeasureTime = false
delete row.originalMeasureTime
ElMessage.success(`已更新佩戴时间为:${formatMeasureTime(row.measureTime)}`)
ElMessage.success(`已更新佩戴时间为:${formatMeasureTime(row.weartime)}`)
} catch (error) {
console.error('更新佩戴时间失败:', error)
ElMessage.error('更新佩戴时间失败,请重试')
//
if (row.originalMeasureTime !== undefined) {
row.measureTime = row.originalMeasureTime
row.weartime = row.originalMeasureTime
}
}
}
@ -363,15 +363,27 @@ const saveMeasureTime = async (row: any, index: number) => {
const cancelEditMeasureTime = (row: any, index: number) => {
//
if (row.originalMeasureTime !== undefined) {
row.measureTime = row.originalMeasureTime
row.weartime = row.originalMeasureTime
}
row.editingMeasureTime = false
delete row.originalMeasureTime
}
const onAnalyze = (row: any) => {
//
analysisDialogRef.value?.open(row)
//
const params = {
examid: row.examid,
regid: row.regid,
deviceid: row.deviceid,
devicename: row.devicename,
weartime: row.weartime,
//
name: row.name,
gender: row.gender,
age: row.age,
orgname: row.orgname
}
analysisDialogRef.value?.open(params)
}
const onViewReport = (row: any) => {
ElMessage.success(`查看报告:${row.name}`)

File diff suppressed because it is too large Load Diff