diff --git a/packages/ui-vue/components/date-picker/src/components/date-picker-container/date-picker-container.component.tsx b/packages/ui-vue/components/date-picker/src/components/date-picker-container/date-picker-container.component.tsx index 2de34d57fe0f4b8a9af4a38b76bbe6ad7cdc473f..b9015c69dc3313026dff2376efc1083eaa054a01 100644 --- a/packages/ui-vue/components/date-picker/src/components/date-picker-container/date-picker-container.component.tsx +++ b/packages/ui-vue/components/date-picker/src/components/date-picker-container/date-picker-container.component.tsx @@ -909,31 +909,43 @@ export default defineComponent({ function onMouseLeaveYearView($event: any, isSecondCalendar: boolean) { } - function onConfirm() { - // 区间 - if (enablePeriod.value && selectedPeriod.value) { - const isBeginEmptyDate = !isInitializedDate(selectedPeriod.value.from); - const isEndEmptyDate = !isInitializedDate(selectedPeriod.value.to); + const updateRangeDate = () => { + const { from, to } = selectedPeriod.value; - if (isBeginEmptyDate || isEndEmptyDate) { - const now = new Date(); - if (isBeginEmptyDate) { - selectedPeriod.value.from = { year: now.getFullYear(), month: now.getMonth() + 1, day: now.getDate() }; - } + const isBeginEmptyDate = !isInitializedDate(from); + const isEndEmptyDate = !isInitializedDate(to); - selectedPeriod.value.to = { ...selectedPeriod.value.from }; - } + let begin = {...from}; + let end = {...to}; - if (props.showTime) { - const { hour, minute, second } = getTimeValue(timeValue.value, true); - selectedPeriod.value.from = { ...selectedPeriod.value.from, ...{ hour, minute, second } }; - const { hour: endHour, minute: endMinute, second: endSecond } = getEndTimeValue(timeRangeValue.value); - selectedPeriod.value.to = { ...selectedPeriod.value.to, ...{ hour: endHour, minute: endMinute, second: endSecond } }; + if (isBeginEmptyDate || isEndEmptyDate) { + const now = new Date(); + if (isBeginEmptyDate) { + begin = { year: now.getFullYear(), month: now.getMonth() + 1, day: now.getDate() }; } - const { from, to } = selectedPeriod.value; - context.emit('datePicked', { startDate: from, endDate: to }); + + end = { ...begin }; + } + + if (props.showTime) { + const { hour, minute, second } = getTimeValue(timeValue.value, true); + begin = { ...begin, ...{ hour, minute, second } }; + + const { hour: endHour, minute: endMinute, second: endSecond } = getEndTimeValue(timeRangeValue.value); + end = { ...end, ...{ hour: endHour, minute: endMinute, second: endSecond } }; + } + + return { begin, end }; + }; + + function onConfirm() { + // 区间 + if (enablePeriod.value && selectedPeriod.value) { + const { begin, end } = updateRangeDate(); + selectedPeriod.value= { from: begin, to: end }; + context.emit('datePicked', { startDate: begin, endDate: end }); } else { if (props.showTime) { const { hour, minute, second } = getTimeValue(timeValue.value, true); @@ -1176,15 +1188,16 @@ export default defineComponent({ const canConfirm = computed(() => { if (enablePeriod.value) { - // if (props.showTime) { - // const { from: begin, to: end } = selectedPeriod.value; - // const canClick = equalOrEarlier(begin, end); - // return { - // "pointer-events": canClick ? "auto" : "none", - // opacity: canClick ? 1 : 0.3, - // }; - // } - return true; + if (props.showTime) { + const { begin, end } = updateRangeDate(); + const canClick = equalOrEarlier(begin, end); + + return { + "pointer-events": canClick ? "auto" : "none", + opacity: canClick ? 1 : 0.3, + }; + } + // return true; } else { const { hour, minute, second } = getTimeValue(timeValue.value, true); const currentDateValue = { ...selectedDate.value, ...{ hour, minute, second } }; diff --git a/packages/ui-vue/components/date-picker/src/composition/use-date.ts b/packages/ui-vue/components/date-picker/src/composition/use-date.ts index bd684a34b67ee0ff2ae8eb0604df33a5f798f9f3..f1e672e5a19de9ebca855f85371c5f8c137fc842 100644 --- a/packages/ui-vue/components/date-picker/src/composition/use-date.ts +++ b/packages/ui-vue/components/date-picker/src/composition/use-date.ts @@ -205,9 +205,9 @@ export function useDate(): UseDate { const timeArr = timeValue.replace('时', ':').replace('分', ':').replace('秒', '').split(':'); if (timeArr.length >= 2) { return { - hour: timeArr[0], - minute: timeArr[1], - second: timeArr[2] ? timeArr[2] : 0 + hour: parseInt(timeArr[0], 10), + minute: parseInt(timeArr[1]), + second: parseInt(timeArr[2] || '0') || 0 }; } } else { diff --git a/packages/ui-vue/components/dynamic-form/src/component/dynamic-form-group/dynamic-form-group.component.tsx b/packages/ui-vue/components/dynamic-form/src/component/dynamic-form-group/dynamic-form-group.component.tsx index d6f928626e2828419da674c9c4adb90d4bd15e34..4e7d2d2e61981161546a745b72e2fef6fe488312 100644 --- a/packages/ui-vue/components/dynamic-form/src/component/dynamic-form-group/dynamic-form-group.component.tsx +++ b/packages/ui-vue/components/dynamic-form/src/component/dynamic-form-group/dynamic-form-group.component.tsx @@ -77,6 +77,7 @@ export default defineComponent({ } } else if (editorType === 'lookup' && editor.value['onUpdate:idValue'] && typeof editor.value['onUpdate:idValue'] === 'function') { editorProps['onUpdate:idValue'] = editor.value['onUpdate:idValue']; + editorProps.id = id.value; } else if (editorType === 'collection-property-editor' && editor.value['onSelectionChange'] && typeof editor.value['onSelectionChange'] === 'function') { editorProps['onSelectionChange'] = editor.value['onSelectionChange']; } else if (editorType === 'property-editor') { diff --git a/packages/ui-vue/components/modal/src/modal.component.tsx b/packages/ui-vue/components/modal/src/modal.component.tsx index 7a65d0a351fb2c713ae1d7eb50a56701dd3bea46..9c1941f55fd5381cf32066972101d94254b49615 100644 --- a/packages/ui-vue/components/modal/src/modal.component.tsx +++ b/packages/ui-vue/components/modal/src/modal.component.tsx @@ -144,6 +144,9 @@ export default defineComponent({ if (modelValue.value) { hasModal.value = hasOpenModal(); + } else { + maximized.value = false; + allowDrag.value = props.draggable; } }); // 监听是否展示标题变化