From 8635962f39c2d896cd521dc794d97d34a8f60ed6 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期三, 13 八月 2025 20:11:23 +0800
Subject: [PATCH] 增加宣教页面

---
 src/views/record/index.vue |  298 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 213 insertions(+), 85 deletions(-)

diff --git a/src/views/record/index.vue b/src/views/record/index.vue
index 3b88dc4..0a752db 100644
--- a/src/views/record/index.vue
+++ b/src/views/record/index.vue
@@ -9,6 +9,8 @@
         <div>
             <van-calendar
                 color="#769AFF"
+                :min-date="minDate"
+                @month-show="monthShow"
                 :poppable="false"
                 :show-confirm="false"
                 @select="selectData"
@@ -17,148 +19,274 @@
                 :style="{ height: '400px' }"
             />
         </div>
-        <div class="listdiv">
+        <van-loading v-if="loand" size="24" />
+        <div class="listdiv" v-else>
             <div class="listrow">
                 <van-row>
                     <van-row class="lable">
                         <van-col span="8">
-                            <span style="color: #777777;">状态:</span>
-                            <span style="color: #769AFF;">透析完成</span>
+                            <span style="color: #777;">状态:</span>
+                            <span v-if="pageInfo.medState === 0" style="color: #769aff;">未签到</span>
+                            <span v-if="pageInfo.medState === 1" style="color: #769aff;">已签到</span>
+                            <span v-if="pageInfo.medState === 2 || pageInfo.medState === 2.5" style="color: #769aff;">透析中</span>
+                            <span v-if="pageInfo.medState === 3" style="color: #769aff;">已检查</span>
+                            <span v-if="pageInfo.medState === 4" style="color: #769aff;">已归档</span>
                         </van-col>
                         <van-col span="8">
-                            <span style="color: #777777;">上机:</span>
-                            <span style="color: #769AFF;">8:00</span>
+                            <span style="color: #777;">上机:</span>
+                            <span style="color: #769aff;">{{pageInfo.detailForPatientMedStartTime.substring(11,16)}}</span>
                         </van-col>
                         <van-col span="8">
-                            <span style="color: #777777;">下机:</span>
-                            <span style="color: #769AFF;">12:00</span>
+                            <span style="color: #777;">下机:</span>
+                            <span style="color: #769aff;">{{pageInfo.detailForPatientMedEndTime.substring(11,16)}}</span>
                         </van-col>
                     </van-row>
                     <van-row class="lable">
                         <van-col span="8">
-                            <span style="color: #777777;">班次:</span>
-                            <span style="color: #769AFF;">上午</span>
+                            <span style="color: #777;">班次:</span>
+                            <span v-if="pageInfo.scheduleTimeSlot === 0" style="color: #769aff;">上午</span>
+                            <span v-if="pageInfo.scheduleTimeSlot === 1" style="color: #769aff;">下午</span>
+                            <span v-if="pageInfo.scheduleTimeSlot === 2" style="color: #769aff;">晚上午</span>
                         </van-col>
                         <van-col span="8">
-                            <span style="color: #777777;">机号:</span>
-                            <span style="color: #769AFF;">12</span>
+                            <span style="color: #777;">机号:</span>
+                            <span style="color: #769aff;">{{pageInfo.deviceInfo.deviceNo}}</span>
                         </van-col>
                         <van-col span="8">
-                            <span style="color: #777777;">模式:</span>
-                            <span style="color: #769AFF;">HD</span>
+                            <span style="color: #777;">模式:</span>
+                            <span style="color: #769aff;">{{pageInfo.schemeName}}</span>
                         </van-col>
                     </van-row>
                     <van-row class="lable2">
                         <van-col span="8">
-                            <span style="color: #777777;">次数:</span>
-                            <span style="color: #769AFF;">65</span>
+                            <span style="color: #777;">次数:</span>
+                            <span style="color: #769aff;">{{pageInfo.historyCount}}</span>
                         </van-col>
                         <van-col span="8">
-                            <span style="color: #777777;">本次费用:</span>
-                            <span style="color: #769AFF;">---</span>
+                            <span style="color: #777;">本次费用:</span>
+                            <span style="color: #769aff;">---</span>
                         </van-col>
                     </van-row>
                 </van-row>
                 <van-row class="item">
                     <van-col span="12">干体重:</van-col>
-                    <van-col span="12" style="text-align: right; color: #769AFF ;">78.6(kg)</van-col>
+                    <van-col span="12" style="text-align: right; color: #769aff ;">{{pageInfo.pureWeight}}(kg)</van-col>
                 </van-row>
                 <van-row class="item">
                     <van-col span="12">衣物重:</van-col>
-                    <van-col span="12" style="text-align: right; color: #769AFF ;">0.6(kg)</van-col>
+                    <van-col span="12" style="text-align: right; color: #769aff ;">{{pageInfo.detailForPatientClothesWeight}}(kg)</van-col>
+                </van-row>
+                <van-row class="item">
+                    <van-col span="12">透前称重:</van-col>
+                    <van-col span="12" style="text-align: right; color: #769aff ;">{{pageInfo.detailForPatientPreWeight}}(kg)</van-col>
+                </van-row>
+                <van-row class="item">
+                    <van-col span="12">透后称重:</van-col>
+                    <van-col span="12" style="text-align: right; color: #769aff ;">{{pageInfo.detailForPatientAfterWeight}}(kg)</van-col>
+                </van-row>
+                <van-row class="item">
+                    <van-col span="12">透前血压:</van-col>
+                    <van-col span="12" style="text-align: right; color: #769aff ;">{{pageInfo.detailForPatientPreBP}}(mmHg)</van-col>
+                </van-row>
+                <van-row class="item">
+                    <van-col span="12">透前心率:</van-col>
+                    <van-col span="12" style="text-align: right; color: #769aff ;">{{pageInfo.detailForPatientPrePulse}}(次/分)</van-col>
+                </van-row>
+                <van-row class="item">
+                    <van-col span="12">透后血压:</van-col>
+                    <van-col span="12" style="text-align: right; color: #769aff ;">{{pageInfo.detailForPatientAfterBP}}(mmHg)</van-col>
+                </van-row>
+                <van-row class="item">
+                    <van-col span="12">透后心率:</van-col>
+                    <van-col span="12" style="text-align: right; color: #769aff ;">{{pageInfo.detailForPatientAfterPulse}}(次/分)</van-col>
+                </van-row>
+                <van-row class="item">
+                    <van-col span="12">抗凝剂:</van-col>
+                    <van-col span="12" style="text-align: right; color: #769aff ;">{{pageInfo.detailForPatientKNJ}}</van-col>
                 </van-row>
             </div>
         </div>
     </div>
 </template>
 <script lang="ts" setup>
-    // import {ref,reactive,watchEffect,watch} from 'vue'
-    import { Calendar as vanCalendar } from 'vant'
+    import {ref} from 'vue'
+    import {ajaxPost} from '@/utils/axios'
+    import { Calendar as vanCalendar, Toast } from 'vant'
     import {useRouter} from 'vue-router'
+    import { userInfoStore } from '@/stores/userInfo'
+    const userInfo = userInfoStore()
     const router=useRouter()
-    const selectData=(data:any)=>{
-        console.log(data)
+    const loand=ref(false)
+    const pageInfo=ref({pureWeight:'',
+                        detailForPatientAfterBP: '',
+                        detailForPatientAfterPulse: '',
+                        detailForPatientAfterWeight:'',
+                        detailForPatientPreBP: '',
+                        detailForPatientPrePulse: '',
+                        detailForPatientPreWeight:'',
+                        detailForPatientKNJ:'',
+                        detailForPatientClothesWeight:'',
+                        schemeName:'',medState:0,detailForPatientMedCount:0,deviceInfo:{deviceName:''},scheduleTimeSlot:0,detailForPatientMedEndTime:'',detailForPatientMedStartTime:''})
+    const day=new Date()
+    const Year = day.getFullYear()
+    const minDate=ref( new Date(Date.parse(Year+'-01-01'.replace(/-/g,   '/'))))
+    const selectDate=ref([{y:2000,m:1,d:1,type:'',code:'',id:0,timeSlot:1,scheduleDay:''}])
+    const selectData=(day:any)=>{
+        const y=day.getFullYear()
+        const m = day.getMonth() + 1
+        const d = day.getDate()
+        const x=selectDate.value.findIndex(e=>{return e.y===y&&e.m===m&&e.d===d})
+        console.log(selectDate.value[x],'找到了')
+        if (x===-1){
+
+            Toast('没有排班信息,请选择其他日期!')
+        }
+        else {
+            getDetail(selectDate.value[x].id)
+        }
+
+
     }
     const fanhui=()=>{
         router.go(-1)
     }
+    const getPaiban=(date:Date)=>{
+        const y=date.getFullYear()
+        const m= date.getMonth()+1
+        const pagedata={
+            patientCode:userInfo.patient.patientInfo.code,
+            year:y,
+            month:m,
+        }
+        ajaxPost('/patient/hemo/med/record/listByPatient',pagedata).then((re:any)=>{
+            console.log(re)
+            re.forEach((element:any) => {
+                const dey=element.scheduleDate.split('-')
+                // 不能添加重复的
+                const x=selectDate.value.findIndex(e=>{return e.code===element.code})
+                if (x===-1){
+                    selectDate.value.push({
+                        y:Number(dey[0]),
+                        m:Number(dey[1]),
+                        d:Number(dey[2].substring(0,2)),
+                        type:'o',
+                        timeSlot:element.scheduleTimeSlot,
+                        code:element.code,
+                        scheduleDay:element.scheduleDay,
+                        id:element.id
+
+                    })
+                }
+
+            })
+            selectDate.value= selectDate.value.sort((a,b)=>new Date(b.scheduleDay)-new Date(a.scheduleDay))
+            console.log(selectDate.value)
+        })
+    }
+    const monthShow=(month:any)=>{
+        console.log(month)
+        getPaiban(month.date)
+    }
     const formatter=(day:any)=>{
+        const year=day.date.getFullYear()
         const month = day.date.getMonth() + 1
         const date = day.date.getDate()
-        if (month === 9) {
-            if (date === 24) {
-                day.bottomInfo='8:30'
-                day.className='recordclass'
-            } else if (date === 27) {
-                day.bottomInfo='13:00'
-                day.className='recordclass'
+        const index= selectDate.value.findIndex(el=>{return el.y===year&&el.m===month&&el.d===date})
+        if (index>0){
+            day.type='selected'
+            if (selectDate.value[index].timeSlot===0){
+                day.bottomInfo='上午'
+            }
+            else if (selectDate.value[index].timeSlot===1){
+                day.bottomInfo='上午'
+            }
+            else {
+                day.bottomInfo='晚上'
             }
         }
         return day
     }
+    const getDetail=(id:any)=>{
+        loand.value=true
+        ajaxPost('/patient/hemo/med/record/detailForMobile',`id=${id}`).then((re:any)=>{
+            console.log(re)
+            pageInfo.value=re
+            loand.value=false
+        }).finally(()=>{
+            loand.value=false
+        })
+    }
 </script>
 <style lang="scss">
-    .recordclass{
-        // background: rgb(228, 231, 225);
-        color: blue;
-    }
-    .record{
-        background-color: #F6FAFF;
-        padding: 0;
-    }
-    .listdiv{
-        margin-top: 20px;
-        .listrow{
-            margin-top: 10px;
-            width: 94%;
-            margin-left: 3%;
-            height: 129px;
-            background: #FFFFFF;
-            box-shadow: 0px 2px 4px 0px rgba(70,150,249,0.1);
-            border-radius: 8px;
-            .lable{
-                width: 90%;
-                margin-left: 5%;
-                height: 40px;
-                font-size: 13px;
-                font-family: PingFangSC-Regular, PingFang SC;
-                font-weight: 400;
-                color: #AAAAAA;
-                line-height: 40px;
-                border-bottom:#F1F1F2 solid 1px;
-            }
-            .lable2{
-                width: 90%;
-                margin-left: 5%;
-                height: 40px;
-                font-size: 13px;
-                font-family: PingFangSC-Regular, PingFang SC;
-                font-weight: 400;
-                color: #AAAAAA;
-                line-height: 40px;
-            }
-            .item{
-                margin-top: 20px;
-                width: 90%;
-                margin-left: 5%;
-                height: 40px;
-                font-size: 13px;
-                font-family: PingFangSC-Medium, PingFang SC;
-                font-weight: 500;
-                color: #333333;
-                line-height: 40px;
-                background: #FFFFFF;
-                border-bottom:#F1F1F2 solid 1px;
-            }
+.recordclass {
+    // background: rgb(228, 231, 225);
+    color: #00f;
+}
+
+.record {
+    background-color: #f6faff;
+    padding: 0;
+}
+
+.listdiv {
+    margin-top: 20px;
+
+    .listrow {
+        margin-top: 10px;
+        width: 94%;
+        margin-left: 3%;
+        height: 129px;
+        background: #fff;
+        box-shadow: 0 2px 4px 0 rgba(70, 150, 249, 0.1);
+        border-radius: 8px;
+
+        .lable {
+            width: 90%;
+            margin-left: 5%;
+            height: 40px;
+            font-size: 13px;
+            font-family: Arial, sans-serif;
+            font-weight: 400;
+            color: #aaa;
+            line-height: 40px;
+            border-bottom: #f1f1f2 solid 1px;
+        }
+
+        .lable2 {
+            width: 90%;
+            margin-left: 5%;
+            height: 40px;
+            font-size: 13px;
+            font-family: Arial, sans-serif;
+            font-weight: 400;
+            color: #aaa;
+            line-height: 40px;
+            margin-bottom: 10px;
+        }
+
+        .item {
+            // margin-top: 10px;
+            width: 90%;
+            margin-left: 5%;
+            height: 30px;
+            font-size: 13px;
+            font-family: Arial, sans-serif;
+            font-weight: 500;
+            color: #333;
+            line-height: 30px;
+            background: #fff;
+            border-bottom: #f1f1f2 solid 1px;
         }
     }
-    .fanhui{
+}
+
+.fanhui {
     // padding-top: 20px;
     width: 100%;
-    background: #4696F9;
+    background: #4696f9;
     text-align: center;
     border-radius: 5px;
-    color:#FFFFFF;
+    color: #fff;
     height: 36px;
     line-height: 36px;
 }

--
Gitblit v1.8.0