From 916b62287a3c0adf4e93835ab239bfaca470e436 Mon Sep 17 00:00:00 2001 From: zipg Date: Mon, 21 Sep 2026 16:33:47 +0800 Subject: [PATCH] fix(diff): scroll data compare results in a plain element --- .../src/components/diff/DataCompareDialog.vue | 668 +++++++++--------- .../DataCompareDialog.prefill.spec.ts | 23 + .../screenshots/issue-9839-after-scrolled.png | Bin 0 -> 440633 bytes docs/screenshots/issue-9839-after.png | Bin 0 -> 320153 bytes docs/screenshots/issue-9839-before.png | Bin 0 -> 333737 bytes 5 files changed, 358 insertions(+), 333 deletions(-) create mode 100644 docs/screenshots/issue-9839-after-scrolled.png create mode 100644 docs/screenshots/issue-9839-after.png create mode 100644 docs/screenshots/issue-9839-before.png diff --git a/apps/desktop/src/components/diff/DataCompareDialog.vue b/apps/desktop/src/components/diff/DataCompareDialog.vue index 8683f4fbf8..fbc4b3c472 100644 --- a/apps/desktop/src/components/diff/DataCompareDialog.vue +++ b/apps/desktop/src/components/diff/DataCompareDialog.vue @@ -1068,381 +1068,383 @@ onBeforeUnmount(() => { -
-
-
-
- S - {{ t("diff.source") }} -
- - - - - -
- -
- -
- -
-
- T - {{ t("diff.target") }} -
- - - - -
- - +
+
+
+
+ S + {{ t("diff.source") }} +
+ + + + +
-
-
{{ t("dataCompare.autoMatchHint") }}
-
- {{ t("dataCompare.matchedTables", { matched: matchedTaskCount, total: selectedSourceTableNames.length }) }} + +
+ +
+ +
+
+ T + {{ t("diff.target") }}
-
- {{ t("dataCompare.missingTargetTables", { tables: missingTargetTables.join(", ") }) }} + + + + +
+ +
-
-
- {{ task.sourceTable }} - → - - {{ task.targetTable || t("dataCompare.targetTableMissing", { table: task.sourceTable }) }} - +
+
{{ t("dataCompare.autoMatchHint") }}
+
+ {{ t("dataCompare.matchedTables", { matched: matchedTaskCount, total: selectedSourceTableNames.length }) }} +
+
+ {{ t("dataCompare.missingTargetTables", { tables: missingTargetTables.join(", ") }) }} +
+
+
+ {{ task.sourceTable }} + → + + {{ task.targetTable || t("dataCompare.targetTableMissing", { table: task.sourceTable }) }} + +
-
-
-
- - - {{ singleKeyColumnRow.manual ? t("dataCompare.keyColumnsStatusManual") : t("dataCompare.keyColumnsStatusAuto") }} - - -
- -
- {{ t("dataCompare.keyColumnsSelectTableHint") }} -
- - -
- -
- {{ singleKeyColumnRow.hint }} +
+
+ + + {{ singleKeyColumnRow.manual ? t("dataCompare.keyColumnsStatusManual") : t("dataCompare.keyColumnsStatusAuto") }} + +
-
- -
-
-
- {{ t("dataCompare.keyColumnsPerTableHint") }} +
+ {{ t("dataCompare.keyColumnsSelectTableHint") }} +
+ + +
+ +
+ {{ singleKeyColumnRow.hint }}
-
-
- -
- -
- {{ row.hint }} - +
+ + +
+
+
+ {{ t("dataCompare.keyColumnsPerTableHint") }} +
+
+
+ +
+ +
+ {{ row.hint }} + +
-
-
- - {{ compareProgressLabel || t("diff.progress.comparing") }} -
- -
-
-
{{ summary }}
-
{{ selectedSummary }}
+
+ + {{ compareProgressLabel || t("diff.progress.comparing") }}
-
-
- - - - - +
+
+
{{ summary }}
+
{{ selectedSummary }}
-
- - - - +
+
+ + + + + +
+ +
+ + + + +
-
-
-
- - - - - - - - - - - - - - - - - -
{{ t("diff.table") }}{{ t("dataCompare.targetTable") }}{{ t("diff.status") }}{{ t("diff.details") }}
{{ item.sourceTable }}{{ item.targetTable }} - - {{ resultStatusLabel(item.status) }} - - -
{{ item.error }}
- -
+
+
+ + + + + + + + + + + + + + + + + +
{{ t("diff.table") }}{{ t("dataCompare.targetTable") }}{{ t("diff.status") }}{{ t("diff.details") }}
{{ item.sourceTable }}{{ item.targetTable }} + + {{ resultStatusLabel(item.status) }} + + +
{{ item.error }}
+ +
+
-
-
-
- +
+
+ -
-
-
- {{ t(`diff.${kind}`) }} - {{ selectedRows(item, kind) }}/{{ item.diff[kind].length }} - - - - -
+
+
+
+ {{ t(`diff.${kind}`) }} + {{ selectedRows(item, kind) }}/{{ item.diff[kind].length }} + + + + +
-
-
- -
+ +
-
- {{ t("dataCompare.remainingRows", { count: remainingRows(item, kind) }) }} +
+ {{ t("dataCompare.remainingRows", { count: remainingRows(item, kind) }) }} +
-
-
- {{ t("dataCompare.planningSync") }} -
-
- -