当前位置: 首页 > news >正文

【vue2】封装自定义的日历组件(三)之基础添加月份的加减定位到最新月份的第一天

我们在切换月份的时候,希望高亮显示在每个月的第一天上面,这样的效果我们要怎么来实现,其实也很简单,我们先看下实现的效果

实现效果

请添加图片描述

代码实现

原理就是获取到每月的第一天日期,然后再跟整个的数据进行对比,添加高亮的css样式即可

handleMinusMonth() {if (this.month == 1) {this.year--;this.month = 12;} else if (this.month > 12) {this.year++;this.month = 1;} else {this.month--;}this.getDateLists();this.getFirstDay();
},
handleAddMonth() {if (this.month == 12) {this.year++;this.month = 1;} else if (this.month < 1) {this.year--;this.month = 12;} else {this.month++;}this.getDateLists();this.getFirstDay();
},
// 核心逻辑代码
getFirstDay() {// 计算当前月的第一天,添加高亮样式const firstDay = dayjs(`${this.year}-${this.month}`).startOf("month").format("YYYY-MM-DD");this.daysLists = this.daysLists.flat().map((item) => {if (item.date == firstDay) {this.$set(item, "isCurrent", true);}return item;});const lists = this.daysLists.flat().map((item) => {if (item.date == firstDay) {this.$set(item, "isCurrent", true);}return item;});this.daysLists = this.changDataList(lists);
},

重新计算每次切换后年月的第一天,然后再把数据进行flat后,对比,当前的高亮状态为true,否则为false,数据格式可以自行处理。

http://www.lryc.cn/news/500531.html

相关文章:

  • LabVIEW偏心圆筒流变仪测控系统
  • Runloop
  • SpringBoot的Bean类三种注入方式(附带LomBok注入)
  • 开源向量数据库介绍说明
  • 【前端】深度解析 JavaScript 中的 new 关键字与构造函数
  • 2024年华中杯数学建模C题基于光纤传感器的平面曲线重建算法建模解题全过程文档及程序
  • 使用 `typing_extensions.TypeAlias` 简化类型定义:初学者指南
  • 如何快速批量把 PDF 转为 JPG 或其它常见图像格式?
  • 如何在组织中塑造和强化绩效文化?
  • OllyDbg、CE简单介绍
  • Python函数——函数的返回值定义语法
  • 【Pandas】pandas isna
  • mysql 数据库表的大小
  • (6)JS-Clipper2之ClipperOffset
  • 如何在Ubuntu中利用repo和git地址下载获取imx6ull的BSP
  • Ruby On Rails 笔记5——常用验证下
  • JS听到了因果的回响
  • 【高中生讲机器学习】28. 集成学习之 Bagging 随机森林!
  • 硬件设计 | Altium Designer软件PCB规则设置
  • 【Elasticsearch】实现用户行为分析
  • python字符串处理基础操作总结
  • 电子商务人工智能指南 6/6 - 人工智能生成的产品图像
  • 【论文阅读】相似误差订正方法在风电短期风速预报中的应用研究
  • 贪心算法 - 学习笔记 【C++】
  • 精确的单向延迟测量:使用普通硬件和软件
  • 【MySQL 进阶之路】存储引擎和SQL优化技巧分析
  • vue+elementUI从B页面回到A页面并且定位到A页面的el-tabs的某个页签
  • {结对编程/大模型} 实践营项目案例 | 基于RAG搭建政策问答智能聊天助手
  • 【Canvas与图标】乡土风金属铝边立方红黄底黑字图像处理图标
  • 【开源】A064—基于JAVA的民族婚纱预定系统的设计与实现