SiChuanShengErZhong8/MasaBlazorApp3/Pages/BoxStockNew.razor

234 lines
8.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@page "/Box/BoxStockAAA"
@using MasaBlazorApp3.Pojo.Config
<RadzenStack Orientation="Orientation.Horizontal" class="col-12 mb-4">
<div class="col-2 row justify-content-center align-items-center text-center">
<div class="row justify-content-around align-items-center" style="height:600px;overflow:auto">
@foreach (var cs in channelStockList)
{
<RadzenButton class="col-12" Style="margin-bottom:5px" Click="@(() => SelectDrawer((cs.DrawerNo.ToString() + "-" + cs.ColNo.ToString())))" Text="@(cs.DrawerNo==99?"急诊室药盒":cs.DrawerNo==111?"恢复室药盒":cs.DrawerNo==31?"胃镜药盒":cs.DrawerNo==32?"导管药盒":cs.DrawerNo==33?"生殖药盒":cs.DrawerNo==34?"妇门药盒":$"{cs.DrawerNo.ToString() + "-" + (cs.ColNo==1?'白':'绿')}")" Disabled="@(status > 0)" Shade="Shade.Light" Variant="@(drawerNo != (cs.DrawerNo.ToString() + "-" + cs.ColNo.ToString()) ? Variant.Outlined : Variant.Flat)" />
}
</div>
</div>
<div class="col-10">
<RadzenDataGrid @ref="grid"
IsLoading="@isLoading"
RowRender="@RowRender"
EmptyText="无数据"
Data="@_forecasts"
AllowColumnResize="true" AllowAlternatingRows="false"
SelectionMode="DataGridSelectionMode.Single"
ExpandMode="DataGridExpandMode.Single">
<Template Context="di">
<RadzenDataGrid Data="@di.Stocks" EmptyText="无数据">
<Columns>
@* <RadzenDataGridColumn Title="库位" Property="DrawerNo">
<Template Context="s">
@s.DrawerNo - @s.ColNo
</Template>
</RadzenDataGridColumn> *@
<RadzenDataGridColumn Title="批次" Property="ManuNo"></RadzenDataGridColumn>
<RadzenDataGridColumn Title="效期" Property="EffDate">
<Template Context="s">
@{
DateTime dateTime;
bool success = DateTime.TryParse(s.EffDate, out dateTime);
@s.EffDate
}
</Template>
</RadzenDataGridColumn>
<RadzenDataGridColumn Title="数量" Property="Quantity">
</RadzenDataGridColumn>
</Columns>
</RadzenDataGrid>
</Template>
<Columns>
<RadzenDataGridColumn Frozen="true" Width="200px" Title="药品名称" Property="DrugName"></RadzenDataGridColumn>
<RadzenDataGridColumn Title="规格" Property="DrugSpec"></RadzenDataGridColumn>
<RadzenDataGridColumn Title="基数" Property="BoxBaseQuantity">
<Template Context="s">
@s.BoxBaseQuantity
</Template>
</RadzenDataGridColumn>
<RadzenDataGridColumn Title="总库存" Property="BoxBaseQuantity">
<Template Context="s">
@s.StockQuantity
</Template>
</RadzenDataGridColumn>
</Columns>
</RadzenDataGrid>
</div>
</RadzenStack>
@code {
@inject IOrderInfoDao orderInfoDao;
@inject IChannelListDao channelListDao;
@inject DialogService dialogService;
@inject Microsoft.Extensions.Options.IOptions<Pojo.Config.SettingConfig> setting;
@inject NotificationService _message
@inject IDrugInfoDao drugInfoDao;
private IEnumerable<DrugInfo>? _forecasts;
bool allowRowSelectOnRowClick = true;
// IEnumerable<DrugManuNo> drugManuNos;
// IList<DrugManuNo> selectedDrugManuNos;
RadzenDataGrid<DrugInfo> grid;
// RadzenDataGrid<DrugManuNo> gridManuNo;
bool isLoading;
int count;
int[] DrawerNos = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
List<ChannelStock> channelStockList = new();
int status = 0;
string drawerNo = "1-1";
string OrderNo;
DateTime OrderDate;
async Task SelectDrawer(string strDrawerNoColNo)
{
this.drawerNo = strDrawerNoColNo;
BoxModel boxModel = new BoxModel();
boxModel.BoxName = 1;
boxModel.BoxNo = 1;
// grid.Reload();
if (drawerNo != null)
{
string[] strArr = drawerNo.Split('-');
boxModel.BoxName = Convert.ToInt32(strArr[0]);
boxModel.BoxNo = Convert.ToInt32(strArr[1]);
}
var result = await drugInfoDao.GetAllDrugAndStockByBox(boxModel);
_forecasts = result;
}
// void OnCurrentDateChanged(DateTime args)
// {
// OrderDate = new DateTime(args.Year, args.Month, args.Day);
// }
//重置
async Task reloadGrid()
{
OrderNo = "";
OrderDate = DateTime.MinValue;
await grid.Reload();
}
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
isLoading = true;
BoxModel boxModel = new BoxModel();
boxModel.BoxName = 1;
boxModel.BoxNo = 1;
isLoading = true;
if (drawerNo != null)
{
string[] strArr = drawerNo.Split('-');
boxModel.BoxName = Convert.ToInt32(strArr[0]);
boxModel.BoxNo = Convert.ToInt32(strArr[1]);
}
var result = await drugInfoDao.GetAllDrugAndStockByBox(boxModel);// await channelListDao.GetBoxDrugInfo(drawerNo, args.Top, args.Skip);
// Update the Data property
_forecasts = result;
// Update the count
//count = result.TotalDesserts;
isLoading = false;
channelStockList = await orderInfoDao.GetDrawerNum(setting.Value.boxMachineId);
isLoading = false;
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
base.OnAfterRender(firstRender);
if (firstRender)
{
await grid.ExpandRows(grid.PagedView.Where(di => di.Stocks.Count > 0));
}
}
void RowRender(RowRenderEventArgs<DrugInfo> args)
{
args.Expandable = args.Data.Stocks.Count > 0;
}
//确认
async Task Confirm()
{
// orderInfoDao.CheckOrderInfo(selectedOrderInfos, drawerNo);
}
async Task LoadData(LoadDataArgs args)
{
BoxModel boxModel = new BoxModel();
boxModel.BoxName = 1;
boxModel.BoxNo = 1;
isLoading = true;
if (drawerNo != null)
{
string[] strArr = drawerNo.Split(',');
boxModel.BoxName = Convert.ToInt32(strArr[0]);
boxModel.BoxNo = Convert.ToInt32(strArr[1]);
}
var result = await drugInfoDao.GetAllDrugAndStockByBox(boxModel);// await channelListDao.GetBoxDrugInfo(drawerNo, args.Top, args.Skip);
// Update the Data property
_forecasts = result;
// Update the count
//count = result.TotalDesserts;
isLoading = false;
channelStockList = await orderInfoDao.GetDrawerNum(setting.Value.boxMachineId);
}
//替换按钮
async Task replaceClick(ChannelStock cs)
{
if (cs.Quantity > 0)
{
var b = await dialogService.OpenAsync<BoxReplace>(
$"{cs.DrawerNo}号药盒替换药品详情",
new Dictionary<string, object>() { { "channelStock", cs } },
new DialogOptions() { Width = "85vw", Resizable = true, Draggable = true, ShowClose = false }
);
if (b)
{
await reloadGrid();
}
}
else
{
//库存为0无法操作
_message.Notify(
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"库存为0无法替换", Duration = 4000 }
);
}
}
//移除按钮
async Task removeClick(ChannelStock cs)
{
if (cs.Quantity > 0)
{
var b = await dialogService.OpenAsync<BoxRemoveDialog>(
$"{cs.DrawerNo}号药盒替换药品详情",
new Dictionary<string, object>() { { "channelStock", cs } },
new DialogOptions() { Width = "85vw", Resizable = true, Draggable = true, ShowClose = false }
);
if (b)
{
await reloadGrid();
}
}
else
{
//库存为0无法操作
_message.Notify(
new NotificationMessage { Severity = NotificationSeverity.Error, Summary = "提示", Detail = $"库存为0没有要移出的药品", Duration = 4000 }
);
}
}
}