From 4d90ed776f8a4d374df742847fe5447d598c395e Mon Sep 17 00:00:00 2001 From: Syngnat Date: Sun, 12 Jul 2026 16:28:17 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(sql-audit):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=9B=BA=E5=AE=9A=E6=93=8D=E4=BD=9C=E5=88=97=E6=82=AC?= =?UTF-8?q?=E5=81=9C=E5=86=85=E5=AE=B9=E7=A9=BF=E9=80=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 覆盖审计表格固定操作列的不透明背景 - 使用不透明混合色保留行悬停反馈 - 增加固定列内容穿透回归测试 --- frontend/src/components/audit/SqlAuditWorkbench.css | 8 ++++++++ .../src/components/audit/SqlAuditWorkbench.test.tsx | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/frontend/src/components/audit/SqlAuditWorkbench.css b/frontend/src/components/audit/SqlAuditWorkbench.css index d314eb07..4f213f28 100644 --- a/frontend/src/components/audit/SqlAuditWorkbench.css +++ b/frontend/src/components/audit/SqlAuditWorkbench.css @@ -170,6 +170,14 @@ padding-block: 9px; } +.gn-sql-audit-table-panel .ant-table-cell-fix-right { + background: var(--sql-audit-panel); +} + +.gn-sql-audit-workbench .gn-sql-audit-table-panel .ant-table-tbody > tr:hover > td { + background: color-mix(in srgb, var(--sql-audit-text) 4.5%, var(--sql-audit-panel)) !important; +} + .gn-sql-audit-table-row td { height: 44px; font-variant-numeric: tabular-nums; diff --git a/frontend/src/components/audit/SqlAuditWorkbench.test.tsx b/frontend/src/components/audit/SqlAuditWorkbench.test.tsx index 1a20bdbe..e47dee60 100644 --- a/frontend/src/components/audit/SqlAuditWorkbench.test.tsx +++ b/frontend/src/components/audit/SqlAuditWorkbench.test.tsx @@ -54,6 +54,17 @@ describe('SqlAuditWorkbench', () => { expect(styleSource).toMatch(/\.gn-sql-audit-table-panel\s*\{[\s\S]*?min-height:\s*280px;/); }); + it('keeps the fixed action column opaque while rows are hovered', () => { + const styleSource = readFileSync(new URL('./SqlAuditWorkbench.css', import.meta.url), 'utf8'); + + expect(styleSource).toMatch( + /\.gn-sql-audit-table-panel\s+\.ant-table-cell-fix-right[\s\S]*?background:\s*var\(--sql-audit-panel\)/, + ); + expect(styleSource).toMatch( + /\.gn-sql-audit-workbench\s+\.gn-sql-audit-table-panel[\s\S]*?tr:hover\s*>\s*td[\s\S]*?background:\s*color-mix\(in srgb, var\(--sql-audit-text\) 4\.5%, var\(--sql-audit-panel\)\)\s*!important/, + ); + }); + it('debounces only free-text search before querying SQLite', () => { const source = readFileSync(new URL('./SqlAuditWorkbench.tsx', import.meta.url), 'utf8');