namespace Admin.NET.Plugin.AiDOP.Dto.S8; /// /// 大屏页面结构配置出参(GET /api/aidop/s8/dashboard/page-config)。 /// 面向四大屏启动渲染使用:只返回 enabled=true 的配置,按 layout_area + sort_no 排序。 /// 不替代 CRUD 接口 /api/aidop/s8/config/dashboard-cells,也不触发 ado_s8_exception 查询。 /// G-09 一期:DTO 不含 ShowInSidebar、FilterExpression、TenantId/FactoryId/Id、CreatedAt/UpdatedAt。 /// public class AdoS8PageConfigDto { public string PageCode { get; set; } = string.Empty; public List Cells { get; set; } = new(); } public class AdoS8PageConfigCellDto { /// 卡片编码(页面内唯一,前端 v-for key 锚点) public string CellCode { get; set; } = string.Empty; /// 卡片标题(可为空,前端按组件默认标题渲染) public string? CellTitle { get; set; } /// 前端图标 key(对应 @element-plus/icons-vue 组件名) public string? Icon { get; set; } /// 主布局区域:MODULES / ANALYSIS / SIDEBAR public string LayoutArea { get; set; } = "ANALYSIS"; /// 展示形态:STAGE_CARD / CATEGORY_CARD / CATEGORY_COMPACT / DEPT_CLUSTER / CUSTOM public string DisplayMode { get; set; } = "CATEGORY_CARD"; /// 页面内排序 public int SortNo { get; set; } /// 绑定类型:EXCEPTION_TYPE / AGGREGATE / CUSTOM public string BindingType { get; set; } = "CUSTOM"; /// binding_type=EXCEPTION_TYPE 时的异常类型编码 public string? ExceptionTypeCode { get; set; } /// binding_type=AGGREGATE 时的聚合范围 public string? AggregateScope { get; set; } /// 统计指标:OPEN_COUNT / FREQUENCY / AVG_DURATION / CLOSE_RATE public string StatMetric { get; set; } = "OPEN_COUNT"; /// 时间窗:TODAY / LAST_24H / LAST_7D / LAST_30D public string TimeWindow { get; set; } = "LAST_24H"; /// 部门聚合维度:OWNER / OCCUR public string DeptGroupBy { get; set; } = "OWNER"; /// 是否启用(接口仅返回 enabled=true,此字段为前端知情副本) public bool Enabled { get; set; } } /// page-config 查询入参 public class AdoS8PageConfigQueryDto { /// 页面编码:OVERVIEW / DELIVERY / PRODUCTION / SUPPLY public string PageCode { get; set; } = string.Empty; /// 租户 ID(0 = 仅全局基线;非 0 时会叠加工厂覆盖) public long TenantId { get; set; } = 0; /// 工厂 ID(0 = 仅全局基线;非 0 时会叠加工厂覆盖) public long FactoryId { get; set; } = 0; }