<template>
|
<div class="dietarySurvey-item">
|
<el-dialog v-model="state.dialogTableVisible" title="PEW(蛋白质能量消耗评估)" :fullscreen="true" width="100%">
|
<div class="container" style="width: 100%; height: 100%;overflow: auto;">
|
<div id="pinggu4">
|
<div>
|
<el-form size="small" >
|
<div style="width: 100%">
|
<table id="tabledome" class="gridtable">
|
|
<tr>
|
<th colspan="2">
|
<el-form-item label="初次调查日期">
|
<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-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;" readonly placeholder="" />
|
</el-form-item>
|
</th>
|
|
</tr>
|
<tr>
|
<th colspan="2">
|
患者姓名:{{patientsInfo.patientName}}
|
|
</th>
|
<th colspan="2">
|
年龄:{{patientsInfo.age}}
|
</th>
|
<th colspan="2">性别:{{patientsInfo.patientGenderText}}</th>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="5" style="background-color: antiquewhite;">
|
<!-- <el-form-item label="1、生化指标:">
|
<el-input v-model="state.tableData.生化指标.input1" type="textarea"
|
:autosize="{ minRows: 2, maxRows: 6 }" placeholder="请饮食指导建议" />
|
</el-form-item> -->
|
1、生化指标:白蛋白<38g/L;前白蛋白<30mg/L(仅指透患者);胆固醇100mg/d1
|
</td>
|
<td colspan="1" style="text-align: center;">
|
<el-radio-group v-model="state.tableData.生化指标.type">
|
<el-radio v-for="item in state.options" :value="item" :key="item">{{item===0?'不满足':'满足'}}</el-radio>
|
</el-radio-group>
|
</td>
|
|
</tr>
|
<tr>
|
|
<td colspan="5" style="background-color: antiquewhite;">
|
<!-- <el-form-item label="2、体重指标:">
|
<el-input v-model="state.tableData.体重指标.input1" type="textarea"
|
:autosize="{ minRows: 2, maxRows: 6 }" placeholder="请饮食指导建议" />
|
</el-form-item> -->
|
2、体重指标:BMI<23kg/m2;非有意的体重下降(3个月内>5%或半年内>10%);总体脂量<10%
|
|
</td>
|
<td colspan="1" style="text-align: center;">
|
<el-radio-group v-model="state.tableData.体重指标.type">
|
<el-radio v-for="item in state.options" :value="item" :key="item">{{item===0?'不满足':'满足'}}</el-radio>
|
</el-radio-group>
|
</td>
|
|
</tr>
|
<tr>
|
<td colspan="5" style="background-color: antiquewhite;">
|
<!-- <el-form-item label="3、饮食蛋白质和/或热量摄入不足:">
|
<el-input v-model="state.tableData.饮食蛋白指标.input1" type="textarea"
|
:autosize="{ minRows: 2, maxRows: 6 }" placeholder="请饮食指导建议" />
|
</el-form-item> -->
|
3、饮食蛋白质和/或热量摄入不足:透析患者DPI<0.8g/kg/d,或CKD2~5期<0.6g/kg/d,至少持续2月以上;DEI<25kcal/kg/d,至少持续2月以上
|
|
</td>
|
<td colspan="1" style="text-align: center;">
|
<el-radio-group v-model="state.tableData.饮食蛋白指标.type">
|
<el-radio v-for="item in state.options" :value="item" :key="item">{{item===0?'不满足':'满足'}}</el-radio>
|
</el-radio-group>
|
</td>
|
|
</tr><tr>
|
|
<td colspan="5" style="background-color: antiquewhite;">
|
<!-- <el-form-item label=" 4、肌肉指标:">
|
<el-input v-model="state.tableData.肌肉指标.input1" type="textarea"
|
:autosize="{ minRows: 2, maxRows: 6 }" placeholder="请饮食指导建议" />
|
</el-form-item> -->
|
4、肌肉指标:{{state.tableData.肌肉指标.input1}}
|
|
</td>
|
<td colspan="1" style="text-align: center;">
|
<el-radio-group v-model="state.tableData.肌肉指标.type">
|
<el-radio v-for="item in state.options" :value="item" :key="item">{{item===0?'不满足':'满足'}}</el-radio>
|
</el-radio-group>
|
</td>
|
|
</tr>
|
<tr>
|
|
<td colspan="5" class="tdInput" style="color:coral;">
|
根据2008年ISRNM推荐的指标进行诊断,满足以下4条诊断标准(每项中至少1项符合)考虑存在PEW
|
|
</td>
|
<td colspan="1" style="font-family: 600;color: blue; font-weight: 700;">
|
合计满足 {{sum}} 项
|
</td>
|
|
</tr>
|
</table>
|
</div>
|
</el-form>
|
</div>
|
|
</div>
|
</div>
|
<template #footer>
|
<div class="dialog-footer" style="text-align: center">
|
<el-button @click="funhui">取消</el-button>
|
<el-button type="primary" @click="onSubmit">
|
保存
|
</el-button>
|
<el-button v-if="state.viewInfo.id" type="primary" v-print="'#pinggu4'">
|
<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>
|
|
|
</div>
|
|
</template>
|
|
<script setup lang="ts" name="visualizingLinkDemo2">
|
import html2pdf from 'html2pdf.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 {Add,update,deleteId,tiaochabiaoInfo} from '/@/api/tiaochabiao/index'
|
import { storeToRefs } from 'pinia';
|
import { useRoute,useRouter } from 'vue-router';
|
import { ElMessage } from 'element-plus';
|
const stores = useUserInfo();
|
const { patientsInfo } = storeToRefs(storesPat);
|
const { userInfos } = storeToRefs(stores);
|
const router = useRouter()
|
const emit = defineEmits([ "shuaxin" ]);
|
const state = reactive({
|
options:[0,1],
|
dialogTableVisible:false,
|
tableData: {
|
表名: 'PEW(蛋白质能量消耗评估)',
|
初次调查日期:"",
|
填表日期: '',
|
更新日期: '',
|
记录者: '陈银成',
|
生化指标: {
|
type: '',
|
input1: '',
|
},
|
体重指标: {
|
type: '',
|
input1: '',
|
},
|
饮食蛋白指标:{
|
type: '',
|
input1: '',
|
},
|
肌肉指标:{
|
type: '',
|
input1: '',
|
}
|
},
|
loading: false,
|
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:'PEW(蛋白质能量消耗评估)',
|
surveryFormType:1,
|
updateTime: ''
|
}
|
|
})
|
const sum = computed(() => {
|
let x=0
|
for(let key in state.tableData){
|
console.log(key+'key=='+state.tableData[key]?.type)
|
if(Number(state.tableData[key]?.type)){
|
x+=Number(state.tableData[key]?.type)
|
}
|
}
|
return x
|
})
|
const funhui=()=>{
|
state.dialogTableVisible=false
|
}
|
const onSubmit = () => {
|
console.log('submit!')
|
console.log(state.tableData)
|
const info:tiaochabiaoInfo={
|
id: state.viewInfo.id,
|
surveryFormType:1,
|
code: state.viewInfo.code,
|
clientCode: userInfos.value.clientCode,
|
patientCode: patientsInfo.value.code,
|
surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
|
surveryPerson: userInfos.value.code,
|
surveryJsonBody: JSON.stringify(state.tableData),
|
suveryFormName:'PEW(蛋白质能量消耗评估)',
|
updateTime: ''
|
}
|
console.log(info)
|
if(info.id===0){
|
Add(info).then(re=>{
|
console.log(re.data)
|
state.dialogTableVisible=false
|
emit('shuaxin')
|
})
|
}else if(info.id>0){
|
info.surveryTime=state.viewInfo.surveryTime
|
update(info).then(re=>{
|
console.log(re.data)
|
state.dialogTableVisible=false
|
emit('shuaxin')
|
})
|
}
|
|
}
|
// 第一步:定义子组件里面的方法
|
const getData = (str: string) => {
|
console.log("子组件获取显示数据!" + str);
|
state.loading = true
|
|
}
|
// 打开查看或者编辑明细
|
const openShow = (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()
|
state.dialogTableVisible = true
|
}
|
else if(type==='update'){
|
console.log('------------------------3333333333333333')
|
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=()=>{
|
state.tableData={
|
表名: 'PEW(蛋白质能量消耗评估)',
|
初次调查日期:formatDate(new Date(),'YYYY-mm-dd'),
|
填表日期: '',
|
更新日期: formatDate(new Date(),'YYYY-mm-dd'),
|
记录者: userInfos.value.userName,
|
生化指标: {
|
type: '',
|
input1: '白蛋白<38g/L;前白蛋白<30mg/L(仅指透患者);胆固醇100mg/d1',
|
},
|
体重指标: {
|
type: '',
|
input1: 'BMI<23kg/m2;非有意的体重下降(3个月内>5%或半年内>10%);总体脂量<10%',
|
},
|
饮食蛋白指标:{
|
type: '',
|
input1: '透析患者DPI<0.8g/kg/d,或CKD2~5期<0.6g/kg/d,至少持续2月以上;DEI<25kcal/kg/d,至少持续2月以上',
|
},
|
肌肉指标:{
|
type: '',
|
input1: '肌肉量丢失(3个月内>5%或半年内>10%),上臂肌围减少(减少>10%参照群体第50个百分位数)',
|
}
|
}
|
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:'PEW(蛋白质能量消耗评估)',
|
surveryFormType:1,
|
updateTime: ''
|
}
|
}
|
const generatePDF=()=> {
|
const element = document.getElementById('pinggu4');
|
const opt = {
|
margin: 10,
|
filename: `${state.tableData.表名}.pdf`,
|
image: { type: 'jpeg', quality: 0.98 },
|
html2canvas: { scale: 2 },
|
jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }
|
};
|
html2pdf().set(opt).from(element).save();
|
|
}
|
|
// 第二步:暴露方法
|
defineExpose({ getData, openShow })
|
</script>
|
|
|
<style scoped lang="scss">
|
|
.gridtable {
|
font-family: verdana, arial, sans-serif;
|
font-size: 11px;
|
color: #333333;
|
border-width: 1px;
|
border-color: #666666;
|
border-collapse: collapse;
|
|
}
|
|
.gridtable th {
|
border-width: 1px;
|
padding: 8px;
|
border-style: solid;
|
text-align: left;
|
border-color: #666666;
|
background-color: #a4b0e2;
|
}
|
|
.gridtable td {
|
border-width: 1px;
|
padding: 8px;
|
border-style: solid;
|
border-color: #666666;
|
background-color: #ffffff;
|
}
|
.tdInput{
|
background: yellow;
|
}
|
|
</style>
|