CN.CAICT.IDIS.Client.Web/Components/Pages/Query.razor

70 lines
2.4 KiB
Plaintext

@page "/Query"
@inject IDIS_Service service
@inject IDIS_TemplateService templateService
@inject ISnackbar snackbar
@using IDIS.Models
@using IDIS.Services
<MudText Typo="Typo.h3" GutterBottom="true">解析标识</MudText>
<MudStack>
<MudTextField
@bind-Value="@handle"
HelperText="例如:88.123.99/202402051710"
Label="Normal"
Variant="Variant.Outlined"
Adornment="Adornment.End"
AdornmentIcon="@Icons.Material.Filled.Search"
OnAdornmentClick="QueryInternal"
/>
<MudAlert Severity="@severity">@currentMessage</MudAlert>
@if (queryData.Value.Length is not 0)
{
<MudPaper Class="pa-2">
<MudStack Spacing="2">
@for (var index = 0; index < queryData.Value.Length; index++)
{
var x = queryData.Value[index];
var templateItem = template.Items[index];
<MudGrid Class="align-center">
<MudItem>
<MudIcon Icon="@Icons.Material.Outlined.Info"/>
</MudItem>
<MudItem Style="min-width: 100px">
<MudText >@templateItem.Name</MudText>
</MudItem>
<MudItem>
<MudText>@x.Data.Value</MudText>
</MudItem>
</MudGrid>
}
</MudStack >
</MudPaper>
}
</MudStack>
@code {
private string handle { get; set; }
private IDIS_Query_Data queryData { get; set; }= new IDIS_Query_Data();
private IDIS_Template template { get; set; } = new IDIS_Template();
private string currentMessage { get; set; } = "从解析一个标识开始";
private Severity severity { get; set; } = Severity.Normal;
private async void QueryInternal()
{
try
{
currentMessage = "正在查询";
severity = Severity.Info;
queryData = await service.QueryAsync(handle);
template = await templateService.QueryAsync(queryData.Prefix,queryData.TemplateVersion);
currentMessage = "查询成功";
severity = Severity.Success;
await InvokeAsync(StateHasChanged);
}
catch (Exception e)
{
currentMessage = e.Message;
severity = Severity.Error;
}
}
}