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 | 320 +++++++++++++++++++++++++++++++++++------------------
1 files changed, 212 insertions(+), 108 deletions(-)
diff --git a/src/views/home/components/fangAn/editDietary.vue b/src/views/home/components/fangAn/editDietary.vue
index 7219e2c..a7c9e77 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%">
+ <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%">
@@ -64,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">
@@ -205,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">
@@ -215,18 +174,91 @@
</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="" />
+ <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>
@@ -294,6 +326,22 @@
<td>蛋白质能量摄入不足</td>
<td>
<el-input v-model="state.tableData.营养师指导建议.特殊饮食指导.蛋白质能量摄入不足"
+ 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>
@@ -561,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>
@@ -604,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';
@@ -624,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的磷钾;',
@@ -642,6 +698,7 @@
食物过敏原: "",
胃肠功能状况: "",
蛋白粉补充情况: "",
+ 营养记录汇总:"",
透析日: {
早餐: '',
早加餐: '',
@@ -677,6 +734,7 @@
异常生化指标: '',
// A:营养评估结果,计算所需摄入量
营养指导初期目标: '',//优先改善( )的问题,遵循血透饮食低磷低钾优质蛋白充足能量的饮食原则
+ 营养饮食现状:'',
营养师指导建议: {
透析饮食指导: {
能量: "",
@@ -698,6 +756,11 @@
高尿酸: '',
高钾血症: '',
蛋白质能量摄入不足: ''
+ },
+ 其他指导:{
+ 便秘:'',
+ 腹泻:'',
+ 体重管理:''
}
},
// P:饮食营养方案及食谱,定期随访并及时调整
@@ -755,12 +818,65 @@
surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
surveryPerson: userInfos.value.code,
surveryJsonBody: '',
- suveryFormName: '营养指导报告',
+ suveryFormName: '营养饮食指导方案',
surveryFormType: 2,
updateTime: ''
}
})
+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
@@ -823,7 +939,7 @@
}
const generatePDF = () => {
- const element = document.getElementById('printFrom1');
+ const element = document.getElementById('fanganprintFrom1');
const opt = {
margin: 0,
filename: `${state.tableData.表名}.pdf`,
@@ -846,7 +962,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)
@@ -876,6 +992,7 @@
食物过敏原: "",
胃肠功能状况: "",
蛋白粉补充情况: "",
+ 营养记录汇总:"",
透析日: {
早餐: '',
早加餐: '',
@@ -911,6 +1028,7 @@
异常生化指标: '',
// A:营养评估结果,计算所需摄入量
营养指导初期目标: '',//优先改善( )的问题,遵循血透饮食低磷低钾优质蛋白充足能量的饮食原则
+ 营养饮食现状:'',
营养师指导建议: {
透析饮食指导: {
能量: "",
@@ -932,6 +1050,11 @@
高尿酸: '',
高钾血症: '',
蛋白质能量摄入不足: ''
+ },
+ 其他指导:{
+ 便秘:'',
+ 腹泻:'',
+ 体重管理:''
}
},
// P:饮食营养方案及食谱,定期随访并及时调整
@@ -981,53 +1104,32 @@
surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
surveryPerson: userInfos.value.code,
surveryJsonBody: '',
- suveryFormName: '营养指导报告',
+ suveryFormName: '营养饮食指导方案',
surveryFormType: 2,
updateTime: ''
};
const from1 = await getFrom1()
const from2 = await getFrom2()
const from3 = await getFrom3()
- if (from1.data.list.length >= 1) {
- const from1Json = JSON.parse(from1.data.list[0].surveryJsonBody)
- console.log(from1Json)
- state.tableData.食物过敏原= from1Json.过敏食物.type.join()
- state.tableData.胃肠功能状况=from1Json.胃肠道紊乱者.input1
- state.tableData.生活习惯.大小便=from1Json.排便情况.input1
- state.tableData.生活习惯.睡眠=from1Json.睡眠.input1
- state.tableData.生活习惯.吞咽咀嚼功能=from1Json.排便情况.input1
- state.tableData.生活习惯.烟酒=from1Json.是否吸烟.type+''+from1Json.是否饮酒.type
- state.tableData.生活习惯.运动=from1Json.运动.input1
- state.tableData.透析日.早餐=from1Json.三天饮食记录表.透析日1.早餐
- state.tableData.透析日.早加餐=from1Json.三天饮食记录表.透析日1.加餐1
- state.tableData.透析日.午餐=from1Json.三天饮食记录表.透析日1.午餐
- state.tableData.透析日.午加餐=from1Json.三天饮食记录表.透析日1.加餐2
- state.tableData.透析日.晚餐=from1Json.三天饮食记录表.透析日1.晚餐
-
- state.tableData.非透析日.早餐=from1Json.三天饮食记录表.非透析日.早餐
- state.tableData.非透析日.早加餐=from1Json.三天饮食记录表.非透析日.加餐1
- state.tableData.非透析日.午餐=from1Json.三天饮食记录表.非透析日.午餐
- state.tableData.非透析日.午加餐=from1Json.三天饮食记录表.非透析日.加餐2
- state.tableData.非透析日.晚餐=from1Json.三天饮食记录表.非透析日.晚餐
-
-
-
-
-
- }
if (from2.data.list.length >= 1) {
const from2Json = JSON.parse(from2.data.list[0].surveryJsonBody)
console.log(from2Json)
- state.tableData.营养筛查评估.营养风险筛查结果=from2Json.结果
+ 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.结果
+ 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,7 +1139,7 @@
wherecondition: `survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
ordercondition: 'survery_time desc'
}
- pasm.wherecondition += "and suvery_form_name='膳食调查表'"
+ pasm.wherecondition += "and suvery_form_name='膳食生活调查表'"
const yinyangbiaodan1 = await list(pasm)
return yinyangbiaodan1
}
@@ -1049,7 +1151,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='NRS-2002'"
const yinyangbiaodan1 = await list(pasm)
return yinyangbiaodan1
}
@@ -1061,7 +1163,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='SGA'"
const yinyangbiaodan1 = await list(pasm)
return yinyangbiaodan1
}
@@ -1074,6 +1176,8 @@
// 打开查看或者编辑明细
const openShow = (type: string, mode: tiaochabiaoInfo) => {
console.log(type)
+ console.log(patientsInfo.value)
+ getPatDatas()
if (type === 'add') {
getPageInfo()
state.dialogTableVisible = true
@@ -1099,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