From d5a2d7e66f9c8046bd88b8269e61aac5a2a265e2 Mon Sep 17 00:00:00 2001 From: duheng <2286773002@qq.com> Date: 星期五, 28 三月 2025 10:49:55 +0800 Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0 --- WinFrmUI/PBS.WinFrmUI/01-place/PlaceMgrPage.cs | 420 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 417 insertions(+), 3 deletions(-) diff --git a/WinFrmUI/PBS.WinFrmUI/01-place/PlaceMgrPage.cs b/WinFrmUI/PBS.WinFrmUI/01-place/PlaceMgrPage.cs index d86414c..ef9c567 100644 --- a/WinFrmUI/PBS.WinFrmUI/01-place/PlaceMgrPage.cs +++ b/WinFrmUI/PBS.WinFrmUI/01-place/PlaceMgrPage.cs @@ -1,15 +1,429 @@ -锘縰sing Yw.WinFrmUI; +锘縰sing DevExpress.DataProcessing.InMemoryDataProcessor; +using DevExpress.Utils.DragDrop; +using DevExpress.XtraEditors; +using HStation.WinFrmUI; +using Yw; +using Yw.WinFrmUI; -namespace HStation.WinFrmUI.PBS +namespace PBS.WinFrmUI { public partial class PlaceMgrPage : DocumentPage { public PlaceMgrPage() { InitializeComponent(); + this.gridView1.SetNormalView(30); + behaviorManager1.Detach<DragDropBehavior>(gridView1); } + private List<PlaceViewModel> _allBindingList; + private BLL.Place _placeBll = new(); + public override void InitialDataSource() + { + SetBindingData(); + } + + private async void SetBindingData() + { + _allBindingList = new List<PlaceViewModel>(); + var allList = await _placeBll.GetAll(); + if (allList != null) + { + foreach (var item in allList) + { + var mapInfo = await BLLFactory<Yw.BLL.MapInfo>.Instance + .Get(PBS.DataType.PBSPlace, item.ID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); + + _allBindingList.Add(new PlaceViewModel(item, mapInfo)); + } + } + this.placeViewModelBindingSource.DataSource = _allBindingList; + this.placeViewModelBindingSource.ResetBindings(false); + var allRegion = await new Yw.BLL.Division().GetAll(); + this.repositoryItemTreeListLookUpEdit1.DataSource = allRegion; + } + + //鏂板灏忓尯 + private void btnAddBuilding_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var dlg = new AddPlaceDlg(); + dlg.SetBindingData(PBS.ePlaceType.Build); + dlg.ReloadDataEvent += async (vmo, mapInfo) => + { + var id = await _placeBll.Insert(vmo); + if (id > 0) + { + vmo.ID = id; + _allBindingList.Add(new PlaceViewModel(vmo, mapInfo)); + this.placeViewModelBindingSource.ResetBindings(false); + mapInfo.ObjectID = id; + await new Yw.BLL.MapInfo().Insert(mapInfo); + return true; + } + return false; + }; + dlg.ShowDialog(); + } + + //鏂板瀛︽牎 + private void btnAddschool_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var dlg = new AddPlaceDlg(); + dlg.SetBindingData(PBS.ePlaceType.School); + dlg.ReloadDataEvent += async (Vmo, mapInfo) => + { + var id = await _placeBll.Insert(Vmo); + if (id > 0) + { + Vmo.ID = id; + _allBindingList.Add(new PlaceViewModel(Vmo, mapInfo)); + this.placeViewModelBindingSource.ResetBindings(false); + mapInfo.ObjectID = id; + await new Yw.BLL.MapInfo().Insert(mapInfo); + + return true; + } + return false; + }; + dlg.ShowDialog(); + } + + //鏂板鍖婚櫌 + private void btnAddHospital_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var dlg = new AddPlaceDlg(); + dlg.SetBindingData(PBS.ePlaceType.Hospital); + dlg.ReloadDataEvent += async (Vmo, mapInfo) => + { + var id = await _placeBll.Insert(Vmo); + if (id > 0) + { + Vmo.ID = id; + _allBindingList.Add(new PlaceViewModel(Vmo, mapInfo)); + this.placeViewModelBindingSource.ResetBindings(false); + mapInfo.ObjectID = id; + await new Yw.BLL.MapInfo().Insert(mapInfo); + + return true; + } + return false; + }; + dlg.ShowDialog(); + } + + //鏂板鍟嗛摵 + private void btnAddShop_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var dlg = new AddPlaceDlg(); + dlg.SetBindingData(PBS.ePlaceType.Shop); + dlg.ReloadDataEvent += async (Vmo, mapInfo) => + { + var id = await _placeBll.Insert(Vmo); + if (id > 0) + { + Vmo.ID = id; + _allBindingList.Add(new PlaceViewModel(Vmo, mapInfo)); + this.placeViewModelBindingSource.ResetBindings(false); + mapInfo.ObjectID = id; + await new Yw.BLL.MapInfo().Insert(mapInfo); + + return true; + } + return false; + }; + dlg.ShowDialog(); + } + + //淇敼 + private void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = this.gridView1.GetCurrentViewModel(_allBindingList); + if (vm == null) + { + TipFormHelper.ShowWarn("璇烽�夋嫨鏁版嵁琛�"); + } + var dlg = new EditPlaceDlg(); + dlg.SetBindingData(vm.Vmo, vm.MapInfo); + dlg.ReloadDataEvent += async (vmo, map) => + { + var bol = await _placeBll.Update(vmo); + if (bol) + { + if (map.ID > 0) + { + await new Yw.BLL.MapInfo().Update(map); + } + else + { + await new Yw.BLL.MapInfo().Insert(map); + } + vm.Resert(vmo, map); + this.placeViewModelBindingSource.ResetBindings(false); + return true; + } + return false; + }; + dlg.ShowDialog(); + } + + //鍒犻櫎 + private async void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = this.gridView1.GetCurrentViewModel(_allBindingList); + if (vm == null) + { + return; + } + var result = XtraMessageBox.Show("璇烽棶纭鍒犻櫎褰撳墠鏁版嵁鍚楋紵", "璇㈤棶", MessageBoxButtons.YesNo) == DialogResult.Yes; + if (!result) + { + return; + } + if (vm.MapInfo != null) + { + if (!await BLLFactory<Yw.BLL.MapInfo>.Instance.DeleteByObjectTypeAndObjectID(PBS.DataType.PBSPlace, vm.ID)) + { + TipFormHelper.ShowError("椤圭洰鍦板浘浣嶇疆鍒犻櫎澶辫触锛岃閲嶈瘯锛�"); + return; + } + } + var bol = await _placeBll.DeleteByID(vm.ID); + if (!bol) + { + TipFormHelper.ShowError("鍒犻櫎澶辫触锛�"); + return; + } + _allBindingList.Remove(vm); + this.placeViewModelBindingSource.ResetBindings(false); + TipFormHelper.ShowSucceed("鍒犻櫎鎴愬姛锛�"); + } + + //鍒锋柊 + private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + SetBindingData(); + } + + //鏌ヨ + private void barCekSearch_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + this.gridView1.OptionsFind.AlwaysVisible = !this.gridView1.OptionsFind.AlwaysVisible; + } + + private void barCkDrag_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + if (barCkDrag.Checked) + { + behaviorManager1.Attach<DragDropBehavior>(this.gridView1); + } + else + { + behaviorManager1.Detach<DragDropBehavior>(gridView1); + } + } + + private async void dragDropEvents1_DragDrop(object sender, DevExpress.Utils.DragDrop.DragDropEventArgs e) + { + var indexs = e.Data as int[]; + if (indexs == null || indexs.Length < 1) + { + e.Handled = true; + return; + } + var sourceIndex = indexs[0]; + var sourceObj = this.gridView1.GetRow(sourceIndex) as PlaceViewModel; + if (sourceObj == null) + { + e.Handled = true; + return; + } + + var destIndex = this.gridView1.GetRowHandleByCP(e.Location); + if (destIndex < 0) + { + e.Handled = true; + return; + } + + var destObj = this.gridView1.GetRow(destIndex) as PlaceViewModel; + if (destObj == null) + { + e.Handled = true; + return; + } + + var sorters = new List<Yw.Vmo.Sorter>(); + + if (e.InsertType == InsertType.Before) + { + sorters.Add(new Yw.Vmo.Sorter() { ID = sourceObj.ID, SortCode = destObj.SortCode }); + _allBindingList.ForEach(x => + { + if (x.SortCode >= destObj.SortCode) + { + if (x != sourceObj) + { + sorters.Add(new Yw.Vmo.Sorter() { ID = x.ID, SortCode = x.SortCode + 1 }); + } + } + }); + } + else if (e.InsertType == InsertType.After) + { + sorters.Add(new Yw.Vmo.Sorter() { ID = sourceObj.ID, SortCode = destObj.SortCode + 1 }); + _allBindingList.ForEach(x => + { + if (x.SortCode > destObj.SortCode) + { + if (x != sourceObj) + { + sorters.Add(new Yw.Vmo.Sorter() { ID = x.ID, SortCode = x.SortCode + 1 }); + } + } + }); + } + else + { + e.Handled = true; + return; + } + + var bol = await _placeBll.UpdateSorter(sorters); + if (!bol) + { + e.Handled = true; + return; + } + + _allBindingList.ForEach(x => + { + var sorter = sorters.Find(t => t.ID == x.ID); + if (sorter != null) + { + x.SortCode = sorter.SortCode; + } + }); + } + + private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + Up(); + } + + //涓婄Щ + private async void Up() + { + var vm = this.gridView1.GetCurrentViewModel(_allBindingList); + if (vm == null) + { + return; + } + var rowHandle = this.gridView1.FocusedRowHandle; + if (rowHandle == 0) + { + TipFormHelper.ShowWarn("涓婄Щ澶辫触锛�"); + return; + } + var current = this.gridView1.GetRow(rowHandle) as PlaceViewModel; + if (current == null) + { + return; + } + var prevHandle = rowHandle - 1; + var prev = this.gridView1.GetRow(prevHandle) as PlaceViewModel; + if (prev == null) + { + return; + } + var sorters = new List<Yw.Vmo.Sorter>(); + sorters.Add(new Yw.Vmo.Sorter() { ID = current.ID, SortCode = prev.SortCode }); + sorters.Add(new Yw.Vmo.Sorter() { ID = prev.ID, SortCode = current.SortCode }); + var bol = await _placeBll.UpdateSorter(sorters); + if (!bol) + { + TipFormHelper.ShowError("涓婄Щ澶辫触锛�"); + return; + } + var sortCode = current.SortCode; + current.SortCode = prev.SortCode; + prev.SortCode = sortCode; + _allBindingList = _allBindingList.OrderBy(x => x.SortCode).ToList(); + this.placeViewModelBindingSource.DataSource = _allBindingList; + this.placeViewModelBindingSource.ResetBindings(false); + this.gridView1.FocusedRowHandle = prevHandle; + } + + private void barBtnDown_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + Down(); + } + + //涓嬬Щ + private async void Down() + { + var vm = this.gridView1.GetCurrentViewModel(_allBindingList); + if (vm == null) + { + return; + } + var rowHandle = this.gridView1.FocusedRowHandle; + if (rowHandle == _allBindingList.Count - 1) + { + TipFormHelper.ShowWarn("涓嬬Щ澶辫触锛�"); + return; + } + var current = this.gridView1.GetRow(rowHandle) as PlaceViewModel; + if (current == null) + { + return; + } + var nextHandle = rowHandle + 1; + var next = this.gridView1.GetRow(nextHandle) as PlaceViewModel; + if (next == null) + { + return; + } + var sorters = new List<Yw.Vmo.Sorter>(); + sorters.Add(new Yw.Vmo.Sorter() { ID = current.ID, SortCode = next.SortCode }); + sorters.Add(new Yw.Vmo.Sorter() { ID = next.ID, SortCode = current.SortCode }); + var bol = await _placeBll.UpdateSorter(sorters); + if (!bol) + { + TipFormHelper.ShowError("涓嬬Щ澶辫触锛�"); + return; + } + var sortCode = current.SortCode; + current.SortCode = next.SortCode; + next.SortCode = sortCode; + _allBindingList = _allBindingList.OrderBy(x => x.SortCode).ToList(); + this.placeViewModelBindingSource.DataSource = _allBindingList; + this.placeViewModelBindingSource.ResetBindings(false); + this.gridView1.FocusedRowHandle = nextHandle; + } + + private void barBtnUpdateUseStatus_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = this.gridView1.GetCurrentViewModel(_allBindingList); + if (vm == null) + { + return; + } + var dlg = new SetUseStatusDlg(); + dlg.SetBindingData((Yw.Model.eUseStatus)vm.UseStatus); + dlg.ReloadDataEvent += async (status) => + { + var bol = await BLLFactory<PBS.BLL.Place>.Instance.UpdateUseStatus(vm.ID, status); + if (bol) + { + vm.UseStatus = (Yw.Vmo.eUseStatus)(int)status; + this.gridView1.RefreshRow(this.gridView1.FocusedRowHandle); + return true; + } + return false; + }; + dlg.ShowDialog(); + } } -} +} \ No newline at end of file -- Gitblit v1.9.3