[성현모] Summary 추가, GridFilter 컨피그 분리
This commit is contained in:
@ -65,6 +65,22 @@
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
|
||||
<!--Function Block-->
|
||||
<RadzenStack Style="height:10rem; width:fit-content;" class="rz-border-right rz-pr-5" Orientation="Orientation.Horizontal" AlignItems="AlignItems.Start" JustifyContent="JustifyContent.Start">
|
||||
<RadzenStack Style="font-size:1.5rem;" Orientation="Orientation.Vertical" AlignItems="AlignItems.Start" JustifyContent="JustifyContent.Center">
|
||||
<RadzenStack Style="cursor: pointer;" class="" Orientation="Orientation.Vertical" AlignItems="AlignItems.Center" JustifyContent="JustifyContent.Start" @onclick="@OnSummary">
|
||||
<RadzenIcon Style="font-size: 3.5rem; font-weight:400; color:var(--rz-info)" Icon="ssid_chart"></RadzenIcon>
|
||||
<RadzenLabel Style="font-size: 1.5rem; cursor:pointer; color:var(--rz-info)" Text="Summary"></RadzenLabel>
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
<RadzenStack Style="font-size:1.5rem;" Orientation="Orientation.Vertical" AlignItems="AlignItems.Start" JustifyContent="JustifyContent.Center">
|
||||
<RadzenStack Style="cursor: pointer;" class="" Orientation="Orientation.Vertical" AlignItems="AlignItems.Center" JustifyContent="JustifyContent.Start" @onclick="@OnExportExcel">
|
||||
<RadzenIcon Style="font-size: 3.5rem; font-weight:400; color:var(--rz-success)" Icon="file_export"></RadzenIcon>
|
||||
<RadzenLabel Style="font-size: 1.5rem; cursor:pointer; color:var(--rz-success)" Text="Export Excel"></RadzenLabel>
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
|
||||
<!--Option Block-->
|
||||
<RadzenStack Style="height:10rem; width:fit-content;" class="rz-border-right rz-pr-5" Orientation="Orientation.Horizontal" AlignItems="AlignItems.Start" JustifyContent="JustifyContent.Start">
|
||||
<RadzenStack Style="font-size:1.5rem;" Orientation="Orientation.Vertical" AlignItems="AlignItems.Start" JustifyContent="JustifyContent.Center">
|
||||
@ -98,23 +114,23 @@
|
||||
</RadzenStack>
|
||||
|
||||
<RadzenStack Style="height:calc(100vh - 29rem);">
|
||||
@if (tab.Key.EnumTab == EnumTabs.OverviewC1)
|
||||
@if (tab.Key.EnumTab == EnumTabs.OverviewC1 || tab.Key.EnumTab == EnumTabs.OverviewC1Merged)
|
||||
{
|
||||
<TraGrid TDataModel="Overview" DataList="@(tab.Value.Cast<Overview>())"
|
||||
<TraGrid TDataModel="Overview" DataList="@(tab.Value.Cast<Overview>())" EnumTab="@tab.Key.EnumTab"
|
||||
OnSelectRow="@OnSelectRowOverview" OnDoubleClickRow="@OnDoubleClickRowOverview" HostColumnMerge>
|
||||
</TraGrid>
|
||||
}
|
||||
|
||||
@if (tab.Key.EnumTab == EnumTabs.OverviewC1Detail)
|
||||
@if (tab.Key.EnumTab == EnumTabs.OverviewC1Detail || tab.Key.EnumTab == EnumTabs.OverviewC1DetailMerged)
|
||||
{
|
||||
<TraGrid TDataModel="Overview" DataList="@(tab.Value.Cast<Overview>())"
|
||||
<TraGrid TDataModel="Overview" DataList="@(tab.Value.Cast<Overview>())" EnumTab="@tab.Key.EnumTab"
|
||||
OnSelectRow="@OnSelectRowOverview" OnDoubleClickRow="@OnDoubleClickRowDetailOverview" HostColumnMerge>
|
||||
</TraGrid>
|
||||
}
|
||||
|
||||
@if (tab.Key.EnumTab == EnumTabs.TestHistoryC1)
|
||||
{
|
||||
<TraGrid TDataModel="TestHistory" DataList="@(tab.Value.Cast<TestHistory>())"
|
||||
<TraGrid TDataModel="TestHistory" DataList="@(tab.Value.Cast<TestHistory>())" EnumTab="@tab.Key.EnumTab"
|
||||
OnSelectRow="@OnSelectRowOverview" OnDoubleClickRow="@OnDoubleClickRowHistory" VisibleRowNo HostColumnMerge="false">
|
||||
</TraGrid>
|
||||
}
|
||||
@ -157,12 +173,45 @@
|
||||
@if(tab.Value?.Count > 0)
|
||||
{
|
||||
<TraGrid TDataModel="ParseTestResult" DataList="@(tab.Value.Cast<ParseTestResult>())"
|
||||
HostColumnMerge="false">
|
||||
HostColumnMerge="false" EnumTab="@tab.Key.EnumTab">
|
||||
</TraGrid>
|
||||
}
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
}
|
||||
|
||||
@if (tab.Key.EnumTab == EnumTabs.TestSummaryC1)
|
||||
{
|
||||
<RadzenStack Style="height:inherit;" Orientation="Orientation.Horizontal">
|
||||
<!--Test Info-->
|
||||
<RadzenStack Style="width:35rem; font-size: 1.5rem; height: inherit;">
|
||||
@{
|
||||
var history = tab.Key.Parent as TestSummaryInformation;
|
||||
<TitleCard HeaderText="Test Information" ContentsHeight="calc(100% - 5rem);" CardStyle="overflow:auto;">
|
||||
<RadzenStack Style="padding:1rem; color: var(--rz-grid-hover-color); overflow-y:auto; align-items:flex-start;">
|
||||
@foreach (var prop in history.GetType().GetProperties())
|
||||
{
|
||||
<RadzenStack Style="width:100%; background-color:transparent;" class="rz-border-bottom rz-p-1 rz-pb-2" Orientation="Orientation.Horizontal">
|
||||
<span style="width:12rem; min-width:12rem; font-size: 1.3rem;">@prop.Name</span>
|
||||
<BlockLabel Text="@prop.GetValue(history).ToString()" MaxWidth="20rem"></BlockLabel>
|
||||
</RadzenStack>
|
||||
}
|
||||
</RadzenStack>
|
||||
</TitleCard>
|
||||
}
|
||||
</RadzenStack>
|
||||
|
||||
<!--TestResult-->
|
||||
<RadzenStack Style="height:inherit;">
|
||||
@if (tab.Value?.Count > 0)
|
||||
{
|
||||
<TraGrid TDataModel="ParseTestSummary" DataList="@(tab.Value.Cast<ParseTestSummary>())"
|
||||
HostColumnMerge="false" EnumTab="@tab.Key.EnumTab">
|
||||
</TraGrid>
|
||||
}
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
}
|
||||
</RadzenStack>
|
||||
</RadzenStack>
|
||||
</ChildContent>
|
||||
@ -215,25 +264,27 @@
|
||||
{
|
||||
List<Overview> overviews = new();
|
||||
|
||||
int tabId = 0;
|
||||
if (Tabs.Count > 0)
|
||||
{
|
||||
tabId = Tabs.Max(x => x.Key.Id) + 1;
|
||||
}
|
||||
|
||||
if (IsMergePartNumberOption == false)
|
||||
{
|
||||
overviews = await CPXV2LogService.GetOverviews(SearchDataOverviews);
|
||||
Tabs.AddOrUpdate(
|
||||
new OrderdTab { Id = tabId, TabName = $"{EnumTabs.OverviewC1} ({tabId})", EnumTab = EnumTabs.OverviewC1, Parent = null },
|
||||
key => overviews.Cast<IDataModel>().ToList(), (key, oldValue) => overviews.Cast<IDataModel>().ToList());
|
||||
}
|
||||
else
|
||||
{
|
||||
overviews = await CPXV2LogService.GetOverviewMerged(SearchDataOverviews);
|
||||
Tabs.AddOrUpdate(
|
||||
new OrderdTab { Id = tabId, TabName = $"{EnumTabs.OverviewC1} ({tabId})", EnumTab = EnumTabs.OverviewC1Merged, Parent = null },
|
||||
key => overviews.Cast<IDataModel>().ToList(), (key, oldValue) => overviews.Cast<IDataModel>().ToList());
|
||||
}
|
||||
|
||||
int tabId = 0;
|
||||
if(Tabs.Count > 0)
|
||||
{
|
||||
tabId = Tabs.Max(x=>x.Key.Id) + 1;
|
||||
}
|
||||
|
||||
Tabs.AddOrUpdate(
|
||||
new OrderdTab {Id = tabId, TabName = $"{EnumTabs.OverviewC1} ({tabId})" , EnumTab = EnumTabs.OverviewC1, Parent = null },
|
||||
key => overviews.Cast<IDataModel>().ToList(), (key, oldValue) => overviews.Cast<IDataModel>().ToList());
|
||||
|
||||
|
||||
SelectedTabIndex = Tabs.Count - 1;
|
||||
}
|
||||
|
||||
@ -262,23 +313,28 @@
|
||||
if (IsMergePartNumberOption == false)
|
||||
{
|
||||
detailOverviews = await CPXV2LogService.GetDetailOverview(SearchDataOverviews, selectRow);
|
||||
|
||||
int tabId = Tabs.Max(x => x.Key.Id) + 1;
|
||||
Tabs.AddOrUpdate(
|
||||
new OrderdTab { Id = tabId, TabName = $"{EnumTabs.OverviewC1Detail} ({tabId})", EnumTab = EnumTabs.OverviewC1Detail, Parent = row },
|
||||
key => detailOverviews.Cast<IDataModel>().ToList(), (key, oldValue) => detailOverviews.Cast<IDataModel>().ToList());
|
||||
}
|
||||
else
|
||||
{
|
||||
detailOverviews = await CPXV2LogService.GetDetailOverviewMerged(SearchDataOverviews, selectRow);
|
||||
|
||||
int tabId = Tabs.Max(x => x.Key.Id) + 1;
|
||||
Tabs.AddOrUpdate(
|
||||
new OrderdTab { Id = tabId, TabName = $"{EnumTabs.OverviewC1Detail} ({tabId})", EnumTab = EnumTabs.OverviewC1DetailMerged, Parent = row },
|
||||
key => detailOverviews.Cast<IDataModel>().ToList(), (key, oldValue) => detailOverviews.Cast<IDataModel>().ToList());
|
||||
}
|
||||
|
||||
int tabId = Tabs.Max(x => x.Key.Id) + 1;
|
||||
Tabs.AddOrUpdate(
|
||||
new OrderdTab { Id = tabId, TabName = $"{EnumTabs.OverviewC1Detail} ({tabId})", EnumTab = EnumTabs.OverviewC1Detail, Parent = row },
|
||||
key => detailOverviews.Cast<IDataModel>().ToList(), (key, oldValue) => detailOverviews.Cast<IDataModel>().ToList());
|
||||
|
||||
|
||||
tabs.Reload();
|
||||
SelectedTabIndex = Tabs.Count - 1;
|
||||
}
|
||||
}
|
||||
|
||||
private async Task OnDoubleClickRowDetailOverview(IOverviewModel row)
|
||||
private async Task OnDoubleClickRowDetailOverview(IDataModel row)
|
||||
{
|
||||
List<TestHistory> histories = new();
|
||||
if (IsMergePartNumberOption == false)
|
||||
@ -319,12 +375,12 @@
|
||||
SelectedTabIndex = Tabs.Count - 1;
|
||||
}
|
||||
|
||||
void OnClickClose(int tabId)
|
||||
private void OnClickClose(int tabId)
|
||||
{
|
||||
CloseTab(tabId);
|
||||
}
|
||||
|
||||
void CloseTab(int tabId)
|
||||
private void CloseTab(int tabId)
|
||||
{
|
||||
var removeTab = Tabs.Where(x => x.Key.Id == tabId)?.First().Key;
|
||||
|
||||
@ -347,7 +403,7 @@
|
||||
tabs.Reload();
|
||||
}
|
||||
|
||||
async Task OnChangeMergePartNumberOption()
|
||||
private async Task OnChangeMergePartNumberOption()
|
||||
{
|
||||
PopupService.OpenIndicator("");
|
||||
await GetOverviews();
|
||||
@ -356,8 +412,52 @@
|
||||
PopupService.CloseIndicator();
|
||||
}
|
||||
|
||||
async Task OnClickDisplayTestList(TestHistory history)
|
||||
private async Task OnClickDisplayTestList(TestHistory history)
|
||||
{
|
||||
await JS.InvokeVoidAsync("open", $"/testlist/{history.ProductNo}/{history.TestCode}/{SelectionStepVersion}", "_blank");
|
||||
}
|
||||
|
||||
private async Task OnSummary()
|
||||
{
|
||||
var selectedTab = Tabs.Select(x => x.Key)?.FirstOrDefault(x=>x.Id == SelectedTabIndex);
|
||||
if(selectedTab is not null)
|
||||
{
|
||||
//history에서만 summary 사용
|
||||
if(selectedTab.EnumTab == EnumTabs.TestHistoryC1)
|
||||
{
|
||||
if(Tabs.TryGetValue(selectedTab, out var data) == true)
|
||||
{
|
||||
if(Int32.TryParse(SelectionStepVersion, out int stepVersion) == true)
|
||||
{
|
||||
var testHistories = data.Cast<TestHistory>().ToList();
|
||||
var summary = await CPXV2LogService.GetTestSummary(testHistories, stepVersion);
|
||||
var summaryInformation = testHistories.GetTestSummaryInformation();
|
||||
|
||||
if(summary is not null && summaryInformation is not null)
|
||||
{
|
||||
summaryInformation.SearchRangeStart = (DateTime)new DateTime(RequestSearch.SearchStart, TimeOnly.MinValue);
|
||||
summaryInformation.SearchRangeEnd = (DateTime)new DateTime(RequestSearch.SearchEnd, TimeOnly.MaxValue);
|
||||
|
||||
int tabId = Tabs.Max(x => x.Key.Id) + 1;
|
||||
Tabs.AddOrUpdate(
|
||||
new OrderdTab { Id = tabId, TabName = $"{EnumTabs.TestSummaryC1}({tabId})", EnumTab = EnumTabs.TestSummaryC1, Parent = summaryInformation },
|
||||
key => summary?.ParseTestSummary?.Cast<IDataModel>()?.ToList(), (key, oldValue) => summary?.ParseTestSummary?.Cast<IDataModel>()?.ToList());
|
||||
|
||||
tabs.Reload();
|
||||
SelectedTabIndex = Tabs.Count - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LogXnet.WriteLine("Not history",LogXLabel.Warning);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async Task OnExportExcel()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@ -96,7 +96,7 @@
|
||||
|
||||
<RadzenStack Style="height:90vh;" class="rz-pb-3">
|
||||
<TraGrid TDataModel="VRFY_TestListFileRelease" DataList="@GetTestList.TestListFile"
|
||||
HostColumnMerge="false">
|
||||
HostColumnMerge="false" EnumTab="EnumTabs.TestListFile">
|
||||
</TraGrid>
|
||||
|
||||
</RadzenStack>
|
||||
|
||||
Reference in New Issue
Block a user