duheng
2025-04-02 af5eeb8797d88e142410a9e82e84291355e7c336
WinFrmUI/PBS.WinFrmUI/02-facility/FacilityMgrPage.cs
@@ -1,5 +1,6 @@
using DevExpress.Utils.DragDrop;
using DevExpress.XtraEditors;
using HStation.WinFrmUI;
using Yw;
using Yw.WinFrmUI;
@@ -10,6 +11,10 @@
        public FacilityMgrPage()
        {
            InitializeComponent();
            this.gridView1.SetNormalView(30);
            this.gridView1.Columns["PlaceID"].GroupIndex = 0;
            this.gridView1.GroupFormat = "{1}";
            behaviorManager1.Detach<DragDropBehavior>(gridView1);
        }
        private List<FacilityViewModel> _allBindingList;
@@ -34,19 +39,54 @@
            }
            this.facilityViewModelBindingSource.DataSource = _allBindingList;
            this.facilityViewModelBindingSource.ResetBindings(false);
            var allFacility = await new PBS.BLL.Place().GetAll();
            repositoryItemTreeListLookUpEdit1.DataSource = allFacility;
        }
        //新增
        private void BtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var dlg = new AddFacilityDlg();
            dlg.SetBindingData();
            dlg.ReloadDataEvent += async (vmo) =>
           {
               var id = await _facilityBll.Insert(vmo);
               if (id > 0)
               {
                   if (vmo.PackageID > 0)
                   {
                       packageCurveViewModel.SaveCurveFile(id, vmo.PackageID);
                   }
                   vmo.ID = id;
                   _allBindingList.Add(new FacilityViewModel(vmo));
                   this.facilityViewModelBindingSource.ResetBindings(false);
                   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 EditFacilityDlg();
            dlg.SetBindingData(vm.Vmo);
            dlg.ReloadDataEvent += async (vmo) =>
            {
                var id = await _facilityBll.Insert(vmo);
                if (id > 0)
                var bol = await _facilityBll.Update(vmo);
                if (bol)
                {
                    vmo.ID = id;
                    _allBindingList.Add(new FacilityViewModel(vmo));
                    if (vmo.PackageID > 0)
                    {
                        packageCurveViewModel.SaveCurveFile(vmo.ID, vmo.PackageID);
                    }
                    vm.Resert(vmo);
                    this.facilityViewModelBindingSource.ResetBindings(false);
                    return true;
                }
@@ -75,6 +115,10 @@
                return;
            }
            _allBindingList.Remove(vm);
            if (vm.PackageID > 0)
            {
                packageCurveViewModel.DeleteCurveFile(vm.ID);
            }
            this.facilityViewModelBindingSource.ResetBindings(false);
            TipFormHelper.ShowSucceed("删除成功!");
        }
@@ -93,14 +137,14 @@
        private void barCkDrag_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            SetDragEnable(this.barCkDrag.Checked);
        }
        //设置拖拽可用性
        private void SetDragEnable(bool allowArag)
        {
            var be = this.behaviorManager1.GetBehavior<DevExpress.Utils.DragDrop.DragDropBehavior>(this.gridView1);
            be.Properties.AllowDrag = allowArag;
            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)
@@ -205,13 +249,13 @@
                TipFormHelper.ShowWarn("上移失败!");
                return;
            }
            var current = this.gridView1.GetRow(rowHandle) as PlaceViewModel;
            var current = this.gridView1.GetRow(rowHandle) as FacilityViewModel;
            if (current == null)
            {
                return;
            }
            var prevHandle = rowHandle - 1;
            var prev = this.gridView1.GetRow(prevHandle) as PlaceViewModel;
            var prev = this.gridView1.GetRow(prevHandle) as FacilityViewModel;
            if (prev == null)
            {
                return;
@@ -253,13 +297,13 @@
                TipFormHelper.ShowWarn("下移失败!");
                return;
            }
            var current = this.gridView1.GetRow(rowHandle) as PlaceViewModel;
            var current = this.gridView1.GetRow(rowHandle) as FacilityViewModel;
            if (current == null)
            {
                return;
            }
            var nextHandle = rowHandle + 1;
            var next = this.gridView1.GetRow(nextHandle) as PlaceViewModel;
            var next = this.gridView1.GetRow(nextHandle) as FacilityViewModel;
            if (next == null)
            {
                return;
@@ -281,5 +325,28 @@
            this.facilityViewModelBindingSource.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 new PBS.BLL.Facility().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();
        }
    }
}