namespace HStation.WinFrmUI.Xhs.PumpProduct { public partial class PumpProductMainPanel : DocumentPage { public PumpProductMainPanel() { InitializeComponent(); this.PageTitle.Caption = "水泵管理"; this.PageTitle.HeaderSvgImage = this.svgImage32[1]; this.PageTitle.SvgImageSize = new Size(24, 24); this.gridView1.SetNormalView(); this.gridView1.RegistCustomDrawRowIndicator(); this.pumpSeriesTreeListCtrl1.FocusedChangedEvent += PumpSeriesTreeListCtrl1_FocusedChangedEvent; } private readonly List _allBindingList = new(); private BLL.PumpMain _bll = null; public override void InitialDataSource() { _bll = new BLL.PumpMain(); this.pumpSeriesTreeListCtrl1.SetBindingData(); this.currentViewModelBindingSource.DataSource = _allBindingList; this.currentViewModelBindingSource.ResetBindings(false); } private async void SetBindingData() { _allBindingList.Clear(); _bll = new BLL.PumpMain(); var alllist = await _bll.GetAll(); foreach (var item in alllist) { _allBindingList.Add(new PumpMainViewModel(item)); } } //聚焦切换 private async void PumpSeriesTreeListCtrl1_FocusedChangedEvent(long obj, bool isgroup) { _allBindingList.Clear(); if (isgroup) { var alllist = await _bll.GetByPumpSeriesID(obj); _allBindingList.Clear(); foreach (var item in alllist) { _allBindingList.Add(new PumpMainViewModel(item)); } } else { var idlist = new BLL.PumpGroupAndMainMap().GetByGroupID(obj); var alllist = await _bll.GetByIds(idlist); if (alllist != null) { _allBindingList.Clear(); foreach (var item in alllist) { _allBindingList.Add(new PumpMainViewModel(item)); } } } this.currentViewModelBindingSource.ResetBindings(false); } //增加 private void BtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var dlg = new AddPumpProductMainDlg(); //系列ID var id = this.pumpSeriesTreeListCtrl1.GetCurrentID(); if (id <= 0) { return; } var groupid = this.pumpSeriesTreeListCtrl1.GetCurrentGroupID(); Vmo.PumpGroupAndMainMap map = null; if (groupid > 0) { map = new Vmo.PumpGroupAndMainMap(); map.PumpGroupID = groupid; } dlg.SetBindingData(id); dlg.ReloadDataEvent += async (main) => { var id = await _bll.InsertEx(main, map); if (id > 0) { var model = await _bll.GetByID(id); _allBindingList.Add(new PumpMainViewModel(model)); this.currentViewModelBindingSource.ResetBindings(false); return true; } return false; }; dlg.ShowDialog(); } //修改 private void BtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var currentVm = this.gridView1.GetCurrentViewModel(_allBindingList); if (currentVm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } var dlg = new EditPumpProductMainDlg(); dlg.SetBindingData(currentVm.ID); dlg.ReloadDataEvent += async (rhs) => { if (await _bll.Update(rhs)) { currentVm.Reset(rhs); this.currentViewModelBindingSource.ResetBindings(false); return true; } return false; }; dlg.ShowDialog(); } //删除 private async void BtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var currentVm = this.gridView1.GetCurrentViewModel(_allBindingList); if (currentVm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } if (MessageBoxHelper.IsClickOk($"确认删除数据行?", "提示")) return; var groupresult = await _bll.DeleteMapByMainID(currentVm.ID); if (groupresult) { _allBindingList.Remove(currentVm); this.currentViewModelBindingSource.ResetBindings(false); MessageBoxHelper.ShowSuccess($"删除成功!"); } else { MessageBoxHelper.ShowError($"删除失败!"); return; } } //泵曲线编辑 private async void barBtnEditPumpCurve_ItemClickAsync(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { /* var currentVm = this.gridView1.GetCurrentViewModel(_allBindingList); if (currentVm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } var guid = new PageGuid() { Function = "泵曲线管理", TagName = currentVm.ID.ToString(), Modular = "" }; if (!IsExistPage(guid, true)) { var model = await _bll.GetByID(currentVm.ID); if (model == null) { MessageBoxHelper.ShowWarning($"{currentVm.Name}:PumpMainDto is null!"); return; } var page = new Phart.XhsPumpCurveMainPanel(); page.InitialDataSource(currentVm); page.PageTitle.Caption = guid.Function; page.PageGuid = guid; CreatePage(page, guid); }*/ } //泵产品编辑 private void BarBtnEidtPumpPart_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var currentVm = this.gridView1.GetCurrentViewModel(_allBindingList); if (currentVm == null) { MessageBoxHelper.ShowWarning("请选择数据行!"); return; } var dlg = new EditPumpPartDlg(); // var pumpmain = currentVm.Model as Vmo.PumpMain; dlg.SetBindingData(currentVm.Model); dlg.ReloadEvent += async (part, content, map) => { var bll = new BLL.PumpPartMain(); var id = await bll.InsertEx(part, content, map); if (id > 0) { return true; } return false; }; dlg.ShowDialog(); } //表格右击菜单 private void gridView1_MouseUp(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { if (this.gridView1.GetCurrentViewModel(_allBindingList) != null) { Point screenPoint = Cursor.Position; popupPump.ShowPopup(screenPoint); } } } } }