chenyc
2024-12-21 83ef13dab87cb59fccf0514d7d47f2ca0cae9f0f
更新
2个文件已添加
16个文件已修改
1073 ■■■■ 已修改文件
.env.development 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package-lock.json 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/dietary_survey.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/editDietary.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/editDietary2.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/fangAn/editDietary.vue 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/fangAn/index.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/pingubiao/editDietary.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/pingubiao/editDietary2.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/pingubiao/editDietary3.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/pingubiao/editDietary4.vue 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/pingubiao/editDietary5.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/pingubiao/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/suifangjilu/index.vue 609 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/styles.css 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/test.html 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.development
@@ -2,5 +2,5 @@
ENV = development
# 本地环境接口地址
# VITE_API_URL = 'http://testbs.ihemodialysis.com/'
VITE_API_URL = 'https://hemobs.icoldchain.cn/'
VITE_API_URL = 'http://testbs.ihemodialysis.com/'
# VITE_API_URL = 'https://hemobs.icoldchain.cn/'
package-lock.json
@@ -20,9 +20,11 @@
                "echarts-gl": "^2.0.9",
                "echarts-wordcloud": "^2.1.0",
                "element-plus": "^2.6.1",
                "html2canvas": "^1.4.1",
                "html2pdf.js": "^0.10.2",
                "js-cookie": "^3.0.5",
                "js-table2excel": "^1.1.2",
                "jspdf": "^2.5.2",
                "jsplumb": "^2.15.6",
                "mitt": "^3.0.1",
                "nprogress": "^0.2.0",
package.json
@@ -21,9 +21,11 @@
        "echarts-gl": "^2.0.9",
        "echarts-wordcloud": "^2.1.0",
        "element-plus": "^2.6.1",
        "html2canvas": "^1.4.1",
        "html2pdf.js": "^0.10.2",
        "js-cookie": "^3.0.5",
        "js-table2excel": "^1.1.2",
        "jspdf": "^2.5.2",
        "jsplumb": "^2.15.6",
        "mitt": "^3.0.1",
        "nprogress": "^0.2.0",
src/views/home/components/dietary_survey.vue
@@ -163,10 +163,10 @@
        wherecondition:`survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
        ordercondition: 'survery_time desc'
    }
    if(state.formInline.date.length===2){
    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){
    if(state.formInline?.formTableName){
        pasm.wherecondition+=`and suvery_form_name='${state.formInline.formTableName}'`
    }
    const loading = ElLoading.service({
@@ -202,7 +202,7 @@
        wherecondition:`survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
        ordercondition:'survery_time DESC'
    }
    if(state.formInline.date.length===2){
    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){
src/views/home/components/editDietary.vue
@@ -12,21 +12,21 @@
                                        <th colspan="2">
                                            <el-form-item label="初次调查日期">
                                                <el-date-picker v-model="state.tableData.初次调查日期" type="date" style="width: 100px;"
                                                    placeholder="" format="YYYY/MM/DD" value-format="YYYY-MM-DD" />
                                                    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="" format="YYYY/MM/DD" value-format="YYYY-MM-DD" />
                                                    placeholder="" readonly 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.记录者"  placeholder="" />
                                                <el-input readonly v-model="state.tableData.记录者"  placeholder="" />
                                            </el-form-item>
                                            
                                        </th>
@@ -693,7 +693,7 @@
    surveryPerson: userInfos.value.code,
    surveryJsonBody: JSON.stringify(state.tableData),
    suveryFormName:'膳食调查表',
    updateTime: ''
    updateTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS')
  }
  console.log(info)
  if(info.id===0){
@@ -799,6 +799,8 @@
        console.log(mode)
        state.viewInfo=mode
        state.tableData=JSON.parse(mode.surveryJsonBody)
        state.tableData.初次调查日期=mode.surveryTime
        state.tableData.更新日期=mode.updateTime
        state.dialogTableVisible = true
src/views/home/components/editDietary2.vue
@@ -916,7 +916,7 @@
        surveryJsonBody: JSON.stringify(state.tableData),
        suveryFormName: '营养膳食调查表',
        surveryFormType: 0,
        updateTime: ''
        updateTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
    }
    console.log(info)
    if (info.id === 0) {
@@ -952,6 +952,8 @@
        console.log(mode)
        state.viewInfo = mode
        state.tableData = JSON.parse(mode.surveryJsonBody)
        state.tableData.初次调查日期=mode.surveryTime
        state.tableData.更新日期=mode.updateTime
        state.dialogTableVisible = true
src/views/home/components/fangAn/editDietary.vue
@@ -2,7 +2,7 @@
    <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 id="printFrom1" class="print-section">
                    <div>
                        <el-form size="small">
                            <div style="width: 100%">
@@ -12,7 +12,7 @@
                                            <el-row>
                                                <el-col :span="12">
                                                    <el-form-item label="实施日期">
                                                        <el-date-picker v-model="state.tableData.初次调查日期" type="date"
                                                        <el-date-picker v-model="state.tableData.实施日期" type="date"
                                                            style="width: 100px;" placeholder="" format="YYYY/MM/DD"
                                                            value-format="YYYY-MM-DD" />
                                                    </el-form-item>
@@ -20,7 +20,7 @@
                                                <el-col :span="12">
                                                    <div style="text-align:right;width: 100%">
                                                        <span>营养师:</span> <el-input v-model="state.tableData.记录者"
                                                        <span>营养师:</span> <el-input v-model="state.tableData.记录者" readonly
                                                            style="width: 100px;" placeholder="" />
                                                    </div>
@@ -31,6 +31,7 @@
                                        </th>
                                    </tr>
                                    <tr>
                                        <td colspan="8" style=" background-color: rgb(250, 236, 216);font-weight:800 ;">
                                            S:询问饮食营养状况、生活习惯</td>
@@ -296,7 +297,7 @@
                                                placeholder="" />
                                        </td>
                                    </tr>
                                    <tr class="page-break"></tr>
                                    <tr>
                                        <td colspan="8" style=" background-color: rgb(250, 236, 216);font-weight:800 ;">
                                            P:饮食营养方案及食谱,定期随访并及时调整</td>
@@ -490,6 +491,7 @@
                                            </el-input>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="8" style=" background-color: rgb(250, 236, 216);font-weight:800 ;">
                                            食物替换法</td>
@@ -604,6 +606,8 @@
<script setup lang="ts" name="visualizingLinkDemo2">
import { Check } from '@element-plus/icons-vue'
import html2pdf from 'html2pdf.js';
import html2canvas from 'html2canvas';
import { jsPDF } from 'jspdf';
import { reactive, onMounted, onUnmounted, ref } from 'vue';
import { formatDate } from '/@/utils/formatTime';
import { NextLoading } from '/@/utils/loading';
@@ -631,7 +635,7 @@
    innerVisible:false,
    tableData: {
        表名: '患者方案表',
        初次调查日期: "",
        实施日期: "",
        填表日期: '',
        更新日期: '',
        记录者: '陈银成',
@@ -821,7 +825,7 @@
const generatePDF = () => {
    const element = document.getElementById('printFrom1');
    const opt = {
        margin: 10,
        margin: 0,
        filename: `${state.tableData.表名}.pdf`,
        image: { type: 'jpeg', quality: 0.98 },
        html2canvas: { scale: 2 },
@@ -865,7 +869,7 @@
const getPageInfo = async () => {
    state.tableData = {
        表名: '患者方案表',
        初次调查日期: "",
        实施日期: formatDate(new Date(),'YYYY-mm-dd'),
        填表日期: '',
        更新日期: '',
        记录者: userInfos.value.userName,
@@ -969,6 +973,18 @@
            其他: '1克盐=6.5克酱油=10克蚝油 水果 互相替换,如苹果/梨/西瓜/桃子/火龙果等'
        }
    }
    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: 2,
        updateTime: ''
    };
    const from1 = await getFrom1()
    const from2 = await getFrom2()
    const from3 = await getFrom3()
@@ -1066,6 +1082,8 @@
        console.log(mode)
        state.viewInfo = mode
        state.tableData = JSON.parse(mode.surveryJsonBody)
        state.tableData.实施日期=mode.surveryTime
        state.tableData.更新日期=mode.updateTime
        state.dialogTableVisible = true
@@ -1114,4 +1132,20 @@
.lvse {
    background-color: rgb(239.8, 248.9, 235.3);
}
@media print, screen {
  .print-section {
    width: auto !important;
    max-width: none !important;
    overflow: visible !important;
  }
  .print-section > * {
    page-break-inside: avoid;
  }
  .page-break {
    display: block;
    page-break-after: always;
  }
}
</style>
src/views/home/components/fangAn/index.vue
@@ -150,7 +150,7 @@
        wherecondition:`survery_form_type=2 and patient_code='${patientsInfo.value.code}'`,
        ordercondition: 'survery_time desc'
    }
    if(state.formInline.date.length===2){
    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){
@@ -179,7 +179,7 @@
        wherecondition:`survery_form_type=2 and patient_code='${patientsInfo.value.code}'`,
        ordercondition:'survery_time DESC'
    }
    if(state.formInline.date.length===2){
    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){
@@ -241,22 +241,6 @@
</script>
<style  lang="scss">
    .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;
src/views/home/components/pingubiao/editDietary.vue
@@ -2,7 +2,7 @@
    <div class="dietarySurvey-item">
        <el-dialog v-model="state.dialogTableVisible" title="营养风险筛查表(NRS2002)" :fullscreen="true" width="100%">
            <div class="container" style="width: 100%; height: 100%; overflow: auto">
                <div>
                <div id="pinggu1">
                    <div>
                        <el-form size="small">
                            <div style="width: 100%">
@@ -11,6 +11,7 @@
                                        <th colspan="2">
                                            <el-form-item label="初次调查日期">
                                                <el-date-picker
                                                readonly
                                                    v-model="state.tableData.初次调查日期"
                                                    type="date"
                                                    style="width: 100px"
@@ -23,6 +24,7 @@
                                        <th colspan="2">
                                            <el-form-item label="更新日期">
                                                <el-date-picker
                                                readonly
                                                    v-model="state.tableData.更新日期"
                                                    type="date"
                                                    style="width: 100px"
@@ -34,7 +36,7 @@
                                        </th>
                                        <th colspan="2">
                                            <el-form-item label="记录者">
                                                <el-input v-model="state.tableData.记录者" style="width: 100px" placeholder="" />
                                                <el-input v-model="state.tableData.记录者" style="width: 100px" readonly placeholder="" />
                                            </el-form-item>
                                        </th>
                                    </tr>
@@ -188,6 +190,14 @@
                <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="'#pinggu1'">
                        <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>
@@ -195,6 +205,7 @@
</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';
@@ -324,6 +335,8 @@
        console.log(mode);
        state.viewInfo = mode;
        state.tableData = JSON.parse(mode.surveryJsonBody);
        state.tableData.初次调查日期=mode.surveryTime
        state.tableData.更新日期=mode.updateTime
        state.dialogTableVisible = true;
    }
};
@@ -362,6 +375,18 @@
        updateTime: '',
    };
};
const generatePDF=()=> {
      const element = document.getElementById('pinggu1');
      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 });
src/views/home/components/pingubiao/editDietary2.vue
@@ -2,7 +2,7 @@
    <div class="dietarySurvey-item">
        <el-dialog v-model="state.dialogTableVisible" title="主观全面评定(SGA)评价" :fullscreen="true" width="100%">
            <div class="container" style="width: 100%; height: 100%;overflow: auto;">
                <div>
                <div id="pinggu2">
                    <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,7 +19,7 @@
                                        </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>
@@ -28,7 +28,7 @@
                                        </th>
                                        <th colspan="2">
                                            <el-form-item label="记录者">
                                                <el-input v-model="state.tableData.记录者" style="width: 100px;"   placeholder="" />
                                                <el-input v-model="state.tableData.记录者" style="width: 100px;" readonly  placeholder="" />
                                            </el-form-item>
                                        </th>
@@ -427,6 +427,14 @@
                    <el-button type="primary" @click="onSubmit">
                        保存
                    </el-button>
                    <el-button v-if="state.viewInfo.id" type="primary" v-print="'#pinggu2'">
                        <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>
@@ -437,6 +445,7 @@
</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';
@@ -621,6 +630,8 @@
        console.log(mode)
        state.viewInfo = mode
        state.tableData = JSON.parse(mode.surveryJsonBody)
        state.tableData.初次调查日期=mode.surveryTime
        state.tableData.更新日期=mode.updateTime
        state.dialogTableVisible = true
@@ -720,7 +731,18 @@
        updateTime: ''
    }
}
const generatePDF=()=> {
      const element = document.getElementById('pinggu2');
      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>
src/views/home/components/pingubiao/editDietary3.vue
@@ -2,7 +2,7 @@
    <div class="dietarySurvey-item">
        <el-dialog v-model="state.dialogTableVisible" title="营养不良炎症评分表(MIS)" :fullscreen="true" width="100%">
            <div class="container" style="width: 100%; height: 100%; overflow: auto">
                <div>
                <div id="pinggu3">
                    <div>
                        <el-form size="small">
                            <div style="width: 100%">
@@ -10,7 +10,7 @@
                                    <tr>
                                        <th colspan="2">
                                            <el-form-item label="初次调查日期">
                                                <el-date-picker
                                                <el-date-picker readonly
                                                    v-model="state.tableData.初次调查日期"
                                                    type="date"
                                                    style="width: 100px"
@@ -22,7 +22,7 @@
                                        </th>
                                        <th colspan="2">
                                            <el-form-item label="更新日期">
                                                <el-date-picker
                                                <el-date-picker readonly
                                                    v-model="state.tableData.更新日期"
                                                    type="date"
                                                    style="width: 100px"
@@ -34,7 +34,7 @@
                                        </th>
                                        <th colspan="2">
                                            <el-form-item label="记录者">
                                                <el-input v-model="state.tableData.记录者" style="width: 100px" placeholder="" />
                                                <el-input v-model="state.tableData.记录者" style="width: 100px" readonly placeholder="" />
                                            </el-form-item>
                                        </th>
                                    </tr>
@@ -194,6 +194,14 @@
                <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="'#pinggu3'">
                        <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>
@@ -201,6 +209,7 @@
</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';
@@ -343,6 +352,8 @@
        console.log(mode);
        state.viewInfo = mode;
        state.tableData = JSON.parse(mode.surveryJsonBody);
        state.tableData.初次调查日期=mode.surveryTime
        state.tableData.更新日期=mode.updateTime
        state.dialogTableVisible = true;
    }
};
@@ -407,7 +418,18 @@
        updateTime: '',
    };
};
const generatePDF=()=> {
      const element = document.getElementById('pinggu3');
      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>
src/views/home/components/pingubiao/editDietary4.vue
@@ -2,7 +2,7 @@
    <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>
                <div id="pinggu4">
                    <div>
                        <el-form size="small" >
                            <div style="width: 100%">
@@ -11,14 +11,14 @@
                                    <tr>
                                        <th colspan="2">
                                            <el-form-item label="初次调查日期">
                                                <el-date-picker v-model="state.tableData.初次调查日期" type="date" style="width: 100px;"
                                                <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" style="width: 100px;"
                                                <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>
@@ -26,7 +26,7 @@
                                        </th>
                                        <th colspan="2">
                                            <el-form-item label="记录者">
                                                <el-input v-model="state.tableData.记录者" style="width: 100px;"   placeholder="" />
                                                <el-input v-model="state.tableData.记录者" style="width: 100px;"  readonly  placeholder="" />
                                            </el-form-item>
                                        </th>
@@ -132,6 +132,14 @@
                    <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>
@@ -142,6 +150,7 @@
</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';
@@ -264,6 +273,8 @@
        console.log(mode)
        state.viewInfo=mode
        state.tableData=JSON.parse(mode.surveryJsonBody)
        state.tableData.初次调查日期=mode.surveryTime
        state.tableData.更新日期=mode.updateTime
        state.dialogTableVisible = true
@@ -307,6 +318,18 @@
        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 })
src/views/home/components/pingubiao/editDietary5.vue
@@ -2,7 +2,7 @@
    <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>
                <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>
@@ -151,6 +149,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,6 +167,7 @@
</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';
@@ -335,6 +342,8 @@
        console.log(mode)
        state.viewInfo = mode
        state.tableData = JSON.parse(mode.surveryJsonBody)
        state.tableData.初次调查日期=mode.surveryTime
        state.tableData.更新日期=mode.updateTime
        state.dialogTableVisible = true
    }
@@ -370,7 +379,18 @@
        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>
src/views/home/components/pingubiao/index.vue
@@ -176,7 +176,7 @@
        wherecondition:`survery_form_type=1 and patient_code='${patientsInfo.value.code}'`,
        ordercondition: 'survery_time desc'
    }
    if(state.formInline.date.length===2){
    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){
src/views/home/components/suifangjilu/index.vue
@@ -1,40 +1,64 @@
<template>
    <div>
        <el-row>
            <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
                <div class="tableDiv">
                    <table>
                        <tr>
                            <th colspan="7" style="text-align: left">营养服务管理记录</th>
                        </tr>
                        <tr>
                            <td rowspan="3">基本信息</td>
                            <td :rowspan="2+state.patientData.透析方案.length">基本信息</td>
                            <td>患者姓名</td>
                            <td></td>
                            <td>{{ patientsInfo.patientName }}</td>
                            <td>性别</td>
                            <td></td>
                            <td>{{ patientsInfo.patientGenderText }}</td>
                            <td>年龄</td>
                            <td></td>
                            <td><span v-if="patientsInfo.age">{{ patientsInfo.age }} 岁</span></td>
                        </tr>
                        <tr>
                            
                           
                            <td>身高(m)</td>
                            <td></td>
                            <td>身高</td>
                            <td>{{ state.patientData.身高 }} <span v-if="state.patientData.身高">(cm)</span></td>
                            <td>病史</td>
                            <td></td>
                            <td>听力/视力障碍</td>
                            <td></td>
                        </tr>
                        <tr>
                            <td>透析频次</td>
                            <td></td>
                            <td>透析时长</td>
                            <td></td>
                            <td>{{ state.patientData.诊断 }}</td>
                            <td>透龄</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>
@@ -53,129 +77,155 @@
                            <td></td>
                        </tr>
                        <tr>
                            <td>项目</td>
                            <td>序号</td>
                            <td>项目内容</td>
                            <td>时间</td>
                            <td>详情</td>
                            <td>备注</td>
                            <td>记录者</td>
                            <th>项目</th>
                            <!-- <td>序号</td> -->
                            <th>项目内容</th>
                            <th>时间</th>
                            <th colspan="2">详情</th>
                            <th>备注</th>
                            <th>记录者</th>
                        </tr>
                        <tr>
                            <td rowspan="4">食物过敏史及
                                <br/>胃肠功能评估</td>
                            <td rowspan="2">1</td>
                            <td rowspan="2">食物过敏源</td>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        <!-- 食物过敏原 -->
                        <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>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                            <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>
                        <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>
                            
                            <td rowspan="2">2</td>
                            <td rowspan="2">胃肠功能评估</td>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        </template>
                        <!-- 饮食管理 -->
                        <tr>
                            <td rowspan="6">饮食管理</td>
                            <td rowspan="2">1</td>
                            <td rowspan="2">膳食调查</td>
                            <td></td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            
                            <td rowspan="2">2</td>
                            <td rowspan="2">饮食问题</td>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td rowspan="2">3</td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td rowspan="2">饮食建议</td>
                            <td></td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <!-- 生活方式管理 -->
                         <tr>
                            <td rowspan="4">生活方式管理</td>
                            <td rowspan="2">1</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">生活习惯</td>
                            <td></td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            
                            <td rowspan="2">2</td>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">指导建议</td>
                            <td></td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
                         <!-- 用药管理 -->
                         <tr>
                            <td rowspan="6">用药管理</td>
                            <td rowspan="2">1</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">用药调查</td>
                            <td></td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
@@ -187,10 +237,10 @@
                        </tr>
                        <tr>
                            
                            <td rowspan="2">2</td>
                            <!-- <td rowspan="2">2</td> -->
                            <td rowspan="2">用药监督</td>
                            <td></td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
@@ -202,10 +252,10 @@
                        </tr>
                        <tr>
                            
                            <td rowspan="2">3</td>
                            <!-- <td rowspan="2">3</td> -->
                            <td rowspan="2">指导建议</td>
                            <td></td>
                            <td></td>
                            <td colspan="2"></td>
                            <td></td>
                            <td></td>
                        </tr>
@@ -218,16 +268,278 @@
                        <!-- 随访 -->
                        <tr>
                            <td rowspan="2">随访</td>
                            <td rowspan="2">1</td>
                            <!-- <td rowspan="2">1</td> -->
                            <td rowspan="2">随访情况</td>
                            <td></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>
@@ -235,27 +547,7 @@
                    </table>
                </div>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
                <div class="tableDiv">
                    <table>
                        <tr>
                            <td rowspan="2">随访</td>
                            <td rowspan="2">1</td>
                            <td rowspan="2">随访情况</td>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                    </table>
                </div>
            </el-col>
        </el-row>
    </div>
    
@@ -265,32 +557,125 @@
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: [],
    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 = (str: string) => {
const getData = async (str: string) => {
    console.log("子组件获取显示数据!" + str);
    console.log(props.tableHeight)
    var pam = {
        patientCode: patientsInfo.value.code,
        page: 1,
        size: 100,
        orderType: 1,
        orderIsUse: 2,
        desc: 1,
        orderName: '',
        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='GNIR营养评估分'"
    const yinyangbiaodan1 = await list(pasm)
    return yinyangbiaodan1
}
// 第二步:暴露方法
defineExpose({ getData })
src/views/home/index.vue
@@ -337,7 +337,6 @@
    right: 30px;
    width: 200px;
    height: 100px;
    background-color: #ffffff;
    color: rgb(16, 3, 3);
    padding: 10px;
    z-index: 999;
src/views/styles.css
New file
@@ -0,0 +1,69 @@
body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    background-color: #f5f5f5;
  }
  .container {
    max-width: 1200px;
    margin: 20px auto;
    padding: 20px;
    background: white;
    border: 1px solid #ddd;
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  }
  .body-analysis {
    display: flex;
    align-items: flex-start;
  }
  .body-figure {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-right: 20px;
  }
  .figure {
    width: 50px;
    height: 200px;
    background: linear-gradient(to bottom, #87CEEB 37%, #A0D6B4 22%, #FFE4B5 17%, #FFB6C1 4%, #D3D3D3 18%);
    border-radius: 10px;
    position: relative;
  }
  .figure-percentage {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 10px;
  }
  .figure-percentage p {
    margin: 0;
  }
  .analysis-table {
    width: 100%;
    border-collapse: collapse;
  }
  .analysis-table th,
  .analysis-table td {
    border: 1px solid #ddd;
    text-align: center;
    padding: 10px;
  }
  .analysis-table th {
    background-color: #4682B4;
    color: white;
  }
  .analysis-table tbody tr:nth-child(odd) {
    background-color: #f9f9f9;
  }
src/views/test.html
New file
@@ -0,0 +1,144 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>人体成分分析报告</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
        }
        .container {
            width: 100%;
            max-width: 1200px;
            margin: 0 auto;
            padding: 20px;
            background-color: #f4f4f4;
        }
        h1 {
            color: #c0392b;
            text-align: center;
        }
        table {
            width: 100%;
            border-collapse: collapse;
        }
        th, td {
            border: 1px solid #ddd;
            padding: 8px;
            text-align: left;
        }
        th {
            background-color: #3498db;
            color: white;
        }
        section {
            margin-top: 20px;
        }
        .chart {
            display: flex;
            justify-content: space-between;
        }
        .chart img {
            width: 48%;
        }
        .analysis {
            margin-top: 20px;
        }
        .analysis p {
            margin-bottom: 10px;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>人体成分分析报告</h1>
        <section>
            <h2>基本信息</h2>
            <table>
                <tr>
                    <th>姓名</th>
                    <th>ID编号</th>
                    <th>性别</th>
                    <th>年龄</th>
                    <th>测试日期</th>
                </tr>
                <tr>
                    <td>Jonson</td>
                    <td>7347204156</td>
                    <td>男</td>
                    <td>39</td>
                    <td>2019.09.27 00:00</td>
                </tr>
            </table>
        </section>
        <section>
            <h2>人体成分分析</h2>
            <table>
                <tr>
                    <th>项目</th>
                    <th>测量值</th>
                    <th>体内水分</th>
                    <th>肌肉量</th>
                    <th>去脂肪质量</th>
                    <th>体重</th>
                    <th>标准范围</th>
                </tr>
                <tr>
                    <td>细胞内水份(L)</td>
                    <td>30.8</td>
                    <td>49.6</td>
                    <td>64.2</td>
                    <td>67.8</td>
                    <td>83.1</td>
                    <td>22.7~27.7</td>
                </tr>
                <!-- 更多行... -->
            </table>
        </section>
        <section class="chart">
            <img src="path_to_image_1.png" alt="Image 1">
            <img src="path_to_image_2.png" alt="Image 2">
        </section>
        <section>
            <h2>综合评价</h2>
            <p>总分:88.0 / 100 分</p>
            <p>目标调节指导:...</p>
            <!-- 更多段落... -->
        </section>
        <section>
            <h2>节段肌肉与脂肪分析及体型判定</h2>
            <img src="path_to_image_3.png" alt="Image 3">
            <p>体型判定:过重肌肉型</p>
        </section>
        <section>
            <h2>肌肉品质</h2>
            <img src="path_to_image_4.png" alt="Image 4">
            <p>肌肉品质综合评价:78 / 100 分</p>
        </section>
        <section>
            <h2>人体成分历史变化</h2>
            <img src="path_to_image_5.png" alt="Image 5">
        </section>
    </div>
</body>
</html>