feat: Oracle version selector in connection form, JRE install button

- Add Oracle 11g+/10g version dropdown in connection config (driver_profile routing)
- Show JRE version tags on all drivers in driver management
- Add install button for uninstalled JREs
- Fix iconTypeMap for oracle-10g
This commit is contained in:
t8y2
2026-05-13 16:20:03 +08:00
parent 809448a161
commit d50da7f1cd
2 changed files with 31 additions and 3 deletions
+14 -2
View File
@@ -315,6 +315,17 @@ onUnmounted(() => {
<div class="flex shrink-0 items-center gap-3">
<span v-if="jre.installed" class="text-xs text-green-600">已安装</span>
<span v-else class="text-xs text-muted-foreground">未安装</span>
<Button
v-if="!jre.installed"
type="button"
variant="default"
size="sm"
:disabled="reinstallingJre !== null || installing !== null"
@click="reinstallJre(jre.key)"
>
<Download class="h-3.5 w-3.5 mr-1" />
{{ reinstallingJre === jre.key ? "安装中..." : "安装" }}
</Button>
<Button
v-if="jre.installed"
type="button"
@@ -372,8 +383,9 @@ onUnmounted(() => {
</div>
<div class="flex shrink-0 items-center gap-1.5">
<span
v-if="driver.jre && driver.jre !== '17'"
class="rounded-full bg-blue-500/10 px-2 py-0.5 text-[11px] text-blue-600"
v-if="driver.jre"
class="rounded-full px-2 py-0.5 text-[11px]"
:class="driver.jre !== '17' ? 'bg-blue-500/10 text-blue-600' : 'bg-muted text-muted-foreground'"
>JRE {{ driver.jre }}</span
>
<template v-if="driver.installed">
+17 -1
View File
@@ -358,6 +358,7 @@ const iconTypeMap: Record<string, string> = {
clickhouse: "clickhouse",
sqlserver: "sqlserver",
oracle: "oracle",
"oracle-10g": "oracle",
elasticsearch: "elasticsearch",
mariadb: "mariadb",
tidb: "tidb",
@@ -400,7 +401,6 @@ const dbOptions = [
{ value: "clickhouse", label: "ClickHouse" },
{ value: "sqlserver", label: "SQL Server" },
{ value: "oracle", label: "Oracle" },
{ value: "oracle-10g", label: "Oracle 10g" },
{ value: "elasticsearch", label: "Elasticsearch" },
{ value: "mariadb", label: "MariaDB" },
{ value: "dm", label: "DM (Dameng)" },
@@ -1137,6 +1137,22 @@ function openExternalUrl(url: string) {
</p>
</div>
<div v-if="form.db_type === 'oracle'" class="grid grid-cols-4 items-center gap-4">
<Label class="text-right text-xs">版本</Label>
<Select
:model-value="selectedType === 'oracle-10g' ? 'oracle-10g' : 'oracle'"
@update:model-value="(val) => applyProfile(String(val), true)"
>
<SelectTrigger class="col-span-3 h-8 text-sm">
<SelectValue />
</SelectTrigger>
<SelectContent>
<SelectItem value="oracle">Oracle 11g+</SelectItem>
<SelectItem value="oracle-10g">Oracle 10g</SelectItem>
</SelectContent>
</Select>
</div>
<div v-if="form.db_type === 'oracle'" class="grid grid-cols-4 items-center gap-4">
<Label class="text-right text-xs">SYSDBA</Label>
<label class="col-span-3 flex items-center gap-2 cursor-pointer">