using DevExpress.Utils.DragDrop;
|
|
namespace HStation.WinFrmUI.Basic
|
{
|
public partial class SysTypeManageMainPanel : DocumentPage
|
{
|
public SysTypeManageMainPanel()
|
{
|
InitializeComponent();
|
this.gridView1.SetNormalView();
|
this.gridView1.RegistCustomDrawRowIndicator();
|
this.PageTitle.Caption = "类型管理";
|
this.PageTitle.HeaderSvgImage = this.svgImage32[0];
|
this.PageTitle.SvgImageSize = new Size(24, 24);
|
this.moduleTreeListCtrl1.FocusedChangedEvent += ModuleTreeListCtrl1_FocusedChangedEvent;
|
behaviorManager1.Detach<DragDropBehavior>(gridView1);
|
}
|
|
private List<SysTypeViewModel> _allBindingList = new List<SysTypeViewModel>();
|
|
private long _mouduleId;
|
|
private Yw.BLL.SysType _bll = null;
|
|
public override void InitialDataSource()
|
{
|
SetBindingData();
|
}
|
|
//聚焦切换
|
private async void ModuleTreeListCtrl1_FocusedChangedEvent(long moduleid)
|
{
|
_mouduleId = moduleid;
|
var alllist = await _bll.GetByModuleID(moduleid);
|
_allBindingList.Clear();
|
foreach (var item in alllist)
|
{
|
_allBindingList.Add(new SysTypeViewModel(item));
|
}
|
this.typeViewModelBindingSource.ResetBindings(false);
|
}
|
|
private void SetBindingData()
|
{
|
this.moduleTreeListCtrl1.SetBindingData();
|
_bll = new Yw.BLL.SysType();
|
this.typeViewModelBindingSource.DataSource = _allBindingList;
|
this.typeViewModelBindingSource.ResetBindings(false);
|
}
|
|
//添加
|
private void BtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
var dlg = new AddSysTypeDlg();
|
var moduleid = this.moduleTreeListCtrl1.GetCurrentID();
|
if (moduleid == 0)
|
{
|
MessageBoxHelper.ShowWarning("请选择数据行!");
|
return;
|
}
|
dlg.SetBindingData(moduleid);
|
dlg.ReloadDataEvent += async (rhs) =>
|
{
|
var id = await _bll.Insert(rhs);
|
if (id > 0)
|
{
|
var model = await _bll.GetByID(id);
|
_allBindingList.Add(new SysTypeViewModel(model));
|
this.typeViewModelBindingSource.ResetBindings(false);
|
return true;
|
}
|
|
return false;
|
};
|
|
dlg.ShowDialog();
|
}
|
|
//编辑
|
private void barBtnEditPumpCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
var dlg = new EditSysTypeDlg();
|
var vm = this.gridView1.GetCurrentViewModel(_allBindingList);
|
if (vm == null)
|
{
|
MessageBoxHelper.ShowWarning("请选择数据行");
|
return;
|
}
|
dlg.SetBindingData(vm.ID);
|
dlg.ReloadDataEvent += async (rhs) =>
|
{
|
if (await _bll.Update(rhs))
|
{
|
vm.Reset(rhs);
|
this.typeViewModelBindingSource.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;
|
try
|
{
|
var result = await _bll.DeleteByID(currentVm.ID);
|
if (result)
|
{
|
_allBindingList.Remove(currentVm);
|
this.typeViewModelBindingSource.ResetBindings(false);
|
MessageBoxHelper.ShowSuccess($"删除成功!");
|
}
|
else
|
{
|
MessageBoxHelper.ShowError($"删除失败!");
|
return;
|
}
|
}
|
catch (Yw.Dto.InternalException ex)
|
{
|
MessageBoxHelper.ShowError(ex.ErrorMsg);
|
return;
|
}
|
}
|
|
//允许拖拽排序
|
private void barCheckItem1_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (barCheckSorter.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 SysTypeViewModel;
|
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 SysTypeViewModel;
|
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 _bll.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 btnRefresh_HyperlinkClick(object sender, DevExpress.Utils.HyperlinkClickEventArgs e)
|
{
|
ModuleTreeListCtrl1_FocusedChangedEvent(_mouduleId);
|
}
|
}
|
}
|