From 490e29cb70e6d91b2bbcfc6926d4b4cc84dfed79 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期二, 26 八月 2025 17:53:57 +0800
Subject: [PATCH] 修改医嘱

---
 src/views/paiban/index.vue |  303 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 185 insertions(+), 118 deletions(-)

diff --git a/src/views/paiban/index.vue b/src/views/paiban/index.vue
index e186445..8fd725e 100644
--- a/src/views/paiban/index.vue
+++ b/src/views/paiban/index.vue
@@ -8,7 +8,8 @@
         />
         <div>
             <van-calendar
-                color="#769AFF"
+                :min-date="minDate"
+                @month-show="monthShow"
                 :poppable="false"
                 :show-confirm="false"
                 @select="selectData"
@@ -17,54 +18,36 @@
                 :style="{ height: '400px' }"
             />
         </div>
-        <div class="listdiv">
-            <div class="listrow">
+        <div class="listdiv" v-for="(item,index) in selectDate" :key="index">
+            <div class="listrow" v-if="item.code !== ''">
                 <van-row class="rowhand">
                     <van-col span="18">
-                        <van-icon style="color: blue;" name="bell" />
-                        2022年5月24日(周四) 上午</van-col>
+                        <van-icon style="color: #00f;" name="bell" />
+                        {{item.y}}年{{item.m}}月{{item.d}}日
+                    </van-col>
                     <van-col span="6">
                         <div>
-                            <div class="sqtb">
-                                申请调班
+                            <div class="sqtb" v-if="item.timeSlot === 0">
+                                上午
+                            </div>
+                            <div class="sqtb" v-if="item.timeSlot === 1">
+                                下午
+                            </div>
+                            <div class="sqtb" v-if="item.timeSlot === 2">
+                                晚上
                             </div>
                         </div>
                     </van-col>
                 </van-row>
-                <van-row>
+                <van-row v-if="item.code !== ''">
                     <div class="info"></div>
                     <van-row class="lable">
                         <van-col span="12">机号</van-col>
                         <van-col span="12">透析模式</van-col>
                     </van-row>
                     <van-row class="value">
-                        <van-col span="12">1区 2号机</van-col>
-                        <van-col span="12">HD</van-col>
-                    </van-row>
-                </van-row>
-            </div>
-            <div class="listrow">
-                <van-row class="rowhand">
-                    <van-col span="18">
-                        <van-icon style="color: blue;" name="bell" />
-                        2022年5月24日(周四) 上午</van-col>
-                    <van-col span="6">
-                        <div>
-                            <div class="sqtb">
-                                申请调班
-                            </div>
-                        </div>
-                    </van-col>
-                </van-row>
-                <van-row>
-                    <div class="info"></div>
-                    <van-row class="lable">
-                        <van-col span="12">机号</van-col>
-                        <van-col span="12">透析模式</van-col>
-                    </van-row>
-                    <van-row class="value">
-                        <van-col span="12">1区 2号机</van-col>
-                        <van-col span="12">HD</van-col>
+                        <van-col span="12">{{item.deviceGroupName}}  {{item.deviceName}}</van-col>
+                        <van-col span="12">{{item.type}}</van-col>
                     </van-row>
                 </van-row>
             </div>
@@ -72,111 +55,195 @@
     </div>
 </template>
 <script lang="ts" setup>
-    // import {ref,reactive,watchEffect,watch} from 'vue'
     import { Calendar as vanCalendar } from 'vant'
+    import { ref,onMounted } from 'vue'
     import {useRouter} from 'vue-router'
+    import {ajaxPost} from '@/utils/axios'
+    import { userInfoStore } from '@/stores/userInfo'
     const router=useRouter()
+    const userInfo = userInfoStore()
+    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,deviceGroupName:'',scheduleDay:'',deviceName:'',timeSlot:1}])
     const fanhui=()=>{
         router.go(-1)
     }
     const selectData=(data:any)=>{
         console.log(data)
     }
+    const getPaiban=(date:Date)=>{
+        console.log(date)
+        const y=date.getFullYear()
+        const m= date.getMonth()+1
+        console.log('年='+y+'月='+m)
+        const pagedata={
+            patientCode:userInfo.patient.patientInfo.code,
+            year:y,
+            month:m,
+        }
+        ajaxPost('/hemo/med/schedule/listMonthSchedulesByPat',pagedata).then((re:any)=>{
+            console.log(re)
+            re.forEach((element:any) => {
+                const dey=element.scheduleDay.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:element.patientVsHemoMedSchemeName,
+                        deviceGroupName:element.deviceGroupName,
+                        deviceName:element.deviceNo,
+                        timeSlot:element.timeSlot,
+                        code:element.code,
+                        scheduleDay:element.scheduleDay,
+                        id:element.id,
+                        透析单状态:element.透析单状态,
+
+                    })
+                }
+
+            })
+            selectDate.value= selectDate.value.sort((a,b)=>new Date(b.scheduleDay)-new Date(a.scheduleDay))
+            //     return 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='paibanclass'
-            } else if (date === 27) {
-                day.bottomInfo='13:00'
-                day.className='paibanclass'
+        const index= selectDate.value.findIndex(el=>{return el.y===year&&el.m===month&&el.d===date})
+        if (index>0){
+            console.log(day)
+            if (selectDate.value[index].透析单状态){
+                day.type='start'
+            } else {
+                day.type='end'
             }
+            day.text=selectDate.value[index].type
+            if (selectDate.value[index].timeSlot===0){
+                day.bottomInfo='上午'
+            }
+            else if (selectDate.value[index].timeSlot===1){
+                day.bottomInfo='上午'
+            }
+            else {
+                day.bottomInfo='晚上'
+            }
+            console.log(day,'有排班' )
         }
+
         return day
     }
+    onMounted(()=>{
+        console.log('页面初始化')
+        const day=new Date()
+        const Year = day.getFullYear()
+        console.log(Year)
+        // 只能选取当年的
+        minDate.value=new Date(Date.parse(`${Year}-01-01`.replace(/-/g,   '/')))
+    })
 </script>
 <style scoped lang="scss">
-    .paibanclass{
-        // background: rgb(228, 231, 225);
-        color: blue;
-    }
-    .paiban{
-        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;
-            .rowhand{
-                padding-top: 20px;
-                padding-left: 4px;
-                height: 20px;
-                font-size: 14px;
-                font-family: PingFangSC-Medium, PingFang SC;
-                font-weight: 500;
-                color: #333333;
-                line-height: 20px;
-                letter-spacing: 1px;
-                .sqtb{
-                    color: #4696F9;
-                    // background: #4696F9;
-                    height:18px;
-                    line-height:18px;
-                    border: #4696F9 1px solid;
-                    width: 60px;
-                    text-align: center;
-                    border-radius: 4px;
-                    font-size: 12px;
-                }
-            }
-            .info{
-                margin-top: 10px;
-                width: 90%;
-                margin-left: 5%;
-                height: 1px;
-                background: #F1F1F2;
-                margin-bottom: 10px;
-            }
-            .lable{
-                width: 90%;
-                margin-left: 5%;
-                height: 17px;
-                font-size: 12px;
-                font-family: PingFangSC-Regular, PingFang SC;
-                font-weight: 400;
-                color: #AAAAAA;
-                line-height: 17px;
-            }
-            .value{
-                margin-top: 20px;
-                width: 90%;
-                margin-left: 5%;
+.paibanclass {
+    background: rgb(201, 110, 19);
+    color: rgb(41, 41, 200);
+}
+
+.paiban {
+    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;
+
+        .rowhand {
+            padding-top: 20px;
+            padding-left: 4px;
+            height: 20px;
+            font-size: 14px;
+            font-family: Arial, sans-serif;
+            font-weight: 500;
+            color: #333;
+            line-height: 20px;
+            letter-spacing: 1px;
+
+            .sqtb {
+                color: #4696f9;
+
+                // background: #4696F9;
                 height: 18px;
-                font-size: 13px;
-                font-family: PingFangSC-Medium, PingFang SC;
-                font-weight: 500;
-                color: #333333;
                 line-height: 18px;
+                border: #4696f9 1px solid;
+                width: 60px;
+                text-align: center;
+                border-radius: 4px;
+                font-size: 12px;
             }
         }
+
+        .info {
+            margin-top: 10px;
+            width: 90%;
+            margin-left: 5%;
+            height: 1px;
+            background: #f1f1f2;
+            margin-bottom: 10px;
+        }
+
+        .lable {
+            width: 90%;
+            margin-left: 5%;
+            height: 17px;
+            font-size: 12px;
+            font-family: Arial, sans-serif;
+            font-weight: 400;
+            color: #aaa;
+            line-height: 17px;
+        }
+
+        .value {
+            margin-top: 20px;
+            width: 90%;
+            margin-left: 5%;
+            height: 18px;
+            font-size: 13px;
+            font-family: Arial, sans-serif;
+            font-weight: 500;
+            color: #333;
+            line-height: 18px;
+        }
     }
-    .fanhui{
-    // padding-top: 20px;
-    width: 100%;
-    background: #4696F9;
-    text-align: center;
-    border-radius: 5px;
-    color:#FFFFFF;
-    height: 36px;
-    line-height: 36px;
 }
+
+/* eslint-disable selector-class-pattern */
+
+/* eslint-disable selector-pseudo-element-no-unknown */
+
+/* eslint-disable color-named */
+/* stylelint-disable selector-pseudo-class-no-unknown */
+
+:deep(.van-calendar__day--end) {
+    border-radius: 0 var(--van-border-radius-md) var(--van-border-radius-md) 0;
+    background: #4696f9;
+}
+
 </style>
\ No newline at end of file

--
Gitblit v1.8.0