feat(grid): add copy selected rows as TSV

This commit is contained in:
gggaiitx authored and GitHub committed 2026-07-09 19:23:36 +08:00
1 parent 2eed0aa66c
commit 0e474cecd4
9 files changed
+42

No files matched your search

@@ -6116,6 +6116,7 @@ const {
copySelectionJson,
copySelectionSqlInList,
copySelectedRowsTsv,
copySelectedRowsTsvWithHeaders,
copyColumnNames,
exportCsv,
exportCurrentPageCsv,
@@ -8245,6 +8246,11 @@ function copySubmenu(): ContextMenuItem {
items.push({ label: t("grid.copyCell"), action: copyCell });
}
items.push({ label: labels.row, action: copyRow });
if (hasRowSelection.value && selectedRowCount.value > 0) {
const singleRowSelected = selectedRowCount.value === 1;
items.push({ label: singleRowSelected ? t("grid.copySelectedRowTsv") : t("grid.copySelectedRowsTsv", { count: selectedRowCount.value }), action: copySelectedRowsTsv });
items.push({ label: singleRowSelected ? t("grid.copySelectedRowTsvWithHeaders") : t("grid.copySelectedRowsTsvWithHeaders", { count: selectedRowCount.value }), action: copySelectedRowsTsvWithHeaders });
}
if (isMultiRow.value) {
items.push({ label: labels.insertMerged, action: () => copyRowAsInsert("merged"), disabled: !canCopyPreparedInsert(false, "merged") });
items.push({ label: labels.insertRowByRow, action: () => copyRowAsInsert("row-by-row"), disabled: !canCopyPreparedInsert(false, "row-by-row") });