Skip to content

Commit 15a98b4

Browse files
author
陈雪冬
committed
datePicker 添加默认渲染slot支持
1 parent 75dd9f6 commit 15a98b4

File tree

5 files changed

+67
-2
lines changed

5 files changed

+67
-2
lines changed

components/date-picker/RangePicker.jsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,7 @@ export default {
409409
openChange: this.handleOpenChange,
410410
},
411411
style: popupStyle,
412+
scopedSlots: $scopedSlots.default ? $scopedSlots : null,
412413
},
413414
);
414415
return (
@@ -422,7 +423,7 @@ export default {
422423
onMouseenter={this.onMouseEnter}
423424
onMouseleave={this.onMouseLeave}
424425
>
425-
<VcDatePicker {...vcDatePickerProps}>{input}</VcDatePicker>
426+
<VcDatePicker {...vcDatePickerProps}>{$scopedSlots.default ? '' : input}</VcDatePicker>
426427
</span>
427428
);
428429
},

components/date-picker/__tests__/__snapshots__/demo.test.js.snap

+6
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,12 @@ exports[`renders ./components/date-picker/demo/suffix.md correctly 1`] = `
7070
</svg></i></span></span> <br> <span class="ant-calendar-picker"><span class="" style="display: inline-block; width: 100%;"><input readonly="true" placeholder="Select week" class="ant-calendar-picker-input ant-input"><i class="anticon anticon-smile ant-calendar-picker-icon"><svg viewBox="64 64 896 896" data-icon="smile" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM664 533h-48.1c-4.2 0-7.8 3.2-8.1 7.4C604 589.9 562.5 629 512 629s-92.1-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 0 0-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 0 0-8-8.4z"></path></svg></i></span></span> <br> <span class="ant-calendar-picker"><div class=""><input readonly="true" placeholder="Select date" class="ant-calendar-picker-input ant-input"><span class="ant-calendar-picker-icon">ab</span></div></span> <br> <span class="ant-calendar-picker"><div class=""><input readonly="true" placeholder="Select month" class="ant-calendar-picker-input ant-input"><span class="ant-calendar-picker-icon">ab</span></div></span> <br> <span tabindex="0" class="ant-calendar-picker"><span class="ant-calendar-picker-input ant-input"><input readonly="true" placeholder="Start date" tabindex="-1" class="ant-calendar-range-picker-input"><span class="ant-calendar-range-picker-separator"> ~ </span><input readonly="true" placeholder="End date" tabindex="-1" class="ant-calendar-range-picker-input"><span class="ant-calendar-picker-icon">ab</span></span></span> <br> <span class="ant-calendar-picker"><span class="" style="display: inline-block; width: 100%;"><input readonly="true" placeholder="Select week" class="ant-calendar-picker-input ant-input"><span class="ant-calendar-picker-icon">ab</span></span></span></div>
7171
`;
7272
73+
exports[`renders ./components/date-picker/demo/text.md correctly 1`] = `
74+
<div><span class="ant-calendar-picker"><span class="">SelectTime</span></span> <br> <span tabindex="0" class="ant-calendar-picker"><span class="">
75+
请选择
76+
</span></span></div>
77+
`;
78+
7379
exports[`renders ./components/date-picker/demo/time.md correctly 1`] = `
7480
<div><span class="ant-calendar-picker" style="width: 195px;"><div class=""><input readonly="true" placeholder="Select Time" class="ant-calendar-picker-input ant-input"><i class="ant-calendar-picker-icon anticon anticon-calendar"><svg viewBox="64 64 896 896" data-icon="calendar" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z"></path></svg></i></div></span> <br> <span tabindex="0" class="ant-calendar-picker" style="width: 350px;"><span class="ant-calendar-picker-input ant-input"><input readonly="true" placeholder="Start Time" tabindex="-1" class="ant-calendar-range-picker-input"><span class="ant-calendar-range-picker-separator"> ~ </span><input readonly="true" placeholder="End Time" tabindex="-1" class="ant-calendar-range-picker-input"><i class="ant-calendar-picker-icon anticon anticon-calendar"><svg viewBox="64 64 896 896" data-icon="calendar" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class="">
7581
<path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z"></path>

components/date-picker/createPicker.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,7 @@ export default function createPicker(TheCalendar, props) {
244244
onOpenChange: this.handleOpenChange,
245245
},
246246
style: props.popupStyle,
247+
scopedSlots: $scopedSlots.default ? $scopedSlots : null,
247248
};
248249
return (
249250
<span
@@ -255,7 +256,7 @@ export default function createPicker(TheCalendar, props) {
255256
onMouseenter={this.onMouseEnter}
256257
onMouseleave={this.onMouseLeave}
257258
>
258-
<VcDatePicker {...vcDatePickerProps}>{input}</VcDatePicker>
259+
<VcDatePicker {...vcDatePickerProps}>{$scopedSlots.default ? '' : input}</VcDatePicker>
259260
</span>
260261
);
261262
},

components/date-picker/demo/index.vue

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Size from './size';
1111
import StartEnd from './start-end';
1212
import Time from './time';
1313
import Suffix from './suffix';
14+
import Text from './text';
1415
import CN from '../index.zh-CN.md';
1516
import US from '../index.en-US.md';
1617
const md = {
@@ -47,6 +48,7 @@ export default {
4748
<Size/>
4849
<StartEnd/>
4950
<Time/>
51+
<Text />
5052
<Suffix />
5153
<api>
5254
<CN slot='cn' />

components/date-picker/demo/text.md

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
2+
<cn>
3+
#### 自定义渲染
4+
增加选择时间功能,当 `showTime` 为一个对象时,其属性会传递给内建的 `TimePicker`
5+
</cn>
6+
7+
<us>
8+
#### Custum Time
9+
This property provide an additional time selection. When `showTime` is an Object, its properties will be passed on to built-in `TimePicker`.
10+
</us>
11+
12+
```html
13+
<template>
14+
<div>
15+
<a-date-picker
16+
placeholder="Select Time"
17+
v-model="time1"
18+
@change="onChange"
19+
@ok="onOk"
20+
>
21+
<span>{{time1?time1:'SelectTime'}}</span>
22+
</a-date-picker>
23+
<br />
24+
<a-range-picker v-model="time2">
25+
<span>
26+
{{time2?time2:'请选择'}}
27+
</span>
28+
</a-range-picker>
29+
</div>
30+
</template>
31+
<script>
32+
import moment from 'moment'
33+
export default {
34+
data(){
35+
return {
36+
time1:undefined,
37+
time2:undefined
38+
}
39+
},
40+
methods: {
41+
onChange(value, dateString) {
42+
console.log('Selected Time: ', value);
43+
console.log('Formatted Selected Time: ', dateString);
44+
},
45+
onOk(value) {
46+
console.log('onOk: ', value);
47+
},
48+
clearTime(){
49+
this.time1 = undefined
50+
}
51+
}
52+
}
53+
</script>
54+
```
55+

0 commit comments

Comments
 (0)