@* @page "/setting/boardsetting" *@ @page "/setting/boardsetting" @using EasyTemplate.Service @using EasyTemplate.Tool.Entity.App @inject NozzleService nozzleService @inject NavigationManager navigationManager @inject IJSRuntime JSRuntime

主板管理

返回油机列表
筛选油机ID
@if (filteredBoards != null) { @foreach (var board in filteredBoards) { } }
ID 所属油机ID IP地址 油枪数量 操作
@board.BoardId @board.EngineId @board.ip @(board.nozzles?.Count ?? 0) 管理油枪
@code { private List allBoards = new(); private List filteredBoards = new(); private List engines = new(); private TBoard currentBoard = new(); private string modalTitle = ""; private bool isEditMode = false; private bool showModal = false; private int? filterEngineId; protected override async Task OnInitializedAsync() { await LoadData(); // 检查URL参数 var uri = navigationManager.ToAbsoluteUri(navigationManager.Uri); if (Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query).TryGetValue("engineId", out var engineId)) { if (int.TryParse(engineId, out int id)) { filterEngineId = id; ApplyFilter(); } } } private async Task LoadData() { engines = await nozzleService.GetEnginesAsync(); allBoards = await nozzleService.GetBoardsAsync(); // 加载油枪信息 foreach (var board in allBoards) { board.nozzles = await nozzleService.GetNozzlesByBoardAsync(board.BoardId); } ApplyFilter(); } private void ApplyFilter() { if (filterEngineId.HasValue) { filteredBoards = allBoards.Where(b => b.EngineId == filterEngineId.Value).ToList(); } else { filteredBoards = new List(allBoards); } StateHasChanged(); } private void ClearFilter() { filterEngineId = null; ApplyFilter(); } private void ShowCreateModal() { currentBoard = new TBoard(); modalTitle = "添加主板"; isEditMode = false; showModal = true; StateHasChanged(); } private void ShowEditModal(TBoard board) { currentBoard = new TBoard { BoardId = board.BoardId, EngineId = board.EngineId, ip = board.ip }; modalTitle = "编辑主板"; isEditMode = true; showModal = true; StateHasChanged(); } private void CloseModal() { showModal = false; StateHasChanged(); } private async Task SaveBoard() { if (currentBoard.EngineId <= 0) { await JSRuntime.InvokeVoidAsync("alert", "请选择有效的油机ID"); return; } try { if (isEditMode) { await nozzleService.UpdateBoardAsync(currentBoard); } else { await nozzleService.CreateBoardAsync(currentBoard); } CloseModal(); await LoadData(); } catch (Exception ex) { await JSRuntime.InvokeVoidAsync("alert", $"操作失败: {ex.Message}"); } } private async Task DeleteBoard(int id) { var confirmed = await JSRuntime.InvokeAsync("confirm", "确定要删除这个主板吗?"); if (confirmed) { try { await nozzleService.DeleteBoardAsync(id); await LoadData(); } catch (Exception ex) { await JSRuntime.InvokeVoidAsync("alert", $"删除失败: {ex.Message}"); } } } }