From 81ced3885266779c3a3813a0e4687962375b1d62 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期一, 09 六月 2025 19:16:43 +0800
Subject: [PATCH] gx
---
src/views/home/components/pingubiao/editDietary5.vue | 209 ++++++++++++++++++++++++++++++---------------------
1 files changed, 122 insertions(+), 87 deletions(-)
diff --git a/src/views/home/components/pingubiao/editDietary5.vue b/src/views/home/components/pingubiao/editDietary5.vue
index d6741ca..f7dd188 100644
--- a/src/views/home/components/pingubiao/editDietary5.vue
+++ b/src/views/home/components/pingubiao/editDietary5.vue
@@ -1,8 +1,8 @@
<template>
<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>
+ <el-dialog v-model="state.dialogTableVisible" title="GNRI" :fullscreen="true" width="100%">
+ <div style="width: 100%; height: 100%;overflow: auto;">
+ <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>
@@ -72,17 +70,10 @@
</td>
<td colspan="2" rowspan="3" style="text-align: center;font-size: 18px;">
- {{ sum }}
- <!-- <div v-if="sum">
-
-
- <span v-if="sum<82">高营养风险</span>
- <span v-if="sum>=82&&sum<92">中营养风险</span>
- <span v-if="sum>=92&&sum<98">低营养风险</span>
- <span v-if="sum>98">无营养风险</span>
- </div>
- <br> -->
-
+ <div v-if="sum.label" :style="{color:sum.color}">
+ {{ sum.value }}分,{{sum.label}}
+ </div>
+
</td>
</tr>
<tr>
@@ -94,7 +85,7 @@
</td>
<td colspan="2">
血清白蛋白浓度
- <el-input v-model="state.tableData.血清白蛋白浓度" placeholder="轻输入血清白蛋白浓度">
+ <el-input v-model="state.tableData.血清白蛋白浓度" placeholder="请输入血清白蛋白浓度">
<template #append>g/L</template>
</el-input>
</td>
@@ -118,7 +109,7 @@
注意事项:<br>
对于直立困难而无法测量身高的患者,可以通过测量膝高来估算身高。
男性身高=2.02x膝高(cm)-0.04x年龄+64.19;<br>
- 女性身高=1.83x膝高(cm)-0.24x年龄+84.88。如果体重大于理想体重,<br>
+ 女性身高=1.83x膝高(cm)-0.24x年龄+84.88。如果体重>理想体重,<br>
体重与理想体重的比值以1计算。
@@ -127,7 +118,7 @@
</tr>
<tr>
<td colspan="6" style="color: #E6A23C;">
- GNIR营养评估分为4个等级:<br>
+ GNRI为4个等级:<br>
高营养风险(GNIR<82<br>
中营养风险(82≤GNIR<92)<br>
低营养风险(92≤GNIR≤98)<br>
@@ -151,6 +142,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,17 +160,19 @@
</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';
import { useUserInfo } from '/@/stores/userInfo';
import { usePatientsInfo } from '/@/stores/patientsInfo';
+import dayjs from 'dayjs';
const storesPat = usePatientsInfo();
import { Add, update, deleteId, tiaochabiaoInfo } from '/@/api/tiaochabiao/index'
import { storeToRefs } from 'pinia';
import { useRoute, useRouter } from 'vue-router';
-import { ElMessage } from 'element-plus';
-import { getPatData } from '/@/api/Patients';
+import { ElLoading, ElMessage } from 'element-plus';
+import { getPatData,getLisResults } from '/@/api/Patients';
import { number } from 'echarts';
const stores = useUserInfo();
const { patientsInfo } = storeToRefs(storesPat);
@@ -182,7 +183,7 @@
options: [0, 1],
dialogTableVisible: false,
tableData: {
- 表名: 'GNIR营养评估分',
+ 表名: 'GNRI',
初次调查日期: "",
填表日期: '',
更新日期: '',
@@ -207,7 +208,7 @@
surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
surveryPerson: userInfos.value.code,
surveryJsonBody: '',
- suveryFormName: 'GNIR营养评估分',
+ suveryFormName: 'GNRI',
surveryFormType: 1,
updateTime: ''
}
@@ -232,6 +233,11 @@
}
})
const sum = computed(() => {
+ const res={
+ value:'',
+ label:'',
+ color:''
+ }
let data=0
if (isNumeric(state.tableData.体重) && isNumeric(state.tableData.身高) && isNumeric(state.tableData.血清白蛋白浓度)) {
if (Number(state.tableData.体重) <= Number(state.tableData.理想体重)) {
@@ -240,48 +246,33 @@
data= Number(((1.498 * Number(state.tableData.血清白蛋白浓度)) + 41.7).toFixed(2))
}
if(data<82){
- return `${data} 高营养风险`
+ res.value=data
+ res.label='高营养风险'
+ res.color='#F56C6C'
}else if(data>=82&&data<92){
- return `${data} 中营养风险`
+ res.value=data
+ res.label='中营养风险'
+ res.color='#E6A23C'
}else if(data>=92&&data<98){
- return `${data} 低营养风险`
+ res.value=data
+ res.label='低营养风险'
+ res.color='#E6A23C'
}else if(data>=98){
- return `${data} 无营养风险`
- }else{
- return ''
+
+ res.value=data
+ res.label='低营养风险'
+ res.color='#303133'
}
+ return res
} else{
- return ''
+ return res
}
})
-const sumtest=()=>{
- let data=0
- if (isNumeric(state.tableData.体重) && isNumeric(state.tableData.身高) && isNumeric(state.tableData.血清白蛋白浓度)) {
- if (Number(state.tableData.体重) <= Number(state.tableData.理想体重)) {
- data= Number(((1.498 * Number(state.tableData.血清白蛋白浓度)) + (41.7 * ((Number(state.tableData.体重) / Number(state.tableData.理想体重))))).toFixed(2))
- } else {
- data= Number(((1.498 * Number(state.tableData.血清白蛋白浓度)) + 41.7).toFixed(2))
- }
- if(data<82){
- return `GNIR营养评估分:${data} 高营养风险`
- }else if(data>=82&&data<92){
- return `GNIR营养评估分:${data} 中营养风险`
- }else if(data>=92&&data<98){
- return `GNIR营养评估分:${data} 低营养风险`
- }else if(data>=98){
- return `GNIR营养评估分:${data} 无营养风险`
- }else{
- return ''
- }
- } else{
- return ''
- }
-}
const funhui = () => {
state.dialogTableVisible = false
}
const onSubmit = () => {
- state.tableData.结果=sumtest()
+ state.tableData.结果=sum.value
console.log('submit!')
console.log(state.tableData)
const info: tiaochabiaoInfo = {
@@ -293,7 +284,7 @@
surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
surveryPerson: userInfos.value.code,
surveryJsonBody: JSON.stringify(state.tableData),
- suveryFormName: 'GNIR营养评估分',
+ suveryFormName: 'GNRI',
updateTime: ''
}
console.log(info)
@@ -320,13 +311,13 @@
}
// 打开查看或者编辑明细
-const openShow = (type: string, mode: tiaochabiaoInfo) => {
+const openShow = async (type: string, mode: tiaochabiaoInfo) => {
console.log(type)
if (type === 'add') {
state.tableData.初次调查日期 = formatDate(new Date(), 'YYYY-mm-dd')
state.tableData.更新日期 = formatDate(new Date(), 'YYYY-mm-dd')
state.tableData.记录者 = userInfos.value.userName
- getPageInfo()
+ await getPageInfo()
state.dialogTableVisible = true
}
@@ -335,42 +326,82 @@
console.log(mode)
state.viewInfo = mode
state.tableData = JSON.parse(mode.surveryJsonBody)
+ state.tableData.初次调查日期=mode.surveryTime
+ state.tableData.更新日期=mode.updateTime
state.dialogTableVisible = true
}
}
const getPageInfo = async () => {
- const res = await getPatData({ patCode: patientsInfo.value.code, })
- console.log(res.data, '----')
- state.tableData = {
- 表名: 'GNIR营养评估分',
- 初次调查日期: formatDate(new Date(), 'YYYY-mm-dd'),
- 填表日期: '',
- 更新日期: formatDate(new Date(), 'YYYY-mm-dd'),
- 记录者: userInfos.value.userName,
- 身高: res.data.身高,
- 体重: res.data.身高.上一次透前体重,
- 理想体重: '',
- 血清白蛋白浓度: '',
- 无法测量身高: false,
- 膝高: '',
- 结果:''
+ const loading = ElLoading.service({
+ lock: true,
+ text: 'Loading',
+ background: 'rgba(0, 0, 0, 0.7)',
+ })
+ try{
+ const pam2 = {
+ clientCode: userInfos.value.clientCode,
+ patCode: patientsInfo.value.code,
+ date1: dayjs().add(-30, 'day').format('YYYY-MM-DD'),
+ date2: dayjs().format('YYYY-MM-DD'),
+ }
+
+ const res = await getPatData({ patCode: patientsInfo.value.code, })
+ const res2= await getLisResults(pam2)
+ loading.close()
+ console.log(res2.data, '-1111---')
+ let x=-1
+ // 默认白蛋白
+ if(res2.data.length>0){
+ x=res2.data.findIndex(e=>{return e.item_name==='白蛋白'})
+ }
+
+ console.log(x)
+ state.tableData = {
+ 表名: 'GNRI',
+ 初次调查日期: formatDate(new Date(), 'YYYY-mm-dd'),
+ 填表日期: '',
+ 更新日期: formatDate(new Date(), 'YYYY-mm-dd'),
+ 记录者: userInfos.value.userName,
+ 身高: res.data.身高,
+ 体重: res.data.上一次透前体重,
+ 理想体重: '',
+ 血清白蛋白浓度: x===-1?'':res2.data[x].item_result,
+ 无法测量身高: false,
+ 膝高: '',
+ 结果:''
+ }
+ console.log(state.tableData )
+ 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:'GNRI',
+ surveryFormType:1,
+ updateTime: ''
+ }
+ }catch(err){
+ loading.close()
}
- 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:'GNIR营养评估分',
- surveryFormType:1,
- 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>
@@ -409,3 +440,7 @@
background: yellow;
}
</style>
+
+function dayjs() {
+ throw new Error('Function not implemented.');
+}
--
Gitblit v1.8.0