element:日历 / 使用记录

一、预期效果

Element - The world's most popular Vue UI framework

element默认样式

目标样式

二、Calendar 属性

参数说明类型可选值默认值
value / v-model绑定值Date/string/number
range时间范围,包括开始时间与结束时间。开始时间必须是周一,结束时间必须是周日,且时间跨度不能超过两个月。Array
first-day-of-week周起始日Number1 到 71

三、Calendar 参数

参数说明类型可选值默认值
date单元格代表的日期Date
data{ type, isSelected, day},type 表示该日期的所属月份,可选值有 prev-month,current-month,next-month;isSelected 标明该日期是否被选中;day 是格式化的日期,格式为 yyyy-MM-ddObject

四、yyyy-mm获取上个月、下个月

getPreviousMonthFromYYYYMM(yearCur, monthCur){const year = parseInt(yearCur, 10)const month = parseInt(monthCur, 10)// 确保月份是有效的if (month < 1 || month > 12) return "Invalid month";// 计算上个月的年份和月份let previousYear = year;let previousMonth = month - 1;// 如果月份小于1,表示上一年if (previousMonth === 0) {previousMonth = 12;previousYear -= 1;}// 格式化输出为两位数previousMonth = (`0${  previousMonth}`).slice(-2);return {year: previousYear,month: previousMonth}},getNextMonthFromYYYYMM(yearCur, monthCur) {const year = parseInt(yearCur, 10)const month = parseInt(monthCur, 10)// 确保月份是有效的if (month < 1 || month > 12) return "Invalid month";// 计算下个月的年份和月份let nextYear = year;let nextMonth = month + 1;// 如果月份大于12,表示下一年if (nextMonth === 13) {nextMonth = 1;nextYear += 1;}// 格式化输出为两位数nextMonth = (`0${  nextMonth}`).slice(-2);return {year: nextYear,month: nextMonth}},

五、addEventListener监听Calendar 上个月、今天、下个月的点击事件

// 上个月const prevBtn = document.querySelector(`#calendar .el-calendar__button-group .el-button-group>button:nth-child(1)`);prevBtn.addEventListener('click', () => {this.currentDate.year = this.getPreviousMonthFromYYYYMM(this.currentDate.year, this.currentDate.month).yearthis.currentDate.month = this.getPreviousMonthFromYYYYMM(this.currentDate.year, this.currentDate.month).monththis.getList()});// 今天const todayBtn = document.querySelector(`#calendar .el-calendar__button-group .el-button-group>button:nth-child(2)`);todayBtn.addEventListener('click', () => {this.currentDate.year = new Date().getFullYear()this.currentDate.month = (`0${  new Date().getMonth() + 1}`).slice(-2)this.getList()});// 下个月const nextBtn = document.querySelector(`#calendar .el-calendar__button-group .el-button-group>button:nth-child(3)`);nextBtn.addEventListener('click', () => {this.currentDate.year = this.getNextMonthFromYYYYMM(this.currentDate.year, this.currentDate.month).yearthis.currentDate.month = this.getNextMonthFromYYYYMM(this.currentDate.year, this.currentDate.month).monththis.getList()});

六、点击自定义的上个月、本月、下个月

preMonth(){document.querySelector(`#calendar .el-calendar__button-group .el-button-group>button:nth-child(1)`).click()},curMonth(){document.querySelector(`#calendar .el-calendar__button-group .el-button-group>button:nth-child(2)`).click()},nextMonth(){document.querySelector(`#calendar .el-calendar__button-group .el-button-group>button:nth-child(3)`).click()},

七、把数据交给对应的日期

this.calendarData[item.date] = data
// 日期格式yyyy-mm-dd

八、在日期方框里展示

<el-calendar><!-- 这里使用的是 2.5 slot 语法,对于新项目请使用 2.6 slot 语法--><templateslot="dateCell"slot-scope="{date, data}">// 展示对应日期的数据<div ><span>{{ this.calendarData[data.day].filed }}</span></div><p :class="data.isSelected ? 'is-selected' : ''">{{ data.day.split('-').slice(1).join('-') }} {{ data.isSelected ? '✔️' : ''}}</p></template>
</el-calendar>
<style>.is-selected {color: #1989FA;}
</style>

九、calendar禁用灰色区域的点击事件

el-calendar禁用灰色区域的点击事件_el-calendar禁止点击上下月份日期-CSDN博客

.el-calendar-table:not(.is-range)td.next{pointer-events: none;}.el-calendar-table:not(.is-range)td.prev{pointer-events: none;}

十、欢迎交流指正

十一、参考链接

ElementPlus Calendar 日历_w3cschool

https://www.cnblogs.com/xcbk/articles/16490903.html

VUE Calendar 用VUE+ElementUI实现带农历 节气 节日 日期的日历_vue中使用vue-calendar-CSDN博客

Element - The world's most popular Vue UI framework

[若依ruoyi-vue框架使用日历显示课程表]用Elementui Calendar日历显示课程数据- Calendar日历自定义内容_以日历形式展示数据vue-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/618806.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言线性方式初始化二维数组

线性方式初始化二维数组&#xff0c;只需要利用/与%的关系即可。具体细节文章下面会有程序的流程分析 问题起源 想要用线性方式初始化二维数组 问题分析 例如a[3][4] a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3]如…

Flutter-Web从0到部署上线(实践+埋坑)

本文字数&#xff1a;7743字 预计阅读时间&#xff1a;60分钟 01 前言 首先说明一下&#xff0c;这篇文章是给具备Flutter开发经验的客户端同学看的。Flutter 的诞生虽然来自 Google 的 Chrome 团队&#xff0c;但大家都知道 Flutter 最先支持的平台是 Android 和 iOS&#xff…

PHP在线文档管理系统源码

PHP在线文档管理系统源码 系统功能与介绍 在数据持续、快速增长背景下&#xff0c;企业面临海量非结构化数据处理需求&#xff0c;企业现有架构 通常无法应对海量非结构化数据的管理与应用。 支持私有化部署&#xff0c;完全内网环境下也可正常使用。 Windows、Linux、Mac等全平…

7个向量数据库对比:Milvus、Pinecone、Vespa、Weaviate、Vald、GSI 和 Qdrant

本文简要总结了当今市场上正在积极开发的7个向量数据库&#xff0c;Milvus、Pinecone、Vespa、Weaviate、Vald、GSI 和 Qdrant 的详细比较。 我们已经接近在搜索引擎体验的基础层面上涉及机器学习&#xff1a;在多维多模态空间中编码对象。这与传统的关键字查找不同&#xff08…

通过代理连接sftp

通过nginx代理连接sftp 1.问题描述2.代码实现3.nginx配置3.1 创建sftp.stream文件3.2 修改nginx配置 4.重启nginx生效 1.问题描述 问题是这样的。我们现在需要在微服务所在内网的A机器连接到外网的sftp&#xff0c;但是网络又不能直接到达。然后A机器到B机器是通过的&#xff…

【SAP】如何删除控制范围

经历就是财富&#xff0c;可你终将遗忘。期望文字打败时间。 本周心惊胆战地在配置系统删除了一个控制范围&#xff0c;还是有些收获&#xff0c;特此记录一下。 背景&#xff1a;在删除控制范围之前&#xff0c;我主要做了如下配置。 定义控制范围&#xff08;自动生成了成本…

【UEFI基础】EDK网络框架(IP4)

IP4 IP4协议说明 IP全称Internet Protocol&#xff0c;它属于网络层&#xff0c;对其下各种类型的数据链路层进行了包装&#xff0c;这样网络层可以跨越不同的数据链路&#xff0c;即使是在不同的数据链路上也能实现两端节点之间的数据包传输。 IP层的主要作用就是“实现终端…

Linux基础使用教程

一、引言 Linux是一种流行的开源操作系统&#xff0c;广泛应用于服务器、桌面和移动设备等领域。它具有强大的命令行界面和丰富的软件生态系统&#xff0c;使得用户可以轻松地完成各种任务。本教程将带你入门Linux的基础使用&#xff0c;包括文件管理、命令行操作和系统管理等…

C++|19.C++类与结构体对比

类和结构体 类和结构体本质上并没有太大区别。 但两者在默认上有所区别。 类默认成员变量是私有的&#xff0c;而结构体默认成员变量是公有的。 也就是说&#xff0c;对于一个类来说&#xff0c;会默认使用private去保护其内部成员变量使得无法直接访问到其内部的变量。 同时从…

android 返回到首页案例

很多年前做Android开发&#xff0c;经常遇到页面跳转需要返回到指定页面的需求。现再次总结下&#xff1a; 一、ActivityA返回到ActivityB ActivityA返回到ActivityB&#xff0c;回收掉中间页面 Intent intent new Intent(ActivityA.this,ActivityB.class);intent.setFlags(I…

代码随想录算法训练营第27天 | 39. 组合总和 40.组合总和II 131.分割回文串

目录 39. 组合总和 &#x1f4a1;解题思路 &#x1f4bb;实现代码 40.组合总和II &#x1f4a1;解题思路 &#x1f4bb;实现代码 131.分割回文串 &#x1f4a1;解题思路 # 判断回文子串 &#x1f4bb;实现代码 39. 组合总和 题目链接&#xff1a;39. 组合总和 给定…

C++ 开发 + VSCode 调试

C 开发 VSCode 调试 MSYS2 安装 gcc、make下载安装MSMYS2pacman 添加镜像源 GCC1. 安装2. 查看结果3. 环境变量 GDB VSCode 调试所需插件创建项目调试代码1. tasks.json 配置任务2. launch.json 配置调试3. 运行 更进一步的 C/C 设置 参考资料 MSYS2 安装 gcc、make 下载 官…

UCB Data100:数据科学的原理和技巧:第二十一章到第二十六章

二十一、SQL II 原文&#xff1a;SQL II 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 学习成果 介绍过滤组的能力 在 SQL 中执行数据清理和文本操作 跨表连接数据 在本讲座中&#xff0c;我们将继续上次的工作&#xff0c;介绍一些高级的 SQL 语法。 首先&…

解锁营销新高度:幽灵鲨CRM推广平台线索对接功能详解

数字营销时代&#xff0c;线索对接是推动业务增长的关键。你是否为线索分布在不同的平台而来回切换&#xff1f;你是否为无法及时联系客户而错失商机&#xff1f;幽灵鲨CRM系统作为一款领先的客户关系管理解决方案&#xff0c;不仅实现了对主流推广平台的全面对接&#xff0c;更…

JavaScript系列——Generator

文章目录 概要使用示例手动迭代for循环自动迭代 Promise 与 Generator对比使用async await 处理promise使用generator 处理promise手动使用 generator 实现 asyncawait 效果generator 生成函数如下手动实现核心代码执行 小结 概要 Generator,是ES6新增的特性&#xff0c;gener…

C++内存分配策略

目录 基础概念 内存布局 分配方式 实现 1.new和delete 2.利用空间配置器alloc 3.用malloc和free 4.静态内存分配 基础概念 在讲内存分配之前&#xff0c;先对一些基础概念进行阐述&#xff0c;以便能更好的讨论问题 内存布局 代码编译为可执行程序后运行占用的内存可…

Java研学-过滤查询

一 概述 1 原理 根据用户传入的条件进行数据的筛选查询&#xff0c;最后将结果放回给用户&#xff0c;例如对员工的姓名与工资范围进行筛选查询 // 查询所有员工 SELECT * FROM employee // 模糊查询员工名称 SELECT * FROM employee WHERE name LIKE %黄% // 查询工资为8000…

欢迎关注我的公众号

后续我会在公众号更新相关的C/rust等相关语言知识&#xff0c;此外计算机基础相关的知识。 欢迎大家关注&#xff1a;松元漫话

了解统计分类中的贝叶斯理论误差限

一、介绍 统计分类和机器学习领域正在不断发展&#xff0c;努力提高预测模型的准确性和效率。这些进步的核心在于一个基本基准&#xff0c;即贝叶斯理论误差极限。这个概念深深植根于概率和统计学&#xff0c;是理解分类算法的局限性和潜力的基石。本文深入探讨了贝叶斯错误率的…

【LabVIEW FPGA入门】使用LabVIEW FPGA进行编程并进行编译

在本文中会进行一个简单的FPGA编程演示&#xff0c;这通常可以验证编译工具链是否正常使用。在LabVIEW FPGA中和rt、PC编程一样使用数据流编程&#xff0c;但是需要注意的是FPGA中有些函数是不可以用的&#xff0c;因为这些函数很占用资源&#xff0c;且FPGA只能同时下载运行一…