更新方形Logo和头颈部CT默认分类

- 侧边栏 Logo 改为导入根目录 logo_square.png,favicon 也切换为 /logo_square.png,并让前端服务显式提供该根目录图片。

- 头颈部CT分割默认模板分类名改为纯中文,去掉括号英文翻译,颜色和 maskid 保持用户给定顺序。

- 增加旧版头颈部CT英文括号 label 的窄迁移,启动 seed 时自动把旧默认系统模板更新为纯中文默认。

- 更新前端 Logo 测试、后端默认模板和恢复出厂设置测试,覆盖纯中文分类和根目录方形 Logo。

- 更新 AGENTS、README、前端审计、需求冻结和测试计划文档,记录根目录 Logo 和头颈部CT纯中文默认分类。
This commit is contained in:
2026-05-03 18:11:21 +08:00
parent d559cda2cb
commit 739953bc13
13 changed files with 94 additions and 41 deletions

View File

@@ -38,4 +38,10 @@ describe('Sidebar', () => {
expect(screen.getByTitle('AI智能分割').querySelector('[data-testid="ai-segmentation-icon"]')).toBeInTheDocument();
});
it('uses the root logo_square asset for the sidebar logo', () => {
render(<Sidebar activeModule="dashboard" setActiveModule={vi.fn()} />);
expect(screen.getByAltText('Logo')).toHaveAttribute('src', expect.stringContaining('logo_square'));
});
});

View File

@@ -5,6 +5,7 @@ import type { ActiveModule } from '../App';
import { ModelStatusBadge } from './ModelStatusBadge';
import { useStore } from '../store/useStore';
import { AiSegmentationIcon } from './AiSegmentationIcon';
import logoSquareUrl from '../../logo_square.png';
interface SidebarProps {
activeModule: ActiveModule;
@@ -26,7 +27,7 @@ export function Sidebar({ activeModule, setActiveModule }: SidebarProps) {
return (
<aside className="w-16 flex flex-col items-center py-6 bg-[#0d0d0d] border-r border-white/10 z-50 gap-8">
<div className="w-10 h-10 rounded-lg overflow-hidden flex items-center justify-center bg-white">
<img src="/logo.png" alt="Logo" className="w-full h-full object-cover" />
<img src={logoSquareUrl} alt="Logo" className="w-full h-full object-cover" />
</div>
<nav className="flex flex-col gap-6 w-full px-2">
{navItems.map((item) => {