@page "/stock/drug"
@* 批次列表 *@ @if (SelectedDrugs.Count > 0) { @* *@
}
@code { @inject IDrugInfoDao drugInfoDao; @inject DialogService dialogService; @inject IDrugManuNoDao drugManuNoDao; @inject Toolbelt.Blazor.I18nText.I18nText I18nText; private I18nText.local myText = new I18nText.local(); RadzenDataGrid grid; RadzenDataGrid ManusGrid; List manuNoToInsert = new List(); List manuNoToUpdate = new List(); bool isLoading; int count; private IEnumerable? _forecasts; IList SelectedDrugs { get; set; } = new List(); string DrugId; string DrugName; async Task LoadData(LoadDataArgs args) { isLoading = true; var result = await drugInfoDao.GetAllDrug(DrugId, DrugName, args.Top, args.Skip); // Update the Data property _forecasts = result.Desserts; count = result.TotalDesserts; SelectedDrugs = new List() { _forecasts.FirstOrDefault() }; isLoading = false; } async Task reloadGrid() { DrugId = String.Empty; DrugName = String.Empty; await grid.Reload(); } void Reset() { manuNoToInsert.Clear(); manuNoToUpdate.Clear(); } void Reset(DrugManuNo drugManuNo) { manuNoToInsert.Remove(drugManuNo); manuNoToUpdate.Remove(drugManuNo); } /// 新增药品 async Task InsertDrugRow() { var drugInfo = new DrugInfo(); drugInfo.Manus.Add(new DrugManuNo()); SelectedDrugs.Add(drugInfo); await grid.InsertRow(drugInfo); } // //更新药品数据信息 async Task OnDrugUpdateRow(DrugInfo drugInfo) { // 数据库更新药品 drugInfoDao.UpdateDrugInfo(drugInfo); grid.Reload(); } //新增药品数据信息 async Task OnDrugCreateRow(DrugInfo drugInfo) { // 数据库添加药品 drugInfoDao.AddDrugInfo(drugInfo); grid.Reload(); } async Task EditDrugRow(DrugInfo drugInfo) { drugInfoDao.UpdateDrugInfo(drugInfo); await grid.EditRow(drugInfo); } async Task SaveDrugRow(DrugInfo drugInfo) { await grid.UpdateRow(drugInfo); } void CancelDrugEdit(DrugInfo drugInfo) { Reset(); grid.CancelEditRow(drugInfo); grid.Reload(); } async Task DeleteDrugRow(DrugInfo drugInfo) { Reset(); if(!string.IsNullOrEmpty(drugInfo.DrugId)) { //弹出确认提示框 var b = await dialogService.OpenAsync( $"删除确认", new Dictionary() { { "confirmInfo", "确认要删除药品:"+drugInfo.DrugName+"吗?" } }, new DialogOptions() { Width = "45vw", Resizable = true, Draggable = true, ShowClose = false }); if(b) { // 数据库删除 drugInfoDao.DeleteDrugInfo(drugInfo.DrugId); } grid.Reload(); } } /// 新增批次 async Task InsertRow() { var drugManuNo = new Pojo.DrugManuNo() { Id = Guid.NewGuid().ToString(), DrugId = SelectedDrugs.FirstOrDefault().DrugId }; SelectedDrugs.FirstOrDefault().Manus.Add(drugManuNo); await ManusGrid.InsertRow(drugManuNo); } async Task EditRow(DrugManuNo drugManuNo) { Reset(); manuNoToUpdate.Add(drugManuNo); await ManusGrid.EditRow(drugManuNo); } async Task SaveRow(DrugManuNo drugManuNo) { await ManusGrid.UpdateRow(drugManuNo); } void CancelEdit(DrugManuNo drugManuNo) { Reset(drugManuNo); SelectedDrugs.FirstOrDefault().Manus.Remove(drugManuNo); ManusGrid.CancelEditRow(drugManuNo); ManusGrid.Reload(); } async Task DeleteRow(DrugManuNo drugManuNo) { Reset(drugManuNo); if (SelectedDrugs.FirstOrDefault().Manus.Contains(drugManuNo)) { //弹出确认提示框 var b = await dialogService.OpenAsync( $"确认删除", new Dictionary() { { "confirmInfo", "确认要删除批次:"+drugManuNo.ManuNo+"吗?" } }, new DialogOptions() { Width = "45vw", Resizable = true, Draggable = true, ShowClose = false } ); if(b) { SelectedDrugs.FirstOrDefault().Manus.Remove(drugManuNo); // 数据库删除 drugManuNoDao.DeleteDrugManuNo(drugManuNo.Id); await ManusGrid.Reload(); } } else { ManusGrid.CancelEditRow(drugManuNo); await ManusGrid.Reload(); } } void OnUpdateRow(DrugManuNo dm) { Reset(dm); // 数据库更新 drugManuNoDao.UpdateDrugManuNo(dm); ManusGrid.Reload(); } void OnCreateRow(DrugManuNo dm) { // 数据库添加批次 drugManuNoDao.AddDrugManuNo(dm); manuNoToInsert.Remove(dm); ManusGrid.Reload(); } protected override async Task OnInitializedAsync() { myText = await I18nText.GetTextTableAsync(this); await base.OnInitializedAsync(); } }