From 2face7394bf05a48fd9c492c71fecd52e05e6938 Mon Sep 17 00:00:00 2001
From: t8y2 <1156263951@qq.com>
Date: Sun, 31 May 2026 13:50:30 +0800
Subject: [PATCH] fix(grid): commit temporal input before enter submit
---
.../src/components/grid/TemporalCellEditor.vue | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/apps/desktop/src/components/grid/TemporalCellEditor.vue b/apps/desktop/src/components/grid/TemporalCellEditor.vue
index c10fb4e0a7..e69320815c 100644
--- a/apps/desktop/src/components/grid/TemporalCellEditor.vue
+++ b/apps/desktop/src/components/grid/TemporalCellEditor.vue
@@ -110,6 +110,16 @@ function stepTime(part: "hour" | "minute" | "second", delta: number) {
updateTime(part, (current + delta + max + 1) % (max + 1));
}
+function flushInputValue(target: EventTarget | null) {
+ if (!(target instanceof HTMLInputElement)) return;
+ const part = target.dataset.temporalPart;
+ if (part === "year" || part === "month" || part === "day") {
+ updateDate(part, target.value);
+ } else if (part === "hour" || part === "minute" || part === "second") {
+ updateTime(part, target.value);
+ }
+}
+
function setNull() {
setModelValue("NULL");
}
@@ -144,6 +154,7 @@ function finishCancel() {
function onKeydown(event: KeyboardEvent) {
if (event.key === "Enter") {
event.preventDefault();
+ flushInputValue(event.target);
finishCommit();
} else if (event.key === "Escape") {
event.preventDefault();
@@ -208,6 +219,7 @@ function twoDigit(value: string | number): string {
>