|
@@ -16,7 +16,7 @@
|
|
|
<i class="fas fa-plus"></i>
|
|
<i class="fas fa-plus"></i>
|
|
|
</button>
|
|
</button>
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<!-- 显示所有油机选项 -->
|
|
<!-- 显示所有油机选项 -->
|
|
|
@* <div class="list-group mb-3">
|
|
@* <div class="list-group mb-3">
|
|
|
<button class="list-group-item list-group-item-action @(selectedEngineId == 0 ? "active" : "")"
|
|
<button class="list-group-item list-group-item-action @(selectedEngineId == 0 ? "active" : "")"
|
|
@@ -24,14 +24,14 @@
|
|
|
显示所有油机
|
|
显示所有油机
|
|
|
</button>
|
|
</button>
|
|
|
</div> *@
|
|
</div> *@
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<!-- 油机列表 -->
|
|
<!-- 油机列表 -->
|
|
|
<div class="list-group flex-grow-1" style="max-height: 400px; overflow-y: auto; margin-bottom: 50px;">
|
|
<div class="list-group flex-grow-1" style="max-height: 400px; overflow-y: auto; margin-bottom: 50px;">
|
|
|
@if (paginatedEngines != null)
|
|
@if (paginatedEngines != null)
|
|
|
{
|
|
{
|
|
|
@foreach (var engine in paginatedEngines)
|
|
@foreach (var engine in paginatedEngines)
|
|
|
{
|
|
{
|
|
|
- <div @onclick="() => SelectEngine(engine.EngineId)" class="list-group-item d-flex justify-content-between align-items-center py-1 @(selectedEngineId == engine.EngineId ? "active" : "")">
|
|
|
|
|
|
|
+ <div @onclick="() => SelectEngine(engine.EngineId)" class="list-group-item d-flex justify-content-between align-items-center py-1 @(selectedEngineId == engine.EngineId ? "active" : "")">
|
|
|
<div style="cursor: pointer;">
|
|
<div style="cursor: pointer;">
|
|
|
<div><strong>油机 @engine.EngineId</strong></div>
|
|
<div><strong>油机 @engine.EngineId</strong></div>
|
|
|
</div>
|
|
</div>
|
|
@@ -47,7 +47,7 @@
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<!-- 油机分页控件 -->
|
|
<!-- 油机分页控件 -->
|
|
|
@if (engines != null && engines.Count > pageSize)
|
|
@if (engines != null && engines.Count > pageSize)
|
|
|
{
|
|
{
|
|
@@ -79,8 +79,8 @@
|
|
|
<i class="fas fa-plus"></i>
|
|
<i class="fas fa-plus"></i>
|
|
|
</button>
|
|
</button>
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
@* <!-- 显示所有主板选项 -->
|
|
@* <!-- 显示所有主板选项 -->
|
|
|
<div class="list-group mb-3">
|
|
<div class="list-group mb-3">
|
|
|
<button class="list-group-item list-group-item-action @(selectedBoardId == 0 ? "active" : "")"
|
|
<button class="list-group-item list-group-item-action @(selectedBoardId == 0 ? "active" : "")"
|
|
@@ -88,7 +88,7 @@
|
|
|
显示所有主板
|
|
显示所有主板
|
|
|
</button>
|
|
</button>
|
|
|
</div> *@
|
|
</div> *@
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<!-- 主板列表 -->
|
|
<!-- 主板列表 -->
|
|
|
<div class="list-group flex-grow-1" style="max-height: 400px; overflow-y: auto; margin-bottom: 50px;">
|
|
<div class="list-group flex-grow-1" style="max-height: 400px; overflow-y: auto; margin-bottom: 50px;">
|
|
|
@if (paginatedBoards != null)
|
|
@if (paginatedBoards != null)
|
|
@@ -111,7 +111,7 @@
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<!-- 主板分页控件 -->
|
|
<!-- 主板分页控件 -->
|
|
|
@if (filteredBoards != null && filteredBoards.Count > pageSize)
|
|
@if (filteredBoards != null && filteredBoards.Count > pageSize)
|
|
|
{
|
|
{
|
|
@@ -143,7 +143,7 @@
|
|
|
<i class="fas fa-plus"></i>
|
|
<i class="fas fa-plus"></i>
|
|
|
</button>
|
|
</button>
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<!-- 油枪列表 -->
|
|
<!-- 油枪列表 -->
|
|
|
<div class="list-group flex-grow-1" style="margin-bottom: 50px;">
|
|
<div class="list-group flex-grow-1" style="margin-bottom: 50px;">
|
|
|
@if (paginatedNozzles != null)
|
|
@if (paginatedNozzles != null)
|
|
@@ -167,7 +167,7 @@
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<!-- 油枪分页控件 -->
|
|
<!-- 油枪分页控件 -->
|
|
|
@if (filteredNozzles != null && filteredNozzles.Count > pageSize)
|
|
@if (filteredNozzles != null && filteredNozzles.Count > pageSize)
|
|
|
{
|
|
{
|
|
@@ -336,37 +336,37 @@
|
|
|
private List<TNozzle> allNozzles = new();
|
|
private List<TNozzle> allNozzles = new();
|
|
|
private List<TNozzle> filteredNozzles = new();
|
|
private List<TNozzle> filteredNozzles = new();
|
|
|
private List<TBoard> boards = new(); // 用于下拉选择
|
|
private List<TBoard> boards = new(); // 用于下拉选择
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 分页相关
|
|
// 分页相关
|
|
|
private const int pageSize = 8; // 每页显示条数
|
|
private const int pageSize = 8; // 每页显示条数
|
|
|
private int currentPage_Engine = 1;
|
|
private int currentPage_Engine = 1;
|
|
|
private int totalPages_Engine => engines == null ? 0 : (int)Math.Ceiling((double)engines.Count / pageSize);
|
|
private int totalPages_Engine => engines == null ? 0 : (int)Math.Ceiling((double)engines.Count / pageSize);
|
|
|
private List<TEngine> paginatedEngines => engines?.Skip((currentPage_Engine - 1) * pageSize).Take(pageSize).ToList() ?? new List<TEngine>();
|
|
private List<TEngine> paginatedEngines => engines?.Skip((currentPage_Engine - 1) * pageSize).Take(pageSize).ToList() ?? new List<TEngine>();
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
private int currentPage_Board = 1;
|
|
private int currentPage_Board = 1;
|
|
|
private int totalPages_Board => filteredBoards == null ? 0 : (int)Math.Ceiling((double)filteredBoards.Count / pageSize);
|
|
private int totalPages_Board => filteredBoards == null ? 0 : (int)Math.Ceiling((double)filteredBoards.Count / pageSize);
|
|
|
private List<TBoard> paginatedBoards => filteredBoards?.Skip((currentPage_Board - 1) * pageSize).Take(pageSize).ToList() ?? new List<TBoard>();
|
|
private List<TBoard> paginatedBoards => filteredBoards?.Skip((currentPage_Board - 1) * pageSize).Take(pageSize).ToList() ?? new List<TBoard>();
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
private int currentPage_Nozzle = 1;
|
|
private int currentPage_Nozzle = 1;
|
|
|
private int totalPages_Nozzle => filteredNozzles == null ? 0 : (int)Math.Ceiling((double)filteredNozzles.Count / pageSize);
|
|
private int totalPages_Nozzle => filteredNozzles == null ? 0 : (int)Math.Ceiling((double)filteredNozzles.Count / pageSize);
|
|
|
private List<TNozzle> paginatedNozzles => filteredNozzles?.Skip((currentPage_Nozzle - 1) * pageSize).Take(pageSize).ToList() ?? new List<TNozzle>();
|
|
private List<TNozzle> paginatedNozzles => filteredNozzles?.Skip((currentPage_Nozzle - 1) * pageSize).Take(pageSize).ToList() ?? new List<TNozzle>();
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 当前选中项
|
|
// 当前选中项
|
|
|
private int selectedEngineId = 0;
|
|
private int selectedEngineId = 0;
|
|
|
private int selectedBoardId = 0;
|
|
private int selectedBoardId = 0;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 油机相关
|
|
// 油机相关
|
|
|
private TEngine currentEngine = new();
|
|
private TEngine currentEngine = new();
|
|
|
private string engineModalTitle = "";
|
|
private string engineModalTitle = "";
|
|
|
private bool isEngineEditMode = false;
|
|
private bool isEngineEditMode = false;
|
|
|
private bool showEngineModal = false;
|
|
private bool showEngineModal = false;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 主板相关
|
|
// 主板相关
|
|
|
private TBoard currentBoard = new();
|
|
private TBoard currentBoard = new();
|
|
|
private string boardModalTitle = "";
|
|
private string boardModalTitle = "";
|
|
|
private bool isBoardEditMode = false;
|
|
private bool isBoardEditMode = false;
|
|
|
private bool showBoardModal = false;
|
|
private bool showBoardModal = false;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 油枪相关
|
|
// 油枪相关
|
|
|
private TNozzle currentNozzle = new();
|
|
private TNozzle currentNozzle = new();
|
|
|
private string nozzleModalTitle = "";
|
|
private string nozzleModalTitle = "";
|
|
@@ -387,16 +387,16 @@
|
|
|
allBoards = await nozzleService.GetBoardsAsync();
|
|
allBoards = await nozzleService.GetBoardsAsync();
|
|
|
allNozzles = await nozzleService.GetNozzlesAsync();
|
|
allNozzles = await nozzleService.GetNozzlesAsync();
|
|
|
boards = new List<TBoard>(allBoards); // 用于下拉选择
|
|
boards = new List<TBoard>(allBoards); // 用于下拉选择
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 默认显示所有数据
|
|
// 默认显示所有数据
|
|
|
//filteredBoards = new List<TBoard>(allBoards);
|
|
//filteredBoards = new List<TBoard>(allBoards);
|
|
|
//filteredNozzles = new List<TNozzle>(allNozzles);
|
|
//filteredNozzles = new List<TNozzle>(allNozzles);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 重置分页
|
|
// 重置分页
|
|
|
currentPage_Engine = 1;
|
|
currentPage_Engine = 1;
|
|
|
currentPage_Board = 1;
|
|
currentPage_Board = 1;
|
|
|
currentPage_Nozzle = 1;
|
|
currentPage_Nozzle = 1;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
StateHasChanged();
|
|
StateHasChanged();
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
@@ -414,7 +414,7 @@
|
|
|
StateHasChanged();
|
|
StateHasChanged();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
private void ChangePage_Board(int page)
|
|
private void ChangePage_Board(int page)
|
|
|
{
|
|
{
|
|
|
if (page >= 1 && page <= totalPages_Board)
|
|
if (page >= 1 && page <= totalPages_Board)
|
|
@@ -423,7 +423,7 @@
|
|
|
StateHasChanged();
|
|
StateHasChanged();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
private void ChangePage_Nozzle(int page)
|
|
private void ChangePage_Nozzle(int page)
|
|
|
{
|
|
{
|
|
|
if (page >= 1 && page <= totalPages_Nozzle)
|
|
if (page >= 1 && page <= totalPages_Nozzle)
|
|
@@ -438,7 +438,7 @@
|
|
|
{
|
|
{
|
|
|
selectedEngineId = engineId;
|
|
selectedEngineId = engineId;
|
|
|
selectedBoardId = 0; // 重置主板选择
|
|
selectedBoardId = 0; // 重置主板选择
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
if (engineId == 0)
|
|
if (engineId == 0)
|
|
|
{
|
|
{
|
|
|
// 显示所有主板和油枪
|
|
// 显示所有主板和油枪
|
|
@@ -453,11 +453,11 @@
|
|
|
var boardIds = filteredBoards.Select(b => b.BoardId).ToList();
|
|
var boardIds = filteredBoards.Select(b => b.BoardId).ToList();
|
|
|
filteredNozzles = allNozzles.Where(n => boardIds.Contains(n.BoardId)).ToList();
|
|
filteredNozzles = allNozzles.Where(n => boardIds.Contains(n.BoardId)).ToList();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 重置分页
|
|
// 重置分页
|
|
|
currentPage_Board = 1;
|
|
currentPage_Board = 1;
|
|
|
currentPage_Nozzle = 1;
|
|
currentPage_Nozzle = 1;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
StateHasChanged();
|
|
StateHasChanged();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -465,7 +465,7 @@
|
|
|
private void SelectBoard(int boardId)
|
|
private void SelectBoard(int boardId)
|
|
|
{
|
|
{
|
|
|
selectedBoardId = boardId;
|
|
selectedBoardId = boardId;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
if (boardId == 0)
|
|
if (boardId == 0)
|
|
|
{
|
|
{
|
|
|
// 如果选择了"显示所有主板",则显示当前筛选条件下的所有油枪
|
|
// 如果选择了"显示所有主板",则显示当前筛选条件下的所有油枪
|
|
@@ -484,10 +484,10 @@
|
|
|
// 只显示选定主板的油枪
|
|
// 只显示选定主板的油枪
|
|
|
filteredNozzles = allNozzles.Where(n => n.BoardId == boardId).ToList();
|
|
filteredNozzles = allNozzles.Where(n => n.BoardId == boardId).ToList();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 重置油枪分页
|
|
// 重置油枪分页
|
|
|
currentPage_Nozzle = 1;
|
|
currentPage_Nozzle = 1;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
StateHasChanged();
|
|
StateHasChanged();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -557,7 +557,7 @@
|
|
|
{
|
|
{
|
|
|
await nozzleService.DeleteEngineAsync(id);
|
|
await nozzleService.DeleteEngineAsync(id);
|
|
|
await LoadAllData();
|
|
await LoadAllData();
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 如果删除的是当前选中的油机,重置选择
|
|
// 如果删除的是当前选中的油机,重置选择
|
|
|
if (selectedEngineId == id)
|
|
if (selectedEngineId == id)
|
|
|
{
|
|
{
|
|
@@ -579,7 +579,7 @@
|
|
|
JSRuntime.InvokeVoidAsync("alert", "请先选择一个油机");
|
|
JSRuntime.InvokeVoidAsync("alert", "请先选择一个油机");
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
currentBoard = new TBoard { EngineId = selectedEngineId };
|
|
currentBoard = new TBoard { EngineId = selectedEngineId };
|
|
|
boardModalTitle = "添加主板";
|
|
boardModalTitle = "添加主板";
|
|
|
isBoardEditMode = false;
|
|
isBoardEditMode = false;
|
|
@@ -649,7 +649,7 @@
|
|
|
{
|
|
{
|
|
|
await nozzleService.DeleteBoardAsync(id);
|
|
await nozzleService.DeleteBoardAsync(id);
|
|
|
await LoadAllData();
|
|
await LoadAllData();
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 如果删除的是当前选中的主板,重置选择
|
|
// 如果删除的是当前选中的主板,重置选择
|
|
|
if (selectedBoardId == id)
|
|
if (selectedBoardId == id)
|
|
|
{
|
|
{
|
|
@@ -671,7 +671,7 @@
|
|
|
JSRuntime.InvokeVoidAsync("alert", "请先选择一个主板");
|
|
JSRuntime.InvokeVoidAsync("alert", "请先选择一个主板");
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
currentNozzle = new TNozzle { BoardId = selectedBoardId };
|
|
currentNozzle = new TNozzle { BoardId = selectedBoardId };
|
|
|
nozzleModalTitle = "添加油枪";
|
|
nozzleModalTitle = "添加油枪";
|
|
|
isNozzleEditMode = false;
|
|
isNozzleEditMode = false;
|
|
@@ -722,6 +722,17 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
CloseNozzleModal();
|
|
CloseNozzleModal();
|
|
|
|
|
+
|
|
|
|
|
+ // 更新全局状态
|
|
|
|
|
+ if (isNozzleEditMode)
|
|
|
|
|
+ {
|
|
|
|
|
+ UpdateNozzleInGlobalState(currentNozzle);
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ AddNozzleToGlobalState(currentNozzle);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
await LoadAllData();
|
|
await LoadAllData();
|
|
|
// 重新应用当前筛选
|
|
// 重新应用当前筛选
|
|
|
if (selectedBoardId > 0)
|
|
if (selectedBoardId > 0)
|
|
@@ -747,8 +758,12 @@
|
|
|
try
|
|
try
|
|
|
{
|
|
{
|
|
|
await nozzleService.DeleteNozzleAsync(id);
|
|
await nozzleService.DeleteNozzleAsync(id);
|
|
|
|
|
+
|
|
|
|
|
+ // 从全局状态中移除
|
|
|
|
|
+ RemoveNozzleFromGlobalState(id);
|
|
|
|
|
+
|
|
|
await LoadAllData();
|
|
await LoadAllData();
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 重新应用当前筛选
|
|
// 重新应用当前筛选
|
|
|
if (selectedBoardId > 0)
|
|
if (selectedBoardId > 0)
|
|
|
{
|
|
{
|
|
@@ -765,31 +780,31 @@
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// ID选择器相关状态
|
|
// ID选择器相关状态
|
|
|
private bool showEngineIdSelector = false;
|
|
private bool showEngineIdSelector = false;
|
|
|
private bool showBoardIdSelector = false;
|
|
private bool showBoardIdSelector = false;
|
|
|
private bool showNozzleIdSelector = false;
|
|
private bool showNozzleIdSelector = false;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 显示ID选择器
|
|
// 显示ID选择器
|
|
|
private void ShowEngineIdSelector()
|
|
private void ShowEngineIdSelector()
|
|
|
{
|
|
{
|
|
|
showEngineIdSelector = true;
|
|
showEngineIdSelector = true;
|
|
|
StateHasChanged();
|
|
StateHasChanged();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
private void ShowBoardIdSelector()
|
|
private void ShowBoardIdSelector()
|
|
|
{
|
|
{
|
|
|
showBoardIdSelector = true;
|
|
showBoardIdSelector = true;
|
|
|
StateHasChanged();
|
|
StateHasChanged();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
private void ShowNozzleIdSelector()
|
|
private void ShowNozzleIdSelector()
|
|
|
{
|
|
{
|
|
|
showNozzleIdSelector = true;
|
|
showNozzleIdSelector = true;
|
|
|
StateHasChanged();
|
|
StateHasChanged();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// ID选择回调
|
|
// ID选择回调
|
|
|
private void OnEngineIdSelected(int id)
|
|
private void OnEngineIdSelected(int id)
|
|
|
{
|
|
{
|
|
@@ -797,55 +812,126 @@
|
|
|
showEngineIdSelector = false;
|
|
showEngineIdSelector = false;
|
|
|
StateHasChanged();
|
|
StateHasChanged();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
private void OnBoardIdSelected(int id)
|
|
private void OnBoardIdSelected(int id)
|
|
|
{
|
|
{
|
|
|
currentBoard.BoardId = id;
|
|
currentBoard.BoardId = id;
|
|
|
showBoardIdSelector = false;
|
|
showBoardIdSelector = false;
|
|
|
StateHasChanged();
|
|
StateHasChanged();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
private void OnNozzleIdSelected(int id)
|
|
private void OnNozzleIdSelected(int id)
|
|
|
{
|
|
{
|
|
|
currentNozzle.NozzleId = id;
|
|
currentNozzle.NozzleId = id;
|
|
|
showNozzleIdSelector = false;
|
|
showNozzleIdSelector = false;
|
|
|
StateHasChanged();
|
|
StateHasChanged();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 取消选择
|
|
// 取消选择
|
|
|
private void CancelEngineIdSelection()
|
|
private void CancelEngineIdSelection()
|
|
|
{
|
|
{
|
|
|
showEngineIdSelector = false;
|
|
showEngineIdSelector = false;
|
|
|
StateHasChanged();
|
|
StateHasChanged();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
private void CancelBoardIdSelection()
|
|
private void CancelBoardIdSelection()
|
|
|
{
|
|
{
|
|
|
showBoardIdSelector = false;
|
|
showBoardIdSelector = false;
|
|
|
StateHasChanged();
|
|
StateHasChanged();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
private void CancelNozzleIdSelection()
|
|
private void CancelNozzleIdSelection()
|
|
|
{
|
|
{
|
|
|
showNozzleIdSelector = false;
|
|
showNozzleIdSelector = false;
|
|
|
StateHasChanged();
|
|
StateHasChanged();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 获取已使用的ID列表
|
|
// 获取已使用的ID列表
|
|
|
private List<int> GetUsedEngineIds()
|
|
private List<int> GetUsedEngineIds()
|
|
|
{
|
|
{
|
|
|
return engines?.Select(e => e.EngineId).ToList() ?? new List<int>();
|
|
return engines?.Select(e => e.EngineId).ToList() ?? new List<int>();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
private List<int> GetUsedBoardIds()
|
|
private List<int> GetUsedBoardIds()
|
|
|
{
|
|
{
|
|
|
return allBoards?.Select(b => b.BoardId).ToList() ?? new List<int>();
|
|
return allBoards?.Select(b => b.BoardId).ToList() ?? new List<int>();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
private List<int> GetUsedNozzleIds()
|
|
private List<int> GetUsedNozzleIds()
|
|
|
{
|
|
{
|
|
|
return allNozzles?.Select(n => n.NozzleId).ToList() ?? new List<int>();
|
|
return allNozzles?.Select(n => n.NozzleId).ToList() ?? new List<int>();
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // ===== 全局油枪状态管理 =====
|
|
|
|
|
+
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 添加油枪到全局状态
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ private void AddNozzleToGlobalState(TNozzle nozzle)
|
|
|
|
|
+ {
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+ if (!Service.GlobalTool.g_mNozzleState.ContainsKey(nozzle.NozzleId))
|
|
|
|
|
+ {
|
|
|
|
|
+ var nozzleState = new NozzleState
|
|
|
|
|
+ {
|
|
|
|
|
+ noz = nozzle.NozzleId,
|
|
|
|
|
+ VLR = "0",
|
|
|
|
|
+ oil = nozzle.product.ToString()+"#",
|
|
|
|
|
+ nozzlestate = Service.GlobalTool.NozzleState_Offline,
|
|
|
|
|
+ warnstate = Service.GlobalTool.WarningState_Normal
|
|
|
|
|
+ };
|
|
|
|
|
+ Service.GlobalTool.g_mNozzleState.Add(nozzle.NozzleId, nozzleState);
|
|
|
|
|
+ Console.WriteLine($"已添加油枪 {nozzle.NozzleId} 到全局状态");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (Exception ex)
|
|
|
|
|
+ {
|
|
|
|
|
+ Console.WriteLine($"添加油枪到全局状态失败:{ex.Message}");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 更新全局状态中的油枪信息
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ private void UpdateNozzleInGlobalState(TNozzle nozzle)
|
|
|
|
|
+ {
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+ if (Service.GlobalTool.g_mNozzleState.ContainsKey(nozzle.NozzleId))
|
|
|
|
|
+ {
|
|
|
|
|
+ // 只更新状态,不改变其他运行时数据
|
|
|
|
|
+ var existingState = Service.GlobalTool.g_mNozzleState[nozzle.NozzleId];
|
|
|
|
|
+ existingState.oil = nozzle.product.ToString() + "#";
|
|
|
|
|
+
|
|
|
|
|
+ // 如果需要,可以在这里更新特定字段
|
|
|
|
|
+ Console.WriteLine($"已更新油枪 {nozzle.NozzleId} 的全局状态");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (Exception ex)
|
|
|
|
|
+ {
|
|
|
|
|
+ Console.WriteLine($"更新油枪全局状态失败:{ex.Message}");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 从全局状态中移除油枪
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ private void RemoveNozzleFromGlobalState(int nozzleId)
|
|
|
|
|
+ {
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+ if (Service.GlobalTool.g_mNozzleState.ContainsKey(nozzleId))
|
|
|
|
|
+ {
|
|
|
|
|
+ Service.GlobalTool.g_mNozzleState.Remove(nozzleId);
|
|
|
|
|
+ Console.WriteLine($"已从全局状态移除油枪 {nozzleId}");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (Exception ex)
|
|
|
|
|
+ {
|
|
|
|
|
+ Console.WriteLine($"从全局状态移除油枪失败:{ex.Message}");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
<!-- ID选择器组件 -->
|
|
<!-- ID选择器组件 -->
|