Dict.razor.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. using AntDesign.TableModels;
  2. using EasyTemplate.Tool;
  3. using Microsoft.AspNetCore.Components;
  4. using Microsoft.JSInterop;
  5. using SqlSugar;
  6. namespace EasyTemplate.Blazor.Web.Components.Pages.Management.Dict;
  7. public partial class Dict
  8. {
  9. protected override async Task OnAfterRenderAsync(bool firstRender)
  10. {
  11. if (firstRender)
  12. {
  13. await NavigationManager.RedirectLogin(IJSRuntime);
  14. //await Query();
  15. }
  16. }
  17. /// <summary>
  18. /// 查
  19. /// </summary>
  20. /// <returns></returns>
  21. private async Task Query()
  22. {
  23. Loading = true;
  24. RefAsync<int> total = 0;
  25. var res = await _repository.AsQueryable()
  26. .WhereIF(!string.IsNullOrWhiteSpace(Q_Name), x => x.KeyName.Contains(Q_Name))
  27. .OrderByDescending(x => x.Id)
  28. .ToPageListAsync(Pi, Ps, total);
  29. Total = total.Value;
  30. DataSource = res;
  31. Loading = false;
  32. //_table.ReloadData();
  33. }
  34. /// <summary>
  35. /// 增/改
  36. /// </summary>
  37. /// <param name="data"></param>
  38. /// <returns></returns>
  39. private async Task<bool> InsertOrUpdate(SystemDictionary data)
  40. {
  41. if (data.Id == 0)
  42. {
  43. if (_repository.IsAny(x=>x.KeyName.ToLower() == data.KeyName.ToLower()))
  44. {
  45. MessageService.Error("键值已存在");
  46. return false;
  47. }
  48. return await _repository.InsertAsync(data);
  49. }
  50. else
  51. {
  52. if (_repository.IsAny(x => x.KeyName.ToLower() == data.KeyName.ToLower() && x.Id != data.Id))
  53. {
  54. MessageService.Error("键值已存在");
  55. return false;
  56. }
  57. return await _repository.UpdateAsync(data);
  58. }
  59. }
  60. /// <summary>
  61. /// 删除
  62. /// </summary>
  63. /// <param name="row"></param>
  64. /// <returns></returns>
  65. private async Task Delete(SystemDictionary row)
  66. {
  67. if (!await Comfirm($"确认删除 [{row.KeyName}] ?")) return;
  68. var flag = await _repository.AsUpdateable()
  69. .SetColumns(x => x.IsDelete == true)
  70. .Where(x => x.Id == row.Id)
  71. .ExecuteCommandAsync() > 0;
  72. Table.ReloadData(Pi, Ps);
  73. }
  74. /// <summary>
  75. /// 重置查询
  76. /// </summary>
  77. private async Task ResetQuery()
  78. {
  79. Q_Name = string.Empty;
  80. Pi = 1;
  81. await Query();
  82. }
  83. private async Task OnChange(QueryModel<SystemDictionary> query)
  84. => await Query();
  85. private async Task Search()
  86. => await Query();
  87. /// <summary>
  88. /// 注入实例
  89. /// </summary>
  90. [Inject] private SqlSugarRepository<SystemDictionary> _repository { get; set; }
  91. /// <summary>
  92. ///
  93. /// </summary>
  94. [Inject] NavigationManager NavigationManager { get; set; }
  95. /// <summary>
  96. /// 账号
  97. /// </summary>
  98. private string Q_Name { get; set; }
  99. /// <summary>
  100. ///
  101. /// </summary>
  102. [Inject] IJSRuntime IJSRuntime { get; set; }
  103. /// <summary>
  104. ///
  105. /// </summary>
  106. private ITable Table;
  107. /// <summary>
  108. ///
  109. /// </summary>
  110. private IEnumerable<SystemDictionary> SelectedRows = [];
  111. /// <summary>
  112. ///
  113. /// </summary>
  114. private List<SystemDictionary> DataSource;
  115. /// <summary>
  116. ///
  117. /// </summary>
  118. private int Pi = 1;
  119. /// <summary>
  120. ///
  121. /// </summary>
  122. private int Ps = 20;
  123. /// <summary>
  124. ///
  125. /// </summary>
  126. private int Total;
  127. /// <summary>
  128. ///
  129. /// </summary>
  130. private bool Loading = false;
  131. /// <summary>
  132. ///
  133. /// </summary>
  134. Func<PaginationTotalContext, string> ShowTotal => x => $"总共 {Total} 条";
  135. }