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

自定义封装日历组件

自定义日历

工作需要,但现有框架封装的日历无法满足需求,又找不到更好的插件,所以准备自己封装一个。

效果图和说明

在这里插入图片描述
一个很简易版的demo日历,本文只提供最基本的功能代码,便于阅读二开。

新建calendar.vue文件

<template>
<div class="calendar"><!-- 年月 --><div class="head"><div><span @click="setYear(false)">&lt;&lt;</span><span style="margin-left: 17px;" @click="setMonth(false)">&lt; </span></div><div> {{date.year}}{{date.month}}</div><div><span style="margin-right: 17px;" @click="setMonth(true)">&gt; </span><span @click="setYear(true)">&gt;&gt;</span></div></div><!-- 星期 --><div class="weeks"><ul><li v-for="(item,index) of weeks" :key="index">{{item}}</li></ul></div><!----><div class="days"><ul><li v-for="(item,index) of days" :key="index" :class="{'ash':item.cls}">{{item.val}}</li></ul></div>
</div>
</template><script>
export default {data(){return{date:{year:'',month:''},weeks:['日', '一', '二', '三', '四', '五', '六'],days:[],}},methods:{// 获取年、月getDate(){let date = new Date()this.date.year = date.getFullYear()this.date.month = date.getMonth()+1this.getViewDays()},// 获取界面中显示的天getViewDays(){let oneDayWeek = new Date(`${this.date.year}-${this.date.month}-01`).getDay()let lastMonth = this.date.month-1 > 0 ? this.date.month-1 : 12// 获取上月天数let lastMonthDays = this.getDays(lastMonth)this.days = []// 补齐上月天数for(let i=0; i<oneDayWeek; i++){this.days.push({val: lastMonthDays - oneDayWeek + i +1,cls:true})}let thisMonthDays = this.getDays(this.date.month)// 放入这月天数for(let i=1; i<=thisMonthDays; i++){this.days.push({val: i})}// 下月天数补齐let nextMonthDay = 42-this.days.lengthfor(let i=1; i<=nextMonthDay; i++){this.days.push({val: i,cls:true})}},  // 年份更改setYear(state){if(state){this.date.year++}else{this.date.year--}this.getViewDays()},// 月份更改setMonth(state){if(state){if(this.date.month == 12){this.date.year++this.date.month = 1}else{this.date.month++}}else{if(this.date.month == 1){this.date.year--this.date.month = 12}else{this.date.month--}}this.getViewDays()},  // 获取一个月有多少天getDays(month){if([1,3,5,7,8,10,12].indexOf(month) != -1){return 31}else if([4,6,9,11].indexOf(month) != -1){return 30}else{if((this.date.year % 4 === 0 && this.date.year % 100 != 0) || this.date.year % 400 ==0){return 29}else{return 28}}}},mounted(){this.getDate()}
}
</script><style lang="scss" scoped>
.calendar{width: 380px;box-shadow: 0px 0px 3px #ccc;margin: 0 auto;margin-top: 30px;border-radius: 5px;padding: 15px 25px;.head{display: flex;justify-content: space-between;span{cursor: pointer;}}.weeks > ul{display: flex;justify-content: space-around;border-bottom: 1px solid #ccc;padding: 10px 0;font-size: 13px;margin-top: 20px;}.days > ul{display: flex;flex-wrap: wrap;justify-content: space-between;li{width: 54px;height: 40px;line-height: 40px;text-align: center;}.ash{color: #ccc;}}
}
</style>

最后保存运行即可。

相关文章:

自定义封装日历组件

自定义日历 工作需要&#xff0c;但现有框架封装的日历无法满足需求&#xff0c;又找不到更好的插件&#xff0c;所以准备自己封装一个。 效果图和说明 一个很简易版的demo日历&#xff0c;本文只提供最基本的功能代码&#xff0c;便于阅读二开。 新建calendar.vue文件 <…...

【大模型】【面试】独家总结表格

问题解答你能解释一下Transformer架构及其在大型语言模型中的作用吗?Transformer架构是一种深度神经网络架构,于2017年由Vaswani等人在他们的论文“Attention is All You Need”中首次提出。自那以后,它已成为大型语言模型(如BERT和GPT)最常用的架构。 Transformer架构使用…...

C# 6.定时器 timer

使用控件&#xff1a; 开启定时器&#xff1a;timer1.Start(); 关闭定时器&#xff1a;timer1.Stop(); 定时间时间间隔:Interval timer1.Interval 1000; Interva等于1000是每一秒刷新一次 定时器默认时间间隔是100ms 代码创建定时器 ①创建 Timer t1 new Timer(); …...

有了 createSlice,还有必要使用 createReducer 吗?什么情况需要 createReducer 呢?

通常情况下&#xff0c;使用 createSlice 已经足够满足大多数需求&#xff0c;而不需要直接使用 createReducer。但是&#xff0c;在某些特定场景下&#xff0c;createReducer 仍然有其用处&#xff1a; 更细粒度的控制&#xff1a; 当你需要对 reducer 的行为进行更精细的控制…...

怎么搭建AI带货直播间生成虚拟主播?

随着电商直播带货的热潮不断升温&#xff0c;虚拟主播逐渐崭露头角&#xff0c;成为电商直播领域的新宠&#xff0c;相较于真人主播&#xff0c;虚拟主播具备无档期风险、人设稳定可控、24小时不间断直播等显著优势。 本文将深入探讨如何搭建一个AI带货直播间&#xff0c;并详…...

设计模式的原则

设计模式的原则通常包括以下几种核心原则&#xff1a; 单一职责原则 (SRP)&#xff1a;一个类应该只有一个单一的职责&#xff0c;即该类应该只有一个引起它变化的原因。这样可以减少类之间的耦合&#xff0c;使得系统更加易于维护和扩展。 开放/封闭原则 (OCP)&#xff1a;软…...

RocketMQ与RabbitMQ的区别:技术选型指南

在现代分布式系统和微服务架构中&#xff0c;消息队列&#xff08;Message Queue&#xff0c;简称MQ&#xff09;扮演着至关重要的角色。消息队列用于实现系统间的异步通信、解耦、削峰填谷等功能。目前常见的MQ实现包括ActiveMQ、RabbitMQ、RocketMQ和Kafka。本文将重点对比Ro…...

小白也能懂:SQL注入攻击基础与防护指南

SQL注入是一种针对数据库的攻击方式&#xff0c;攻击者通过在Web表单、URL参数或其他用户输入的地方插入恶意SQL代码&#xff0c;以此绕过应用程序的验证机制&#xff0c;直接与后台数据库交互。这种攻击可以导致攻击者无授权地查看、修改或删除数据库中的数据&#xff0c;甚至…...

【Hot100】LeetCode—76. 最小覆盖子串

题目 原题链接&#xff1a;76. 最小覆盖子串 1- 思路 利用两个哈希表解决分为 &#xff1a;① 初始化哈希表、②遍历 s&#xff0c;处理当前元素&#xff0c;判断当前字符是否有效、③收缩窗口、④更新最小覆盖子串 2- 实现 ⭐76. 最小覆盖子串——题解思路 class Solution …...

删除排序链表中的重复元素 II(LeetCode)

题目 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 解题 class ListNode:def __init__(self, val0, nextNone):self.val valself.next nextclass Solution:def deleteDuplicates(self…...

【Java】解决如何将Http转为Https加密输出

目录 HTTP转HTTPS一、 获取 SSL/TLS 证书二、 安装证书2.1 Apache2.2 Nginx 三、更新网站配置四. 更新网站链接五. 检查并测试六. 自动续期&#xff08;针对 Lets Encrypt&#xff09; HTTP转HTTPS 将网站从 HTTP 转换为 HTTPS 能够加密数据传输&#xff0c;还能提高搜索引擎排…...

二叉树链式结构的实现(递归的暴力美学!!)

前言 Hello,小伙伴们。你们的作者菌又回来了&#xff0c;前些时间我们刚学习完二叉树的顺序结构&#xff0c;今天我们就趁热打铁&#xff0c;继续我们二叉树链式结构的学习。我们上期有提到&#xff0c;二叉树的的底层结构可以选为数组和链表&#xff0c;顺序结构我们选用的数…...

Python | Leetcode Python题解之第312题戳气球

题目&#xff1a; 题解&#xff1a; class Solution:def maxCoins(self, nums: List[int]) -> int:n len(nums)rec [[0] * (n 2) for _ in range(n 2)]val [1] nums [1]for i in range(n - 1, -1, -1):for j in range(i 2, n 2):for k in range(i 1, j):total v…...

远程访问mysql数据库的正确打开方式

为了安全&#xff0c;mysql数据库默认只能本机登录&#xff0c;但是在有些时候&#xff0c;我们会有远程登录mysql数据库的需求&#xff0c;这时候应该怎么办呢&#xff1f; 远程访问mysql数据&#xff0c;需要两个条件&#xff1a; 首先需要mysql服务器将服务绑定到0.0.0.0…...

网络6 -- udp_socket 实现 echo服务器

目录 1.server 服务端 1.1.完整代码展示&#xff1a; 1.2.代码解析&#xff1a; 1.2.1 给服务端创建套接字 1.2.2 绑定套接字 1.2.3 服务端接受数据并返回 2.客户端&#xff1a; 2.1 完整代码展示&#xff1a; 2.2 代码解析 2.2.1 客户端使用手则&#xff1a; 2.2.2 …...

ASUS/华硕幻15 2020 冰刃4 GX502L GU502L系列 原厂win10系统 工厂文件 带F12 ASUS Recovery恢复

华硕工厂文件恢复系统 &#xff0c;安装结束后带隐藏分区&#xff0c;一键恢复&#xff0c;以及机器所有驱动软件。 系统版本&#xff1a;windows10 原厂系统下载网址&#xff1a;http://www.bioxt.cn 需准备一个20G以上u盘进行恢复 请注意&#xff1a;仅支持以上型号专用…...

simulink绘制bode图

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…...

知识工程视角下的软件研发

知识工程 在我们的工作中存在两类知识&#xff1a;显式知识&#xff08;explicit knowledge&#xff09;、不可言说的知识&#xff08;tacit knowledge&#xff09;。 所谓显式知识就是能够直接表达且在人群中分享的知识。比如&#xff0c;地球的周长、水的密度、三角形面积公…...

深度学习------权重衰退

目录 使用均方范数作为硬性限制使用均方范数作为柔性限制演示最优解的影响参数更新法则总结高纬线性回归多项式的权重衰退从零开始实现初始化模型参数定义L2范数惩罚定义训练代码实现忽略正则化直接训练使用权重衰减从零开始代码实现 多项式的权重衰退的简洁实现简洁函数代码简…...

【算法】退火算法 Simulated Annealing

退火算法&#xff08;Simulated Annealing, SA&#xff09;是一种基于热力学模拟的优化算法&#xff0c;用于求解全局优化问题。它通过模拟物理退火过程来寻找全局最优解。以下是退火算法的基本原理和步骤&#xff1a; 一、基本原理 退火算法的灵感来源于金属在高温下缓慢冷却…...

5大场景解锁智能群管理:如何让LuckyLilliaBot提升社群运营效率80%

5大场景解锁智能群管理&#xff1a;如何让LuckyLilliaBot提升社群运营效率80% 【免费下载链接】LuckyLilliaBot NTQQ的OneBot API插件 项目地址: https://gitcode.com/gh_mirrors/li/LuckyLilliaBot LuckyLilliaBot作为一款基于OneBot11协议的NTQQ插件&#xff0c;能够将…...

Qwen3.5-35B-A3B-AWQ-4bit惊艳效果:电路图元件识别+故障原因中文推理

Qwen3.5-35B-A3B-AWQ-4bit惊艳效果&#xff1a;电路图元件识别故障原因中文推理 1. 模型能力展示 Qwen3.5-35B-A3B-AWQ-4bit作为一款面向视觉多模态理解的量化模型&#xff0c;在电路图分析和故障诊断领域展现出令人惊艳的能力。这个经过4bit量化的模型不仅保持了原版35B参数…...

Windows下OpenClaw实战:30分钟接入Qwen3.5-4B-Claude模型

Windows下OpenClaw实战&#xff1a;30分钟接入Qwen3.5-4B-Claude模型 1. 为什么选择WindowsOpenClaw组合 去年我在尝试自动化办公流程时&#xff0c;发现很多AI工具对Windows支持并不友好。直到遇到OpenClaw&#xff0c;这个开源的智能体框架让我眼前一亮——它不仅能像人类一…...

认知几何学:思维如何弯曲意义空间(世毫九实验室原创理论修订版)

认知几何学&#xff1a;思维如何弯曲意义空间&#xff08;世毫九实验室原创理论修订版&#xff09;Cognitive Geometry: How Thought Curves Meaning Space (Revised Edition)方见华 世毫九实验室 摘要 本文在《新累土哲学》“关系先于实体”的框架下&#xff0c;对认知几何学进…...

告别定位漂移:用Python手把手实现GNSS载波相位平滑伪距(附代码)

告别定位漂移&#xff1a;用Python手把手实现GNSS载波相位平滑伪距&#xff08;附代码&#xff09; 在无人机自主飞行或自动驾驶小车导航时&#xff0c;你是否遇到过这样的困扰&#xff1a;明明设备静止不动&#xff0c;地图上的定位点却像喝醉酒一样左右摇摆&#xff1f;这种&…...

从电源到复位:深入拆解STM32最小系统每个电路模块的设计考量与选型避坑

从电源到复位&#xff1a;深入拆解STM32最小系统每个电路模块的设计考量与选型避坑 在嵌入式系统开发中&#xff0c;STM32系列微控制器因其出色的性能和丰富的外设资源而广受欢迎。然而&#xff0c;即使是看似简单的STM32最小系统设计&#xff0c;也蕴含着大量值得深入探讨的工…...

Llama-3.2V-11B-cot部署案例:中小企业低成本构建AI图文分析工作台

Llama-3.2V-11B-cot部署案例&#xff1a;中小企业低成本构建AI图文分析工作台 1. 项目概述 Llama-3.2V-11B-cot是基于Meta最新多模态大模型开发的专业级视觉推理工具&#xff0c;专为中小企业打造的低成本AI图文分析解决方案。该工具针对双卡RTX 4090环境进行了深度优化&…...

探索粗糙表面波动模型生成:打造不规则之美

粗糙表面&#xff0c;波动模型生成&#xff0c;用于在物体表面生成不规则的粗糙表面&#xff0c;或面表面的波动边界等&#xff0c;可自定义波动分布与赋值。在图形学和模拟领域&#xff0c;生成物体表面的粗糙质感或是波动边界常常是一个有趣又具有挑战性的任务。今天咱们就聊…...

拒了一个只要1.8万的45岁大佬

因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享点击关注#互联网架构师公众号&#xff0c;领取架构师全套资料 都在这里0、2T架构师学习资料干货分上一篇&#xff1a;2T架构师学习资料干货分享大家好&#xff0c;我是互联网架构师&#xff…...

想给西安碑林、雁塔等区旧房装修?知名靠谱装修公司在哪找?

在西安碑林、雁塔等区拥有一套旧房&#xff0c;想要进行装修&#xff0c;却不知道如何找到知名靠谱的装修公司&#xff1f;别担心&#xff0c;本文将为你详细介绍选择装修公司的方法&#xff0c;并重点推荐西安王师傅装修工程有限公司&#xff0c;为你的旧房装修之旅提供可靠的…...