StaffAutoComplete.razor.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using AntDesign;
  2. using Microsoft.AspNetCore.Components;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7. using wispro.sp.entity;
  8. using wispro.sp.web.Services;
  9. namespace wispro.sp.web.Components
  10. {
  11. public partial class StaffAutoComplete
  12. {
  13. private List<Staff> ShowStaffs = new List<Staff>();
  14. [Parameter]
  15. public string SelectName { get; set; }
  16. [Parameter]
  17. public EventCallback<string> SelectNameChanged { get; set; }
  18. [Parameter]
  19. public List<Staff> Staffs { get; set; }
  20. [Parameter]
  21. public EventCallback<Staff> OnSelected { get; set; }
  22. [Inject] IUserService _UserService { get; set; }
  23. protected override async System.Threading.Tasks.Task OnInitializedAsync()
  24. {
  25. base.OnInitialized();
  26. if (Staffs == null)
  27. {
  28. Staffs = await _UserService.GetAll();
  29. ShowStaffs = Staffs;
  30. }
  31. }
  32. void OnSelectionChange(AutoCompleteOption item)
  33. {
  34. SelectNameChanged.InvokeAsync(item.Value.ToString());
  35. if (OnSelected.HasDelegate)
  36. {
  37. Staff obj = ShowStaffs.FirstOrDefault<Staff>(p => p.Name == item.Value.ToString());
  38. OnSelected.InvokeAsync(obj);
  39. }
  40. }
  41. void OnInput(ChangeEventArgs e)
  42. {
  43. var v = e.Value.ToString();
  44. this.ShowStaffs = Staffs.Where<Staff>(s => s.Name.Contains(v)).ToList();
  45. }
  46. }
  47. }