@namespace TelegramPanel.Web.Components.Dialogs
@inject AccountTelegramToolsService AccountTelegramTools
@inject ISnackbar Snackbar
账号:@Phone(ID:@AccountId)
这里显示 Telegram 系统通知(通常用于接收登录验证码)。若列表为空,可能是该账号从未在 Telegram 内收到系统消息。
刷新
@if (lastLoadedAtUtc.HasValue)
{
最后刷新:@lastLoadedAtUtc.Value.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss")
}
@if (loading)
{
}
else if (messages.Count == 0)
{
暂无系统通知
}
else
{
@foreach (var m in messages)
{
@((m.DateUtc ?? DateTime.MinValue).ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"))
@m.Text
}
}
关闭
@code
{
[CascadingParameter] private MudDialogInstance MudDialog { get; set; } = default!;
[Parameter] public int AccountId { get; set; }
[Parameter] public string Phone { get; set; } = "";
private bool loading;
private DateTime? lastLoadedAtUtc;
private List messages = new();
protected override async Task OnInitializedAsync()
{
await LoadMessages();
}
private async Task LoadMessages()
{
loading = true;
try
{
var list = await AccountTelegramTools.GetLatestSystemMessagesAsync(AccountId, limit: 30);
messages = list.ToList();
lastLoadedAtUtc = DateTime.UtcNow;
}
catch (Exception ex)
{
Snackbar.Add($"加载系统通知失败:{ex.Message}", Severity.Error);
}
finally
{
loading = false;
}
}
private void Close()
{
MudDialog.Close();
}
}