@page "/" @rendermode InteractiveServer @using EasyTemplate.Tool.Util @attribute [ReuseTabsPage(Title = "主页", Pin = true, Closable = false, Order = 0)] @using Microsoft.AspNetCore.Components @using EasyTemplate.Service @using System.Timers @inject UdpListenerService us @*

@udpdata

*@ @* *@ Blazing Pizza
@{ int i = 0; foreach (var item in items) { i++; int num_page = ShowNozzleItem_Row * ShowNozzle_Col; if (i >= currentPage * num_page && i < (currentPage + 1) * num_page) {
} } }
@code { private Dictionary items = new Dictionary(); private const int ShowNozzleItem_Row = 8;//每行显示的枪数 private const int ShowNozzle_Col = 4;//每页显示的行数 int totalpage = 0; int currentPage = 0; private void OnPageChanged(int pageIndex) { currentPage = pageIndex; } private Timer timer; private bool isAutoRefreshEnabled = true; private DateTime lastUpdateTime = DateTime.Now; protected override async Task OnInitializedAsync() { await RefreshData(); StartTimer(); } private void StartTimer() { timer = new Timer(1000); // 1秒间隔 timer.Elapsed += async (sender, e) => await RefreshData(); timer.Start(); } private async Task RefreshData() { var nozzlestates = us.GetNozzleState(); try { // 更新UI await InvokeAsync(() => { items = nozzlestates;// mockData; lastUpdateTime = DateTime.Now; StateHasChanged(); }); } catch (Exception ex) { Console.WriteLine($"数据刷新失败: {ex.Message}"); } } private void ToggleAutoRefresh() { isAutoRefreshEnabled = !isAutoRefreshEnabled; if (isAutoRefreshEnabled) { StartTimer(); } else { timer?.Stop(); } } public void Dispose() { timer?.Stop(); timer?.Dispose(); } public class NozzleData { public string IconUrl { get; set; } public string Title { get; set; } public string Description { get; set; } public int warnstate { get; set; } public string Line1 { get; set; } public string Line2 { get; set; } public string Line3 { get; set; } } } @* WoW Change 12% DoD Change 11%
@Environment.MachineName @System.Runtime.InteropServices.RuntimeInformation.OSDescription @System.Runtime.InteropServices.RuntimeInformation.OSArchitecture @ComputerInfo.RAMUsage @ComputerInfo.SystemDiskUsage @Environment.MachineName @System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription @System.Diagnostics.Process.GetCurrentProcess().StartTime.ToString("yyyy-MM-dd HH:mm:ss")
@inject NavigationManager NavigationManager; @inject IMessageService MessageService; @inject IJSRuntime IJSRuntime; @code { protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { await NavigationManager.RedirectLogin(IJSRuntime); await Statistics(); await Information(); await ServiceStatistics(); } } private async Task ServiceStatistics() { try { using var con = Sql.Connect(); await con.Queryable().FirstAsync(); MySqlStatus = BadgeStatus.Success; MySqlText = "运行中"; } catch (Exception ex) { MySqlStatus = BadgeStatus.Error; MySqlText = $"服务异常({ex.Message})"; } StateHasChanged(); } private async Task Statistics() { SystemStatistics.ApiDaily = await Cache.Get($"request_{DateTime.Now.ToString("yyyyMMdd")}"); SystemStatistics.ApiTotal = await Cache.Get($"request_total"); } private async Task Information() { //windows环境 ComputerInfo = Computer.GetComputerInfo(); switch (ComputerInfo.RAMStatus) { default: case ComputerStatus.Normal: RAMStatus = BadgeStatus.Success; break; case ComputerStatus.Error: RAMStatus = BadgeStatus.Error; break; case ComputerStatus.Warning: RAMStatus = BadgeStatus.Warning; break; } switch (ComputerInfo.SystemDiskStatus) { default: case ComputerStatus.Normal: SystemDiskStatus = BadgeStatus.Success; break; case ComputerStatus.Error: SystemDiskStatus = BadgeStatus.Error; break; case ComputerStatus.Warning: SystemDiskStatus = BadgeStatus.Warning; break; } } IChartComponent chart1; private async Task OnTabChanged(string activeKey) { if (activeKey == "1") { } // await _saleChart.ChangeData(data.SalesData); //else // await _visitChart.ChangeData(data.SalesData); } private async Task onChart1_FirstRender(IChartComponent chart) { //var data1 = await ChartsDemoData.FireworksSalesAsync(NavigationManager, HttpClient); //chart1.ChangeData(data1); } readonly AreaConfig config1 = new AreaConfig() { XField = "Date", YField = "scales", XAxis = new ValueCatTimeAxis() { Range = new[] { 0, 1 }, TickCount = 5 }, AreaStyle = new GraphicStyle() { Fill = "l(270) 0:#ffffff 0.5:#7ec2f3 1:#1890ff" } }; /// /// /// private SystemStatistics SystemStatistics = new SystemStatistics(); /// /// /// private ComputerInfo ComputerInfo = new ComputerInfo(); /// /// /// private BadgeStatus RAMStatus { get; set; } /// /// /// private BadgeStatus SystemDiskStatus { get; set; } /// /// /// private BadgeStatus MySqlStatus { get; set; } /// /// /// private string MySqlText { get; set; } } *@