From 8825b6335fa1fd9976e6958d42ae4800342e4ae0 Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Thu, 16 Jul 2026 14:00:02 +0800 Subject: [PATCH] feat(grid): decompose data grid interaction surfaces --- apps/desktop/src/components/grid/DataGrid.vue | 4994 ++++------------- .../grid/DataGridBulkEditDialog.vue | 40 + .../grid/DataGridCellDetailDialog.vue | 200 + .../grid/DataGridCellDetailPanel.vue | 185 + .../components/grid/DataGridColumnHeader.vue | 104 + .../grid/DataGridConditionEditor.vue | 540 ++ .../components/grid/DataGridDetailDialogs.vue | 162 + .../components/grid/DataGridExportMenu.vue | 28 + .../components/grid/DataGridFilterBuilder.vue | 130 + .../grid/DataGridMongoJsonPreview.vue | 74 + .../components/grid/DataGridPagination.vue | 93 + .../components/grid/DataGridQueryControls.vue | 214 + .../src/components/grid/DataGridSearchBar.vue | 74 + .../src/components/grid/DataGridToolbar.vue | 255 + .../grid/__tests__/DataGridSurfaces.spec.ts | 299 + .../grid/__tests__/vueHostHarness.ts | 185 + .../__tests__/useDataGridAsyncSurface.spec.ts | 31 + .../__tests__/useDataGridAutoRefresh.spec.ts | 32 + .../useDataGridCanvasRuntime.spec.ts | 160 + .../__tests__/useDataGridColumnLayout.spec.ts | 141 + .../__tests__/useDataGridColumnResize.spec.ts | 4 +- .../useDataGridConditionEditor.spec.ts | 137 + .../useDataGridFilterBuilder.spec.ts | 37 + .../useDataGridResultLifecycle.spec.ts | 28 + .../__tests__/useDataGridSearch.spec.ts | 27 + .../__tests__/useDataGridSort.spec.ts | 27 + .../composables/useDataGridAsyncSurface.ts | 16 + .../src/composables/useDataGridAutoRefresh.ts | 51 + .../composables/useDataGridCanvasRuntime.ts | 116 + .../src/composables/useDataGridCellDetail.ts | 67 + .../composables/useDataGridColumnLayout.ts | 512 ++ .../composables/useDataGridConditionEditor.ts | 213 + .../composables/useDataGridFilterBuilder.ts | 93 + .../composables/useDataGridResultLifecycle.ts | 38 + .../src/composables/useDataGridScrollbars.ts | 126 + .../src/composables/useDataGridSearch.ts | 131 + .../src/composables/useDataGridSelection.ts | 5 +- .../src/composables/useDataGridSort.ts | 29 + .../dataGrid/dataGridClipboard.spec.ts | 25 +- .../dataGrid/dataGridContextMenu.spec.ts | 83 + .../dataGrid/dataGridEditAdapter.spec.ts | 18 + .../dataGridFilterBuilderPersistence.spec.ts | 24 + .../dataGrid/dataGridNavigation.spec.ts | 21 + .../dataGrid/dataGridRuntime.spec.ts | 46 + .../dataGrid/dataGridToolbar.spec.ts | 84 + .../src/lib/dataGrid/dataGridClipboard.ts | 17 + .../src/lib/dataGrid/dataGridContextMenu.ts | 216 + .../src/lib/dataGrid/dataGridEditAdapter.ts | 20 + .../dataGridFilterBuilderPersistence.ts | 39 + .../src/lib/dataGrid/dataGridNavigation.ts | 38 + .../src/lib/dataGrid/dataGridRuntime.ts | 84 + .../src/lib/dataGrid/dataGridToolbar.ts | 85 + package.json | 1 + .../app-tests/dataGridContextMenu.test.ts | 31 +- pnpm-lock.yaml | 65 +- vitest.config.ts | 2 + 56 files changed, 6446 insertions(+), 4051 deletions(-) create mode 100644 apps/desktop/src/components/grid/DataGridBulkEditDialog.vue create mode 100644 apps/desktop/src/components/grid/DataGridCellDetailDialog.vue create mode 100644 apps/desktop/src/components/grid/DataGridCellDetailPanel.vue create mode 100644 apps/desktop/src/components/grid/DataGridColumnHeader.vue create mode 100644 apps/desktop/src/components/grid/DataGridConditionEditor.vue create mode 100644 apps/desktop/src/components/grid/DataGridDetailDialogs.vue create mode 100644 apps/desktop/src/components/grid/DataGridExportMenu.vue create mode 100644 apps/desktop/src/components/grid/DataGridFilterBuilder.vue create mode 100644 apps/desktop/src/components/grid/DataGridMongoJsonPreview.vue create mode 100644 apps/desktop/src/components/grid/DataGridPagination.vue create mode 100644 apps/desktop/src/components/grid/DataGridQueryControls.vue create mode 100644 apps/desktop/src/components/grid/DataGridSearchBar.vue create mode 100644 apps/desktop/src/components/grid/DataGridToolbar.vue create mode 100644 apps/desktop/src/components/grid/__tests__/DataGridSurfaces.spec.ts create mode 100644 apps/desktop/src/components/grid/__tests__/vueHostHarness.ts create mode 100644 apps/desktop/src/composables/__tests__/useDataGridAsyncSurface.spec.ts create mode 100644 apps/desktop/src/composables/__tests__/useDataGridAutoRefresh.spec.ts create mode 100644 apps/desktop/src/composables/__tests__/useDataGridCanvasRuntime.spec.ts create mode 100644 apps/desktop/src/composables/__tests__/useDataGridColumnLayout.spec.ts create mode 100644 apps/desktop/src/composables/__tests__/useDataGridConditionEditor.spec.ts create mode 100644 apps/desktop/src/composables/__tests__/useDataGridFilterBuilder.spec.ts create mode 100644 apps/desktop/src/composables/__tests__/useDataGridResultLifecycle.spec.ts create mode 100644 apps/desktop/src/composables/__tests__/useDataGridSearch.spec.ts create mode 100644 apps/desktop/src/composables/__tests__/useDataGridSort.spec.ts create mode 100644 apps/desktop/src/composables/useDataGridAsyncSurface.ts create mode 100644 apps/desktop/src/composables/useDataGridAutoRefresh.ts create mode 100644 apps/desktop/src/composables/useDataGridCanvasRuntime.ts create mode 100644 apps/desktop/src/composables/useDataGridCellDetail.ts create mode 100644 apps/desktop/src/composables/useDataGridColumnLayout.ts create mode 100644 apps/desktop/src/composables/useDataGridConditionEditor.ts create mode 100644 apps/desktop/src/composables/useDataGridFilterBuilder.ts create mode 100644 apps/desktop/src/composables/useDataGridResultLifecycle.ts create mode 100644 apps/desktop/src/composables/useDataGridScrollbars.ts create mode 100644 apps/desktop/src/composables/useDataGridSearch.ts create mode 100644 apps/desktop/src/composables/useDataGridSort.ts create mode 100644 apps/desktop/src/lib/__tests__/dataGrid/dataGridContextMenu.spec.ts create mode 100644 apps/desktop/src/lib/__tests__/dataGrid/dataGridEditAdapter.spec.ts create mode 100644 apps/desktop/src/lib/__tests__/dataGrid/dataGridFilterBuilderPersistence.spec.ts create mode 100644 apps/desktop/src/lib/__tests__/dataGrid/dataGridNavigation.spec.ts create mode 100644 apps/desktop/src/lib/__tests__/dataGrid/dataGridRuntime.spec.ts create mode 100644 apps/desktop/src/lib/__tests__/dataGrid/dataGridToolbar.spec.ts create mode 100644 apps/desktop/src/lib/dataGrid/dataGridContextMenu.ts create mode 100644 apps/desktop/src/lib/dataGrid/dataGridEditAdapter.ts create mode 100644 apps/desktop/src/lib/dataGrid/dataGridFilterBuilderPersistence.ts create mode 100644 apps/desktop/src/lib/dataGrid/dataGridNavigation.ts create mode 100644 apps/desktop/src/lib/dataGrid/dataGridRuntime.ts diff --git a/apps/desktop/src/components/grid/DataGrid.vue b/apps/desktop/src/components/grid/DataGrid.vue index 7b9ccd1de5..eee23d31c8 100644 --- a/apps/desktop/src/components/grid/DataGrid.vue +++ b/apps/desktop/src/components/grid/DataGrid.vue @@ -1,28 +1,3 @@ - - @@ -9086,13 +7252,7 @@ const gridContextMenuItems = computed(() => {
-
+