From 08033e15dd52f565ff1df210623c0c1abba721e7 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期一, 17 二月 2025 18:50:28 +0800
Subject: [PATCH] 34

---
 src/views/home/components/fangAn/editDietary.vue |  270 +++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 187 insertions(+), 83 deletions(-)

diff --git a/src/views/home/components/fangAn/editDietary.vue b/src/views/home/components/fangAn/editDietary.vue
index 675ef16..e15b809 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">
+        <el-dialog v-model="state.dialogTableVisible" title="营养饮食指导方案" :fullscreen="true" width="100%">
+            <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>
@@ -63,66 +64,15 @@
                                         </td>
                                     </tr>
                                     <tr>
-                                        <td class="htr">饮食回顾时间</td>
-                                        <td class="htr">早餐</td>
-                                        <td class="htr">加餐</td>
-                                        <td class="htr">午餐</td>
-                                        <td class="htr">加餐</td>
-                                        <td class="htr">晚餐</td>
-                                        <td class="htr">加餐</td>
-                                        <td class="htr">其他</td>
-
+                                        <td  class="htr">营养记录汇总</td>
+                                        <td colspan="7">
+                                            <el-form-item>
+                                                <el-input v-model="state.tableData.营养记录汇总" type="textarea"
+                                                    :autosize="{ minRows: 1, maxRows: 3 }" placeholder="营养记录汇总" />
+                                            </el-form-item>
+                                        </td>
                                     </tr>
-                                    <tr>
-                                        <td class="htr">透析日</td>
-                                        <td>
-                                            <el-input v-model="state.tableData.透析日.早餐" placeholder="" />
-                                        </td>
-                                        <td>
-                                            <el-input v-model="state.tableData.透析日.早加餐" placeholder="" />
-                                        </td>
-                                        <td>
-                                            <el-input v-model="state.tableData.透析日.午餐" placeholder="" />
-                                        </td>
-                                        <td>
-                                            <el-input v-model="state.tableData.透析日.午加餐" placeholder="" />
-                                        </td>
-                                        <td>
-                                            <el-input v-model="state.tableData.透析日.晚餐" placeholder="" />
-                                        </td>
-                                        <td>
-                                            <el-input v-model="state.tableData.透析日.加餐" placeholder="" />
-                                        </td>
-                                        <td>
-                                            <el-input v-model="state.tableData.透析日.其他" placeholder="" />
-                                        </td>
-
-                                    </tr>
-                                    <tr>
-                                        <td class="htr">非透析日</td>
-                                        <td>
-                                            <el-input v-model="state.tableData.非透析日.早餐" placeholder="" />
-                                        </td>
-                                        <td>
-                                            <el-input v-model="state.tableData.非透析日.早加餐" placeholder="" />
-                                        </td>
-                                        <td>
-                                            <el-input v-model="state.tableData.非透析日.午餐" placeholder="" />
-                                        </td>
-                                        <td>
-                                            <el-input v-model="state.tableData.非透析日.午加餐" placeholder="" />
-                                        </td>
-                                        <td>
-                                            <el-input v-model="state.tableData.非透析日.晚餐" placeholder="" />
-                                        </td>
-                                        <td>
-                                            <el-input v-model="state.tableData.非透析日.加餐" placeholder="" />
-                                        </td>
-                                        <td>
-                                            <el-input v-model="state.tableData.非透析日.其他" placeholder="" />
-                                        </td>
-
-                                    </tr>
+                                   
                                     <tr>
                                         <td class="htr">饮食问题</td>
                                         <td colspan="7">
@@ -204,6 +154,16 @@
                                             A:营养评估结果,计算所需摄入量</td>
                                     </tr>
                                     <tr>
+                                        <td class="htr">营养饮食现状</td>
+
+                                        <td colspan="7">
+                                            <el-form-item>
+                                                <el-input v-model="state.tableData.营养饮食现状" type="textarea"
+                                                    :autosize="{ minRows: 1, maxRows: 3 }" placeholder="" />
+                                            </el-form-item>
+                                        </td>
+                                    </tr>
+                                    <tr>
                                         <td class="htr">营养指导初期目标</td>
 
                                         <td colspan="7">
@@ -214,7 +174,7 @@
                                         </td>
                                     </tr>
                                     <tr>
-                                        <td class="htr" rowspan="6">营养师指导建议</td>
+                                        <td class="htr" rowspan="7">营养师指导建议</td>
                                         <td rowspan="3">透析饮食指导</td>
                                         <td>能量</td>
                                         <td> <el-input v-model="state.tableData.营养师指导建议.透析饮食指导.能量" placeholder="" />
@@ -296,7 +256,23 @@
                                                 placeholder="" />
                                         </td>
                                     </tr>
-
+                                    <tr>
+                                        <td >其他指导</td>
+                                        <td>便秘</td>
+                                        <td>
+                                            <el-input v-model="state.tableData.营养师指导建议.其他指导.便秘" placeholder="" />
+                                        </td>
+                                        <td>腹泻</td>
+                                        <td>
+                                            <el-input v-model="state.tableData.营养师指导建议.其他指导.腹泻" placeholder="" />
+                                        </td>
+                                        <td>体重管理</td>
+                                        <td>
+                                            <el-input v-model="state.tableData.营养师指导建议.其他指导.体重管理"
+                                                placeholder="" />
+                                        </td>
+                                    </tr>
+                                    <tr class="page-break"></tr>
                                     <tr>
                                         <td colspan="8" style=" background-color: rgb(250, 236, 216);font-weight:800 ;">
                                             P:饮食营养方案及食谱,定期随访并及时调整</td>
@@ -311,7 +287,7 @@
                                             </el-form-item>
                                         </td>
                                         <td>
-                                            <el-button type="primary" :icon="Edit">模版</el-button>
+                                            <el-button type="primary"  @click="Edit1('烹饪技巧')" :icon="Edit">模版</el-button>
                                         </td>
                                     </tr>
                                     <tr>
@@ -324,7 +300,7 @@
                                             </el-form-item>
                                         </td>
                                         <td>
-                                            <el-button type="primary" :icon="Edit">模版</el-button>
+                                            <el-button type="primary" @click="Edit1('食材选择')"  :icon="Edit">模版</el-button>
                                         </td>
                                     </tr>
                                     <tr>
@@ -337,7 +313,7 @@
                                             </el-form-item>
                                         </td>
                                         <td>
-                                            <el-button type="primary" :icon="Edit">模版</el-button>
+                                            <el-button type="primary" @click="Edit1('少盐控油')" :icon="Edit">模版</el-button>
                                         </td>
                                     </tr>
                                     <tr>
@@ -350,7 +326,7 @@
                                             </el-form-item>
                                         </td>
                                         <td>
-                                            <el-button type="primary" :icon="Edit">模版</el-button>
+                                            <el-button type="primary" @click="Edit1('适量饮水量出为入')" :icon="Edit">模版</el-button>
                                         </td>
                                     </tr>
                                     <tr>
@@ -490,6 +466,7 @@
                                             </el-input>
                                         </td>
                                     </tr>
+                                    
                                     <tr>
                                         <td colspan="8" style=" background-color: rgb(250, 236, 216);font-weight:800 ;">
                                             食物替换法</td>
@@ -574,6 +551,26 @@
 
                 </div>
             </template>
+            <el-dialog
+                v-model="state.innerVisible"
+                width="700"
+                title="模版"
+                append-to-body
+                >
+            <span>
+                <el-row v-for="(item,index) in state.mobanlist" :key="index" style="border-bottom: #909399 solid 1px;margin-bottom:20px ;">
+                    <el-col :span="22">
+                        <div>
+                            {{item}}
+                        </div>
+                    </el-col>
+                    <el-col :span="2" style="text-align:right" @click="setText(item)">
+                        <el-button  size="mini" :icon="Check" circle />
+                        <!-- <el-button size="mini">应用</el-button> -->
+                    </el-col>
+                </el-row>
+            </span>
+            </el-dialog>
         </el-dialog>
 
 
@@ -582,8 +579,10 @@
 </template>
 
 <script setup lang="ts" name="visualizingLinkDemo2">
-import { Edit } from '@element-plus/icons-vue'
+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';
@@ -600,16 +599,25 @@
 const router = useRouter()
 const emit = defineEmits(["shuaxin"]);
 const state = reactive({
+    modeType:'',
+    mobanlist:[
+        '食材提前浸泡、焯水,可以去除1/2-2/3的磷钾;',
+        '少盐控油,可以适量使用葱姜蒜等天然调味品进行调味;',
+        '避免使用糖、味精、鸡精、黄豆酱、低钠盐等调味品;',
+        '选择蒸、煮、焖、炖、炒等做法,避免高温油炸等做法'
+    ],
     dialogTableVisible: false,
+    innerVisible:false,
     tableData: {
         表名: '患者方案表',
-        初次调查日期: "",
+        实施日期: "",
         填表日期: '',
         更新日期: '',
         记录者: '陈银成',
         食物过敏原: "",
         胃肠功能状况: "",
         蛋白粉补充情况: "",
+        营养记录汇总:"",
         透析日: {
             早餐: '',
             早加餐: '',
@@ -645,6 +653,7 @@
         异常生化指标: '',
         // A:营养评估结果,计算所需摄入量
         营养指导初期目标: '',//优先改善( )的问题,遵循血透饮食低磷低钾优质蛋白充足能量的饮食原则
+        营养饮食现状:'',
         营养师指导建议: {
             透析饮食指导: {
                 能量: "",
@@ -666,6 +675,11 @@
                 高尿酸: '',
                 高钾血症: '',
                 蛋白质能量摄入不足: ''
+            },
+            其他指导:{
+                便秘:'',
+                腹泻:'',
+                体重管理:''
             }
         },
         // P:饮食营养方案及食谱,定期随访并及时调整
@@ -723,13 +737,66 @@
         surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
         surveryPerson: userInfos.value.code,
         surveryJsonBody: '',
-        suveryFormName: '营养指导报告',
+        suveryFormName: '营养饮食指导方案',
         surveryFormType: 2,
         updateTime: ''
     }
 
 })
-
+const Edit1=(mode)=>{
+    state.innerVisible=true
+    state.modeType=mode
+    if( state.modeType==='烹饪技巧'){
+        state.mobanlist=[
+            '食材提前浸泡、焯水,可以去除1/2-2/3的磷钾;',
+            '少盐控油,可以适量使用葱姜蒜等天然调味品进行调味;',
+            '避免使用糖、味精、鸡精、黄豆酱、低钠盐等调味品;',
+            '选择蒸、煮、焖、炖、炒等做法,避免高温油炸等做法'
+        ]
+    }else if( state.modeType==='食材选择'){
+        state.mobanlist=[
+            '均衡饮食,食物多样化,建议每天摄入12种以上食物,每周达到25种',
+            '建议优先从优质蛋白质食物摄入,必要时补充肾友专用低磷低钾乳清蛋白粉。优质蛋白质通常富含于动物性食物和大豆中,优先选择鱼禽类,其次是大豆类,最后是蛋奶畜肉。',
+            '新鲜蔬菜和水果富含维生素,必要时可补充维生素B12 和叶酸;适量膳食纤维摄入对维持肠道健康有利,建议每日膳食纤维摄入量为25-30g,建议增加蔬菜摄入量至6两-1斤,血钾正常时,可安排4两内低钾水果。'
+        ]
+    }else if( state.modeType==='少盐控油'){
+        state.mobanlist=[
+            '推荐患者每日盐摄入量不超过3g,不吃烟熏、烧烤、腌制等过度加工食品,少吃酱油、味精、鸡精、各种酱料等调味品。建议烹调油摄入量不超过25-40g,可适当增加富含中链甘油三酯或w-3脂肪酸的油脂,如亚麻籽油、紫苏籽油等作为能量补充来源。',
+        ]
+    }else if( state.modeType==='适量饮水量出为入'){
+        state.mobanlist=[
+            '水分摄入需根据每天的尿液排出量及透析脱水量来计划饮水量,除了计算饮用水,还要考虑用水加工成粥、汤等及蔬菜、水果中所含的水,建议不喝浓肉汤、老火汤、菜汤。'
+        ]
+    }
+}
+const setText=(item)=>{
+    if( state.modeType==='烹饪技巧'){
+        if(state.tableData.烹饪技巧!==''){
+            state.tableData.烹饪技巧+=`\n${item}`
+        }else{
+            state.tableData.烹饪技巧+=item
+        }
+        
+    }else if( state.modeType==='食材选择'){
+        if(state.tableData.食材选择!==''){
+            state.tableData.食材选择+=`\n${item}`
+        }else{
+            state.tableData.食材选择+=item
+        }
+    }else if( state.modeType==='少盐控油'){
+        if(state.tableData.少盐控油!==''){
+            state.tableData.少盐控油+=`\n${item}`
+        }else{
+            state.tableData.少盐控油+=item
+        }
+    }else if( state.modeType==='适量饮水量出为入'){
+        if(state.tableData.适量饮水量出为入!==''){
+            state.tableData.适量饮水量出为入+=`\n${item}`
+        }else{
+            state.tableData.适量饮水量出为入+=item
+        }
+    }
+}
 const funhui = () => {
     state.dialogTableVisible = false
 }
@@ -740,7 +807,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 },
@@ -761,7 +828,7 @@
         surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
         surveryPerson: userInfos.value.code,
         surveryJsonBody: JSON.stringify(state.tableData),
-        suveryFormName: '营养指导报告',
+        suveryFormName: '营养饮食指导方案',
         updateTime: ''
     }
     console.log(info)
@@ -784,13 +851,14 @@
 const getPageInfo = async () => {
     state.tableData = {
         表名: '患者方案表',
-        初次调查日期: "",
+        实施日期: formatDate(new Date(),'YYYY-mm-dd'),
         填表日期: '',
         更新日期: '',
-        记录者: '陈银成',
+        记录者: userInfos.value.userName,
         食物过敏原: "",
         胃肠功能状况: "",
         蛋白粉补充情况: "",
+        营养记录汇总:"",
         透析日: {
             早餐: '',
             早加餐: '',
@@ -826,6 +894,7 @@
         异常生化指标: '',
         // A:营养评估结果,计算所需摄入量
         营养指导初期目标: '',//优先改善( )的问题,遵循血透饮食低磷低钾优质蛋白充足能量的饮食原则
+        营养饮食现状:'',
         营养师指导建议: {
             透析饮食指导: {
                 能量: "",
@@ -847,6 +916,11 @@
                 高尿酸: '',
                 高钾血症: '',
                 蛋白质能量摄入不足: ''
+            },
+            其他指导:{
+                便秘:'',
+                腹泻:'',
+                体重管理:''
             }
         },
         // P:饮食营养方案及食谱,定期随访并及时调整
@@ -888,6 +962,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()
@@ -898,7 +984,7 @@
         state.tableData.胃肠功能状况=from1Json.胃肠道紊乱者.input1
         state.tableData.生活习惯.大小便=from1Json.排便情况.input1
         state.tableData.生活习惯.睡眠=from1Json.睡眠.input1
-        state.tableData.生活习惯.吞咽咀嚼功能=from1Json.排便情况.input1
+        state.tableData.生活习惯.吞咽咀嚼功能=''
         state.tableData.生活习惯.烟酒=from1Json.是否吸烟.type+''+from1Json.是否饮酒.type
         state.tableData.生活习惯.运动=from1Json.运动.input1
         state.tableData.透析日.早餐=from1Json.三天饮食记录表.透析日1.早餐
@@ -910,7 +996,7 @@
         state.tableData.非透析日.早餐=from1Json.三天饮食记录表.非透析日.早餐
         state.tableData.非透析日.早加餐=from1Json.三天饮食记录表.非透析日.加餐1
         state.tableData.非透析日.午餐=from1Json.三天饮食记录表.非透析日.午餐
-        state.tableData.非透析日天.午加餐=from1Json.三天饮食记录表.非透析日.加餐2
+        state.tableData.非透析日.午加餐=from1Json.三天饮食记录表.非透析日.加餐2
         state.tableData.非透析日.晚餐=from1Json.三天饮食记录表.非透析日.晚餐
 
 
@@ -952,7 +1038,7 @@
         wherecondition: `survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
         ordercondition: 'survery_time desc'
     }
-    pasm.wherecondition += "and suvery_form_name='营养风险筛查表(NRS2002)'"
+    pasm.wherecondition += "and suvery_form_name='NRS2002'"
     const yinyangbiaodan1 = await list(pasm)
     return yinyangbiaodan1
 }
@@ -964,7 +1050,7 @@
         wherecondition: `survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
         ordercondition: 'survery_time desc'
     }
-    pasm.wherecondition += "and suvery_form_name='GNIR营养评估分'"
+    pasm.wherecondition += "and suvery_form_name='GNRI'"
     const yinyangbiaodan1 = await list(pasm)
     return yinyangbiaodan1
 }
@@ -985,6 +1071,8 @@
         console.log(mode)
         state.viewInfo = mode
         state.tableData = JSON.parse(mode.surveryJsonBody)
+        state.tableData.实施日期=mode.surveryTime
+        state.tableData.更新日期=mode.updateTime
         state.dialogTableVisible = true
 
 
@@ -1005,7 +1093,7 @@
     border-width: 1px;
     border-color: #666666;
     border-collapse: collapse;
-
+    
 }
 
 .gridtable th {
@@ -1033,4 +1121,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>

--
Gitblit v1.8.0