refactor: calendar

pull/4499/head
tangjinzhou 2021-08-09 10:07:36 +08:00
parent c69495a5ea
commit 95acde2856
3 changed files with 14 additions and 7 deletions

View File

@ -39,7 +39,6 @@ function YearSelect<DateType>(props: SharedProps<DateType>) {
for (let index = start; index < end; index++) { for (let index = start; index < end; index++) {
options.push({ label: `${index}${suffix}`, value: index }); options.push({ label: `${index}${suffix}`, value: index });
} }
return ( return (
<Select <Select
size={fullscreen ? undefined : 'small'} size={fullscreen ? undefined : 'small'}

View File

@ -130,7 +130,7 @@ function generateCalendar<DateType>(generateConfig: GenerateConfig<DateType>) {
value: toRef(props, 'mode'), value: toRef(props, 'mode'),
}); });
const panelMode = computed(() => (mergedValue.value === 'year' ? 'month' : 'date')); const panelMode = computed(() => (mergedMode.value === 'year' ? 'month' : 'date'));
const mergedDisabledDate = computed(() => { const mergedDisabledDate = computed(() => {
return (date: DateType) => { return (date: DateType) => {
@ -158,7 +158,7 @@ function generateCalendar<DateType>(generateConfig: GenerateConfig<DateType>) {
) { ) {
triggerPanelChange(date, mergedMode.value); triggerPanelChange(date, mergedMode.value);
} }
emit('update:value', date);
emit('change', date); emit('change', date);
} }
}; };
@ -204,7 +204,6 @@ function generateCalendar<DateType>(generateConfig: GenerateConfig<DateType>) {
if (dateFullCellRender) { if (dateFullCellRender) {
return dateFullCellRender({ current: date }); return dateFullCellRender({ current: date });
} }
return ( return (
<div <div
class={classNames( class={classNames(
@ -251,7 +250,6 @@ function generateCalendar<DateType>(generateConfig: GenerateConfig<DateType>) {
</div> </div>
); );
}; };
return ( return (
<div <div
{...attrs} {...attrs}

View File

@ -214,7 +214,7 @@ function PickerPanel<DateType>() {
const now = generateConfig.getNow(); const now = generateConfig.getNow();
if (!date) return now; if (!date) return now;
// When value is null and set showTime // When value is null and set showTime
if (!mergedValue && props.showTime) { if (!mergedValue.value && props.showTime) {
if (typeof showTime === 'object') { if (typeof showTime === 'object') {
return setDateTime(generateConfig, date, showTime.defaultValue || now); return setDateTime(generateConfig, date, showTime.defaultValue || now);
} }
@ -388,6 +388,16 @@ function PickerPanel<DateType>() {
hidePrevBtn: computed(() => inRange.value && panelPosition.value === 'right'), hidePrevBtn: computed(() => inRange.value && panelPosition.value === 'right'),
hideNextBtn: computed(() => inRange.value && panelPosition.value === 'left'), hideNextBtn: computed(() => inRange.value && panelPosition.value === 'left'),
}); });
watch(
() => props.value,
() => {
if (props.value) {
setInnerViewDate(props.value);
}
},
);
return () => { return () => {
const { const {
prefixCls = 'ant-picker', prefixCls = 'ant-picker',
@ -545,7 +555,7 @@ function PickerPanel<DateType>() {
showNow, showNow,
onNow: needConfirmButton.value && onNow, onNow: needConfirmButton.value && onNow,
onOk: () => { onOk: () => {
if (mergedValue) { if (mergedValue.value) {
triggerSelect(mergedValue.value, 'submit', true); triggerSelect(mergedValue.value, 'submit', true);
if (onOk) { if (onOk) {
onOk(mergedValue.value); onOk(mergedValue.value);