diff --git a/frontend/src/pages/TicketCreatePage.tsx b/frontend/src/pages/TicketCreatePage.tsx index 4640269..702f7fb 100644 --- a/frontend/src/pages/TicketCreatePage.tsx +++ b/frontend/src/pages/TicketCreatePage.tsx @@ -657,180 +657,193 @@ export default function TicketCreatePage() { }; /* ================================================================== */ - /* MAIN RENDER */ + /* MAIN RENDER — 全高布局,参考 QueriesPage */ /* ================================================================== */ + const [showBrowser, setShowBrowser] = useState(true); + return ( -
- {/* Header */} -
- -

新建数据变更工单

-
- - {/* Error */} - {error && ( -
- {error} -
- )} - - {/* === Form — single page === */} -
- {/* Row 1: Title + Instance + Database */} -
-
- - setTitle(e.target.value)} - className="w-full px-3 py-2 bg-[var(--dg-bg-primary)] border border-[var(--dg-border)] rounded-lg text-sm focus:outline-none focus:border-blue-500 transition-colors" - placeholder="如:用户表添加索引" /> +
+ {/* ====== 左侧 Schema 浏览面板 ====== */} + {showBrowser && instanceId && database && ( +
+
+ 库表浏览 +
-
- - -
-
- - {isRedis ? ( - - ) : databases.length > 0 ? ( - - ) : ( - setDatabase(e.target.value)} disabled={!instanceId} - className="w-full px-3 py-2 bg-[var(--dg-bg-primary)] border border-[var(--dg-border)] rounded-lg text-sm focus:outline-none focus:border-blue-500 transition-colors disabled:opacity-50" - placeholder={instanceId ? '请输入数据库名' : '请先选择实例'} /> - )} -
-
- - {/* 定时执行 */} -
- - {enableSchedule && ( - setScheduledAt(e.target.value)} - step="1" - className="px-3 py-2 bg-[var(--dg-bg-primary)] border border-[var(--dg-border)] rounded-lg text-sm focus:outline-none focus:border-blue-500 transition-colors" - min={new Date().toISOString().slice(0, 16)} /> - )} - {enableSchedule && scheduledAt && ( - - 将于 {new Date(scheduledAt).toLocaleString('zh-CN')} 执行 - - )} -
- - {/* SQL Editor + Browser Panel */} -
-
-
-
- -
- - - {sqlContent.trim() ? sqlContent.trim().split(/;\s*/).filter(Boolean).length + ' 条语句' : ''} - -
-
- -
-
-
+
{renderBrowserPanel()}
- - {/* Reason */} -
- -