fix(desktop): keep saving structure export sql

This commit is contained in:
t8y2 2026-06-02 01:24:19 +08:00
parent 6dee9705d9
commit 36923fa581
5 changed files with 25 additions and 1 deletions

View File

@ -797,6 +797,7 @@ const showBatchDropConfirm = ref(false);
const showStructurePreviewDialog = ref(false);
const structurePreviewSql = ref("");
const structurePreviewTitle = ref("");
const structurePreviewDefaultFileName = ref("structure.sql");
const structurePreviewError = ref("");
const isLoadingStructurePreview = ref(false);
const showEmptyTableConfirm = ref(false);
@ -1688,6 +1689,7 @@ async function exportStructure() {
targets.length === 1
? t("contextMenu.exportStructurePreviewTitle", { name: targets[0]!.label })
: t("contextMenu.exportStructurePreviewTitleMultiple", { count: targets.length });
structurePreviewDefaultFileName.value = targets.length === 1 ? `${targets[0]!.label}.sql` : "structures.sql";
showStructurePreviewDialog.value = true;
try {
const parts: string[] = [];
@ -1749,6 +1751,16 @@ async function copyStructurePreview() {
}
}
async function saveStructurePreview() {
if (!structurePreviewSql.value) return;
try {
await saveFileContent(structurePreviewSql.value, structurePreviewDefaultFileName.value, "SQL", "sql");
toast(t("grid.exported"));
} catch (e: any) {
toast(t("grid.exportFailed", { message: e?.message || String(e) }), 5000);
}
}
async function exportData(format: "csv" | "json" | "sql") {
const node = props.node;
if (!node.connectionId || !node.database) return;
@ -3009,10 +3021,18 @@ function treeItemMenuItems(): ContextMenuItem[] {
</div>
<DialogFooter>
<Button variant="outline" @click="showStructurePreviewDialog = false">{{ t("dangerDialog.cancel") }}</Button>
<Button :disabled="isLoadingStructurePreview || !structurePreviewSql" @click="copyStructurePreview">
<Button
variant="outline"
:disabled="isLoadingStructurePreview || !structurePreviewSql"
@click="copyStructurePreview"
>
<Clipboard class="h-4 w-4" />
{{ t("contextMenu.copyStructure") }}
</Button>
<Button :disabled="isLoadingStructurePreview || !structurePreviewSql" @click="saveStructurePreview">
<Download class="h-4 w-4" />
{{ t("contextMenu.saveStructure") }}
</Button>
</DialogFooter>
</DialogContent>
</Dialog>

View File

@ -922,6 +922,7 @@ export default {
exportStructurePreviewTitleMultiple: "Structure - {count} objects",
exportStructureLoading: "Loading structure...",
copyStructure: "Copy Structure",
saveStructure: "Save SQL",
exportStructureCopied: "Structure copied",
createTable: "Create Table",
dropTable: "Drop Table",

View File

@ -818,6 +818,7 @@ export default {
exportStructurePreviewTitleMultiple: "Estructura - {count} objetos",
exportStructureLoading: "Cargando estructura...",
copyStructure: "Copiar estructura",
saveStructure: "Guardar SQL",
exportStructureCopied: "Estructura copiada",
createTable: "Crear tabla",
dropTable: "Eliminar tabla",

View File

@ -903,6 +903,7 @@ export default {
exportStructurePreviewTitleMultiple: "表结构 - {count} 个对象",
exportStructureLoading: "正在读取表结构...",
copyStructure: "复制表结构",
saveStructure: "保存 SQL",
exportStructureCopied: "表结构已复制",
createTable: "新建表",
dropTable: "删除表",

View File

@ -903,6 +903,7 @@ export default {
exportStructurePreviewTitleMultiple: "資料表結構 - {count} 個物件",
exportStructureLoading: "正在讀取資料表結構...",
copyStructure: "複製資料表結構",
saveStructure: "儲存 SQL",
exportStructureCopied: "資料表結構已複製",
createTable: "建立資料表",
dropTable: "刪除資料表",