duheng
2025-04-11 62acc7cd9795df8746ee4f4765a496df6b297f7f
WinFrmUI/PBS.WinFrmUI/01-place/EditPlaceDlg.cs
@@ -1,7 +1,10 @@
using DevExpress.XtraEditors;
using HStation.PBS;
using DevExpress.DataProcessing.InMemoryDataProcessor;
using DevExpress.Utils.Extensions;
using PBS.Model;
using PBS.Vmo;
using Yw;
using Yw.DAL.PostgreSql;
using Yw.Vmo;
using Yw.WinFrmUI;
namespace PBS.WinFrmUI
@@ -24,10 +27,16 @@
        private SchoolWizardForm _schoolWizard;
        private ShopWizardForm _shopWizard;
        public event Func<Vmo.PlaceVmo, Task<bool>> ReloadDataEvent;
        public event Func<Vmo.PlaceVmo, Yw.Vmo.MapInfoVmo, Task<bool>> ReloadDataEvent;
        public async void SetBindingData(PlaceVmo placeVmo)
        private Yw.WinFrmUI.MapSetSimpleMarkerContainer _map = new();
        private Yw.Model.Map.Marker _maker = null;
        private Yw.Vmo.MapInfoVmo _mapInfo = null;
        public async void SetBindingData(PlaceVmo placeVmo, MapInfoVmo mapInfo)
        {
            _mapInfo = mapInfo;
            _placeVmo = placeVmo;
            var list = await new Yw.BLL.Division().GetAll();
            this.treeList1.DataSource = list;
@@ -39,40 +48,56 @@
                case ePlaceType.Build:
                    _buildWizard = new BuildWizardForm();
                    _buildWizard.Dock = DockStyle.Fill;
                    _buildWizard.SetData(Yw.JsonHelper.Json2Object<PlaceBuildParasInfo>(_placeVmo.PlaceInfo));
                    _buildWizard.SetData(PlaceBuildParasInfoVmo.ToModel(_placeVmo.PlaceInfo));
                    this.panelControl1.Controls.Add(_buildWizard);
                    break;
                case ePlaceType.Hospital:
                    _hospitalWizard = new HospitalWizardForm();
                    _hospitalWizard.Dock = DockStyle.Fill;
                    _hospitalWizard.SetData(Yw.JsonHelper.Json2Object<PlaceHospitalParasInfo>(_placeVmo.PlaceInfo));
                    _hospitalWizard.SetData(PlaceHospitalParasInfoVmo.ToModel(_placeVmo.PlaceInfo));
                    this.panelControl1.Controls.Add(_hospitalWizard);
                    break;
                case ePlaceType.Shop:
                    _shopWizard = new ShopWizardForm();
                    _shopWizard.Dock = DockStyle.Fill;
                    _shopWizard.SetData(Yw.JsonHelper.Json2Object<PlaceShopParasInfo>(_placeVmo.PlaceInfo));
                    _shopWizard.SetData(PlaceShopParasInfoVmo.ToModel(_placeVmo.PlaceInfo));
                    this.panelControl1.Controls.Add(_shopWizard);
                    break;
                case ePlaceType.School:
                    _schoolWizard = new SchoolWizardForm();
                    _schoolWizard.Dock = DockStyle.Fill;
                    _schoolWizard.SetData(Yw.JsonHelper.Json2Object<PlaceSchoolParasInfo>(_placeVmo.PlaceInfo));
                    _schoolWizard.SetData(PlaceSchoolParasInfoVmo.ToModel(_placeVmo.PlaceInfo));
                    this.panelControl1.Controls.Add(_schoolWizard);
                    break;
            }
            /*     if (list != null && list.Count > 0)
                 {
                     foreach (var item in list)
                     {
                         var vm = new DivisionViewModel(item);
                         _allBindingList.Add(vm);
                     }
                 }
                 this.divisionViewModelBindingSource.DataSource = _allBindingList;*/
            _map.Dock = DockStyle.Fill;
            _map.SetMarkerEvent += Map_SetMarkerEvent;
            _map.LoadCompletedEvent += Map_LoadCompletedEvent;
            await _map.InitialContainer();
            this.sidePanel1.AddControl(_map);
            if (mapInfo != null)
            {
                _maker = Yw.Model.Map.Marker.ToModel(mapInfo.Position);
            }
            var allFlagsList = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(DataType.PBSPlace);
            this.setFlagsEditCtrl1.SetBindingData(allFlagsList?.Select(x => x.Name).Distinct().ToList(), null);
        }
        //地图加载完成后
        private async void Map_LoadCompletedEvent()
        {
            if (_maker != null)
            {
                await _map.LoadMarker(_maker);
            }
        }
        private void Map_SetMarkerEvent(Yw.Model.Map.Marker obj)
        {
            _maker = obj;
        }
        private bool Valid()
@@ -115,11 +140,29 @@
            _placeVmo.Name = txtEditName.Text.Trim();
            _placeVmo.Address = textEditAddress.Text.Trim();
            _placeVmo.UseStatus = Yw.Vmo.eUseStatus.Enable;
            _placeVmo.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
            _placeVmo.TagName = this.txtTagName.Text.Trim();
            _placeVmo.Description = memoEditDescription.Text.Trim();
            if (_mapInfo == null)
            {
                _mapInfo = new MapInfoVmo();
                _mapInfo.ObjectType = PBS.DataType.PBSPlace;
                _mapInfo.ObjectID = _placeVmo.ID;
                _mapInfo.ObjectName = _placeVmo.Name;
                _mapInfo.Purpose = Yw.Map.Purpose.Location;
                _mapInfo.Kind = Yw.Map.Kind.Gaodei;
                _mapInfo.Shape = Yw.Map.Shape.Marker;
            }
            if (_maker != null)
            {
                _mapInfo.Position = _maker.ToJson();
            }
            if (this.txtEditRegion.EditValue != null)
            {
                _placeVmo.RegionID = Convert.ToInt64(this.txtEditRegion.EditValue);
            }
            if (await ReloadDataEvent.Invoke(_placeVmo))
            if (await ReloadDataEvent.Invoke(_placeVmo, _mapInfo))
            {
                TipFormHelper.ShowSucceed("修改成功!");
            }