From 83ef13dab87cb59fccf0514d7d47f2ca0cae9f0f Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期六, 21 十二月 2024 23:06:11 +0800
Subject: [PATCH] 更新

---
 src/views/home/components/pingubiao/editDietary2.vue |   30 +
 package-lock.json                                    |    2 
 src/views/home/components/pingubiao/editDietary4.vue |   31 +
 src/views/home/components/dietary_survey.vue         |    6 
 src/views/home/components/editDietary2.vue           |    4 
 src/views/styles.css                                 |   69 +++
 src/views/home/components/editDietary.vue            |   10 
 .env.development                                     |    4 
 src/views/home/components/pingubiao/editDietary3.vue |   30 +
 src/views/home/components/suifangjilu/index.vue      |  625 ++++++++++++++++++++++++++------
 src/views/home/index.vue                             |    1 
 src/views/home/components/fangAn/editDietary.vue     |   50 ++
 src/views/home/components/fangAn/index.vue           |   20 
 src/views/home/components/pingubiao/editDietary5.vue |   32 +
 package.json                                         |    2 
 src/views/home/components/pingubiao/index.vue        |    2 
 src/views/test.html                                  |  144 +++++++
 src/views/home/components/pingubiao/editDietary.vue  |   31 +
 18 files changed, 914 insertions(+), 179 deletions(-)

diff --git a/.env.development b/.env.development
index 4db89da..f6a2c27 100644
--- a/.env.development
+++ b/.env.development
@@ -2,5 +2,5 @@
 ENV = development
 
 # 本地环境接口地址
-# VITE_API_URL = 'http://testbs.ihemodialysis.com/'
-VITE_API_URL = 'https://hemobs.icoldchain.cn/'
+VITE_API_URL = 'http://testbs.ihemodialysis.com/'
+# VITE_API_URL = 'https://hemobs.icoldchain.cn/'
diff --git a/package-lock.json b/package-lock.json
index 2f7a8f7..60d4c02 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -20,9 +20,11 @@
 				"echarts-gl": "^2.0.9",
 				"echarts-wordcloud": "^2.1.0",
 				"element-plus": "^2.6.1",
+				"html2canvas": "^1.4.1",
 				"html2pdf.js": "^0.10.2",
 				"js-cookie": "^3.0.5",
 				"js-table2excel": "^1.1.2",
+				"jspdf": "^2.5.2",
 				"jsplumb": "^2.15.6",
 				"mitt": "^3.0.1",
 				"nprogress": "^0.2.0",
diff --git a/package.json b/package.json
index ef03aa5..cd4dc20 100644
--- a/package.json
+++ b/package.json
@@ -21,9 +21,11 @@
 		"echarts-gl": "^2.0.9",
 		"echarts-wordcloud": "^2.1.0",
 		"element-plus": "^2.6.1",
+		"html2canvas": "^1.4.1",
 		"html2pdf.js": "^0.10.2",
 		"js-cookie": "^3.0.5",
 		"js-table2excel": "^1.1.2",
+		"jspdf": "^2.5.2",
 		"jsplumb": "^2.15.6",
 		"mitt": "^3.0.1",
 		"nprogress": "^0.2.0",
diff --git a/src/views/home/components/dietary_survey.vue b/src/views/home/components/dietary_survey.vue
index 44516e1..3da6815 100644
--- a/src/views/home/components/dietary_survey.vue
+++ b/src/views/home/components/dietary_survey.vue
@@ -163,10 +163,10 @@
         wherecondition:`survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
         ordercondition: 'survery_time desc'
     }
-    if(state.formInline.date.length===2){
+    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){
+    if(state.formInline?.formTableName){
         pasm.wherecondition+=`and suvery_form_name='${state.formInline.formTableName}'`
     }
     const loading = ElLoading.service({
@@ -202,7 +202,7 @@
         wherecondition:`survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
         ordercondition:'survery_time DESC'
     }
-    if(state.formInline.date.length===2){
+    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){
diff --git a/src/views/home/components/editDietary.vue b/src/views/home/components/editDietary.vue
index 6e39465..8d979c1 100644
--- a/src/views/home/components/editDietary.vue
+++ b/src/views/home/components/editDietary.vue
@@ -12,21 +12,21 @@
                                         <th colspan="2">
                                             <el-form-item label="初次调查日期">
                                                 <el-date-picker v-model="state.tableData.初次调查日期" type="date" style="width: 100px;"
-                                                    placeholder="" format="YYYY/MM/DD" value-format="YYYY-MM-DD" />
+                                                    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="" format="YYYY/MM/DD" value-format="YYYY-MM-DD" />
+                                                    placeholder="" readonly format="YYYY/MM/DD" value-format="YYYY-MM-DD" />
                                             </el-form-item>
 
 
                                         </th>
                                         <th colspan="2">
                                             <el-form-item label="记录者">
-                                                <el-input v-model="state.tableData.记录者"  placeholder="" />
+                                                <el-input readonly v-model="state.tableData.记录者"  placeholder="" />
                                             </el-form-item>
                                             
                                         </th>
@@ -693,7 +693,7 @@
     surveryPerson: userInfos.value.code,
     surveryJsonBody: JSON.stringify(state.tableData),
     suveryFormName:'膳食调查表',
-    updateTime: ''
+    updateTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS')
   }
   console.log(info)
   if(info.id===0){
@@ -799,6 +799,8 @@
         console.log(mode)
         state.viewInfo=mode
         state.tableData=JSON.parse(mode.surveryJsonBody)
+        state.tableData.初次调查日期=mode.surveryTime
+        state.tableData.更新日期=mode.updateTime
         state.dialogTableVisible = true
 
 
diff --git a/src/views/home/components/editDietary2.vue b/src/views/home/components/editDietary2.vue
index 25a5eab..05896ef 100644
--- a/src/views/home/components/editDietary2.vue
+++ b/src/views/home/components/editDietary2.vue
@@ -916,7 +916,7 @@
         surveryJsonBody: JSON.stringify(state.tableData),
         suveryFormName: '营养膳食调查表',
         surveryFormType: 0,
-        updateTime: ''
+        updateTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
     }
     console.log(info)
     if (info.id === 0) {
@@ -952,6 +952,8 @@
         console.log(mode)
         state.viewInfo = mode
         state.tableData = JSON.parse(mode.surveryJsonBody)
+        state.tableData.初次调查日期=mode.surveryTime
+        state.tableData.更新日期=mode.updateTime
         state.dialogTableVisible = true
 
 
diff --git a/src/views/home/components/fangAn/editDietary.vue b/src/views/home/components/fangAn/editDietary.vue
index 1bf8873..7219e2c 100644
--- a/src/views/home/components/fangAn/editDietary.vue
+++ b/src/views/home/components/fangAn/editDietary.vue
@@ -1,8 +1,8 @@
 <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 class="container" style="width: 100%; height: 100%;overflow: auto;" >
+                <div id="printFrom1" class="print-section">
                     <div>
                         <el-form size="small">
                             <div style="width: 100%">
@@ -12,7 +12,7 @@
                                             <el-row>
                                                 <el-col :span="12">
                                                     <el-form-item label="实施日期">
-                                                        <el-date-picker v-model="state.tableData.初次调查日期" type="date"
+                                                        <el-date-picker v-model="state.tableData.实施日期" type="date"
                                                             style="width: 100px;" placeholder="" format="YYYY/MM/DD"
                                                             value-format="YYYY-MM-DD" />
                                                     </el-form-item>
@@ -20,7 +20,7 @@
                                                 <el-col :span="12">
                                                     <div style="text-align:right;width: 100%">
 
-                                                        <span>营养师:</span> <el-input v-model="state.tableData.记录者"
+                                                        <span>营养师:</span> <el-input v-model="state.tableData.记录者" readonly
                                                             style="width: 100px;" placeholder="" />
 
                                                     </div>
@@ -31,6 +31,7 @@
 
                                         </th>
                                     </tr>
+                                   
                                     <tr>
                                         <td colspan="8" style=" background-color: rgb(250, 236, 216);font-weight:800 ;">
                                             S:询问饮食营养状况、生活习惯</td>
@@ -296,7 +297,7 @@
                                                 placeholder="" />
                                         </td>
                                     </tr>
-
+                                    <tr class="page-break"></tr>
                                     <tr>
                                         <td colspan="8" style=" background-color: rgb(250, 236, 216);font-weight:800 ;">
                                             P:饮食营养方案及食谱,定期随访并及时调整</td>
@@ -490,6 +491,7 @@
                                             </el-input>
                                         </td>
                                     </tr>
+                                    
                                     <tr>
                                         <td colspan="8" style=" background-color: rgb(250, 236, 216);font-weight:800 ;">
                                             食物替换法</td>
@@ -604,6 +606,8 @@
 <script setup lang="ts" name="visualizingLinkDemo2">
 import { Check } from '@element-plus/icons-vue'
 import html2pdf from 'html2pdf.js';
+import html2canvas from 'html2canvas';
+import { jsPDF } from 'jspdf';
 import { reactive, onMounted, onUnmounted, ref } from 'vue';
 import { formatDate } from '/@/utils/formatTime';
 import { NextLoading } from '/@/utils/loading';
@@ -631,7 +635,7 @@
     innerVisible:false,
     tableData: {
         表名: '患者方案表',
-        初次调查日期: "",
+        实施日期: "",
         填表日期: '',
         更新日期: '',
         记录者: '陈银成',
@@ -821,7 +825,7 @@
 const generatePDF = () => {
     const element = document.getElementById('printFrom1');
     const opt = {
-        margin: 10,
+        margin: 0,
         filename: `${state.tableData.表名}.pdf`,
         image: { type: 'jpeg', quality: 0.98 },
         html2canvas: { scale: 2 },
@@ -865,7 +869,7 @@
 const getPageInfo = async () => {
     state.tableData = {
         表名: '患者方案表',
-        初次调查日期: "",
+        实施日期: formatDate(new Date(),'YYYY-mm-dd'),
         填表日期: '',
         更新日期: '',
         记录者: userInfos.value.userName,
@@ -969,6 +973,18 @@
             其他: '1克盐=6.5克酱油=10克蚝油 水果 互相替换,如苹果/梨/西瓜/桃子/火龙果等'
         }
     }
+    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: 2,
+        updateTime: ''
+	};
     const from1 = await getFrom1()
     const from2 = await getFrom2()
     const from3 = await getFrom3()
@@ -1066,6 +1082,8 @@
         console.log(mode)
         state.viewInfo = mode
         state.tableData = JSON.parse(mode.surveryJsonBody)
+        state.tableData.实施日期=mode.surveryTime
+        state.tableData.更新日期=mode.updateTime
         state.dialogTableVisible = true
 
 
@@ -1114,4 +1132,20 @@
 .lvse {
     background-color: rgb(239.8, 248.9, 235.3);
 }
+@media print, screen {
+  .print-section {
+    width: auto !important;
+    max-width: none !important;
+    overflow: visible !important;
+  }
+
+  .print-section > * {
+    page-break-inside: avoid;
+  }
+
+  .page-break {
+    display: block;
+    page-break-after: always;
+  }
+}
 </style>
diff --git a/src/views/home/components/fangAn/index.vue b/src/views/home/components/fangAn/index.vue
index ef48029..99c5162 100644
--- a/src/views/home/components/fangAn/index.vue
+++ b/src/views/home/components/fangAn/index.vue
@@ -150,7 +150,7 @@
         wherecondition:`survery_form_type=2 and patient_code='${patientsInfo.value.code}'`,
         ordercondition: 'survery_time desc'
     }
-    if(state.formInline.date.length===2){
+    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){
@@ -179,7 +179,7 @@
         wherecondition:`survery_form_type=2 and patient_code='${patientsInfo.value.code}'`,
         ordercondition:'survery_time DESC'
     }
-    if(state.formInline.date.length===2){
+    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){
@@ -241,22 +241,6 @@
 </script>
 
 <style  lang="scss">
-
-
-    .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;
diff --git a/src/views/home/components/pingubiao/editDietary.vue b/src/views/home/components/pingubiao/editDietary.vue
index ae33d75..44673c0 100644
--- a/src/views/home/components/pingubiao/editDietary.vue
+++ b/src/views/home/components/pingubiao/editDietary.vue
@@ -2,7 +2,7 @@
 	<div class="dietarySurvey-item">
 		<el-dialog v-model="state.dialogTableVisible" title="营养风险筛查表(NRS2002)" :fullscreen="true" width="100%">
 			<div class="container" style="width: 100%; height: 100%; overflow: auto">
-				<div>
+				<div id="pinggu1">
 					<div>
 						<el-form size="small">
 							<div style="width: 100%">
@@ -11,6 +11,7 @@
 										<th colspan="2">
 											<el-form-item label="初次调查日期">
 												<el-date-picker
+												readonly
 													v-model="state.tableData.初次调查日期"
 													type="date"
 													style="width: 100px"
@@ -23,6 +24,7 @@
 										<th colspan="2">
 											<el-form-item label="更新日期">
 												<el-date-picker
+												readonly
 													v-model="state.tableData.更新日期"
 													type="date"
 													style="width: 100px"
@@ -34,7 +36,7 @@
 										</th>
 										<th colspan="2">
 											<el-form-item label="记录者">
-												<el-input v-model="state.tableData.记录者" style="width: 100px" placeholder="" />
+												<el-input v-model="state.tableData.记录者" style="width: 100px" readonly placeholder="" />
 											</el-form-item>
 										</th>
 									</tr>
@@ -188,6 +190,14 @@
 				<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="'#pinggu1'">
+                        <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>
@@ -195,6 +205,7 @@
 </template>
 
 <script setup lang="ts" name="visualizingLinkDemo2">
+import html2pdf from 'html2pdf.js';
 import { reactive, onMounted, onUnmounted, ref, computed } from 'vue';
 import { formatDate } from '/@/utils/formatTime';
 import { NextLoading } from '/@/utils/loading';
@@ -324,6 +335,8 @@
 		console.log(mode);
 		state.viewInfo = mode;
 		state.tableData = JSON.parse(mode.surveryJsonBody);
+		state.tableData.初次调查日期=mode.surveryTime
+        state.tableData.更新日期=mode.updateTime
 		state.dialogTableVisible = true;
 	}
 };
@@ -362,6 +375,18 @@
 		updateTime: '',
 	};
 };
+const generatePDF=()=> {
+      const element = document.getElementById('pinggu1');
+      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();
+
+}
 
 // 第二步:暴露方法
 defineExpose({ getData, openShow });
@@ -394,4 +419,4 @@
 	border-color: #666666;
 	background-color: #ffffff;
 }
-</style>
+</style>
\ No newline at end of file
diff --git a/src/views/home/components/pingubiao/editDietary2.vue b/src/views/home/components/pingubiao/editDietary2.vue
index b98b42b..629ba73 100644
--- a/src/views/home/components/pingubiao/editDietary2.vue
+++ b/src/views/home/components/pingubiao/editDietary2.vue
@@ -2,7 +2,7 @@
     <div class="dietarySurvey-item">
         <el-dialog v-model="state.dialogTableVisible" title="主观全面评定(SGA)评价" :fullscreen="true" width="100%">
             <div class="container" style="width: 100%; height: 100%;overflow: auto;">
-                <div>
+                <div id="pinggu2">
                     <div>
                         <el-form size="small">
                             <div style="width: 100%">
@@ -11,7 +11,7 @@
                                     <tr>
                                         <th colspan="2">
                                             <el-form-item label="初次调查日期">
-                                                <el-date-picker v-model="state.tableData.初次调查日期" type="date"
+                                                <el-date-picker v-model="state.tableData.初次调查日期" type="date" readonly
                                                     style="width: 100px;" placeholder="" format="YYYY/MM/DD"
                                                     value-format="YYYY-MM-DD" />
                                             </el-form-item>
@@ -19,7 +19,7 @@
                                         </th>
                                         <th colspan="2">
                                             <el-form-item label="更新日期">
-                                                <el-date-picker v-model="state.tableData.更新日期" type="date"
+                                                <el-date-picker v-model="state.tableData.更新日期" type="date" readonly
                                                     style="width: 100px;" placeholder="" format="YYYY/MM/DD"
                                                     value-format="YYYY-MM-DD" />
                                             </el-form-item>
@@ -28,7 +28,7 @@
                                         </th>
                                         <th colspan="2">
                                             <el-form-item label="记录者">
-                                                <el-input v-model="state.tableData.记录者" style="width: 100px;"   placeholder="" />
+                                                <el-input v-model="state.tableData.记录者" style="width: 100px;" readonly  placeholder="" />
                                             </el-form-item>
                                         </th>
 
@@ -427,6 +427,14 @@
                     <el-button type="primary" @click="onSubmit">
                         保存
                     </el-button>
+                    <el-button v-if="state.viewInfo.id" type="primary" v-print="'#pinggu2'">
+                        <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>
@@ -437,6 +445,7 @@
 </template>
 
 <script setup lang="ts" name="visualizingLinkDemo2">
+import html2pdf from 'html2pdf.js';
 import { reactive, onMounted, onUnmounted, ref, computed } from 'vue';
 import { formatDate } from '/@/utils/formatTime';
 import { NextLoading } from '/@/utils/loading';
@@ -621,6 +630,8 @@
         console.log(mode)
         state.viewInfo = mode
         state.tableData = JSON.parse(mode.surveryJsonBody)
+        state.tableData.初次调查日期=mode.surveryTime
+        state.tableData.更新日期=mode.updateTime
         state.dialogTableVisible = true
 
 
@@ -720,7 +731,18 @@
         updateTime: ''
     }
 }
+const generatePDF=()=> {
+      const element = document.getElementById('pinggu2');
+      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();
 
+}
 // 第二步:暴露方法
 defineExpose({ getData, openShow })
 </script>
diff --git a/src/views/home/components/pingubiao/editDietary3.vue b/src/views/home/components/pingubiao/editDietary3.vue
index bba3df4..c8d87a9 100644
--- a/src/views/home/components/pingubiao/editDietary3.vue
+++ b/src/views/home/components/pingubiao/editDietary3.vue
@@ -2,7 +2,7 @@
 	<div class="dietarySurvey-item">
 		<el-dialog v-model="state.dialogTableVisible" title="营养不良炎症评分表(MIS)" :fullscreen="true" width="100%">
 			<div class="container" style="width: 100%; height: 100%; overflow: auto">
-				<div>
+				<div id="pinggu3">
 					<div>
 						<el-form size="small">
 							<div style="width: 100%">
@@ -10,7 +10,7 @@
 									<tr>
 										<th colspan="2">
 											<el-form-item label="初次调查日期">
-												<el-date-picker
+												<el-date-picker readonly
 													v-model="state.tableData.初次调查日期"
 													type="date"
 													style="width: 100px"
@@ -22,7 +22,7 @@
 										</th>
 										<th colspan="2">
 											<el-form-item label="更新日期">
-												<el-date-picker
+												<el-date-picker readonly
 													v-model="state.tableData.更新日期"
 													type="date"
 													style="width: 100px"
@@ -34,7 +34,7 @@
 										</th>
 										<th colspan="2">
 											<el-form-item label="记录者">
-												<el-input v-model="state.tableData.记录者" style="width: 100px" placeholder="" />
+												<el-input v-model="state.tableData.记录者" style="width: 100px" readonly placeholder="" />
 											</el-form-item>
 										</th>
 									</tr>
@@ -194,6 +194,14 @@
 				<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="'#pinggu3'">
+                        <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>
@@ -201,6 +209,7 @@
 </template>
 
 <script setup lang="ts" name="visualizingLinkDemo2">
+import html2pdf from 'html2pdf.js';
 import { reactive, onMounted, onUnmounted, ref, computed } from 'vue';
 import { formatDate } from '/@/utils/formatTime';
 import { NextLoading } from '/@/utils/loading';
@@ -343,6 +352,8 @@
 		console.log(mode);
 		state.viewInfo = mode;
 		state.tableData = JSON.parse(mode.surveryJsonBody);
+		state.tableData.初次调查日期=mode.surveryTime
+        state.tableData.更新日期=mode.updateTime
 		state.dialogTableVisible = true;
 	}
 };
@@ -407,7 +418,18 @@
 		updateTime: '',
 	};
 };
+const generatePDF=()=> {
+      const element = document.getElementById('pinggu3');
+      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();
 
+}
 // 第二步:暴露方法
 defineExpose({ getData, openShow });
 </script>
diff --git a/src/views/home/components/pingubiao/editDietary4.vue b/src/views/home/components/pingubiao/editDietary4.vue
index b354ec5..d6bedfc 100644
--- a/src/views/home/components/pingubiao/editDietary4.vue
+++ b/src/views/home/components/pingubiao/editDietary4.vue
@@ -2,7 +2,7 @@
     <div class="dietarySurvey-item">
         <el-dialog  v-model="state.dialogTableVisible" title="PEW(蛋白质能量消耗评估)" :fullscreen="true" width="100%">
             <div class="container" style="width: 100%; height: 100%;overflow: auto;">
-                <div>
+                <div id="pinggu4">
                     <div>
                         <el-form size="small" >
                             <div style="width: 100%">
@@ -11,14 +11,14 @@
                                     <tr>
                                         <th colspan="2">
                                             <el-form-item label="初次调查日期">
-                                                <el-date-picker v-model="state.tableData.初次调查日期" type="date" style="width: 100px;"
+                                                <el-date-picker v-model="state.tableData.初次调查日期" type="date" readonly style="width: 100px;"
                                                     placeholder="" 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;"
+                                                <el-date-picker v-model="state.tableData.更新日期" type="date" readonly style="width: 100px;"
                                                     placeholder="" format="YYYY/MM/DD" value-format="YYYY-MM-DD" />
                                             </el-form-item>
 
@@ -26,7 +26,7 @@
                                         </th>
                                         <th colspan="2">
                                             <el-form-item label="记录者">
-                                                <el-input v-model="state.tableData.记录者" style="width: 100px;"   placeholder="" />
+                                                <el-input v-model="state.tableData.记录者" style="width: 100px;"  readonly  placeholder="" />
                                             </el-form-item>
                                         </th>
 
@@ -132,6 +132,14 @@
                     <el-button type="primary" @click="onSubmit">
                         保存
                     </el-button>
+                    <el-button v-if="state.viewInfo.id" type="primary" v-print="'#pinggu4'">
+                        <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>
@@ -142,6 +150,7 @@
 </template>
 
 <script setup lang="ts" name="visualizingLinkDemo2">
+import html2pdf from 'html2pdf.js';
 import { reactive, onMounted, onUnmounted, ref, computed } from 'vue';
 import { formatDate } from '/@/utils/formatTime';
 import { NextLoading } from '/@/utils/loading';
@@ -264,6 +273,8 @@
         console.log(mode)
         state.viewInfo=mode
         state.tableData=JSON.parse(mode.surveryJsonBody)
+        state.tableData.初次调查日期=mode.surveryTime
+        state.tableData.更新日期=mode.updateTime
         state.dialogTableVisible = true
 
 
@@ -307,6 +318,18 @@
         updateTime: ''
     }
 }
+const generatePDF=()=> {
+      const element = document.getElementById('pinggu4');
+      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();
+
+}
 
 // 第二步:暴露方法
 defineExpose({ getData, openShow })
diff --git a/src/views/home/components/pingubiao/editDietary5.vue b/src/views/home/components/pingubiao/editDietary5.vue
index d6741ca..2b8c9f7 100644
--- a/src/views/home/components/pingubiao/editDietary5.vue
+++ b/src/views/home/components/pingubiao/editDietary5.vue
@@ -2,7 +2,7 @@
     <div class="dietarySurvey-item">
         <el-dialog v-model="state.dialogTableVisible" title="GNIR营养评估分" :fullscreen="true" width="100%">
             <div class="container" style="width: 100%; height: 100%;overflow: auto;">
-                <div>
+                <div id="pinggu5">
                     <div>
                         <el-form size="small">
                             <div style="width: 100%">
@@ -11,7 +11,7 @@
                                     <tr>
                                         <th colspan="2">
                                             <el-form-item label="调查日期">
-                                                <el-date-picker v-model="state.tableData.初次调查日期" type="date"
+                                                <el-date-picker v-model="state.tableData.初次调查日期" type="date" readonly
                                                     style="width: 100px;" placeholder="" format="YYYY/MM/DD"
                                                     value-format="YYYY-MM-DD" />
                                             </el-form-item>
@@ -19,16 +19,14 @@
                                         </th>
                                         <th colspan="2">
                                             <el-form-item label="更新日期">
-                                                <el-date-picker v-model="state.tableData.更新日期" type="date"
+                                                <el-date-picker v-model="state.tableData.更新日期" type="date" readonly
                                                     style="width: 100px;" placeholder="" format="YYYY/MM/DD"
                                                     value-format="YYYY-MM-DD" />
                                             </el-form-item>
-
-
                                         </th>
                                         <th colspan="2">
                                             <el-form-item label="记录者">
-                                                <el-input v-model="state.tableData.记录者" style="width: 100px;"
+                                                <el-input v-model="state.tableData.记录者" style="width: 100px;" readonly
                                                     placeholder="" />
                                             </el-form-item>
                                         </th>
@@ -151,6 +149,14 @@
                     <el-button type="primary" @click="onSubmit">
                         保存
                     </el-button>
+                    <el-button v-if="state.viewInfo.id" type="primary" v-print="'#pinggu5'">
+                        <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>
@@ -161,6 +167,7 @@
 </template>
 
 <script setup lang="ts" name="visualizingLinkDemo2">
+import html2pdf from 'html2pdf.js';
 import { reactive, onMounted, onUnmounted, ref, computed, watch } from 'vue';
 import { formatDate } from '/@/utils/formatTime';
 import { NextLoading } from '/@/utils/loading';
@@ -335,6 +342,8 @@
         console.log(mode)
         state.viewInfo = mode
         state.tableData = JSON.parse(mode.surveryJsonBody)
+        state.tableData.初次调查日期=mode.surveryTime
+        state.tableData.更新日期=mode.updateTime
         state.dialogTableVisible = true
     }
 
@@ -370,7 +379,18 @@
         updateTime: ''
     }
 }
+const generatePDF=()=> {
+      const element = document.getElementById('pinggu5');
+      const opt = {
+        margin: 10,
+        filename: `${state.tableData.表名}.pdf`,
+        image: { type: 'jpeg', quality: 0.98 },
+        html2canvas: { scale: 2 },
+        jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrai' }
+      };
+      html2pdf().set(opt).from(element).save();
 
+}
 // 第二步:暴露方法
 defineExpose({ getData, openShow })
 </script>
diff --git a/src/views/home/components/pingubiao/index.vue b/src/views/home/components/pingubiao/index.vue
index c0a7eb8..70bb2d2 100644
--- a/src/views/home/components/pingubiao/index.vue
+++ b/src/views/home/components/pingubiao/index.vue
@@ -176,7 +176,7 @@
         wherecondition:`survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
         ordercondition: 'survery_time desc'
     }
-    if(state.formInline.date.length===2){
+    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){
diff --git a/src/views/home/components/suifangjilu/index.vue b/src/views/home/components/suifangjilu/index.vue
index a3649ef..30b27dc 100644
--- a/src/views/home/components/suifangjilu/index.vue
+++ b/src/views/home/components/suifangjilu/index.vue
@@ -1,40 +1,64 @@
 <template>
     <div>
         <el-row>
-            <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
+            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
                 <div class="tableDiv">
                     <table>
                         <tr>
                             <th colspan="7" style="text-align: left">营养服务管理记录</th>
                         </tr>
                         <tr>
-                            <td rowspan="3">基本信息</td>
+                            <td :rowspan="2+state.patientData.透析方案.length">基本信息</td>
                             <td>患者姓名</td>
-                            <td></td>
+                            <td>{{ patientsInfo.patientName }}</td>
                             <td>性别</td>
-                            <td></td>
+                            <td>{{ patientsInfo.patientGenderText }}</td>
                             <td>年龄</td>
-                            <td></td>
+                            <td><span v-if="patientsInfo.age">{{ patientsInfo.age }} 岁</span></td>
                         </tr>
                         <tr>
                             
                            
-                            <td>身高(m)</td>
-                            <td></td>
+                            <td>身高</td>
+                            <td>{{ state.patientData.身高 }} <span v-if="state.patientData.身高">(cm)</span></td>
                             <td>病史</td>
-                            <td></td>
-                            <td>听力/视力障碍</td>
-                            <td></td>
-                        </tr>
-                        <tr>
-                           
-                            <td>透析频次</td>
-                            <td></td>
-                            <td>透析时长</td>
-                            <td></td>
+                            <td>{{ state.patientData.诊断 }}</td>
                             <td>透龄</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>
@@ -53,129 +77,155 @@
                             <td></td>
                         </tr>
                         <tr>
-                            <td>项目</td>
-                            <td>序号</td>
-                            <td>项目内容</td>
-                            <td>时间</td>
-                            <td>详情</td>
-                            <td>备注</td>
-                            <td>记录者</td>
+                            <th>项目</th>
+                            <!-- <td>序号</td> -->
+                            <th>项目内容</th>
+                            <th>时间</th>
+                            <th colspan="2">详情</th>
+                            <th>备注</th>
+                            <th>记录者</th>
                         </tr>
-                        <tr>
-                            <td rowspan="4">食物过敏史及
-                                <br/>胃肠功能评估</td>
-                            <td rowspan="2">1</td>
-                            <td rowspan="2">食物过敏源</td>
-                            <td></td>
-                            <td></td>
-                            <td></td>
-                            <td></td>
-                        </tr>
-                        <tr>
-                            <td></td>
-                            <td></td>
-                            <td></td>
-                            <td></td>
-                        </tr>
-                        <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>
                             
-                            <td rowspan="2">2</td>
-                            <td rowspan="2">胃肠功能评估</td>
-                            <td></td>
-                            <td></td>
-                            <td></td>
-                            <td></td>
-                        </tr>
-                        <tr>
-                            <td></td>
-                            <td></td>
-                            <td></td>
-                            <td></td>
-                        </tr>
+                        </template>
+
+                       
+                       
+                        
                         <!-- 饮食管理 -->
+
                         <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 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></td>
-                            <td></td>
-                            <td></td>
-                        </tr>
-                        <tr>
-                            <td></td>
-                            <td></td>
+                            <td colspan="2"></td>
                             <td></td>
                             <td></td>
                         </tr>
                         <tr>
-                            
-                            <td rowspan="2">3</td>
+                            <td></td>
+                            <td colspan="2"></td>
+                            <td></td>
+                            <td></td>
+                        </tr>
+                        <tr>
                             <td rowspan="2">饮食建议</td>
                             <td></td>
-                            <td></td>
+                            <td colspan="2"></td>
                             <td></td>
                             <td></td>
                         </tr>
                         <tr>
                             <td></td>
-                            <td></td>
+                            <td colspan="2"></td>
                             <td></td>
                             <td></td>
                         </tr>
                         <!-- 生活方式管理 -->
                          <tr>
                             <td rowspan="4">生活方式管理</td>
-                            <td rowspan="2">1</td>
+                            <!-- <td rowspan="2">1</td> -->
                             <td rowspan="2">生活习惯</td>
                             <td></td>
-                            <td></td>
+                            <td colspan="2"></td>
                             <td></td>
                             <td></td>
                         </tr>
                         <tr>
                             <td></td>
-                            <td></td>
+                            <td colspan="2"></td>
                             <td></td>
                             <td></td>
                         </tr>
                         <tr>
                             
-                            <td rowspan="2">2</td>
+                            <!-- <td rowspan="2">2</td> -->
                             <td rowspan="2">指导建议</td>
                             <td></td>
-                            <td></td>
+                            <td colspan="2"></td>
                             <td></td>
                             <td></td>
                         </tr>
                         <tr>
                             <td></td>
-                            <td></td>
+                            <td colspan="2"></td>
                             <td></td>
                             <td></td>
                         </tr>
                          <!-- 用药管理 -->
                          <tr>
                             <td rowspan="6">用药管理</td>
-                            <td rowspan="2">1</td>
+                            <!-- <td rowspan="2">1</td> -->
                             <td rowspan="2">用药调查</td>
                             <td></td>
-                            <td></td>
+                            <td colspan="2"></td>
                             <td></td>
                             <td></td>
                         </tr>
@@ -187,10 +237,10 @@
                         </tr>
                         <tr>
                             
-                            <td rowspan="2">2</td>
+                            <!-- <td rowspan="2">2</td> -->
                             <td rowspan="2">用药监督</td>
                             <td></td>
-                            <td></td>
+                            <td colspan="2"></td>
                             <td></td>
                             <td></td>
                         </tr>
@@ -202,10 +252,10 @@
                         </tr>
                         <tr>
                             
-                            <td rowspan="2">3</td>
+                            <!-- <td rowspan="2">3</td> -->
                             <td rowspan="2">指导建议</td>
                             <td></td>
-                            <td></td>
+                            <td colspan="2"></td>
                             <td></td>
                             <td></td>
                         </tr>
@@ -218,16 +268,278 @@
                         <!-- 随访 -->
                         <tr>
                             <td rowspan="2">随访</td>
-                            <td rowspan="2">1</td>
+                            <!-- <td rowspan="2">1</td> -->
                             <td rowspan="2">随访情况</td>
                             <td></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>
@@ -235,27 +547,7 @@
                     </table>
                 </div>
             </el-col>
-            <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
-                <div class="tableDiv">
-                    <table>
-                        <tr>
-                            <td rowspan="2">随访</td>
-                            <td rowspan="2">1</td>
-                            <td rowspan="2">随访情况</td>
-                            <td></td>
-                            <td></td>
-                            <td></td>
-                            <td></td>
-                        </tr>
-                        <tr>
-                            <td></td>
-                            <td></td>
-                            <td></td>
-                            <td></td>
-                        </tr>
-                    </table>
-                </div>
-            </el-col>
+            
         </el-row>
     </div>
     
@@ -265,32 +557,125 @@
 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: [],
+    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 = (str: string) => {
+const getData = async (str: string) => {
     console.log("子组件获取显示数据!" + str);
     console.log(props.tableHeight)
     var pam = {
-        patientCode: patientsInfo.value.code,
-        page: 1,
-        size: 100,
-        orderType: 1,
-        orderIsUse: 2,
-        desc: 1,
-        orderName: '',
+        patCode: patientsInfo.value.code,
     }
-    state.loading = true
+    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='GNIR营养评估分'"
+    const yinyangbiaodan1 = await list(pasm)
+    return yinyangbiaodan1
+}
 
 // 第二步:暴露方法
 defineExpose({ getData })
diff --git a/src/views/home/index.vue b/src/views/home/index.vue
index 13d4ad7..ae5ea81 100644
--- a/src/views/home/index.vue
+++ b/src/views/home/index.vue
@@ -337,7 +337,6 @@
     right: 30px;
     width: 200px;
     height: 100px;
-    background-color: #ffffff;
     color: rgb(16, 3, 3);
     padding: 10px;
     z-index: 999;
diff --git a/src/views/styles.css b/src/views/styles.css
new file mode 100644
index 0000000..9ba143d
--- /dev/null
+++ b/src/views/styles.css
@@ -0,0 +1,69 @@
+body {
+    font-family: Arial, sans-serif;
+    margin: 0;
+    padding: 0;
+    background-color: #f5f5f5;
+  }
+  
+  .container {
+    max-width: 1200px;
+    margin: 20px auto;
+    padding: 20px;
+    background: white;
+    border: 1px solid #ddd;
+    border-radius: 8px;
+    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
+  }
+  
+  .body-analysis {
+    display: flex;
+    align-items: flex-start;
+  }
+  
+  .body-figure {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    margin-right: 20px;
+  }
+  
+  .figure {
+    width: 50px;
+    height: 200px;
+    background: linear-gradient(to bottom, #87CEEB 37%, #A0D6B4 22%, #FFE4B5 17%, #FFB6C1 4%, #D3D3D3 18%);
+    border-radius: 10px;
+    position: relative;
+  }
+  
+  .figure-percentage {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    margin-bottom: 10px;
+  }
+  
+  .figure-percentage p {
+    margin: 0;
+  }
+  
+  .analysis-table {
+    width: 100%;
+    border-collapse: collapse;
+  }
+  
+  .analysis-table th,
+  .analysis-table td {
+    border: 1px solid #ddd;
+    text-align: center;
+    padding: 10px;
+  }
+  
+  .analysis-table th {
+    background-color: #4682B4;
+    color: white;
+  }
+  
+  .analysis-table tbody tr:nth-child(odd) {
+    background-color: #f9f9f9;
+  }
+  
\ No newline at end of file
diff --git a/src/views/test.html b/src/views/test.html
new file mode 100644
index 0000000..b16581a
--- /dev/null
+++ b/src/views/test.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>人体成分分析报告</title>
+    <style>
+        body {
+            font-family: Arial, sans-serif;
+            margin: 0;
+            padding: 0;
+        }
+
+        .container {
+            width: 100%;
+            max-width: 1200px;
+            margin: 0 auto;
+            padding: 20px;
+            background-color: #f4f4f4;
+        }
+
+        h1 {
+            color: #c0392b;
+            text-align: center;
+        }
+
+        table {
+            width: 100%;
+            border-collapse: collapse;
+        }
+
+        th, td {
+            border: 1px solid #ddd;
+            padding: 8px;
+            text-align: left;
+        }
+
+        th {
+            background-color: #3498db;
+            color: white;
+        }
+
+        section {
+            margin-top: 20px;
+        }
+
+        .chart {
+            display: flex;
+            justify-content: space-between;
+        }
+
+        .chart img {
+            width: 48%;
+        }
+
+        .analysis {
+            margin-top: 20px;
+        }
+
+        .analysis p {
+            margin-bottom: 10px;
+        }
+    </style>
+</head>
+<body>
+    <div class="container">
+        <h1>人体成分分析报告</h1>
+
+        <section>
+            <h2>基本信息</h2>
+            <table>
+                <tr>
+                    <th>姓名</th>
+                    <th>ID编号</th>
+                    <th>性别</th>
+                    <th>年龄</th>
+                    <th>测试日期</th>
+                </tr>
+                <tr>
+                    <td>Jonson</td>
+                    <td>7347204156</td>
+                    <td>男</td>
+                    <td>39</td>
+                    <td>2019.09.27 00:00</td>
+                </tr>
+            </table>
+        </section>
+
+        <section>
+            <h2>人体成分分析</h2>
+            <table>
+                <tr>
+                    <th>项目</th>
+                    <th>测量值</th>
+                    <th>体内水分</th>
+                    <th>肌肉量</th>
+                    <th>去脂肪质量</th>
+                    <th>体重</th>
+                    <th>标准范围</th>
+                </tr>
+                <tr>
+                    <td>细胞内水份(L)</td>
+                    <td>30.8</td>
+                    <td>49.6</td>
+                    <td>64.2</td>
+                    <td>67.8</td>
+                    <td>83.1</td>
+                    <td>22.7~27.7</td>
+                </tr>
+                <!-- 更多行... -->
+            </table>
+        </section>
+
+        <section class="chart">
+            <img src="path_to_image_1.png" alt="Image 1">
+            <img src="path_to_image_2.png" alt="Image 2">
+        </section>
+
+        <section>
+            <h2>综合评价</h2>
+            <p>总分:88.0 / 100 分</p>
+            <p>目标调节指导:...</p>
+            <!-- 更多段落... -->
+        </section>
+
+        <section>
+            <h2>节段肌肉与脂肪分析及体型判定</h2>
+            <img src="path_to_image_3.png" alt="Image 3">
+            <p>体型判定:过重肌肉型</p>
+        </section>
+
+        <section>
+            <h2>肌肉品质</h2>
+            <img src="path_to_image_4.png" alt="Image 4">
+            <p>肌肉品质综合评价:78 / 100 分</p>
+        </section>
+
+        <section>
+            <h2>人体成分历史变化</h2>
+            <img src="path_to_image_5.png" alt="Image 5">
+        </section>
+    </div>
+</body>
+</html>
\ No newline at end of file

--
Gitblit v1.8.0