| | |
| | | <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 ref="printRef" id="fanganprintFrom1" class="print-section"> |
| | | <div> |
| | | <el-form size="small"> |
| | | <div style="width: 100%"> |
| | |
| | | <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> |
| | |
| | | <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" @click="onPrint"> |
| | | <el-icon> |
| | | <Printer /> |
| | | </el-icon> |
| | | 打印 |
| | | </el-button> |
| | | <el-button type="primary" v-if="state.viewInfo.id" @click="generatePDF"> |
| | | <!-- <el-button type="primary" v-if="state.viewInfo.id" @click="generatePDF"> |
| | | <el-icon> |
| | | <Position /> |
| | | </el-icon> |
| | | 导出 |
| | | </el-button> |
| | | </el-button> --> |
| | | |
| | | </div> |
| | | </template> |
| | |
| | | </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 printJs from 'print-js'; |
| | | 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'; |
| | |
| | | const { patientsInfo } = storeToRefs(storesPat); |
| | | const { userInfos } = storeToRefs(stores); |
| | | const router = useRouter() |
| | | // 定义变量内容 |
| | | const printRef = ref(); |
| | | 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的磷钾;', |
| | |
| | | } |
| | | |
| | | }) |
| | | // 打印 |
| | | const onPrint=()=>{ |
| | | printJs({ |
| | | printable: printRef.value, |
| | | type: 'html', |
| | | css: ['@/assets/css/printcss.css','//at.alicdn.com/t/c/font_2298093_rnp72ifj3ba.css', '//unpkg.com/element-plus/dist/index.css'], |
| | | scanStyles: false, |
| | | style: `@media print{}}`, |
| | | }); |
| | | } |
| | | 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 |
| | |
| | | const funhui = () => { |
| | | state.dialogTableVisible = false |
| | | } |
| | | // 打印 |
| | | const onPrint = () => { |
| | | |
| | | } |
| | | const generatePDF = () => { |
| | | const element = document.getElementById('printFrom1'); |
| | | const element = document.getElementById('fanganprintFrom1'); |
| | | const opt = { |
| | | margin: 0, |
| | | filename: `${state.tableData.表名}.pdf`, |
| | |
| | | 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.生活习惯.吞咽咀嚼功能='' |
| | | 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 () => { |
| | |
| | | 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 |
| | | } |
| | |
| | | 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 |
| | | } |
| | |
| | | wherecondition: `survery_form_type=1 and patient_code='${patientsInfo.value.code}'`, |
| | | ordercondition: 'survery_time desc' |
| | | } |
| | | pasm.wherecondition += "and suvery_form_name='GNRI'" |
| | | pasm.wherecondition += "and suvery_form_name='SGA'" |
| | | const yinyangbiaodan1 = await list(pasm) |
| | | return yinyangbiaodan1 |
| | | } |
| | |
| | | // 打开查看或者编辑明细 |
| | | const openShow = (type: string, mode: tiaochabiaoInfo) => { |
| | | console.log(type) |
| | | console.log(patientsInfo.value) |
| | | getPatDatas() |
| | | if (type === 'add') { |
| | | getPageInfo() |
| | | state.dialogTableVisible = true |
| | |
| | | <style scoped lang="scss"> |
| | | .gridtable { |
| | | font-family: verdana, arial, sans-serif; |
| | | font-size: 11px; |
| | | |
| | | color: #333333; |
| | | border-width: 1px; |
| | | border-color: #666666; |