234 lines
8.7 KiB
Plaintext
234 lines
8.7 KiB
Plaintext
|
|
@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 }
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|