Vue+Vant实现7天日历展示,并在切换日期时实时变换

server/2024/10/15 16:14:07/
效果图:

主要使用 moment.js 插件完成

HTML部分
        <div class="day-content"><div class="day-content-t"><div>{{ monthVal }}</div><div @click="onCalendar()">更多>></div></div><div class="day-content-b"><div class="day-week"><div v-for="item in weekList">{{ item }}</div></div><div class="day-list"><div v-for="item in dayList" :class="{ 'active' : todayVal === item }">{{ item }}</div></div></div></div><!-- 日历 --><van-calendar v-model="calendarShow" :show-confirm="false" @confirm="onConfirm" color="#007AFF" />
js部分
javascript"><script>
import moment from 'moment';
export default {components: {},data() {return {weekList: [],dayList: [],monthVal: '',todayVal: '',calendarShow: false,}},created() {this.monthVal = moment().format('YYYY年MM月');let month = moment().format('YYYY-MM-DD');this.todayVal = moment().format('DD');this.dayInit(month,this.todayVal);},methods: {dayInit(month,day){this.weekList = [];this.dayList = [];// 初始化周const weekDays = ['日', '一', '二', '三', '四', '五', '六'];const todayWeek = weekDays[moment(month).day()];const frontWeek1 = weekDays[moment(month).subtract(3, 'days').day()];const frontWeek2 = weekDays[moment(month).subtract(2, 'days').day()];const frontWeek3 = weekDays[moment(month).subtract(1, 'days').day()];const afterWeek1 = weekDays[moment(month).add(1, 'days').day()];const afterWeek2 = weekDays[moment(month).add(2, 'days').day()];const afterWeek3 = weekDays[moment(month).add(3, 'days').day()];this.weekList.push(frontWeek1,frontWeek2,frontWeek3,todayWeek,afterWeek1,afterWeek2,afterWeek3);// 初始化日期const today = day;const frontDay1 = moment(month).subtract(3, 'days').format('DD');const frontDay2 = moment(month).subtract(2, 'days').format('DD');const frontDay3 = moment(month).subtract(1, 'days').format('DD');const afterDay1 = moment(month).add(1, 'days').format('DD');const afterDay2 = moment(month).add(2, 'days').format('DD');const afterDay3 = moment(month).add(3, 'days').format('DD');this.dayList.push(frontDay1,frontDay2,frontDay3,today,afterDay1,afterDay2,afterDay3);},onCalendar(){this.calendarShow = true;},formatDate(date) {this.monthVal = `${date.getFullYear()}年${date.getMonth() + 1}月`;let month = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;this.todayVal = date.getDate();this.dayInit(month,this.todayVal);},onConfirm(date){this.calendarShow = false;this.formatDate(date)},}
}
</script>
css部分
<style lang="scss" scoped>
.day-content{background-color: #007AFF;padding: 0.3rem;color: #fff;.day-content-t{display: flex;flex-direction: row;justify-content: space-between;div:nth-child(1){font-size: 16px;}div:nth-child(2){font-size: 12px;}}.day-content-b{.day-week,.day-list{display: flex;flex-direction: row;justify-content: space-between;margin: 0.4rem 0;div{text-align: center;width: 0.6rem;height: 0.6rem;line-height: 0.6rem;}}.active{background-color: #0054B0;border-radius: 50%;}}
}
</style>

至此完成!!!

测试有效!!!感谢支持!!!


http://www.ppmy.cn/server/132261.html

相关文章

[SQL] 数据库增删改操作

一 增加 关键字: insert注意: 插入的数据如果是&#xff1a; 字符串和日期类型数据需要包含在单引号内。 1.1 给指定字段添加数据 insert into 表名 (字段名1,字段名2,...) values(值1,值2...); 1.2 给全部字段添加数据 不指定字段名时要添加所有字段并且值一一对应。即使…

UNION ALL函数用法

文章目录 1. 什么是 UNION ALL&#xff1f;2. UNION ALL 的特点2.1 不去重2.2 性能更优2.3 列数和数据类型 3. 示例应用3.1 基本示例3.2 结合其他 SQL 功能3.3 使用子查询3.4 转换操作(leetcode真题) 4. 注意事项5. 结论 在数据库查询中&#xff0c; 合并多个结果集是一个常见…

AI绘画工具之秒画

一、秒画是什么&#xff1f; 1.1 秒画 商汤科技&#xff08;SenseTime&#xff09;是一家全球领先的人工智能公司&#xff0c;致力于将AI技术应用于多个领域&#xff0c;包括图像识别、计算机视觉和智能绘画等。商汤秒画是其在艺术创作领域的重要组成部分&#xff0c;旨在为用…

ubuntu服务器监控程序崩溃自动重启

环境&#xff1a;监控程序运行情况分为两种情况&#xff0c;一种带界面&#xff0c;一种控制台程序&#xff0c;带界面程序采用脚本监控方式&#xff0c;不带界面采用Supervisor工具监控。 1. 自动重启带界面程序&#xff1a; #!/bin/sh while true; do processExistps aux | …

Android开发之Broadcast Receive(广播机制)其实开发如此简单

什么是BroadcastReceiver BroadcastReceiver&#xff08;广播接收器&#xff09;用于响应来自其他应用程序或者系统的广播消息。这些消息有时被称为事件或者意图。本质上来讲BroadcastReceiver是一个全局的监听器&#xff0c;隶属于Android四大组件之一。 使用场景 1、 不同…

linux 开发换基础部署脚本

#springboot 打包 mvn install mvn clean package #指定环境 mvn clean package -P dev #线上发布 #启动脚本 start.sh nohup java -jar me-0.0.1-SNAPSHOT.jar --spring.profiles.activedev & # 停止脚本 stop.sh PID$(ps -ef | grep me-0.0.1-SNAPSHOT.jar | grep -v gr…

MATLAB代码※二维下的WIFI定位例程(4个Wi-Fi锚点,附下载链接)

本文给出一个关于WIFI定位的MATLAB代码的讲解、例程代码分享、运行结果展示和解读。 定位的环境是二维平面,设置四个WIFI基站(路由器等),通过测量WIFI信号的强度来进行定位 涉及的技术有:RSSI信号衰减、三点法 文章目录 WIFI定位优势:应用场景:部分源代码代码运行运行方…

MYSQL架构、执行过程和顺序

MYSQL架构、执行过程和顺序 一、前言 1.1、说明 就MySQL的架构&#xff0c;以及执行过程、sql执行顺序&#xff0c;以及一些相关学习分享内容。 在参考文章的基础上&#xff0c;会增加自己的理解、看法&#xff0c;希望本文章能够在您的学习中提供帮助。 如有错误的地方&a…