71 lines
2.3 KiB
Plaintext
71 lines
2.3 KiB
Plaintext
@using IDIS.Models
|
|
@inject Services.IDIS_TemplateService templateService
|
|
@using Cysharp.Threading.Tasks
|
|
@using BITKit
|
|
<div class="d-flex flex-grow-1 gap-4 py-2">
|
|
<MudText Class="flex-1 d-flex" Typo="Typo.h6">选择标识模板</MudText>
|
|
<MudButton Class="d-flex" Variant="Variant.Outlined" OnClick="() => Refresh().Forget()">刷新</MudButton>
|
|
</div>
|
|
<MudAlert Severity="severity">@currentMessage</MudAlert>
|
|
|
|
@if (templates.Length is not 0)
|
|
{
|
|
<MudStack>
|
|
@foreach (var item in templates)
|
|
{
|
|
<MudButton
|
|
Class="pa-2"
|
|
Variant="Variant.Outlined"
|
|
OnClick="() => OnSelectTemplate.Invoke(item)">
|
|
@(item.Prefix)/@(item.Version)
|
|
</MudButton>
|
|
}
|
|
</MudStack>
|
|
}
|
|
else
|
|
{
|
|
<MudStack Spacing="4">
|
|
@for (var i = 0; i < 5; i++)
|
|
{
|
|
<MudSkeleton />
|
|
}
|
|
</MudStack>
|
|
}
|
|
@code {
|
|
[Parameter]
|
|
public Reference<TemplateSelector>? Reference { get; set; }
|
|
private IDIS_Template[] templates = Array.Empty<IDIS_Template>();
|
|
private string currentMessage { get; set; } = "模板为空?试着刷新一下";
|
|
private Severity severity { get; set; } = Severity.Normal;
|
|
[Parameter]
|
|
public Action<IDIS_Template> OnSelectTemplate { get; set; }
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
base.OnInitialized();
|
|
if (Reference is not null)
|
|
Reference.value = this;
|
|
}
|
|
|
|
|
|
public async UniTask Refresh()
|
|
{
|
|
templates = Array.Empty<IDIS_Template>();
|
|
await InvokeAsync(StateHasChanged);
|
|
currentMessage = "正在刷新模板";
|
|
severity = Severity.Info;
|
|
try
|
|
{
|
|
templates = await templateService.ToArrayAsync();
|
|
|
|
currentMessage = "模板刷新完成";
|
|
severity = Severity.Info;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
currentMessage = e.Message;
|
|
severity = Severity.Error;
|
|
}
|
|
await InvokeAsync(StateHasChanged);
|
|
}
|
|
} |