>,
},
format: {
type: String,
@@ -112,13 +117,14 @@ export default defineComponent({
},
},
- emits: ['pick', 'select-range'],
+ emits: ['pick', 'select-range', 'set-picker-option'],
setup(props, ctx) {
const minDate = computed(() => props.parsedValue[0])
const maxDate = computed(() => props.parsedValue[1])
+ const oldValue = ref(props.parsedValue)
const handleCancel = () =>{
- ctx.emit('pick', null, null, true)
+ ctx.emit('pick', oldValue.value, null)
}
const showSeconds = computed(() => {
return props.format.includes('ss')
@@ -290,31 +296,33 @@ export default defineComponent({
return value.format(props.format)
}
- const pickerBase = inject('EP_PICKER_BASE') as any
- pickerBase.hub.emit('SetPickerOption',['formatToString', formatToString])
- pickerBase.hub.emit('SetPickerOption',['parseUserInput', parseUserInput])
- pickerBase.hub.emit('SetPickerOption',['isValidValue', isValidValue])
- pickerBase.hub.emit('SetPickerOption',['handleKeydown', handleKeydown])
- pickerBase.hub.emit('SetPickerOption',['getRangeAvaliableTime', getRangeAvaliableTime])
+ const getDefaultValue = () => {
+ if (Array.isArray(defaultValue)) {
+ return defaultValue.map(_=> dayjs(_))
+ }
+ return [
+ dayjs(defaultValue),
+ dayjs(defaultValue).add(60,'m'),
+ ]
+ }
+
+ ctx.emit('set-picker-option',['formatToString', formatToString])
+ ctx.emit('set-picker-option',['parseUserInput', parseUserInput])
+ ctx.emit('set-picker-option',['isValidValue', isValidValue])
+ ctx.emit('set-picker-option',['handleKeydown', handleKeydown])
+ ctx.emit('set-picker-option',['getDefaultValue', getDefaultValue])
+ ctx.emit('set-picker-option',['getRangeAvaliableTime', getRangeAvaliableTime])
const timePickeOptions = {} as any
- const pickerHub = mitt()
- pickerHub.on('SetOption', e => {
+ const onSetOption = e => {
timePickeOptions[e[0]] = e[1]
- })
+ }
- const { disabledHours, disabledMinutes, disabledSeconds } = pickerBase.props
-
- provide('EP_TIMEPICK_PANEL', {
- hub: pickerHub,
- methods: {
- disabledHours: disabledHours_,
- disabledMinutes: disabledMinutes_,
- disabledSeconds: disabledSeconds_,
- },
- })
+ const pickerBase = inject('EP_PICKER_BASE') as any
+ const { disabledHours, disabledMinutes, disabledSeconds, defaultValue } = pickerBase.props
return {
+ onSetOption,
setMaxSelectionRange,
setMinSelectionRange,
btnConfirmDisabled,
@@ -329,6 +337,9 @@ export default defineComponent({
handleMaxChange,
minSelectableRange,
maxSelectableRange,
+ disabledHours_,
+ disabledMinutes_,
+ disabledSeconds_,
}
},
})
diff --git a/packages/utils/aria.ts b/packages/utils/aria.ts
index 8ceaa3fe74..4fc62e3ce9 100644
--- a/packages/utils/aria.ts
+++ b/packages/utils/aria.ts
@@ -2,10 +2,10 @@ export const EVENT_CODE = {
tab: 'Tab',
enter: 'Enter',
space: 'Space',
- left: 'ArrowLeft',
- up: 'ArrowUp',
- right: 'ArrowRight',
- down: 'ArrowDown',
+ left: 'ArrowLeft', // 37
+ up: 'ArrowUp', // 38
+ right: 'ArrowRight', // 39
+ down: 'ArrowDown', // 40
esc: 'Escape',
delete: 'Delete',
backspace: 'Backspace',
diff --git a/website/docs/en-US/date-picker.md b/website/docs/en-US/date-picker.md
index 128ad46d0f..2440217697 100644
--- a/website/docs/en-US/date-picker.md
+++ b/website/docs/en-US/date-picker.md
@@ -25,7 +25,9 @@ Basic date picker measured by 'day'.
v-model="value2"
type="date"
placeholder="Pick a day"
- :picker-options="pickerOptions">
+ :disabled-date="disabledDate"
+ :shortcuts="shortcuts"
+ >
@@ -34,31 +36,27 @@ Basic date picker measured by 'day'.
export default {
data() {
return {
- pickerOptions: {
- disabledDate(time) {
- return time.getTime() > Date.now();
- },
- shortcuts: [{
- text: 'Today',
- onClick(picker) {
- picker.$emit('pick', new Date());
- }
- }, {
- text: 'Yesterday',
- onClick(picker) {
- const date = new Date();
- date.setTime(date.getTime() - 3600 * 1000 * 24);
- picker.emit('pick', date);
- }
- }, {
- text: 'A week ago',
- onClick(picker) {
- const date = new Date();
- date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
- picker.emit('pick', date);
- }
- }]
+ disabledDate(time) {
+ return time.getTime() > Date.now()
},
+ shortcuts: [{
+ text: 'Today',
+ value: new Date(),
+ }, {
+ text: 'Yesterday',
+ value: (() => {
+ const date = new Date()
+ date.setTime(date.getTime() - 3600 * 1000 * 24)
+ return date
+ })(),
+ }, {
+ text: 'A week ago',
+ value: (() => {
+ const date = new Date()
+ date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
+ return date
+ })(),
+ }],
value1: '',
value2: '',
};
@@ -81,7 +79,7 @@ You can choose week, month, year or multiple dates by extending the standard dat
@@ -157,7 +155,8 @@ Picking a date range is supported.
range-separator="To"
start-placeholder="Start date"
end-placeholder="End date"
- :picker-options="pickerOptions">
+ :shortcuts="shortcuts"
+ >
@@ -166,33 +165,31 @@ Picking a date range is supported.
export default {
data() {
return {
- pickerOptions: {
- shortcuts: [{
- text: 'Last week',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
- picker.$emit('pick', [start, end]);
- }
- }, {
- text: 'Last month',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
- picker.$emit('pick', [start, end]);
- }
- }, {
- text: 'Last 3 months',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
- picker.$emit('pick', [start, end]);
- }
- }]
- },
+ shortcuts: [{
+ text: 'Last week',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+ return [start, end]
+ })(),
+ }, {
+ text: 'Last month',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+ return [start, end]
+ })(),
+ }, {
+ text: 'Last 3 months',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+ return [start, end]
+ })(),
+ }],
value1: '',
value2: ''
};
@@ -230,7 +227,8 @@ Picking a month range is supported.
range-separator="To"
start-placeholder="Start month"
end-placeholder="End month"
- :picker-options="pickerOptions">
+ :shortcuts="shortcuts"
+ >
@@ -239,29 +237,25 @@ Picking a month range is supported.
export default {
data() {
return {
- pickerOptions: {
- shortcuts: [{
- text: 'This month',
- onClick(picker) {
- picker.$emit('pick', [new Date(), new Date()]);
- }
- }, {
- text: 'This year',
- onClick(picker) {
- const end = new Date();
- const start = new Date(new Date().getFullYear(), 0);
- picker.$emit('pick', [start, end]);
- }
- }, {
- text: 'Last 6 months',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setMonth(start.getMonth() - 6);
- picker.$emit('pick', [start, end]);
- }
- }]
- },
+ shortcuts: [{
+ text: 'This month',
+ value: [new Date(), new Date()],
+ }, {
+ text: 'This year',
+ value: (() => {
+ const end = new Date()
+ const start = new Date(new Date().getFullYear(), 0)
+ return [start, end]
+ })(),
+ }, {
+ text: 'Last 6 months',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setMonth(start.getMonth() - 6)
+ return [start, end]
+ })(),
+ }],
value1: '',
value2: ''
};
@@ -286,7 +280,7 @@ If type is `daterange`, `default-value` sets the left side calendar.
v-model="value1"
type="date"
placeholder="Pick a date"
- default-value="2010-10-01">
+ :default-value="new Date(2010, 9, 1)">
@@ -297,7 +291,7 @@ If type is `daterange`, `default-value` sets the left side calendar.
align="right"
start-placeholder="Start Date"
end-placeholder="End Date"
- default-value="2010-10-01">
+ :default-value="[new Date(2010, 9, 1), new Date(2010, 10, 1)]">
@@ -358,29 +352,7 @@ Pay attention to capitalization
v-model="value1"
type="date"
placeholder="Pick a Date"
- format="yyyy/MM/dd">
-
-
-
-
Use value-format
-
Value: {{ value2 }}
-
-
-
-
-
Timestamp
-
Value:{{ value3 }}
-
+ format="YYYY/MM/DD">
@@ -413,7 +385,7 @@ When picking a date range, you can assign the time part for start date and end d
type="daterange"
start-placeholder="Start date"
end-placeholder="End date"
- :default-time="['00:00:00', '23:59:59']">
+ :default-time="[new Date(2000, 1, 1, 0 , 0,0), new Date(2000, 2, 1, 23 , 59,59)]">
diff --git a/website/docs/es/date-picker.md b/website/docs/es/date-picker.md
index f9195a0bd3..127e7132ed 100644
--- a/website/docs/es/date-picker.md
+++ b/website/docs/es/date-picker.md
@@ -26,7 +26,9 @@ Date Picker básico por "día".
v-model="value2"
type="date"
placeholder="Pick a day"
- :picker-options="pickerOptions">
+ :disabled-date="disabledDate"
+ :shortcuts="shortcuts"
+ >
@@ -35,31 +37,27 @@ Date Picker básico por "día".
export default {
data() {
return {
- pickerOptions: {
- disabledDate(time) {
- return time.getTime() > Date.now();
- },
- shortcuts: [{
- text: 'Today',
- onClick(picker) {
- picker.$emit('pick', new Date());
- }
- }, {
- text: 'Yesterday',
- onClick(picker) {
- const date = new Date();
- date.setTime(date.getTime() - 3600 * 1000 * 24);
- picker.emit('pick', date);
- }
- }, {
- text: 'A week ago',
- onClick(picker) {
- const date = new Date();
- date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
- picker.emit('pick', date);
- }
- }]
+ disabledDate(time) {
+ return time.getTime() > Date.now()
},
+ shortcuts: [{
+ text: 'Today',
+ value: new Date(),
+ }, {
+ text: 'Yesterday',
+ value: (() => {
+ const date = new Date()
+ date.setTime(date.getTime() - 3600 * 1000 * 24)
+ return date
+ })(),
+ }, {
+ text: 'A week ago',
+ value: (() => {
+ const date = new Date()
+ date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
+ return date
+ })(),
+ }],
value1: '',
value2: '',
};
@@ -83,7 +81,7 @@ Puede elegir la semana, el mes, el año o varias fechas ampliando el componente
@@ -159,7 +157,8 @@ Se soporta la selección de un rango de fechas.
range-separator="To"
start-placeholder="Start date"
end-placeholder="End date"
- :picker-options="pickerOptions">
+ :shortcuts="shortcuts"
+ >
@@ -168,33 +167,31 @@ Se soporta la selección de un rango de fechas.
export default {
data() {
return {
- pickerOptions: {
- shortcuts: [{
- text: 'Last week',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
- picker.$emit('pick', [start, end]);
- }
- }, {
- text: 'Last month',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
- picker.$emit('pick', [start, end]);
- }
- }, {
- text: 'Last 3 months',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
- picker.$emit('pick', [start, end]);
- }
- }]
- },
+ shortcuts: [{
+ text: 'Last week',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+ return [start, end]
+ })(),
+ }, {
+ text: 'Last month',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+ return [start, end]
+ })(),
+ }, {
+ text: 'Last 3 months',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+ return [start, end]
+ })(),
+ }],
value1: '',
value2: ''
};
@@ -232,7 +229,8 @@ Se admite la selección de un intervalo de un mes.
range-separator="To"
start-placeholder="Start month"
end-placeholder="End month"
- :picker-options="pickerOptions">
+ :shortcuts="shortcuts"
+ >
@@ -241,29 +239,25 @@ Se admite la selección de un intervalo de un mes.
export default {
data() {
return {
- pickerOptions: {
- shortcuts: [{
- text: 'This month',
- onClick(picker) {
- picker.$emit('pick', [new Date(), new Date()]);
- }
- }, {
- text: 'This year',
- onClick(picker) {
- const end = new Date();
- const start = new Date(new Date().getFullYear(), 0);
- picker.$emit('pick', [start, end]);
- }
- }, {
- text: 'Last 6 months',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setMonth(start.getMonth() - 6);
- picker.$emit('pick', [start, end]);
- }
- }]
- },
+ shortcuts: [{
+ text: 'This month',
+ value: [new Date(), new Date()],
+ }, {
+ text: 'This year',
+ value: (() => {
+ const end = new Date()
+ const start = new Date(new Date().getFullYear(), 0)
+ return [start, end]
+ })(),
+ }, {
+ text: 'Last 6 months',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setMonth(start.getMonth() - 6)
+ return [start, end]
+ })(),
+ }],
value1: '',
value2: ''
};
@@ -288,7 +282,7 @@ Si el tipo es `daterange`, `default-value` establece el calendario del lado izqu
v-model="value1"
type="date"
placeholder="Pick a date"
- default-value="2010-10-01">
+ :default-value="new Date(2010, 9, 1)">
@@ -299,7 +293,7 @@ Si el tipo es `daterange`, `default-value` establece el calendario del lado izqu
align="right"
start-placeholder="Start Date"
end-placeholder="End Date"
- default-value="2010-10-01">
+ :default-value="[new Date(2010, 9, 1), new Date(2010, 10, 1)]">
@@ -358,29 +352,7 @@ Preste atención a la capitalización
v-model="value1"
type="date"
placeholder="Pick a Date"
- format="yyyy/MM/dd">
-
-
-
-
Use value-format
-
Value: {{ value2 }}
-
-
-
-
-
Timestamp
-
Value:{{ value3 }}
-
+ format="YYYY/MM/DD">
@@ -414,7 +386,7 @@ Al seleccionar un intervalo de fechas, puede asignar la hora para la fecha de in
type="daterange"
start-placeholder="Start date"
end-placeholder="End date"
- :default-time="['00:00:00', '23:59:59']">
+ :default-time="[new Date(2000, 1, 1, 0 , 0,0), new Date(2000, 2, 1, 23 , 59,59)]">
diff --git a/website/docs/fr-FR/date-picker.md b/website/docs/fr-FR/date-picker.md
index faf8e6017c..38e68c67cd 100644
--- a/website/docs/fr-FR/date-picker.md
+++ b/website/docs/fr-FR/date-picker.md
@@ -24,7 +24,9 @@ L'unité de base du DatePicker est le jour.
v-model="value2"
type="date"
placeholder="Choississez un jour"
- :picker-options="pickerOptions">
+ :disabled-date="disabledDate"
+ :shortcuts="shortcuts"
+ >
@@ -33,31 +35,27 @@ L'unité de base du DatePicker est le jour.
export default {
data() {
return {
- pickerOptions: {
- disabledDate(time) {
- return time.getTime() > Date.now();
- },
- shortcuts: [{
- text: 'Aujourd\'hui',
- onClick(picker) {
- picker.$emit('pick', new Date());
- }
- }, {
- text: 'Hier',
- onClick(picker) {
- const date = new Date();
- date.setTime(date.getTime() - 3600 * 1000 * 24);
- picker.emit('pick', date);
- }
- }, {
- text: 'Il y a une semaine',
- onClick(picker) {
- const date = new Date();
- date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
- picker.emit('pick', date);
- }
- }]
+ disabledDate(time) {
+ return time.getTime() > Date.now()
},
+ shortcuts: [{
+ text: 'Today',
+ value: new Date(),
+ }, {
+ text: 'Yesterday',
+ value: (() => {
+ const date = new Date()
+ date.setTime(date.getTime() - 3600 * 1000 * 24)
+ return date
+ })(),
+ }, {
+ text: 'A week ago',
+ value: (() => {
+ const date = new Date()
+ date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
+ return date
+ })(),
+ }],
value1: '',
value2: '',
};
@@ -80,7 +78,7 @@ Vous pouvez sélectionner une semaine, un mois, une année ou plusieurs dates en
@@ -156,7 +154,8 @@ Vous pouvez sélectionner une plage de dates.
range-separator="à"
start-placeholder="Date de début"
end-placeholder="Date de fin"
- :picker-options="pickerOptions">
+ :shortcuts="shortcuts"
+ >
@@ -165,33 +164,31 @@ Vous pouvez sélectionner une plage de dates.
export default {
data() {
return {
- pickerOptions: {
- shortcuts: [{
- text: 'Semaine dernière',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
- picker.$emit('pick', [start, end]);
- }
- }, {
- text: 'Mois dernier',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
- picker.$emit('pick', [start, end]);
- }
- }, {
- text: 'Trois derniers mois',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
- picker.$emit('pick', [start, end]);
- }
- }]
- },
+ shortcuts: [{
+ text: 'Last week',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+ return [start, end]
+ })(),
+ }, {
+ text: 'Last month',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+ return [start, end]
+ })(),
+ }, {
+ text: 'Last 3 months',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+ return [start, end]
+ })(),
+ }],
value1: '',
value2: ''
};
@@ -229,7 +226,8 @@ Vous pouvez sélectionner une plage de mois.
range-separator="à"
start-placeholder="Mois de début"
end-placeholder="Mois de fin"
- :picker-options="pickerOptions">
+ :shortcuts="shortcuts"
+ >
@@ -238,29 +236,25 @@ Vous pouvez sélectionner une plage de mois.
export default {
data() {
return {
- pickerOptions: {
- shortcuts: [{
- text: 'Ce mois',
- onClick(picker) {
- picker.$emit('pick', [new Date(), new Date()]);
- }
- }, {
- text: 'Cette année',
- onClick(picker) {
- const end = new Date();
- const start = new Date(new Date().getFullYear(), 0);
- picker.$emit('pick', [start, end]);
- }
- }, {
- text: 'Les derniers 6 mois',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setMonth(start.getMonth() - 6);
- picker.$emit('pick', [start, end]);
- }
- }]
- },
+ shortcuts: [{
+ text: 'This month',
+ value: [new Date(), new Date()],
+ }, {
+ text: 'This year',
+ value: (() => {
+ const end = new Date()
+ const start = new Date(new Date().getFullYear(), 0)
+ return [start, end]
+ })(),
+ }, {
+ text: 'Last 6 months',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setMonth(start.getMonth() - 6)
+ return [start, end]
+ })(),
+ }],
value1: '',
value2: ''
};
@@ -285,7 +279,7 @@ Si le type est `daterange`, `default-value` configure la panneau de gauche.
v-model="value1"
type="date"
placeholder="Sélectionnez une date"
- default-value="2010-10-01">
+ :default-value="new Date(2010, 9, 1)">
@@ -296,7 +290,7 @@ Si le type est `daterange`, `default-value` configure la panneau de gauche.
align="right"
start-placeholder="Date de début"
end-placeholder="Date de fin"
- default-value="2010-10-01">
+ :default-value="[new Date(2010, 9, 1), new Date(2010, 10, 1)]">
@@ -358,29 +352,7 @@ Attention à la capitalisation !
v-model="value1"
type="date"
placeholder="Sélectionnez une date"
- format="yyyy/MM/dd">
-
-
-
-
Utilise value-format
-
Value: {{ value2 }}
-
-
-
-
-
Timestamp
-
Value:{{ value3 }}
-
+ format="YYYY/MM/DD">
@@ -413,7 +385,7 @@ Lorsque vous choisissez une plage de dates, vous pouvez assigner l'horaire de d
type="daterange"
start-placeholder="Date de début"
end-placeholder="Date de fin"
- :default-time="['00:00:00', '23:59:59']">
+ :default-time="[new Date(2000, 1, 1, 0 , 0,0), new Date(2000, 2, 1, 23 , 59,59)]">
diff --git a/website/docs/zh-CN/date-picker.md b/website/docs/zh-CN/date-picker.md
index 8d458e5246..49ce4a9b6e 100644
--- a/website/docs/zh-CN/date-picker.md
+++ b/website/docs/zh-CN/date-picker.md
@@ -25,7 +25,9 @@
align="right"
type="date"
placeholder="选择日期"
- :picker-options="pickerOptions">
+ :disabled-date="disabledDate"
+ :shortcuts="shortcuts"
+ >
@@ -34,31 +36,27 @@
export default {
data() {
return {
- pickerOptions: {
- disabledDate(time) {
- return time.getTime() > Date.now();
- },
- shortcuts: [{
- text: '今天',
- onClick(picker) {
- picker.$emit('pick', new Date());
- }
- }, {
- text: '昨天',
- onClick(picker) {
- const date = new Date();
- date.setTime(date.getTime() - 3600 * 1000 * 24);
- picker.emit('pick', date);
- }
- }, {
- text: '一周前',
- onClick(picker) {
- const date = new Date();
- date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
- picker.emit('pick', date);
- }
- }]
+ disabledDate(time) {
+ return time.getTime() > Date.now()
},
+ shortcuts: [{
+ text: 'Today',
+ value: new Date(),
+ }, {
+ text: 'Yesterday',
+ value: (() => {
+ const date = new Date()
+ date.setTime(date.getTime() - 3600 * 1000 * 24)
+ return date
+ })(),
+ }, {
+ text: 'A week ago',
+ value: (() => {
+ const date = new Date()
+ date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
+ return date
+ })(),
+ }],
value1: '',
value2: '',
};
@@ -80,7 +78,7 @@
@@ -154,7 +152,8 @@
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
- :picker-options="pickerOptions">
+ :shortcuts="shortcuts"
+ >
@@ -163,33 +162,31 @@
export default {
data() {
return {
- pickerOptions: {
- shortcuts: [{
- text: '最近一周',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
- picker.$emit('pick', [start, end]);
- }
- }, {
- text: '最近一个月',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
- picker.$emit('pick', [start, end]);
- }
- }, {
- text: '最近三个月',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
- picker.$emit('pick', [start, end]);
- }
- }]
- },
+ shortcuts: [{
+ text: '最近一周',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+ return [start, end]
+ })(),
+ }, {
+ text: '最近一个月',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+ return [start, end]
+ })(),
+ }, {
+ text: '最近三个月',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+ return [start, end]
+ })(),
+ }],
value1: '',
value2: ''
};
@@ -227,7 +224,8 @@
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份"
- :picker-options="pickerOptions">
+ :shortcuts="shortcuts"
+ >
@@ -236,29 +234,25 @@
export default {
data() {
return {
- pickerOptions: {
- shortcuts: [{
- text: '本月',
- onClick(picker) {
- picker.$emit('pick', [new Date(), new Date()]);
- }
- }, {
- text: '今年至今',
- onClick(picker) {
- const end = new Date();
- const start = new Date(new Date().getFullYear(), 0);
- picker.$emit('pick', [start, end]);
- }
- }, {
- text: '最近六个月',
- onClick(picker) {
- const end = new Date();
- const start = new Date();
- start.setMonth(start.getMonth() - 6);
- picker.$emit('pick', [start, end]);
- }
- }]
- },
+ shortcuts: [{
+ text: '本月',
+ value: [new Date(), new Date()],
+ }, {
+ text: '今年至今',
+ value: (() => {
+ const end = new Date()
+ const start = new Date(new Date().getFullYear(), 0)
+ return [start, end]
+ })(),
+ }, {
+ text: '最近六个月',
+ value: (() => {
+ const end = new Date()
+ const start = new Date()
+ start.setMonth(start.getMonth() - 6)
+ return [start, end]
+ })(),
+ }],
value1: '',
value2: ''
};
@@ -268,6 +262,49 @@
```
:::
+### Default Value (需要翻译)
+
+If user hasn't picked a date, shows today's calendar by default. You can use `default-value` to set another date. Its value should be parsable by `new Date()`.
+
+If type is `daterange`, `default-value` sets the left side calendar.
+
+:::demo
+```html
+
+
+ date
+
+
+
+
+ daterange
+
+
+
+
+
+
+```
+:::
### 日期格式
@@ -311,29 +348,7 @@
v-model="value1"
type="date"
placeholder="选择日期"
- format="yyyy 年 MM 月 dd 日">
-
-
-
-
使用 value-format
-
值:{{ value2 }}
-
-
-
-
-
时间戳
-
值:{{ value3 }}
-
+ format="YYYY 年 MM 月 DD 日">
@@ -366,7 +381,7 @@
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
- :default-time="['00:00:00', '23:59:59']">
+ :default-time="[new Date(2000, 1, 1, 0 , 0,0), new Date(2000, 2, 1, 23 , 59,59)]">
diff --git a/website/play/index.vue b/website/play/index.vue
deleted file mode 100644
index 243f8ae15c..0000000000
--- a/website/play/index.vue
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- change me
-
-
-
-
-