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

油枪管理

返回主板列表
筛选主板ID
@if (filteredNozzles != null) { @foreach (var nozzle in filteredNozzles) { } }
ID 所属油机ID 所属主板ID 节点 产品 禁用状态 MN码 操作
@nozzle.NozzleId @GetEngineIdByBoardId(nozzle.BoardId) @nozzle.BoardId @nozzle.node @nozzle.product @(nozzle.disable ? "是" : "否") @nozzle.mncode
@code { private List allNozzles = new(); private List filteredNozzles = new(); private List boards = new(); private List engines = new(); private Dictionary boardToEngineMap = new(); // 主板ID到油机ID的映射 private TNozzle currentNozzle = new(); private string modalTitle = ""; private bool isEditMode = false; private bool showModal = false; private int? filterBoardId; protected override async Task OnInitializedAsync() { await LoadData(); // 检查URL参数 var uri = navigationManager.ToAbsoluteUri(navigationManager.Uri); if (Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query).TryGetValue("boardId", out var boardId)) { if (int.TryParse(boardId, out int id)) { filterBoardId = id; ApplyFilter(); } } } private async Task LoadData() { engines = await nozzleService.GetEnginesAsync(); boards = await nozzleService.GetBoardsAsync(); allNozzles = await nozzleService.GetNozzlesAsync(); // 构建主板到油机的映射关系 BuildBoardToEngineMap(); ApplyFilter(); } private void BuildBoardToEngineMap() { boardToEngineMap.Clear(); foreach (var board in boards) { boardToEngineMap[board.BoardId] = board.EngineId; } } private int GetEngineIdByBoardId(int boardId) { return boardToEngineMap.TryGetValue(boardId, out int engineId) ? engineId : 0; } private void ApplyFilter() { if (filterBoardId.HasValue) { filteredNozzles = allNozzles.Where(n => n.BoardId == filterBoardId.Value).ToList(); } else { filteredNozzles = new List(allNozzles); } StateHasChanged(); } private void ClearFilter() { filterBoardId = null; ApplyFilter(); } private void ShowCreateModal() { currentNozzle = new TNozzle(); modalTitle = "添加油枪"; isEditMode = false; showModal = true; StateHasChanged(); } private void ShowEditModal(TNozzle nozzle) { currentNozzle = new TNozzle { NozzleId = nozzle.NozzleId, BoardId = nozzle.BoardId, node = nozzle.node, product = nozzle.product, disable = nozzle.disable, mncode = nozzle.mncode }; modalTitle = "编辑油枪"; isEditMode = true; showModal = true; StateHasChanged(); } private void CloseModal() { showModal = false; StateHasChanged(); } private async Task SaveNozzle() { if (currentNozzle.BoardId <= 0) { await JSRuntime.InvokeVoidAsync("alert", "请选择有效的主板ID"); return; } try { if (isEditMode) { await nozzleService.UpdateNozzleAsync(currentNozzle); } else { await nozzleService.CreateNozzleAsync(currentNozzle); } CloseModal(); await LoadData(); } catch (Exception ex) { await JSRuntime.InvokeVoidAsync("alert", $"操作失败: {ex.Message}"); } } private async Task DeleteNozzle(int id) { var confirmed = await JSRuntime.InvokeAsync("confirm", "确定要删除这个油枪吗?"); if (confirmed) { try { await nozzleService.DeleteNozzleAsync(id); await LoadData(); } catch (Exception ex) { await JSRuntime.InvokeVoidAsync("alert", $"删除失败: {ex.Message}"); } } } }