# CalendarInput 日历输入 v1.2.6
日历输入组件用于表单中,与输入框同步弹出选择日期或日期区间。
# 平台差异说明
App | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
√ | √ | √ | √ | √ | √ | √ |
提示
该组件在小程序中,因为层级问题,可能会被页面的pi-bottom-bar
布局覆盖,使用后请谨慎测试
# 示例
# 基础用法
可通过v-model | value
:控制日期
<template>
<pi-form slot="body" label-width="180" :model="form" border error-type="toast">
<pi-form-item required prop="name" label="基础用法">
<pi-calendar-input v-model="form.date" />
</pi-form-item>
</pi-form>
</template>
<script>
export default {
data() {
return {
form: { date: '' }
}
}
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 范围选择
可通过calendar: {calendarPanel: { type: 'range' } }
:控制日期范围选择
<template>
<pi-form slot="body" label-width="180" :model="form" border error-type="toast">
<pi-form-item required prop="name" label="范围选择">
<pi-calendar-input
v-model="form.range"
:calendar="{
calendarPanel: {
type: 'range'
}
}"
/>
</pi-form-item>
</pi-form>
</template>
<script>
export default {
data() {
return {
form: { range: ['2020-5-1', '2020-5-10'] }
}
}
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 自定义解析函数
可通过parse-value-fn
:控制日历输入框显示的值
<template>
<pi-form slot="body" label-width="180" :model="form" border error-type="toast">
<pi-form-item required prop="name" label="范围选择">
<pi-calendar-input
v-model="form.customRange"
:parse-value-fn="customParseValueFn"
:calendar="{
calendarPanel: {
type: 'range'
}
}"
/>
</pi-form-item>
</pi-form>
</template>
<script>
export default {
data() {
return {
form: { customRange: ['2020-5-1', '2020-5-10'] }
}
},
methods: {
customParseValueFn(dateRange) {
return `你选择了${dateRange.length}项日期`
}
}
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 自定义slot
可通过插槽,自定义显示内容
<template>
<pi-form slot="body" label-width="180" :model="form" border error-type="toast">
<pi-form-item required prop="name" label="范围选择">
<pi-calendar-input
v-model="form.customSlot"
:calendar="{
calendarPanel: {
type: 'range'
}
}"
>
<view class="pi-align-center pi-justify-end">
<view
v-for="item in form.customSlot"
:key="item"
class="pi-pd-12 pi-bg-primary pi-white pi-mg-left-12 pi-radius-8 pi-fz-24"
>
{{ item }}
</view>
</view>
</pi-calendar-input>
</pi-form-item>
</pi-form>
</template>
<script>
export default {
data() {
return {
form: { customSlot: ['2020-5-1', '2020-5-10'] }
}
}
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# API
# Props
名称 | 描述 | 类型 | 必选 | 默认值 |
---|---|---|---|---|
value | 日历组件默认值 | — | false | - |
customStyle | 自定义样式,对象形式 | Object | false | {} |
customClass | 自定义样式类,字符串形式 | String | false | '' |
dateFormat | 已选择的时间格式化显示规则 | String | true | 'YYYY-MM-DD' |
rangeSplit | 范围选择时间分隔符 | String | false | '至' |
parseValueFn | 解析值的方法,如果配置了,则读取该函数的返回值作为显示的内容 | Function | false | - |
input | 输入框的配置 | Object | false | input配置项 |
calendar | 日历弹窗的配置 | Object | false | calendar配置项 |
# Input Props
提示
以下属性覆盖pi-input
配置,其余属性参考input配置项
名称 | 描述 | 类型 | 必选 | 默认值 |
---|---|---|---|---|
placeholder | - | String | false | '请选择' |
disabled | - | Boolean | false | true |
# Slots
名称 | 说明 |
---|---|
default | 默认插槽 |
# Events
方法名称 | 说明 | 参数 |
---|---|---|
change | 输入框值发生变化 | value(String) |