using DevExpress.DataProcessing.InMemoryDataProcessor;
|
using DevExpress.Utils.Extensions;
|
using PBS.Model;
|
using PBS.Vmo;
|
using Yw.DAL.PostgreSql;
|
using Yw.Vmo;
|
using Yw.WinFrmUI;
|
|
namespace PBS.WinFrmUI
|
{
|
public partial class EditPlaceDlg : DevExpress.XtraEditors.XtraForm
|
{
|
public EditPlaceDlg()
|
{
|
InitializeComponent();
|
this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
|
this.generalOkAndCancelCtrl1.OkEvent += GeneralOkAndCancelCtrl1_OkEvent; ;
|
}
|
|
private Vmo.PlaceVmo _placeVmo;
|
|
private ePlaceType _sign;
|
|
private BuildWizardForm _buildWizard;
|
private HospitalWizardForm _hospitalWizard;
|
private SchoolWizardForm _schoolWizard;
|
private ShopWizardForm _shopWizard;
|
|
public event Func<Vmo.PlaceVmo, Yw.Vmo.MapInfoVmo, Task<bool>> ReloadDataEvent;
|
|
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;
|
this.txtEditName.EditValue = _placeVmo.Name;
|
this.txtEditRegion.EditValue = _placeVmo.RegionID;
|
this.textEditAddress.EditValue = _placeVmo.Address;
|
switch (_placeVmo.PlaceType)
|
{
|
case ePlaceType.Build:
|
_buildWizard = new BuildWizardForm();
|
_buildWizard.Dock = DockStyle.Fill;
|
_buildWizard.SetData(PlaceBuildParasInfoVmo.ToModel(_placeVmo.PlaceInfo));
|
this.panelControl1.Controls.Add(_buildWizard);
|
break;
|
|
case ePlaceType.Hospital:
|
_hospitalWizard = new HospitalWizardForm();
|
_hospitalWizard.Dock = DockStyle.Fill;
|
_hospitalWizard.SetData(PlaceHospitalParasInfoVmo.ToModel(_placeVmo.PlaceInfo));
|
this.panelControl1.Controls.Add(_hospitalWizard);
|
break;
|
|
case ePlaceType.Shop:
|
_shopWizard = new ShopWizardForm();
|
_shopWizard.Dock = DockStyle.Fill;
|
_shopWizard.SetData(PlaceShopParasInfoVmo.ToModel(_placeVmo.PlaceInfo));
|
this.panelControl1.Controls.Add(_shopWizard);
|
break;
|
|
case ePlaceType.School:
|
_schoolWizard = new SchoolWizardForm();
|
_schoolWizard.Dock = DockStyle.Fill;
|
_schoolWizard.SetData(PlaceSchoolParasInfoVmo.ToModel(_placeVmo.PlaceInfo));
|
this.panelControl1.Controls.Add(_schoolWizard);
|
break;
|
}
|
_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);
|
}
|
}
|
|
//地图加载完成后
|
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()
|
{
|
bool isExist = true;
|
this.dxErrorProvider1.ClearErrors();
|
if (string.IsNullOrEmpty(this.txtEditName.Text.Trim()))
|
{
|
this.dxErrorProvider1.SetError(this.txtEditName, "必填项");
|
isExist = false;
|
}
|
return isExist;
|
}
|
|
/// <summary>
|
/// 确定
|
/// </summary>
|
private async void GeneralOkAndCancelCtrl1_OkEvent()
|
{
|
if (!Valid())
|
return;
|
switch (_sign)
|
{
|
case ePlaceType.Build:
|
_placeVmo.PlaceInfo = Yw.JsonHelper.Object2Json(_buildWizard.GetData());
|
break;
|
|
case ePlaceType.Shop:
|
_placeVmo.PlaceInfo = Yw.JsonHelper.Object2Json(_shopWizard.GetData());
|
break;
|
|
case ePlaceType.Hospital:
|
_placeVmo.PlaceInfo = Yw.JsonHelper.Object2Json(_hospitalWizard.GetData());
|
break;
|
|
case ePlaceType.School:
|
_placeVmo.PlaceInfo = Yw.JsonHelper.Object2Json(_schoolWizard.GetData());
|
break;
|
}
|
_placeVmo.Name = txtEditName.Text.Trim();
|
_placeVmo.Address = textEditAddress.Text.Trim();
|
_placeVmo.UseStatus = Yw.Vmo.eUseStatus.Enable;
|
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, _mapInfo))
|
{
|
TipFormHelper.ShowSucceed("修改成功!");
|
}
|
else
|
{
|
TipFormHelper.ShowError("修改失败!");
|
}
|
this.Close();
|
}
|
}
|
}
|