Skip to content

Calendar 日历

基础用法

使用v-model双向绑定数据,firstDay 表示以星期几为开头,onChange返回当前变化的日历数据。

以星期日开头

2024年1月28日
1月
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910


以星期一开头

2024年1月28日
1月
1234567
891011121314
15161718192021
22232425262728
2930311234
567891011
<template>
  <div>
    <p>以星期日开头</p>
    <Calendar v-model="value" :first-day="0" :options="options" @on-change="onChange" />
    <br />
    <br />
    <p>以星期一开头</p>
    <Calendar v-model="value2" :first-day="1" :options="options" @on-change="onChange" />
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue'
import Calendar from '@com/Calendar/Calendar.vue'
const value = ref(new Date())
const value2 = ref(new Date())

const options = {
  width: '100%',
  height: '680px'
}

const onChange = (val: { date: Date; type: string }) => {
  console.log(val)
}
</script>

插槽自定义日历数据

具名插槽为date-cell,可以获取每个日期的数据

2024年1月28日
1月

12-31

01-01

01-02

01-03

01-04

01-05

01-06

01-07

01-08

01-09

01-10

01-11

01-12

01-13

01-14

01-15

01-16

01-17

01-18

01-19

01-20

01-21

01-22

01-23

01-24

01-25

01-26

01-27

01-28 😁

01-29

01-30

01-31

02-01

02-02

02-03

02-04

02-05

02-06

02-07

02-08

02-09

02-10

<template>
  <Calendar :first-day="0" :options="options">
    <template #date-cell="{ data }">
      <p :class="data.isSelected ? 'is-selected' : ''">
        {{ data.day.split('-').slice(1).join('-') }}
        {{ data.isSelected ? '😁' : '' }}
      </p>
    </template>
  </Calendar>
</template>
<script setup lang="ts">
import Calendar from '@com/Calendar/Calendar.vue'
const options = {
  height: '680px'
}
</script>

Calendar API

属性

属性名说明类型可选值默认值
v-model选中项绑定值Date---当前 Date
firstDay以星期几开头,0~6 分别表示星期日、一、二、三、四、五、六number0,1,2,3,4,5,60
options配置项(详细请看 options 属性)object--------------------

options 属性

属性名说明类型可选值默认值
width日历的宽度string---100%
height日历的高度string---100%

具名插槽

名称说明类型默认
date-celltype 表示该日期的所属月份,可选值有 prev-monthcurrent-monthnext-monthisSelected 标明该日期是否被选中;day 是格式化的日期,格式为 yyyy-MM-dddate 是单元格的日期Object当前 Date

Events

方法名说明参数
onChangetype表示动作类型,selectDate选中日期,pre-monthnext-month分别为上个月和上个月;date为变化后返回的日期Object