当前位置:首页 > 前端教程

elementui calendar

2026-03-06 08:28:06前端教程

Element UI Calendar 组件

Element UI 提供了一套基于 Vue.js 的组件库,其中包含 el-calendar 组件,用于展示日历视图。该组件支持日期选择、自定义渲染、事件标记等功能,适用于日程管理、日期选择等场景。

基本用法

通过 v-model 绑定当前显示的月份,默认展示当前月份的日历:

elementui calendar

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

<script>
export default {
  data() {
    return {
      value: new Date()
    }
  }
}
</script>

自定义日期单元格内容

通过 date-cell 插槽可以自定义每个日期单元格的内容。例如,标记特定日期或添加事件:

<template>
  <el-calendar>
    <template #date-cell="{ data }">
      <div class="cell-content">
        {{ data.day.split('-').slice(2).join('-') }}
        <div v-if="isEventDate(data.day)" class="event-marker"></div>
      </div>
    </template>
  </el-calendar>
</template>

<script>
export default {
  methods: {
    isEventDate(date) {
      // 判断是否为事件日期
      return date === '2023-10-15'
    }
  }
}
</script>

<style>
.event-marker {
  width: 6px;
  height: 6px;
  background-color: #f56c6c;
  border-radius: 50%;
  margin: 2px auto;
}
</style>

日期范围选择

通过设置 range 属性可以实现日期范围选择。绑定 v-model 为一个数组,包含开始和结束日期:

elementui calendar

<template>
  <el-calendar v-model="range" :range="['2023-10-01', '2023-10-31']"></el-calendar>
</template>

<script>
export default {
  data() {
    return {
      range: [new Date('2023-10-10'), new Date('2023-10-20')]
    }
  }
}
</script>

事件标记

结合插槽和自定义逻辑,可以在日历中标记特定事件。例如,高亮显示有会议的日期:

<template>
  <el-calendar>
    <template #date-cell="{ data }">
      <div :class="['cell', { 'has-meeting': hasMeeting(data.day) }]">
        {{ data.day.split('-').slice(2).join('-') }}
      </div>
    </template>
  </el-calendar>
</template>

<script>
export default {
  methods: {
    hasMeeting(date) {
      const meetings = ['2023-10-05', '2023-10-12', '2023-10-19']
      return meetings.includes(date)
    }
  }
}
</script>

<style>
.has-meeting {
  background-color: #e6f7ff;
  border-radius: 4px;
}
</style>

国际化配置

通过设置 locale 属性可以切换日历的语言。Element UI 默认支持中文和英文:

<template>
  <el-calendar :locale="locale"></el-calendar>
</template>

<script>
import { Lang } from 'element-ui'
export default {
  data() {
    return {
      locale: Lang.en // 切换为英文
    }
  }
}
</script>

注意事项

  • 日期格式需遵循 YYYY-MM-DD 或 JavaScript Date 对象。
  • 自定义样式时避免覆盖组件默认样式,建议通过类名隔离。
  • 事件处理逻辑需在插槽或方法中实现,组件本身不提供内置事件管理功能。

分享给朋友:

相关文章

elementui整合

elementui整合

ElementUI 整合指南 ElementUI 是一款基于 Vue.js 的桌面端组件库,广泛应用于中后台系统的快速开发。以下是整合 ElementUI 到项目中的具体方法: 安装 Elemen…

elementui文本

elementui文本

ElementUI 文本组件 ElementUI 提供了多种文本相关的组件,用于展示和处理文本内容。以下是一些常用的文本组件及其用法: 文本展示组件 el-text 用于展示普通文本,支持自定义样…

elementui transfer

elementui transfer

ElementUI Transfer 组件使用指南 ElementUI 的 Transfer 组件用于在两栏之间转移数据,适用于权限分配、数据分类等场景。以下为详细使用方法: 基础用法 在模板中引入…

elementui datepick

elementui datepick

ElementUI DatePicker 使用指南 ElementUI 是一套基于 Vue.js 的组件库,DatePicker 是其中一个常用的日期选择组件。以下是关于 ElementUI Date…

elementui更新

elementui更新

Element UI 更新指南 Element UI 是一个基于 Vue.js 的组件库,更新到最新版本可以获取新功能、性能优化和 Bug 修复。以下是更新 Element UI 的详细步骤: 检查…

elementui admin

elementui admin

ElementUI Admin 简介 ElementUI Admin 是基于 Vue.js 和 ElementUI 的后台管理系统模板,提供丰富的组件和布局方案,适合快速开发企业级中后台应用。其特点包…