From 4afd7755b465829a21b238fc0ccb98d08a8381e6 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期四, 27 二月 2025 14:23:36 +0800
Subject: [PATCH] gx

---
 src/views/home/components/fangAn/editDietary.vue |  169 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 155 insertions(+), 14 deletions(-)

diff --git a/src/views/home/components/fangAn/editDietary.vue b/src/views/home/components/fangAn/editDietary.vue
index e244a5e..a7c9e77 100644
--- a/src/views/home/components/fangAn/editDietary.vue
+++ b/src/views/home/components/fangAn/editDietary.vue
@@ -2,7 +2,7 @@
     <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" class="print-section">
+                <div id="fanganprintFrom1" class="print-section">
                     <div>
                         <el-form size="small">
                             <div style="width: 100%">
@@ -177,15 +177,88 @@
                                         <td class="htr" rowspan="7">营养师指导建议</td>
                                         <td rowspan="3">透析饮食指导</td>
                                         <td>能量</td>
-                                        <td> <el-input v-model="state.tableData.营养师指导建议.透析饮食指导.能量" placeholder="" />
+                                        <td>
+                                             <el-input v-model="state.tableData.营养师指导建议.透析饮食指导.能量" placeholder="" >
+                                                <template #append>
+                                                    <span @click="state.centerDialogVisibleNL=true">计算</span>
+                                                    
+                                                </template>
+                                            </el-input>
+                                            <el-dialog v-model="state.centerDialogVisibleNL" title="计算能量" width="400" center>
+                                                <span>
+                                                    <div style="text-align: center">
+                                                       
+                                                        <span> 体重:{{state.最近一次体重}}</span>*
+                                                        <span><el-input-number v-model="state.nljsz"></el-input-number> </span>
+                                                        ={{nlValue}}
+                                                    </div>
+                                                   
+                                                </span>
+                                                <template #footer>
+                                                <div class="dialog-footer">     
+                                                    <el-button @click="state.centerDialogVisibleNL = false">取消</el-button>
+                                                    <el-button type="primary" @click="nlqd">
+                                                        确定
+                                                    </el-button>
+                                                </div>
+                                                </template>
+                                            </el-dialog>
                                         </td>
                                         <td>蛋白质</td>
                                         <td>
-                                            <el-input v-model="state.tableData.营养师指导建议.透析饮食指导.蛋白质" placeholder="" />
+                                            <el-input v-model="state.tableData.营养师指导建议.透析饮食指导.蛋白质" placeholder="">
+                                                <template #append>
+                                                    <span @click="state.centerDialogVisibleDBZ=true">计算</span>
+                                                    
+                                                </template>
+                                            </el-input>
+                                            <el-dialog v-model="state.centerDialogVisibleDBZ" title="计算蛋白质" width="400" center>
+                                                <span>
+                                                    <div style="text-align: center">
+                                                       
+                                                        <span> 体重:{{state.最近一次体重}}</span>*
+                                                        <span><el-input-number :step="0.1" v-model="state.dbzjsz"></el-input-number> </span>
+                                                        ={{dbzValue}}
+                                                    </div>
+                                                   
+                                                </span>
+                                                <template #footer>
+                                                <div class="dialog-footer">     
+                                                    <el-button @click="state.centerDialogVisibleDBZ = false">取消</el-button>
+                                                    <el-button type="primary" @click="dbzqd">
+                                                        确定
+                                                    </el-button>
+                                                </div>
+                                                </template>
+                                            </el-dialog>
                                         </td>
                                         <td>优质蛋白</td>
                                         <td>
-                                            <el-input v-model="state.tableData.营养师指导建议.透析饮食指导.优质蛋白" placeholder="" />
+                                            <el-input v-model="state.tableData.营养师指导建议.透析饮食指导.优质蛋白" placeholder="" >
+                                                <template #append>
+                                                    <span @click="state.centerDialogVisibleYZDBZ=true">计算</span>
+                                                </template>
+                                                
+                                            </el-input>
+                                            <el-dialog v-model="state.centerDialogVisibleYZDBZ" title="计算蛋白质" width="400" center>
+                                                <span>
+                                                    <div style="text-align: center">
+                                                       
+                                                        <span> 蛋白质:{{state.tableData.营养师指导建议.透析饮食指导.蛋白质}}</span>*
+                                                        <span><el-input-number :step="0.1" v-model="state.yzdbzjsz"></el-input-number> </span>
+                                                        ={{yzdbzValue}}
+                                                    </div>
+                                                   
+                                                </span>
+                                                <template #footer>
+                                                <div class="dialog-footer">     
+                                                    <el-button @click="state.centerDialogVisibleYZDBZ = false">取消</el-button>
+                                                    <el-button type="primary" @click="yzdbzqd">
+                                                        确定
+                                                    </el-button>
+                                                </div>
+                                                </template>
+                                            </el-dialog>
                                         </td>
                                     </tr>
                                     <tr>
@@ -536,7 +609,7 @@
                     <el-button type="primary" @click="onSubmit">
                         保存
                     </el-button>
-                    <el-button v-if="state.viewInfo.id" type="primary" v-print="'#printFrom1'">
+                    <el-button v-if="state.viewInfo.id" type="primary" v-print="'#fanganprintFrom1'">
                         <el-icon>
                             <Printer />
                         </el-icon>
@@ -579,16 +652,17 @@
 </template>
 
 <script setup lang="ts" name="visualizingLinkDemo2">
-import { Check } from '@element-plus/icons-vue'
+import { Check,Edit } 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 { reactive, onMounted, onUnmounted, ref,computed} from 'vue';
 import { formatDate } from '/@/utils/formatTime';
 import { NextLoading } from '/@/utils/loading';
 import { useUserInfo } from '/@/stores/userInfo';
 import { usePatientsInfo } from '/@/stores/patientsInfo';
 const storesPat = usePatientsInfo();
+import { getPatData} from '/@/api/Patients';
 import { Add, update, deleteId, tiaochabiaoInfo, list } from '/@/api/tiaochabiao/index'
 import { storeToRefs } from 'pinia';
 import { useRoute, useRouter } from 'vue-router';
@@ -599,6 +673,13 @@
 const router = useRouter()
 const emit = defineEmits(["shuaxin"]);
 const state = reactive({
+    centerDialogVisibleYZDBZ:false,
+    yzdbzjsz:2,
+    centerDialogVisibleDBZ:false,
+    dbzjsz:1.2,
+    centerDialogVisibleNL:false,
+    最近一次体重:0,
+    nljsz:30,
     modeType:'',
     mobanlist:[
         '食材提前浸泡、焯水,可以去除1/2-2/3的磷钾;',
@@ -743,6 +824,59 @@
     }
 
 })
+const numberPart=(str:any)=>{
+    if(str){
+         // 使用正则表达式匹配数字
+        const numberPart = str.match(/\d+/);
+        // 将匹配到的数字字符串转换为数字
+        const num = numberPart ? Number(numberPart[0]) : '';
+        return num
+    }else{
+        return ''
+    }
+   
+
+}
+// 优质蛋白质确定
+const yzdbzqd=()=>{
+    state.centerDialogVisibleYZDBZ = false
+    state.tableData.营养师指导建议.透析饮食指导.优质蛋白=yzdbzValue.value
+}
+const yzdbzValue= computed(() => {
+    if(state.最近一次体重&&numberPart(state.tableData.营养师指导建议.透析饮食指导.蛋白质)){
+        return Number(Number(numberPart(state.tableData.营养师指导建议.透析饮食指导.蛋白质))/state.yzdbzjsz).toFixed(0)+'g'
+    }
+    else{
+        return ''
+    }
+})
+const dbzValue= computed(() => {
+    if(state.最近一次体重){
+        return Number(Number(state.最近一次体重)*state.dbzjsz).toFixed(0)+'g'
+    }
+    else{
+        return ''
+    }
+})
+// 蛋白质确定
+const dbzqd=()=>{
+    state.centerDialogVisibleDBZ = false
+    state.tableData.营养师指导建议.透析饮食指导.蛋白质=dbzValue.value
+}
+//能量计算
+const nlValue= computed(() => {
+    if(state.最近一次体重){
+        return Number(Number(state.最近一次体重)*state.nljsz).toFixed(0)+'kcal'
+    }
+    else{
+        return ''
+    }
+})
+// 能量确定
+const nlqd=()=>{
+    state.centerDialogVisibleNL = false
+    state.tableData.营养师指导建议.透析饮食指导.能量=nlValue.value
+}
 const Edit1=(mode)=>{
     state.innerVisible=true
     state.modeType=mode
@@ -805,7 +939,7 @@
 
 }
 const generatePDF = () => {
-    const element = document.getElementById('printFrom1');
+    const element = document.getElementById('fanganprintFrom1');
     const opt = {
         margin: 0,
         filename: `${state.tableData.表名}.pdf`,
@@ -980,17 +1114,22 @@
     if (from2.data.list.length >= 1) {
         const from2Json = JSON.parse(from2.data.list[0].surveryJsonBody)
         console.log(from2Json)
-        state.tableData.营养筛查评估.营养风险筛查结果= '评估得分:'+from2Json.结果?.value+', 评估结果:'+from2Json.结果?.label
+        state.tableData.营养筛查评估.营养风险筛查结果=from2Json.表名+ ' 评估得分:'+from2Json.结果?.value+', 评估结果:'+from2Json.结果?.label
     }
     if (from3.data.list.length >= 1) {
         const from3Json = JSON.parse(from3.data.list[0].surveryJsonBody)
-        state.tableData.营养筛查评估.营养评估结果='评估得分:'+from3Json.结果?.value+', 评估结果:'+from3Json.结果?.label
+        state.tableData.营养筛查评估.营养评估结果=from3Json.表名+ ' 评估得分:'+from3Json.结果?.value+', 评估结果:'+from3Json.结果?.label
     
         console.log(from3Json)
     }
-
-
-
+}
+// 获取最近的一次体重
+const getPatDatas= ()=>{
+     getPatData({ patCode: patientsInfo.value.code }).then(res=>{
+        if(res.data?.上一次透前体重){
+            state.最近一次体重=res.data?.上一次透前体重
+        }
+     })
 }
 // 获取膳食调查表
 const getFrom1 = async () => {
@@ -1037,6 +1176,8 @@
 // 打开查看或者编辑明细
 const openShow = (type: string, mode: tiaochabiaoInfo) => {
     console.log(type)
+    console.log(patientsInfo.value)
+    getPatDatas()
     if (type === 'add') {
         getPageInfo()
         state.dialogTableVisible = true
@@ -1062,7 +1203,7 @@
 <style scoped lang="scss">
 .gridtable {
     font-family: verdana, arial, sans-serif;
-    font-size: 11px;
+
     color: #333333;
     border-width: 1px;
     border-color: #666666;

--
Gitblit v1.8.0