92 lines
3.1 KiB
Plaintext
92 lines
3.1 KiB
Plaintext
@using IDIS.Services
|
|
@using IDIS.Models
|
|
@using IDIS.Services.Models
|
|
@using Microsoft.EntityFrameworkCore
|
|
@using IDIS_Server_SIM.Data
|
|
@using Cysharp.Threading.Tasks
|
|
@inject IDIS_Service_MySQLBased service
|
|
@inject QueryService queryService
|
|
@inject IDIS_Statistics_MySQLBased statistics
|
|
@page "/query/registration"
|
|
|
|
<MudText Typo="Typo.h3" GutterBottom="true">最新的标识动态</MudText>
|
|
<MudGrid>
|
|
<MudItem xs="3">
|
|
<MudAlert>数据图表</MudAlert>
|
|
<div>
|
|
<MudChart ChartSeries="@series" ChartType="ChartType.Line"></MudChart>
|
|
</div>
|
|
</MudItem>
|
|
<MudItem xs="9">
|
|
<MudAlert>搜索条件</MudAlert>
|
|
<DynamicTags OnSelectedChipsChanged="OnSelectedChipsChanged"></DynamicTags>
|
|
</MudItem>
|
|
</MudGrid>
|
|
<MudGrid>
|
|
<MudItem xs="6">
|
|
<MudAlert>最新注册的标识</MudAlert>
|
|
|
|
@foreach (var item in data)
|
|
{
|
|
<MudStack Row="true" Class="align-center">
|
|
<MudAlert Severity="Severity.Info">@item.Handle</MudAlert>
|
|
<MudText>@item.RegistrationTime</MudText>
|
|
</MudStack>
|
|
}
|
|
</MudItem>
|
|
<MudItem xs="6">
|
|
<MudAlert>最新解析的标识</MudAlert>
|
|
@foreach (var item in queryRecords)
|
|
{
|
|
<MudStack Row="true" Class="align-center">
|
|
<MudAlert Severity="Severity.Info">@item.Handle</MudAlert>
|
|
<MudText>@item.QueryTime</MudText>
|
|
</MudStack>
|
|
|
|
}
|
|
</MudItem>
|
|
</MudGrid>
|
|
|
|
|
|
|
|
@code {
|
|
private IDIS_SQL_Handle[] data { get; set; } = Array.Empty<IDIS_SQL_Handle>();
|
|
private IDIS_QueryRecord[] queryRecords { get; set; } = Array.Empty<IDIS_QueryRecord>();
|
|
private string[] handles { get; set; } = Array.Empty<string>();
|
|
private string[] tags { get; set; } = Array.Empty<string>();
|
|
public List<ChartSeries> series { get; set; }= new List<ChartSeries>()
|
|
{
|
|
new ChartSeries() { Name = "注册数量", Data = new double[] { 90, 79, 72, 69, 62, 62, 55, 65, 70 } },
|
|
new ChartSeries() { Name = "解析数量", Data = new double[] { 90, 79, 72, 69, 62, 62, 55, 65, 70 } },
|
|
};
|
|
|
|
protected override async Task OnAfterRenderAsync(bool firstRender)
|
|
{
|
|
if (!firstRender) return;
|
|
await Rebuild();
|
|
await InvokeAsync(StateHasChanged);
|
|
}
|
|
private async void OnSelectedChipsChanged(MudChip[] obj)
|
|
{
|
|
tags = obj.Select(x => x.Text).ToArray();
|
|
handles = await queryService.QueryByTag(false, tags);
|
|
await Rebuild();
|
|
await InvokeAsync(StateHasChanged);
|
|
}
|
|
|
|
private async UniTask Rebuild()
|
|
{
|
|
data = (await service.handles.ToArrayAsync())
|
|
.Where(x=>handles.Length is 0 || handles.Contains(x.Handle))
|
|
.OrderBy(x=>x.RegistrationTime).Reverse().ToArray();
|
|
queryRecords = (await queryService.QueryRecordsByTag(false, tags));
|
|
|
|
series[0].Data = data
|
|
.GroupBy(x => x.RegistrationTime.Date.Day)
|
|
.Select(x => (double)x.Count()).ToArray();
|
|
|
|
series[1].Data = queryRecords
|
|
.GroupBy(x => x.QueryTime.Date.Day)
|
|
.Select(x => (double)x.Count()).ToArray();
|
|
}
|
|
} |