From 59ba223820054f296191f581bd413f5b9cff9e7f Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期三, 21 八月 2024 18:38:48 +0800
Subject: [PATCH] 更新患者档案

---
 src/views/home/index.vue |  108 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 80 insertions(+), 28 deletions(-)

diff --git a/src/views/home/index.vue b/src/views/home/index.vue
index 3c14bf2..628e315 100644
--- a/src/views/home/index.vue
+++ b/src/views/home/index.vue
@@ -1,7 +1,7 @@
 <template>
 	<div class="home-container layout-pd ">
         <el-row :gutter="15" >
-            <el-col :span="4"  class="patTabel">
+            <el-col :xs="8" :sm="6" :md="4" :lg="3" class="patTabel">
                 <el-table :data="state.filterTableData" 
                 stripe 
                 :height="state.tableHeight.left"
@@ -13,7 +13,6 @@
                         <template #header>
                             <div class="home-title">
                                     <el-avatar shape="square" style="width: 16px; height: 16px;background-color: #ffffff;margin-right: 10px;margin-left: 10px;" fit="contain" :src="huanzheliebiao" />
-                          
                                     <div class="titleHome">患者列表</div>
                             </div>
                             <el-input size="default"  @change="getPatients"  v-model="state.search" placeholder="支持模糊查询"  :prefix-icon="Search"/>
@@ -28,7 +27,7 @@
                     </el-table-column>
                 </el-table>
             </el-col>
-            <el-col :span="20" class="detailRight">
+            <el-col :xs="14" :sm="18" :md="20" :lg="21" class="detailRight">
                 <el-tabs v-model="state.activeName" class="demo-tabs" @tab-click="handleClick">
                     <el-tab-pane label="患者档案" name="患者档案">
                         <template #label>
@@ -37,7 +36,7 @@
                                 <span style="margin-left: 5px">患者档案</span>
                             </span>
                         </template>
-                        患者档案
+                        <patientFile :tableHeight="state.tableHeight.detailRight"  ref="patientFileRef"></patientFile>
                     </el-tab-pane>
                     <el-tab-pane label="生化数据" name="生化数据">
                         <template #label>
@@ -46,7 +45,7 @@
                                 <span style="margin-left: 5px">生化数据</span>
                             </span>
                         </template>
-                        Config
+                        <lisUi ref="lisUiRef"></lisUi>
                     </el-tab-pane>
                     <el-tab-pane label="用药记录" name="用药记录">
                         <template #label>
@@ -55,7 +54,7 @@
                                 <span style="margin-left: 5px">用药记录</span>
                             </span>
                         </template>
-                        Role
+                        <MedicationRecords :tableHeight="state.tableHeight.detailRight" ref="MedicationRecordsRef"></MedicationRecords>
                     </el-tab-pane>
                     <el-tab-pane label="历史服务" name="历史服务">
                         <template #label>
@@ -73,7 +72,7 @@
                                 <span style="margin-left: 5px">膳食调查</span>
                             </span>
                         </template>
-                        Task
+                        <dietarySurvey></dietarySurvey>
                     </el-tab-pane>
                     <el-tab-pane label="营养筛查评估" name="营养筛查评估">
                         <template #label>
@@ -105,6 +104,11 @@
                 </el-tabs>
             </el-col>
         </el-row>
+        <div class="fixed-div" v-show="patientsInfo.patientName">
+            <el-avatar :size="80" :src="patientsInfo.patientAvatarIcon" />
+            <div>{{patientsInfo.patientName}}</div>
+            
+        </div>
 	</div>
 </template>
 
@@ -114,17 +118,31 @@
 import {QueryList} from '/@/api/Patients'
 import { storeToRefs } from 'pinia';
 import { useUserInfo } from '/@/stores/userInfo';
+import { usePatientsInfo } from '/@/stores/patientsInfo';
 const stores = useUserInfo();
+const storesPat = usePatientsInfo();
 const { userInfos } = storeToRefs(stores);
+const { patientsInfo } = storeToRefs(storesPat);
 import { ElLoading, TabsPaneContext } from 'element-plus'
 import { Search } from '@element-plus/icons-vue'
+// 用药记录
+import MedicationRecords from './components/Medication_records.vue' 
+// 膳食调查
+import dietarySurvey from './components/dietary_survey.vue'
+// 患者档案
+import patientFile from './components/patient_file.vue'
+// 化验结果
+import lisUi from './components/lis_.ui.vue'
 interface User {
     code:string,
     patientName: string
     patientGenderText: string
     age: string
 }
+const MedicationRecordsRef=ref()
+const patientFileRef=ref()
 const currentRow=ref()
+const lisUiRef=ref()
 const state = reactive({
 	global: {
 		homeChartOne: null,
@@ -132,23 +150,7 @@
 		homeCharThree: null,
 		dispose: [null, '', undefined],
 	} as any,
-    filterTableData:[
-        {
-            name: '张山',
-            sex: '男',
-            age: '12',
-        },
-        {
-            name: '张山二',
-            sex: '男',
-            age: '12',
-        },
-        {
-            name: '王二小',
-            sex: '男',
-            age: '12',
-        },
-    ],
+    filterTableData:[],
     activeName:'患者档案',
     tableHeight:{
         left:0,
@@ -160,9 +162,17 @@
     setTableHeight()
     getPatients()
 })
-const handleCurrentChange = (val: User | undefined) => {
-  currentRow.value = val
+const handleCurrentChange = (val: any | undefined) => {
+    console.log('-----------------333')
+    console.log(val)
+    if(val){
+        currentRow.value = val
+        //缓存到vuex 中
+        storesPat.setPatientsInfo(val)
+        getTabsData()
+    }
 }
+/**获取患者列表 */
 const getPatients=()=>{
     const loading = ElLoading.service({
         lock: true,
@@ -175,11 +185,19 @@
         wherecondition:`client_code="${userInfos.value.clientCode}" and (patient_name like "%${state.search.toLowerCase()}%"
         OR patient_name_py like "%${state.search.toLowerCase()}%")`
     }
+    storesPat.setPatientsInfo({
+      id: '',
+      code: '',
+      age: 0,
+      patientName: '',
+      patientGenderText: '',
+      patientAvatarIcon: ''
+    })
     QueryList(ps).then(res=>{
         console.log('----------------患者--------')
         console.log(res.data)
         state.filterTableData=res.data.list
-    }).finally(e=>{
+    }).finally(()=>{
         loading.close()
     })
 }
@@ -198,7 +216,21 @@
 };
 /** 切换明细tabs*/
 const handleClick=(tab: TabsPaneContext, event: Event)=>{
-    console.log(tab, event)
+    alert('1')
+    state.activeName=tab.paneName as string
+    getTabsData()
+}
+/** 获取明细项数据 */
+const getTabsData=()=>{
+    if(MedicationRecordsRef.value&&patientsInfo.value.id){
+        if(state.activeName==='用药记录'){
+            MedicationRecordsRef.value.getData()
+        }else if(state.activeName==='患者档案'){
+            console.log(patientFileRef.value)
+            patientFileRef.value.getData()
+        }
+        
+    }
 }
 </script>
 
@@ -242,6 +274,26 @@
 .detailRight{
     background-color: #ffffff;
 }
+.fixed-div {
+    position: fixed;
+    flex: 1;
+    display: flex;
+    align-items: center;
+    bottom: 10px;
+    right: 30px;
+    width: 200px;
+    height: 100px;
+    background-color:#ffffff;
+    color: rgb(16, 3, 3);
+    padding: 10px;
+    z-index: 999;
+    
+    div{
+        font-weight: 800;
+        margin-left: 10px;
+        font-size: 20px;
+    }
+  }
 
 </style>
 

--
Gitblit v1.8.0