From 5d4befca627d728b40bec39d10c09bc0e0144aed Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期一, 24 二月 2025 16:01:09 +0800
Subject: [PATCH] gx

---
 src/views/home/components/patient_file.vue |  227 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 187 insertions(+), 40 deletions(-)

diff --git a/src/views/home/components/patient_file.vue b/src/views/home/components/patient_file.vue
index f367297..f230d60 100644
--- a/src/views/home/components/patient_file.vue
+++ b/src/views/home/components/patient_file.vue
@@ -8,9 +8,47 @@
                     </el-icon> <span> &nbsp; 服务套餐</span>
                 </div>
                 <div>
-                    基础服务100套餐
-                    膳食套餐,
-                    体检套餐,
+                    <el-form  :inline="true" class="demo-form-inline">
+                        <el-form-item label="基础服务:">
+                            <el-radio-group class="elradiozdi" :disabled="state.formdispl" v-model="state.taochan.基础服务">
+                                <el-radio value="是">是</el-radio>
+                                <el-radio value="否">否</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                        <el-form-item label="自购套餐:" >
+                            <el-row>
+                                <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-input v-model="state.taochan.多少元套餐" :disabled="state.formdispl" placeholder="套餐金额">
+                                        <template #append>元</template>
+                                    </el-input>
+                                </el-col>
+                            </el-row>
+                        </el-form-item>
+                        <el-form-item label="自购产品名称">
+                            <el-row>
+                                <el-col :span='12'>
+                                    <el-input v-model="state.taochan.产品名称" :disabled="state.formdispl" placeholder="产品名称"></el-input>
+                                </el-col>
+                                <el-col :span='12'>
+                                    <el-input v-model="state.taochan.自购多少盒" :disabled="state.formdispl" placeholder="数量">
+                                        <template #append>盒</template>
+                                    </el-input>
+                                </el-col>
+                            </el-row>
+
+                        </el-form-item>
+                        <el-form-item>
+                            <el-button v-if="state.formdispl" type="primary" :icon="Edit" @click="state.formdispl=false">编辑</el-button>
+                            <el-button v-else type="success" :icon="Check" @click="onSubmitTC" >保存</el-button>
+                        </el-form-item>
+
+                    </el-form>
+                   
                 </div>
             </el-card>
             <el-card class="box-card" style="margin-top:10px;">
@@ -55,6 +93,15 @@
                         <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>
             </el-card>
@@ -64,34 +111,36 @@
                         <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>
@@ -105,12 +154,14 @@
 import { usePatientsInfo } from '/@/stores/patientsInfo';
 import { useUserInfo } from '/@/stores/userInfo';
 import { computed, onMounted, reactive } from 'vue';
-import { getPatData, getLisResults,update } from '/@/api/Patients';
+import { getPatData, getLisResults, update ,updateNurtion,listNurtion,AddNurtion} from '/@/api/Patients';
 import { userInfo } from 'os';
-import { Search } from '@element-plus/icons-vue'
+import { Search ,Edit,Check} from '@element-plus/icons-vue'
 import dayjs from 'dayjs';
 import { ElMessage, ElMessageBox } from 'element-plus';
+
 import { number } from 'echarts';
+import { rowKey } from 'element-plus/es/components/table-v2/src/common';
 const storesPat = usePatientsInfo();
 const stores = useUserInfo();
 
@@ -118,7 +169,16 @@
 const { userInfos } = storeToRefs(stores);
 const props = defineProps(['tableHeight'])
 const state = reactive({
-
+    formdispl:true,// 表单是否编辑
+    // 患者套餐表
+    taochanId:0,
+    taochan: {
+        基础服务: '',
+        自购几月: '',
+        多少元套餐: '',
+        自购多少盒: '',
+        产品名称: ''
+    },
     tableData: [],
     loading: false,
     patientData: {
@@ -127,27 +187,76 @@
         证件号: "",
         诊断: '',
         身高: '',
-        上一次透前体重: ''
+        上一次透前体重: '',
+        出院诊断:'',
     },
     listData: <any>{}
 })
 const tableHe = computed(() => {
     return props.tableHeight - 130
 })
+const onSubmitTC=()=>{
+    const data={
+        id:state.taochanId,
+        patient_code:patientsInfo.value.code,
+        plan_json_body:JSON.stringify(state.taochan)
+    }
+    if(state.taochanId){
+        state.loading = true
+        updateNurtion(data).then(re=>{
+            getlistNurtion()
+        }).finally(()=>{
+            state.formdispl=true
+            state.loading = false
+        })
+    }else{
+        state.loading = true
+        AddNurtion(data).then(re=>{
+            getlistNurtion()
+        }).finally(()=>{
+            state.formdispl=true
+            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 = () => {
     ElMessageBox.prompt('请输入你要修改的身高单位cm', '提示', {
         confirmButtonText: '确认',
         cancelButtonText: '取消',
-        inputValue:state.patientData.身高,
+        inputValue: state.patientData.身高,
     })
         .then(({ value }) => {
-            const params={
-                id:patientsInfo.value.id,
-                patientHeight:value
+            const params = {
+                id: patientsInfo.value.id,
+                patientHeight: value
             }
-            update(params).then(re=>{
-                getPatData({ patCode: patientsInfo.value.code,}).then(res=>{
+            update(params).then(re => {
+                getPatData({ patCode: patientsInfo.value.code, }).then(res => {
                     state.patientData = res.data
                 })
             })
@@ -162,7 +271,7 @@
 
 const BMI = computed(() => {
     if (state.patientData.干体重 && state.patientData.身高) {
-        return (Number(state.patientData.干体重) / (Number(state.patientData.身高)/100 * Number(state.patientData.身高)/100)).toFixed(2)
+        return (Number(state.patientData.干体重) / (Number(state.patientData.身高) / 100 * Number(state.patientData.身高) / 100)).toFixed(2)
     } else {
         return ''
     }
@@ -178,14 +287,35 @@
         date1: dayjs().add(-30, 'day').format('YYYY-MM-DD'),
         date2: dayjs().format('YYYY-MM-DD'),
     }
+    const pas3={
+        page: 0,
+        size: 0,
+        wherecondition:`patient_code='${patientsInfo.value.code}'`,
+    }
     try {
         state.loading = true
-        const [res1, res2] = await Promise.all([
+        const [res1, res2,res3] = await Promise.all([
             getPatData(pam),
-            getLisResults(pam2)
+            getLisResults(pam2),
+            listNurtion(pas3)
         ])
         state.patientData = res1.data
         state.listData = res2.data
+        if(res3.data?.list.length>=1){
+            const row=res3.data.list[0]
+            console.log('taochanshuju----',row)
+            state.taochanId=row.id
+            state.taochan=JSON.parse(row.planJsonBody)
+        }else{
+            state.taochanId=0
+            state.taochan={
+                基础服务: '',
+                自购几月: '',
+                多少元套餐: '',
+                自购多少盒: '',
+                产品名称: ''
+            }
+        }
         console.log('lis数据', state.listData)
         state.loading = false
     }
@@ -195,6 +325,23 @@
     }
 
 }
+// 刷新套餐
+const getlistNurtion=()=>{
+    const pas3={
+        page: 0,
+        size: 0,
+        wherecondition:`patient_code='${patientsInfo.value.code}'`,
+    }
+    listNurtion(pas3).then(res3=>{
+        if(res3.data.list&&res3.data.list>=1){
+            const row=res3.data.list[0]
+            state.taochanId=row.id
+            state.taochan=JSON.parse(row.planJsonBody)
+        }else{
+            state.taochanId=0
+        }
+    })
+}
 onMounted(() => {
     // console.log(dayjs().add(-7, 'day').format('YYYY-MM-DD'),'---shan')
 })

--
Gitblit v1.8.0