chenyc
2024-09-27 b2d04038df93bed77a49e3ad29004d9fc7eca888
更新
5个文件已添加
8个文件已修改
2007 ■■■■■ 已修改文件
src/api/Patients/index.ts 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/tiaochabiao/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/imgs/login.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/dietary_survey.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/editDietary.vue 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/editDietary2.vue 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/patient_file.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/pingubiao/editDietary.vue 445 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/pingubiao/editDietary2.vue 456 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/pingubiao/editDietary3.vue 487 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/pingubiao/index.vue 309 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/index.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/Patients/index.ts
@@ -34,7 +34,7 @@
 */
export function getLisResults(params: object) {
    return request({
        url: '/nutrition/getLisResults',
        url: '/lis/report/getLatestReportByPat',
        method: 'post',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
@@ -43,3 +43,4 @@
    });
}
src/api/tiaochabiao/index.ts
@@ -39,6 +39,7 @@
   surveryTime:string,
   //调查人用户编号
   surveryPerson:string,
   surveryFormType:number,
   //调查内容
   surveryJsonBody:string,
   suveryFormName:string,
src/assets/imgs/login.jpg
src/views/home/components/dietary_survey.vue
@@ -1,6 +1,6 @@
<template>
    <div class="dietarySurvey-home" >
        <el-row   style="padding-left: 10px;">
        <el-row v-if="patientsInfo.id"  style="padding-left: 10px;">
            <el-form size="small" :inline="true" :model="state.formInline"> 
                <el-form-item label="调差表">
                    <el-select style="width: 120px;"
@@ -160,7 +160,7 @@
    const pasm={
        page: state.page,
        size: state.size,
        wherecondition: `patient_code = '${patientsInfo.value.code}'`,
        wherecondition:`survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
        ordercondition: 'survery_time desc'
    }
    if(state.formInline.date.length===2){
@@ -199,7 +199,7 @@
    const pasm = {
        page: 1,
        size: 10,
        wherecondition:`patient_code='${patientsInfo.value.code}'`,
        wherecondition:`survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
        ordercondition:'survery_time DESC'
    }
    if(state.formInline.date.length===2){
@@ -231,15 +231,12 @@
 * 编辑
 */
const handleEdit = (index: number, row: any) => {
  console.log(index, row)
  if(state.formInline.formTableName){
        if(state.formInline.formTableName==='膳食调查表'){
            editDietaryRef.value.openShow('update',row)
        }else if(state.formInline.formTableName==='营养膳食调查表'){
            editDietaryRef2.value.openShow('update',row)
        }
  console.log(index, row,state.formInline.formTableName)
  if(row.suveryFormName==='膳食调查表'){
        editDietaryRef.value.openShow('update',row)
    }else if(row.suveryFormName==='营养膳食调查表'){
        editDietaryRef2.value.openShow('update',row)
    }
//   editDietaryRef.value.openShow('update',row)
}
const handleDelete = (index: number, row: any) => {
  console.log(index, row)
src/views/home/components/editDietary.vue
@@ -584,6 +584,7 @@
        surveryPerson: userInfos.value.code,
        surveryJsonBody: '',
        suveryFormName:'膳食调查表',
        surveryFormType:0,
        updateTime: ''
    }
@@ -597,6 +598,7 @@
  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,
@@ -623,6 +625,64 @@
  }
  
}
const getPageInfo=()=>{
    state.tableData={
        表名: '膳食调查表',
        初次调查日期: formatDate(new Date(),'YYYY-mm-dd'),
        填表日期: '',
        更新日期: formatDate(new Date(),'YYYY-mm-dd'),
        记录者: userInfos.value.userName,
        人员构成: {
            type: '', //只能选择独居或者家庭
            input1: '',
        },
        烹饪主要操作者: {
            type: '',
            input1: '',
        },
        食材采购: {
            type: '',
            input1: '',
        },
        食物偏好: {
            type: '',
            input1: '',
        },
        三天饮食记录表:{
            透析日1:{日期:'',早餐:'',加餐1:'',午餐:"",加餐2:'',晚餐:''},
            非透析日:{日期:'',早餐:'',加餐1:'',午餐:"",加餐2:'',晚餐:''},
            透析日2:{日期:'',早餐:'',加餐1:'',午餐:"",加餐2:'',晚餐:''}
        },
        外吃:{
            type: '',
            input1: '',
        },
        每日饮水量种类:{
            type: '',
            input1: '',
        },
        日常调味料使用种类:{
            type: '',
            input1: '',
        },
        睡眠:{
            type: '',
            input1: '',
        },
        运动:{ type: '',input1: ''},
        排便情况:{ type: '',input1: ''},
        是否吸烟:{ type: '',input1: ''},
        是否饮酒:{ type: '',input1: ''},
        易过敏体质: {type: '', input1: '',},
        胃肠道紊乱者: {type: '', input1: '',},
        过敏食物: {type: '', input1: '',},
        宗教信仰: {type: '', input1: '',},
        过敏症状表现为以下哪些: {type: '', input1: '',},
        您是如何知道自己食物过敏: {type: '', input1: '',},
        备注: {type: '', input1: ''},
    }
}
// 第一步:定义子组件里面的方法
const getData = (str: string) => {
    console.log("子组件获取显示数据!" + str);
@@ -633,9 +693,7 @@
const openShow = (type: string,mode:tiaochabiaoInfo) => {
    console.log(type)
    if(type==='add'){
        state.tableData.初次调查日期=formatDate(new Date(),'YYYY-mm-dd')
        state.tableData.更新日期=formatDate(new Date(),'YYYY-mm-dd')
        state.tableData.记录者=userInfos.value.userName
        getPageInfo()
        state.dialogTableVisible = true
    }
    else if(type==='update'){
src/views/home/components/editDietary2.vue
@@ -1195,6 +1195,7 @@
    viewInfo:{
        id: 0,
        code: '',
        surveryFormType:0,
        clientCode: userInfos.value.clientCode,
        patientCode: patientsInfo.value.code,
        surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
@@ -1221,6 +1222,7 @@
    surveryPerson: userInfos.value.code,
    surveryJsonBody: JSON.stringify(state.tableData),
    suveryFormName:'营养膳食调查表',
    surveryFormType:0,
    updateTime: ''
  }
  console.log(info)
@@ -1250,9 +1252,7 @@
const openShow = (type: string,mode:tiaochabiaoInfo) => {
    console.log(type)
    if(type==='add'){
        state.tableData.初次调查日期=formatDate(new Date(),'YYYY-mm-dd')
        state.tableData.更新日期=formatDate(new Date(),'YYYY-mm-dd')
        state.tableData.记录者=userInfos.value.userName
        getPageInfo()
        state.dialogTableVisible = true
    }
    else if(type==='update'){
@@ -1265,6 +1265,157 @@
    }
   
}
const getPageInfo=()=>{
    state.tableData={
        表名: '营养膳食调查表',
        初次调查日期: formatDate(new Date(),'YYYY-mm-dd'),
        填表日期: '',
        更新日期: formatDate(new Date(),'YYYY-mm-dd'),
        记录者: userInfos.value.userName,
        常吃的主食: {
            type: '', //只能选择独居或者家庭
            input1: '',
        },
        常吃的蔬菜: {
            type: '',
            input1: '',
        },
        蔬菜日食用量: {
            type: '',
            input1: '',
        },
        水果食用量及频率:{
            input1: '',
            input2:''
        },
        常吃的肉类: {
            type: '',
            input1: '',
            input2:''
        },
        常吃的大豆及其制品是: {
            type: '',
            input1: '',
            input2:''
        },
        坚果摄入量:{
            type: '',
            input1: '',
            input2:''
        },
        每天食用奶类的量:{
            type: '',
            input1: '',
            input2: '',
        },
        每日饮水量种类:{
            type: '',
            input1: '',
        },
        日食盐量:{
            type: '',
            input1: '',
            input2: '',
        },
        烹饪油:{
            type: '',
            input1: '',
            input2: '',
        },
        经常使用的烹饪方法:{
            type: '',
            input1: '',
            input2: '',
        },
        是否食用零食:{
            type: '',
            input1: '',
            input2: '',
        },
        三餐怎么安排:{
            type: '',
            input1: '',
            input2: '',
        },
        中晚餐如何搭配:{
            type: '',
            input1: '',
            input2: '',
            input3: '',
            input4: '',
        },
        每日膳食搭配:{
            type: '',
            input1: '',
            input2: '',
        },
        一日三餐能按时:{
            type: '',
            input1: '',
            input2: '',
        },
        一日三餐中饮食结构最合理的是:{
            type: '',
            input1: '',
            input2: '',
        },
        是否加餐:{
            type: '',
            input1: '',
            input2: '',
        },
        三天饮食记录表:{
            透析日1:{日期:'',早餐:'',加餐1:'',午餐:"",加餐2:'',晚餐:''},
            非透析日:{日期:'',早餐:'',加餐1:'',午餐:"",加餐2:'',晚餐:''},
            透析日2:{日期:'',早餐:'',加餐1:'',午餐:"",加餐2:'',晚餐:''}
        },
        每餐就餐时间:{
            type: '',
            input1: '',
            input2: '',
        },
        你如何调节自己的饮食:{
            type: '',
            input1: '',
            input2: '',
        },
        你对合理膳食的基本要求知道多少:{
            type: '',
            input1: '',
            input2: '',
        },
        过敏食物:{
            type: '',
            input1: '',
            input2: '',
        },
        过敏症状表现为以下哪些: {type: '', input1: '',},
        人员构成: {
            type: '', //只能选择独居或者家庭
            input1: '',
        },
        烹饪主要操作者: {
            type: '',
            input1: '',
        },
        食材采购: {
            type: '',
            input1: '',
        },
        食物偏好: {
            type: '',
            input1: '',
        },
        是否吸烟:{ type: '',input1: ''},
        是否饮酒:{ type: '',input1: '',input2: '',input3: ''},
        周运动频率:{ type: '',input1: '',input2: '',input3: ''},
        作息时间: {type: '', input1: '',input2: ''},
        排便情况:{ type: '',input1: ''},
    }
}
// 第二步:暴露方法
defineExpose({ getData, openShow })
src/views/home/components/patient_file.vue
@@ -48,30 +48,29 @@
                    <el-icon size="16" color="#409efc"><CreditCard /></el-icon>  <span> &nbsp; 最新生化数据</span> 
                </div>
                <div >
                    <el-row :gutter="10" v-if="state.listData.lis">
                        <div v-for="(item, key) in state.listData.lis" :key="key">
                            <div class="itemLis" v-if="item?.结果列表.length>0" >
                    <el-row :gutter="10" v-if="state.listData.length">
                        <el-col :xs="8" :sm="8" :md="6" :lg="6" :xl="4" v-for="(item, key) in state.listData" :key="key">
                            <div class="itemLis" v-if="item?.item_result" >
                                <div class="title">
                                    {{key}}
                                </div>
                                <div  class="itemRes" v-for="(itemRes, resIndex) in item?.结果列表" :key="resIndex">
                                    <div  class="itemResDtile" v-for="(tdKey, ttIndex) in formatResKeys(itemRes)" :key="ttIndex" >
                                       <div>
                                        {{ itemRes[tdKey].name }}
                                <div  class="itemRes">
                                    <div  class="itemResDtile"   >
                                       <div style="text-align: center;width: 100%;">
                                        {{ item?.item_name }}
                                       </div>
                                       <div>
                                        {{ itemRes[tdKey].result }}<span class="tdate">{{itemRes[tdKey].unit}}</span>
                                        {{ item?.item_result }}<span class="tdate">{{item?.item_result_unit}}</span>
                                       </div>
                                    </div>
                                </div>
                                <div  class="tdate" >
                                    {{item?.结果列表[0]?.标本日期}}
                                    {{item?.sample_date_str}}
                                </div>
                               
                            </div>
                          
                        </div>
                        </el-col>
                    </el-row>
                </div>
            </el-card>
@@ -136,23 +135,10 @@
    catch(error){
        state.loading = false
    }
    // console.log("患者档案子组件获取显示数据!" + str);
    // console.log(props.tableHeight)
    // var pam = {
    //     patCode: patientsInfo.value.code,
    // }
    // state.loading = true
    // getPatData(pam).then(re=>{
    //     console.log(re.data)
    //     state.patientData=re.data
    // })
    
}
onMounted(()=>{
    // console.log(dayjs().add(-7, 'day').format('YYYY-MM-DD'),'---shan')
    if(state.listData.lis){
        console.log('有意义------------------')
    }
})
const formatResKeys = (obj: Object) => {
    return Object.keys(obj).filter((k) => k !== '标本日期');
@@ -181,7 +167,8 @@
}
.itemLis{
    min-width: 120px;
    margin-bottom: 10px;
    width: 100%;
    padding-left: 10px;
    padding-right: 10px;
    height: 100px;
@@ -207,9 +194,11 @@
        color: #303133;
        font-size: 16px;
        div{
            width: 100%;
            line-height: 30px;text-align: center; padding-left: 10px; padding-right: 10px;
        }
        .itemResDtile:not(:first-child) {
            width: 100%;
            /* 在这里添加你想要的样式 */
            border-left: 1px solid #909399; /* 示例样式:为除第一个div外的所有div添加红色边框 */
        }
src/views/home/components/pingubiao/editDietary.vue
New file
@@ -0,0 +1,445 @@
<template>
    <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>
                        <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="" 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" />
                                            </el-form-item>
                                        </th>
                                        <th colspan="2">记录者:{{ state.tableData.记录者 }}</th>
                                    </tr>
                                    <tr>
                                        <th colspan="2">
                                           患者姓名:{{patientsInfo.patientName}}
                                        </th>
                                        <th colspan="2">
                                            年龄:{{patientsInfo.age}}
                                        </th>
                                        <th colspan="2">性别:{{patientsInfo.patientGenderText}}</th>
                                    </tr>
                                    <tr>
                                        <td colspan="4">
                                            A、疾病状态(选最大分值)
                                        </td>
                                        <td colspan="1">
                                            分数
                                        </td>
                                        <td colspan="1">
                                            打分
                                            <!-- <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.烹饪主要操作者.type">
                                                <el-radio value="1">打分</el-radio>
                                            </el-radio-group> -->
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="4">
                                            1.需要量轻度增加:一般恶性肿瘤、髋部骨折、长期血液透、糖尿病、慢性疾病有急性并发症(肝硬化、慢性阻塞性肺病)
                                        </td>
                                        <td colspan="1">
                                            1分
                                        </td>
                                        <td colspan="1">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.疾病状态.type">
                                                <!-- <el-radio value="1">打分</el-radio> -->
                                                <el-radio value="1">✔</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="4">
                                            2.需要量中度增加:腹部大手术,卒中,重度肺炎,血液恶性肿瘤
                                        </td>
                                        <td colspan="1">
                                            2分
                                        </td>
                                        <td colspan="1">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.疾病状态.type">
                                                <!-- <el-radio value="2">打分</el-radio> -->
                                                <el-radio value="2">✔</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="4">
                                            3.需要量明显增加;颅脑损伤、骨髓移植、重症监护
                                        </td>
                                        <td colspan="1">
                                            3分
                                        </td>
                                        <td colspan="1">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.疾病状态.type">
                                                <!-- <el-radio value="3">打分</el-radio> -->
                                                <el-radio value="3">✔</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="6">
                                            B、营养状态指标(选最大分值)
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="4">
                                            1.正常营养状态
                                        </td>
                                        <td colspan="1">
                                            0分
                                        </td>
                                        <td colspan="1">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.营养状态.type">
                                                <el-radio value="0">✔</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="4">
                                            2.3个月内体重丢失>5%或者食物摄入比正常需要量低25%~50%
                                        </td>
                                        <td colspan="1">
                                            1分
                                        </td>
                                        <td colspan="1">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.营养状态.type">
                                                <el-radio value="1">✔</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="4">
                                            3.般情况差或2个月内体重丢失>5%或者食物摄入比正常需要量低
                                        </td>
                                        <td colspan="1">
                                            2分
                                        </td>
                                        <td colspan="1">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.营养状态.type">
                                                <el-radio value="2">✔</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="4">
                                            4.BMI<18.5kg/m2,且一般情况差或1个月内体重丢失>5%(或3个
                                        </td>
                                        <td colspan="1">
                                            3分
                                        </td>
                                        <td colspan="1">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.营养状态.type">
                                                <el-radio value="3">✔</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="6">
                                            C、年龄评分
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="4">
                                            小于70 岁
                                        </td>
                                        <td colspan="1">
                                            0分
                                        </td>
                                        <td colspan="1">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.年龄评分.type">
                                                <el-radio value="0">✔</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="4">
                                            大于、等于70 岁
                                        </td>
                                        <td colspan="1">
                                            1分
                                        </td>
                                        <td colspan="1">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.年龄评分.type">
                                                <el-radio value="1">✔</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="6">
                                            营养风险筛查总分
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="6" style="font-weight: 600;">
                                            注:NRS-2002评分=A+B+C。如患者NRS-2002评分>=3分,则提示患者存在营养风险,应进行营养评定,并制定和实施营养支持治疗计划。
                                            <br>
                                            <br>
                                            <br>
                                            <div style="color: blue;">
                                                最后得分:{{sum}}
                                            </div>
                                            <br>
                                            <span></span>
                                        </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>
                </div>
            </template>
        </el-dialog>
    </div>
</template>
<script setup lang="ts" name="visualizingLinkDemo2">
import { reactive, onMounted, onUnmounted, ref, computed } from 'vue';
import { formatDate } from '/@/utils/formatTime';
import { NextLoading } from '/@/utils/loading';
import { useUserInfo } from '/@/stores/userInfo';
import { usePatientsInfo } from '/@/stores/patientsInfo';
const storesPat = usePatientsInfo();
import {Add,update,deleteId,tiaochabiaoInfo} from '/@/api/tiaochabiao/index'
import { storeToRefs } from 'pinia';
import { useRoute,useRouter } from 'vue-router';
import { ElMessage } from 'element-plus';
const stores = useUserInfo();
const { patientsInfo } = storeToRefs(storesPat);
const { userInfos } = storeToRefs(stores);
const router = useRouter()
const emit = defineEmits([ "shuaxin" ]);
const state = reactive({
    dialogTableVisible:false,
    tableData: {
        表名: '营养风险筛查表(NRS2002)',
        初次调查日期:"",
        填表日期: '',
        更新日期: '',
        记录者: '陈银成',
        疾病状态: {
            type: '',
            input1: '',
        },
        营养状态: {
            type: '',
            input1: '',
        },
        年龄评分:{
            type: '',
            input1: '',
        }
    },
    loading: false,
    viewInfo:{
        id: 0,
        code: '',
        clientCode: userInfos.value.clientCode,
        patientCode: patientsInfo.value.code,
        surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
        surveryPerson: userInfos.value.code,
        surveryJsonBody: '',
        suveryFormName:'营养风险筛查表(NRS2002)',
        surveryFormType:1,
        updateTime: ''
    }
})
const sum = computed(() => {
    let x=0
    for(let key in state.tableData){
        console.log(key+'key=='+state.tableData[key]?.type)
        if(Number(state.tableData[key]?.type)){
            x+=Number(state.tableData[key]?.type)
        }
    }
    return x
})
const funhui=()=>{
    state.dialogTableVisible=false
}
const onSubmit = () => {
  console.log('submit!')
  console.log(state.tableData)
  const info:tiaochabiaoInfo={
    id: state.viewInfo.id,
    surveryFormType:1,
    code: state.viewInfo.code,
    clientCode: userInfos.value.clientCode,
    patientCode: patientsInfo.value.code,
    surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
    surveryPerson: userInfos.value.code,
    surveryJsonBody: JSON.stringify(state.tableData),
    suveryFormName:'营养风险筛查表(NRS2002)',
    updateTime: ''
  }
  console.log(info)
  if(info.id===0){
    Add(info).then(re=>{
        console.log(re.data)
        state.dialogTableVisible=false
        emit('shuaxin')
    })
  }else if(info.id>0){
    info.surveryTime=state.viewInfo.surveryTime
    update(info).then(re=>{
        console.log(re.data)
        state.dialogTableVisible=false
        emit('shuaxin')
    })
  }
}
// 第一步:定义子组件里面的方法
const getData = (str: string) => {
    console.log("子组件获取显示数据!" + str);
    state.loading = true
}
// 打开查看或者编辑明细
const openShow = (type: string,mode:tiaochabiaoInfo) => {
    console.log(type)
    if(type==='add'){
        state.tableData.初次调查日期=formatDate(new Date(),'YYYY-mm-dd')
        state.tableData.更新日期=formatDate(new Date(),'YYYY-mm-dd')
        state.tableData.记录者=userInfos.value.userName
        getPageInfo()
        state.dialogTableVisible = true
    }
    else if(type==='update'){
        console.log('------------------------3333333333333333')
        console.log(mode)
        state.viewInfo=mode
        state.tableData=JSON.parse(mode.surveryJsonBody)
        state.dialogTableVisible = true
    }
}
const getPageInfo=()=>{
    state.tableData={
        表名: '营养风险筛查表(NRS2002)',
        初次调查日期:formatDate(new Date(),'YYYY-mm-dd'),
        填表日期: '',
        更新日期: formatDate(new Date(),'YYYY-mm-dd'),
        记录者: userInfos.value.userName,
        疾病状态: {
            type: '',
            input1: '',
        },
        营养状态: {
            type: '',
            input1: '',
        },
        年龄评分:{
            type: '',
            input1: '',
        }
    }
}
// 第二步:暴露方法
defineExpose({ getData, openShow })
</script>
<style scoped lang="scss">
.gridtable {
    font-family: verdana, arial, sans-serif;
    font-size: 11px;
    color: #333333;
    border-width: 1px;
    border-color: #666666;
    border-collapse: collapse;
}
.gridtable th {
    border-width: 1px;
    padding: 8px;
    border-style: solid;
    text-align: left;
    border-color: #666666;
    background-color: #a4b0e2;
}
.gridtable td {
    border-width: 1px;
    padding: 8px;
    border-style: solid;
    border-color: #666666;
    background-color: #ffffff;
}
</style>
src/views/home/components/pingubiao/editDietary2.vue
New file
@@ -0,0 +1,456 @@
<template>
    <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>
                        <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="" 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" />
                                            </el-form-item>
                                        </th>
                                        <th colspan="2">记录者:{{ state.tableData.记录者 }}</th>
                                    </tr>
                                    <tr>
                                        <th colspan="2">
                                           患者姓名:{{patientsInfo.patientName}}
                                        </th>
                                        <th colspan="2">
                                            年龄:{{patientsInfo.age}}
                                        </th>
                                        <th colspan="2">性别:{{patientsInfo.patientGenderText}}</th>
                                    </tr>
                                    <tr>
                                        <td colspan="3">
                                            评价内容
                                        </td>
                                        <td colspan="3">
                                            评级结果
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="1" rowspan="3">
                                            体重改变
                                        </td>
                                        <td colspan="2">您目前体重?</td>
                                        <td colspan="3">
                                            <el-input
                                                v-model="state.tableData.您目前体重"
                                                style="max-width: 150px"
                                                placeholder=""
                                                >
                                                <template #append>kg</template>
                                            </el-input>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="2">与您六月份前的体重相比有变化吗?</td>
                                        <td colspan="3">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.体重改变1.type">
                                                <el-radio value="A">A:体重变化<5%或5%-10%但正在改善</el-radio>
                                                <el-radio value="B">B:持续减少5%-10%或由10%升至5%-10%</el-radio>
                                                <el-radio value="C">C:持续减少>10%</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="2">近2周体重变化了吗?</td>
                                        <td colspan="3">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.体重改变2.type">
                                                <el-radio value="A">A:无变化,正常体重或恢复到5%内</el-radio>
                                                <el-radio value="B">B:稳定,但低于理想或通常体重;部分恢复但不完全</el-radio>
                                                <el-radio value="C">C:减少/降低</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <!-- 饮食 -->
                                    <tr>
                                        <td rowspan="4">
                                            进食
                                        </td>
                                        <td colspan="2">您的食欲??</td>
                                        <td colspan="3" rowspan="3">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.进食1.type">
                                                <el-radio value="A">A:好;无变化,轻度;短期变化</el-radio>
                                                <el-radio value="B">B:正常下限,但在减少;差,但在增加;差,没变化(取决于初始状态)</el-radio>
                                                <el-radio value="C">C:差,并在减少;差,无变化</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="2">您的进食量有变化吗?</td>
                                    </tr>
                                    <tr>
                                        <td colspan="2">这种情况持续多长时间?</td>
                                    </tr>
                                    <tr>
                                       <td colspan="2">您的食物类型有变化吗?</td>
                                       <td colspan="3">
                                           <el-radio-group class="elradiozdi"
                                               v-model="state.tableData.进食2.type">
                                               <el-radio value="A">A:没有变化</el-radio>
                                               <el-radio value="B">B:半流食</el-radio>
                                               <el-radio value="C">C:全流食</el-radio>
                                               <el-radio value="D">D:无法进食</el-radio>
                                           </el-radio-group>
                                       </td>
                                   </tr>
                                   <tr>
                                        <td rowspan="6">
                                            胃肠道症状
                                        </td>
                                        <td colspan="5">近2周以来您经常出现下列问题吗?</td>
                                   </tr>
                                   <tr>
                                        <td colspan="2">1:没有食欲:</td>
                                        <td colspan="3">
                                            从不-很少-每天-一周1-2次-每周2-3次
                                        </td>
                                   </tr>
                                   <tr>
                                        <td colspan="2">2:腹泻:</td>
                                        <td colspan="3">
                                            从不-很少-每天-一周1-2次-每周2-3次
                                        </td>
                                   </tr>
                                   <tr>
                                        <td colspan="2">3:恶心:</td>
                                        <td colspan="3">
                                            从不-很少-每天-一周1-2次-每周2-3次
                                        </td>
                                   </tr>
                                   <tr>
                                        <td colspan="2">4:呕吐:</td>
                                        <td colspan="3">
                                            从不-很少-每天-一周1-2次-每周2-3次
                                        </td>
                                   </tr>
                                   <tr>
                                        <td colspan="6">
                                            <el-radio-group class="elradiozdi"
                                               v-model="state.tableData.胃肠道症状.type">
                                               <el-radio value="A">A:少有,间断</el-radio>
                                               <el-radio value="B">B:部分症状,>2周;严重、持续的症状,但在改善</el-radio>
                                               <el-radio value="C">C:部分或所有症状,频繁或每天,>2周</el-radio>
                                           </el-radio-group>
                                        </td>
                                   </tr>
                                  <!-- 功能特异                                      -->
                                  <tr>
                                        <td rowspan="6">
                                            功能异常
                                        </td>
                                        <td colspan="5">您现在还能像往常那样做以下的事吗?</td>
                                   </tr>
                                   <tr>
                                        <td colspan="2">1:散步:</td>
                                        <td colspan="3">
                                            没有-稍微减少-明显减少-增多
                                        </td>
                                   </tr>
                                   <tr>
                                        <td colspan="2">2:工作:</td>
                                        <td colspan="3">
                                            没有-稍微减少-明显减少-增多
                                        </td>
                                   </tr>
                                   <tr>
                                        <td colspan="2">3:室内活动:</td>
                                        <td colspan="3">
                                            没有-稍微减少-明显减少-增多
                                        </td>
                                   </tr>
                                   <tr>
                                        <td colspan="2">4:再过去的两周内有何变化:</td>
                                        <td colspan="3">
                                            有所改善-无变化-恶化
                                        </td>
                                   </tr>
                                   <tr>
                                        <td colspan="6">
                                            <el-radio-group class="elradiozdi"
                                               v-model="state.tableData.功能异常.type">
                                               <el-radio value="A">A:无受损,力气/精力无改变或轻中度下降但在改善</el-radio>
                                               <el-radio value="B">B:力气/精力中度下降但在改善;通常的活动部分减少;严重下降但在改善</el-radio>
                                               <el-radio value="C">C:力气/精力严重下降,卧床</el-radio>
                                           </el-radio-group>
                                        </td>
                                   </tr>
                                   <tr>
                                      <td>
                                        疾病和相关营养需求
                                      </td>
                                      <td colspan="2">疾病诊断&代谢应激</td>
                                      <td colspan="3">
                                          <el-radio-group class="elradiozdi"
                                              v-model="state.tableData.疾病和相关营养需求.type">
                                              <el-radio value="A">A:无应激</el-radio>
                                              <el-radio value="B">B:低水平应激</el-radio>
                                              <el-radio value="C">C:中高度应激</el-radio>
                                          </el-radio-group>
                                      </td>
                                  </tr>
                                    <tr>
                                        <td colspan="6" style="font-weight: 600;">
                                            注意:
                                            <br/>
                                            1.体重变化,考虑过去6个月或近2周的,过去5个月变化显著,但近一个月无丢失无增加,或近2周经治疗后体重稳定,则体重丢失一项不予考虑。
                                            <br/>2.胃肠道症状至少持续2周,偶尔一两次不予考虑。
                                            <br/>3.应激参照:大面积烧伤、高烧、或大量出血属高应激,长期发烧、慢性腹泻属中应激,长期低烧或恶性肿瘤属低应
                                            <br/>4.评价结果中,8项中至少5项属于C级或者B级,分别定位重度或中度具体参考:C>5项定为重度营养不良,有明显的躯体症状C小于5但B+C大于等于5项定为中度营养不良,B+C小于5项为轻度营养不良A≥5定为营养良好,或有明显的改善病例结果
                                        </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>
                </div>
            </template>
        </el-dialog>
    </div>
</template>
<script setup lang="ts" name="visualizingLinkDemo2">
import { reactive, onMounted, onUnmounted, ref, computed } from 'vue';
import { formatDate } from '/@/utils/formatTime';
import { NextLoading } from '/@/utils/loading';
import { useUserInfo } from '/@/stores/userInfo';
import { usePatientsInfo } from '/@/stores/patientsInfo';
const storesPat = usePatientsInfo();
import {Add,update,deleteId,tiaochabiaoInfo} from '/@/api/tiaochabiao/index'
import { storeToRefs } from 'pinia';
import { useRoute,useRouter } from 'vue-router';
import { ElMessage } from 'element-plus';
const stores = useUserInfo();
const { patientsInfo } = storeToRefs(storesPat);
const { userInfos } = storeToRefs(stores);
const router = useRouter()
const emit = defineEmits([ "shuaxin" ]);
const state = reactive({
    dialogTableVisible:false,
    tableData: {
        表名: '主观全面评定(SGA)评价',
        初次调查日期:"",
        填表日期: '',
        更新日期: '',
        记录者: '陈银成',
        您目前体重:'',
        体重改变1: {
            type: '',
            input1: '',
        },
        体重改变2: {
            type: '',
            input1: '',
        },
        进食1:{type: ''},
        进食2:{type: ''},
        进食3:{type: ''},
        进食4:{type: ''},
        胃肠道症状:{type: ''},
        功能异常: {
            type: '',
            input1: '',
        },
        疾病和相关营养需求:{
            type: '',
            input1: '',
        }
    },
    loading: false,
    viewInfo:{
        id: 0,
        code: '',
        clientCode: userInfos.value.clientCode,
        patientCode: patientsInfo.value.code,
        surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
        surveryPerson: userInfos.value.code,
        surveryJsonBody: '',
        suveryFormName:'主观全面评定(SGA)评价',
        surveryFormType:1,
        updateTime: ''
    }
})
const sum = computed(() => {
    let x=0
    for(let key in state.tableData){
        console.log(key+'key=='+state.tableData[key]?.type)
        if(Number(state.tableData[key]?.type)){
            x+=Number(state.tableData[key]?.type)
        }
    }
    return x
})
const funhui=()=>{
    state.dialogTableVisible=false
}
const onSubmit = () => {
  console.log('submit!')
  console.log(state.tableData)
  const info:tiaochabiaoInfo={
    id: state.viewInfo.id,
    surveryFormType:1,
    code: state.viewInfo.code,
    clientCode: userInfos.value.clientCode,
    patientCode: patientsInfo.value.code,
    surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
    surveryPerson: userInfos.value.code,
    surveryJsonBody: JSON.stringify(state.tableData),
    suveryFormName:'主观全面评定(SGA)评价',
    updateTime: ''
  }
  console.log(info)
  if(info.id===0){
    Add(info).then(re=>{
        console.log(re.data)
        state.dialogTableVisible=false
        emit('shuaxin')
    })
  }else if(info.id>0){
    info.surveryTime=state.viewInfo.surveryTime
    update(info).then(re=>{
        console.log(re.data)
        state.dialogTableVisible=false
        emit('shuaxin')
    })
  }
}
// 第一步:定义子组件里面的方法
const getData = (str: string) => {
    console.log("子组件获取显示数据!" + str);
    state.loading = true
}
// 打开查看或者编辑明细
const openShow = (type: string,mode:tiaochabiaoInfo) => {
    console.log(type)
    if(type==='add'){
        state.tableData.初次调查日期=formatDate(new Date(),'YYYY-mm-dd')
        state.tableData.更新日期=formatDate(new Date(),'YYYY-mm-dd')
        state.tableData.记录者=userInfos.value.userName
        // getPageInfo()
        state.dialogTableVisible = true
    }
    else if(type==='update'){
        console.log('------------------------3333333333333333')
        console.log(mode)
        state.viewInfo=mode
        state.tableData=JSON.parse(mode.surveryJsonBody)
        state.dialogTableVisible = true
    }
}
const getPageInfo=()=>{
    state.tableData={
        表名: '主观全面评定(SGA)评价',
        初次调查日期:formatDate(new Date(),'YYYY-mm-dd'),
        填表日期: '',
        更新日期: formatDate(new Date(),'YYYY-mm-dd'),
        记录者: userInfos.value.userName,
        体重改变: {
            type: '',
            input1: '',
        },
        营养状态: {
            type: '',
            input1: '',
        },
        年龄评分:{
            type: '',
            input1: '',
        }
    }
}
// 第二步:暴露方法
defineExpose({ getData, openShow })
</script>
<style scoped lang="scss">
.gridtable {
    font-family: verdana, arial, sans-serif;
    font-size: 11px;
    color: #333333;
    border-width: 1px;
    border-color: #666666;
    border-collapse: collapse;
}
.gridtable th {
    border-width: 1px;
    padding: 8px;
    border-style: solid;
    text-align: left;
    border-color: #666666;
    background-color: #a4b0e2;
}
.gridtable td {
    border-width: 1px;
    padding: 8px;
    border-style: solid;
    border-color: #666666;
    background-color: #ffffff;
}
</style>
src/views/home/components/pingubiao/editDietary3.vue
New file
@@ -0,0 +1,487 @@
<template>
    <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>
                        <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="" 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" />
                                            </el-form-item>
                                        </th>
                                        <th colspan="2">记录者:{{ state.tableData.记录者 }}</th>
                                    </tr>
                                    <tr>
                                        <th colspan="2">
                                           患者姓名:{{patientsInfo.patientName}}
                                        </th>
                                        <th colspan="2">
                                            年龄:{{patientsInfo.age}}
                                        </th>
                                        <th colspan="2">性别:{{patientsInfo.patientGenderText}}</th>
                                    </tr>
                                    <tr>
                                        <td colspan="3">
                                            一、患者的相关病史
                                        </td>
                                        <td colspan="3">
                                            评分(ABCD=0123)
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="3">
                                            1:干体重在过去的3-6个月总的变化
                                        </td>
                                        <td colspan="3">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.患者的相关病史.type">
                                                <el-radio value="0">A:干体重没有减少或体重丢失<0.5kg</el-radio>
                                                <el-radio value="1">B:体重丢失大于等于0.5kg,但<1kg</el-radio>
                                                <el-radio value="2">C:体重丢失大于等于1kg,但<5%体重评分结果</el-radio>
                                                <el-radio value="3">D:体重丢失大于等于5%体重</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="3">
                                            2:膳食摄入
                                        </td>
                                        <td colspan="3">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.膳食摄入.type">
                                                <el-radio value="0">A:食欲很好,膳食模式没有改变</el-radio>
                                                <el-radio value="1">B:固体食物摄入欠佳</el-radio>
                                                <el-radio value="2">C:饮食中度减少,完全流质饮食</el-radio>
                                                <el-radio value="3">D:低能量流质饮食,甚至饥饿</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="3">
                                            3:胃肠道症状
                                        </td>
                                        <td colspan="3">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.胃肠道症状.type">
                                                <el-radio value="0">A:没有症状,食欲良好</el-radio>
                                                <el-radio value="1">B:轻微的症状,偶尔恶心或呕吐</el-radio>
                                                <el-radio value="2">C:有时呕吐,中度的胃肠道症状</el-radio>
                                                <el-radio value="3">D:频繁腹泻、呕吐或严重的厌食症</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="3">
                                            4:营养相关损害
                                        </td>
                                        <td colspan="3">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.营养相关损害.type">
                                                <el-radio value="0">A:正常,功能能力良好</el-radio>
                                                <el-radio value="1">B:偶尔步行困难,经常感到疲惫</el-radio>
                                                <el-radio value="2">C:独立活动困难(如去厕所)</el-radio>
                                                <el-radio value="3">D:卧床或轮椅,或几乎没有身体活动能力</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="3">
                                            5:并发症和血透年限
                                        </td>
                                        <td colspan="3">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.并发症和血透年限.type">
                                                <el-radio value="0">A:透析时间<1年,无其他疾病</el-radio>
                                                <el-radio value="1">B:透析时间1-4年,轻度并发症(不包括多种慢性病:MCC)</el-radio>
                                                <el-radio value="2">C:透析时间>4年,中度患其他疾病(包括一种)</el-radio>
                                                <el-radio value="3">D:任何严重疾病,患有多种慢性病(大于等于2种)</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="6">
                                            二、身体测量(根据SGA的资料)
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="3">
                                            6:脂肪存量减少或皮下脂肪减少(眼球下方三头肌、二头肌、胸部)
                                        </td>
                                        <td colspan="3">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.并发症和血透年限.type">
                                                <el-radio value="0">A:正常(没有变化)</el-radio>
                                                <el-radio value="1">B:轻度</el-radio>
                                                <el-radio value="2">C:中度</el-radio>
                                                <el-radio value="3">D:重度</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="3">
                                            7:肌肉消耗的迹象(太阳穴、锁骨、肩胛骨肋骨、股四头肌、膝关节、骨节)
                                        </td>
                                        <td colspan="3">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.肌肉消耗的迹象.type">
                                                <el-radio value="0">A:正常(没有变化)</el-radio>
                                                <el-radio value="1">B:轻度</el-radio>
                                                <el-radio value="2">C:中度</el-radio>
                                                <el-radio value="3">D:重度</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="3">
                                            8:体重指数(BMI)
                                        </td>
                                        <td colspan="3">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.体重指数BMI.type">
                                                <el-radio value="0">A:BMI>20</el-radio>
                                                <el-radio value="1">B:BM1:16-17.99</el-radio>
                                                <el-radio value="2">C:BMI:18-19.99</el-radio>
                                                <el-radio value="3">D:BMI<16</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="6">
                                            三、实验室数据
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="3">
                                            9:血清白蛋白
                                        </td>
                                        <td colspan="3">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.血清白蛋白.type">
                                                <el-radio value="0">A:大于等于4.0g/dl</el-radio>
                                                <el-radio value="1">B:3.5-3.9g/dl</el-radio>
                                                <el-radio value="2">C:3.0-3.4g/dl</el-radio>
                                                <el-radio value="3">D:小于3.0g/dl</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="3">
                                            10:血清总铁结合力(TIBC))/血清转铁蛋白(TRF)
                                        </td>
                                        <td colspan="3">
                                            <el-radio-group class="elradiozdi"
                                                v-model="state.tableData.血清总铁结合力.type">
                                                <el-radio value="0">A:TIBC>250mg/dl或TRF>200mg/dl</el-radio>
                                                <el-radio value="1">B:TIBC200-249mg/dl或TRF170-199mg/dl</el-radio>
                                            </el-radio-group>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="6" style="font-weight: 600;">评分结果</td>
                                    </tr>
                                    <tr>
                                        <td colspan="6" style="font-weight: 600;">
                                            评分标准:<8分 轻度营养不良;9-18分 中度营养不良;>18分 重度营养不良;正常分值范围:0-30分。
                                            <br>
                                            <br>
                                            <br>
                                            <div style="color: blue;">
                                                最后得分:{{sum}}
                                            </div>
                                            <br>
                                            <span></span>
                                        </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>
                </div>
            </template>
        </el-dialog>
    </div>
</template>
<script setup lang="ts" name="visualizingLinkDemo2">
import { reactive, onMounted, onUnmounted, ref, computed } from 'vue';
import { formatDate } from '/@/utils/formatTime';
import { NextLoading } from '/@/utils/loading';
import { useUserInfo } from '/@/stores/userInfo';
import { usePatientsInfo } from '/@/stores/patientsInfo';
const storesPat = usePatientsInfo();
import {Add,update,deleteId,tiaochabiaoInfo} from '/@/api/tiaochabiao/index'
import { storeToRefs } from 'pinia';
import { useRoute,useRouter } from 'vue-router';
import { ElMessage } from 'element-plus';
const stores = useUserInfo();
const { patientsInfo } = storeToRefs(storesPat);
const { userInfos } = storeToRefs(stores);
const router = useRouter()
const emit = defineEmits([ "shuaxin" ]);
const state = reactive({
    dialogTableVisible:false,
    tableData: {
        表名: '营养不良炎症评分表(MIS)',
        初次调查日期:"",
        填表日期: '',
        更新日期: '',
        记录者: '陈银成',
        患者的相关病史: {
            type: '',
            input1: '',
        },
        膳食摄入: {
            type: '',
            input1: '',
        },
        胃肠道症状:{
            type: '',
            input1: '',
        },
        营养相关损害:{
            type: '',
            input1: '',
        },
        并发症和血透年限:{
            type: '',
            input1: '',
        },
        脂肪存量减少或皮下脂肪减少:{
            type: '',
            input1: '',
        },
        肌肉消耗的迹象:{
            type: '',
            input1: '',
        },
        体重指数BMI:{
            type: '',
            input1: '',
        },
        血清白蛋白:{
            type: '',
            input1: '',
        },
        血清总铁结合力:{
            type: '',
            input1: '',
        }
    },
    loading: false,
    viewInfo:{
        id: 0,
        code: '',
        clientCode: userInfos.value.clientCode,
        patientCode: patientsInfo.value.code,
        surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
        surveryPerson: userInfos.value.code,
        surveryJsonBody: '',
        suveryFormName:'营养风险筛查表(NRS2002)',
        surveryFormType:1,
        updateTime: ''
    }
})
const sum = computed(() => {
    let x=0
    for(let key in state.tableData){
        console.log(key+'key=='+state.tableData[key]?.type)
        if(Number(state.tableData[key]?.type)){
            x+=Number(state.tableData[key]?.type)
        }
    }
    return x
})
const funhui=()=>{
    state.dialogTableVisible=false
}
const onSubmit = () => {
  console.log('submit!')
  console.log(state.tableData)
  const info:tiaochabiaoInfo={
    id: state.viewInfo.id,
    surveryFormType:1,
    code: state.viewInfo.code,
    clientCode: userInfos.value.clientCode,
    patientCode: patientsInfo.value.code,
    surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
    surveryPerson: userInfos.value.code,
    surveryJsonBody: JSON.stringify(state.tableData),
    suveryFormName:'营养不良炎症评分表(MIS)',
    updateTime: ''
  }
  console.log(info)
  if(info.id===0){
    Add(info).then(re=>{
        console.log(re.data)
        state.dialogTableVisible=false
        emit('shuaxin')
    })
  }else if(info.id>0){
    info.surveryTime=state.viewInfo.surveryTime
    update(info).then(re=>{
        console.log(re.data)
        state.dialogTableVisible=false
        emit('shuaxin')
    })
  }
}
// 第一步:定义子组件里面的方法
const getData = (str: string) => {
    console.log("子组件获取显示数据!" + str);
    state.loading = true
}
// 打开查看或者编辑明细
const openShow = (type: string,mode:tiaochabiaoInfo) => {
    console.log(type)
    if(type==='add'){
        state.tableData.初次调查日期=formatDate(new Date(),'YYYY-mm-dd')
        state.tableData.更新日期=formatDate(new Date(),'YYYY-mm-dd')
        state.tableData.记录者=userInfos.value.userName
        getPageInfo()
        state.dialogTableVisible = true
    }
    else if(type==='update'){
        console.log('------------------------3333333333333333')
        console.log(mode)
        state.viewInfo=mode
        state.tableData=JSON.parse(mode.surveryJsonBody)
        state.dialogTableVisible = true
    }
}
const getPageInfo=()=>{
    state.tableData={
        表名: '营养不良炎症评分表(MIS)',
        初次调查日期:formatDate(new Date(),'YYYY-mm-dd'),
        填表日期: '',
        更新日期: formatDate(new Date(),'YYYY-mm-dd'),
        记录者: userInfos.value.userName,
        患者的相关病史: {
            type: '',
            input1: '',
        },
        膳食摄入: {
            type: '',
            input1: '',
        },
        胃肠道症状:{
            type: '',
            input1: '',
        },
        营养相关损害:{
            type: '',
            input1: '',
        },
        并发症和血透年限:{
            type: '',
            input1: '',
        },
        脂肪存量减少或皮下脂肪减少:{
            type: '',
            input1: '',
        },
        肌肉消耗的迹象:{
            type: '',
            input1: '',
        },
        体重指数BMI:{
            type: '',
            input1: '',
        },
        血清白蛋白:{
            type: '',
            input1: '',
        },
        血清总铁结合力:{
            type: '',
            input1: '',
        }
    }
}
// 第二步:暴露方法
defineExpose({ getData, openShow })
</script>
<style scoped lang="scss">
.gridtable {
    font-family: verdana, arial, sans-serif;
    font-size: 11px;
    color: #333333;
    border-width: 1px;
    border-color: #666666;
    border-collapse: collapse;
}
.gridtable th {
    border-width: 1px;
    padding: 8px;
    border-style: solid;
    text-align: left;
    border-color: #666666;
    background-color: #a4b0e2;
}
.gridtable td {
    border-width: 1px;
    padding: 8px;
    border-style: solid;
    border-color: #666666;
    background-color: #ffffff;
}
</style>
src/views/home/components/pingubiao/index.vue
New file
@@ -0,0 +1,309 @@
<template>
    <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-select style="width: 120px;"
                        v-model="state.formInline.formTableName"
                        placeholder="不选默认查全部"
                        clearable
                    >
                        <el-option label="营养风险筛查表(NRS2002)" value="营养风险筛查表(NRS2002)" />
                        <el-option label="营养不良炎症评分表(MIS)" value="营养不良炎症评分表(MIS)" />
                        <el-option label="主观全面评定(SGA)评价" value="主观全面评定(SGA)评价" />
                    </el-select>
                </el-form-item>
                <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.surveryTime?.substring(0,11)}}
                        </template>
                    </el-table-column>
                    <el-table-column  prop="surveryTime" label="调查表名称" show-overflow-tooltip >
                        <template #default="scope">
                            {{scope.row.suveryFormName}}
                        </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  @shuaxin="onSubmit" ref="editDietaryRef"></editDietary>
        <editDietary2  @shuaxin="onSubmit" ref="editDietaryRef2"></editDietary2>
        <editDietary3  @shuaxin="onSubmit" ref="editDietaryRef3"></editDietary3>
    </div>
</template>
<script setup lang="ts">
import { storeToRefs } from 'pinia';
import { usePatientsInfo } from '/@/stores/patientsInfo';
import {list,tiaochabiaoInfo,deleteId} from '/@/api/tiaochabiao/index'
import { computed, reactive, ref } from 'vue';
import editDietary2 from './editDietary2.vue'
import editDietary3 from './editDietary3.vue'
import editDietary from './editDietary.vue'
import { useRoute,useRouter } from 'vue-router';
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus';
const storesPat = usePatientsInfo();
const { patientsInfo } = storeToRefs(storesPat);
const props = defineProps(['tableHeight'])
const editDietaryRef=ref()
const editDietaryRef2=ref()
const editDietaryRef3=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: [],
    page:1,
    size:10,
    total:0,
    loading: false,
    formInline:{
        user: '',
        formTableName:'',
        date: [],
    },
    dialogTableVisible:false
})
const tableHe = computed(() => {
    return (props.tableHeight-200)+'px'
})
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=1 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
        state.total=re.data.total
    }).finally(()=>{
        loading.close()
    })
}
const addItem=()=>{
    if(state.formInline.formTableName){
        if(state.formInline.formTableName==='营养风险筛查表(NRS2002)'){
            editDietaryRef.value.openShow('add')
        }else if(state.formInline.formTableName==='主观全面评定(SGA)评价'){
            editDietaryRef2.value.openShow('add')
        }else if(state.formInline.formTableName==='营养不良炎症评分表(MIS)'){
            editDietaryRef3.value.openShow('add')
        }
    }else{
        ElMessage.warning('请先选择你要添加的表单名称!')
    }
    // router.push({path:'/tiaochabiao1',query:{type:'add',id:0}})
}
// 第一步:定义子组件里面的方法
const getData = (str: string) => {
    const pasm = {
        page: 1,
        size: 10,
        wherecondition:`survery_form_type=1 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=>{
        console.log(re)
        state.tableData=re.data.list
        state.total=re.data.total
    }).finally(()=>{
        loading.close()
    })
    state.loading = true
}
// 第二步:暴露方法
defineExpose({ getData })
/**
 * 编辑
 */
const handleEdit = (index: number, row: any) => {
  console.log(index, row,state.formInline.formTableName)
  if(row.suveryFormName==='营养风险筛查表(NRS2002)'){
        editDietaryRef.value.openShow('update',row)
    }else if(row.suveryFormName==='主观全面评定(SGA)评价'){
        editDietaryRef2.value.openShow('update',row)
    }else if(row.suveryFormName==='营养不良炎症评分表(MIS)'){
        editDietaryRef3.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">
    .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/index.vue
@@ -25,7 +25,7 @@
                    </el-table-column>
                </el-table>
            </el-col>
            <el-col :xs="6" :sm="18" :md="20" :lg="21" :xl="21" >
            <el-col :xs="18" :sm="18" :md="20" :lg="21" :xl="21" >
                <el-tabs v-model="state.activeName" class="demo-tabs" @tab-click="handleClick">
                    <el-tab-pane label="患者档案" name="患者档案">
                        <template #label>
@@ -90,7 +90,7 @@
                                <span style="margin-left: 5px">营养筛查评估</span>
                            </span>
                        </template>
                        Task
                    </el-tab-pane>
                    <el-tab-pane label="方案" name="方案">
                        <template #label>
@@ -116,13 +116,14 @@
                    </el-tab-pane>
                </el-tabs>
                <div class="itemDoby">
                    <patientFile v-if="state.activeName === '患者档案'" :tableHeight="state.tableHeight.detailRight"
                    <patientFile v-show="state.activeName === '患者档案'" :tableHeight="state.tableHeight.detailRight"
                        ref="patientFileRef" />
                    <lisUi v-if="state.activeName === '生化数据'" ref="lisUiRef">
                    <lisUi v-show="state.activeName === '生化数据'" ref="lisUiRef">
                    </lisUi>
                    <MedicationRecords v-if="state.activeName === '用药记录'"  :tableHeight="state.tableHeight.detailRight" ref="MedicationRecordsRef">
                    <MedicationRecords v-show="state.activeName === '用药记录'"  :tableHeight="state.tableHeight.detailRight" ref="MedicationRecordsRef">
                    </MedicationRecords>
                    <dietarySurvey ref="dietarySurveyRef" v-if="state.activeName === '膳食调查'"  :tableHeight="state.tableHeight.detailRight"></dietarySurvey>
                    <dietarySurvey ref="dietarySurveyRef" v-show="state.activeName === '膳食调查'"  :tableHeight="state.tableHeight.detailRight"></dietarySurvey>
                    <pinggubiao ref="pinggubiaoRef" v-show="state.activeName === '营养筛查评估'"  :tableHeight="state.tableHeight.detailRight"></pinggubiao>
                </div>
@@ -156,6 +157,8 @@
import patientFile from './components/patient_file.vue'
// 化验结果
import lisUi from './components/lis_.ui.vue'
// 评估表
import pinggubiao from './components/pingubiao/index.vue'
interface User {
    code: string,
    patientName: string
@@ -166,6 +169,7 @@
const patientFileRef = ref()
const currentRow = ref()
const lisUiRef = ref()
const pinggubiaoRef=ref()
const dietarySurveyRef=ref()// 膳食调查
const state = reactive({
    global: {
@@ -252,6 +256,9 @@
        } else if(state.activeName === '膳食调查'){
            dietarySurveyRef.value.getData()
           
        }else if(state.activeName === '营养筛查评估'){
            pinggubiaoRef.value.getData()
        }
    }
}
src/views/login/index.vue
@@ -48,7 +48,7 @@
import { useThemeConfig } from '/@/stores/themeConfig';
import { NextLoading } from '/@/utils/loading';
import logoMini from '/@/assets/logo-mini.svg';
import loginMain from '/@/assets/login-main.svg';
import loginMain from '/@/assets/imgs/login.jpg';
import loginBg from '/@/assets/login-bg.svg';
// 引入组件
@@ -117,8 +117,10 @@
            width: 100%;
            height: 52%;
            img {
                width: 100%;
                height: 100%;
                text-align: center;
                margin-left: 20%;
                width: 500px;
                height: 500px;
                animation: error-num 0.6s ease;
            }
        }