155 lines
6.7 KiB
Plaintext
155 lines
6.7 KiB
Plaintext
@using Microsoft.AspNetCore.Html
|
|
@model IEnumerable<EodTask>
|
|
|
|
@{
|
|
Layout = null;
|
|
}
|
|
|
|
@if (Model == null || !Model.Any())
|
|
{
|
|
return;
|
|
}
|
|
<style>
|
|
#ClientCss { overflow: hidden; max-height: 25px; }
|
|
|
|
#Clientdiv:hover div { overflow: auto; max-height: 500px; }
|
|
</style>
|
|
<div class="eodtask-report list-unstyled">
|
|
@foreach (var item in Model)
|
|
{
|
|
<div class="eodtask-report-item border">
|
|
<div class="d-flex">
|
|
<div style="vertical-align:bottom">
|
|
@switch (item.TaskState)
|
|
{
|
|
case EodTaskState.pending:
|
|
<span class="fa fa-clock-o text-black"></span>
|
|
break;
|
|
case EodTaskState.interrupted:
|
|
<span class="fa fa-circle-o-notch"></span>
|
|
break;
|
|
case EodTaskState.running:
|
|
<span class="fa fa-spinner fa-spin text-green"></span>
|
|
break;
|
|
case EodTaskState.completed:
|
|
<span class="fa fa-circle text-green"></span>
|
|
break;
|
|
case EodTaskState.failure:
|
|
<span class="fa fa-circle text-red"></span>
|
|
break;
|
|
case EodTaskState.fatalError:
|
|
<span class="fa fa-times-circle text-red"></span>
|
|
break;
|
|
case EodTaskState.canceling:
|
|
case EodTaskState.canceled:
|
|
<span class="fa fa-stop-circle-o text-red"></span>
|
|
break;
|
|
}
|
|
</div>
|
|
@if (item.StartDate < item.EndDate)
|
|
{
|
|
<div class="ml-2">@(item.StartDate.OtcFormatDate()) 至 @(item.EndDate.OtcFormatDate())</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="ml-2">@(item.StartDate.OtcFormatDate())</div>
|
|
}
|
|
<div class="ml-2"> / @(EodTaskHelper.GetEodPriceTypeDesc(item.PriceType))</div>
|
|
<div class="ml-2"> / @(item.VolTypes);</div>
|
|
<div class="ml-2"> @(item.OptName) @(item.OptTime)</div>
|
|
@if (!string.IsNullOrEmpty(item.PartFlag))
|
|
{
|
|
<div class="ml-2"> 部分结算: @(item.PartFlag)</div>
|
|
}
|
|
@if (item.StepFlag == 1)
|
|
{
|
|
<div class="ml-2 text-red"> 跳过上一交易日结算检查</div>
|
|
}
|
|
</div>
|
|
<hr class="mt-2 mb-2" />
|
|
<div class="d-flex" id="Clientdiv">
|
|
<div class="ml-2" id="ClientCss"> 收盘客户: @(string.IsNullOrWhiteSpace(item.ClientNameStr)?"全部": item.ClientNameStr)</div>
|
|
</div>
|
|
<hr class="mt-2 mb-2" />
|
|
@if (item.Details != null && item.Details.Any())
|
|
{
|
|
var lastDetail = item.Details.Last();
|
|
<div class="mt-2 pl-2 row">
|
|
@foreach (var detail in item.Details)
|
|
{
|
|
if (detail != lastDetail || item.TaskState == EodTaskState.running || item.TaskState == EodTaskState.completed)
|
|
{
|
|
var seconds = detail.ElapsedMilliseconds / 1000d;
|
|
var style = detail == lastDetail ? item.TaskState.ToString() : "completed";
|
|
<div class="border col-auto eodtask-report-day">
|
|
<span class="day-@(style)">
|
|
@(detail.ValueDate.OtcFormatDate()) (@(seconds.ToString("0"))秒)
|
|
</span>
|
|
</div>
|
|
}
|
|
}
|
|
</div>
|
|
}
|
|
|
|
@if (item.TaskState == EodTaskState.pending)
|
|
{
|
|
<div class="mt-2 border pl-4">
|
|
<span class="text-gray">等待执行</span>
|
|
<button type="button" class="btn btn-link pl-0 pr-0" onclick="cancelEodTask(@(item.id))">取消任务</button>
|
|
</div>
|
|
}
|
|
else if (item.TaskState == EodTaskState.running)
|
|
{
|
|
<div class="mt-2">
|
|
<button type="button" class="btn btn-link pl-4" onclick="cancelEodTask(@(item.id))">中止执行</button>
|
|
</div>
|
|
}
|
|
else if (item.TaskState == EodTaskState.completed)
|
|
{
|
|
<div class="mt-2">
|
|
<button type="button" class="btn btn-link pl-4" onclick="restartEodTask(@(item.id),true)">重新执行</button>
|
|
</div>
|
|
}
|
|
else if (item.TaskState == EodTaskState.failure || item.TaskState == EodTaskState.canceled || item.TaskState == EodTaskState.interrupted)
|
|
{
|
|
<div class="mt-2 pl-4 pb-2 border-bottom">
|
|
<span class="text-red">
|
|
<span>@item.ValueDate.OtcFormatDate(),</span>
|
|
@if (item.TaskState == EodTaskState.failure)
|
|
{
|
|
<span style="overflow-wrap: anywhere;">发生错误: @(item.TaskResult)</span>
|
|
}
|
|
else
|
|
{
|
|
<span>@(EodTaskHelper.GetEodTaskStateDesc(item.TaskState))</span>
|
|
}
|
|
</span>
|
|
</div>
|
|
|
|
<div class="mt-2">
|
|
<button type="button" class="btn btn-link pl-4" onclick="restartEodTask(@(item.id),true)">重新执行</button>
|
|
<button type="button" class="btn btn-link pl-0" onclick="restartEodTask(@(item.id),false)">继续执行</button>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="mt-2 border p-3">
|
|
<span class="text-red">
|
|
<span>@item.ValueDate.OtcFormatDate(),</span>
|
|
<span>@(EodTaskHelper.GetEodTaskStateDesc(item.TaskState)): @(item.TaskResult)</span>
|
|
</span>
|
|
</div>
|
|
}
|
|
@if (!string.IsNullOrEmpty(item.ErrorTips))
|
|
{
|
|
<div class="mt-2 pl-4 pb-2 border-top">
|
|
<div class="text-red">
|
|
<div>提示:</div>
|
|
<div>@(new HtmlString(item.ErrorTips))</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
<div class="hide">@(item.id)</div>
|
|
</div>
|
|
}
|
|
</div> |