程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 快速入手

  • 基础组件

  • 表单组件

  • 数据展示组件

  • 反馈组件

  • 导航组件

  • 其他组件

    • 对话框组件 (Dialog)
    • 文字提示组件 (Tooltip)
    • 弹出框组件 (Popover)
    • 气泡确认框组件 (Popconfirm)
    • 卡片组件 (Card)
    • 走马灯组件 (Carousel)
    • 折叠面板组件 (Collapse)
    • 时间线组件 (Timeline)
    • 分割线组件 (Divider)
    • 日历组件 (Calendar)
      • 1. 基本用法
        • Calendar 属性
        • dateCell 作用域插槽参数
      • 2. 日历常用示例
        • 设置时间范围
        • 设置周起始日
        • 自定义日期单元格内容
      • 3. 总结
    • 图片组件 (Image)
    • 回到顶部组件 (Backtop)
    • 无限滚动 (InfiniteScroll)
    • 无限滚动 (vue-infinite-loading)
    • 抽屉组件 (Drawer)
  • Element-UI
  • 其他组件
scholar
2024-08-12
目录

日历组件 (Calendar)

# 日历组件 (Calendar)

Element-UI 的 Calendar 组件用于显示日期,并且可以根据需要选择特定的日期范围、设置周起始日等。这个组件常用于需要展示或选择日期的场景,提供了一种直观的日期选择和展示方式。

提示

Calendar 日历组件官方文档:https://element.eleme.cn/#/zh-CN/component/calendar (opens new window)

# 1. 基本用法

基本语法:使用 <el-calendar> 标签来显示一个日历,通过属性可以控制日历的日期、范围和周起始日等。

<template>
  <el-calendar v-model="selectedDate"></el-calendar>
</template>

<script>
export default {
  data() {
    return {
      selectedDate: new Date() // 绑定的日期值
    };
  }
};
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
  • v-model 绑定:通过 v-model 绑定当前选中的日期,绑定值可以是 Date、string 或 number 类型。
  • image-20240811222232826

# Calendar 属性

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

# dateCell 作用域插槽参数

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

# 2. 日历常用示例

# 设置时间范围

通过 range 属性可以设置日历的显示范围,显示的开始时间必须是周一,结束时间必须是周日,且时间跨度不能超过两个月。

<template>
  <el-calendar :range="[new Date(2024, 7, 1), new Date(2024, 7, 31)]"></el-calendar>
</template>
1
2
3
  • 时间范围:range 属性设置日历的时间范围。需要注意,范围内的日期跨度不能超过两个月,且开始时间必须是周一,结束时间必须是周日。

# 设置周起始日

通过 first-day-of-week 属性可以设置日历的周起始日,例如将周一设置为一周的第一天。

<template>
  <el-calendar :first-day-of-week="1"></el-calendar>
</template>
1
2
3
  • 周起始日:通过设置 first-day-of-week 属性,可以定义一周的起始日,值为 1 到 7,默认值为 1(即周一)。

# 自定义日期单元格内容

可以通过 dateCell 插槽自定义每个日期单元格的内容。例如,可以在日期单元格中显示图标或标记特殊的日期。

<template>
  <el-calendar>
    <template v-slot:dateCell="{ date, data }">
      <div>
        <span>{{ data.day }}</span>
        <i v-if="data.isSelected" class="el-icon-star-on"></i>
      </div>
    </template>
  </el-calendar>
</template>
1
2
3
4
5
6
7
8
9
10
  • 自定义单元格内容:通过 dateCell 插槽,可以在日期单元格中插入自定义的内容,如图标、标记等。

# 3. 总结

  • 日期选择:Calendar 组件可以通过 v-model 绑定当前选中的日期,提供直观的日期选择功能。
  • 时间范围:通过 range 属性,可以限制日历显示的时间范围,适用于需要限定日期范围的场景。
  • 自定义周起始日:可以通过 first-day-of-week 属性设置周起始日,灵活适应不同的日历习惯。
  • 自定义日期单元格:通过 dateCell 插槽,可以自定义每个日期单元格的内容,增强组件的灵活性和适应性。

Calendar 组件在日期展示和选择方面提供了很大的便利,适用于各种需要日期管理的场景。通过自定义日期单元格内容,可以进一步增强用户体验和组件的功能性。

编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08
分割线组件 (Divider)
图片组件 (Image)

← 分割线组件 (Divider) 图片组件 (Image)→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式