Setting.razor.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. using EasyTemplate.Tool;
  2. using Microsoft.JSInterop;
  3. using SqlSugar;
  4. namespace EasyTemplate.Blazor.Web.Components.Pages.Management.Setting;
  5. public partial class Setting
  6. {
  7. protected override async Task OnAfterRenderAsync(bool firstRender)
  8. {
  9. if (firstRender)
  10. {
  11. await NavigationManager.RedirectLogin(IJSRuntime);
  12. await Query();
  13. var area = await Area.AsQueryable().OrderBy(x => x.Sort).ToTreeAsync(x => x.Children, x => x.ParentCode, 0, x => x.AreaCode);
  14. Areas = area.Select(ConvertToAreaItem).ToList();
  15. StateHasChanged();
  16. }
  17. }
  18. private CascaderNode ConvertToAreaItem(SystemArea area)
  19. {
  20. return new CascaderNode
  21. {
  22. Value = area.Id.ToString(),
  23. Label = area.AreaName,
  24. Children = area.Children?.Select(ConvertToAreaItem).ToArray()
  25. };
  26. }
  27. private void OnChange(CascaderNode[] selectedNodes)
  28. {
  29. AreadIds = string.Join(",", selectedNodes.Select(x => x.Value));
  30. }
  31. /// <summary>
  32. /// 查
  33. /// </summary>
  34. /// <returns></returns>
  35. private async Task Query()
  36. {
  37. Loading = true;
  38. var data = await Repository.AsQueryable().FirstAsync();
  39. if (!string.IsNullOrWhiteSpace(data?.AreaIds))
  40. {
  41. var ids = data.AreaIds?.Split(',');
  42. data.LastAreadId = ids[^1].Trim();
  43. var area = Area.AsQueryable()
  44. .Where(item => SqlFunc.SplitIn(data.AreaIds, item.Id.ToString()))
  45. .Select(item => item.AreaName)
  46. .ToArray();
  47. data.Area = $"{string.Join(" ", area)} {data.Address}";
  48. }
  49. DataSource = data;
  50. Loading = false;
  51. }
  52. private async Task Update()
  53. {
  54. var data = DataSource;
  55. var flag = await Repository.AsUpdateable()
  56. .SetColumns(x => x.CompanyName == data.CompanyName)
  57. .SetColumns(x => x.CompanyNo == data.CompanyNo)
  58. .SetColumns(x => x.CopyRight == data.CopyRight)
  59. .SetColumns(x => x.RegisterDate == data.RegisterDate)
  60. .SetColumns(x => x.AreaIds == AreadIds)
  61. .SetColumns(x => x.Address == data.Address)
  62. .SetColumns(x => x.ContactPhone == data.ContactPhone)
  63. .SetColumns(x => x.ContactEmail == data.ContactEmail)
  64. .SetColumns(x => x.WebsiteUrl == data.WebsiteUrl)
  65. .Where(x=>x.Id == data.Id)
  66. .ExecuteCommandAsync() > 0;
  67. if (flag)
  68. {
  69. MessageService.Success("修改成功");
  70. }
  71. else
  72. {
  73. MessageService.Error("修改失败");
  74. }
  75. }
  76. /// <summary>
  77. /// 注入实例
  78. /// </summary>
  79. [Inject] SqlSugarRepository<SystemSetting> Repository { get; set; }
  80. /// <summary>
  81. ///
  82. /// </summary>
  83. [Inject] private SqlSugarRepository<SystemArea> Area { get; set; }
  84. /// <summary>
  85. ///
  86. /// </summary>
  87. [Inject] NavigationManager NavigationManager { get; set; }
  88. /// <summary>
  89. ///
  90. /// </summary>
  91. [Inject] IJSRuntime IJSRuntime { get; set; }
  92. /// <summary>
  93. ///
  94. /// </summary>
  95. private string AreadIds { get; set; }
  96. /// <summary>
  97. ///
  98. /// </summary>
  99. private List<CascaderNode> Areas { get; set; } = new List<CascaderNode>();
  100. /// <summary>
  101. ///
  102. /// </summary>
  103. [Inject] IMessageService MessageService { get; set; }
  104. /// <summary>
  105. ///
  106. /// </summary>
  107. private IForm Form;
  108. /// <summary>
  109. ///
  110. /// </summary>
  111. private SystemSetting DataSource;
  112. /// <summary>
  113. ///
  114. /// </summary>
  115. private bool Loading = false;
  116. }