From e177753ad6d47792296724d5974bf895dc648a64 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Tue, 27 Oct 2026 16:06:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=EF=BC=9A=E5=AF=B9=E8=B1=A1=E8=B5=84=E6=BA=90=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=99=A8=E5=8A=A0=E5=BA=93=E5=92=8C=E8=A1=A8=E7=9A=84=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=EF=BC=8C=E8=A1=A8=E7=BC=A9=E8=BF=9B=E6=8C=82=E5=9C=A8?= =?UTF-8?q?=E5=BA=93=E4=B8=8B=E9=9D=A2=EF=BC=88=E5=B7=A6=E8=BE=B9=E7=AB=96?= =?UTF-8?q?=E7=BA=BF=EF=BC=89=EF=BC=8C=E4=B8=80=E7=9C=BC=E5=88=86=E5=BE=97?= =?UTF-8?q?=E6=B8=85=E5=B1=82=E7=BA=A7=EF=BC=9B=E6=A0=87=E7=AD=BE=E9=A1=B5?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E6=94=B9=E6=88=90=E5=8D=A0=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E6=A0=8F=E4=B8=8B=E9=9D=A2=E5=89=A9=E4=B8=8B=E7=9A=84=E9=AB=98?= =?UTF-8?q?=E5=BA=A6=EF=BC=8C=E4=B8=8D=E5=86=8D=E5=A4=9A=E5=87=BA=2039px?= =?UTF-8?q?=20=E6=92=91=E5=87=BA=E6=95=B4=E9=A1=B5=E6=BB=9A=E5=8A=A8?= =?UTF-8?q?=E6=9D=A1=EF=BC=9B=E6=9F=A5=E8=AF=A2=E8=A1=A5=E5=85=A8=E5=86=99?= =?UTF-8?q?=E4=BA=86=20FROM=20/=20JOIN=20=E5=90=8E=E5=8F=AA=E5=88=97?= =?UTF-8?q?=E7=94=A8=E5=88=B0=E7=9A=84=E8=A1=A8=E7=9A=84=E5=88=97=E3=80=82?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E7=94=BB=E5=B8=83=E7=AA=84=E6=97=B6?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=A0=8F=E6=8A=98=E8=A1=8C=E3=80=81=E4=B8=8D?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=8F=90=E7=A4=BA=E6=96=87=E5=AD=97=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E6=92=91=E5=87=BA=E6=A8=AA=E5=90=91=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8=E6=9D=A1=E3=80=82=E4=BD=BF=E7=94=A8=E8=AF=B4=E6=98=8E?= =?UTF-8?q?=E7=9A=84=E6=95=B0=E6=8D=AE=E5=BA=93=E6=88=AA=E5=9B=BE=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- web/public/help-img/db.webp | Bin 21570 -> 27964 bytes web/src/database/ObjectExplorer.vue | 53 +++++++++++++++++++++++----- web/src/database/completion.test.ts | 9 +++-- web/src/database/completion.ts | 7 ++-- web/src/designer/FormDesigner.vue | 10 ++++++ web/src/pages/DatabasePage.vue | 7 ++-- 6 files changed, 66 insertions(+), 20 deletions(-) diff --git a/web/public/help-img/db.webp b/web/public/help-img/db.webp index 7f5e795c4ec427cb3f60e6cc785b62cfedbbe132..642cf8b5514ab7c186770e41f5eb06ff2837061a 100644 GIT binary patch literal 27964 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
{{ collapsed.has(db.name) ? '▸' : '▾' }} + {{ db.name }} {{ db.tables.length }} 张表
- + @@ -171,7 +179,7 @@ function columnsTip(table: ExplorerTable) { } .db + .db { - margin-top: 4px; + margin-top: 8px; } .row { @@ -206,18 +214,47 @@ function columnsTip(table: ExplorerTable) { font-weight: 600; } +.icon { + flex: none; + width: 16px; + height: 16px; + fill: none; + stroke-width: 1.3; + stroke-linecap: round; + stroke-linejoin: round; +} + +.db-icon { + stroke: #2563eb; +} + +.db-icon ellipse { + fill: #dbeafe; +} + +.table-icon { + stroke: #6b7280; +} + +.table-icon rect { + fill: #f9fafb; +} + +/* 表挂在库下面:往里缩进,左边一条竖线对齐库图标 */ +.tables { + margin-left: 33px; + padding-left: 6px; + border-left: 1px solid #e5e7eb; +} + .count { font-size: 12px; color: #9ca3af; } -.table-row, -.new-table { - padding-left: 26px; -} - .new-table { color: #2563eb; + padding-left: 30px; } /* ⋯ 平时浅一点,鼠标移到这一行再变深 */ diff --git a/web/src/database/completion.test.ts b/web/src/database/completion.test.ts index afbf8b8..4761c6b 100644 --- a/web/src/database/completion.test.ts +++ b/web/src/database/completion.test.ts @@ -44,9 +44,12 @@ describe('查询窗口的自动补全', () => { expect(sorted('SELECT * FROM 用户表, |')[0]).toBe('CampusEnvironment') }) - test('语句里用到的表的列排在其他列前面', () => { - const columns = sorted('SELECT | FROM 用户表').filter((label) => ['姓名', 'light'].includes(label)) - expect(columns).toEqual(['姓名', 'light']) + test('写了表名后只列用到的表的列,还没写时列所有表的列', () => { + expect(labels('SELECT | FROM 用户表')).toContain('姓名') + expect(labels('SELECT | FROM 用户表')).not.toContain('light') + expect(labels('SELECT | FROM 用户表 u JOIN CampusEnvironment e ON u.ID = e.ID')).toContain('light') + expect(labels('SELECT |')).toContain('light') + expect(labels('SELECT |')).toContain('姓名') }) test('空格触发:只在要写表名的地方弹出', () => { diff --git a/web/src/database/completion.ts b/web/src/database/completion.ts index 2b46c6f..e3aa211 100644 --- a/web/src/database/completion.ts +++ b/web/src/database/completion.ts @@ -324,17 +324,16 @@ function tableSuggestions(tables: ExplorerTable[], bracketOpen: boolean, rank: s return tables.map((table) => ({ label: table.name, kind: 'table', insert: nameText(table.name, bracketOpen), detail: '表', sort: rank + table.name })) } -/** 所有表的列(同名的列只列一次);语句里用到的表的列排在前面 */ +/** 查询窗口里用到的表(FROM / JOIN 等后面写了的)的列;还没写表名时列所有表的列。同名的列只列一次 */ function columnSuggestions(tables: ExplorerTable[], refs: TableRef[], bracketOpen: boolean): SqlSuggestion[] { const used = new Set(refs.map((r) => r.table)) - const ordered = [...tables.filter((t) => used.has(t)), ...tables.filter((t) => !used.has(t))] const columns = new Map() - for (const table of ordered) { + for (const table of used.size > 0 ? tables.filter((t) => used.has(t)) : tables) { for (const column of table.columns) { const key = column.name.toUpperCase() const existing = columns.get(key) if (existing) existing.tables.push(table.name) - else columns.set(key, { column, tables: [table.name], sort: `${used.has(table) ? 1 : 2}${pad(columns.size)}` }) + else columns.set(key, { column, tables: [table.name], sort: `1${pad(columns.size)}` }) } } return [...columns.values()].map(({ column, tables, sort }) => ({ diff --git a/web/src/designer/FormDesigner.vue b/web/src/designer/FormDesigner.vue index 913a6cb..c921020 100644 --- a/web/src/designer/FormDesigner.vue +++ b/web/src/designer/FormDesigner.vue @@ -677,7 +677,9 @@ const noop = () => {} } .actions { + container-type: inline-size; display: flex; + flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12px; @@ -713,6 +715,8 @@ const noop = () => {} } .tips { + /* 提示文字不占位置:画布窄时不显示(只留作空白把缩放推到右边),按钮放不下再折到第二行,不撑出横向滚动条 */ + flex: 1 1 0; min-width: 0; margin-left: 8px; overflow: hidden; @@ -721,6 +725,12 @@ const noop = () => {} color: #7a838e; } +@container (max-width: 560px) { + .tips { + visibility: hidden; + } +} + .window { align-self: flex-start; border: 1px solid #9aa3ad; diff --git a/web/src/pages/DatabasePage.vue b/web/src/pages/DatabasePage.vue index f26e4d5..45dcfd7 100644 --- a/web/src/pages/DatabasePage.vue +++ b/web/src/pages/DatabasePage.vue @@ -296,13 +296,10 @@ onMounted(refresh) flex-direction: column; } -.tabs :deep(.n-tabs-pane-wrapper) { +/* 标签页内容直接是 .tabs 的子元素(display-directive="show"):占标签栏下面剩下的高度,不能用 height: 100%,否则多出标签栏的高度,整页出滚动条 */ +.tabs :deep(.n-tab-pane) { flex: 1; min-height: 0; -} - -.tabs :deep(.n-tab-pane) { - height: 100%; padding: 0; background: #fff; }