From ae5f070e62ea58f99308af145a304c860a232405 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期一, 28 四月 2025 14:20:55 +0800
Subject: [PATCH] xg营养管理需求

---
 src/views/home/components/patient_file.vue |  152 ++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 114 insertions(+), 38 deletions(-)

diff --git a/src/views/home/components/patient_file.vue b/src/views/home/components/patient_file.vue
index bbfa684..8a7de67 100644
--- a/src/views/home/components/patient_file.vue
+++ b/src/views/home/components/patient_file.vue
@@ -17,12 +17,12 @@
                         </el-form-item>
                         <el-form-item label="自购套餐:" >
                             <el-row>
-                                <el-col span='12'>
+                                <el-col :span='12'>
                                     <el-input v-model="state.taochan.自购几月" :disabled="state.formdispl" placeholder="购买多少个月">
                                         <template #append>月</template>
                                     </el-input>
                                 </el-col>
-                                <el-col span='12'>
+                                <el-col :span='12'>
                                     <el-input v-model="state.taochan.多少元套餐" :disabled="state.formdispl" placeholder="套餐金额">
                                         <template #append>元</template>
                                     </el-input>
@@ -31,10 +31,10 @@
                         </el-form-item>
                         <el-form-item label="自购产品名称">
                             <el-row>
-                                <el-col span='12'>
+                                <el-col :span='12'>
                                     <el-input v-model="state.taochan.产品名称" :disabled="state.formdispl" placeholder="产品名称"></el-input>
                                 </el-col>
-                                <el-col span='12'>
+                                <el-col :span='12'>
                                     <el-input v-model="state.taochan.自购多少盒" :disabled="state.formdispl" placeholder="数量">
                                         <template #append>盒</template>
                                     </el-input>
@@ -71,27 +71,38 @@
                                     </el-icon>
                                 </span>
                             </td>
-                            <td>干体重:<span>{{ state.patientData.干体重 }} (kg)</span></td>
+                            <td>干体重:<span>{{ state.patientData.干体重 }} (kg)</span>
+                                <el-icon :size="14" color="#409EFF" @click="state.gtzshow=true">
+                                    <Calendar />
+                                </el-icon>
+                            </td>
 
 
                         </tr>
                         <tr>
-                            <td colspan="2">证件号:{{ patientsInfo.patientIdentityNo }}</td>
-                            <td>透析龄:<span v-if="patientsInfo.medHistoryStatByMonth">{{
-            patientsInfo.medHistoryStatByMonth }}
-                                    (月)</span></td>
+                            <td colspan="2">证件号:{{ state.patientData.证件号 }}</td>
+                            <td>透析龄:<span>{{透析年龄}}</span></td>
                             <td>最近体重:<span>{{ state.patientData.上一次透前体重 }} (kg)</span></td>
                             <td>BMI:<span>{{ BMI }}</span></td>
 
                         </tr>
                         <tr>
-                            <td>电话号码:{{ patientsInfo.patientTelNo }}</td>
-                            <td>家属电话:{{ patientsInfo.patientTelNoRelative }}</td>
-                            <td colspan="3">家庭地址:{{ patientsInfo.patientAddress }}</td>
+                            <td>电话号码:{{ state.patientData.电话号码 }}</td>
+                            <td>家属电话:{{ state.patientData.亲属手机号 }}</td>
+                            <td colspan="3">家庭地址:{{ state.patientData.家庭住址 }}</td>
 
                         </tr>
                         <tr>
                             <td colspan="5">患者诊断:{{ state.patientData.诊断 }}</td>
+                        </tr>
+                        <tr>
+                            <td colspan="5">外院出院诊断:{{ state.patientData.出院诊断 }} 
+                                <span>
+                                    <el-icon :size="14" color="#409EFF" @click="updateZD">
+                                        <Edit />
+                                    </el-icon>
+                                </span>
+                                </td>
                         </tr>
                     </table>
                 </div>
@@ -102,38 +113,53 @@
                         <CreditCard />
                     </el-icon> <span> &nbsp; 最新生化数据</span>
                 </div>
-                <div>
-                    <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">
-                                    <div class="itemResDtile">
-                                        <div style="text-align: center;width: 100%;">
-                                            {{ item?.item_name }}
-                                        </div>
-                                        <div>
-                                            {{ item?.item_result }}<span class="tdate">{{ item?.item_result_unit
-                                                }}</span>
+                <el-scrollbar :height="(tableHeight-520)+'px'">
+                    <div>
+                        <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">
+                                        <div class="itemResDtile">
+                                            <div style="text-align: center;width: 100%;">
+                                                {{ item?.item_name }}
+                                            </div>
+                                            <div>
+                                                {{ item?.item_result }}<span class="tdate">{{ item?.item_result_unit
+                                                    }}</span>
+                                            </div>
                                         </div>
                                     </div>
-                                </div>
-                                <div class="tdate">
-                                    {{ item?.sample_date_str }}
+                                    <div class="tdate">
+                                        {{ item?.sample_date_str }}
+                                    </div>
+
                                 </div>
 
-                            </div>
-
-                        </el-col>
-                    </el-row>
-                </div>
+                            </el-col>
+                        </el-row>
+                    </div>
+                </el-scrollbar>
             </el-card>
 
         </div>
         <el-empty v-else description="无数据,请先选择患者"></el-empty>
+        <el-dialog v-model="state.gtzshow" title="干体重历史调整记录" width="800px">
+            <el-table  :data="state.gtztableData" height="300" >
+                    <el-table-column align="center" prop="createTime"  label="时间"  width="180" />  
+                    <el-table-column align="center" prop="pureWeight" label="干体重"  />
+                    <el-table-column align="center" label="启用时间">
+                        <template #default="scope">
+                            <span v-if="scope.row.enableRecordTime">{{scope.row.enableRecordTime.substring(0,11)}}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column align="center" prop="remark"  label="备注" />
+                  
+                </el-table>
+        </el-dialog>
     </div>
 
 </template>
@@ -143,7 +169,7 @@
 import { usePatientsInfo } from '/@/stores/patientsInfo';
 import { useUserInfo } from '/@/stores/userInfo';
 import { computed, onMounted, reactive } from 'vue';
-import { getPatData, getLisResults, update ,updateNurtion,listNurtion,AddNurtion} from '/@/api/Patients';
+import { getPatData, getLisResults, update ,updateNurtion,listNurtion,AddNurtion,getDryWeightList} from '/@/api/Patients';
 import { userInfo } from 'os';
 import { Search ,Edit,Check} from '@element-plus/icons-vue'
 import dayjs from 'dayjs';
@@ -158,6 +184,8 @@
 const { userInfos } = storeToRefs(stores);
 const props = defineProps(['tableHeight'])
 const state = reactive({
+    gtztableData:[],
+    gtzshow:false,
     formdispl:true,// 表单是否编辑
     // 患者套餐表
     taochanId:0,
@@ -176,7 +204,9 @@
         证件号: "",
         诊断: '',
         身高: '',
-        上一次透前体重: ''
+        上一次透前体重: '',
+        出院诊断:'',
+        '透析龄(月)':''
     },
     listData: <any>{}
 })
@@ -206,6 +236,30 @@
             state.loading = false
         })
     }
+}
+const updateZD=()=>{
+    ElMessageBox.prompt('请输入你要编辑的外院出院诊断', '提示', {
+        confirmButtonText: '确认',
+        cancelButtonText: '取消',
+        inputValue: state.patientData.出院诊断,
+    })
+        .then(({ value }) => {
+            const params = {
+                id: patientsInfo.value.id,
+                outDiagnoseFromPrevHospital: value
+            }
+            update(params).then(re => {
+                getPatData({ patCode: patientsInfo.value.code, }).then(res => {
+                    state.patientData = res.data
+                })
+            })
+        })
+        .catch(() => {
+            ElMessage({
+                type: 'info',
+                message: '取消修改',
+            })
+        })
 }
 /**打开修改身高 */
 const updateSg = () => {
@@ -240,6 +294,15 @@
         return ''
     }
 })
+const 透析年龄=computed(() => {
+    if (state.patientData['透析龄(月)']) {
+        const nian=Math.floor(Number(state.patientData['透析龄(月)']) / 12)===0?'':Math.floor(Number(state.patientData['透析龄(月)']) / 12)+'年'
+        const yue=(Number(state.patientData['透析龄(月)']) % 12)===0?'':Number(state.patientData['透析龄(月)']) % 12+'月'
+        return  nian +yue
+    } else {
+        return ''
+    }
+})
 // 第一步:定义子组件里面的方法
 const getData = async (str: string) => {
     var pam = {
@@ -258,12 +321,14 @@
     }
     try {
         state.loading = true
+        getGtzList()
         const [res1, res2,res3] = await Promise.all([
             getPatData(pam),
             getLisResults(pam2),
             listNurtion(pas3)
         ])
         state.patientData = res1.data
+        console.log('赋值患者信息',state.patientData)
         state.listData = res2.data
         if(res3.data?.list.length>=1){
             const row=res3.data.list[0]
@@ -289,6 +354,17 @@
     }
 
 }
+const getGtzList=()=>{
+    var data = {
+    wherecondition: `patient_code = '${patientsInfo.value.code}'`,
+    ordercondition: 'create_time desc'
+    }
+    getDryWeightList(data).then((res:any) => {
+        state.gtztableData = res.data.list
+    }).finally(()=>{
+        
+    })
+}
 // 刷新套餐
 const getlistNurtion=()=>{
     const pas3={

--
Gitblit v1.8.0