提交merge1.3
This commit is contained in:
@@ -1,37 +1,17 @@
|
||||
<template>
|
||||
<<<<<<< HEAD
|
||||
<!-- 跌倒/坠床评估护理记录单主容器 -->
|
||||
<div>
|
||||
<div class="business">
|
||||
<!-- 已有记录展示表格 -->
|
||||
<el-table
|
||||
=======
|
||||
<div>
|
||||
<div class="business">
|
||||
<!-- <el-table
|
||||
>>>>>>> v1.3
|
||||
:data="tableDataSource"
|
||||
border
|
||||
stripe
|
||||
fit
|
||||
:header-cell-style="{ background: '#f2f2f2', color: 'black' }"
|
||||
>
|
||||
<<<<<<< HEAD
|
||||
<!-- 记录时间列 -->
|
||||
<el-table-column prop="content.recordTime" label="记录时间" />
|
||||
<!-- 评估分数列 -->
|
||||
<el-table-column prop="content.totalScore" label="评估分数" />
|
||||
<!-- 护理措施列 -->
|
||||
<el-table-column prop="content.patientCareSessionsTableList" label="护理措施" />
|
||||
<!-- 责任护士列 -->
|
||||
<el-table-column prop="content.nurseSignature" label="责任护士" />
|
||||
<!-- 操作列:编辑和删除按钮 -->
|
||||
=======
|
||||
<el-table-column prop="content.recordTime" label="记录时间" />
|
||||
<el-table-column prop="content.totalScore" label="评估分数" />
|
||||
<el-table-column prop="content.patientCareSessionsTableList" label="护理措施" />
|
||||
<el-table-column prop="content.nurseSignature" label="责任护士" />
|
||||
>>>>>>> v1.3
|
||||
<el-table-column label="操作" align="center">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
@@ -50,20 +30,6 @@
|
||||
@click="handleDelete(scope.row)"
|
||||
:disabled="admissionDataForm !== undefined"
|
||||
>
|
||||
<<<<<<< HEAD
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!-- 跌倒/坠床评估护理记录单表单区域 -->
|
||||
<div name="跌倒/坠床评估护理记录单" class="changeMajor" style="width: 99.9%">
|
||||
<div>
|
||||
<!-- 表单主体 -->
|
||||
<el-form ref="formRef" :model="form" style="width: 99.9%">
|
||||
<!-- 标题行 -->
|
||||
=======
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
@@ -73,7 +39,6 @@
|
||||
<div name="跌倒/坠床评估护理记录单" class="changeMajor" style="width: 99.9%">
|
||||
<div>
|
||||
<el-form ref="formRef" :model="form" style="width: 99.9%">
|
||||
>>>>>>> v1.3
|
||||
<el-form-item style="text-align: center">
|
||||
<div
|
||||
style="
|
||||
@@ -89,18 +54,10 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 日期时间选择器 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="日期:" class="changeMajorFromItem" style="width: 100%">
|
||||
<el-row :span="20">
|
||||
<el-col :span="8" style="padding-left: 0px !important">
|
||||
<el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 日期时间选择器 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-date-picker
|
||||
v-model="form.ZKDATE"
|
||||
type="datetime"
|
||||
@@ -110,10 +67,6 @@
|
||||
style="width: 800px"
|
||||
:disabled="admissionDataForm !== undefined"
|
||||
/>
|
||||
<<<<<<< HEAD
|
||||
<!-- 时间选择器被注释掉 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<!-- <span style="margin-left: 5px">时间:</span>
|
||||
<el-time-picker
|
||||
v-model="form.ZKTIME"
|
||||
@@ -124,10 +77,6 @@
|
||||
/> -->
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<<<<<<< HEAD
|
||||
<!-- 新增/保存按钮 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-col :span="5">
|
||||
<el-button
|
||||
v-if="!updateFlag"
|
||||
@@ -151,10 +100,6 @@
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 危险因素评估表格 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item style="padding-top: 10px; margin: 0px !important">
|
||||
<el-table
|
||||
:data="dangerData"
|
||||
@@ -162,10 +107,6 @@
|
||||
:span-method="handleSpan"
|
||||
style="text-align: center"
|
||||
>
|
||||
<<<<<<< HEAD
|
||||
<!-- 动态生成表格列 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-table-column
|
||||
v-for="column in dangerColumns"
|
||||
:key="column.key"
|
||||
@@ -174,10 +115,6 @@
|
||||
:label="column.title"
|
||||
align="center"
|
||||
/>
|
||||
<<<<<<< HEAD
|
||||
<!-- 选择列(复选框) -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-table-column prop="id" label="选择" width="80" align="center">
|
||||
<template #default="{ row }">
|
||||
<el-checkbox v-model="row.checked" @change="handleDangerChange(row)" />
|
||||
@@ -186,10 +123,6 @@
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 总分显示 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item
|
||||
style="text-align: center; margin-bottom: 0px; padding: 0px"
|
||||
class="changeMajorFromItem"
|
||||
@@ -202,10 +135,6 @@
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 护理措施表格 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item style="padding-top: 10px">
|
||||
<el-table
|
||||
:data="nursingData"
|
||||
@@ -213,10 +142,6 @@
|
||||
:span-method="arraySpanMethod"
|
||||
style="width: 100%"
|
||||
>
|
||||
<<<<<<< HEAD
|
||||
<!-- 动态生成表格列 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-table-column
|
||||
v-for="column in nursingColumns"
|
||||
:key="column.key"
|
||||
@@ -225,10 +150,6 @@
|
||||
:label="column.title"
|
||||
align="center"
|
||||
/>
|
||||
<<<<<<< HEAD
|
||||
<!-- 选择列(复选框) -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-table-column prop="id" label="选择" width="80" align="center">
|
||||
<template #default="{ row }">
|
||||
<el-checkbox v-model="row.checked" @change="handleNursingChange(row)" />
|
||||
@@ -237,10 +158,6 @@
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 护士签字输入框 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item
|
||||
style="text-align: center; margin-bottom: 0px; padding: 0px"
|
||||
class="changeMajorFromItem"
|
||||
@@ -260,10 +177,6 @@
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 备注信息 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item>
|
||||
<el-row :span="20">
|
||||
<el-col :span="5">
|
||||
@@ -284,26 +197,6 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
<<<<<<< HEAD
|
||||
// 组件选项定义
|
||||
defineOptions({
|
||||
name: '跌倒/坠床评估护理记录单',
|
||||
});
|
||||
|
||||
// 导入所需模块
|
||||
import { ref, reactive, computed, onMounted } from 'vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
|
||||
// 使用路由相关功能
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
|
||||
// 定义引用变量
|
||||
const queryRef = ref();
|
||||
const formRef = ref();
|
||||
|
||||
// 基本数据变量
|
||||
=======
|
||||
defineOptions({
|
||||
name: 'FallBedFallAssessment',
|
||||
});
|
||||
@@ -328,7 +221,6 @@ const router = useRouter();
|
||||
const queryRef = ref();
|
||||
const formRef = ref();
|
||||
|
||||
>>>>>>> v1.3
|
||||
const wardCode = ref('');
|
||||
const patientId = ref('');
|
||||
const visitId = ref('');
|
||||
@@ -342,20 +234,6 @@ const totalScore = ref(0);
|
||||
const lastSubmit = ref('');
|
||||
const admissionDataForm = ref(route.params.admissionData);
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 表单数据模型
|
||||
const form = reactive({
|
||||
ZKDATE: '', // 日期
|
||||
ZKTIME: '', // 时间
|
||||
recordTime: '', // 记录时间
|
||||
totalScore: 0, // 总分
|
||||
bedFallRiskAssessmentList: [], // 跌倒风险评估列表
|
||||
nurseSignature: '', // 护士签名
|
||||
patientCareSessionsCheckedList: [], // 护理措施选中列表
|
||||
});
|
||||
|
||||
// 危险因素表格列配置
|
||||
=======
|
||||
const form = reactive({
|
||||
ZKDATE: '',
|
||||
ZKTIME: '',
|
||||
@@ -367,7 +245,6 @@ const form = reactive({
|
||||
});
|
||||
|
||||
// 危险因素表格列
|
||||
>>>>>>> v1.3
|
||||
const dangerColumns = [
|
||||
{
|
||||
key: 'content',
|
||||
@@ -432,11 +309,7 @@ const dangerData = ref([
|
||||
{ id: '27', evalContent: '麻醉止痛剂', score: 2, checked: false },
|
||||
]);
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 护理措施表格列配置
|
||||
=======
|
||||
// 护理措施表格列
|
||||
>>>>>>> v1.3
|
||||
const nursingColumns = [
|
||||
{
|
||||
key: 'content',
|
||||
@@ -473,33 +346,21 @@ const instructions = [
|
||||
'3.评分≥5,高度风险,每周至少评估一次,需采取适宜的预防措施,同时填写《预防患者跌倒/坠床知情告知书》',
|
||||
];
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 计算属性:计算选中的危险因素总分
|
||||
=======
|
||||
// 计算属性
|
||||
>>>>>>> v1.3
|
||||
const calculate = computed(() => {
|
||||
return dangerData.value
|
||||
.filter((option) => option.checked)
|
||||
.reduce((total, option) => total + option.score, 0);
|
||||
});
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 计算属性:判断表单是否为空
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const isFormEmpty = computed(() => {
|
||||
return (
|
||||
form.ZKDATE === '' && form.ZKTIME === '' && form.recordTime === '' && form.nurseSignature === ''
|
||||
);
|
||||
});
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 危险因素选择变化处理函数
|
||||
=======
|
||||
// 方法 - 不再需要handleData方法,通过表单输入和按钮加载数据
|
||||
|
||||
>>>>>>> v1.3
|
||||
const handleDangerChange = (row) => {
|
||||
totalScore.value = calculate.value;
|
||||
form.bedFallRiskAssessmentList = dangerData.value
|
||||
@@ -507,20 +368,12 @@ const handleDangerChange = (row) => {
|
||||
.map((item) => item.id);
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 护理措施选择变化处理函数
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const handleNursingChange = (row) => {
|
||||
form.patientCareSessionsCheckedList = nursingData.value
|
||||
.filter((item) => item.checked)
|
||||
.map((item) => item.id);
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 初始化函数:加载模拟数据
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const init = async () => {
|
||||
// 使用模拟数据,不再调用后端API
|
||||
try {
|
||||
@@ -582,10 +435,6 @@ const init = async () => {
|
||||
}
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 危险因素表格合并单元格处理函数
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const handleSpan = ({ row, column, rowIndex, columnIndex }) => {
|
||||
if (columnIndex === 0) {
|
||||
if (rowIndex === 0) {
|
||||
@@ -632,10 +481,6 @@ const handleSpan = ({ row, column, rowIndex, columnIndex }) => {
|
||||
return [1, 1];
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 护理措施表格合并单元格处理函数
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const arraySpanMethod = ({ row, column, rowIndex, columnIndex }) => {
|
||||
// 护理措施
|
||||
if (columnIndex === 0) {
|
||||
@@ -652,14 +497,8 @@ const arraySpanMethod = ({ row, column, rowIndex, columnIndex }) => {
|
||||
return [1, 1];
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 提交表单处理函数
|
||||
const onSubmit = async () => {
|
||||
// 检查上次提交时间,防止重复提交
|
||||
=======
|
||||
const onSubmit = async () => {
|
||||
// 检查上次提交时间
|
||||
>>>>>>> v1.3
|
||||
if (lastSubmit.value && new Date() - lastSubmit.value < 2000) {
|
||||
ElMessage.error('禁止重复提交!');
|
||||
return;
|
||||
@@ -684,16 +523,6 @@ const onSubmit = async () => {
|
||||
|
||||
if (isFormEmpty.value) {
|
||||
ElMessage.error('请填写跌倒/坠床评估护理记录单后再进行操作');
|
||||
<<<<<<< HEAD
|
||||
} else {
|
||||
form.totalScore = totalScore.value;
|
||||
|
||||
// 模拟保存数据,不再调用后端API
|
||||
console.log('保存的数据:', form);
|
||||
|
||||
if (updateFlag.value) {
|
||||
// 模拟更新操作
|
||||
=======
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -720,35 +549,22 @@ const onSubmit = async () => {
|
||||
// 更新本地数据
|
||||
if (updateFlag.value) {
|
||||
// 更新操作
|
||||
>>>>>>> v1.3
|
||||
const updatedIndex = tableDataSource.value.findIndex((item) => item.id === updateId.value);
|
||||
if (updatedIndex !== -1) {
|
||||
tableDataSource.value[updatedIndex].content = { ...form };
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
ElMessage.success('模拟更新成功');
|
||||
} else {
|
||||
// 模拟新增操作
|
||||
=======
|
||||
ElMessage.success('更新成功');
|
||||
} else {
|
||||
// 新增操作
|
||||
>>>>>>> v1.3
|
||||
const newRecord = {
|
||||
id: Date.now().toString(),
|
||||
content: { ...form },
|
||||
};
|
||||
tableDataSource.value.unshift(newRecord);
|
||||
<<<<<<< HEAD
|
||||
ElMessage.success('模拟新增成功');
|
||||
}
|
||||
|
||||
=======
|
||||
ElMessage.success('保存成功');
|
||||
}
|
||||
|
||||
// 处理返回逻辑
|
||||
>>>>>>> v1.3
|
||||
if (admissionDataForm.value !== undefined) {
|
||||
const admissionDataBack = JSON.parse(admissionDataForm.value);
|
||||
admissionDataBack.project2 = totalScore.value;
|
||||
@@ -769,13 +585,6 @@ const onSubmit = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
reset();
|
||||
}
|
||||
};
|
||||
|
||||
// 编辑记录处理函数
|
||||
=======
|
||||
// 重置表单
|
||||
reset();
|
||||
} catch (error) {
|
||||
@@ -784,7 +593,6 @@ const onSubmit = async () => {
|
||||
}
|
||||
};
|
||||
|
||||
>>>>>>> v1.3
|
||||
const handleUpdate = (row) => {
|
||||
const loginUser = JSON.parse(window.localStorage.getItem('loginUser'));
|
||||
|
||||
@@ -814,10 +622,6 @@ const handleUpdate = (row) => {
|
||||
}
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 重置表单函数
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const reset = () => {
|
||||
Object.assign(form, {
|
||||
ZKDATE: '',
|
||||
@@ -850,10 +654,6 @@ const reset = () => {
|
||||
}
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 删除记录处理函数
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const handleDelete = (row) => {
|
||||
const loginUser = JSON.parse(window.localStorage.getItem('loginUser'));
|
||||
|
||||
@@ -877,10 +677,6 @@ const handleDelete = (row) => {
|
||||
}
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 打印预览函数(暂未实现)
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const dc_ajax_preview = () => {
|
||||
var args = {
|
||||
report: urlAddRandomNo('./grf/NurseRecord_Pressure_208.grf'),
|
||||
@@ -891,10 +687,6 @@ const dc_ajax_preview = () => {
|
||||
webapp_ws_ajax_run(args);
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 数据转换函数,用于报表打印
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const transformData = () => {
|
||||
const jsonDate = [...tableDataSource.value];
|
||||
|
||||
@@ -1041,11 +833,7 @@ const transformData = () => {
|
||||
return transformedData;
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 组件挂载后执行的生命周期函数
|
||||
=======
|
||||
// 生命周期钩子
|
||||
>>>>>>> v1.3
|
||||
onMounted(() => {
|
||||
try {
|
||||
// 安全获取用户信息
|
||||
@@ -1058,9 +846,6 @@ onMounted(() => {
|
||||
wardCode.value = window.localStorage.getItem('wardInfo') || '';
|
||||
admissionDataForm.value = route.params.admissionData;
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 自动初始化表格数据,不再依赖患者ID参数
|
||||
=======
|
||||
// 获取患者信息
|
||||
if (patientInfo.value) {
|
||||
patientId.value = patientInfo.value.patientId || '';
|
||||
@@ -1068,7 +853,6 @@ onMounted(() => {
|
||||
}
|
||||
|
||||
// 自动初始化表格数据
|
||||
>>>>>>> v1.3
|
||||
// 延迟执行,确保所有数据都已初始化
|
||||
setTimeout(() => {
|
||||
init();
|
||||
@@ -1081,28 +865,17 @@ onMounted(() => {
|
||||
}, 100);
|
||||
}
|
||||
});
|
||||
<<<<<<< HEAD
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 页面样式定义 */
|
||||
=======
|
||||
|
||||
// 暴露接口
|
||||
defineExpose({ form, submit: onSubmit, reset });
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
>>>>>>> v1.3
|
||||
.business {
|
||||
background: white;
|
||||
border-radius: 5px;
|
||||
padding: 10px 16px;
|
||||
<<<<<<< HEAD
|
||||
height: calc(100vh - var(--barHeight) * 1px - 50px);
|
||||
=======
|
||||
height: calc(100vh - 250px);
|
||||
>>>>>>> v1.3
|
||||
overflow: auto;
|
||||
display: grid;
|
||||
grid-row-gap: 16px;
|
||||
@@ -1161,14 +934,4 @@ defineExpose({ form, submit: onSubmit, reset });
|
||||
margin-bottom: 0px !important;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
/* 备注信息列表样式 */
|
||||
.instructions-list {
|
||||
list-style-type: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
</style>
|
||||
=======
|
||||
</style>
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -2,15 +2,6 @@
|
||||
<div class="hospital-record-form">
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||
<el-tab-pane label="病案首页(一)" name="first">
|
||||
<<<<<<< HEAD
|
||||
<medicalRecordFirst :formData="formData"></medicalRecordFirst>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="病案首页(二)" name="second">
|
||||
<medicalRecordSecond :formData="formData"></medicalRecordSecond>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="病案附页(一)" name="third">
|
||||
<medicalRecordThird :formData="formData"></medicalRecordThird>
|
||||
=======
|
||||
<medicalRecordFirst
|
||||
ref="firstRef"
|
||||
:formData="formData"
|
||||
@@ -28,16 +19,10 @@
|
||||
:formData="formData"
|
||||
@onCaseThird="updateCaseFirstDatas"
|
||||
></medicalRecordThird>
|
||||
>>>>>>> v1.3
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
<div class="form-footer">
|
||||
<<<<<<< HEAD
|
||||
<button @click="printForm" class="print-btn">打印表单</button>
|
||||
<button @click="resetForm" class="reset-btn">重置表单</button>
|
||||
</div>
|
||||
=======
|
||||
<!-- <button @click="printForm" class="print-btn">打印表单</button> -->
|
||||
<button @click="resetForm" class="reset-btn">重置表单</button>
|
||||
</div>
|
||||
@@ -45,7 +30,6 @@
|
||||
<!-- <el-drawer v-model="drawer" size="100%">
|
||||
<medicalRecordPrint ref="recordPrintRef"></medicalRecordPrint>
|
||||
</el-drawer> -->
|
||||
>>>>>>> v1.3
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -53,12 +37,8 @@
|
||||
defineOptions({
|
||||
name: 'HospitalRecordForm',
|
||||
});
|
||||
<<<<<<< HEAD
|
||||
import { ref, reactive } from 'vue';
|
||||
=======
|
||||
import { ref, reactive, nextTick } from 'vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
>>>>>>> v1.3
|
||||
// import medicalRecordFirst from './components/medicalRecordFirst.vue';
|
||||
import medicalRecordFirst from '@/views/hospitalRecord/components/medicalRecordFirst.vue';
|
||||
import medicalRecordSecond from '@/views/hospitalRecord/components/medicalRecordSecond.vue';
|
||||
@@ -66,121 +46,6 @@ import medicalRecordThird from '@/views/hospitalRecord/components/medicalRecordT
|
||||
import medicalRecordFirstPrint from '@/views/hospitalRecord/components/medicalRecordFirstPrint.json';
|
||||
import medicalRecordSecondPrint from '@/views/hospitalRecord/components/medicalRecordSecondPrint.json';
|
||||
import medicalRecordThirdPrint from '@/views/hospitalRecord/components/medicalRecordThirdPrint.json';
|
||||
<<<<<<< HEAD
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
hospital: {
|
||||
orgCode: '41275054-7',
|
||||
paymentMethod: '城乡居民基本医疗保险'
|
||||
},
|
||||
patient: {
|
||||
healthCardNo: '',
|
||||
name: '',
|
||||
gender: '',
|
||||
birthDate: '',
|
||||
age: '',
|
||||
nationality: '中国',
|
||||
nativePlace: '',
|
||||
ethnicity: '汉族',
|
||||
idCardNo: '',
|
||||
householdAddress: '',
|
||||
workUnit: '',
|
||||
contactName: '',
|
||||
contactRelation: '',
|
||||
contactAddress: '',
|
||||
contactPhone: ''
|
||||
},
|
||||
admission: {
|
||||
times: 1,
|
||||
hospitalNo: '',
|
||||
recordNo: '',
|
||||
channel: '',
|
||||
admitTime: '',
|
||||
department: '',
|
||||
ward: '',
|
||||
confirmDate: '',
|
||||
dischargeTime: '',
|
||||
dischargeDepartment: '',
|
||||
dischargeWard: '',
|
||||
hospitalDays: ''
|
||||
},
|
||||
diagnosis: {
|
||||
mainDiagnosis: '',
|
||||
otherDiagnosis: ''
|
||||
},
|
||||
medicalInfo: {
|
||||
bloodTransfusion: '2',
|
||||
bloodType: '',
|
||||
rhType: '',
|
||||
drugAllergy: '1'
|
||||
},
|
||||
doctorInfo: {
|
||||
departmentDirector: '',
|
||||
chiefPhysician: '',
|
||||
attendingPhysician: '',
|
||||
residentPhysician: '',
|
||||
chargeNurse: '',
|
||||
chiefResident: '',
|
||||
intern: '',
|
||||
recordQuality: '1',
|
||||
coder: '',
|
||||
qualityControlDate: ''
|
||||
}
|
||||
});
|
||||
|
||||
const activeName = ref('first');
|
||||
|
||||
// 打印表单
|
||||
const printForm = () => {
|
||||
// 创建一个新的打印窗口
|
||||
const printWindow = window.open('', '_blank');
|
||||
let printContent
|
||||
// 获取模板字符串并替换转义的插值标记
|
||||
if(activeName.value == 'first') {
|
||||
printContent = medicalRecordFirstPrint.printContent;
|
||||
}else if(activeName.value == 'second') {
|
||||
printContent = medicalRecordSecondPrint.printContent;
|
||||
}else {
|
||||
printContent = medicalRecordThirdPrint.printContent;
|
||||
}
|
||||
// 这里可以进行实际的数据替换操作
|
||||
printContent = printContent.replace(/\$\{([^}]+)\}/g, (match, expr) => {
|
||||
// 简单示例:实际应根据expr内容进行数据提取
|
||||
return eval(expr); // 注意:实际使用中应避免eval,这里仅为示例
|
||||
});
|
||||
// 将内容写入打印窗口并打印
|
||||
printWindow.document.write(printContent);
|
||||
printWindow.document.close();
|
||||
}
|
||||
|
||||
function handleClick() {
|
||||
|
||||
}
|
||||
|
||||
// 重置表单
|
||||
const resetForm = () => {
|
||||
Object.keys(formData).forEach(key => {
|
||||
if (typeof formData[key] === 'object') {
|
||||
Object.keys(formData[key]).forEach(subKey => {
|
||||
formData[key][subKey] = '';
|
||||
});
|
||||
} else {
|
||||
formData[key] = '';
|
||||
}
|
||||
});
|
||||
|
||||
// 重置默认值
|
||||
formData.hospital.orgCode = '41275054-7';
|
||||
formData.hospital.paymentMethod = '城乡居民基本医疗保险';
|
||||
formData.patient.nationality = '中国';
|
||||
formData.patient.ethnicity = '汉族';
|
||||
formData.admission.times = 1;
|
||||
formData.medicalInfo.bloodTransfusion = '2';
|
||||
formData.medicalInfo.drugAllergy = '1';
|
||||
formData.doctorInfo.recordQuality = '1';
|
||||
};
|
||||
=======
|
||||
import formDataJs from '../views/doctorstation/components/store/medicalpage';
|
||||
import medicalRecordPrint from '../views/hospitalRecord/components/medicalRecordPrint.vue';
|
||||
import { previewPrint } from '../utils/printUtils';
|
||||
@@ -790,7 +655,6 @@ defineExpose({
|
||||
setFormData,
|
||||
printFun,
|
||||
});
|
||||
>>>>>>> v1.3
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@@ -860,13 +724,9 @@ label {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
input, select, textarea {
|
||||
=======
|
||||
input,
|
||||
select,
|
||||
textarea {
|
||||
>>>>>>> v1.3
|
||||
width: 100%;
|
||||
padding: 8px;
|
||||
border: 1px solid #ccc;
|
||||
@@ -887,12 +747,8 @@ textarea {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
.print-btn, .reset-btn {
|
||||
=======
|
||||
.print-btn,
|
||||
.reset-btn {
|
||||
>>>>>>> v1.3
|
||||
padding: 10px 20px;
|
||||
margin: 0 10px;
|
||||
border: none;
|
||||
@@ -902,11 +758,7 @@ textarea {
|
||||
}
|
||||
|
||||
.print-btn {
|
||||
<<<<<<< HEAD
|
||||
background-color: #4CAF50;
|
||||
=======
|
||||
background-color: #4caf50;
|
||||
>>>>>>> v1.3
|
||||
color: white;
|
||||
}
|
||||
|
||||
@@ -937,8 +789,4 @@ textarea {
|
||||
margin: 2cm;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
</style>
|
||||
=======
|
||||
</style>
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -1,14 +1,9 @@
|
||||
<template>
|
||||
<div class="medical-form">
|
||||
<<<<<<< HEAD
|
||||
<h2 style="text-align: center;">{{ userStore.hospitalName || '长春市朝阳区中医院' }} -入院记录</h2>
|
||||
|
||||
=======
|
||||
<h2 style="text-align: center">
|
||||
{{ userStore.hospitalName || '长春市朝阳区中医院' }} -入院记录
|
||||
</h2>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<!-- 滚动内容区域 -->
|
||||
<div class="form-scroll-container">
|
||||
<el-form
|
||||
@@ -23,23 +18,6 @@
|
||||
<h4 class="section-title">基础信息</h4>
|
||||
<div class="adaptive-grid form-section">
|
||||
<el-form-item label="姓名" prop="patientName" class="grid-item required">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.patientName"
|
||||
placeholder="请输入姓名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="住院号" prop="hospitalNo" class="grid-item required">
|
||||
<el-input
|
||||
v-model="formData.hospitalNo"
|
||||
placeholder="请输入住院号"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="性别" prop="gender" class="grid-item required">
|
||||
<el-select v-model="formData.gender" placeholder="请选择" style="width: 100%;">
|
||||
=======
|
||||
<el-input v-model="formData.patientName" placeholder="请输入姓名" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="住院号" prop="hospitalNo" class="grid-item required">
|
||||
@@ -47,43 +25,17 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="性别" prop="gender" class="grid-item required">
|
||||
<el-select v-model="formData.gender" placeholder="请选择" style="width: 100%">
|
||||
>>>>>>> v1.3
|
||||
<el-option label="男" value="男"></el-option>
|
||||
<el-option label="女" value="女"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="年龄" prop="age" class="grid-item required">
|
||||
<div class="input-with-unit">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model.number="formData.age"
|
||||
placeholder="请输入年龄"
|
||||
clearable
|
||||
/>
|
||||
=======
|
||||
<el-input v-model.number="formData.age" placeholder="请输入年龄" clearable />
|
||||
>>>>>>> v1.3
|
||||
<span class="unit">岁</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="民族" prop="nation" class="grid-item">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.nation"
|
||||
placeholder="请输入民族"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="职业" prop="occupation" class="grid-item">
|
||||
<el-input
|
||||
v-model="formData.occupation"
|
||||
placeholder="请输入职业"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="婚姻状况" prop="marriage" class="grid-item">
|
||||
<el-select v-model="formData.marriage" placeholder="请选择" clearable style="width: 100%;">
|
||||
=======
|
||||
<el-input v-model="formData.nation" placeholder="请输入民族" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="职业" prop="occupation" class="grid-item">
|
||||
@@ -96,48 +48,12 @@
|
||||
clearable
|
||||
style="width: 100%"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-option label="已婚" value="已婚"></el-option>
|
||||
<el-option label="未婚" value="未婚"></el-option>
|
||||
<el-option label="离异" value="离异"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="出生地" prop="birthplace" class="grid-item">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.birthplace"
|
||||
placeholder="请输入出生地"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="入院时间" prop="admissionTime" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.admissionTime"
|
||||
type="datetime"
|
||||
placeholder="选择入院时间"
|
||||
value-format="YYYY-MM-DD HH:mm"
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="记录时间" prop="recordTime" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.recordTime"
|
||||
type="datetime"
|
||||
placeholder="选择记录时间"
|
||||
value-format="YYYY-MM-DD HH:mm"
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="病史陈述者" prop="historyReporter" class="grid-item">
|
||||
<el-input
|
||||
v-model="formData.historyReporter"
|
||||
placeholder="请输入陈述者"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="可靠程度" prop="reliability" class="grid-item">
|
||||
<el-select v-model="formData.reliability" placeholder="请选择" style="width: 100%;">
|
||||
=======
|
||||
<el-input v-model="formData.birthplace" placeholder="请输入出生地" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="入院时间" prop="admissionTime" class="grid-item required">
|
||||
@@ -163,7 +79,6 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="可靠程度" prop="reliability" class="grid-item">
|
||||
<el-select v-model="formData.reliability" placeholder="请选择" style="width: 100%">
|
||||
>>>>>>> v1.3
|
||||
<el-option label="可靠" value="可靠"></el-option>
|
||||
<el-option label="基本可靠" value="基本可靠"></el-option>
|
||||
<el-option label="不可靠" value="不可靠"></el-option>
|
||||
@@ -175,137 +90,76 @@
|
||||
<h4 class="section-title">病史信息</h4>
|
||||
<div class="form-section">
|
||||
<el-form-item label="主诉" prop="complaint" class="history-item required">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.complaint"
|
||||
type="textarea"
|
||||
placeholder="请输入主诉"
|
||||
=======
|
||||
<el-input
|
||||
v-model="formData.complaint"
|
||||
type="textarea"
|
||||
placeholder="请输入主诉"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="200"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="现病史" prop="presentIllness" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.presentIllness"
|
||||
type="textarea"
|
||||
placeholder="请详细描述现病史"
|
||||
=======
|
||||
|
||||
<el-form-item label="现病史" prop="presentIllness" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.presentIllness"
|
||||
type="textarea"
|
||||
placeholder="请详细描述现病史"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="1000"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="既往史" prop="pastHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.pastHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入既往史"
|
||||
=======
|
||||
|
||||
<el-form-item label="既往史" prop="pastHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.pastHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入既往史"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="800"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="个人史" prop="personalHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.personalHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入个人史"
|
||||
=======
|
||||
|
||||
<el-form-item label="个人史" prop="personalHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.personalHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入个人史"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="婚育史" prop="maritalHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.maritalHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入婚育史"
|
||||
=======
|
||||
|
||||
<el-form-item label="婚育史" prop="maritalHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.maritalHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入婚育史"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="月经史" prop="menstrualHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.menstrualHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入月经史"
|
||||
=======
|
||||
|
||||
<el-form-item label="月经史" prop="menstrualHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.menstrualHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入月经史"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="家族史" prop="familyHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.familyHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入家族史"
|
||||
=======
|
||||
|
||||
<el-form-item label="家族史" prop="familyHistory" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.familyHistory"
|
||||
type="textarea"
|
||||
placeholder="请输入家族史"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
@@ -317,17 +171,10 @@
|
||||
<h4 class="section-title">中医望闻问切</h4>
|
||||
<div class="form-section">
|
||||
<el-form-item label="望闻问切" prop="tcmInfo" class="history-item">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.tcmInfo"
|
||||
type="textarea"
|
||||
placeholder="请输入中医望闻问切结果"
|
||||
=======
|
||||
<el-input
|
||||
v-model="formData.tcmInfo"
|
||||
type="textarea"
|
||||
placeholder="请输入中医望闻问切结果"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="600"
|
||||
show-word-limit
|
||||
@@ -341,33 +188,16 @@
|
||||
<div class="adaptive-grid">
|
||||
<el-form-item label="体温" prop="temp" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model.number="formData.temp"
|
||||
type="number"
|
||||
step="0.1"
|
||||
placeholder="如36.0"
|
||||
=======
|
||||
<el-input
|
||||
v-model.number="formData.temp"
|
||||
type="number"
|
||||
step="0.1"
|
||||
placeholder="如36.0"
|
||||
>>>>>>> v1.3
|
||||
clearable
|
||||
/>
|
||||
<span class="unit">℃</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="脉搏" prop="pulse" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model.number="formData.pulse"
|
||||
type="number"
|
||||
placeholder="如76"
|
||||
=======
|
||||
|
||||
<el-form-item label="脉搏" prop="pulse" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
@@ -375,21 +205,11 @@
|
||||
v-model.number="formData.pulse"
|
||||
type="number"
|
||||
placeholder="如76"
|
||||
>>>>>>> v1.3
|
||||
clearable
|
||||
/>
|
||||
<span class="unit">次/分</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="呼吸" prop="respiration" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model.number="formData.respiration"
|
||||
type="number"
|
||||
placeholder="如16"
|
||||
=======
|
||||
|
||||
<el-form-item label="呼吸" prop="respiration" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
@@ -397,42 +217,23 @@
|
||||
v-model.number="formData.respiration"
|
||||
type="number"
|
||||
placeholder="如16"
|
||||
>>>>>>> v1.3
|
||||
clearable
|
||||
/>
|
||||
<span class="unit">次/分</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="血压" prop="bp" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model="formData.bp"
|
||||
placeholder="如188/94"
|
||||
=======
|
||||
|
||||
<el-form-item label="血压" prop="bp" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model="formData.bp"
|
||||
placeholder="如188/94"
|
||||
>>>>>>> v1.3
|
||||
clearable
|
||||
@blur="validateBloodPressure"
|
||||
/>
|
||||
<span class="unit">mmHg</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="身高" prop="height" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model.number="formData.height"
|
||||
type="number"
|
||||
placeholder="如165"
|
||||
=======
|
||||
|
||||
<el-form-item label="身高" prop="height" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
@@ -440,21 +241,11 @@
|
||||
v-model.number="formData.height"
|
||||
type="number"
|
||||
placeholder="如165"
|
||||
>>>>>>> v1.3
|
||||
clearable
|
||||
/>
|
||||
<span class="unit">cm</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="体重" prop="weight" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model.number="formData.weight"
|
||||
type="number"
|
||||
placeholder="如79"
|
||||
=======
|
||||
|
||||
<el-form-item label="体重" prop="weight" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
@@ -462,124 +253,69 @@
|
||||
v-model.number="formData.weight"
|
||||
type="number"
|
||||
placeholder="如79"
|
||||
>>>>>>> v1.3
|
||||
clearable
|
||||
/>
|
||||
<span class="unit">kg</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="BMI" prop="bmi" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input
|
||||
v-model="formData.bmi"
|
||||
placeholder="如29.02"
|
||||
readonly
|
||||
/>
|
||||
=======
|
||||
|
||||
<el-form-item label="BMI" prop="bmi" class="grid-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.bmi" placeholder="如29.02" readonly />
|
||||
>>>>>>> v1.3
|
||||
<span class="unit">kg/m²</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<el-form-item label="一般情况" prop="general" class="history-item">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.general"
|
||||
type="textarea"
|
||||
placeholder="请输入一般情况"
|
||||
=======
|
||||
<el-input
|
||||
v-model="formData.general"
|
||||
type="textarea"
|
||||
placeholder="请输入一般情况"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="300"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="皮肤粘膜" prop="skin" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.skin"
|
||||
type="textarea"
|
||||
placeholder="请输入皮肤粘膜情况"
|
||||
=======
|
||||
|
||||
<el-form-item label="皮肤粘膜" prop="skin" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.skin"
|
||||
type="textarea"
|
||||
placeholder="请输入皮肤粘膜情况"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="300"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="胸部(心、肺)" prop="chest" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.chest"
|
||||
type="textarea"
|
||||
placeholder="请输入胸部检查结果"
|
||||
=======
|
||||
|
||||
<el-form-item label="胸部(心、肺)" prop="chest" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.chest"
|
||||
type="textarea"
|
||||
placeholder="请输入胸部检查结果"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="腹部" prop="abdomen" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.abdomen"
|
||||
type="textarea"
|
||||
placeholder="请输入腹部检查结果"
|
||||
=======
|
||||
|
||||
<el-form-item label="腹部" prop="abdomen" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.abdomen"
|
||||
type="textarea"
|
||||
placeholder="请输入腹部检查结果"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="四肢/神经系统" prop="limbsNervous" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.limbsNervous"
|
||||
type="textarea"
|
||||
placeholder="请输入四肢及神经系统检查结果"
|
||||
=======
|
||||
|
||||
<el-form-item label="四肢/神经系统" prop="limbsNervous" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.limbsNervous"
|
||||
type="textarea"
|
||||
placeholder="请输入四肢及神经系统检查结果"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
@@ -591,17 +327,10 @@
|
||||
<h4 class="section-title">辅助检查</h4>
|
||||
<div class="form-section">
|
||||
<el-form-item label="检查结果" prop="auxExam" class="history-item">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.auxExam"
|
||||
type="textarea"
|
||||
placeholder="请输入辅助检查结果"
|
||||
=======
|
||||
<el-input
|
||||
v-model="formData.auxExam"
|
||||
type="textarea"
|
||||
placeholder="请输入辅助检查结果"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="1000"
|
||||
show-word-limit
|
||||
@@ -613,37 +342,21 @@
|
||||
<h4 class="section-title">初步诊断</h4>
|
||||
<div class="form-section">
|
||||
<el-form-item label="中医诊断" prop="tcmDiagnosis" class="history-item">
|
||||
<<<<<<< HEAD
|
||||
<el-input
|
||||
v-model="formData.tcmDiagnosis"
|
||||
type="textarea"
|
||||
placeholder="如:胸痹心痛(气阴两虚证)"
|
||||
=======
|
||||
<el-input
|
||||
v-model="formData.tcmDiagnosis"
|
||||
type="textarea"
|
||||
placeholder="如:胸痹心痛(气阴两虚证)"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="西医诊断" prop="westernDiagnosis" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.westernDiagnosis"
|
||||
type="textarea"
|
||||
placeholder="如:1.冠状动脉粥样硬化性心脏病"
|
||||
=======
|
||||
|
||||
<el-form-item label="西医诊断" prop="westernDiagnosis" class="history-item">
|
||||
<el-input
|
||||
v-model="formData.westernDiagnosis"
|
||||
type="textarea"
|
||||
placeholder="如:1.冠状动脉粥样硬化性心脏病"
|
||||
>>>>>>> v1.3
|
||||
autosize
|
||||
maxlength="800"
|
||||
show-word-limit
|
||||
@@ -653,32 +366,6 @@
|
||||
|
||||
<!-- 7. 签名信息(三列布局) -->
|
||||
<h4 class="section-title">签名信息</h4>
|
||||
<<<<<<< HEAD
|
||||
<div class="adaptive-grid form-section" style="grid-template-columns: repeat(3, 1fr);">
|
||||
<el-form-item label="医师签名" prop="doctorSign" class="grid-item">
|
||||
<el-input
|
||||
v-model="formData.doctorSign"
|
||||
placeholder="请签名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="上级医师签名" prop="superiorSign" class="grid-item">
|
||||
<el-input
|
||||
v-model="formData.superiorSign"
|
||||
placeholder="请签名"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="记录日期" prop="signDate" class="grid-item">
|
||||
<el-date-picker
|
||||
v-model="formData.signDate"
|
||||
type="datetime"
|
||||
placeholder="选择日期"
|
||||
value-format="YYYY-MM-DD HH:mm"
|
||||
style="width: 100%;"
|
||||
=======
|
||||
<div class="adaptive-grid form-section" style="grid-template-columns: repeat(3, 1fr)">
|
||||
<el-form-item label="医师签名" prop="doctorSign" class="grid-item">
|
||||
<el-input v-model="formData.doctorSign" placeholder="请签名" clearable />
|
||||
@@ -695,7 +382,6 @@
|
||||
placeholder="选择日期"
|
||||
value-format="YYYY-MM-DD HH:mm"
|
||||
style="width: 100%"
|
||||
>>>>>>> v1.3
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
@@ -707,22 +393,11 @@
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
<admissionRecord v-if="isShowprintDom" ref="recordPrintRef"></admissionRecord>
|
||||
>>>>>>> v1.3
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, watch, onMounted } from 'vue';
|
||||
<<<<<<< HEAD
|
||||
import { ElInput, ElSelect, ElOption, ElDatePicker, ElButton, ElMessage, ElMessageBox, ElForm, ElFormItem } from 'element-plus';
|
||||
import useUserStore from '../store/modules/user';
|
||||
|
||||
defineOptions({
|
||||
name: 'InHospitalRecord',
|
||||
components: { ElInput, ElSelect, ElOption, ElDatePicker, ElButton, ElForm, ElFormItem }
|
||||
=======
|
||||
import { previewPrint } from '../utils/printUtils';
|
||||
import admissionRecord from '../views/hospitalRecord/components/admissionRecord.vue';
|
||||
import {
|
||||
@@ -742,7 +417,6 @@ const recordPrintRef = ref();
|
||||
defineOptions({
|
||||
name: 'InHospitalRecord',
|
||||
components: { ElInput, ElSelect, ElOption, ElDatePicker, ElButton, ElForm, ElFormItem },
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
|
||||
// Props与事件
|
||||
@@ -768,28 +442,6 @@ const formData = reactive({
|
||||
gender: patient?.genderEnum_enumText || '',
|
||||
age: patient?.age || '',
|
||||
nation: '',
|
||||
<<<<<<< HEAD
|
||||
occupation: '',// 职业
|
||||
marriage: '',// 婚姻状况
|
||||
birthplace: '',// 出生地
|
||||
admissionTime: '',// 入院时间
|
||||
recordTime: '',// 记录时间
|
||||
historyReporter: '',// 病史陈述者
|
||||
reliability: '可靠',// 可靠程度
|
||||
// 病史信息
|
||||
complaint: '',// 主诉
|
||||
presentIllness: '',// 现病史
|
||||
pastIllness: '',// 既往史
|
||||
personalHistory: '',// 个人史
|
||||
allergyHistory: '',// 过敏史
|
||||
pastHistory: '',// 既往史
|
||||
familyHistory: '',// 家族史
|
||||
maritalHistory: '',// 婚姻史
|
||||
menstrualHistory: '',// 月经史
|
||||
// 中医信息
|
||||
tcmInfo: '',
|
||||
|
||||
=======
|
||||
occupation: '', // 职业
|
||||
marriage: '', // 婚姻状况
|
||||
birthplace: '', // 出生地
|
||||
@@ -810,7 +462,6 @@ const formData = reactive({
|
||||
// 中医信息
|
||||
tcmInfo: '',
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 体格检查
|
||||
temp: '',
|
||||
pulse: '',
|
||||
@@ -824,20 +475,6 @@ const formData = reactive({
|
||||
chest: '',
|
||||
abdomen: '',
|
||||
limbsNervous: '',
|
||||
<<<<<<< HEAD
|
||||
|
||||
// 辅助检查
|
||||
auxExam: '',
|
||||
|
||||
// 诊断信息
|
||||
tcmDiagnosis: '',
|
||||
westernDiagnosis: '',
|
||||
|
||||
// 签名信息
|
||||
doctorSign: '',
|
||||
superiorSign: '',
|
||||
signDate: ''
|
||||
=======
|
||||
|
||||
// 辅助检查
|
||||
auxExam: '',
|
||||
@@ -850,35 +487,10 @@ const formData = reactive({
|
||||
doctorSign: '',
|
||||
superiorSign: '',
|
||||
signDate: '',
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
|
||||
// 表单校验规则
|
||||
const rules = reactive({
|
||||
<<<<<<< HEAD
|
||||
name: [
|
||||
{ required: true, message: '请填写姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
hospitalNo: [
|
||||
{ required: true, message: '请填写住院号', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
gender: [
|
||||
{ required: true, message: '请选择性别', trigger: ['change', 'submit'] }
|
||||
],
|
||||
age: [
|
||||
{ required: true, message: '请填写年龄', trigger: ['blur', 'submit'] },
|
||||
{ type: 'number', min: 1, max: 120, message: '年龄需在1-120岁之间', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
admissionTime: [
|
||||
{ required: true, message: '请选择入院时间', trigger: ['change', 'submit'] }
|
||||
],
|
||||
recordTime: [
|
||||
{ required: true, message: '请选择记录时间', trigger: ['change', 'submit'] }
|
||||
],
|
||||
chiefComplaint: [
|
||||
{ required: true, message: '请填写主诉', trigger: ['blur', 'submit'] }
|
||||
]
|
||||
=======
|
||||
name: [{ required: true, message: '请填写姓名', trigger: ['blur', 'submit'] }],
|
||||
hospitalNo: [{ required: true, message: '请填写住院号', trigger: ['blur', 'submit'] }],
|
||||
gender: [{ required: true, message: '请选择性别', trigger: ['change', 'submit'] }],
|
||||
@@ -895,7 +507,6 @@ const rules = reactive({
|
||||
admissionTime: [{ required: true, message: '请选择入院时间', trigger: ['change', 'submit'] }],
|
||||
recordTime: [{ required: true, message: '请选择记录时间', trigger: ['change', 'submit'] }],
|
||||
chiefComplaint: [{ required: true, message: '请填写主诉', trigger: ['blur', 'submit'] }],
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
|
||||
// 生命周期
|
||||
@@ -912,19 +523,11 @@ onMounted(() => {
|
||||
}
|
||||
if (!formData.patientName) {
|
||||
formData.patientName = patient?.patientName || '';
|
||||
<<<<<<< HEAD
|
||||
}
|
||||
if (!formData.gender) {
|
||||
formData.gender = patient?.genderEnum_enumText || '';
|
||||
}
|
||||
if (!formData.age) {
|
||||
=======
|
||||
}
|
||||
if (!formData.gender) {
|
||||
formData.gender = patient?.genderEnum_enumText || '';
|
||||
}
|
||||
if (!formData.age) {
|
||||
>>>>>>> v1.3
|
||||
formData.age = patient?.age || '';
|
||||
}
|
||||
if (!formData.hospitalNo) {
|
||||
@@ -943,23 +546,6 @@ watch([() => formData.height, () => formData.weight], ([newHeight, newWeight]) =
|
||||
});
|
||||
|
||||
// 入院时间变化处理
|
||||
<<<<<<< HEAD
|
||||
watch(() => formData.admissionTime, (val) => {
|
||||
if (val && !formData.recordTime) {
|
||||
ElMessageBox.confirm(
|
||||
'是否将记录时间同步为入院时间?',
|
||||
'时间同步提示',
|
||||
{
|
||||
confirmButtonText: '同步',
|
||||
cancelButtonText: '手动设置',
|
||||
type: 'info'
|
||||
}
|
||||
).then(() => {
|
||||
formData.recordTime = val;
|
||||
}).catch(() => {});
|
||||
}
|
||||
});
|
||||
=======
|
||||
watch(
|
||||
() => formData.admissionTime,
|
||||
(val) => {
|
||||
@@ -976,7 +562,6 @@ watch(
|
||||
}
|
||||
}
|
||||
);
|
||||
>>>>>>> v1.3
|
||||
|
||||
// 血压格式校验
|
||||
const validateBloodPressure = () => {
|
||||
@@ -998,11 +583,6 @@ const submit = () => {
|
||||
validateBloodPressure();
|
||||
if (!formData.bp) return; // 格式错误时终止提交
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
emits('submitOk', formData);
|
||||
ElMessage.success('记录保存成功!');
|
||||
}
|
||||
@@ -1011,37 +591,6 @@ const submit = () => {
|
||||
|
||||
// 新增:重置表单方法(带确认提示)
|
||||
const handleReset = () => {
|
||||
<<<<<<< HEAD
|
||||
ElMessageBox.confirm(
|
||||
'确定要重置表单吗?所有已填写内容将被清空,且不可恢复',
|
||||
'重置确认',
|
||||
{
|
||||
confirmButtonText: '确认重置',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
center: true
|
||||
}
|
||||
).then(() => {
|
||||
// 执行表单重置
|
||||
formRef.value.resetFields();
|
||||
// 保留患者基础信息和默认值(避免清空关键基础数据)
|
||||
formData.patientName = patient?.name || '';
|
||||
formData.hospitalNo = patient?.busNo || '';
|
||||
formData.gender = patient?.genderEnum_enumText || '';
|
||||
formData.age = patient?.age || '';
|
||||
formData.reliability = '可靠';
|
||||
// 重置时间为当前时间
|
||||
const today = new Date();
|
||||
formData.admissionTime = formatDateTime(today);
|
||||
formData.recordTime = formatDateTime(today);
|
||||
formData.signDate = formatDateTime(today);
|
||||
// 重置成功提示
|
||||
ElMessage.success('表单已成功重置');
|
||||
}).catch(() => {
|
||||
// 取消重置提示
|
||||
ElMessage.info('已取消表单重置');
|
||||
});
|
||||
=======
|
||||
ElMessageBox.confirm('确定要重置表单吗?所有已填写内容将被清空,且不可恢复', '重置确认', {
|
||||
confirmButtonText: '确认重置',
|
||||
cancelButtonText: '取消',
|
||||
@@ -1069,7 +618,6 @@ const handleReset = () => {
|
||||
// 取消重置提示
|
||||
ElMessage.info('已取消表单重置');
|
||||
});
|
||||
>>>>>>> v1.3
|
||||
};
|
||||
|
||||
// 表单数据赋值
|
||||
@@ -1089,10 +637,6 @@ const formatDateTime = (date) => {
|
||||
return `${year}-${month}-${day} ${hour}:${minute}`;
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 暴露接口
|
||||
defineExpose({ formData, submit, setFormData, handleReset });
|
||||
=======
|
||||
// 打印方法
|
||||
const printFun = () => {
|
||||
console.log('入院记录打印');
|
||||
@@ -1108,7 +652,6 @@ const printFun = () => {
|
||||
|
||||
// 暴露接口
|
||||
defineExpose({ formData, submit, setFormData, handleReset, printFun });
|
||||
>>>>>>> v1.3
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@@ -1116,12 +659,7 @@ defineExpose({ formData, submit, setFormData, handleReset, printFun });
|
||||
.medical-form {
|
||||
max-width: 1200px;
|
||||
width: 100%;
|
||||
<<<<<<< HEAD
|
||||
height: 700px;
|
||||
margin: 15px auto;
|
||||
=======
|
||||
height: 28000px;
|
||||
>>>>>>> v1.3
|
||||
padding: 15px;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 8px;
|
||||
@@ -1257,12 +795,8 @@ defineExpose({ formData, submit, setFormData, handleReset, printFun });
|
||||
.adaptive-grid {
|
||||
grid-template-columns: 1fr; /* 小屏幕下单列显示 */
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
.grid-item, .history-item {
|
||||
=======
|
||||
.grid-item,
|
||||
.history-item {
|
||||
>>>>>>> v1.3
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
/* 小屏幕按钮居中 */
|
||||
@@ -1277,8 +811,4 @@ defineExpose({ formData, submit, setFormData, handleReset, printFun });
|
||||
grid-template-columns: repeat(2, 1fr); /* 中等屏幕下两列显示 */
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
</style>
|
||||
=======
|
||||
</style>
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -14,11 +14,7 @@
|
||||
label-width="120px"
|
||||
label-align="left"
|
||||
class="doc-content"
|
||||
<<<<<<< HEAD
|
||||
style="height: 60vh; overflow: scroll;"
|
||||
=======
|
||||
style="height: 60vh; overflow: scroll"
|
||||
>>>>>>> v1.3
|
||||
>
|
||||
<!-- 患者与手术基础信息 -->
|
||||
<section class="doc-section">
|
||||
@@ -27,35 +23,12 @@
|
||||
<el-form-item label="患者姓名" prop="patientName" class="grid-item required">
|
||||
<el-input v-model="formData.patientName" placeholder="请输入患者姓名" clearable />
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="性别" prop="gender" class="grid-item required">
|
||||
<el-select v-model="formData.gender" placeholder="请选择性别">
|
||||
<el-option label="男" value="男" />
|
||||
<el-option label="女" value="女" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="年龄" prop="age" class="grid-item required">
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model.number="formData.age" type="number" placeholder="请输入年龄" />
|
||||
<span class="unit">岁</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="科室" prop="department" class="grid-item required">
|
||||
<el-input v-model="formData.department" placeholder="如:普外科" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="病房/床号" prop="bedNo" class="grid-item required">
|
||||
<el-input v-model="formData.bedNo" placeholder="如:502-03" clearable />
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
|
||||
<el-form-item label="年龄" prop="age" class="grid-item required">
|
||||
<div class="input-with-unit">
|
||||
@@ -72,7 +45,6 @@
|
||||
<el-input v-model="formData.bedNo" placeholder="如:502-03" clearable />
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="手术日期/时间" prop="operationDateTime" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.operationDateTime"
|
||||
@@ -91,25 +63,6 @@
|
||||
<el-form-item label="手术者" prop="surgeon" class="grid-item required">
|
||||
<el-input v-model="formData.surgeon" placeholder="主刀医师姓名" clearable />
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="第一助手" prop="firstAssistant" class="grid-item required">
|
||||
<el-input v-model="formData.firstAssistant" placeholder="第一助手姓名" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="第二助手" prop="secondAssistant" class="grid-item">
|
||||
<el-input v-model="formData.secondAssistant" placeholder="第二助手姓名" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="麻醉医师" prop="anesthesiologist" class="grid-item required">
|
||||
<el-input v-model="formData.anesthesiologist" placeholder="麻醉医师姓名" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="巡回护士" prop="circulatingNurse" class="grid-item required">
|
||||
<el-input v-model="formData.circulatingNurse" placeholder="巡回护士姓名" clearable />
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
|
||||
<el-form-item label="第一助手" prop="firstAssistant" class="grid-item required">
|
||||
<el-input v-model="formData.firstAssistant" placeholder="第一助手姓名" clearable />
|
||||
@@ -127,7 +80,6 @@
|
||||
<el-input v-model="formData.circulatingNurse" placeholder="巡回护士姓名" clearable />
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="器械护士" prop="scrubNurse" class="grid-item required">
|
||||
<el-input v-model="formData.scrubNurse" placeholder="器械护士姓名" clearable />
|
||||
</el-form-item>
|
||||
@@ -137,13 +89,6 @@
|
||||
<!-- 手术详情 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">三、手术详情</h2>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="手术名称" prop="operationName" class="full-width-item required">
|
||||
<el-input v-model="formData.operationName" placeholder="规范手术名称(如:腹腔镜下胆囊切除术)" clearable />
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
|
||||
<el-form-item label="手术名称" prop="operationName" class="full-width-item required">
|
||||
<el-input
|
||||
@@ -153,7 +98,6 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="手术方式" prop="operationMethod" class="full-width-item required">
|
||||
<el-select v-model="formData.operationMethod" placeholder="选择手术方式">
|
||||
<el-option label="开放手术" value="开放手术" />
|
||||
@@ -161,14 +105,6 @@
|
||||
<el-option label="介入手术" value="介入手术" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="手术入路" prop="surgicalApproach" class="full-width-item required">
|
||||
<el-input v-model="formData.surgicalApproach" placeholder="如:右上腹经腹直肌切口" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="术中发现" prop="intraoperativeFindings" class="full-width-item required">
|
||||
=======
|
||||
|
||||
<el-form-item label="手术入路" prop="surgicalApproach" class="full-width-item required">
|
||||
<el-input
|
||||
@@ -183,7 +119,6 @@
|
||||
prop="intraoperativeFindings"
|
||||
class="full-width-item required"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-input
|
||||
v-model="formData.intraoperativeFindings"
|
||||
type="textarea"
|
||||
@@ -193,11 +128,6 @@
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="手术过程" prop="operationProcess" class="full-width-item required">
|
||||
<el-input
|
||||
v-model="formData.operationProcess"
|
||||
@@ -216,13 +146,6 @@
|
||||
<div class="adaptive-grid">
|
||||
<el-form-item label="术中出血量" prop="bloodLoss" class="grid-item required">
|
||||
<div class="input-with-unit">
|
||||
<<<<<<< HEAD
|
||||
<el-input v-model.number="formData.bloodLoss" type="number" placeholder="请输入出血量" />
|
||||
<span class="unit">ml</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
<el-input
|
||||
v-model.number="formData.bloodLoss"
|
||||
type="number"
|
||||
@@ -232,24 +155,12 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="输血情况" prop="bloodTransfusion" class="grid-item">
|
||||
<el-select v-model="formData.bloodTransfusion" placeholder="是否输血">
|
||||
<el-option label="是" value="是" />
|
||||
<el-option label="否" value="否" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="引流管放置" prop="drainageTube" class="grid-item">
|
||||
<el-input v-model="formData.drainageTube" placeholder="如:腹腔引流管1根" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="标本处理" prop="specimenDisposal" class="grid-item required">
|
||||
<el-input v-model="formData.specimenDisposal" placeholder="如:胆囊标本送病理检查" clearable />
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
|
||||
<el-form-item label="引流管放置" prop="drainageTube" class="grid-item">
|
||||
<el-input v-model="formData.drainageTube" placeholder="如:腹腔引流管1根" clearable />
|
||||
@@ -263,7 +174,6 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="手术结束时间" prop="operationEndTime" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.operationEndTime"
|
||||
@@ -272,11 +182,6 @@
|
||||
value-format="YYYY-MM-DD HH:mm"
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="患者去向" prop="patientDestination" class="grid-item required">
|
||||
<el-select v-model="formData.patientDestination" placeholder="选择去向">
|
||||
<el-option label="ICU" value="ICU" />
|
||||
@@ -289,43 +194,25 @@
|
||||
<!-- 签署区域 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">五、签署确认</h2>
|
||||
<<<<<<< HEAD
|
||||
<div class="adaptive-grid signature-area" style="grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));">
|
||||
=======
|
||||
<div
|
||||
class="adaptive-grid signature-area"
|
||||
style="grid-template-columns: repeat(auto-fit, minmax(240px, 1fr))"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="手术者签名" prop="surgeonSignature" class="grid-item required">
|
||||
<el-input v-model="formData.surgeonSignature" placeholder="主刀医师签字" clearable />
|
||||
<div class="signature-tip">请手术者亲笔签名</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="记录者签名" prop="recorderSignature" class="grid-item required">
|
||||
<el-input v-model="formData.recorderSignature" placeholder="记录者签字" clearable />
|
||||
<div class="signature-tip">请记录者(如第一助手)签字</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="记录日期" prop="recordDate" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.recordDate"
|
||||
type="date"
|
||||
placeholder="选择记录日期"
|
||||
value-format="YYYY-MM-DD"
|
||||
<<<<<<< HEAD
|
||||
style="width: 100%;"
|
||||
=======
|
||||
style="width: 100%"
|
||||
>>>>>>> v1.3
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
@@ -339,22 +226,11 @@
|
||||
<el-button type="warning" @click="handleReset">重置表单</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
<intOperRecordSheet v-if="isShowprintDom" ref="recordPrintRef"></intOperRecordSheet>
|
||||
>>>>>>> v1.3
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted } from 'vue';
|
||||
<<<<<<< HEAD
|
||||
import { ElMessage, ElMessageBox, ElForm, ElFormItem, ElInput, ElSelect, ElOption, ElDatePicker, ElButton } from 'element-plus';
|
||||
|
||||
// 医院名称
|
||||
const hospitalName = '长春市朝阳区中医院';
|
||||
defineOptions({
|
||||
name: 'iInHospitalSurgicalRecord'
|
||||
=======
|
||||
import intOperRecordSheet from '../views/hospitalRecord/components/intOperRecordSheet.vue';
|
||||
import {
|
||||
ElMessage,
|
||||
@@ -374,7 +250,6 @@ const recordPrintRef = ref();
|
||||
const hospitalName = '长春市朝阳区中医院';
|
||||
defineOptions({
|
||||
name: 'iInHospitalSurgicalRecord',
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
// 表单引用
|
||||
const formRef = ref(null);
|
||||
@@ -388,115 +263,6 @@ const formData = reactive({
|
||||
age: '',
|
||||
department: '',
|
||||
bedNo: '',
|
||||
<<<<<<< HEAD
|
||||
operationDateTime: '',// 手术日期时间
|
||||
|
||||
// 手术团队信息
|
||||
surgeon: '',// 主刀医师
|
||||
firstAssistant: '',// 第一助手
|
||||
secondAssistant: '',// 第二助手
|
||||
anesthesiologist: '',// 麻醉医师
|
||||
circulatingNurse: '',// 巡回护士
|
||||
scrubNurse: '',// 器械护士
|
||||
|
||||
// 手术详情
|
||||
operationName: '',// 规范手术名称
|
||||
operationMethod: '',// 手术方式
|
||||
surgicalApproach: '',// 手术入路
|
||||
intraoperativeFindings: '',// 术中发现
|
||||
operationProcess: '',// 手术过程
|
||||
|
||||
// 术后情况
|
||||
bloodLoss: '',// 术中出血量
|
||||
bloodTransfusion: '',// 输血情况
|
||||
drainageTube: '',// 引流管放置
|
||||
specimenDisposal: '',// 标本处理
|
||||
operationEndTime: '',// 手术结束时间
|
||||
patientDestination: '',// 患者去向
|
||||
|
||||
// 签署信息
|
||||
surgeonSignature: '',// 手术者签名
|
||||
recorderSignature: '',// 记录者签名
|
||||
recordDate: ''// 记录日期
|
||||
});
|
||||
|
||||
// 表单验证规则
|
||||
const rules = reactive({
|
||||
busNo: [
|
||||
{ required: true, message: '请填写住院号', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
patientName: [
|
||||
{ required: true, message: '请填写患者姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
gender: [
|
||||
{ required: true, message: '请选择性别', trigger: ['change', 'submit'] }
|
||||
],
|
||||
age: [
|
||||
{ required: true, message: '请填写年龄', trigger: ['blur', 'submit'] },
|
||||
{ type: 'number', min: 0, max: 150, message: '年龄需在0-150之间', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
department: [
|
||||
{ required: true, message: '请填写科室', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
bedNo: [
|
||||
{ required: true, message: '请填写病房/床号', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
operationDateTime: [
|
||||
{ required: true, message: '请选择手术日期时间', trigger: ['change', 'submit'] }
|
||||
],
|
||||
surgeon: [
|
||||
{ required: true, message: '请填写手术者姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
firstAssistant: [
|
||||
{ required: true, message: '请填写第一助手姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
anesthesiologist: [
|
||||
{ required: true, message: '请填写麻醉医师姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
circulatingNurse: [
|
||||
{ required: true, message: '请填写巡回护士姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
scrubNurse: [
|
||||
{ required: true, message: '请填写器械护士姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
operationName: [
|
||||
{ required: true, message: '请填写手术名称', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
operationMethod: [
|
||||
{ required: true, message: '请选择手术方式', trigger: ['change', 'submit'] }
|
||||
],
|
||||
surgicalApproach: [
|
||||
{ required: true, message: '请填写手术入路', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
intraoperativeFindings: [
|
||||
{ required: true, message: '请描述术中发现', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
operationProcess: [
|
||||
{ required: true, message: '请描述手术过程', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
bloodLoss: [
|
||||
{ required: true, message: '请填写术中出血量', trigger: ['blur', 'submit'] },
|
||||
{ type: 'number', min: 0, message: '出血量不能为负数', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
specimenDisposal: [
|
||||
{ required: true, message: '请填写标本处理方式', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
operationEndTime: [
|
||||
{ required: true, message: '请选择手术结束时间', trigger: ['change', 'submit'] }
|
||||
],
|
||||
patientDestination: [
|
||||
{ required: true, message: '请选择患者去向', trigger: ['change', 'submit'] }
|
||||
],
|
||||
surgeonSignature: [
|
||||
{ required: true, message: '请手术者签名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
recorderSignature: [
|
||||
{ required: true, message: '请记录者签名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
recordDate: [
|
||||
{ required: true, message: '请选择记录日期', trigger: ['change', 'submit'] }
|
||||
]
|
||||
=======
|
||||
operationDateTime: '', // 手术日期时间
|
||||
|
||||
// 手术团队信息
|
||||
@@ -584,7 +350,6 @@ const rules = reactive({
|
||||
surgeonSignature: [{ required: true, message: '请手术者签名', trigger: ['blur', 'submit'] }],
|
||||
recorderSignature: [{ required: true, message: '请记录者签名', trigger: ['blur', 'submit'] }],
|
||||
recordDate: [{ required: true, message: '请选择记录日期', trigger: ['change', 'submit'] }],
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
|
||||
// 生命周期
|
||||
@@ -594,10 +359,6 @@ onMounted(() => {
|
||||
formData.operationDateTime = formatDateTime(today);
|
||||
formData.operationEndTime = formatDateTime(today);
|
||||
formData.recordDate = formatDate(today);
|
||||
<<<<<<< HEAD
|
||||
});
|
||||
|
||||
=======
|
||||
if (!formData.patientName) {
|
||||
formData.patientName = patient?.patientName || '';
|
||||
}
|
||||
@@ -620,23 +381,17 @@ onMounted(() => {
|
||||
|
||||
const emits = defineEmits(['submitOk']);
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 提交表单
|
||||
const submit = () => {
|
||||
formRef.value.validate((valid) => {
|
||||
if (valid) {
|
||||
ElMessage.success('手术记录保存成功');
|
||||
console.log('手术记录数据:', formData);
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
emits('submitOk', formData);
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
// 表单数据赋值
|
||||
const setFormData = (data) => {
|
||||
if (data) {
|
||||
@@ -647,7 +402,6 @@ const setFormData = (data) => {
|
||||
}
|
||||
};
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 打印功能
|
||||
const handlePrint = () => {
|
||||
formRef.value.validate((valid) => {
|
||||
@@ -661,23 +415,11 @@ const handlePrint = () => {
|
||||
|
||||
// 重置表单
|
||||
const handleReset = () => {
|
||||
<<<<<<< HEAD
|
||||
ElMessageBox.confirm(
|
||||
'确定要重置表单吗?所有已填写内容将被清空',
|
||||
'确认重置',
|
||||
{
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}
|
||||
).then(() => {
|
||||
=======
|
||||
ElMessageBox.confirm('确定要重置表单吗?所有已填写内容将被清空', '确认重置', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
}).then(() => {
|
||||
>>>>>>> v1.3
|
||||
formRef.value.resetFields();
|
||||
const today = new Date();
|
||||
formData.operationDateTime = formatDateTime(today);
|
||||
@@ -703,14 +445,6 @@ const formatDateTime = (date) => {
|
||||
const minute = String(date.getMinutes()).padStart(2, '0');
|
||||
return `${year}-${month}-${day} ${hour}:${minute}`;
|
||||
};
|
||||
<<<<<<< HEAD
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 样式与原代码保持一致,无需修改 */
|
||||
.medical-document {
|
||||
max-width: 1200px;
|
||||
=======
|
||||
const printFun = () => {
|
||||
console.log('入院记录打印');
|
||||
isShowprintDom.value = true;
|
||||
@@ -730,16 +464,12 @@ defineExpose({ submit, setFormData, printFun });
|
||||
.medical-document {
|
||||
max-width: 1440px; /* PC端最优宽度,兼顾大屏和常规屏 */
|
||||
width: 98%; /* 占满父容器98%,保留少量边距 */
|
||||
>>>>>>> v1.3
|
||||
margin: 20px auto;
|
||||
padding: 30px;
|
||||
background: #fff;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
||||
font-family: 'SimSun', '宋体', serif;
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
box-sizing: border-box; /* 确保内边距不撑大容器 */
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
.doc-header {
|
||||
@@ -778,13 +508,6 @@ defineExpose({ submit, setFormData, printFun });
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
.adaptive-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
||||
gap: 15px 20px;
|
||||
margin-bottom: 15px;
|
||||
=======
|
||||
/* 自适应网格:PC端优先展示多列,优化列宽比例 */
|
||||
.adaptive-grid {
|
||||
display: grid;
|
||||
@@ -793,7 +516,6 @@ defineExpose({ submit, setFormData, printFun });
|
||||
gap: 15px 20px;
|
||||
margin-bottom: 15px;
|
||||
width: 100%;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
.grid-item {
|
||||
@@ -847,21 +569,6 @@ defineExpose({ submit, setFormData, printFun });
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
@media (max-width: 768px) {
|
||||
.medical-document {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.adaptive-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.doc-title {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
=======
|
||||
/* 仅针对小屏设备做基础适配,优先保证PC端体验 */
|
||||
@media (max-width: 768px) {
|
||||
.medical-document {
|
||||
@@ -877,14 +584,11 @@ defineExpose({ submit, setFormData, printFun });
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
>>>>>>> v1.3
|
||||
.section-title {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
/* 超宽屏(≥1920px)优化:适度增大间距,提升视觉体验 */
|
||||
@media (min-width: 1920px) {
|
||||
.medical-document {
|
||||
@@ -897,47 +601,26 @@ defineExpose({ submit, setFormData, printFun });
|
||||
}
|
||||
|
||||
/* 打印样式保留 */
|
||||
>>>>>>> v1.3
|
||||
@media print {
|
||||
.btn-group {
|
||||
display: none;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
.medical-document {
|
||||
box-shadow: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
<<<<<<< HEAD
|
||||
}
|
||||
|
||||
.el-input__inner, .el-select__input, .el-textarea__inner {
|
||||
=======
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.el-input__inner,
|
||||
.el-select__input,
|
||||
.el-textarea__inner {
|
||||
>>>>>>> v1.3
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
background: transparent !important;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
.el-form-item__label {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
</style>
|
||||
=======
|
||||
</style>
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -22,35 +22,12 @@
|
||||
<el-form-item label="姓名" prop="patientName" class="grid-item required">
|
||||
<el-input v-model="formData.patientName" placeholder="请输入患者姓名" clearable />
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="性别" prop="gender" class="grid-item required">
|
||||
<el-select v-model="formData.gender" placeholder="请选择性别">
|
||||
<el-option label="男" value="男" />
|
||||
<el-option label="女" value="女" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="年龄" prop="age" class="grid-item required">
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model.number="formData.age" type="number" placeholder="请输入年龄" />
|
||||
<span class="unit">岁</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="科室/病区" prop="department" class="grid-item required">
|
||||
<el-input v-model="formData.department" placeholder="如:内科疗区" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="病房/床号" prop="bedNo" class="grid-item required">
|
||||
<el-input v-model="formData.bedNo" placeholder="如:307-12" clearable />
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
|
||||
<el-form-item label="年龄" prop="age" class="grid-item required">
|
||||
<div class="input-with-unit">
|
||||
@@ -67,7 +44,6 @@
|
||||
<el-input v-model="formData.bedNo" placeholder="如:307-12" clearable />
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="入院日期" prop="admissionDate" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.admissionDate"
|
||||
@@ -86,19 +62,11 @@
|
||||
<el-form-item label="经治医师" prop="treatingDoctor" class="grid-item required">
|
||||
<el-input v-model="formData.treatingDoctor" placeholder="请输入医师姓名" clearable />
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="主治医师" prop="attendingDoctor" class="grid-item required">
|
||||
<el-input v-model="formData.attendingDoctor" placeholder="请输入医师姓名" clearable />
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
|
||||
<el-form-item label="主治医师" prop="attendingDoctor" class="grid-item required">
|
||||
<el-input v-model="formData.attendingDoctor" placeholder="请输入医师姓名" clearable />
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="科主任" prop="departmentHead" class="grid-item required">
|
||||
<el-input v-model="formData.departmentHead" placeholder="请输入主任姓名" clearable />
|
||||
</el-form-item>
|
||||
@@ -108,11 +76,6 @@
|
||||
<!-- 病情与诊断 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">三、病情与诊断</h2>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="病情状况" prop="condition" class="full-width-item required">
|
||||
<el-input
|
||||
v-model="formData.condition"
|
||||
@@ -123,11 +86,6 @@
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<div class="diagnosis-container">
|
||||
<el-form-item label="中医诊断" prop="tcmDiagnosis" class="diagnosis-item">
|
||||
<el-input
|
||||
@@ -139,11 +97,6 @@
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="西医诊断" prop="westernDiagnosis" class="diagnosis-item">
|
||||
<el-input
|
||||
v-model="formData.westernDiagnosis"
|
||||
@@ -160,11 +113,6 @@
|
||||
<!-- 治疗与检查计划 -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">四、治疗与检查计划</h2>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="治疗方案" prop="treatmentPlan" class="full-width-item required">
|
||||
<el-input
|
||||
v-model="formData.treatmentPlan"
|
||||
@@ -175,17 +123,12 @@
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="进一步检查项目" prop="examinationItems" class="full-width-item required">
|
||||
=======
|
||||
|
||||
<el-form-item
|
||||
label="进一步检查项目"
|
||||
prop="examinationItems"
|
||||
class="full-width-item required"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-input
|
||||
v-model="formData.examinationItems"
|
||||
type="textarea"
|
||||
@@ -215,25 +158,14 @@
|
||||
<!-- 签署区域(优化后:三列自适应+细节样式) -->
|
||||
<section class="doc-section">
|
||||
<h2 class="section-title">六、签署确认</h2>
|
||||
<<<<<<< HEAD
|
||||
<div class="adaptive-grid signature-area" style="grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));">
|
||||
=======
|
||||
<div
|
||||
class="adaptive-grid signature-area"
|
||||
style="grid-template-columns: repeat(auto-fit, minmax(240px, 1fr))"
|
||||
>
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="患者或家属签字" prop="patientSignature" class="grid-item required">
|
||||
<el-input v-model="formData.patientSignature" placeholder="请签字" clearable />
|
||||
<div class="signature-tip">请填写患者或家属签字</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<el-form-item label="与患者关系" prop="relationship" class="grid-item">
|
||||
<el-input v-model="formData.relationship" placeholder="如:本人、配偶、子女" clearable />
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
|
||||
<el-form-item label="与患者关系" prop="relationship" class="grid-item">
|
||||
<el-input
|
||||
@@ -243,44 +175,27 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="签字日期" prop="signatureDate" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.signatureDate"
|
||||
type="date"
|
||||
placeholder="选择签字日期"
|
||||
value-format="YYYY-MM-DD"
|
||||
<<<<<<< HEAD
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
=======
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="沟通医师签字" prop="doctorSignature" class="grid-item required">
|
||||
<el-input v-model="formData.doctorSignature" placeholder="请签字" clearable />
|
||||
<div class="signature-tip">请填写沟通医师签字</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="沟通日期" prop="communicationDate" class="grid-item required">
|
||||
<el-date-picker
|
||||
v-model="formData.communicationDate"
|
||||
type="datetime"
|
||||
placeholder="选择沟通日期时间"
|
||||
value-format="YYYY-MM-DD HH:mm"
|
||||
<<<<<<< HEAD
|
||||
style="width: 100%;"
|
||||
=======
|
||||
style="width: 100%"
|
||||
>>>>>>> v1.3
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
@@ -298,9 +213,6 @@
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted } from 'vue';
|
||||
<<<<<<< HEAD
|
||||
import { ElMessage, ElMessageBox, ElForm, ElFormItem, ElInput, ElSelect, ElOption, ElDatePicker, ElButton } from 'element-plus';
|
||||
=======
|
||||
import {
|
||||
ElMessage,
|
||||
ElMessageBox,
|
||||
@@ -312,15 +224,10 @@ import {
|
||||
ElDatePicker,
|
||||
ElButton,
|
||||
} from 'element-plus';
|
||||
>>>>>>> v1.3
|
||||
|
||||
// 医院名称
|
||||
const hospitalName = '长春市朝阳区中医院';
|
||||
defineOptions({
|
||||
<<<<<<< HEAD
|
||||
name: 'InHospitalCommunicate'
|
||||
});
|
||||
=======
|
||||
name: 'InHospitalCommunicate',
|
||||
});
|
||||
// Props与事件
|
||||
@@ -353,7 +260,6 @@ onMounted(() => {
|
||||
});
|
||||
const patient = props.patientInfo;
|
||||
console.log('patient1111=======>', JSON.stringify(patient));
|
||||
>>>>>>> v1.3
|
||||
// 表单引用
|
||||
const formRef = ref(null);
|
||||
|
||||
@@ -367,34 +273,14 @@ const formData = reactive({
|
||||
department: '',
|
||||
bedNo: '',
|
||||
admissionDate: '',
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 医疗团队
|
||||
treatingDoctor: '',
|
||||
attendingDoctor: '',
|
||||
departmentHead: '',
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 病情诊断
|
||||
condition: '',
|
||||
tcmDiagnosis: '',
|
||||
westernDiagnosis: '',
|
||||
<<<<<<< HEAD
|
||||
|
||||
// 治疗检查
|
||||
treatmentPlan: '',
|
||||
examinationItems: '',
|
||||
|
||||
// 风险告知
|
||||
riskNotification: '',
|
||||
|
||||
=======
|
||||
|
||||
// 治疗检查
|
||||
treatmentPlan: '',
|
||||
@@ -403,78 +289,16 @@ const formData = reactive({
|
||||
// 风险告知
|
||||
riskNotification: '',
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 签署信息
|
||||
patientSignature: '',
|
||||
relationship: '',
|
||||
signatureDate: '',
|
||||
doctorSignature: '',
|
||||
<<<<<<< HEAD
|
||||
communicationDate: ''
|
||||
=======
|
||||
communicationDate: '',
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
|
||||
// 表单验证规则
|
||||
const rules = reactive({
|
||||
<<<<<<< HEAD
|
||||
hospitalNo: [
|
||||
{ required: true, message: '请填写住院号', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
patientName: [
|
||||
{ required: true, message: '请填写患者姓名', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
gender: [
|
||||
{ required: true, message: '请选择性别', trigger: ['change', 'submit'] }
|
||||
],
|
||||
age: [
|
||||
{ required: true, message: '请填写年龄', trigger: ['blur', 'submit'] },
|
||||
{ type: 'number', min: 0, max: 150, message: '年龄需在0-150之间', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
department: [
|
||||
{ required: true, message: '请填写科室/病区', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
bedNo: [
|
||||
{ required: true, message: '请填写病房/床号', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
admissionDate: [
|
||||
{ required: true, message: '请选择入院日期', trigger: ['change', 'submit'] }
|
||||
],
|
||||
treatingDoctor: [
|
||||
{ required: true, message: '请填写经治医师', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
attendingDoctor: [
|
||||
{ required: true, message: '请填写主治医师', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
departmentHead: [
|
||||
{ required: true, message: '请填写科主任', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
condition: [
|
||||
{ required: true, message: '请描述病情状况', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
treatmentPlan: [
|
||||
{ required: true, message: '请填写治疗方案', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
examinationItems: [
|
||||
{ required: true, message: '请填写检查项目', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
riskNotification: [
|
||||
{ required: true, message: '请填写风险告知内容', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
patientSignature: [
|
||||
{ required: true, message: '请填写患者或家属签字', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
signatureDate: [
|
||||
{ required: true, message: '请选择签字日期', trigger: ['change', 'submit'] }
|
||||
],
|
||||
doctorSignature: [
|
||||
{ required: true, message: '请填写医师签字', trigger: ['blur', 'submit'] }
|
||||
],
|
||||
communicationDate: [
|
||||
{ required: true, message: '请选择沟通日期', trigger: ['change', 'submit'] }
|
||||
]
|
||||
=======
|
||||
hospitalNo: [{ required: true, message: '请填写住院号', trigger: ['blur', 'submit'] }],
|
||||
patientName: [{ required: true, message: '请填写患者姓名', trigger: ['blur', 'submit'] }],
|
||||
gender: [{ required: true, message: '请选择性别', trigger: ['change', 'submit'] }],
|
||||
@@ -500,7 +324,6 @@ const rules = reactive({
|
||||
signatureDate: [{ required: true, message: '请选择签字日期', trigger: ['change', 'submit'] }],
|
||||
doctorSignature: [{ required: true, message: '请填写医师签字', trigger: ['blur', 'submit'] }],
|
||||
communicationDate: [{ required: true, message: '请选择沟通日期', trigger: ['change', 'submit'] }],
|
||||
>>>>>>> v1.3
|
||||
});
|
||||
|
||||
// 生命周期
|
||||
@@ -512,27 +335,19 @@ onMounted(() => {
|
||||
formData.communicationDate = formatDateTime(today);
|
||||
});
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
const emits = defineEmits(['submitOk']);
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 提交表单
|
||||
const submit = () => {
|
||||
formRef.value.validate((valid) => {
|
||||
if (valid) {
|
||||
ElMessage.success('记录保存成功');
|
||||
console.log('表单数据:', formData);
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
emits('submitOk', formData);
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
// 表单数据赋值
|
||||
const setFormData = (data) => {
|
||||
if (data) {
|
||||
@@ -540,7 +355,6 @@ const setFormData = (data) => {
|
||||
}
|
||||
};
|
||||
|
||||
>>>>>>> v1.3
|
||||
// 打印功能
|
||||
const handlePrint = () => {
|
||||
formRef.value.validate((valid) => {
|
||||
@@ -554,23 +368,11 @@ const handlePrint = () => {
|
||||
|
||||
// 重置表单
|
||||
const handleReset = () => {
|
||||
<<<<<<< HEAD
|
||||
ElMessageBox.confirm(
|
||||
'确定要重置表单吗?所有已填写内容将被清空',
|
||||
'确认重置',
|
||||
{
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}
|
||||
).then(() => {
|
||||
=======
|
||||
ElMessageBox.confirm('确定要重置表单吗?所有已填写内容将被清空', '确认重置', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
}).then(() => {
|
||||
>>>>>>> v1.3
|
||||
formRef.value.resetFields();
|
||||
const today = new Date();
|
||||
formData.admissionDate = formatDate(today);
|
||||
@@ -596,11 +398,8 @@ const formatDateTime = (date) => {
|
||||
const minute = String(date.getMinutes()).padStart(2, '0');
|
||||
return `${year}-${month}-${day} ${hour}:${minute}`;
|
||||
};
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
defineExpose({ submit, setFormData });
|
||||
>>>>>>> v1.3
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
@@ -732,21 +531,6 @@ defineExpose({ submit, setFormData });
|
||||
.medical-document {
|
||||
padding: 15px;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
.diagnosis-container {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.adaptive-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.doc-title {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
=======
|
||||
|
||||
.diagnosis-container {
|
||||
grid-template-columns: 1fr;
|
||||
@@ -760,7 +544,6 @@ defineExpose({ submit, setFormData });
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
>>>>>>> v1.3
|
||||
.section-title {
|
||||
font-size: 16px;
|
||||
}
|
||||
@@ -771,40 +554,21 @@ defineExpose({ submit, setFormData });
|
||||
.btn-group {
|
||||
display: none;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
.medical-document {
|
||||
box-shadow: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
.el-input__inner, .el-select__input, .el-textarea__inner {
|
||||
=======
|
||||
|
||||
.el-input__inner,
|
||||
.el-select__input,
|
||||
.el-textarea__inner {
|
||||
>>>>>>> v1.3
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
background: transparent !important;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
|
||||
>>>>>>> v1.3
|
||||
.el-form-item__label {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
</style>
|
||||
=======
|
||||
</style>
|
||||
>>>>>>> v1.3
|
||||
|
||||
@@ -1,29 +1,15 @@
|
||||
<template>
|
||||
<<<<<<< HEAD
|
||||
<!-- 门诊病历表单主容器 -->
|
||||
<div class="medical-form">
|
||||
<!-- 患者基本信息展示区域 -->
|
||||
=======
|
||||
<div class="medical-form">
|
||||
>>>>>>> v1.3
|
||||
<div class="patient-name">
|
||||
患者姓名:{{ patient?.patientName || '未知' }} 病历号:{{
|
||||
patient?.busNo || '未知'
|
||||
}}
|
||||
</div>
|
||||
<<<<<<< HEAD
|
||||
<!-- 医院名称和标题 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<h2 style="text-align: center">{{ userStore.hospitalName }}</h2>
|
||||
<h2 style="text-align: center">门诊病历</h2>
|
||||
|
||||
<!-- 滚动内容区域 -->
|
||||
<div class="form-scroll-container">
|
||||
<<<<<<< HEAD
|
||||
<!-- Element Plus表单组件 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:model="formData"
|
||||
@@ -32,58 +18,34 @@
|
||||
label-align="left"
|
||||
class="medical-full-form"
|
||||
>
|
||||
<<<<<<< HEAD
|
||||
<!-- 基础信息区域标题 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<h4 class="section-title">基础信息</h4>
|
||||
<!-- 1. 基础信息:单行自适应排列 -->
|
||||
<el-form-item class="form-section">
|
||||
<div class="single-row-layout">
|
||||
<<<<<<< HEAD
|
||||
<!-- 身高输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="身高" prop="height" class="row-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.height" type="text" placeholder="请输入" />
|
||||
<span class="unit">cm</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 体重输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="体重" prop="weight" class="row-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.weight" type="text" placeholder="请输入" />
|
||||
<span class="unit">kg</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 体温输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="体温" prop="temperature" class="row-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.temperature" type="text" placeholder="请输入" />
|
||||
<span class="unit">℃</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 脉搏输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="脉搏" prop="pulse" class="row-item">
|
||||
<div class="input-with-unit">
|
||||
<el-input v-model="formData.pulse" type="text" placeholder="请输入" />
|
||||
<span class="unit">次/分</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 发病日期选择项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="发病日期" prop="onsetDate" class="row-item">
|
||||
<el-date-picker
|
||||
v-model="formData.onsetDate"
|
||||
@@ -96,19 +58,10 @@
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<!-- 病史信息区域标题 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<h4 class="section-title">病史信息</h4>
|
||||
<!-- 2. 病史信息:单行自适应排列(新增调整) -->
|
||||
<el-form-item class="form-section">
|
||||
<div class="single-row-layout">
|
||||
<<<<<<< HEAD
|
||||
<!-- 现病史输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="现病史" prop="presentIllness" class="row-item history-item">
|
||||
<el-input
|
||||
v-model="formData.presentIllness"
|
||||
@@ -117,17 +70,9 @@
|
||||
autosize
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 既往史输入项 -->
|
||||
<el-form-item label="既往史" prop="pastIllness" class="row-item history-item">
|
||||
<el-input v-model="formData.pastIllness" type="textarea" placeholder="无" autosize />
|
||||
</el-form-item>
|
||||
<!-- 个人史输入项 -->
|
||||
=======
|
||||
<el-form-item label="既往史" prop="pastIllness" class="row-item history-item">
|
||||
<el-input v-model="formData.pastIllness" type="textarea" placeholder="无" autosize />
|
||||
</el-form-item>
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="个人史" prop="personalHistory" class="row-item history-item">
|
||||
<el-input
|
||||
v-model="formData.personalHistory"
|
||||
@@ -136,10 +81,6 @@
|
||||
autosize
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 过敏史输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="过敏史" prop="allergyHistory" class="row-item history-item">
|
||||
<el-input
|
||||
v-model="formData.allergyHistory"
|
||||
@@ -148,10 +89,6 @@
|
||||
autosize
|
||||
/>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
<!-- 家族史输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="家族史" prop="familyHistory" class="row-item history-item">
|
||||
<el-input
|
||||
v-model="formData.familyHistory"
|
||||
@@ -162,11 +99,6 @@
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<<<<<<< HEAD
|
||||
|
||||
<!-- 主诉、查体(治疗)、处置、辅助检查区域标题 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<h4 class="section-title">主诉、查体(治疗)、处置、辅助检查</h4>
|
||||
<!-- 3. 主诉(必填) -->
|
||||
<el-form-item label="主诉" prop="complaint" class="required form-item-single">
|
||||
@@ -179,10 +111,6 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 4. 查体、处理、辅助检查 -->
|
||||
<<<<<<< HEAD
|
||||
<!-- 查体(治疗)输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="查体(治疗)" prop="physicalExam" class="form-item-single">
|
||||
<el-input
|
||||
v-model="formData.physicalExam"
|
||||
@@ -193,10 +121,6 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 处置输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="处置" prop="treatment" class="form-item-single">
|
||||
<el-input
|
||||
v-model="formData.treatment"
|
||||
@@ -207,10 +131,6 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<<<<<<< HEAD
|
||||
<!-- 辅助检查输入项 -->
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
<el-form-item label="辅助检查" prop="auxiliaryExam" class="form-item-single">
|
||||
<el-input
|
||||
v-model="formData.auxiliaryExam"
|
||||
@@ -226,62 +146,24 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
<<<<<<< HEAD
|
||||
// 导入Vue相关功能和组件
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
import { reactive, ref, onBeforeMount, onMounted, watch } from 'vue';
|
||||
import useUserStore from '../store/modules/user';
|
||||
import { ElInput, ElMessage, ElForm, ElFormItem } from 'element-plus';
|
||||
import { patientInfo } from '../views/doctorstation/components/store/patient';
|
||||
import { pa } from 'element-plus/es/locales.mjs';
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 定义组件选项
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
defineOptions({
|
||||
name: 'OutpatientMedicalRecord',
|
||||
components: { ElInput, ElMessage, ElForm, ElFormItem },
|
||||
});
|
||||
|
||||
<<<<<<< HEAD
|
||||
// // Props与事件,去掉props.patientInfo改为直接从store获取
|
||||
=======
|
||||
// // Props与事件, 去掉props.patientInfo改为直接从store获取
|
||||
>>>>>>> v1.3
|
||||
// const props = defineProps({
|
||||
// patientInfo: {
|
||||
// type: Object,
|
||||
// required: true,
|
||||
// },
|
||||
// });
|
||||
<<<<<<< HEAD
|
||||
|
||||
// 定义组件接收的属性(目前为空)
|
||||
const props = defineProps({});
|
||||
|
||||
// 定义组件触发的事件
|
||||
const emits = defineEmits(['submitOk']);
|
||||
|
||||
// 数据初始化
|
||||
// 获取用户store实例,用于获取医院名称等全局信息
|
||||
const userStore = useUserStore();
|
||||
// 患者信息引用,存储当前就诊患者的基本信息
|
||||
const patient = ref(null);
|
||||
// 表单引用,用于访问表单实例进行验证等操作
|
||||
const formRef = ref(null);
|
||||
|
||||
// 表单数据(全部字符类型)
|
||||
// 存储门诊病历表单的所有字段数据
|
||||
const formData = reactive({
|
||||
height: '', // 身高(cm)
|
||||
weight: '', // 体重(kg)
|
||||
temperature: '', // 体温(℃)
|
||||
pulse: '', // 脉搏(次/分)
|
||||
onsetDate: '', // 发病日期
|
||||
complaint: '', // 主诉(必填项)
|
||||
=======
|
||||
const props = defineProps({});
|
||||
const emits = defineEmits(['submitOk']);
|
||||
|
||||
@@ -298,28 +180,17 @@ const formData = reactive({
|
||||
pulse: '', // 脉搏
|
||||
onsetDate: '', // 发病日期
|
||||
complaint: '', // 主诉(必填)
|
||||
>>>>>>> v1.3
|
||||
presentIllness: '', // 现病史
|
||||
pastIllness: '', // 既往史
|
||||
personalHistory: '', // 个人史
|
||||
allergyHistory: '', // 过敏史
|
||||
<<<<<<< HEAD
|
||||
physicalExam: '', // 查体结果
|
||||
treatment: '', // 处理方案
|
||||
auxiliaryExam: '', // 辅助检查结果
|
||||
=======
|
||||
physicalExam: '', // 查体
|
||||
treatment: '', // 处理
|
||||
auxiliaryExam: '', // 辅助检查
|
||||
>>>>>>> v1.3
|
||||
familyHistory: '', // 家族史
|
||||
});
|
||||
|
||||
// 表单校验规则
|
||||
<<<<<<< HEAD
|
||||
// 定义表单字段的验证规则,目前仅主诉为必填项
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
const rules = reactive({
|
||||
complaint: [
|
||||
{
|
||||
@@ -331,23 +202,6 @@ const rules = reactive({
|
||||
});
|
||||
|
||||
// 提交函数
|
||||
<<<<<<< HEAD
|
||||
// 用于触发表单验证并提交数据到父组件
|
||||
const submit = () => {
|
||||
// 表单验证
|
||||
formRef.value.validate((isValid) => {
|
||||
if (isValid) {
|
||||
// 触发submitOk事件,传递表单数据
|
||||
emits('submitOk', formData);
|
||||
// 显示成功消息
|
||||
ElMessage.success('提交成功');
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 日期格式化工具函数
|
||||
// 将Date对象格式化为 YYYY-MM-DD HH:mm 格式的字符串
|
||||
=======
|
||||
const submit = () => {
|
||||
formRef.value.validate((isValid) => {
|
||||
if (isValid) {
|
||||
@@ -356,7 +210,6 @@ const submit = () => {
|
||||
});
|
||||
};
|
||||
// 日期格式化工具
|
||||
>>>>>>> v1.3
|
||||
const formatDateTime = (date) => {
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||
@@ -365,36 +218,17 @@ const formatDateTime = (date) => {
|
||||
const minute = String(date.getMinutes()).padStart(2, '0');
|
||||
return `${year}-${month}-${day} ${hour}:${minute}`;
|
||||
};
|
||||
<<<<<<< HEAD
|
||||
|
||||
// 表单数据赋值函数
|
||||
// 用于外部组件向表单填充已有数据
|
||||
const setFormData = (data) => {
|
||||
if (data) {
|
||||
// 将传入的数据合并到表单数据中
|
||||
=======
|
||||
// 表单数据赋值
|
||||
const setFormData = (data) => {
|
||||
if (data) {
|
||||
>>>>>>> v1.3
|
||||
Object.assign(formData, data);
|
||||
}
|
||||
};
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 生命周期钩子 - 组件挂载前
|
||||
onBeforeMount(() => {});
|
||||
|
||||
// 生命周期钩子 - 组件挂载后
|
||||
onMounted(() => {
|
||||
console.log('当前患者信息:', patientInfo);
|
||||
// 从store获取患者信息
|
||||
=======
|
||||
// 生命周期
|
||||
onBeforeMount(() => {});
|
||||
onMounted(() => {
|
||||
console.log('当前患者信息:', patientInfo);
|
||||
>>>>>>> v1.3
|
||||
patient.value = patientInfo.value;
|
||||
// 初始化发病日期为当前时间
|
||||
if (!formData.onsetDate) {
|
||||
@@ -403,10 +237,6 @@ onMounted(() => {
|
||||
});
|
||||
|
||||
// 监听患者信息变化,实现联动显示
|
||||
<<<<<<< HEAD
|
||||
// 当patientInfo发生变化时更新本地patient引用
|
||||
=======
|
||||
>>>>>>> v1.3
|
||||
watch(
|
||||
() => patientInfo.value,
|
||||
(newPatientInfo) => {
|
||||
@@ -415,12 +245,7 @@ watch(
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
<<<<<<< HEAD
|
||||
// 暴露接口供父组件调用
|
||||
// 将formData、submit方法和setFormData方法暴露给父组件使用
|
||||
=======
|
||||
// 暴露接口
|
||||
>>>>>>> v1.3
|
||||
defineExpose({ formData, submit, setFormData });
|
||||
</script>
|
||||
|
||||
@@ -430,23 +255,15 @@ defineExpose({ formData, submit, setFormData });
|
||||
max-width: 1200px;
|
||||
width: 100%;
|
||||
min-height: 800px;
|
||||
<<<<<<< HEAD
|
||||
height: 900px;
|
||||
=======
|
||||
height: auto;
|
||||
>>>>>>> v1.3
|
||||
margin: 15px auto;
|
||||
padding: 15px;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 8px;
|
||||
font-family: Arial, sans-serif;
|
||||
box-sizing: border-box;
|
||||
<<<<<<< HEAD
|
||||
overflow: visible;
|
||||
=======
|
||||
overflow: hidden; /* 防止内部内容溢出 */
|
||||
position: relative;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
/* 顶部姓名样式 */
|
||||
@@ -461,19 +278,12 @@ defineExpose({ formData, submit, setFormData });
|
||||
/* 滚动内容容器 */
|
||||
.form-scroll-container {
|
||||
width: 100%;
|
||||
<<<<<<< HEAD
|
||||
max-height: 80vh;
|
||||
=======
|
||||
max-height: 55vh;
|
||||
>>>>>>> v1.3
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: #ccc #f5f5f5;
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
position: relative;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
.form-scroll-container::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
@@ -489,11 +299,8 @@ defineExpose({ formData, submit, setFormData });
|
||||
/* 完整表单容器 */
|
||||
.medical-full-form {
|
||||
width: 100%;
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
min-width: 0; /* 防止内容强制拉伸容器 */
|
||||
box-sizing: border-box;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
|
||||
/* 区域通用样式 */
|
||||
@@ -515,11 +322,8 @@ defineExpose({ formData, submit, setFormData });
|
||||
flex-wrap: wrap; /* 自动换行 */
|
||||
align-items: flex-start; /* 顶部对齐,适配文本域高度 */
|
||||
gap: 15px; /* 统一元素间距 */
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
.row-item {
|
||||
margin-bottom: 0; /* 取消底部间距,避免换行重叠 */
|
||||
@@ -590,17 +394,11 @@ defineExpose({ formData, submit, setFormData });
|
||||
.medical-form {
|
||||
height: 80vh;
|
||||
padding: 10px;
|
||||
<<<<<<< HEAD
|
||||
}
|
||||
.form-scroll-container {
|
||||
height: calc(100% - 35px);
|
||||
=======
|
||||
overflow: hidden;
|
||||
}
|
||||
.form-scroll-container {
|
||||
height: calc(100% - 35px);
|
||||
max-height: none;
|
||||
>>>>>>> v1.3
|
||||
}
|
||||
.el-form {
|
||||
label-width: 70px !important;
|
||||
@@ -619,8 +417,4 @@ defineExpose({ formData, submit, setFormData });
|
||||
--el-input-textarea-min-height: 80px;
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
</style>
|
||||
=======
|
||||
</style>
|
||||
>>>>>>> v1.3
|
||||
|
||||
Reference in New Issue
Block a user