HKC_Blazor/MasaBlazorApp3/Pages/OrderTake.razor

119 lines
4.8 KiB
Plaintext
Raw Normal View History

2025-04-18 11:01:56 +08:00
@page "/take/order"
<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><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" Component="OrderNo" />
</RadzenColumn>
<RadzenColumn Size="8">
<RadzenTextBox @bind-Value="OrderNo" Style="width: 100%;" Name="OrderNo"></RadzenTextBox>
</RadzenColumn>
</RadzenRow>
<RadzenRow AlignItems="AlignItems.Center">
<RadzenColumn Size="4">
<RadzenLabel Text="<22><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>" Component="OrderDate" />
</RadzenColumn>
<RadzenColumn Size="8">
<RadzenDatePicker DateFormat="yyyy-MM-dd" CurrentDateChanged="@OnCurrentDateChanged" @bind-Value="OrderDate" Style="width: 100%;" Name="OrderDate" />
</RadzenColumn>
</RadzenRow>
<RadzenRow AlignItems="AlignItems.Center">
<RadzenColumn Size="12">
<RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="<22><>ѯ" />
<RadzenButton Size="ButtonSize.Medium" 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">
<RadzenDataGrid @ref="grid"
LoadData="@LoadData"
RowSelect="@((OrderInfo oi) => { OrderSelected(oi); })"
IsLoading="@isLoading"
Count="@count"
EmptyText="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
Data="@_forecasts"
AllowColumnResize="true" AllowAlternatingRows="false"
SelectionMode="DataGridSelectionMode.Single"
AllowPaging="true" PageSize="10" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true" PagingSummaryFormat="{0}/{1} <20><>{2}<7D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>">
<Columns>
<RadzenDataGridColumn Frozen="true" Title="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" Property="OrderNo"></RadzenDataGridColumn>
<RadzenDataGridColumn Width="170px" Title="<22><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>" Property="OrderDate"></RadzenDataGridColumn>
<RadzenDataGridColumn Title="ҽ<><D2BD>" Property="DoctorName"></RadzenDataGridColumn>
<RadzenDataGridColumn Title="<22><><EFBFBD><EFBFBD>" Property="PatientName"></RadzenDataGridColumn>
<RadzenDataGridColumn Title="<22>Ա<EFBFBD>" Property="Sex"></RadzenDataGridColumn>
<RadzenDataGridColumn Title="<22><><EFBFBD><EFBFBD>" Property="Age"></RadzenDataGridColumn>
<RadzenDataGridColumn Title="<22><><EFBFBD><EFBFBD>" Property="DeptName"></RadzenDataGridColumn>
<RadzenDataGridColumn Title="<22><><EFBFBD><EFBFBD>" Property="Disease"></RadzenDataGridColumn>
</Columns>
</RadzenDataGrid>
</div>
</div>
</div>
@code {
@inject IOrderInfoDao orderInfoDao;
@inject DialogService dialogService;
RadzenDataGrid<OrderInfo> grid;
bool isLoading;
int count;
private IEnumerable<OrderInfo>? _forecasts;
string OrderNo;
DateTime OrderDate;
void OnCurrentDateChanged(DateTime args)
{
OrderDate = new DateTime(args.Year, args.Month, args.Day);
}
async Task LoadData(LoadDataArgs args)
{
isLoading = true;
var result = await orderInfoDao.GetAllOrderInfo(OrderNo, OrderDate, args.Top, args.Skip);
// Update the Data property
_forecasts = result.Desserts;
// Update the count
count = result.TotalDesserts;
isLoading = false;
}
async Task reloadGrid()
{
OrderNo = "";
OrderDate = DateTime.MinValue;
await grid.Reload();
}
async Task OrderSelected(OrderInfo oi)
{
var b = await dialogService.OpenAsync<OrderDetailDialog>(
$"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
new Dictionary<string, object>() { { "order", oi } },
new DialogOptions() { Width = "85vw", Resizable = true, Draggable = true, ShowClose = false }
);
if(b)
{
await reloadGrid();
}
}
}