基于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、可以根据自己数据格式判断显示式。这里我只是根据我的数据来判断的。

如有问题,欢迎交流~!

原文地址:https://www.cnblogs.com/0314dxj/p/11975156.html

时间: 2024-10-15 17:42:37

基于element-ui的日历显示当月考勤情况的相关文章

基于element ui的级联选择器组件实现的分类后台接口

今天在做资产管理系统的时候遇到一个分类的级联选择器,前端是用的element的组件,需要后台提供接口支持.     这个组件需要传入的数据结构大概是这样的,详细的可参考官方案例: [{ value: '1001', label: 'IT固定资产', children: [{ value: '100101', label: '服务器' }, { value: '100102', label: '笔记本' }, { value: '100103', label: '平板电脑' }, { value:

vue基于 element ui 的按钮点击节流

vue的按钮点击节流 场景: 1.在实际使用中,当我们填写表单,点击按钮提交的时候,当接口没返回之前,迅速的点击几次,就会造成多次提交. 2.获取验证码,不频繁的获取. 3.弹幕不能频繁的发 基于这几个场景,对 element-ui 的按钮进行扩展 节流 主要使用到了 vue的 $listeners 和 $attrs $listeners:子组件里面,获取父组件对子组件 v-on 的所有监听事件 $attrs: 包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 

基于Element UI Cascader 级联选择器的中国省市区级联数据

安装 npm install element-china-area-data -save 在线演示:https://plortinus.github.io/element-china-area-data/index.html github:https://github.com/airyland/china-area-data 引入 import { provinceAndCityData, regionData, provinceAndCityDataPlus, regionDataPlus, 

基于element ui 实现七牛云自定义key上传文件,并监听更新上传进度

借助上传Upload 上传组件的 http-request 覆盖默认的上传行为,可以自定义上传的实现 <el-upload multiple ref="sliderUpload" :data="uploadData" :action="uploadData.url" list-type="picture-card" accept="image/png,image/jpeg,image/jpg" :au

vue开源Element UI表单设计及代码生成器

在日常的开发工作中,表单开发是较为繁琐且重复的.本文介绍一个我自己写的,提高开发效率的小工具. 1 可视化设计器 设计器基于Element UI ,可通过点击或拖拽的方式设计基本表单, 设计器生成的代码可直接运行在基于 Element 的 vue 项目中. github仓库   https://github.com/JakHuang/form-generator 码云仓库  https://gitee.com/mrhj/form-generator 演示地址 https://mrhj.gitee

element UI 饿了么 UI 分页 按钮不显示的问题

https://blog.csdn.net/sinat_37255207/article/details/88914235 一个很坑的 深坑  element UI 的 按钮 不显示的深坑 <el-pagination background @size-change="availableStore2TableHandleSizeChange" @current-change="availableStore2TableHandleCurrentChange" :

Vue 基于node npm &amp; vue-cli &amp; element UI创建vue单页应用

基于node npm & vue-cli & element UI创建vue单页应用 开发环境   Win 10   node-v10.15.3-x64.msi 下载地址: https://nodejs.org/en/ 安装node 安装vue-cli 1.安装node-v10.15.3-x64.msi 2.设置注册地址 因为npm官方仓库在国外,有时候下载速度会非常慢,不过有淘宝镜像可以使用,下载包的速度很快.而且淘宝镜像是定时更新同步npm的官方仓库的. npm config set

关于vue和element ui的国际化

因为公司需求近日一直在做国际化处理, 首先,我们用的是vue的单文件组件,实现国际化是在写好的一个文件组件里面vue_min.js里,而且它相当于一个js的模块,在每一个单文件的组件里面使用. 遇见的第一个问题国际化失败,只显示自己定义的json文件国际化.而且element ui的的国际化不显示, 解决的方案就是, 1.引入的时候应该从新引入 import enLocale from 'element-ui/lib/locale/lang/en' import zhLocale from 'e

vue2.0 + element ui 后台管理系统

vue2.0 和 elementui  搭建的一个后台管理系统 概述: 这是一个用vuejs2.0和element搭建的后台管理界面. 技术栈: vue2.0:渐进式JavaScript框架,易用.灵活.高效,似乎任何规模的应用都适用. element ui:基于vue2.0的ui组件库. vue-router:一般单页面应用spa都要用到的前端路由. vuex:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式. webpack + es6/7 + less mock.js : 相