SiChuanShengErZhong30/MasaBlazorApp3/Pages/RecordRetunDrug.razor

192 lines
8.4 KiB
Plaintext
Raw Normal View History

2025-10-11 17:22:03 +08:00
@page "/return/byRecord"
<style>
.rz-custom-header {
width: 100%;
}
</style>
<div class="container-fluid">
<div class="row">
<div class="col-12 mb-4">
<form onsubmit="@(() => grid.Reload())">
<RadzenFieldset Text="<22><>ѯ">
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
<RadzenRow AlignItems="AlignItems.Center">
<RadzenColumn Size="4">
<RadzenLabel Text="<22><>ʼʱ<CABC><CAB1>" Component="Start" />
</RadzenColumn>
<RadzenColumn Size="8">
<RadzenDatePicker DateFormat="yyyy-MM-dd" @bind-Value="start" Style="width: 100%;" Name="Start" />
</RadzenColumn>
</RadzenRow>
<RadzenRow AlignItems="AlignItems.Center">
<RadzenColumn Size="4">
<RadzenLabel Text="<22><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>" Component="End" />
</RadzenColumn>
<RadzenColumn Size="8">
<RadzenDatePicker DateFormat="yyyy-MM-dd" @bind-Value="end" Style="width: 100%;" Name="End" />
</RadzenColumn>
</RadzenRow>
<RadzenRow AlignItems="AlignItems.Center">
<RadzenColumn Size="12">
<RadzenButton Size="ButtonSize.Large" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="<22><>ѯ" />
<RadzenButton Size="ButtonSize.Large" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="<22><><EFBFBD><EFBFBD>" ButtonStyle="ButtonStyle.Warning" />
</RadzenColumn>
</RadzenRow>
</RadzenStack>
</RadzenFieldset>
</form>
</div>
<div class="col-12 mb-4" style="height:50vh;overflow:auto">
<RadzenDataGrid @ref="grid" Style="height:48vh;"
LoadData="@LoadData"
IsLoading="@isLoading"
Count="@count"
EmptyText="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
Data="@_forecasts"
AllowColumnResize="true" AllowAlternatingRows="false"
AllowRowSelectOnRowClick="true"
CellClick="@((DataGridCellMouseEventArgs<MachineRecord> args) => OnCellClick(args))"
AllowPaging="true" PageSize="8" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} <20><>{2}<7D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>">
<HeaderTemplate>
<RadzenRow JustifyContent="JustifyContent.End">
<RadzenButton ButtonStyle="ButtonStyle.Warning" Disabled="_forecasts == null || !_forecasts.Any(mr => mr.CurrentReturnQuantity > 0)" Variant="Variant.Outlined" Shade="Shade.Light" Text="<22>黹" Click="@OpenReturnDialog" />
</RadzenRow>
</HeaderTemplate>
<Columns>
<RadzenDataGridColumn Frozen="true" Title="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" Property="OperatorUser.NickName"></RadzenDataGridColumn>
<RadzenDataGridColumn Width="170px" Title="<22><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>" Property="OperationTime"></RadzenDataGridColumn>
<RadzenDataGridColumn Width="200px" Title="ҩƷ<D2A9><C6B7><EFBFBD><EFBFBD>" Property="Drug.DrugName">
<Template Context="mr">
<RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@mr.Drug?.DrugName</RadzenText>
<RadzenText TextStyle="TextStyle.Caption">@mr.Drug?.DrugSpec</RadzenText>
</Template>
</RadzenDataGridColumn>
<RadzenDataGridColumn Width="60px" Title="ҩ<><D2A9>" Property="OperationTime">
<Template Context="mr">
@if (mr.BoxDrawer > 0)
{
if (mr.DrawerNo == 99)
{
<b class="rz-pr-3">@($"<22><><EFBFBD><EFBFBD>ҩ<EFBFBD><D2A9>")</b>
}
else if (mr.DrawerNo == 111)
{
<b class="rz-pr-3">@($"<22>ָ<EFBFBD><D6B8><EFBFBD>ҩ<EFBFBD><D2A9>")</b>
}
else
{
<b class="rz-pr-3">@($"{mr.DrawerNo}-{(mr.ColNo == 1 ? '<27><>' : '<27><>')}")</b>
}
}
else
{
<b class="rz-pr-3"><3E><></b>
}
</Template>
</RadzenDataGridColumn>
<RadzenDataGridColumn Title="<22><><EFBFBD><EFBFBD>" Property="ManuNo" Width="123px">
<Template Context="mr">
<RadzenText TextStyle="TextStyle.Subtitle2" class="mb-0">@mr.ManuNo</RadzenText>
<RadzenText TextStyle="TextStyle.Caption"> @mr.EffDate?.ToString("yyyy-MM-dd")</RadzenText>
</Template>
</RadzenDataGridColumn>
<RadzenDataGridColumn Title="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" Property="Quantity">
<HeaderTemplate>
<div style="text-align: center;">
<20><><EFBFBD><EFBFBD><br><3E><><EFBFBD><EFBFBD>
</div>
</HeaderTemplate>
</RadzenDataGridColumn>
<RadzenDataGridColumn Title="<22>ѻ<EFBFBD>ҩƷ" Property="ReturnQuantity1">
<HeaderTemplate>
<div style="text-align: center;">
<20>ѻ<EFBFBD><br>ҩƷ
</div>
</HeaderTemplate>
</RadzenDataGridColumn>
<RadzenDataGridColumn Title="<22>ѻ<EFBFBD><D1BB><EFBFBD>ƿ" Property="ReturnQuantity2">
<HeaderTemplate>
<div style="text-align: center;">
<20>ѻ<EFBFBD><br><3E><>ƿ
</div>
</HeaderTemplate>
</RadzenDataGridColumn>
<RadzenDataGridColumn Title="<22><><EFBFBD>ι黹" Property="CurrentReturnQuantity" Width="90px">
<HeaderTemplate>
<div style="text-align: center;">
<20><><EFBFBD><EFBFBD><br><3E>
</div>
</HeaderTemplate>
<EditTemplate Context="mr">
<RadzenNumeric Min="0" Style="display: block" Max="@(mr.Quantity - mr.ReturnQuantity1 - mr.ReturnQuantity2)" Name="Quantity" @bind-Value=@mr.CurrentReturnQuantity />
</EditTemplate>
</RadzenDataGridColumn>
</Columns>
</RadzenDataGrid>
</div>
</div>
</div>
@code {
@inject IMachineRecordDao machineRecordDao;
@inject DialogService dialogService;
RadzenDataGrid<MachineRecord> grid;
bool isLoading;
int count;
private List<MachineRecord>? _forecasts;
DateTime start;
DateTime end;
async Task LoadData(LoadDataArgs args)
{
isLoading = true;
var result = await machineRecordDao.GetCanReturnRecords(start, end, 0, "", args.Top, args.Skip);
// Update the Data property
_forecasts = result.Desserts;
// Update the count
count = result.TotalDesserts;
isLoading = false;
}
async Task reloadGrid()
{
start = DateTime.MinValue;
end = DateTime.MinValue;
await grid.Reload();
}
async Task OpenReturnDialog()
{
var list = _forecasts.Where(mr => mr.CurrentReturnQuantity > 0).ToList();
var b = await dialogService.OpenAsync<RecordReturnDrugDialog>(
$"<22><>¼<EFBFBD><C2BC>ҩ",
new Dictionary<string, object>() { { "records", list } },
new DialogOptions() { Width = "85vw", Resizable = true, Draggable = true, ShowClose = false }
);
if (b)
{
await reloadGrid();
}
}
void OnCellClick(DataGridCellMouseEventArgs<MachineRecord> args)
{
grid.EditRow(args.Data);
}
}