# Git 提交分析报告 **提交哈希**: 01cf32a610b8ba1b5d6eaca7666a9c93f86310bf **提交时间**: 2026-05-25 09:32:58 +0800 **作者**: lincube **提交信息**: changed.调整融合桌面组库的相关圆角 --- ## 提交基本信息 | 属性 | 值 | |------|-----| | 完整哈希 | 01cf32a610b8ba1b5d6eaca7666a9c93f86310bf | | 短哈希 | 01cf32a | | 作者 | lincube | | 邮箱 | lincube3@hotmail.com | | 提交时间 | 2026-05-25 09:32:58 +0800 | | 提交类型 | changed (功能调整) | | 影响级别 | 🟢 低风险 | --- ## 变更统计 - **修改文件数**: 4 - **新增行数**: 73 - **删除行数**: 7 - **净变更行数**: +66 ### 变更文件列表 | # | 文件路径 | 变更类型 | 新增行数 | 删除行数 | |---|---------|---------|---------|---------| | 1 | LanMountainDesktop.Tests/ComponentCategoryIconResolverTests.cs | 修改 | +14 | 0 | | 2 | LanMountainDesktop/ComponentSystem/ComponentCategoryIconResolver.cs | 修改 | +34 | -6 | | 3 | LanMountainDesktop/Views/ComponentLibraryWindow.axaml | 修改 | +1 | -1 | | 4 | LanMountainDesktop/Views/FusedDesktopComponentLibraryWindow.axaml | 修改 | +1 | 0 | | 5 | LanMountainDesktop/Views/FusedDesktopComponentLibraryWindow.axaml.cs | 修改 | +23 | 0 | --- ## 详细变更分析 ### 1. LanMountainDesktop.Tests/ComponentCategoryIconResolverTests.cs **文件说明**: ComponentCategoryIconResolver 类的单元测试 **变更类型**: 添加新测试用例 #### 新增测试 1: Date 类别图标解析 (第 110-115 行) ```csharp [Fact] public void ResolveCategoryIcon_Date_ResolvesCorrectly() { var result = ComponentCategoryIconResolver.ResolveCategoryIcon("Date", []); Assert.Equal(Icon.Calendar, result); } ``` **测试目的**: 验证 "Date" 类别能正确解析为日历图标 #### 新增测试 2: Study 类别图标解析 (第 117-122 行) ```csharp [Fact] public void ResolveCategoryIcon_Study_ResolvesCorrectly() { var result = ComponentCategoryIconResolver.ResolveCategoryIcon("Study", []); Assert.Equal(Icon.Book, result); } ``` **测试目的**: 验证 "Study" 类别能正确解析为书本图标 **测试覆盖率提升**: - 新增 2 个测试用例 - 提高了 `ResolveCategoryIcon` 方法的测试覆盖率 - 验证了新的图标映射功能 --- ### 2. LanMountainDesktop/ComponentSystem/ComponentCategoryIconResolver.cs **文件说明**: 组件类别图标解析器 **变更类型**: 功能增强和代码重构 #### 变更 1: 添加新图标映射 (第 17-30 行) ```diff @@ -14,15 +14,34 @@ public static class ComponentCategoryIconResolver return Icon.Apps; } + var icon = categoryId.ToLowerInvariant() switch + { + "clock" => Icon.Clock, + "date" => Icon.Calendar, + "weather" => Icon.WeatherSunny, + "board" => Icon.Edit, + "media" => Icon.Play, + "info" => Icon.News, + "calculator" => Icon.Calculator, + "study" => Icon.Book, + "file" => Icon.Folder, + _ => (Icon?)null + }; + + if (icon.HasValue) + { + return icon.Value; + } + var firstComponent = categoryComponents.FirstOrDefault(); if (firstComponent is null || string.IsNullOrWhiteSpace(firstComponent.IconKey)) { return Icon.Apps; } - if (Enum.TryParse(firstComponent.IconKey, ignoreCase: true, out var icon)) + if (Enum.TryParse(firstComponent.IconKey, ignoreCase: true, out var resolvedIcon)) { - return icon; + return resolvedIcon; } return Icon.Apps; ``` **功能改进**: | 类别 | 图标 | 说明 | |------|------|------| | clock | Icon.Clock | 时钟图标 | | date | Icon.Calendar | 日历图标 | | weather | Icon.WeatherSunny | 天气图标 | | board | Icon.Edit | 编辑图标 | | media | Icon.Play | 播放图标 | | info | Icon.News | 信息图标 | | calculator | Icon.Calculator | 计算器图标 | | study | Icon.Book | 学习图标 | | file | Icon.Folder | 文件图标 | **技术改进**: - ✅ 使用 Pattern Matching 简化代码 - ✅ 添加默认的类别图标映射 - ✅ 避免变量名冲突 (重命名 `icon` 为 `resolvedIcon`) - ✅ 支持大小写不敏感的匹配 --- ### 3. LanMountainDesktop/Views/ComponentLibraryWindow.axaml **文件说明**: 组件库窗口的 XAML 定义 **变更类型**: 迁移到 FluentIcon #### 变更 1: SymbolIcon 改为 FluentIcon (第 57 行) ```diff @@ -54,7 +54,7 @@ Background="{DynamicResource AdaptiveNavItemBackgroundBrush}"> -