EngineIdSelector.razor 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <div class="modal-backdrop fade show" style="background-color: rgba(0,0,0,0.5);"></div>
  2. <div class="modal fade show" tabindex="-1" style="display: block;">
  3. <div class="modal-dialog modal-lg">
  4. <div class="modal-content">
  5. <div class="modal-header">
  6. <h5 class="modal-title">选择油机ID (1-36)</h5>
  7. <button type="button" class="btn-close" @onclick="OnCancel"></button>
  8. </div>
  9. <div class="modal-body">
  10. <div class="container-fluid">
  11. <div class="row">
  12. @for (int i = 1; i <= 36; i++)
  13. {
  14. var isUsed = usedEngineIds.Contains(i);
  15. var item = i;
  16. <div class="col-2 mb-2">
  17. <button class="btn w-100 @(isUsed ? "btn-secondary disabled" : "btn-outline-primary")"
  18. disabled="@isUsed"
  19. @onclick="() => OnSelect(item)">
  20. @item
  21. </button>
  22. </div>
  23. }
  24. </div>
  25. </div>
  26. </div>
  27. <div class="modal-footer">
  28. <button type="button" class="btn btn-secondary" @onclick="OnCancel">取消</button>
  29. </div>
  30. </div>
  31. </div>
  32. </div>
  33. @code {
  34. [Parameter] public List<int> usedEngineIds { get; set; } = new();
  35. [Parameter] public EventCallback<int> OnSelected { get; set; }
  36. [Parameter] public EventCallback OnCancelled { get; set; }
  37. private async Task OnSelect(int id)
  38. {
  39. await OnSelected.InvokeAsync(id);
  40. }
  41. private async Task OnCancel()
  42. {
  43. await OnCancelled.InvokeAsync();
  44. }
  45. }