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())">
|
2025-08-11 14:58:39 +08:00
|
|
|
|
<RadzenFieldset Text=@myText.Search>
|
2025-04-18 11:01:56 +08:00
|
|
|
|
<RadzenStack Orientation="Orientation.Horizontal" Gap="1rem">
|
|
|
|
|
<RadzenRow AlignItems="AlignItems.Center">
|
|
|
|
|
<RadzenColumn Size="4">
|
2025-08-11 14:58:39 +08:00
|
|
|
|
<RadzenLabel Text=@myText.OrderNo Component="OrderNo" />
|
2025-04-18 11:01:56 +08:00
|
|
|
|
</RadzenColumn>
|
|
|
|
|
<RadzenColumn Size="8">
|
|
|
|
|
<RadzenTextBox @bind-Value="OrderNo" Style="width: 100%;" Name="OrderNo"></RadzenTextBox>
|
|
|
|
|
</RadzenColumn>
|
|
|
|
|
</RadzenRow>
|
|
|
|
|
<RadzenRow AlignItems="AlignItems.Center">
|
|
|
|
|
<RadzenColumn Size="4">
|
2025-08-11 14:58:39 +08:00
|
|
|
|
<RadzenLabel Text=@myText.OrderDate Component="OrderDate" />
|
2025-04-18 11:01:56 +08:00
|
|
|
|
</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">
|
2025-08-11 14:58:39 +08:00
|
|
|
|
<RadzenButton Size="ButtonSize.Medium" ButtonType="ButtonType.Submit" IsBusy="isLoading" Icon="search" Text="@myText.Search" />
|
|
|
|
|
<RadzenButton Size="ButtonSize.Medium" Click="reloadGrid" IsBusy="isLoading" Icon="refresh" Text="@myText.Restore" ButtonStyle="ButtonStyle.Warning" />
|
2025-04-18 11:01:56 +08:00
|
|
|
|
</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"
|
2025-08-11 14:58:39 +08:00
|
|
|
|
EmptyText="@myText.NoDate"
|
2025-04-18 11:01:56 +08:00
|
|
|
|
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>
|
2025-08-11 14:58:39 +08:00
|
|
|
|
<RadzenDataGridColumn Frozen="true" Title="@myText.OrderNo" Property="OrderNo"></RadzenDataGridColumn>
|
|
|
|
|
<RadzenDataGridColumn Width="170px" Title="@myText.OrderDate" Property="OrderDate"></RadzenDataGridColumn>
|
|
|
|
|
<RadzenDataGridColumn Title="@myText.Doctor" Property="DoctorName"></RadzenDataGridColumn>
|
|
|
|
|
<RadzenDataGridColumn Title="@myText.Name" Property="PatientName"></RadzenDataGridColumn>
|
|
|
|
|
<RadzenDataGridColumn Title="@myText.Sex" Property="Sex"></RadzenDataGridColumn>
|
|
|
|
|
<RadzenDataGridColumn Title="@myText.Age" Property="Age"></RadzenDataGridColumn>
|
|
|
|
|
<RadzenDataGridColumn Title="@myText.DeptName" Property="DeptName"></RadzenDataGridColumn>
|
|
|
|
|
<RadzenDataGridColumn Title="@myText.Diagnose" Property="Disease"></RadzenDataGridColumn>
|
2025-04-18 11:01:56 +08:00
|
|
|
|
</Columns>
|
|
|
|
|
</RadzenDataGrid>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
@code {
|
|
|
|
|
@inject IOrderInfoDao orderInfoDao;
|
|
|
|
|
@inject DialogService dialogService;
|
2025-08-11 14:58:39 +08:00
|
|
|
|
@inject Toolbelt.Blazor.I18nText.I18nText I18nText;
|
2025-04-18 11:01:56 +08:00
|
|
|
|
RadzenDataGrid<OrderInfo> grid;
|
|
|
|
|
bool isLoading;
|
|
|
|
|
int count;
|
|
|
|
|
private IEnumerable<OrderInfo>? _forecasts;
|
|
|
|
|
string OrderNo;
|
|
|
|
|
DateTime OrderDate;
|
|
|
|
|
|
2025-08-11 14:58:39 +08:00
|
|
|
|
private I18nText.local myText = new I18nText.local();
|
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
|
|
|
{
|
|
|
|
|
myText = await I18nText.GetTextTableAsync<I18nText.local>(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2025-04-18 11:01:56 +08:00
|
|
|
|
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>(
|
2025-08-11 14:58:39 +08:00
|
|
|
|
myText.OrderDetail,
|
2025-04-18 11:01:56 +08:00
|
|
|
|
new Dictionary<string, object>() { { "order", oi } },
|
|
|
|
|
new DialogOptions() { Width = "85vw", Resizable = true, Draggable = true, ShowClose = false }
|
|
|
|
|
);
|
|
|
|
|
if(b)
|
|
|
|
|
{
|
|
|
|
|
await reloadGrid();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|