基於element-ui的日歷顯示當月考勤情況


前言:element-ui 日歷組件calendar 自定義使用,做一個顯示當月考勤情況的功能。

官方文檔:https://element.eleme.cn/#/zh-CN/component/calendar

效果圖:

  

 

 准備工作:

  element-ui的版本最少是2.8.2,由於之前我安裝的版本是2.4.2版本,我看的文檔是最新的版本,拿日歷插件測試了很久一直沒有顯示出來,然后我將element的版本升級,才發現vue項目打不開,頁面卡死。找了很多資料,才發現vue版本最低也得2.5.16,所以又將vue升級,最后測試時,發現2.8.2日歷插件是有問題的,時間對應不准確,又將element升級到2.9.2才解決(不敢將element版本升級太高,怕以前寫的出現bug)

  element-ui版本是2.9.2,vue版本是2.5.16

代碼:

  由於后台返回的參數是當前一個正月的參數,有多少天就返回多少條,看返回的參數:

  

 

   number代表是一天打卡的次數,0表示當天打卡次數為零,1表示打卡一次,2表示打卡正常。

<el-calendar id="calendar">
     <template
         slot="dateCell"
         slot-scope="{date, data}">
            <div class="calendar-day">{{ data.day.split('-').slice(2).join('-') }}</div>
            <div v-if="data.day.split('-').slice(1)[0] == value" > //判斷顯示當前頁,value是顯示當前月份
               <p v-if="handleSelected(data.day) == 0 ">缺勤兩次 </p>
               <p v-if="handleSelected(data.day) == 1 ">缺勤一次 </p>
               <p v-if="handleSelected(data.day) == 2 ">打卡正常 </p>
             </div>
      </template>
</el-calendar>

 

handleSelected(day) {
  let flag = 0; //默認顯示為0
  this.attendanceDetailsData.forEach(item => { //this.attendanceDetailsData是后台返回的數據
  if (item.number== day) { //判斷顯示數據
    flag = item.number;
      return
    }
  })
   return flag 
}

由於后台返回給我的是整個月的,所以未到的時間是返回0次的,也就是缺勤兩次。

1、日歷的中的日期是字符串,所以數據格式里的月份和日也是字符串;也可以都轉換成int型

2、可以根據自己數據格式判斷顯示式。這里我只是根據我的數據來判斷的。

 

如有問題,歡迎交流~!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM