From 16724074c05fa4923f330ddf4c0b4a7d270d372a Mon Sep 17 00:00:00 2001 From: zipg Date: Mon, 13 Jul 2026 17:16:38 +0800 Subject: [PATCH] feat(grid): improve cell detail panel --- apps/desktop/src/components/grid/DataGrid.vue | 90 +++++++++++++------ apps/desktop/src/i18n/locales/en.ts | 2 + apps/desktop/src/i18n/locales/es.ts | 2 + apps/desktop/src/i18n/locales/it.ts | 2 + apps/desktop/src/i18n/locales/ja.ts | 2 + apps/desktop/src/i18n/locales/pt-BR.ts | 2 + apps/desktop/src/i18n/locales/zh-CN.ts | 2 + apps/desktop/src/i18n/locales/zh-TW.ts | 2 + .../stores/__tests__/settingsStore.spec.ts | 5 ++ apps/desktop/src/stores/settingsStore.ts | 4 + 10 files changed, 86 insertions(+), 27 deletions(-) diff --git a/apps/desktop/src/components/grid/DataGrid.vue b/apps/desktop/src/components/grid/DataGrid.vue index 65ad36d85d..38e3d52ead 100644 --- a/apps/desktop/src/components/grid/DataGrid.vue +++ b/apps/desktop/src/components/grid/DataGrid.vue @@ -4923,6 +4923,7 @@ const dialogCellDetail = computed(() => { }); const cellDetailJsonFormatted = computed(() => settingsStore.editorSettings.cellDetailJsonFormatted); +const cellDetailMetadataCollapsed = computed(() => settingsStore.editorSettings.cellDetailMetadataCollapsed); const sideDetailJsonView = computed(() => cellDetailJsonFormatted.value && !!activeCellDetail.value?.formattedJson); const cellDetailJsonView = computed(() => cellDetailJsonFormatted.value && !!dialogCellDetail.value?.formattedJson); @@ -5149,7 +5150,6 @@ const detailTemporalEditorConfig = computed(() => { const detail = activeCellDetail.value; return detail ? temporalEditorConfigForColumn(detail.colIndex) : undefined; }); -const sideDetailPrioritizesValue = computed(() => !cellDetailPanelIsBottom.value && !isEditingDetail.value && !!activeCellDetail.value?.formattedJson); const sideDetailValueFillsHeight = computed(() => cellDetailPanelIsBottom.value || isEditingDetail.value || (!cellDetailPanelIsBottom.value && !activeCellDetail.value?.imagePreviewUrl)); const sideJsonPreviewText = computed(() => { const detail = activeCellDetail.value; @@ -5354,6 +5354,10 @@ function toggleCellDetailJsonFormatted() { settingsStore.updateEditorSettings({ cellDetailJsonFormatted: !cellDetailJsonFormatted.value }); } +function toggleCellDetailMetadataCollapsed() { + settingsStore.updateEditorSettings({ cellDetailMetadataCollapsed: !cellDetailMetadataCollapsed.value }); +} + function startDetailEdit() { const detail = activeCellDetail.value; if (!detail || !detail.isEditable) return; @@ -10586,31 +10590,22 @@ const gridContextMenuItems = computed(() => { @contextmenu="onDrawerContextMenu" >
-
-
- - {{ t("grid.cellDetails") }} - - - - - -
- +
-
- +
+ + {{ t("grid.cellDetails") }} {{ t("grid.hexViewer") }} @@ -10619,11 +10614,29 @@ const gridContextMenuItems = computed(() => { {{ t("grid.valueEditor") }} +
+ + + + + +
-
+
{{ t("grid.columnName") }}
@@ -10655,7 +10668,7 @@ const gridContextMenuItems = computed(() => {
-