chenyc
2025-01-18 c7a65630bf97706554c68c269403d672bde52ca9
完成随访记录
2个文件已添加
2个文件已修改
2124 ■■■■■ 已修改文件
src/views/home/components/suifangjilu/editDietary.vue 435 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/suifangjilu/index.vue 948 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/suifangjilu/index备份.vue 717 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/index.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/suifangjilu/editDietary.vue
New file
@@ -0,0 +1,435 @@
<template>
    <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">
                    <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" style="width: 100px;"
                                                    placeholder="" readonly 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" style="width: 100px;"
                                                    placeholder="" readonly format="YYYY/MM/DD" value-format="YYYY-MM-DD" />
                                            </el-form-item>
                                        </th>
                                        <th colspan="2">
                                            <el-form-item label="记录者">
                                                <el-input readonly v-model="state.tableData.记录者"   placeholder="" />
                                            </el-form-item>
                                        </th>
                                    </tr>
                                    <tr>
                                        <td colspan="3">
                                            <el-form-item label="干体重">
                                                <el-input readonly v-model="state.tableData.干体重"  placeholder="" />
                                            </el-form-item>
                                        </td>
                                        <td colspan="3">
                                            <el-form-item label="脱水量">
                                                <el-input readonly v-model="state.tableData.脱水量"  placeholder="" />
                                            </el-form-item>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td style="background-color: antiquewhite;">
                                           指导建议
                                        </td>
                                        <td style="background-color: antiquewhite;" colspan="5">
                                            <el-form-item>
                                                <el-input v-model="state.tableData.指导建议" type="textarea"
                                                    :autosize="{ minRows: 1, maxRows: 6 }" placeholder="指导建议" />
                                            </el-form-item>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td style="background-color: antiquewhite;">
                                           执行反馈
                                        </td>
                                        <td colspan="5" style="background-color: antiquewhite;">
                                            <el-form-item>
                                                <el-input v-model="state.tableData.执行反馈" type="textarea"
                                                    :autosize="{ minRows: 1, maxRows: 6 }" placeholder="执行反馈" />
                                            </el-form-item>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            随眠近况
                                        </td>
                                        <td  colspan="5">
                                            <el-form-item>
                                                <el-input v-model="state.tableData.随眠近况" type="textarea"
                                                    :autosize="{ minRows: 1, maxRows: 6 }" placeholder="随眠近况" />
                                            </el-form-item>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            运动近况
                                        </td>
                                        <td  colspan="5">
                                            <el-form-item>
                                                <el-input v-model="state.tableData.运动近况" type="textarea"
                                                    :autosize="{ minRows: 1, maxRows: 6 }" placeholder="运动近况" />
                                            </el-form-item>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            排便近况
                                        </td>
                                        <td  colspan="5">
                                            <el-form-item>
                                                <el-input v-model="state.tableData.排便近况" type="textarea"
                                                    :autosize="{ minRows: 1, maxRows: 6 }" placeholder="排便近况" />
                                            </el-form-item>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            食欲近况
                                        </td>
                                        <td  colspan="5">
                                            <el-form-item>
                                                <el-input v-model="state.tableData.食欲近况" type="textarea"
                                                    :autosize="{ minRows: 1, maxRows: 6 }" placeholder="食欲近况" />
                                            </el-form-item>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            皮肤瘙痒
                                        </td>
                                        <td  colspan="5">
                                            <el-form-item>
                                                <el-input v-model="state.tableData.皮肤瘙痒" type="textarea"
                                                    :autosize="{ minRows: 1, maxRows: 6 }" placeholder="皮肤瘙痒" />
                                            </el-form-item>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            心肺功能
                                        </td>
                                        <td  colspan="5">
                                            <el-form-item>
                                                <el-input v-model="state.tableData.心肺功能" type="textarea"
                                                    :autosize="{ minRows: 1, maxRows: 6 }" placeholder="心肺功能" />
                                            </el-form-item>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            用药情况
                                        </td>
                                        <td  colspan="5">
                                            <el-form-item>
                                                <el-input v-model="state.tableData.用药情况" type="textarea"
                                                    :autosize="{ minRows: 1, maxRows: 6 }" placeholder="用药情况" />
                                            </el-form-item>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            其他(烟酒、过敏,发热)
                                        </td>
                                        <td  colspan="5">
                                            <el-form-item>
                                                <el-input v-model="state.tableData.其他" type="textarea"
                                                    :autosize="{ minRows: 2, maxRows: 6 }" placeholder="其他" />
                                            </el-form-item>
                                        </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="'#printFrom1'">
                        <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 } from 'vue';
import { formatDate } from '/@/utils/formatTime';
import { NextLoading } from '/@/utils/loading';
import { useUserInfo } from '/@/stores/userInfo';
import { usePatientsInfo } from '/@/stores/patientsInfo';
import { getPatData} from '/@/api/Patients';
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({
    patientData:{干体重:0,脱水量:0},
    dialogTableVisible:false,
    tableData: {
        表名: '随访记录表',
        初次调查日期:"",
        填表日期: '',
        更新日期: '',
        记录者: '陈银成',
        干体重:0,
        脱水量:0,
        指导建议:'',
        执行反馈:'',
        随眠近况:'',
        运动近况:'',
        排便近况:'',
        食欲近况:'',
        皮肤瘙痒:'',
        心肺功能:'',
        用药情况:'',
        其他:''
    },
    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:'随访记录表',
        surveryFormType:0,
        updateTime: ''
    }
})
const funhui=()=>{
    state.dialogTableVisible=false
}
// 打印
const onPrint=()=>{
}
const generatePDF=()=> {
      const element = document.getElementById('printFrom1');
      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();
}
const onSubmit = () => {
  console.log('submit!')
  console.log(state.tableData)
  const info:tiaochabiaoInfo={
    id: state.viewInfo.id,
    surveryFormType:0,
    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:'随访记录表',
    updateTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS')
  }
  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 getPageInfo=()=>{
    state.tableData={
        表名: '随访记录表',
        初次调查日期: formatDate(new Date(),'YYYY-mm-dd'),
        填表日期: '',
        更新日期: formatDate(new Date(),'YYYY-mm-dd'),
        记录者: userInfos.value.userName,
        干体重:state.patientData?.干体重,
        脱水量:state.patientData?.脱水量,
        指导建议:'',
        执行反馈:'',
        随眠近况:'',
        运动近况:'',
        排便近况:'',
        食欲近况:'',
        皮肤瘙痒:'',
        心肺功能:'',
        用药情况:'',
        其他:''
    }
    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:'随访记录表',
        surveryFormType:0,
        updateTime: ''
    }
}
onMounted(()=>{
})
// 第一步:定义子组件里面的方法
const getData = (str: string) => {
    console.log("子组件获取显示数据!" + str);
    state.loading = true
}
// 打开查看或者编辑明细
const openShow = async (type: string,mode:tiaochabiaoInfo) => {
    console.log(type)
    var pam = {
        patCode: patientsInfo.value.code,
    }
    const res= await getPatData(pam)
    state.patientData = res.data
    if(type==='add'){
        getPageInfo()
        state.dialogTableVisible = true
    }
    else if(type==='update'){
        console.log(mode)
        state.viewInfo=mode
        state.tableData=JSON.parse(mode.surveryJsonBody)
        state.tableData.初次调查日期=mode.surveryTime
        state.tableData.更新日期=mode.updateTime
        state.dialogTableVisible = true
    }
}
// 第二步:暴露方法
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;
    border-color: #666666;
    background-color: #a4b0e2;
}
.gridtable td {
    border-width: 1px;
    padding: 8px;
    border-style: solid;
    border-color: #666666;
    background-color: #ffffff;
}
input {
    /* 去除所有边框 */
    border: none;
    text-align: center;
    font-size: 12px;
    /* 设置下边框 */
    border-bottom: 1px solid #000; /* 您可以根据需要调整颜色和宽度 */
    /* 可选:设置背景透明 */
    background-color: transparent;
    /* 移除内边距和外边距 */
    padding: 5px 0; /* 根据需要调整上下内边距,确保文本与线条之间有足够的空间 */
    margin: 0;
    /* 移除默认轮廓 */
    outline: none;
    /* 移除浏览器默认样式 */
    appearance: none;
    -webkit-appearance: none;
}
/* 可选:为聚焦状态添加自定义样式 */
input:focus {
    /* 当输入框获得焦点时,改变下边框的颜色或增加一些视觉提示 */
    border-bottom-color: #007BFF; /* 聚焦时的下边框颜色 */
    /* 可选:添加轻微的阴影效果来突出显示 */
    box-shadow: 0 1px 0 0 #007BFF; /* 在下边框下方添加一条颜色相同的阴影 */
}
</style>
src/views/home/components/suifangjilu/index.vue
@@ -1,717 +1,297 @@
<template>
    <div>
        <el-row>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
                <div class="tableDiv">
                    <el-scrollbar :height="(tableHeight-130)+'px'">
                    <table v-if="tableHeight > 0" >
                        <tr>
                            <th colspan="7" style="text-align: left">营养服务管理记录</th>
                        </tr>
                        <tr>
                            <td :rowspan="2+state.patientData.透析方案.length">基本信息</td>
                            <td>患者姓名</td>
                            <td>{{ patientsInfo.patientName }}</td>
                            <td>性别</td>
                            <td>{{ patientsInfo.patientGenderText }}</td>
                            <td>年龄</td>
                            <td><span v-if="patientsInfo.age">{{ patientsInfo.age }} 岁</span></td>
                        </tr>
                        <tr>
                            <td>身高</td>
                            <td>{{ state.patientData.身高 }} <span v-if="state.patientData.身高">(cm)</span></td>
                            <td>病史</td>
                            <td>{{ state.patientData.诊断 }}</td>
                            <td>透龄</td>
                            <td>
                                <span v-if="patientsInfo.medHistoryStatByMonth">{{
                                    patientsInfo.medHistoryStatByMonth }}
                                (月)</span>
                            </td>
                        </tr>
                        <template v-for="(row,index) in state.patientData.透析方案" :key="index">
                            <tr v-if="index===0">
                                <td :rowspan="state.patientData.透析方案.length*1">透析方案</td>
                                <td>
                                    {{state.patientData.透析方案[index]?.透析方案}}
                                </td>
                                <td>频次</td>
                                <td>
                                    {{state.patientData.透析方案[index]?.透析频率}}
                                </td>
                                <td>时长</td>
                                <td>
                                    {{state.patientData.透析方案[index]?.透析时长}}
                                </td>
                            </tr>
                            <tr v-else>
                                <td>
                                    {{state.patientData.透析方案[index]?.透析方案}}
                                </td>
                                <td>频次</td>
                                <td>
                                    {{state.patientData.透析方案[index]?.透析频率}}
                                </td>
                                <td>时长</td>
                                <td>
                                    {{state.patientData.透析方案[index]?.透析时长}}
                                </td>
                            </tr>
                        </template>
                        <tr>
                            <td rowspan="2">其他</td>
                            <td>口腔功能</td>
                            <td></td>
                            <td>手机使用度</td>
                            <td></td>
                            <td>营养服务类别</td>
                            <td></td>
                        </tr>
                        <tr>
                            <td>知识接受度</td>
                            <td></td>
                            <td>临床依从性</td>
                            <td></td>
                            <td>营养服务认可度</td>
                            <td></td>
                        </tr>
                        <tr>
                            <th>项目</th>
                            <!-- <td>序号</td> -->
                            <th>项目内容</th>
                            <th>时间</th>
                            <th colspan="2">详情</th>
                            <th>备注</th>
                            <th>记录者</th>
                        </tr>
                        <!-- 食物过敏原 -->
                        <template v-for="(row,index) in state.from1Datas" :key="index">
                            <tr v-if="index===0">
                                <td :rowspan="state.from1Datas.length*2">
                                    食物过敏史及
                                    <br/>胃肠功能评估
                                </td>
                                <td :rowspan="state.from1Datas.length*1">食物过敏源</td>
                                <td>{{state.from1Datas[index]?.初次调查日期}}</td>
                                <td colspan="2">
                                    {{state.from1Datas[index]?.过敏食物?.type.join()}}
                                </td>
                                <td>
                                    {{state.from1Datas[index]?.过敏食物?.input1}}
                                </td>
                                <td>{{state.from1Datas[index]?.记录者}}</td>
                            </tr>
                            <tr v-else>
                                <td>{{state.from1Datas[index].初次调查日期}}</td>
                                <td colspan="2">
                                    {{state.from1Datas[index].过敏食物?.type.join()}}
                                </td>
                                <td>
                                    {{state.from1Datas[index].过敏食物?.input1}}
                                </td>
                                <td>{{state.from1Datas[index].记录者}}</td>
                            </tr>
                        </template>
                        <!--  胃肠功能评估 -->
                        <template v-for="(row,index) in state.from1Datas" :key="index">
                            <tr v-if="index===0">
                                <td :rowspan="state.from1Datas.length*1">胃肠功能评估</td>
                                <td>{{state.from1Datas[index].初次调查日期}}</td>
                                <td colspan="2" >
                                    <span v-if="state.from1Datas[index]?.胃肠道紊乱者?.type==='是'"></span>
                                    胃肠道紊乱者
                                </td>
                                <td>
                                    {{state.from1Datas[index]?.胃肠道紊乱者?.input1}}
                                </td>
                                <td>{{state.from1Datas[index]?.记录者}}</td>
                            </tr>
                            <tr v-else>
                                <td>{{state.from1Datas[index].初次调查日期}}</td>
                                <td colspan="2" >
                                    <span v-if="state.from1Datas[index]?.胃肠道紊乱者?.type==='是'"></span>
                                    胃肠道紊乱者
                                </td>
                                <td>
                                    {{state.from1Datas[index]?.胃肠道紊乱者?.input1}}
                                </td>
                                <td>{{state.from1Datas[index]?.记录者}}</td>
                            </tr>
                        </template>
                        <!-- 饮食管理 -->
                        <tr>
                            <td rowspan="6">饮食管理</td>
                            <td rowspan="2">膳食调查</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td rowspan="2">饮食问题</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td rowspan="2">饮食建议</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <!-- 生活方式管理 -->
                         <tr>
                            <td rowspan="4">生活方式管理</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">生活习惯</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">指导建议</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                         <!-- 用药管理 -->
                         <tr>
                            <td rowspan="6">用药管理</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">用药调查</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">用药监督</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">3</td> -->
                            <td rowspan="2">指导建议</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <!-- 随访 -->
                        <tr>
                            <td rowspan="2">随访</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">随访情况</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <!-- 营养筛查评估 -->
                        <tr>
                            <td rowspan="4">营养筛查评估</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">营养筛查结果</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">营养评估结果</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <!-- 数据评估 -->
                        <tr>
                            <td rowspan="12">数据评估</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">干体重</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">BMI </td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">3</td> -->
                            <td rowspan="2">生化指标 </td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">4</td> -->
                            <td rowspan="2">脱水量 </td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">5</td> -->
                            <td rowspan="2">血压 </td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">6</td> -->
                            <td rowspan="2">血糖 </td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td rowspan="8">个性化管理</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">指导目标</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">指导建议</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">3</td> -->
                            <td rowspan="2">指导方案</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">4</td> -->
                            <td rowspan="2">随访情况</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <!-- 效果反馈 -->
                        <tr>
                            <td rowspan="4">效果反馈</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">生化数据改善</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">主观感受改善</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <!-- 产品管理 -->
                        <tr>
                            <td rowspan="4">产品管理</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">好馨意</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">其他品牌</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td rowspan="4">健康营养宣教</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">生化指标</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">营养饮食</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                    </table>
                    </el-scrollbar>
                </div>
            </el-col>
    <div class="dietarySurvey-home" >
        <el-row v-if="patientsInfo.id"  style="padding-left: 10px;">
            <el-form size="small" :inline="true" :model="state.formInline">
                <el-form-item label="填报日期">
                    <el-date-picker
                        v-model="state.formInline.date"
                        type="daterange"
                        unlink-panels
                        range-separator="To"
                        start-placeholder="开始"
                        end-placeholder="结束"
                        :shortcuts="shortcuts"
                        format="YYYY/MM/DD"
                        value-format="YYYY-MM-DD"
                    />
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" @click="onSubmit">查询</el-button>
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" plain @click="addItem">添加</el-button>
                </el-form-item>
            </el-form>
        </el-row>
        <div v-if="patientsInfo.id"  class="divcont">
            <el-table size="default" :data="state.tableData" stripe style="width: 100%"  :height="tableHe">
                <el-table-column fixed label="NO" type="index" widtd="80" >
                        <template #header>
                            <el-icon @click="onSubmit"><RefreshRight /></el-icon>
                        </template>
                    </el-table-column>
                    <el-table-column  prop="surveryTime" label="填表时间" show-overflow-tooltip >
                        <template #default="scope">
                            {{scope.row.updateTime?.substring(0,11)}}
                        </template>
                    </el-table-column>
                    <el-table-column   label="干体重" show-overflow-tooltip >
                        <template #default="scope">
                            {{scope.row.mode.干体重}}
                        </template>
                    </el-table-column>
                    <el-table-column   label="脱水量" show-overflow-tooltip >
                        <template #default="scope">
                            {{scope.row.mode.脱水量}}
                        </template>
                    </el-table-column>
                    <el-table-column   label="指导建议" show-overflow-tooltip >
                        <template #default="scope">
                            {{scope.row.mode.指导建议}}
                        </template>
                    </el-table-column>
                    <el-table-column   label="执行反馈" show-overflow-tooltip >
                        <template #default="scope">
                            {{scope.row.mode.执行反馈}}
                        </template>
                    </el-table-column>
                    <el-table-column  prop="surveryPersonName" label="填表人" show-overflow-tooltip />
                    <!-- <el-table-column  prop="updateTime" label="更新时间" show-overflow-tooltip /> -->
                    <el-table-column  label="操作" >
                        <template #default="scope">
                            <el-button size="small" @click="handleEdit(scope.$index, scope.row)">
                                    编辑
                            </el-button>
                            <el-button
                            size="small"
                            type="danger"
                            @click="handleDelete(scope.$index, scope.row)"
                            >
                                 删除
                            </el-button>
                        </template>
                    </el-table-column>
            </el-table>
            <el-pagination
                v-model:current-page="state.page"
                v-model:page-size="state.size"
                :page-sizes="[10, 20, 30, 40]"
                layout="total, sizes, prev, pager, next, jumper"
                :total="state.total"
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
                />
        </div>
        <el-empty v-if="!patientsInfo.id" description="无数据,请先选择患者"></el-empty>
        <editDietary ref="editDietaryRef"  @shuaxin="onSubmit"></editDietary>
    </div>
</template>
<script setup lang="ts">
import { storeToRefs } from 'pinia';
import { usePatientsInfo } from '/@/stores/patientsInfo';
import { computed, reactive } from 'vue';
import { ElMessage } from 'element-plus';
import { getPatData } from '/@/api/Patients';
import { list } from '/@/api/tiaochabiao';
import {list,tiaochabiaoInfo,deleteId} from '/@/api/tiaochabiao/index'
import { computed, reactive, ref } from 'vue';
import { useRoute,useRouter } from 'vue-router';
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus';
import editDietary from './editDietary.vue'
const storesPat = usePatientsInfo();
const { patientsInfo } = storeToRefs(storesPat);
const props = defineProps(['tableHeight'])
const editDietaryRef=ref()
const router = useRouter()
const shortcuts = [
  {
    text: '上一周',
    value: () => {
      const end = new Date()
      const start = new Date()
      start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
      return [start, end]
    },
  },
  {
    text: '上一个月',
    value: () => {
      const end = new Date()
      const start = new Date()
      start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
      return [start, end]
    },
  },
  {
    text: '前三个月',
    value: () => {
      const end = new Date()
      const start = new Date()
      start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
      return [start, end]
    },
  },
]
const state = reactive({
    tableData: {
        基本信息:{
            患者姓名:'',
            性别:'',
            年龄:'',
            身高:'',
            病史:'',
            听力视力障碍:'',
            透析频次:"",
            透析时长:"",
        },
    },
    patientData: {
        姓名: '',
        干体重: '',
        证件号: "",
        诊断: '',
        身高: '',
        上一次透前体重: '',
        干体重最近调整记录:[{干体重:'',调整日期:'',调整人:'',备注:""}],
        透析方案:[{透析频率: "", 透析时长: "", 透析方案: ""}]
    },
    // 隐私调差
    from1Datas:<any>[],
    // 风险筛查
    from2Datas:{},
    // 风险评估
    from3Datas:{},
    tableData: [],
    page:1,
    size:10,
    total:0,
    loading: false,
    formInline:{
        user: '',
        formTableName:'随访记录表',
        date: [],
    },
    dialogTableVisible:false
})
const tableHe = computed(() => {
    return props.tableHeight - 130
    return (props.tableHeight-200)+'px'
})
const BMI = computed(() => {
    if (state.patientData.干体重 && state.patientData.身高) {
        return (Number(state.patientData.干体重) / (Number(state.patientData.身高) / 100 * Number(state.patientData.身高) / 100)).toFixed(2)
    } else {
        return ''
const handleSizeChange = (val: number) => {
  console.log(`${val} items per page`)
  state.size=val
  onSubmit()
}
const handleCurrentChange = (val: number) => {
  console.log(`current page: ${val}`)
  state.page=val
  onSubmit()
}
const onSubmit=()=>{
    console.log(state.formInline)
    const pasm={
        page: state.page,
        size: state.size,
        wherecondition:`survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
        ordercondition: 'survery_time desc'
    }
})
    if(state.formInline?.date?.length===2){
        pasm.wherecondition+=` and survery_time BETWEEN '${state.formInline.date[0]} 00:00:00' AND '${state.formInline.date[1]} 23:59:59'`
    }
    if(state.formInline?.formTableName){
        pasm.wherecondition+=`and suvery_form_name='${state.formInline.formTableName}'`
    }
    const loading = ElLoading.service({
        lock: true,
        text: 'Loading',
        background: 'rgba(0, 0, 0, 0.7)',
    })
    list(pasm).then(re=>{
        state.tableData=re.data.list.map((v: any) => {
                v.mode=JSON.parse(v.surveryJsonBody)
                return v;
            })
        state.total=re.data.total
    }).finally(()=>{
        loading.close()
    })
}
const addItem=()=>{
    editDietaryRef.value.openShow('add')
    // router.push({path:'/tiaochabiao1',query:{type:'add',id:0}})
}
// 第一步:定义子组件里面的方法
const getData = async (str: string) => {
    console.log("子组件获取显示数据!" + str);
    console.log(props.tableHeight)
    var pam = {
        patCode: patientsInfo.value.code,
const getData = (str: string) => {
    const pasm = {
        page: 1,
        size: 10,
        wherecondition:`survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
        ordercondition:'survery_time DESC'
    }
    try {
        state.loading = true
        state.from1Datas=[]
        const [res1,fromData1,fromData2,fromData3] = await Promise.all([
            getPatData(pam),
            getFrom1(),
            getFrom2(),
            getFrom3()
        ])
        state.patientData = res1.data
        const from1 = fromData1
        if (from1.data.list.length >= 1) {
            from1.data.list.forEach((element:any) => {
                state.from1Datas.push(JSON.parse(element?.surveryJsonBody))
            });
        }
        console.log('饮食的------------------')
        console.log(state.from1Datas)
    if(state.formInline?.date?.length===2){
        pasm.wherecondition+=`and survery_time BETWEEN '${state.formInline.date[0]} 00:00:00' AND '${state.formInline.date[1]} 23:59:59'`
    }
    catch (error) {
        state.loading = false
        ElMessage.error('结果请求错误,请联系管理员!')
    if(state.formInline.formTableName){
        pasm.wherecondition+=`and suvery_form_name='${state.formInline.formTableName}'`
    }
    const loading = ElLoading.service({
        lock: true,
        text: 'Loading',
        background: 'rgba(0, 0, 0, 0.7)',
    })
    list(pasm).then(re=>{
        console.log(re)
        state.tableData=re.data.list.map((v: any) => {
            v.mode=JSON.parse(v.surveryJsonBody)
            return v;
        })
        state.total=re.data.total
    }).finally(()=>{
        loading.close()
    })
}
// 获取膳食调查表
const getFrom1 = async () => {
    const pasm = {
        page: 0,
        size: 0,
        wherecondition: `survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
        ordercondition: 'survery_time desc'
    }
    pasm.wherecondition += "and suvery_form_name='膳食调查表'"
    const yinyangbiaodan1 = await list(pasm)
    return yinyangbiaodan1
}
// 营养风险筛查结果
const getFrom2 = async () => {
    const pasm = {
        page: 0,
        size: 0,
        wherecondition: `survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
        ordercondition: 'survery_time desc'
    }
    pasm.wherecondition += "and suvery_form_name='NRS2002'"
    const yinyangbiaodan1 = await list(pasm)
    return yinyangbiaodan1
}
// 营养评估结果
const getFrom3 = async () => {
    const pasm = {
        page: 0,
        size: 0,
        wherecondition: `survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
        ordercondition: 'survery_time desc'
    }
    pasm.wherecondition += "and suvery_form_name='GNRI'"
    const yinyangbiaodan1 = await list(pasm)
    return yinyangbiaodan1
    state.loading = true
}
// 第二步:暴露方法
defineExpose({ getData })
/**
 * 编辑
 */
const handleEdit = (index: number, row: any) => {
  console.log(index, row,state.formInline.formTableName)
  editDietaryRef.value.openShow('update',row)
}
const handleDelete = (index: number, row: any) => {
  console.log(index, row)
  ElMessageBox.confirm(
    '你确定要删除该条记录?',
    'Warning',
    {
      confirmButtonText: '确定',
      cancelButtonText: '取消',
      type: 'warning',
    }
  )
    .then(() => {
        deleteId(`id=${row.id}`).then(re=>{
            ElMessage.success('删除成功')
            onSubmit()
        }).catch(e=>{
            ElMessage.error('删除失败!')
        })
    })
    .catch(() => {
      ElMessage({
        type: 'info',
        message: '取消操作',
      })
    })
}
</script>
<style  lang="scss">
.tableDiv {
    table {
        width: 100%;
        border-collapse: collapse;
    }
    th,
    td {
        border: 1px solid #ddd;
        padding: 8px;
        text-align: center;
    }
    th {
        background-color: #409eff;
        font-weight: bold;
        color: #ffffff;
    }
    tr:nth-child(even) {
        background-color: #f2f2f2;
    }
    .note {
        color: #409eff;
        font-size: smaller;
    }
    .fontred {
        color: red;
        font-size: large;
    }
    .gridtable {font-family: verdana,arial,sans-serif;font-size:11px;color:#333333;border-width: 1px;border-color: #666666;border-collapse: collapse;width: 100%;}
    .gridtable th {border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;}
    .gridtable td {border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;min-width: 100px;}
    .input-underline {
        border: none; /* 移除所有边框 */
        border-bottom: 1px solid #ccc; /* 显示下边框 */
        outline: none; /* 移除点击输入框时浏览器可能会提供的默认轮廓线 */
        text-align: center;
    }
    .width50{
        width: 50px;
    }
.infinite-list {
    overflow: auto;
    padding: 0;
    margin: 0;
    list-style: none;
}
.infinite-list .infinite-list-item {
  display: flex;
}
.divcont{
    overflow-y: auto; /* 垂直滚动条 */
}
</style>
src/views/home/components/suifangjilu/index备份.vue
New file
@@ -0,0 +1,717 @@
<template>
    <div>
        <el-row>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
                <div class="tableDiv">
                    <el-scrollbar :height="(tableHeight-130)+'px'">
                    <table v-if="tableHeight > 0" >
                        <tr>
                            <th colspan="7" style="text-align: left">营养服务管理记录</th>
                        </tr>
                        <tr>
                            <td :rowspan="2+state.patientData.透析方案.length">基本信息</td>
                            <td>患者姓名</td>
                            <td>{{ patientsInfo.patientName }}</td>
                            <td>性别</td>
                            <td>{{ patientsInfo.patientGenderText }}</td>
                            <td>年龄</td>
                            <td><span v-if="patientsInfo.age">{{ patientsInfo.age }} 岁</span></td>
                        </tr>
                        <tr>
                            <td>身高</td>
                            <td>{{ state.patientData.身高 }} <span v-if="state.patientData.身高">(cm)</span></td>
                            <td>病史</td>
                            <td>{{ state.patientData.诊断 }}</td>
                            <td>透龄</td>
                            <td>
                                <span v-if="patientsInfo.medHistoryStatByMonth">{{
                                    patientsInfo.medHistoryStatByMonth }}
                                (月)</span>
                            </td>
                        </tr>
                        <template v-for="(row,index) in state.patientData.透析方案" :key="index">
                            <tr v-if="index===0">
                                <td :rowspan="state.patientData.透析方案.length*1">透析方案</td>
                                <td>
                                    {{state.patientData.透析方案[index]?.透析方案}}
                                </td>
                                <td>频次</td>
                                <td>
                                    {{state.patientData.透析方案[index]?.透析频率}}
                                </td>
                                <td>时长</td>
                                <td>
                                    {{state.patientData.透析方案[index]?.透析时长}}
                                </td>
                            </tr>
                            <tr v-else>
                                <td>
                                    {{state.patientData.透析方案[index]?.透析方案}}
                                </td>
                                <td>频次</td>
                                <td>
                                    {{state.patientData.透析方案[index]?.透析频率}}
                                </td>
                                <td>时长</td>
                                <td>
                                    {{state.patientData.透析方案[index]?.透析时长}}
                                </td>
                            </tr>
                        </template>
                        <tr>
                            <td rowspan="2">其他</td>
                            <td>口腔功能</td>
                            <td></td>
                            <td>手机使用度</td>
                            <td></td>
                            <td>营养服务类别</td>
                            <td></td>
                        </tr>
                        <tr>
                            <td>知识接受度</td>
                            <td></td>
                            <td>临床依从性</td>
                            <td></td>
                            <td>营养服务认可度</td>
                            <td></td>
                        </tr>
                        <tr>
                            <th>项目</th>
                            <!-- <td>序号</td> -->
                            <th>项目内容</th>
                            <th>时间</th>
                            <th colspan="2">详情</th>
                            <th>备注</th>
                            <th>记录者</th>
                        </tr>
                        <!-- 食物过敏原 -->
                        <template v-for="(row,index) in state.from1Datas" :key="index">
                            <tr v-if="index===0">
                                <td :rowspan="state.from1Datas.length*2">
                                    食物过敏史及
                                    <br/>胃肠功能评估
                                </td>
                                <td :rowspan="state.from1Datas.length*1">食物过敏源</td>
                                <td>{{state.from1Datas[index]?.初次调查日期}}</td>
                                <td colspan="2">
                                    {{state.from1Datas[index]?.过敏食物?.type.join()}}
                                </td>
                                <td>
                                    {{state.from1Datas[index]?.过敏食物?.input1}}
                                </td>
                                <td>{{state.from1Datas[index]?.记录者}}</td>
                            </tr>
                            <tr v-else>
                                <td>{{state.from1Datas[index].初次调查日期}}</td>
                                <td colspan="2">
                                    {{state.from1Datas[index].过敏食物?.type.join()}}
                                </td>
                                <td>
                                    {{state.from1Datas[index].过敏食物?.input1}}
                                </td>
                                <td>{{state.from1Datas[index].记录者}}</td>
                            </tr>
                        </template>
                        <!--  胃肠功能评估 -->
                        <template v-for="(row,index) in state.from1Datas" :key="index">
                            <tr v-if="index===0">
                                <td :rowspan="state.from1Datas.length*1">胃肠功能评估</td>
                                <td>{{state.from1Datas[index].初次调查日期}}</td>
                                <td colspan="2" >
                                    <span v-if="state.from1Datas[index]?.胃肠道紊乱者?.type==='是'"></span>
                                    胃肠道紊乱者
                                </td>
                                <td>
                                    {{state.from1Datas[index]?.胃肠道紊乱者?.input1}}
                                </td>
                                <td>{{state.from1Datas[index]?.记录者}}</td>
                            </tr>
                            <tr v-else>
                                <td>{{state.from1Datas[index].初次调查日期}}</td>
                                <td colspan="2" >
                                    <span v-if="state.from1Datas[index]?.胃肠道紊乱者?.type==='是'"></span>
                                    胃肠道紊乱者
                                </td>
                                <td>
                                    {{state.from1Datas[index]?.胃肠道紊乱者?.input1}}
                                </td>
                                <td>{{state.from1Datas[index]?.记录者}}</td>
                            </tr>
                        </template>
                        <!-- 饮食管理 -->
                        <tr>
                            <td rowspan="6">饮食管理</td>
                            <td rowspan="2">膳食调查</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td rowspan="2">饮食问题</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td rowspan="2">饮食建议</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <!-- 生活方式管理 -->
                         <tr>
                            <td rowspan="4">生活方式管理</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">生活习惯</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">指导建议</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                         <!-- 用药管理 -->
                         <tr>
                            <td rowspan="6">用药管理</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">用药调查</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">用药监督</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">3</td> -->
                            <td rowspan="2">指导建议</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <!-- 随访 -->
                        <tr>
                            <td rowspan="2">随访</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">随访情况</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <!-- 营养筛查评估 -->
                        <tr>
                            <td rowspan="4">营养筛查评估</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">营养筛查结果</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">营养评估结果</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <!-- 数据评估 -->
                        <tr>
                            <td rowspan="12">数据评估</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">干体重</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">BMI </td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">3</td> -->
                            <td rowspan="2">生化指标 </td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">4</td> -->
                            <td rowspan="2">脱水量 </td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">5</td> -->
                            <td rowspan="2">血压 </td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">6</td> -->
                            <td rowspan="2">血糖 </td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td rowspan="8">个性化管理</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">指导目标</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">指导建议</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">3</td> -->
                            <td rowspan="2">指导方案</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">4</td> -->
                            <td rowspan="2">随访情况</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <!-- 效果反馈 -->
                        <tr>
                            <td rowspan="4">效果反馈</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">生化数据改善</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">主观感受改善</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <!-- 产品管理 -->
                        <tr>
                            <td rowspan="4">产品管理</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">好馨意</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">其他品牌</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td rowspan="4">健康营养宣教</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">生化指标</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">营养饮食</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                    </table>
                    </el-scrollbar>
                </div>
            </el-col>
        </el-row>
    </div>
</template>
<script setup lang="ts">
import { storeToRefs } from 'pinia';
import { usePatientsInfo } from '/@/stores/patientsInfo';
import { computed, reactive } from 'vue';
import { ElMessage } from 'element-plus';
import { getPatData } from '/@/api/Patients';
import { list } from '/@/api/tiaochabiao';
const storesPat = usePatientsInfo();
const { patientsInfo } = storeToRefs(storesPat);
const props = defineProps(['tableHeight'])
const state = reactive({
    tableData: {
        基本信息:{
            患者姓名:'',
            性别:'',
            年龄:'',
            身高:'',
            病史:'',
            听力视力障碍:'',
            透析频次:"",
            透析时长:"",
        },
    },
    patientData: {
        姓名: '',
        干体重: '',
        证件号: "",
        诊断: '',
        身高: '',
        上一次透前体重: '',
        干体重最近调整记录:[{干体重:'',调整日期:'',调整人:'',备注:""}],
        透析方案:[{透析频率: "", 透析时长: "", 透析方案: ""}]
    },
    // 隐私调差
    from1Datas:<any>[],
    // 风险筛查
    from2Datas:{},
    // 风险评估
    from3Datas:{},
    loading: false,
})
const tableHe = computed(() => {
    return props.tableHeight - 130
})
const BMI = computed(() => {
    if (state.patientData.干体重 && state.patientData.身高) {
        return (Number(state.patientData.干体重) / (Number(state.patientData.身高) / 100 * Number(state.patientData.身高) / 100)).toFixed(2)
    } else {
        return ''
    }
})
// 第一步:定义子组件里面的方法
const getData = async (str: string) => {
    console.log("子组件获取显示数据!" + str);
    console.log(props.tableHeight)
    var pam = {
        patCode: patientsInfo.value.code,
    }
    try {
        state.loading = true
        state.from1Datas=[]
        const [res1,fromData1,fromData2,fromData3] = await Promise.all([
            getPatData(pam),
            getFrom1(),
            getFrom2(),
            getFrom3()
        ])
        state.patientData = res1.data
        const from1 = fromData1
        if (from1.data.list.length >= 1) {
            from1.data.list.forEach((element:any) => {
                state.from1Datas.push(JSON.parse(element?.surveryJsonBody))
            });
        }
        console.log('饮食的------------------')
        console.log(state.from1Datas)
    }
    catch (error) {
        state.loading = false
        ElMessage.error('结果请求错误,请联系管理员!')
    }
}
// 获取膳食调查表
const getFrom1 = async () => {
    const pasm = {
        page: 0,
        size: 0,
        wherecondition: `survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
        ordercondition: 'survery_time desc'
    }
    pasm.wherecondition += "and suvery_form_name='膳食调查表'"
    const yinyangbiaodan1 = await list(pasm)
    return yinyangbiaodan1
}
// 营养风险筛查结果
const getFrom2 = async () => {
    const pasm = {
        page: 0,
        size: 0,
        wherecondition: `survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
        ordercondition: 'survery_time desc'
    }
    pasm.wherecondition += "and suvery_form_name='NRS2002'"
    const yinyangbiaodan1 = await list(pasm)
    return yinyangbiaodan1
}
// 营养评估结果
const getFrom3 = async () => {
    const pasm = {
        page: 0,
        size: 0,
        wherecondition: `survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
        ordercondition: 'survery_time desc'
    }
    pasm.wherecondition += "and suvery_form_name='GNRI'"
    const yinyangbiaodan1 = await list(pasm)
    return yinyangbiaodan1
}
// 第二步:暴露方法
defineExpose({ getData })
</script>
<style  lang="scss">
.tableDiv {
    table {
        width: 100%;
        border-collapse: collapse;
    }
    th,
    td {
        border: 1px solid #ddd;
        padding: 8px;
        text-align: center;
    }
    th {
        background-color: #409eff;
        font-weight: bold;
        color: #ffffff;
    }
    tr:nth-child(even) {
        background-color: #f2f2f2;
    }
    .note {
        color: #409eff;
        font-size: smaller;
    }
    .fontred {
        color: red;
        font-size: large;
    }
}
</style>
src/views/home/index.vue
@@ -69,18 +69,6 @@
                            </span>
                        </template>
                    </el-tab-pane>
                    <el-tab-pane label="营养饮食指导方案" name="营养饮食指导方案">
                        <template #label>
                            <span class="custom-tabs-label home-title">
                                <el-icon>
                                    <Grid />
                                </el-icon>
                                <span style="margin-left: 5px">营养饮食指导方案</span>
                            </span>
                        </template>
                        <!-- <el-empty  description="该功能未开发"></el-empty>  -->
                    </el-tab-pane>
                    <el-tab-pane label="随访记录" name="随访记录">
                        <template #label>
                            <span class="custom-tabs-label home-title">
@@ -90,7 +78,16 @@
                                <span style="margin-left: 5px">随访记录</span>
                            </span>
                        </template>
                        <!-- <el-empty  description="该功能未开发"></el-empty>  -->
                    </el-tab-pane>
                    <el-tab-pane label="营养饮食指导方案" name="营养饮食指导方案">
                        <template #label>
                            <span class="custom-tabs-label home-title">
                                <el-icon>
                                    <Grid />
                                </el-icon>
                                <span style="margin-left: 5px">营养饮食指导方案</span>
                            </span>
                        </template>
                    </el-tab-pane>
                    <el-tab-pane label="生化数据" name="生化数据">
                        <template #label>
@@ -203,6 +200,7 @@
})
const handleCurrentChange = (val: any | undefined) => {
    if (val) {
        console.log(val)
        currentRow.value = val
        //缓存到vuex 中
        storesPat.setPatientsInfo(val)