feat(sql): add save/open SQL file buttons and enable tab persistence on desktop

This commit is contained in:
t8y2
2026-05-05 15:18:54 +08:00
parent 2de0894a99
commit c295bf5780
5 changed files with 90 additions and 6 deletions
+19 -1
View File
@@ -1,7 +1,7 @@
<script setup lang="ts">
import { computed } from "vue";
import { useI18n } from "vue-i18n";
import { Play, Loader2, Square, Database, Table2, AlignLeft, GitBranch } from "lucide-vue-next";
import { Play, Loader2, Square, Database, Table2, AlignLeft, GitBranch, Save, FolderOpen } from "lucide-vue-next";
import { Button } from "@/components/ui/button";
import {
Select,
@@ -29,6 +29,8 @@ const emit = defineEmits<{
cancel: [];
explain: [];
formatSql: [];
saveSql: [];
openSql: [];
changeConnection: [connectionId: string];
changeDatabase: [database: string];
}>();
@@ -94,6 +96,22 @@ function databaseDisplayName(database: string): string {
</TooltipTrigger>
<TooltipContent>{{ t('toolbar.formatSql') }}</TooltipContent>
</Tooltip>
<Tooltip>
<TooltipTrigger as-child>
<Button variant="ghost" size="icon" class="h-6 w-6" :disabled="!activeTab.sql.trim()" @click="emit('saveSql')">
<Save class="h-3.5 w-3.5" />
</Button>
</TooltipTrigger>
<TooltipContent>{{ t('toolbar.saveSql') }}</TooltipContent>
</Tooltip>
<Tooltip>
<TooltipTrigger as-child>
<Button variant="ghost" size="icon" class="h-6 w-6" @click="emit('openSql')">
<FolderOpen class="h-3.5 w-3.5" />
</Button>
</TooltipTrigger>
<TooltipContent>{{ t('toolbar.openSql') }}</TooltipContent>
</Tooltip>
</div>
<span class="flex-1 min-w-0" />
<div class="flex items-center gap-2 shrink-0">