refactor: 移除MenuBeanDto,直接使用MenuBean模型

- 删除了 DMS.Application/DTOs/MenuBeanDto.cs 文件
- 在DTOs中将MenuBeanDto类型替换为MenuBean类型
- 更新了IMenuAppService和IMenuManagementService接口中相关方法的参数和返回值类型
- 修改了MenuAppService、MenuManagementService等服务类的实现
- 在DMS.Core/Models/MenuBean.cs中添加了Children属性以支持菜单树结构
- 更新了WPF层相关的菜单处理逻辑
- 修改了映射配置和视图模型中的菜单对象创建方式
- 这一更改简化了数据模型,消除了DTO与模型之间的重复定义,直接在各层之间使用MenuBean实体。
This commit is contained in:
2025-10-13 20:20:09 +08:00
parent e78a7981e1
commit 816827e5e9
21 changed files with 95 additions and 160 deletions

View File

@@ -9,6 +9,6 @@ public class CreateDeviceWithDetailsDto
{
public Device Device { get; set; } public VariableTable VariableTable { get; set; }
public MenuBeanDto DeviceMenu { get; set; } // 如果需要包含菜单信息
public MenuBeanDto VariableTableMenu { get; set; } // 如果需要包含菜单信息
public MenuBean DeviceMenu { get; set; } // 如果需要包含菜单信息
public MenuBean VariableTableMenu { get; set; } // 如果需要包含菜单信息
}

View File

@@ -15,6 +15,6 @@ namespace DMS.Application.DTOs
/// <summary>
/// 菜单项信息
/// </summary>
public MenuBeanDto MqttServerMenu { get; set; }
public MenuBean MqttServerMenu { get; set; }
}
}

View File

@@ -7,6 +7,6 @@ namespace DMS.Application.DTOs
{
public VariableTable VariableTable { get; set; }
public int DeviceId { get; set; }
public MenuBeanDto Menu { get; set; }
public MenuBean Menu { get; set; }
}
}

View File

@@ -1,64 +0,0 @@
using DMS.Core.Enums;
namespace DMS.Application.DTOs;
/// <summary>
/// 菜单数据传输对象DTO
/// 用于在应用程序层和表示层之间传输菜单数据特别是在UI上显示菜单项时使用。
/// </summary>
public class MenuBeanDto
{
/// <summary>
/// 菜单项的唯一标识符
/// </summary>
public int Id { get; set; }
/// <summary>
/// 父级菜单项的ID用于构建层级菜单结构
/// 如果为0表示为顶级菜单项
/// </summary>
public int ParentId { get; set; }
/// <summary>
/// 菜单项显示的标题文本
/// </summary>
public string Header { get; set; }
/// <summary>
/// 菜单项显示的图标资源路径或标识符
/// </summary>
public string Icon { get; set; }
/// <summary>
/// 菜单的类型,例如菜单关联的是设备还是变量表或者是MQTT
/// 用于区分不同类型的菜单项,决定点击菜单项时的行为
/// </summary>
public MenuType MenuType { get; set; }
/// <summary>
/// 菜单关联的数据ID例如设备Id变量表Id
/// 根据MenuType的不同此ID可以指向不同的数据实体
/// </summary>
public int TargetId { get; set; }
/// <summary>
/// 目标视图的键值,用于导航到特定的视图页面
/// </summary>
public string TargetViewKey { get; set; }
/// <summary>
/// 导航参数,传递给目标视图的额外参数信息
/// </summary>
public string NavigationParameter { get; set; }
/// <summary>
/// 菜单项在同级菜单中的显示顺序
/// 数值越小显示越靠前
/// </summary>
public int DisplayOrder { get; set; }
/// <summary>
/// 子菜单项集合,用于构建层级菜单结构
/// </summary>
public List<MenuBeanDto> Children { get; set; } = new List<MenuBeanDto>();
}