calendar
日历组件,默认情况下使用dict-calendar使用, 如果字典包配置中有配置componentsPreFix字段,请根据此字段的具体配置值进行前缀修改,如配置了componentsPreFix为Bu, 则使用bu-calendar使用。
复制成功


组件结构
组件封装结构如下
vue
<div class="van-calendar-dict van-cell-dict">
<van-field ref="VanFieldRef"></van-field>
<van-calendar ref="VanCalendarRef"
</van-calendar>
</div>js
const VanCalendarRef = ref(null)
const getVanCalendarRef = () => {
return VanCalendarRef.value
}
const VanFieldRef = ref(null)
const getVanFieldRef = () => {
return VanFieldRef.value
}
defineExpose({ getVanCalendarRef, getVanFieldRef })属性、事件和插槽继承技巧
此组件引用了van-field、van-cascader两个个组件,其中van-field组件可直接继承原生属性、事件和插槽, van-calendar组件添加 calendar- 前缀即可
属性
| 属性 | 类型 | 说明 | 默认值 |
|---|---|---|---|
clearable | Boolean | 是否可清除 | false |
showArrow | Boolean | 展示清除按钮时是否展示右边箭头 | true |
spacer | string | 间隔符,calendarType为range时有效 | " 至 " |
formateShowValue(dateList) | function | calendarType为multiple时有效, dateList选中的日期列表 | 选择了 ${dates.length} 个日期 |
format | String | 自定义显示格式 | "yyyy-MM-dd" |
valueFormat | String | 自定义显示格式 需为正常日期格式,默认为标准日期格式,timestamp 为时间戳 | 无 |
min-datev1.1.0 | String,Number,Date | 最小日期 | 当前日期 |
max-datev1.1.0 | String,Number,Date | 最大日期 | 当前日期的六个月后 |
defaultValv1.1.0 | string | 有modelValue没值时的缺省代替显示值,默认为null | null |
openDefaultValJudgev1.1.0 | boolean | 是否当项目不可选时才显示defaultVal | true |
事件
| 事件名称 | 说明 |
|---|---|
dictChange | 选中值时触发此事件,并返回选中的值 |

