Revert "```"

This reverts commit abc0674531.
This commit is contained in:
2025-12-26 22:21:21 +08:00
parent ae6c486114
commit 3115e38cc4
920 changed files with 14452 additions and 107025 deletions

View File

@@ -1,662 +0,0 @@
<template>
<div class="main">
<div class="title">
<h1>患者护理记录单</h1>
</div>
<el-scrollbar height="500px" style="height: 100%">
<div class="content">
<el-form :model="rulesFrom" :rules="rules" ref="formRef">
<el-card>
<div class="commoncss">
<el-form-item prop="date" label="日期:" label-width="100px">
<el-date-picker
v-model="rulesFrom.date"
type="date"
placeholder="请选择"
format="YYYY/MM/DD"
value-format="YYYY-MM-DD"
@change="dateChange"
/>
</el-form-item>
<el-form-item prop="time" label="时间:" label-width="100px">
<el-time-picker
v-model="rulesFrom.time"
placeholder="请选择时间"
format="HH:mm"
value-format="HH:mm"
@change="dateChange"
/>
</el-form-item>
</div>
<!-- 基本信息 -->
<div class="foundation">
<div class="commone-title">基本信息</div>
<div class="foundation-content">
<div class="foundation-content-first">
<el-form-item label="意识:" label-width="100px">
<el-select
v-model="rulesFrom.consciousnessCodeList"
multiple
collapse-tags
collapse-tags-tooltip
:max-collapse-tags="1"
placeholder="请选择"
style="width: 220px"
>
<el-option
v-for="item in ysOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="体温:" label-width="100px">
<div class="commoncss">
<el-input
v-model="rulesFrom.temperature"
placeholder="请输入"
clearable
style="width: 220px"
/>
<div></div>
</div>
</el-form-item>
<el-form-item label="心率:" label-width="100px">
<div class="commoncss">
<el-input
v-model="rulesFrom.heartRate"
placeholder="请选择"
clearable
style="width: 220px"
/>
<div class="unit">/</div>
</div>
</el-form-item>
</div>
<div class="foundation-content-second">
<el-form-item label="脉率:" label-width="100px" class="wait-flex">
<div class="commoncss">
<el-input
v-model="rulesFrom.pulse"
placeholder="请选择"
clearable
class="wait-flex"
style="width: 180px"
/>
<div class="unit">/</div>
</div>
</el-form-item>
<el-form-item label="呼吸:" label-width="100px" class="wait-flex">
<div class="commoncss">
<el-input
v-model="rulesFrom.breathe"
placeholder="请选择"
clearable
class="wait-flex"
style="width: 180px"
/>
<div class="unit">/</div>
</div>
</el-form-item>
<el-form-item label="血压:" label-width="100px" class="wait-flex">
<div class="commoncss">
<el-input
v-model="rulesFrom.bloodPressure"
placeholder="请选择"
clearable
style="width: 180px"
/>
<div class="unit">mmHg</div>
</div>
</el-form-item>
<el-form-item label="血氧饱和度:" label-width="100px" class="wait-flex">
<div class="commoncss">
<el-input
v-model="rulesFrom.bloodOxygen"
placeholder="请选择"
clearable
style="width: 180px"
/>
<div class="unit">%</div>
</div>
</el-form-item>
</div>
<div>
<el-form-item label="吸氧升/分:" label-width="100px" class="wait-flex">
<div class="commoncss">
<el-input
v-model="rulesFrom.oxygen"
placeholder="请选择"
clearable
style="width: 180px"
/>
<div class="unit">/</div>
</div>
</el-form-item>
</div>
</div>
</div>
<!-- 氧疗 -->
<div class="oxygen">
<div class="oxygen-title commone-title">氧疗/min</div>
<div class="oxygen-content">
<el-form-item label="方式:" label-width="100px">
<el-select
v-model="rulesFrom.oxygenCodeList"
multiple
collapse-tags
collapse-tags-tooltip
:max-collapse-tags="1"
placeholder="请选择"
style="width: 220px"
>
<el-option
v-for="item in oxygenOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="流量:" label-width="100px">
<div>
<el-input
v-model="rulesFrom.oxygenflow"
placeholder="请输入"
clearable
style="width: 220px"
/>
</div>
</el-form-item>
</div>
</div>
<!-- 入量 -->
<div class="input">
<div class="input-title commone-title">入量</div>
<div class="input-content">
<el-form-item label="名称:" label-width="100px">
<div>
<el-input
v-model="rulesFrom.inputName"
placeholder="请输入"
clearable
style="width: 220px"
/>
</div>
</el-form-item>
<el-form-item label="ml" label-width="100px">
<div>
<el-input
v-model="rulesFrom.input"
placeholder="请输入"
clearable
style="width: 220px"
/>
</div>
</el-form-item>
<el-form-item label="途径:" label-width="100px">
<div>
<el-input
v-model="rulesFrom.inputvia"
placeholder="请输入"
clearable
style="width: 220px"
/>
</div>
</el-form-item>
</div>
</div>
<!-- 出量 -->
<div class="out">
<div class="out-title commone-title">出量</div>
<div class="out-content">
<el-form-item label="名称:" label-width="100px">
<div>
<el-input
v-model="rulesFrom.outputName"
placeholder="请输入"
clearable
style="width: 220px"
/>
</div>
</el-form-item>
<el-form-item label="ml" label-width="100px">
<div>
<el-input
v-model="rulesFrom.output"
placeholder="请输入"
clearable
style="width: 220px"
/>
</div>
</el-form-item>
</div>
</div>
<!-- 皮肤情况 -->
<div class="skin">
<el-form-item label="皮肤情况:" label-width="100px">
<el-select
v-model="rulesFrom.skinconditionCodeList"
multiple
collapse-tags
collapse-tags-tooltip
:max-collapse-tags="3"
placeholder="请选择"
style="width: 380px"
>
<el-option
v-for="item in skinconditionOption"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</div>
<!-- 管路护理 -->
<div class="nursing">
<el-form-item label="管路护理:" label-width="100px">
<el-select
v-model="rulesFrom.pipelinecare"
multiple
collapse-tags
collapse-tags-tooltip
:max-collapse-tags="3"
placeholder="请选择"
style="width: 380px"
>
<el-option
v-for="item in pipelinecareOption"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</div>
<!-- 病情措施 -->
<div class="nursing">
<el-form-item label="病情措施:" label-width="100px">
<div>
<el-input
type="textarea"
v-model="rulesFrom.condition"
placeholder="请选择"
clearable
style="width: 380px"
:rows="10"
:autosize="{ minRows: 5, maxRows: 10 }"
/>
</div>
</el-form-item>
</div>
<!-- 护士签名 -->
<div class="nurse">
<el-form-item label="护士签名:" label-width="100px">
<div>
<el-input
v-model="rulesFrom.nurse"
placeholder="请选择"
clearable
style="width: 380px"
/>
</div>
</el-form-item>
</div>
</el-card>
</el-form>
</div>
</el-scrollbar>
<div style="display: flex; justify-content: flex-end; margin-top: 10px">
<el-button @click="onCancle">取消</el-button>
<el-button type="primary" @click="saveData">保存</el-button>
</div>
</div>
</template>
<script setup>
import { computed, nextTick, reactive, ref, watch, watchEffect } from 'vue';
import dayjs from 'dayjs';
import { getTemperatureType, addRecord } from '../tprsheet/api/api';
import { patientInfo } from '../../inpatientDoctor/home/store/patient';
import { ElMessage } from 'element-plus';
const formRef = ref();
// 意识
const ysOptions = [
{
value: '1',
label: '清醒',
},
{
value: '2',
label: '嗜睡',
},
{
value: '3',
label: '意识模糊',
},
{
value: '4',
label: '昏睡',
},
{
value: '5',
label: '谵妄',
},
{
value: '6',
label: '浅昏迷',
},
{
value: '7',
label: '中度昏迷',
},
{
value: '8',
label: '深昏迷',
},
{
value: '9',
label: '全麻未醒',
},
{
value: '10',
label: '镇静',
},
];
// 氧疗
const oxygenOptions = [
{
value: '1',
label: '鼻导管吸氧',
},
{
value: '2',
label: '面罩吸氧',
},
{
value: '3',
label: '高流量氧疗',
},
{
value: '4',
label: '机械通气',
},
];
// 皮肤情况
const skinconditionOption = [
{
value: '1',
label: '完好',
},
{
value: '2',
label: '压疮',
},
{
value: '3',
label: '出血点',
},
{
value: '4',
label: '破损',
},
{
value: '5',
label: '水肿',
},
{
value: '6',
label: '瘀斑',
},
{
value: '7',
label: '过敏',
},
{
value: '8',
label: '其他',
},
];
// 管路护理
const pipelinecareOption = [
{
value: '1',
label: '胃管',
},
{
value: '2',
label: '导尿管',
},
{
value: '3',
label: '静脉置管',
},
{
value: '4',
label: '吸氧管',
},
{
value: '5',
label: 'T管',
},
{
value: '6',
label: '胸腔引流管',
},
{
value: '7',
label: '腹腔引流管',
},
{
value: '8',
label: '伤口引流管',
},
{
value: '9',
label: '脑室引流管',
},
{
value: '10',
label: '其他',
},
];
const rulesFrom = ref({
date: '', //日期 年月日
time: '', //时间 十分
recordTime: '', //组合日期时间 年月日时分
consciousnessCodeList: [], //意识code
temperature: '', //体温
heartRate: '', //心率
pulse: '', //脉搏
breathe: '', //呼吸
bloodPressure: '', //血压
bloodOxygen: '', //血氧
oxygenCodeList: [], //氧疗
oxygenflow: '', //氧疗流量
inputName: '', //入量名称
input: '', //入量
inputvia: '', //入量途径
outputName: '', //出量名称
output: '', //出量
skinconditionCodeList: [], //皮肤情况
pipelinecare: [], //管路护理
condition: '', //病情
nurse: '', //护士
oxygen: '',
});
const rules = reactive({
date: [{ required: true, message: '请选择日期', trigger: 'blur' }],
time: [{ required: true, message: '请选择时间', trigger: 'blur' }],
});
const dateChange = () => {
rulesFrom.value.recordTime = rulesFrom.value.date + ' ' + rulesFrom.value.time + ':00';
};
// 计算时间
rulesFrom.value.recordTime = computed(() => {
console.log('11111111111111');
return rulesFrom.value.date + ' ' + rulesFrom.value.time;
});
// 保存form
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: '3',
});
const emit = defineEmits(['cancleDialog', 'refreshData']);
const onCancle = () => {
emit('cancleDialog');
};
// 保存数据
const saveData = () => {
if (!patientInfo.value) {
ElMessage({
type: 'error',
message: '请选择患者',
});
}
editForm.value.contentJson = JSON.stringify(rulesFrom.value);
editForm.value.encounterId = patientInfo.value.encounterId;
editForm.value.patientId = patientInfo.value.patientId;
editForm.value.recordTime = rulesFrom.value.recordTime;
console.log('editForm=================>', JSON.stringify(rulesFrom.value));
formRef.value.validate(async (res) => {
if (res) {
await addRecord(editForm.value);
if (editForm.value.id && editForm.value.id.length > 0) {
ElMessage.success('护理记录修改成功');
} else {
ElMessage.success('护理记录保存成功');
}
emit('refreshData');
}
});
};
// 获取护理记录单类型
const getDefinitionIdNet = async () => {
const res = await getTemperatureType({ menuEnum: '3' });
//默认选中第一个
if (res.data?.length > 0) {
const obj = res.data[0];
editForm.value.definitionId = obj.id;
editForm.value.definitionBusNo = obj.busNo;
}
};
watch(patientInfo, () => {
getDefinitionIdNet();
});
// 重置
const reset = () => {
rulesFrom.value = {
date: '', //日期 年月日
time: '', //时间 十分
recordTime: '', //组合日期时间 年月日时分
consciousnessCodeList: [], //意识code
temperature: '', //体温
heartRate: '', //心率
pulse: '', //脉搏
breathe: '', //呼吸
bloodPressure: '', //血压
bloodOxygen: '', //血氧
oxygenCodeList: [], //氧疗
oxygenflow: '', //氧疗流量
inputName: '', //入量名称
input: '', //入量
inputvia: '', //入量途径
outputName: '', //出量名称
output: '', //出量
skinconditionCodeList: [], //皮肤情况
pipelinecare: [], //管路护理
condition: '', //病情
nurse: '', //护士
};
editForm.value = {
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: '3',
};
getDefinitionIdNet();
};
// 编辑
const editEmit = (row) => {
console.log('rowwwww=======>', JSON.stringify(row));
editForm.value.id = row.id;
editForm.value.definitionId = row.definitionId;
editForm.value.definitionBusNo = row.definitionBusNo;
rulesFrom.value = JSON.parse(row.contentJson);
};
defineExpose({ reset, editEmit });
</script>
<style lang="scss" scoped>
.main {
display: flex;
flex-direction: column;
.title {
width: 100%;
text-align: center;
}
.foundation {
.foundation-content {
.foundation-content-first {
display: flex;
}
.foundation-content-second {
display: flex;
}
}
}
.oxygen {
.oxygen-title {
}
.oxygen-content {
display: flex;
}
}
.input {
.input-title {
}
.input-content {
display: flex;
}
}
.out {
.out-title {
}
.out-content {
display: flex;
}
}
}
.commoncss {
display: flex;
}
.unit {
width: 50px;
}
.wait-flex {
flex: 1;
}
.commone-title {
font-weight: bold;
}
</style>