Calendar 日历

显示日期

基础用法

设置 value 来指定当前显示的月份。 如果 value 未指定,则显示当月。 value 支持 v-model 双向绑定。

Calendar 日历 - 图1

  1. <template>
  2. <el-calendar v-model="value" />
  3. </template>
  4. <script lang="ts" setup>
  5. import { ref } from 'vue'
  6. const value = ref(new Date())
  7. </script>

自定义内容

通过设置名为 date-cellscoped-slot 来自定义日历单元格中显示的内容。 在 scoped-slot 可以获取到 date(当前单元格的日期), data(包括 type,isSelected,day 属性)。 详情解释参考下方的 API 文档。

Calendar 日历 - 图2

  1. <template>
  2. <el-calendar>
  3. <template #date-cell="{ data }">
  4. <p :class="data.isSelected ? 'is-selected' : ''">
  5. {{ data.day.split('-').slice(1).join('-') }}
  6. {{ data.isSelected ? '✔️' : '' }}
  7. </p>
  8. </template>
  9. </el-calendar>
  10. </template>
  11. <style>
  12. .is-selected {
  13. color: #1989fa;
  14. }
  15. </style>

范围

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

Calendar 日历 - 图3

  1. <template>
  2. <el-calendar :range="[new Date(2019, 2, 4), new Date(2019, 2, 24)]" />
  3. </template>

自定义日历头部

Calendar 日历 - 图4

  1. <template>
  2. <el-calendar ref="calendar">
  3. <template #header="{ date }">
  4. <span>Custom header content</span>
  5. <span>{{ date }}</span>
  6. <el-button-group>
  7. <el-button size="small" @click="selectDate('prev-year')">
  8. Previous Year
  9. </el-button>
  10. <el-button size="small" @click="selectDate('prev-month')">
  11. Previous Month
  12. </el-button>
  13. <el-button size="small" @click="selectDate('today')">Today</el-button>
  14. <el-button size="small" @click="selectDate('next-month')">
  15. Next Month
  16. </el-button>
  17. <el-button size="small" @click="selectDate('next-year')">
  18. Next Year
  19. </el-button>
  20. </el-button-group>
  21. </template>
  22. </el-calendar>
  23. </template>
  24. <script lang="ts" setup>
  25. import { ref } from 'vue'
  26. const calendar = ref()
  27. const selectDate = (val: string) => {
  28. calendar.value.selectDate(val)
  29. }
  30. </script>

国际化

由于 Element Plus 的默认语言为英语,如果你需要设置其它的语言,请参考国际化文档。

要注意的是:日期相关的文字(月份,每一周的第一天等等)也都是通过国际化来配置的。

属性

属性说明类型可选值默认值
model-value / v-model选中项绑定值Date
range时间范围,包括开始时间与结束时间。 开始时间必须是周起始日,结束时间必须是周结束日,且时间跨度不能超过两个月。[Date]Array

插槽

插槽名说明参数
date-cell{ type, isSelected, day, date }. type 表示该日期的所属月份,可选值有 prev-month,current-month,next-month;isSelected 标明该日期是否被选中;day 是格式化的日期,格式为 yyyy-MM-dd;date 是单元格的日期data
header卡片标题内容

源代码

组件 Calendar 日历 - 图5 文档 Calendar 日历 - 图6

贡献者

Calendar 日历 - 图7 三咲智子

Calendar 日历 - 图8 云游君

Calendar 日历 - 图9 jeremywu

Calendar 日历 - 图10 qiang

Calendar 日历 - 图11 btea

Calendar 日历 - 图12 C.Y.Kun

Calendar 日历 - 图13 啝裳

Calendar 日历 - 图14 Aex

Calendar 日历 - 图15 Xc

Calendar 日历 - 图16 Dreamcreative

Calendar 日历 - 图17 Delyan Haralanov

Calendar 日历 - 图18 bqy_fe

Calendar 日历 - 图19 blackie

Calendar 日历 - 图20 Valar103769

Calendar 日历 - 图21 msidolphin

Calendar 日历 - 图22 Herrington Darkholme

Calendar 日历 - 图23 Alan Wang

Calendar 日历 - 图24 on the field of hope

Calendar 日历 - 图25 zazzaz

Calendar 日历 - 图26 Hades-li