using EasyTemplate.Tool;
using Microsoft.JSInterop;
using SqlSugar;
namespace EasyTemplate.Blazor.Web.Components.Pages.Management.Setting;
public partial class Setting
{
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
try
{
await NavigationManager.RedirectLogin(IJSRuntime);
await Query();
var area = await Area.AsQueryable().OrderBy(x => x.Sort).ToTreeAsync(x => x.Children, x => x.ParentCode, 0, x => x.AreaCode);
Areas = area.Select(ConvertToAreaItem).ToList();
StateHasChanged();
}
catch (Exception ex)
{
// 添加详细的错误日志
Console.WriteLine($"系统设置页面加载错误: {ex.Message}");
Console.WriteLine($"堆栈跟踪: {ex.StackTrace}");
// 可以考虑显示友好的错误提示给用户
}
}
}
private CascaderNode ConvertToAreaItem(SystemArea area)
{
return new CascaderNode
{
Value = area.Id.ToString(),
Label = area.AreaName,
Children = area.Children?.Select(ConvertToAreaItem).ToArray()
};
}
private void OnChange(CascaderNode[] selectedNodes)
{
AreadIds = string.Join(",", selectedNodes.Select(x => x.Value));
}
///
/// 查
///
///
private async Task Query()
{
Loading = true;
var data = await Repository.AsQueryable().FirstAsync();
if (!string.IsNullOrWhiteSpace(data?.AreaIds))
{
var ids = data.AreaIds?.Split(',');
data.LastAreadId = ids[^1].Trim();
var area = Area.AsQueryable()
.Where(item => SqlFunc.SplitIn(data.AreaIds, item.Id.ToString()))
.Select(item => item.AreaName)
.ToArray();
data.Area = $"{string.Join(" ", area)} {data.Address}";
}
DataSource = data;
Loading = false;
}
private async Task Update()
{
var data = DataSource;
var flag = await Repository.AsUpdateable()
.SetColumns(x => x.CompanyName == data.CompanyName)
.SetColumns(x => x.CompanyNo == data.CompanyNo)
.SetColumns(x => x.CopyRight == data.CopyRight)
.SetColumns(x => x.RegisterDate == data.RegisterDate)
.SetColumns(x => x.AreaIds == AreadIds)
.SetColumns(x => x.Address == data.Address)
.SetColumns(x => x.ContactPhone == data.ContactPhone)
.SetColumns(x => x.ContactEmail == data.ContactEmail)
.SetColumns(x => x.WebsiteUrl == data.WebsiteUrl)
.Where(x=>x.Id == data.Id)
.ExecuteCommandAsync() > 0;
if (flag)
{
MessageService.Success("修改成功");
}
else
{
MessageService.Error("修改失败");
}
}
///
/// 注入实例
///
[Inject] SqlSugarRepository Repository { get; set; }
///
///
///
[Inject] private SqlSugarRepository Area { get; set; }
///
///
///
[Inject] NavigationManager NavigationManager { get; set; }
///
///
///
[Inject] IJSRuntime IJSRuntime { get; set; }
///
///
///
private string AreadIds { get; set; }
///
///
///
private List Areas { get; set; } = new List();
///
///
///
[Inject] IMessageService MessageService { get; set; }
///
///
///
private IForm Form;
///
///
///
private SystemSetting DataSource;
///
///
///
private bool Loading = false;
}