# 鉴权服务器与报表能量显示迁移说明 更新时间:2026-06-25 这份文档记录两项未必已经提交到仓库的手工修改,后续迁移到另一个版本项目时按这里的内容对照修改。 ## 1. 鉴权服务器地址 新的鉴权/API 服务器地址: ```text http://8.141.12.31:80/api/v1/ ``` 迁移时检查启动项目配置文件: ```text Txgy.EWS.Client.Start/App.config ``` 确认 `api_domain` 使用新地址: ```xml ``` 登录接口仍按现有代码拼接: ```text {api_domain}login/login ``` 也就是: ```text http://8.141.12.31:80/api/v1/login/login ``` 注意:WPF 编译后运行时实际读取的是输出目录中的 `Txgy.EWS.Client.Start.exe.config`。如果只改源码 `App.config`,需要重新编译,确保输出配置同步更新。 ## 2. 报表页能量显示 目标:在报表页面查询结果区域显示: - 事件总数 - 中等能量事件数 - 总能量 - 平均能量 - 最大能量 涉及文件: ```text Txgy.EWS.Client.PageModule/ViewModels/ReportViewModel.cs Txgy.EWS.Client.PageModule/Views/ReportView.xaml ``` ### 2.1 ReportViewModel 增加绑定属性 在 `SearchCount` 属性附近增加三个属性: ```csharp private double _totalEnergy = 0; public double TotalEnergy { get { return _totalEnergy; } set { SetProperty(ref _totalEnergy, value); } } private double _averageEnergy = 0; public double AverageEnergy { get { return _averageEnergy; } set { SetProperty(ref _averageEnergy, value); } } private double _maxEnergy = 0; public double MaxEnergy { get { return _maxEnergy; } set { SetProperty(ref _maxEnergy, value); } } ``` ### 2.2 查询后更新能量统计 在 `SearchEvents(...)` 方法中,查询结果列表全部构建完成后,原来通常会有: ```csharp SearchCount = results.Count; return results; ``` 改成: ```csharp SearchCount = results.Count; UpdateEnergyStats(results); return results; ``` 然后在 `SearchEvents(...)` 方法后增加: ```csharp private void UpdateEnergyStats(List results) { if (results == null || results.Count == 0) { TotalEnergy = 0; AverageEnergy = 0; MaxEnergy = 0; return; } TotalEnergy = Math.Round(results.Sum(rs => rs.Energy), 2); AverageEnergy = Math.Round(results.Average(rs => rs.Energy), 2); MaxEnergy = Math.Round(results.Max(rs => rs.Energy), 2); } ``` 前提:`ReportViewModel.cs` 已经有 `using System.Linq;` 和 `using System;`。当前项目已有这两个引用。 ### 2.3 ReportView.xaml 增加显示区域 原页面查询按钮区域下方已有“事件总数 / 中等能量事件”显示。迁移时可以把那段替换为下面这段,或者在原有区域后追加三个能量字段。 推荐替换片段: ```xml ``` 如果目标版本页面布局空间不足,可以使用 `WrapPanel` 避免文字挤出: ```xml ``` ### 2.4 验证点 迁移后至少验证: 1. 项目能通过 MSBuild 编译。 2. 报表页点击“查询”后,`事件总数` 正常变化。 3. `总能量 / 平均能量 / 最大能量` 能随查询结果更新。 4. 查询结果为空时,三个能量统计显示为 `0J`。