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

88 lines
3.0 KiB
Plaintext

@page "/Query"
@page "/query/{handle?}"
@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/638509550657468460"
Label="在这里输入需要解析的标识"
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>
@if (x.Data.Value.Contains("data:image"))
{
<MudImage Src="@x.Data.Value" Width="100" Fluid="true" />
}
else
{
<MudText>@x.Data.Value</MudText>
}
</MudItem>
</MudGrid>
}
</MudStack >
</MudPaper>
}
</MudStack>
@code {
[Parameter]
public 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;
protected override void OnAfterRender(bool firstRender)
{
if (!firstRender) return;
if (string.IsNullOrEmpty(handle) is false)
{
QueryInternal();
}
}
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;
}
catch (Exception e)
{
currentMessage = e.Message;
severity = Severity.Error;
}
await InvokeAsync(StateHasChanged);
}
}