From c7a65630bf97706554c68c269403d672bde52ca9 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期六, 18 一月 2025 14:57:26 +0800
Subject: [PATCH] 完成随访记录
---
src/views/home/components/suifangjilu/index.vue | 948 +++++++-------------------
src/views/home/index.vue | 24
src/views/home/components/suifangjilu/editDietary.vue | 435 ++++++++++++
src/views/home/components/suifangjilu/index备份.vue | 717 +++++++++++++++++++
4 files changed, 1,427 insertions(+), 697 deletions(-)
diff --git a/src/views/home/components/suifangjilu/editDietary.vue b/src/views/home/components/suifangjilu/editDietary.vue
new file mode 100644
index 0000000..6965d63
--- /dev/null
+++ b/src/views/home/components/suifangjilu/editDietary.vue
@@ -0,0 +1,435 @@
+<template>
+ <div class="dietarySurvey-item">
+ <el-dialog v-model="state.dialogTableVisible" title="随访记录表" :fullscreen="true" width="100%">
+ <div class="container" style="width: 100%; height: 100%;overflow: auto;">
+ <div id="printFrom1">
+ <div>
+ <el-form size="small">
+ <div style="width: 100%">
+ <table id="tabledome" class="gridtable">
+
+ <tr>
+ <th colspan="2">
+ <el-form-item label="初次调查日期">
+ <el-date-picker v-model="state.tableData.初次调查日期" type="date" style="width: 100px;"
+ placeholder="" readonly format="YYYY/MM/DD" value-format="YYYY-MM-DD" />
+ </el-form-item>
+
+ </th>
+ <th colspan="2">
+ <el-form-item label="更新日期">
+ <el-date-picker v-model="state.tableData.更新日期" type="date" style="width: 100px;"
+ placeholder="" readonly format="YYYY/MM/DD" value-format="YYYY-MM-DD" />
+ </el-form-item>
+ </th>
+ <th colspan="2">
+ <el-form-item label="记录者">
+ <el-input readonly v-model="state.tableData.记录者" placeholder="" />
+ </el-form-item>
+
+ </th>
+
+ </tr>
+ <tr>
+ <td colspan="3">
+ <el-form-item label="干体重">
+ <el-input readonly v-model="state.tableData.干体重" placeholder="" />
+ </el-form-item>
+ </td>
+ <td colspan="3">
+ <el-form-item label="脱水量">
+ <el-input readonly v-model="state.tableData.脱水量" placeholder="" />
+ </el-form-item>
+ </td>
+ </tr>
+ <tr>
+ <td style="background-color: antiquewhite;">
+ 指导建议
+ </td>
+ <td style="background-color: antiquewhite;" colspan="5">
+ <el-form-item>
+ <el-input v-model="state.tableData.指导建议" type="textarea"
+ :autosize="{ minRows: 1, maxRows: 6 }" placeholder="指导建议" />
+ </el-form-item>
+ </td>
+
+ </tr>
+ <tr>
+ <td style="background-color: antiquewhite;">
+ 执行反馈
+ </td>
+ <td colspan="5" style="background-color: antiquewhite;">
+ <el-form-item>
+ <el-input v-model="state.tableData.执行反馈" type="textarea"
+ :autosize="{ minRows: 1, maxRows: 6 }" placeholder="执行反馈" />
+ </el-form-item>
+ </td>
+
+ </tr>
+ <tr>
+ <td>
+ 随眠近况
+ </td>
+ <td colspan="5">
+ <el-form-item>
+ <el-input v-model="state.tableData.随眠近况" type="textarea"
+ :autosize="{ minRows: 1, maxRows: 6 }" placeholder="随眠近况" />
+ </el-form-item>
+ </td>
+
+ </tr>
+ <tr>
+ <td>
+ 运动近况
+ </td>
+ <td colspan="5">
+ <el-form-item>
+ <el-input v-model="state.tableData.运动近况" type="textarea"
+ :autosize="{ minRows: 1, maxRows: 6 }" placeholder="运动近况" />
+ </el-form-item>
+ </td>
+
+ </tr>
+ <tr>
+ <td>
+ 排便近况
+ </td>
+ <td colspan="5">
+ <el-form-item>
+ <el-input v-model="state.tableData.排便近况" type="textarea"
+ :autosize="{ minRows: 1, maxRows: 6 }" placeholder="排便近况" />
+ </el-form-item>
+ </td>
+
+ </tr>
+ <tr>
+ <td>
+ 食欲近况
+ </td>
+ <td colspan="5">
+ <el-form-item>
+ <el-input v-model="state.tableData.食欲近况" type="textarea"
+ :autosize="{ minRows: 1, maxRows: 6 }" placeholder="食欲近况" />
+ </el-form-item>
+ </td>
+
+ </tr>
+ <tr>
+ <td>
+ 皮肤瘙痒
+ </td>
+ <td colspan="5">
+ <el-form-item>
+ <el-input v-model="state.tableData.皮肤瘙痒" type="textarea"
+ :autosize="{ minRows: 1, maxRows: 6 }" placeholder="皮肤瘙痒" />
+ </el-form-item>
+ </td>
+
+ </tr>
+ <tr>
+ <td>
+ 心肺功能
+ </td>
+ <td colspan="5">
+ <el-form-item>
+ <el-input v-model="state.tableData.心肺功能" type="textarea"
+ :autosize="{ minRows: 1, maxRows: 6 }" placeholder="心肺功能" />
+ </el-form-item>
+ </td>
+
+ </tr>
+ <tr>
+ <td>
+ 用药情况
+ </td>
+ <td colspan="5">
+ <el-form-item>
+ <el-input v-model="state.tableData.用药情况" type="textarea"
+ :autosize="{ minRows: 1, maxRows: 6 }" placeholder="用药情况" />
+ </el-form-item>
+ </td>
+
+ </tr>
+ <tr>
+ <td>
+ 其他(烟酒、过敏,发热)
+ </td>
+ <td colspan="5">
+ <el-form-item>
+ <el-input v-model="state.tableData.其他" type="textarea"
+ :autosize="{ minRows: 2, maxRows: 6 }" placeholder="其他" />
+ </el-form-item>
+ </td>
+
+ </tr>
+ </table>
+ </div>
+ </el-form>
+ </div>
+
+ </div>
+ </div>
+ <template #footer>
+ <div class="dialog-footer" style="text-align: center">
+ <el-button @click="funhui">取消</el-button>
+ <el-button type="primary" @click="onSubmit">
+ 保存
+ </el-button>
+ <el-button v-if="state.viewInfo.id" type="primary" v-print="'#printFrom1'">
+ <el-icon><Printer /></el-icon>
+ 打印
+ </el-button>
+ <el-button type="primary" v-if="state.viewInfo.id" @click="generatePDF">
+ <el-icon><Position /></el-icon>
+ 导出
+ </el-button>
+
+ </div>
+ </template>
+ </el-dialog>
+
+
+ </div>
+
+</template>
+
+<script setup lang="ts" name="visualizingLinkDemo2">
+import html2pdf from 'html2pdf.js';
+import { reactive, onMounted, onUnmounted, ref } from 'vue';
+import { formatDate } from '/@/utils/formatTime';
+import { NextLoading } from '/@/utils/loading';
+import { useUserInfo } from '/@/stores/userInfo';
+import { usePatientsInfo } from '/@/stores/patientsInfo';
+import { getPatData} from '/@/api/Patients';
+const storesPat = usePatientsInfo();
+import {Add,update,deleteId,tiaochabiaoInfo} from '/@/api/tiaochabiao/index'
+import { storeToRefs } from 'pinia';
+import { useRoute,useRouter } from 'vue-router';
+import { ElMessage } from 'element-plus';
+const stores = useUserInfo();
+const { patientsInfo } = storeToRefs(storesPat);
+const { userInfos } = storeToRefs(stores);
+const router = useRouter()
+const emit = defineEmits([ "shuaxin" ]);
+const state = reactive({
+ patientData:{干体重:0,脱水量:0},
+ dialogTableVisible:false,
+ tableData: {
+ 表名: '随访记录表',
+ 初次调查日期:"",
+ 填表日期: '',
+ 更新日期: '',
+ 记录者: '陈银成',
+ 干体重:0,
+ 脱水量:0,
+ 指导建议:'',
+ 执行反馈:'',
+ 随眠近况:'',
+ 运动近况:'',
+ 排便近况:'',
+ 食欲近况:'',
+ 皮肤瘙痒:'',
+ 心肺功能:'',
+ 用药情况:'',
+ 其他:''
+ },
+ loading: false,
+ viewInfo:{
+ id: 0,
+ code: '',
+ clientCode: userInfos.value.clientCode,
+ patientCode: patientsInfo.value.code,
+ surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
+ surveryPerson: userInfos.value.code,
+ surveryJsonBody: '',
+ suveryFormName:'随访记录表',
+ surveryFormType:0,
+ updateTime: ''
+ }
+
+})
+
+const funhui=()=>{
+ state.dialogTableVisible=false
+}
+// 打印
+const onPrint=()=>{
+
+}
+const generatePDF=()=> {
+ const element = document.getElementById('printFrom1');
+ const opt = {
+ margin: 10,
+ filename: `${state.tableData.表名}.pdf`,
+ image: { type: 'jpeg', quality: 0.98 },
+ html2canvas: { scale: 2 },
+ jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }
+ };
+ html2pdf().set(opt).from(element).save();
+
+}
+const onSubmit = () => {
+ console.log('submit!')
+ console.log(state.tableData)
+ const info:tiaochabiaoInfo={
+ id: state.viewInfo.id,
+ surveryFormType:0,
+ code: state.viewInfo.code,
+ clientCode: userInfos.value.clientCode,
+ patientCode: patientsInfo.value.code,
+ surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
+ surveryPerson: userInfos.value.code,
+ surveryJsonBody: JSON.stringify(state.tableData),
+ suveryFormName:'随访记录表',
+ updateTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS')
+ }
+ console.log(info)
+ if(info.id===0){
+ Add(info).then(re=>{
+ console.log(re.data)
+ state.dialogTableVisible=false
+ emit('shuaxin')
+ })
+ }else if(info.id>0){
+ info.surveryTime=state.viewInfo.surveryTime
+ update(info).then(re=>{
+ console.log(re.data)
+ state.dialogTableVisible=false
+ emit('shuaxin')
+ })
+ }
+
+}
+const getPageInfo=()=>{
+ state.tableData={
+ 表名: '随访记录表',
+ 初次调查日期: formatDate(new Date(),'YYYY-mm-dd'),
+ 填表日期: '',
+ 更新日期: formatDate(new Date(),'YYYY-mm-dd'),
+ 记录者: userInfos.value.userName,
+ 干体重:state.patientData?.干体重,
+ 脱水量:state.patientData?.脱水量,
+ 指导建议:'',
+ 执行反馈:'',
+ 随眠近况:'',
+ 运动近况:'',
+ 排便近况:'',
+ 食欲近况:'',
+ 皮肤瘙痒:'',
+ 心肺功能:'',
+ 用药情况:'',
+ 其他:''
+ }
+ state.viewInfo={
+ id: 0,
+ code: '',
+ clientCode: userInfos.value.clientCode,
+ patientCode: patientsInfo.value.code,
+ surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
+ surveryPerson: userInfos.value.code,
+ surveryJsonBody: '',
+ suveryFormName:'随访记录表',
+ surveryFormType:0,
+ updateTime: ''
+ }
+}
+onMounted(()=>{
+
+})
+
+// 第一步:定义子组件里面的方法
+const getData = (str: string) => {
+ console.log("子组件获取显示数据!" + str);
+ state.loading = true
+
+}
+// 打开查看或者编辑明细
+const openShow = async (type: string,mode:tiaochabiaoInfo) => {
+ console.log(type)
+ var pam = {
+ patCode: patientsInfo.value.code,
+ }
+ const res= await getPatData(pam)
+ state.patientData = res.data
+ if(type==='add'){
+ getPageInfo()
+ state.dialogTableVisible = true
+ }
+ else if(type==='update'){
+ console.log(mode)
+ state.viewInfo=mode
+ state.tableData=JSON.parse(mode.surveryJsonBody)
+ state.tableData.初次调查日期=mode.surveryTime
+ state.tableData.更新日期=mode.updateTime
+ state.dialogTableVisible = true
+
+
+ }
+
+}
+
+// 第二步:暴露方法
+defineExpose({ getData, openShow })
+</script>
+
+
+<style scoped lang="scss">
+
+.gridtable {
+ font-family: verdana, arial, sans-serif;
+ font-size: 11px;
+ color: #333333;
+ border-width: 1px;
+ border-color: #666666;
+ border-collapse: collapse;
+
+}
+
+.gridtable th {
+ border-width: 1px;
+ padding: 8px;
+ border-style: solid;
+ border-color: #666666;
+ background-color: #a4b0e2;
+}
+
+.gridtable td {
+ border-width: 1px;
+ padding: 8px;
+ border-style: solid;
+ border-color: #666666;
+ background-color: #ffffff;
+}
+input {
+ /* 去除所有边框 */
+ border: none;
+ text-align: center;
+ font-size: 12px;
+
+ /* 设置下边框 */
+ border-bottom: 1px solid #000; /* 您可以根据需要调整颜色和宽度 */
+
+ /* 可选:设置背景透明 */
+ background-color: transparent;
+
+ /* 移除内边距和外边距 */
+ padding: 5px 0; /* 根据需要调整上下内边距,确保文本与线条之间有足够的空间 */
+ margin: 0;
+
+ /* 移除默认轮廓 */
+ outline: none;
+
+ /* 移除浏览器默认样式 */
+ appearance: none;
+ -webkit-appearance: none;
+}
+
+/* 可选:为聚焦状态添加自定义样式 */
+input:focus {
+ /* 当输入框获得焦点时,改变下边框的颜色或增加一些视觉提示 */
+ border-bottom-color: #007BFF; /* 聚焦时的下边框颜色 */
+
+ /* 可选:添加轻微的阴影效果来突出显示 */
+ box-shadow: 0 1px 0 0 #007BFF; /* 在下边框下方添加一条颜色相同的阴影 */
+}
+</style>
diff --git a/src/views/home/components/suifangjilu/index.vue b/src/views/home/components/suifangjilu/index.vue
index 0585588..7eba002 100644
--- a/src/views/home/components/suifangjilu/index.vue
+++ b/src/views/home/components/suifangjilu/index.vue
@@ -1,717 +1,297 @@
<template>
- <div>
- <el-row>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
- <div class="tableDiv">
- <el-scrollbar :height="(tableHeight-130)+'px'">
- <table v-if="tableHeight > 0" >
- <tr>
- <th colspan="7" style="text-align: left">营养服务管理记录</th>
- </tr>
- <tr>
- <td :rowspan="2+state.patientData.透析方案.length">基本信息</td>
- <td>患者姓名</td>
- <td>{{ patientsInfo.patientName }}</td>
- <td>性别</td>
- <td>{{ patientsInfo.patientGenderText }}</td>
- <td>年龄</td>
- <td><span v-if="patientsInfo.age">{{ patientsInfo.age }} 岁</span></td>
- </tr>
- <tr>
-
-
- <td>身高</td>
- <td>{{ state.patientData.身高 }} <span v-if="state.patientData.身高">(cm)</span></td>
- <td>病史</td>
- <td>{{ state.patientData.诊断 }}</td>
- <td>透龄</td>
- <td>
- <span v-if="patientsInfo.medHistoryStatByMonth">{{
- patientsInfo.medHistoryStatByMonth }}
- (月)</span>
- </td>
- </tr>
- <template v-for="(row,index) in state.patientData.透析方案" :key="index">
- <tr v-if="index===0">
- <td :rowspan="state.patientData.透析方案.length*1">透析方案</td>
- <td>
- {{state.patientData.透析方案[index]?.透析方案}}
- </td>
- <td>频次</td>
- <td>
- {{state.patientData.透析方案[index]?.透析频率}}
- </td>
- <td>时长</td>
- <td>
- {{state.patientData.透析方案[index]?.透析时长}}
- </td>
- </tr>
- <tr v-else>
- <td>
- {{state.patientData.透析方案[index]?.透析方案}}
- </td>
- <td>频次</td>
- <td>
- {{state.patientData.透析方案[index]?.透析频率}}
- </td>
- <td>时长</td>
- <td>
- {{state.patientData.透析方案[index]?.透析时长}}
- </td>
- </tr>
- </template>
- <tr>
- <td rowspan="2">其他</td>
- <td>口腔功能</td>
- <td></td>
- <td>手机使用度</td>
- <td></td>
- <td>营养服务类别</td>
- <td></td>
- </tr>
- <tr>
- <td>知识接受度</td>
- <td></td>
- <td>临床依从性</td>
- <td></td>
- <td>营养服务认可度</td>
- <td></td>
- </tr>
- <tr>
- <th>项目</th>
- <!-- <td>序号</td> -->
- <th>项目内容</th>
- <th>时间</th>
- <th colspan="2">详情</th>
- <th>备注</th>
- <th>记录者</th>
- </tr>
- <!-- 食物过敏原 -->
- <template v-for="(row,index) in state.from1Datas" :key="index">
- <tr v-if="index===0">
- <td :rowspan="state.from1Datas.length*2">
- 食物过敏史及
- <br/>胃肠功能评估
- </td>
- <td :rowspan="state.from1Datas.length*1">食物过敏源</td>
- <td>{{state.from1Datas[index]?.初次调查日期}}</td>
- <td colspan="2">
- {{state.from1Datas[index]?.过敏食物?.type.join()}}
- </td>
- <td>
- {{state.from1Datas[index]?.过敏食物?.input1}}
- </td>
- <td>{{state.from1Datas[index]?.记录者}}</td>
- </tr>
- <tr v-else>
- <td>{{state.from1Datas[index].初次调查日期}}</td>
- <td colspan="2">
- {{state.from1Datas[index].过敏食物?.type.join()}}
- </td>
- <td>
- {{state.from1Datas[index].过敏食物?.input1}}
- </td>
- <td>{{state.from1Datas[index].记录者}}</td>
- </tr>
- </template>
- <!-- 胃肠功能评估 -->
- <template v-for="(row,index) in state.from1Datas" :key="index">
- <tr v-if="index===0">
- <td :rowspan="state.from1Datas.length*1">胃肠功能评估</td>
- <td>{{state.from1Datas[index].初次调查日期}}</td>
- <td colspan="2" >
- <span v-if="state.from1Datas[index]?.胃肠道紊乱者?.type==='是'"></span>
- 胃肠道紊乱者
- </td>
- <td>
- {{state.from1Datas[index]?.胃肠道紊乱者?.input1}}
- </td>
- <td>{{state.from1Datas[index]?.记录者}}</td>
- </tr>
- <tr v-else>
- <td>{{state.from1Datas[index].初次调查日期}}</td>
- <td colspan="2" >
- <span v-if="state.from1Datas[index]?.胃肠道紊乱者?.type==='是'"></span>
- 胃肠道紊乱者
- </td>
- <td>
- {{state.from1Datas[index]?.胃肠道紊乱者?.input1}}
- </td>
- <td>{{state.from1Datas[index]?.记录者}}</td>
- </tr>
-
- </template>
-
-
-
-
- <!-- 饮食管理 -->
-
- <tr>
- <td rowspan="6">饮食管理</td>
- <td rowspan="2">膳食调查</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
-
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
-
- <td rowspan="2">饮食问题</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td rowspan="2">饮食建议</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <!-- 生活方式管理 -->
- <tr>
- <td rowspan="4">生活方式管理</td>
- <!-- <td rowspan="2">1</td> -->
- <td rowspan="2">生活习惯</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
-
- <!-- <td rowspan="2">2</td> -->
- <td rowspan="2">指导建议</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <!-- 用药管理 -->
- <tr>
- <td rowspan="6">用药管理</td>
- <!-- <td rowspan="2">1</td> -->
- <td rowspan="2">用药调查</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
-
- <!-- <td rowspan="2">2</td> -->
- <td rowspan="2">用药监督</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
-
- <!-- <td rowspan="2">3</td> -->
- <td rowspan="2">指导建议</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <!-- 随访 -->
- <tr>
- <td rowspan="2">随访</td>
- <!-- <td rowspan="2">1</td> -->
- <td rowspan="2">随访情况</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <!-- 营养筛查评估 -->
- <tr>
- <td rowspan="4">营养筛查评估</td>
- <!-- <td rowspan="2">1</td> -->
- <td rowspan="2">营养筛查结果</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <!-- <td rowspan="2">2</td> -->
- <td rowspan="2">营养评估结果</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <!-- 数据评估 -->
- <tr>
- <td rowspan="12">数据评估</td>
- <!-- <td rowspan="2">1</td> -->
- <td rowspan="2">干体重</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <!-- <td rowspan="2">2</td> -->
- <td rowspan="2">BMI </td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <!-- <td rowspan="2">3</td> -->
- <td rowspan="2">生化指标 </td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <!-- <td rowspan="2">4</td> -->
- <td rowspan="2">脱水量 </td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <!-- <td rowspan="2">5</td> -->
- <td rowspan="2">血压 </td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <!-- <td rowspan="2">6</td> -->
- <td rowspan="2">血糖 </td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td rowspan="8">个性化管理</td>
- <!-- <td rowspan="2">1</td> -->
- <td rowspan="2">指导目标</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <!-- <td rowspan="2">2</td> -->
- <td rowspan="2">指导建议</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <!-- <td rowspan="2">3</td> -->
- <td rowspan="2">指导方案</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <!-- <td rowspan="2">4</td> -->
- <td rowspan="2">随访情况</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <!-- 效果反馈 -->
- <tr>
- <td rowspan="4">效果反馈</td>
- <!-- <td rowspan="2">1</td> -->
- <td rowspan="2">生化数据改善</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <!-- <td rowspan="2">2</td> -->
- <td rowspan="2">主观感受改善</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <!-- 产品管理 -->
- <tr>
- <td rowspan="4">产品管理</td>
- <!-- <td rowspan="2">1</td> -->
- <td rowspan="2">好馨意</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <!-- <td rowspan="2">2</td> -->
- <td rowspan="2">其他品牌</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td rowspan="4">健康营养宣教</td>
- <!-- <td rowspan="2">1</td> -->
- <td rowspan="2">生化指标</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <!-- <td rowspan="2">2</td> -->
- <td rowspan="2">营养饮食</td>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="2"></td>
- <td></td>
- <td></td>
- </tr>
-
- </table>
- </el-scrollbar>
- </div>
- </el-col>
-
+ <div class="dietarySurvey-home" >
+ <el-row v-if="patientsInfo.id" style="padding-left: 10px;">
+ <el-form size="small" :inline="true" :model="state.formInline">
+ <el-form-item label="填报日期">
+ <el-date-picker
+ v-model="state.formInline.date"
+ type="daterange"
+ unlink-panels
+ range-separator="To"
+ start-placeholder="开始"
+ end-placeholder="结束"
+ :shortcuts="shortcuts"
+ format="YYYY/MM/DD"
+ value-format="YYYY-MM-DD"
+ />
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="onSubmit">查询</el-button>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" plain @click="addItem">添加</el-button>
+ </el-form-item>
+ </el-form>
</el-row>
+ <div v-if="patientsInfo.id" class="divcont">
+ <el-table size="default" :data="state.tableData" stripe style="width: 100%" :height="tableHe">
+ <el-table-column fixed label="NO" type="index" widtd="80" >
+ <template #header>
+ <el-icon @click="onSubmit"><RefreshRight /></el-icon>
+ </template>
+
+ </el-table-column>
+ <el-table-column prop="surveryTime" label="填表时间" show-overflow-tooltip >
+ <template #default="scope">
+ {{scope.row.updateTime?.substring(0,11)}}
+ </template>
+ </el-table-column>
+ <el-table-column label="干体重" show-overflow-tooltip >
+ <template #default="scope">
+ {{scope.row.mode.干体重}}
+ </template>
+ </el-table-column>
+ <el-table-column label="脱水量" show-overflow-tooltip >
+ <template #default="scope">
+ {{scope.row.mode.脱水量}}
+ </template>
+ </el-table-column>
+ <el-table-column label="指导建议" show-overflow-tooltip >
+ <template #default="scope">
+ {{scope.row.mode.指导建议}}
+ </template>
+ </el-table-column>
+ <el-table-column label="执行反馈" show-overflow-tooltip >
+ <template #default="scope">
+ {{scope.row.mode.执行反馈}}
+ </template>
+ </el-table-column>
+ <el-table-column prop="surveryPersonName" label="填表人" show-overflow-tooltip />
+ <!-- <el-table-column prop="updateTime" label="更新时间" show-overflow-tooltip /> -->
+ <el-table-column label="操作" >
+ <template #default="scope">
+ <el-button size="small" @click="handleEdit(scope.$index, scope.row)">
+ 编辑
+ </el-button>
+ <el-button
+ size="small"
+ type="danger"
+ @click="handleDelete(scope.$index, scope.row)"
+ >
+ 删除
+ </el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-pagination
+ v-model:current-page="state.page"
+ v-model:page-size="state.size"
+ :page-sizes="[10, 20, 30, 40]"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="state.total"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
+ </div>
+ <el-empty v-if="!patientsInfo.id" description="无数据,请先选择患者"></el-empty>
+ <editDietary ref="editDietaryRef" @shuaxin="onSubmit"></editDietary>
</div>
-
</template>
<script setup lang="ts">
import { storeToRefs } from 'pinia';
import { usePatientsInfo } from '/@/stores/patientsInfo';
-import { computed, reactive } from 'vue';
-import { ElMessage } from 'element-plus';
-import { getPatData } from '/@/api/Patients';
-import { list } from '/@/api/tiaochabiao';
+import {list,tiaochabiaoInfo,deleteId} from '/@/api/tiaochabiao/index'
+import { computed, reactive, ref } from 'vue';
+import { useRoute,useRouter } from 'vue-router';
+import { ElLoading, ElMessage, ElMessageBox } from 'element-plus';
+import editDietary from './editDietary.vue'
const storesPat = usePatientsInfo();
const { patientsInfo } = storeToRefs(storesPat);
const props = defineProps(['tableHeight'])
+const editDietaryRef=ref()
+const router = useRouter()
+const shortcuts = [
+ {
+ text: '上一周',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+ return [start, end]
+ },
+ },
+ {
+ text: '上一个月',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+ return [start, end]
+ },
+ },
+ {
+ text: '前三个月',
+ value: () => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+ return [start, end]
+ },
+ },
+]
const state = reactive({
- tableData: {
- 基本信息:{
- 患者姓名:'',
- 性别:'',
- 年龄:'',
- 身高:'',
- 病史:'',
- 听力视力障碍:'',
- 透析频次:"",
- 透析时长:"",
- },
-
- },
- patientData: {
- 姓名: '',
- 干体重: '',
- 证件号: "",
- 诊断: '',
- 身高: '',
- 上一次透前体重: '',
- 干体重最近调整记录:[{干体重:'',调整日期:'',调整人:'',备注:""}],
- 透析方案:[{透析频率: "", 透析时长: "", 透析方案: ""}]
- },
- // 隐私调差
- from1Datas:<any>[],
- // 风险筛查
- from2Datas:{},
- // 风险评估
- from3Datas:{},
+ tableData: [],
+ page:1,
+ size:10,
+ total:0,
loading: false,
+ formInline:{
+ user: '',
+ formTableName:'随访记录表',
+ date: [],
+ },
+ dialogTableVisible:false
})
const tableHe = computed(() => {
- return props.tableHeight - 130
+ return (props.tableHeight-200)+'px'
})
-const BMI = computed(() => {
- if (state.patientData.干体重 && state.patientData.身高) {
- return (Number(state.patientData.干体重) / (Number(state.patientData.身高) / 100 * Number(state.patientData.身高) / 100)).toFixed(2)
- } else {
- return ''
+const handleSizeChange = (val: number) => {
+ console.log(`${val} items per page`)
+ state.size=val
+ onSubmit()
+}
+const handleCurrentChange = (val: number) => {
+ console.log(`current page: ${val}`)
+ state.page=val
+ onSubmit()
+}
+
+const onSubmit=()=>{
+ console.log(state.formInline)
+ const pasm={
+ page: state.page,
+ size: state.size,
+ wherecondition:`survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
+ ordercondition: 'survery_time desc'
}
-})
-
-
+ if(state.formInline?.date?.length===2){
+ pasm.wherecondition+=` and survery_time BETWEEN '${state.formInline.date[0]} 00:00:00' AND '${state.formInline.date[1]} 23:59:59'`
+ }
+ if(state.formInline?.formTableName){
+ pasm.wherecondition+=`and suvery_form_name='${state.formInline.formTableName}'`
+ }
+ const loading = ElLoading.service({
+ lock: true,
+ text: 'Loading',
+ background: 'rgba(0, 0, 0, 0.7)',
+ })
+ list(pasm).then(re=>{
+ state.tableData=re.data.list.map((v: any) => {
+ v.mode=JSON.parse(v.surveryJsonBody)
+ return v;
+ })
+ state.total=re.data.total
+ }).finally(()=>{
+ loading.close()
+ })
+}
+const addItem=()=>{
+
+ editDietaryRef.value.openShow('add')
+ // router.push({path:'/tiaochabiao1',query:{type:'add',id:0}})
+}
// 第一步:定义子组件里面的方法
-const getData = async (str: string) => {
- console.log("子组件获取显示数据!" + str);
- console.log(props.tableHeight)
- var pam = {
- patCode: patientsInfo.value.code,
+const getData = (str: string) => {
+ const pasm = {
+ page: 1,
+ size: 10,
+ wherecondition:`survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
+ ordercondition:'survery_time DESC'
}
- try {
- state.loading = true
- state.from1Datas=[]
- const [res1,fromData1,fromData2,fromData3] = await Promise.all([
- getPatData(pam),
- getFrom1(),
- getFrom2(),
- getFrom3()
- ])
- state.patientData = res1.data
- const from1 = fromData1
- if (from1.data.list.length >= 1) {
- from1.data.list.forEach((element:any) => {
- state.from1Datas.push(JSON.parse(element?.surveryJsonBody))
- });
-
- }
- console.log('饮食的------------------')
- console.log(state.from1Datas)
+ if(state.formInline?.date?.length===2){
+ pasm.wherecondition+=`and survery_time BETWEEN '${state.formInline.date[0]} 00:00:00' AND '${state.formInline.date[1]} 23:59:59'`
}
- catch (error) {
- state.loading = false
- ElMessage.error('结果请求错误,请联系管理员!')
+ if(state.formInline.formTableName){
+ pasm.wherecondition+=`and suvery_form_name='${state.formInline.formTableName}'`
}
+ const loading = ElLoading.service({
+ lock: true,
+ text: 'Loading',
+ background: 'rgba(0, 0, 0, 0.7)',
+ })
+ list(pasm).then(re=>{
+ console.log(re)
+ state.tableData=re.data.list.map((v: any) => {
+ v.mode=JSON.parse(v.surveryJsonBody)
+ return v;
+ })
+ state.total=re.data.total
+ }).finally(()=>{
+ loading.close()
+ })
-}
-// 获取膳食调查表
-const getFrom1 = async () => {
- const pasm = {
- page: 0,
- size: 0,
- wherecondition: `survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
- ordercondition: 'survery_time desc'
- }
- pasm.wherecondition += "and suvery_form_name='膳食调查表'"
- const yinyangbiaodan1 = await list(pasm)
- return yinyangbiaodan1
-}
-// 营养风险筛查结果
-const getFrom2 = async () => {
- const pasm = {
- page: 0,
- size: 0,
- wherecondition: `survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
- ordercondition: 'survery_time desc'
- }
- pasm.wherecondition += "and suvery_form_name='NRS2002'"
- const yinyangbiaodan1 = await list(pasm)
- return yinyangbiaodan1
-}
-// 营养评估结果
-const getFrom3 = async () => {
- const pasm = {
- page: 0,
- size: 0,
- wherecondition: `survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
- ordercondition: 'survery_time desc'
- }
- pasm.wherecondition += "and suvery_form_name='GNRI'"
- const yinyangbiaodan1 = await list(pasm)
- return yinyangbiaodan1
+ state.loading = true
+
}
// 第二步:暴露方法
defineExpose({ getData })
+/**
+ * 编辑
+ */
+const handleEdit = (index: number, row: any) => {
+ console.log(index, row,state.formInline.formTableName)
+ editDietaryRef.value.openShow('update',row)
+}
+const handleDelete = (index: number, row: any) => {
+ console.log(index, row)
+ ElMessageBox.confirm(
+ '你确定要删除该条记录?',
+ 'Warning',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ }
+ )
+ .then(() => {
+ deleteId(`id=${row.id}`).then(re=>{
+ ElMessage.success('删除成功')
+ onSubmit()
+ }).catch(e=>{
+ ElMessage.error('删除失败!')
+ })
+ })
+ .catch(() => {
+ ElMessage({
+ type: 'info',
+ message: '取消操作',
+ })
+ })
+
+}
</script>
<style lang="scss">
-.tableDiv {
- table {
- width: 100%;
- border-collapse: collapse;
- }
- th,
- td {
- border: 1px solid #ddd;
- padding: 8px;
- text-align: center;
- }
- th {
- background-color: #409eff;
- font-weight: bold;
- color: #ffffff;
- }
- tr:nth-child(even) {
- background-color: #f2f2f2;
- }
- .note {
- color: #409eff;
- font-size: smaller;
- }
- .fontred {
- color: red;
- font-size: large;
- }
+ .gridtable {font-family: verdana,arial,sans-serif;font-size:11px;color:#333333;border-width: 1px;border-color: #666666;border-collapse: collapse;width: 100%;}
+
+ .gridtable th {border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;}
+
+ .gridtable td {border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;min-width: 100px;}
+ .input-underline {
+ border: none; /* 移除所有边框 */
+ border-bottom: 1px solid #ccc; /* 显示下边框 */
+ outline: none; /* 移除点击输入框时浏览器可能会提供的默认轮廓线 */
+ text-align: center;
+ }
+ .width50{
+ width: 50px;
+ }
+.infinite-list {
+ overflow: auto;
+ padding: 0;
+ margin: 0;
+ list-style: none;
}
+.infinite-list .infinite-list-item {
+ display: flex;
+}
+
+.divcont{
+ overflow-y: auto; /* 垂直滚动条 */
+}
+
</style>
diff --git "a/src/views/home/components/suifangjilu/index\345\244\207\344\273\275.vue" "b/src/views/home/components/suifangjilu/index\345\244\207\344\273\275.vue"
new file mode 100644
index 0000000..0585588
--- /dev/null
+++ "b/src/views/home/components/suifangjilu/index\345\244\207\344\273\275.vue"
@@ -0,0 +1,717 @@
+<template>
+ <div>
+ <el-row>
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+ <div class="tableDiv">
+ <el-scrollbar :height="(tableHeight-130)+'px'">
+ <table v-if="tableHeight > 0" >
+ <tr>
+ <th colspan="7" style="text-align: left">营养服务管理记录</th>
+ </tr>
+ <tr>
+ <td :rowspan="2+state.patientData.透析方案.length">基本信息</td>
+ <td>患者姓名</td>
+ <td>{{ patientsInfo.patientName }}</td>
+ <td>性别</td>
+ <td>{{ patientsInfo.patientGenderText }}</td>
+ <td>年龄</td>
+ <td><span v-if="patientsInfo.age">{{ patientsInfo.age }} 岁</span></td>
+ </tr>
+ <tr>
+
+
+ <td>身高</td>
+ <td>{{ state.patientData.身高 }} <span v-if="state.patientData.身高">(cm)</span></td>
+ <td>病史</td>
+ <td>{{ state.patientData.诊断 }}</td>
+ <td>透龄</td>
+ <td>
+ <span v-if="patientsInfo.medHistoryStatByMonth">{{
+ patientsInfo.medHistoryStatByMonth }}
+ (月)</span>
+ </td>
+ </tr>
+ <template v-for="(row,index) in state.patientData.透析方案" :key="index">
+ <tr v-if="index===0">
+ <td :rowspan="state.patientData.透析方案.length*1">透析方案</td>
+ <td>
+ {{state.patientData.透析方案[index]?.透析方案}}
+ </td>
+ <td>频次</td>
+ <td>
+ {{state.patientData.透析方案[index]?.透析频率}}
+ </td>
+ <td>时长</td>
+ <td>
+ {{state.patientData.透析方案[index]?.透析时长}}
+ </td>
+ </tr>
+ <tr v-else>
+ <td>
+ {{state.patientData.透析方案[index]?.透析方案}}
+ </td>
+ <td>频次</td>
+ <td>
+ {{state.patientData.透析方案[index]?.透析频率}}
+ </td>
+ <td>时长</td>
+ <td>
+ {{state.patientData.透析方案[index]?.透析时长}}
+ </td>
+ </tr>
+ </template>
+ <tr>
+ <td rowspan="2">其他</td>
+ <td>口腔功能</td>
+ <td></td>
+ <td>手机使用度</td>
+ <td></td>
+ <td>营养服务类别</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>知识接受度</td>
+ <td></td>
+ <td>临床依从性</td>
+ <td></td>
+ <td>营养服务认可度</td>
+ <td></td>
+ </tr>
+ <tr>
+ <th>项目</th>
+ <!-- <td>序号</td> -->
+ <th>项目内容</th>
+ <th>时间</th>
+ <th colspan="2">详情</th>
+ <th>备注</th>
+ <th>记录者</th>
+ </tr>
+ <!-- 食物过敏原 -->
+ <template v-for="(row,index) in state.from1Datas" :key="index">
+ <tr v-if="index===0">
+ <td :rowspan="state.from1Datas.length*2">
+ 食物过敏史及
+ <br/>胃肠功能评估
+ </td>
+ <td :rowspan="state.from1Datas.length*1">食物过敏源</td>
+ <td>{{state.from1Datas[index]?.初次调查日期}}</td>
+ <td colspan="2">
+ {{state.from1Datas[index]?.过敏食物?.type.join()}}
+ </td>
+ <td>
+ {{state.from1Datas[index]?.过敏食物?.input1}}
+ </td>
+ <td>{{state.from1Datas[index]?.记录者}}</td>
+ </tr>
+ <tr v-else>
+ <td>{{state.from1Datas[index].初次调查日期}}</td>
+ <td colspan="2">
+ {{state.from1Datas[index].过敏食物?.type.join()}}
+ </td>
+ <td>
+ {{state.from1Datas[index].过敏食物?.input1}}
+ </td>
+ <td>{{state.from1Datas[index].记录者}}</td>
+ </tr>
+ </template>
+ <!-- 胃肠功能评估 -->
+ <template v-for="(row,index) in state.from1Datas" :key="index">
+ <tr v-if="index===0">
+ <td :rowspan="state.from1Datas.length*1">胃肠功能评估</td>
+ <td>{{state.from1Datas[index].初次调查日期}}</td>
+ <td colspan="2" >
+ <span v-if="state.from1Datas[index]?.胃肠道紊乱者?.type==='是'"></span>
+ 胃肠道紊乱者
+ </td>
+ <td>
+ {{state.from1Datas[index]?.胃肠道紊乱者?.input1}}
+ </td>
+ <td>{{state.from1Datas[index]?.记录者}}</td>
+ </tr>
+ <tr v-else>
+ <td>{{state.from1Datas[index].初次调查日期}}</td>
+ <td colspan="2" >
+ <span v-if="state.from1Datas[index]?.胃肠道紊乱者?.type==='是'"></span>
+ 胃肠道紊乱者
+ </td>
+ <td>
+ {{state.from1Datas[index]?.胃肠道紊乱者?.input1}}
+ </td>
+ <td>{{state.from1Datas[index]?.记录者}}</td>
+ </tr>
+
+ </template>
+
+
+
+
+ <!-- 饮食管理 -->
+
+ <tr>
+ <td rowspan="6">饮食管理</td>
+ <td rowspan="2">膳食调查</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+
+ <td rowspan="2">饮食问题</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td rowspan="2">饮食建议</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <!-- 生活方式管理 -->
+ <tr>
+ <td rowspan="4">生活方式管理</td>
+ <!-- <td rowspan="2">1</td> -->
+ <td rowspan="2">生活习惯</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+
+ <!-- <td rowspan="2">2</td> -->
+ <td rowspan="2">指导建议</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <!-- 用药管理 -->
+ <tr>
+ <td rowspan="6">用药管理</td>
+ <!-- <td rowspan="2">1</td> -->
+ <td rowspan="2">用药调查</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+
+ <!-- <td rowspan="2">2</td> -->
+ <td rowspan="2">用药监督</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+
+ <!-- <td rowspan="2">3</td> -->
+ <td rowspan="2">指导建议</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <!-- 随访 -->
+ <tr>
+ <td rowspan="2">随访</td>
+ <!-- <td rowspan="2">1</td> -->
+ <td rowspan="2">随访情况</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <!-- 营养筛查评估 -->
+ <tr>
+ <td rowspan="4">营养筛查评估</td>
+ <!-- <td rowspan="2">1</td> -->
+ <td rowspan="2">营养筛查结果</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <!-- <td rowspan="2">2</td> -->
+ <td rowspan="2">营养评估结果</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <!-- 数据评估 -->
+ <tr>
+ <td rowspan="12">数据评估</td>
+ <!-- <td rowspan="2">1</td> -->
+ <td rowspan="2">干体重</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <!-- <td rowspan="2">2</td> -->
+ <td rowspan="2">BMI </td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <!-- <td rowspan="2">3</td> -->
+ <td rowspan="2">生化指标 </td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <!-- <td rowspan="2">4</td> -->
+ <td rowspan="2">脱水量 </td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <!-- <td rowspan="2">5</td> -->
+ <td rowspan="2">血压 </td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <!-- <td rowspan="2">6</td> -->
+ <td rowspan="2">血糖 </td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td rowspan="8">个性化管理</td>
+ <!-- <td rowspan="2">1</td> -->
+ <td rowspan="2">指导目标</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <!-- <td rowspan="2">2</td> -->
+ <td rowspan="2">指导建议</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <!-- <td rowspan="2">3</td> -->
+ <td rowspan="2">指导方案</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <!-- <td rowspan="2">4</td> -->
+ <td rowspan="2">随访情况</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <!-- 效果反馈 -->
+ <tr>
+ <td rowspan="4">效果反馈</td>
+ <!-- <td rowspan="2">1</td> -->
+ <td rowspan="2">生化数据改善</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <!-- <td rowspan="2">2</td> -->
+ <td rowspan="2">主观感受改善</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <!-- 产品管理 -->
+ <tr>
+ <td rowspan="4">产品管理</td>
+ <!-- <td rowspan="2">1</td> -->
+ <td rowspan="2">好馨意</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <!-- <td rowspan="2">2</td> -->
+ <td rowspan="2">其他品牌</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td rowspan="4">健康营养宣教</td>
+ <!-- <td rowspan="2">1</td> -->
+ <td rowspan="2">生化指标</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <!-- <td rowspan="2">2</td> -->
+ <td rowspan="2">营养饮食</td>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td colspan="2"></td>
+ <td></td>
+ <td></td>
+ </tr>
+
+ </table>
+ </el-scrollbar>
+ </div>
+ </el-col>
+
+ </el-row>
+ </div>
+
+</template>
+
+<script setup lang="ts">
+import { storeToRefs } from 'pinia';
+import { usePatientsInfo } from '/@/stores/patientsInfo';
+import { computed, reactive } from 'vue';
+import { ElMessage } from 'element-plus';
+import { getPatData } from '/@/api/Patients';
+import { list } from '/@/api/tiaochabiao';
+const storesPat = usePatientsInfo();
+const { patientsInfo } = storeToRefs(storesPat);
+const props = defineProps(['tableHeight'])
+const state = reactive({
+ tableData: {
+ 基本信息:{
+ 患者姓名:'',
+ 性别:'',
+ 年龄:'',
+ 身高:'',
+ 病史:'',
+ 听力视力障碍:'',
+ 透析频次:"",
+ 透析时长:"",
+ },
+
+ },
+ patientData: {
+ 姓名: '',
+ 干体重: '',
+ 证件号: "",
+ 诊断: '',
+ 身高: '',
+ 上一次透前体重: '',
+ 干体重最近调整记录:[{干体重:'',调整日期:'',调整人:'',备注:""}],
+ 透析方案:[{透析频率: "", 透析时长: "", 透析方案: ""}]
+ },
+ // 隐私调差
+ from1Datas:<any>[],
+ // 风险筛查
+ from2Datas:{},
+ // 风险评估
+ from3Datas:{},
+ loading: false,
+})
+const tableHe = computed(() => {
+ return props.tableHeight - 130
+})
+const BMI = computed(() => {
+ if (state.patientData.干体重 && state.patientData.身高) {
+ return (Number(state.patientData.干体重) / (Number(state.patientData.身高) / 100 * Number(state.patientData.身高) / 100)).toFixed(2)
+ } else {
+ return ''
+ }
+})
+
+
+// 第一步:定义子组件里面的方法
+const getData = async (str: string) => {
+ console.log("子组件获取显示数据!" + str);
+ console.log(props.tableHeight)
+ var pam = {
+ patCode: patientsInfo.value.code,
+ }
+ try {
+ state.loading = true
+ state.from1Datas=[]
+ const [res1,fromData1,fromData2,fromData3] = await Promise.all([
+ getPatData(pam),
+ getFrom1(),
+ getFrom2(),
+ getFrom3()
+ ])
+ state.patientData = res1.data
+ const from1 = fromData1
+ if (from1.data.list.length >= 1) {
+ from1.data.list.forEach((element:any) => {
+ state.from1Datas.push(JSON.parse(element?.surveryJsonBody))
+ });
+
+ }
+ console.log('饮食的------------------')
+ console.log(state.from1Datas)
+ }
+ catch (error) {
+ state.loading = false
+ ElMessage.error('结果请求错误,请联系管理员!')
+ }
+
+}
+// 获取膳食调查表
+const getFrom1 = async () => {
+ const pasm = {
+ page: 0,
+ size: 0,
+ wherecondition: `survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
+ ordercondition: 'survery_time desc'
+ }
+ pasm.wherecondition += "and suvery_form_name='膳食调查表'"
+ const yinyangbiaodan1 = await list(pasm)
+ return yinyangbiaodan1
+}
+// 营养风险筛查结果
+const getFrom2 = async () => {
+ const pasm = {
+ page: 0,
+ size: 0,
+ wherecondition: `survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
+ ordercondition: 'survery_time desc'
+ }
+ pasm.wherecondition += "and suvery_form_name='NRS2002'"
+ const yinyangbiaodan1 = await list(pasm)
+ return yinyangbiaodan1
+}
+// 营养评估结果
+const getFrom3 = async () => {
+ const pasm = {
+ page: 0,
+ size: 0,
+ wherecondition: `survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
+ ordercondition: 'survery_time desc'
+ }
+ pasm.wherecondition += "and suvery_form_name='GNRI'"
+ const yinyangbiaodan1 = await list(pasm)
+ return yinyangbiaodan1
+}
+
+// 第二步:暴露方法
+defineExpose({ getData })
+</script>
+
+<style lang="scss">
+
+
+.tableDiv {
+ table {
+ width: 100%;
+ border-collapse: collapse;
+ }
+ th,
+ td {
+ border: 1px solid #ddd;
+ padding: 8px;
+ text-align: center;
+ }
+ th {
+ background-color: #409eff;
+ font-weight: bold;
+ color: #ffffff;
+ }
+ tr:nth-child(even) {
+ background-color: #f2f2f2;
+ }
+ .note {
+ color: #409eff;
+ font-size: smaller;
+ }
+ .fontred {
+ color: red;
+ font-size: large;
+ }
+}
+</style>
diff --git a/src/views/home/index.vue b/src/views/home/index.vue
index d4a4867..15cd420 100644
--- a/src/views/home/index.vue
+++ b/src/views/home/index.vue
@@ -69,18 +69,6 @@
</span>
</template>
</el-tab-pane>
-
- <el-tab-pane label="营养饮食指导方案" name="营养饮食指导方案">
- <template #label>
- <span class="custom-tabs-label home-title">
- <el-icon>
- <Grid />
- </el-icon>
- <span style="margin-left: 5px">营养饮食指导方案</span>
- </span>
- </template>
- <!-- <el-empty description="该功能未开发"></el-empty> -->
- </el-tab-pane>
<el-tab-pane label="随访记录" name="随访记录">
<template #label>
<span class="custom-tabs-label home-title">
@@ -90,7 +78,16 @@
<span style="margin-left: 5px">随访记录</span>
</span>
</template>
- <!-- <el-empty description="该功能未开发"></el-empty> -->
+ </el-tab-pane>
+ <el-tab-pane label="营养饮食指导方案" name="营养饮食指导方案">
+ <template #label>
+ <span class="custom-tabs-label home-title">
+ <el-icon>
+ <Grid />
+ </el-icon>
+ <span style="margin-left: 5px">营养饮食指导方案</span>
+ </span>
+ </template>
</el-tab-pane>
<el-tab-pane label="生化数据" name="生化数据">
<template #label>
@@ -203,6 +200,7 @@
})
const handleCurrentChange = (val: any | undefined) => {
if (val) {
+ console.log(val)
currentRow.value = val
//缓存到vuex 中
storesPat.setPatientsInfo(val)
--
Gitblit v1.8.0