Files
his/openhis-ui-vue3/src/views/inpatientNurse/tprsheet/components/addAttr.vue

1196 lines
35 KiB
Vue

<template>
<!-- search -->
<el-card shadow="always" :body-style="{ padding: '20px' }">
<div class="domain">
<el-form :inline="true" label-width="100px">
<el-form-item label="录入时间" size="normal">
<el-date-picker
v-model="searchFormData.recordingDate"
type="date"
placeholder="请选择时间"
:size="size"
format="YYYY/MM/DD"
value-format="YYYY-MM-DD"
@change="selectTimeChange"
/>
</el-form-item>
<el-form-item label="体温单类型" size="normal">
<el-select
v-model="searchFormData.temperatureType"
placeholder="请选择"
clearable
filterable
@change=""
>
<el-option
v-for="item in temOptions"
:label="item.label"
:key="item.value"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
</div>
</el-card>
<!-- table -->
<el-card shadow="always" style="margin-top: 10px">
<div>
<el-form :model="formData" ref="formRef" label-width="80px" :inline="false" size="normal">
<el-table border :data="formData.fillTableData" style="width: 100%">
<el-table-column width="100px" label="" fixed="left">
<template #default="scoped">
<span>{{ timePointTime(scoped.row.timePoint) }}</span>
</template>
</el-table-column>
<el-table-column width="250px" label="体温">
<template #default="scoped">
<el-form-item
class="el-form-item"
size="normal"
:prop="`fillTableData.${scoped.$index}.temperature`"
>
<div style="display: flex; margin-left: -80px">
<el-input
class="el-input"
v-model="scoped.row.temperature"
placeholder="请输入体温(℃)"
@input="handleInput(scoped.row, scoped.row.temperature, 1)"
/>
<el-select
v-model="scoped.row.temperatureUnit"
placeholder="请选择"
style="margin-left: 5px"
@change="temperChange(scoped.row, 1)"
>
<el-option
v-for="item in temperature_select_type"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="脉搏">
<template #default="scoped">
<el-form-item size="normal" :prop="`fillTableData.${scoped.$index}.pulse`">
<div style="margin-left: -80px">
<el-input
v-model="scoped.row.pulse"
placeholder="请输入脉搏(分/次)"
@input="handleInput(scoped.row, scoped.row.pulse)"
/>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="呼吸(次/分)">
<template #default="scoped">
<el-form-item size="normal" :prop="`fillTableData.${scoped.$index}.breathe`">
<div style="display: flex; margin-left: -80px">
<el-input
v-model="scoped.row.breathe"
placeholder="请输入呼吸次数(分/次)"
@input="handleInput(scoped.row, scoped.row.breathe, 2)"
/>
<el-select
v-model="scoped.row.breatheUnit"
placeholder="请选择"
style="margin-left: 5px"
@change="temperChange(scoped.row, 2)"
>
<el-option
v-for="item in breathe_unit"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="心率">
<template #default="scoped">
<el-form-item size="normal" :prop="`fillTableData.${scoped.$index}.heartRate`">
<div style="margin-left: -80px">
<el-input v-model="scoped.row.heartRate" placeholder="请输入心率(bpm)" />
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column width="300px" label="血压">
<template #default="scoped">
<el-form-item size="normal" :prop="`fillTableData.${scoped.$index}.tw`">
<div style="display: flex; margin-left: -80px">
<el-input
v-model="scoped.row.systolicPressure"
placeholder="请输入收缩压(mmHg)"
@input="systolic(scoped.row, 1)"
/>
<el-input
v-model="scoped.row.diastolicPressure"
placeholder="请输入舒张压(mmHg)"
style="margin-left: 5px"
@input="systolic(scoped.row, 2)"
/>
<el-select
v-model="scoped.row.pressureUnit"
placeholder="请选择"
style="margin-left: 5px"
@change="temperChange(scoped.row, 3)"
>
<el-option
v-for="item in temperature_select_type"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="疼痛等级">
<template #default="scoped">
<el-form-item size="normal" :prop="`fillTableData.${scoped.$index}.heartRate`">
<div style="margin-left: -80px">
<el-input
v-model="scoped.row.painScore"
placeholder="请输入疼痛等级"
@input="handleInput(scoped.row, scoped.row.painScore)"
/>
</div>
</el-form-item>
</template>
</el-table-column>
<!-- <el-table-column width="200px" label="血氧">
<template #default="scoped">
<el-form-item size="normal" :prop="`fillTableData.${scoped.$index}.bloodOxygen`">
<div style="margin-left: -80px">
<el-input
v-model="scoped.row.bloodOxygen"
placeholder="请输入血氧(毫升/100毫升)"
/>
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column width="200px" label="血糖">
<template #default="scoped">
<el-form-item size="normal" :prop="`fillTableData.${scoped.$index}.bloodGlucose`">
<div style="margin-left: -80px">
<el-input v-model="scoped.row.bloodGlucose" placeholder="请输入血糖(mmol/L)" />
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column width="200px" label="物理降温">
<template #default="scoped">
<el-form-item size="normal" :prop="`fillTableData.${scoped.$index}.physicalCooling`">
<div style="margin-left: -80px">
<el-input v-model="scoped.row.physicalCooling" placeholder="请输入物理降温" />
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column width="200px" label="CCU心率">
<template #default="scoped">
<el-form-item size="normal" :prop="`fillTableData.${scoped.$index}.ccuHeartRate`">
<div style="margin-left: -80px">
<el-input v-model="scoped.row.ccuHeartRate" placeholder="请输入CCU心率" />
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column width="200px" label="新生儿箱温">
<template #default="scoped">
<el-form-item
size="normal"
:prop="`fillTableData.${scoped.$index}.newbornsIncubator`"
>
<div style="margin-left: -80px">
<el-input v-model="scoped.row.newbornsIncubator" placeholder="请输入新生儿温箱" />
</div>
</el-form-item>
</template>
</el-table-column>
<el-table-column width="200px" label="血酮">
<template #default="scoped">
<el-form-item size="normal" :prop="`fillTableData.${scoped.$index}.bloodKetone`">
<div style="margin-left: -80px">
<el-input v-model="scoped.row.bloodKetone" placeholder="请输入血酮" />
</div>
</el-form-item>
</template>
</el-table-column> -->
</el-table>
</el-form>
</div>
</el-card>
<!-- 值测量一次 -->
<el-card shadow="always" style="margin-top: 10px">
<div class="fix-content">
<div class="left-content">
<el-form
:model="form"
ref="form"
:rules="rules"
label-width="100px"
:inline="false"
size="normal"
>
<el-form-item style="width: 300px" label="体重(kg)" size="normal">
<div style="display: flex">
<el-input
placeholder="请输入体重"
clearable
v-model="formData.weight"
@input="handleInput(formData, formData.weight, 4)"
/>
<el-select
v-model="formData.weightUnit"
placeholder="请选择"
@change="temperChange(formData, 4)"
>
<el-option
v-for="item in measurement_select_type"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</div>
</el-form-item>
<el-form-item class="sub-spacing" style="width: 300px" label="腹围(cm)" size="normal">
<div style="display: flex">
<el-input
v-model="formData.waistCircumference"
placeholder="请输入腹围"
clearable
@input="handleInput(formData, formData.waistCircumference, 5)"
/>
<el-select
v-model="formData.waistCircumferenceUnit"
placeholder="请选择"
@change="temperChange(formData, 5)"
>
<el-option
v-for="item in measurement_select_type"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</div>
</el-form-item>
<el-form-item class="sub-spacing" style="width: 300px" label="身高(cm)" size="normal">
<div style="display: flex">
<el-input
placeholder="请输入身高"
clearable
v-model="formData.height"
@input="handleInput(formData, formData.height, 6)"
/>
<el-select
v-model="formData.heightUnit"
placeholder="请选择"
@change="temperChange(formData, 6)"
>
<el-option
v-for="item in measurement_select_type"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</div>
</el-form-item>
<el-form-item class="sub-spacing" style="width: 300px" label="皮试阳性" size="normal">
<el-input v-model="formData.skinTest" placeholder="请输入皮试阳性" clearable />
</el-form-item>
<el-form-item
v-model="formData.urineVolume"
class="sub-spacing"
style="width: 300px"
label="尿量(ml)"
size="normal"
>
<el-input
v-model="formData.urineVolume"
placeholder="请输入尿量"
@input="handleInput(formData, formData.urineVolume)"
/>
</el-form-item>
<el-form-item
v-model="formData.urineVolume"
class="sub-spacing"
style="width: 300px"
label="其他(ml)"
size="normal"
>
<el-input
v-model="formData.other"
placeholder="请输入其他"
@input="handleInput(formData, formData.other)"
/>
</el-form-item>
<!-- <el-form-item class="sub-spacing" style="width: 300px" label="大便量(ml)" size="normal">
<el-input v-model="formData.stoolVolume" placeholder="请输入大便量(ml)" clearable />
</el-form-item> -->
</el-form>
</div>
<div class="right-content">
<el-form
:model="form"
ref="form"
:rules="rules"
label-width="150px"
:inline="false"
size="normal"
>
<el-form-item style="width: 360px" label="小便次数(次)" size="normal">
<div style="display: flex">
<el-input
v-model="formData.urinationFrequency"
placeholder="请输入小便次数"
clearable
@input="handleInput(formData, formData.urinationFrequency, 7)"
/>
<el-select
v-model="formData.urinationFrequencyUnit"
placeholder="请选择"
@change="temperChange(formData, 7)"
>
<el-option
v-for="item in urination_frequency_unit"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</div>
</el-form-item>
<el-form-item class="sub-spacing" style="width: 360px" label="大便次数(次)" size="normal">
<div style="display: flex">
<el-input
v-model="formData.stoolFrequency"
placeholder="请输入大便次数"
clearable
@input="handleInput(formData, formData.stoolFrequency, 8)"
/>
<el-select
v-model="formData.stoolFrequencyUnit"
placeholder="请选择"
@change="temperChange(formData, 8)"
>
<el-option
v-for="item in stoolfrequency_unit"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</div>
</el-form-item>
<!-- <el-form-item class="sub-spacing" style="width: 360px" label="灌肠次数(次)" size="normal">
<el-input
v-model="formData.enemaFrequency"
placeholder="请输入灌肠次数"
clearable
@input="handleInput(formData, formData.enemaFrequency)"
/>
</el-form-item>
<el-form-item
class="sub-spacing"
style="width: 360px"
label="灌肠后大便次数(次)"
size="normal"
>
<el-input
v-model="formData.sfAfterEnema"
placeholder="请输入灌肠后大便次数"
@input="handleInput(formData, formData.sfAfterEnema)"
/>
</el-form-item> -->
<el-form-item class="sub-spacing" style="width: 360px" label="入量(ml)" size="normal">
<el-input
v-model="formData.input"
placeholder="请输入入量"
clearable
@input="handleInput(formData, formData.input)"
/>
</el-form-item>
<!-- <el-form-item class="sub-spacing" style="width: 300px" label="出量(ml)" size="normal">
<el-input v-model="formData.output" placeholder="请输入出量" clearable />
</el-form-item>
<el-form-item
v-model="formData.urineVolume"
class="sub-spacing"
style="width: 300px"
label="尿量(ml)"
size="normal"
>
<el-input v-model="formData.urineVolume" placeholder="请输入尿量" />
</el-form-item> -->
</el-form>
</div>
</div>
</el-card>
</template>
<script setup>
import { patientInfo } from '../../../inpatientDoctor/home/store/patient';
import { ElMessage } from 'element-plus';
import { getTemperatureType, getTemperatureHistory, addRecord } from '../api/api';
import { nextTick } from 'vue';
import dayjs from 'dayjs';
import moment from 'moment';
const { proxy } = getCurrentInstance();
const {
temperature_select_type,
measurement_select_type,
breathe_unit,
urination_frequency_unit,
stoolfrequency_unit,
adm_way,
medcas_qlt_code,
sys_yes_no,
naty,
patn_rlts,
} = proxy.useDict(
'temperature_select_type',
'measurement_select_type',
'breathe_unit',
'urination_frequency_unit',
'stoolfrequency_unit',
'adm_way',
'medcas_qlt_code',
'sys_yes_no',
'naty',
'patn_rlts'
);
const formRef = ref('');
const searchFormData = ref({
recordingDate: '',
temperatureType: '',
});
const temOptions = ref([]);
const emit = defineEmits(['onSearcTem']);
/*
recordingDate 记录时间
timePoint 记录时间
temperature 体温
temperatureUnit 单位
temperature 心率
pulse 脉搏
breathe 呼吸次数
bloodOxygen 血氧
bloodGlucose 血糖
physicalCooling 物理降温
ccuHeartRate CCU心率
newbornsIncubator 新生儿温箱
bloodKetone 血酮
height 身高
waistCircumference 腹围
urinationFrequency 小便次数
stoolFrequency 大便次数
stoolFrequencyUnit 大变次数符号
enemaFrequency 灌肠次数
sfAfterEnema 灌肠后大便次数
output 出量
input 入量
urineVolume 尿量
stoolVolume 大便量
systolicPressure 收缩压
diastolicPressure 舒张压
painScore 疼痛等级
skinTest 皮试阳性
other 其他
bloodPressure 血压
*/
const systolic = (item, type) => {
item.bloodPressure = item.systolicPressure + '/' + item.diastolicPressure;
if (type == 1) {
handleInput(item, item.systolicPressure, 3);
} else {
handleInput(item, item.diastolicPressure, 3);
}
};
// 拼接血压
const selectTimeChange = (time) => {
searchData();
};
const timePointTime = (value) => {
let time = '';
if (value == '0200') {
time = '2:00';
} else if (value == '0600') {
time = '6:00';
} else if (value == '1000') {
time = '10:00';
} else if (value == '1400') {
time = '14:00';
} else if (value == '1800') {
time = '18:00';
} else if (value == '2200') {
time = '22:00';
}
return time;
};
// 表单数据
const formData = ref({
height: '',
heightUnit: '',
weight: '',
weightUnit: '',
urinationFrequency: '',
urinationFrequencyUnit: '',
waistCircumference: '',
waistCircumferenceUnit: '',
stoolFrequency: '',
stoolFrequencyUnit: '',
enemaFrequency: '',
stoolVolume: '',
sfAfterEnema: '',
output: '',
input: '',
urineVolume: '',
systolicPressure: '',
skinTest: '',
other: '',
fillTableData: [
{
timePoint: '0200',
temperature: '',
temperatureUnit: '',
heartRate: '',
pulse: '',
breathe: '',
breatheUnit: '',
bloodOxygen: '',
bloodGlucose: '',
physicalCooling: '',
ccuHeartRate: '',
newbornsIncubator: '',
bloodKetone: '',
height: '',
waistCircumference: '',
stoolFrequency: '',
enemaFrequency: '',
sfAfterEnema: '',
output: '',
input: '',
urineVolume: '',
stoolVolume: '',
systolicPressure: '',
diastolicPressure: '',
pressureUnit: '',
painScore: '',
bloodPressure: '',
},
{
timePoint: '0600',
temperature: '',
temperatureUnit: '',
heartRate: '',
pulse: '',
breathe: '',
breatheUnit: '',
bloodOxygen: '',
bloodGlucose: '',
physicalCooling: '',
ccuHeartRate: '',
newbornsIncubator: '',
bloodKetone: '',
height: '',
waistCircumference: '',
stoolFrequency: '',
enemaFrequency: '',
sfAfterEnema: '',
output: '',
input: '',
urineVolume: '',
stoolVolume: '',
systolicPressure: '',
diastolicPressure: '',
pressureUnit: '',
painScore: '',
bloodPressure: '',
},
{
timePoint: '1000',
temperature: '',
temperatureUnit: '',
heartRate: '',
pulse: '',
breathe: '',
breatheUnit: '',
bloodOxygen: '',
bloodGlucose: '',
physicalCooling: '',
ccuHeartRate: '',
newbornsIncubator: '',
bloodKetone: '',
height: '',
waistCircumference: '',
stoolFrequency: '',
enemaFrequency: '',
sfAfterEnema: '',
output: '',
input: '',
urineVolume: '',
stoolVolume: '',
systolicPressure: '',
diastolicPressure: '',
pressureUnit: '',
painScore: '',
bloodPressure: '',
},
{
timePoint: '1400',
temperature: '',
temperatureUnit: '',
heartRate: '',
pulse: '',
breathe: '',
breatheUnit: '',
bloodOxygen: '',
bloodGlucose: '',
physicalCooling: '',
ccuHeartRate: '',
newbornsIncubator: '',
bloodKetone: '',
height: '',
waistCircumference: '',
stoolFrequency: '',
enemaFrequency: '',
sfAfterEnema: '',
output: '',
input: '',
urineVolume: '',
stoolVolume: '',
systolicPressure: '',
diastolicPressure: '',
pressureUnit: '',
painScore: '',
bloodPressure: '',
},
{
timePoint: '1800',
temperature: '',
temperatureUnit: '',
heartRate: '',
pulse: '',
breathe: '',
breatheUnit: '',
bloodOxygen: '',
bloodGlucose: '',
physicalCooling: '',
ccuHeartRate: '',
newbornsIncubator: '',
bloodKetone: '',
height: '',
waistCircumference: '',
stoolFrequency: '',
enemaFrequency: '',
sfAfterEnema: '',
output: '',
input: '',
urineVolume: '',
stoolVolume: '',
systolicPressure: '',
diastolicPressure: '',
pressureUnit: '',
painScore: '',
bloodPressure: '',
},
{
timePoint: '2200',
temperature: '',
temperatureUnit: '',
heartRate: '',
pulse: '',
breathe: '',
breatheUnit: '',
bloodOxygen: '',
bloodGlucose: '',
physicalCooling: '',
ccuHeartRate: '',
newbornsIncubator: '',
bloodKetone: '',
height: '',
waistCircumference: '',
stoolFrequency: '',
enemaFrequency: '',
sfAfterEnema: '',
output: '',
input: '',
urineVolume: '',
stoolVolume: '',
systolicPressure: '',
diastolicPressure: '',
pressureUnit: '',
painScore: '',
bloodPressure: '',
},
],
});
// 校验规则
const rules = {
zt1: [{ required: true, message: '请选择目的仓库', trigger: ['blur', 'change'] }],
tw: [{ required: true, message: '请输入体温', trigger: ['blur', 'change'] }],
mb: [{ required: true, message: '请输入mb', trigger: ['blur', 'change'] }],
};
const editForm = ref({
id: '',
definitionId: '',
definitionBusNo: '',
contentJson: '',
statusEnum: 1, // 0草稿/暂存 1提交 2归档 3修改
organizationId: 0,
encounterId: '',
patientId: '',
recordTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
createBy: '',
source: '4',
});
// 获取当前时间时分秒
const getTime = () => {
let time = '';
const currentDate = dayjs().format('YYYY-MM-DD HH:mm:ss');
const timeArr = currentDate.split(' ');
if (timeArr && timeArr.length > 1) {
time = timeArr[1];
}
return time;
};
// 保存数据
const saveData = () => {
if (!patientInfo.value) {
ElMessage({
type: 'error',
message: '请选择患者',
});
}
formRef.value.validate(async (res) => {
if (res) {
const params = {
...formData.value,
recordTime: searchFormData.value.recordingDate,
};
params.fillTableData.forEach((item) => {
item.recordTime = searchFormData.value.recordingDate;
});
editForm.value.contentJson = JSON.stringify(formData.value);
editForm.value.encounterId = patientInfo.value.encounterId;
editForm.value.patientId = patientInfo.value.patientId;
editForm.value.recordTime = searchFormData.value.recordingDate + ' ' + getTime();
console.log('dayjs()=================>', JSON.stringify(editForm));
await addRecord(editForm.value);
if (editForm.value.id && editForm.value.id.length > 0) {
ElMessage.success('体温单修改成功');
} else {
ElMessage.success('体温单保存成功');
}
emit('onSearcTem');
}
});
};
// 查询数据
const searchData = async () => {
const params = {
recordTime: searchFormData.value.recordingDate, //查询时间
encounterId: patientInfo.value.encounterId, //病历id
patientId: patientInfo.value.patientId, //患者ID
definitionId: editForm.value.definitionId, //体温单类型id
};
console.log('property===========>', JSON.stringify(params));
const res = await getTemperatureHistory(params);
if (res.data && res.data.length > 0) {
editForm.value.id = res.data[res.data.length - 1]['id'];
formData.value = JSON.parse(res.data[res.data.length - 1]['contentJson']);
} else {
resetData('1');
}
};
// const onSearch = async () => {
// if (editForm.value.definitionId.length <= 0) {
// return;
// }
// const params = {
// recordTime: searchFormData.value.recordingDate, //查询时间
// encounterId: patientInfo.value.encounterId, //病历id
// patientId: patientInfo.value.patientId, //患者ID
// definitionId: editForm.value.definitionId, //体温单类型id
// };
// console.log('property===========>', JSON.stringify(params));
// const res = await getTemperatureHistory(params);
// if (res.data && res.data.length > 0) {
// editForm.value.id = res.data[res.data.length - 1]['id'];
// formData.value = JSON.parse(res.data[res.data.length - 1]['contentJson']);
// } else {
// resetData('1');
// }
// };
// 重置数据
const resetData = (type = '0') => {
if (type == '1') {
editForm.value.id = '';
}
formData.value = {
height: '',
waistCircumference: '',
stoolFrequency: '',
enemaFrequency: '',
stoolVolume: '',
sfAfterEnema: '',
output: '',
input: '',
urineVolume: '',
systolicPressure: '',
fillTableData: [
{
timePoint: '0200',
temperature: '',
heartRate: '',
pulse: '',
breathe: '',
breatheUnit: '',
bloodOxygen: '',
bloodGlucose: '',
physicalCooling: '',
ccuHeartRate: '',
newbornsIncubator: '',
bloodKetone: '',
height: '',
waistCircumference: '',
stoolFrequency: '',
enemaFrequency: '',
sfAfterEnema: '',
output: '',
input: '',
urineVolume: '',
stoolVolume: '',
systolicPressure: '',
diastolicPressure: '',
},
{
timePoint: '0600',
temperature: '',
heartRate: '',
pulse: '',
breathe: '',
breatheUnit: '',
bloodOxygen: '',
bloodGlucose: '',
physicalCooling: '',
ccuHeartRate: '',
newbornsIncubator: '',
bloodKetone: '',
height: '',
waistCircumference: '',
stoolFrequency: '',
enemaFrequency: '',
sfAfterEnema: '',
output: '',
input: '',
urineVolume: '',
stoolVolume: '',
systolicPressure: '',
diastolicPressure: '',
},
{
timePoint: '1000',
temperature: '',
heartRate: '',
pulse: '',
breathe: '',
breatheUnit: '',
bloodOxygen: '',
bloodGlucose: '',
physicalCooling: '',
ccuHeartRate: '',
newbornsIncubator: '',
bloodKetone: '',
height: '',
waistCircumference: '',
stoolFrequency: '',
enemaFrequency: '',
sfAfterEnema: '',
output: '',
input: '',
urineVolume: '',
stoolVolume: '',
systolicPressure: '',
diastolicPressure: '',
},
{
timePoint: '1400',
temperature: '',
heartRate: '',
pulse: '',
breathe: '',
breatheUnit: '',
bloodOxygen: '',
bloodGlucose: '',
physicalCooling: '',
ccuHeartRate: '',
newbornsIncubator: '',
bloodKetone: '',
height: '',
waistCircumference: '',
stoolFrequency: '',
enemaFrequency: '',
sfAfterEnema: '',
output: '',
input: '',
urineVolume: '',
stoolVolume: '',
systolicPressure: '',
diastolicPressure: '',
},
{
timePoint: '1800',
temperature: '',
heartRate: '',
pulse: '',
breathe: '',
breatheUnit: '',
bloodOxygen: '',
bloodGlucose: '',
physicalCooling: '',
ccuHeartRate: '',
newbornsIncubator: '',
bloodKetone: '',
height: '',
waistCircumference: '',
stoolFrequency: '',
enemaFrequency: '',
sfAfterEnema: '',
output: '',
input: '',
urineVolume: '',
stoolVolume: '',
systolicPressure: '',
diastolicPressure: '',
},
{
timePoint: '2200',
temperature: '',
heartRate: '',
pulse: '',
breathe: '',
breatheUnit: '',
bloodOxygen: '',
bloodGlucose: '',
physicalCooling: '',
ccuHeartRate: '',
newbornsIncubator: '',
bloodKetone: '',
height: '',
waistCircumference: '',
stoolFrequency: '',
enemaFrequency: '',
sfAfterEnema: '',
output: '',
input: '',
urineVolume: '',
stoolVolume: '',
systolicPressure: '',
diastolicPressure: '',
},
],
};
};
// 获取体温单类型
const getTemRequset = async () => {
resetData();
const res = await getTemperatureType({ menuEnum: 4 });
const newData = res.data?.map((item) => {
let obj = {
label: item.name,
value: item.id,
};
return obj;
});
// 选择类型
temOptions.value = newData;
//默认选中第一个
nextTick(() => {
if (res.data?.length > 0) {
const obj = res.data[0];
searchFormData.value.temperatureType = obj.id;
editForm.value.definitionId = obj.id;
editForm.value.definitionBusNo = obj.busNo;
// 第一次进入查询当天数据
searchData();
}
});
};
// 获取体温单类型
const onActionEdit = async (type) => {
const beginTime = moment(new Date()).format('YYYY-MM-DD');
searchFormData.value.recordingDate = beginTime;
getTemRequset();
};
// 根据code获取文字
const selectContent = (code, type) => {
let title = '';
if (type == 1) {
if (code == 1) {
title = '拒测';
} else if (code == 2) {
title = '外出';
} else {
title = '请假';
}
} else if (type == 2) {
if (code == 1) {
title = '@';
}
} else if (type == 3) {
if (code == 1) {
title = '拒测';
} else if (code == 2) {
title = '外出';
} else {
title = '请假';
}
} else if (type == 4 || type == 5 || type == 6) {
if (code == 1) {
title = '卧床';
} else if (code == 2) {
title = '未测';
}
} else if (type == 7) {
if (code == 1) {
title = '※';
} else if (code == 2) {
title = 'C';
}
} else if (type == 8) {
if (code == 1) {
title = '※';
} else if (code == 2) {
title = '☆';
} else {
title = '人工肛门';
}
}
return title;
};
const temperChange = (row, type = 0) => {
if (type == 1) {
row.temperature = selectContent(row.temperatureUnit, type);
} else if (type == 2) {
row.breathe = selectContent(row.breatheUnit, type);
} else if (type == 3) {
row.systolicPressure = selectContent(row.pressureUnit, type);
row.diastolicPressure = selectContent(row.pressureUnit, type);
row.bloodPressure = selectContent(row.pressureUnit, type);
} else if (type == 4) {
row.weight = selectContent(row.weightUnit, type);
} else if (type == 5) {
row.waistCircumference = selectContent(row.waistCircumferenceUnit, type);
} else if (type == 6) {
row.height = selectContent(row.heightUnit, type);
} else if (type == 7) {
row.urinationFrequency = selectContent(row.urinationFrequencyUnit, type);
} else if (type == 8) {
console.log('uuuuuu=========>', row.stoolFrequencyUnit);
row.stoolFrequency = selectContent(row.stoolFrequencyUnit, type);
}
};
// 正则只能输入数字(包含小数)
const handleInput = (row, text, type = 0) => {
// 你可以在这里添加更多的逻辑,比如限制小数点后的位数等
if (type == 1) {
row.temperatureUnit = '';
} else if (type == 2) {
row.breatheUnit = '';
} else if (type == 3) {
row.pressureUnit = '';
} else if (type == 4) {
row.weightUnit = '';
} else if (type == 5) {
row.waistCircumferenceUnit = '';
} else if (type == 6) {
row.heightUnit = '';
} else if (type == 7) {
row.urinationFrequencyUnit = '';
} else if (type == 8) {
row.stoolFrequencyUnit = '';
}
// 例如,限制小数点后最多两位数
const regex = /^\d*\.?\d{0,2}$/;
if (!regex.test(text)) {
ElMessage({
type: 'error',
message: '只能输入数字',
});
} else {
// row.value = newValue; // 更新原始值
}
};
defineExpose({ saveData, onActionEdit });
</script>
<style scoped>
.el-form-item {
/* background: red; */
margin: 0;
}
.domain {
height: 100px;
display: flex;
align-items: center;
.search-button {
margin-left: 20px;
}
}
.fix-content {
/* background: red; */
/* height: 160px; */
display: flex;
margin-top: 20px;
.left-content {
flex: 1;
display: flex;
justify-content: center;
/* background: green; */
/* .son-content {
width: 100%;
padding: 0 100px;
background: yellow;
} */
}
.right-content {
flex: 1;
display: flex;
justify-content: center;
/* align-items: center; */
}
.sub-spacing {
margin-top: 10px;
}
}
</style>