UNPKG

sard-uniapp

Version:

sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库

111 lines (73 loc) 5.54 kB
--- title: CalendarPopout subtitle: 日历弹出框 group: 表单组件 version: 1.16+ --- ## 介绍 组合了日历、弹出框组件,实现了便捷快速的日历选择功能。 ## 引入 ```js import CalendarPopout from 'sard-uniapp/components/calendar-popout/calendar-popout.vue' ``` ## 代码演示 ### 基础使用 使用 `v-model` 双向绑定当前值,使用 `v-model:visible` 控制弹出框显隐。 <<< @demo/calendar-popout/demo/Basic.vue ### 类型 日历组件可以选择单个值、多个值以及进行范围选择。 <<< @demo/calendar-popout/demo/Type.vue ### 自定义日期范围 可以使用 `min` 和 `max` 属性限制可以选择的日期的范围。 <<< @demo/calendar-popout/demo/MinMax.vue ### 最多选择天数 在多个值和范围选择中,使用 `maxDays` 属性可以限制最多可选的天数。 超出允许选择的天数后会调用 `overMaxDays` 属性配置的函数。 <<< @demo/calendar-popout/demo/MaxDays.vue ### 禁用日期 `disabledDate` 属性配置的函数接收一个日期对象,如果此函数返回真则禁用这个日期。 <<< @demo/calendar-popout/demo/DisabledDate.vue ### 自定义起始周 默认一周从星期天开始,使用 `weekStartsOn` 属性可以配置一周从任意星期开始。 0 表示从周日开始,1 表示从周一开始。 <<< @demo/calendar-popout/demo/WeekStartsOn.vue ### 格式化日期 `formatter` 属性可以配置一个接收 `CalendarDay` 类型的对象,通过此对象可以自定义当前日期展示的内容和样式。 <<< @demo/calendar-popout/demo/Formatter.vue ### 展示多个月 默认只展示一个月,如果要表现上下月之间的强关联性,可以设置 `severalMonths` 属性以展示多个月。 这时设置的最大最小值范围不能太大,避免渲染大量节点造成性能问题。 <<< @demo/calendar-popout/demo/Several.vue ## API ### CalendarPopoutProps 继承 [`CalendarProps`](./calendar#CalendarProps) 并有以下额外属性: | 属性 | 描述 | 类型 | 默认值 | | ----------------------------- | ---------------------------------------- | ---------- | ------ | | popout-class | 弹窗框根元素类名 | string | - | | popout-style | 弹窗框根元素样式 | StyleValue | - | | visible (v-model) | 是否显示弹出框 | boolean | - | | title | 弹出框标题 | string | - | | show-confirm | 是否显示确定按钮,隐藏按钮可用于快捷选择 | boolean | true | | validate-event | 是否触发表单验证 | boolean | true | | resettable <sup>1.23.3+</sup> | 关闭弹出框后,是否可复位弹出框值 | boolean | false | ### CalendarPopoutSlots | 插槽 | 描述 | 属性 | | -------------------------------- | ------------------ | ---- | | title <sup>1.19.2+</sup> | 自定义标题 | - | | title-prepend <sup>1.19.2+</sup> | 自定义标题前面内容 | - | ### CalendarPopoutEmits | 事件 | 描述 | 类型 | | ---------------------------------- | --------------------------- | -------------------------------------------------------------------- | | update:model-value | 日历组件值改变时触发 | `(value: Date \| Date[] \| string \| string[] \| undefined) => void` | | change | 日历组件值改变时触发 | `(value: Date \| Date[] \| string \| string[] \| undefined) => void` | | update:visible | 弹出框显隐时触发 | `(visible: boolean) => void` | | confirm <sup>1.22.1+</sup> | 点击确定按钮时触发 | `() => void` | | visible-hook <sup>1.22.1+</sup> | 入场/退场动画状态改变时触发 | `(name: TransitionHookName) => void` | | before-enter <sup>1.22.1+</sup> | 入场动画开始前触发 | `() => void` | | enter <sup>1.22.1+</sup> | 入场动画开始时触发 | `() => void` | | after-enter <sup>1.22.1+</sup> | 入场动画结束时触发 | `() => void` | | enter-cancelled <sup>1.22.1+</sup> | 入场动画取消时触发 | `() => void` | | before-leave <sup>1.22.1+</sup> | 退场动画开始前触发 | `() => void` | | leave <sup>1.22.1+</sup> | 退场动画开始时触发 | `() => void` | | after-leave <sup>1.22.1+</sup> | 退场动画结束时触发 | `() => void` | | leave-cancelled <sup>1.22.1+</sup> | 退场动画取消时触发 | `() => void` |