From d7251f2035feb1f0d4912435fb345b198569e451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8C=85=E5=91=A8=E6=B6=9B?= Date: Tue, 14 Jul 2026 01:37:04 -0700 Subject: [PATCH] =?UTF-8?q?fix(plugin-gantt):=20#2482=20=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=86=97=E4=BD=99=E8=A1=8C=E5=AE=9A=E4=BD=8D=E5=9B=BE=E6=A0=87?= =?UTF-8?q?;=E3=80=8C=E2=86=92=E3=80=8D=E8=AF=A6=E6=83=85=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E6=94=B9=E7=8B=AC=E7=AB=8B=E6=93=8D=E4=BD=9C=E6=A7=BD?= =?UTF-8?q?(=E4=B8=8D=E5=8E=8B=E7=BB=93=E6=9D=9F=E5=88=97=E3=80=8124px=20?= =?UTF-8?q?=E7=83=AD=E5=8C=BA)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/i18n/src/locales/en.ts | 1 - packages/i18n/src/locales/zh.ts | 1 - .../src/GanttView.enhancements.test.tsx | 10 ++- packages/plugin-gantt/src/GanttView.tsx | 68 ++++++++----------- .../plugin-gantt/src/useGanttTranslation.ts | 1 - 5 files changed, 35 insertions(+), 46 deletions(-) diff --git a/packages/i18n/src/locales/en.ts b/packages/i18n/src/locales/en.ts index 7fe912453..c625a2901 100644 --- a/packages/i18n/src/locales/en.ts +++ b/packages/i18n/src/locales/en.ts @@ -415,7 +415,6 @@ const en = { row: { expand: 'Expand', collapse: 'Collapse', - locate: 'Locate on timeline', open: 'Open details', }, aria: { diff --git a/packages/i18n/src/locales/zh.ts b/packages/i18n/src/locales/zh.ts index 64b149bb7..8a4a0888a 100644 --- a/packages/i18n/src/locales/zh.ts +++ b/packages/i18n/src/locales/zh.ts @@ -491,7 +491,6 @@ const zh = { row: { expand: '展开', collapse: '收起', - locate: '在甘特图上定位', open: '打开详情', }, aria: { diff --git a/packages/plugin-gantt/src/GanttView.enhancements.test.tsx b/packages/plugin-gantt/src/GanttView.enhancements.test.tsx index 67cbcf1fc..9ab3bce75 100644 --- a/packages/plugin-gantt/src/GanttView.enhancements.test.tsx +++ b/packages/plugin-gantt/src/GanttView.enhancements.test.tsx @@ -86,10 +86,16 @@ describe('GanttView row click model (单击=Focus, 双击/「→」=详情)', () it('the row 「→」 button opens detail and only renders with onTaskClick', () => { const onTaskClick = vi.fn(); - const { getByTestId } = renderView([A()], { onTaskClick }); - act(() => { fireEvent.click(getByTestId('gantt-row-open-a')); }); + const { getByTestId, queryByTestId: q1 } = renderView([A()], { onTaskClick }); + const openBtn = getByTestId('gantt-row-open-a'); + act(() => { fireEvent.click(openBtn); }); expect(onTaskClick).toHaveBeenCalledTimes(1); expect(onTaskClick.mock.calls[0][0].id).toBe('a'); + // In-flow slot, not an absolute overlay — it must never cover the + // end-date column (#2482). + expect(openBtn.className).not.toContain('absolute'); + // The hover locate icon is gone: a plain row click already locates. + expect(q1('gantt-row-locate-a')).toBeNull(); const { queryByTestId } = renderView([makeTask('z', '2024-06-10T00:00:00.000Z', '2024-06-15T00:00:00.000Z')]); expect(queryByTestId('gantt-row-open-z')).toBeNull(); diff --git a/packages/plugin-gantt/src/GanttView.tsx b/packages/plugin-gantt/src/GanttView.tsx index 8095990fc..b31c6dead 100644 --- a/packages/plugin-gantt/src/GanttView.tsx +++ b/packages/plugin-gantt/src/GanttView.tsx @@ -28,7 +28,6 @@ import { FileDown, Save, Lock, - Crosshair, RefreshCw, ArrowRight, QrCode, @@ -2690,9 +2689,11 @@ export function GanttView({