using DevExpress.XtraEditors;
|
using HStation.Dto;
|
using HStation.WinFrmUI.Xhs.PumpProduct;
|
using ISupply.WinFrmUI;
|
using System.ComponentModel;
|
|
namespace HStation.WinFrmUI.Xhs
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public partial class PumpProductSeriesTreeListCtrl : XtraUserControl
|
{
|
public PumpProductSeriesTreeListCtrl()
|
{
|
InitializeComponent();
|
this.treeList1.InitialDefaultSettings();
|
this.treeList1.SelectImageList = ImageLib.Lib;
|
}
|
|
/// <summary>
|
/// 聚焦改变事件
|
/// </summary>
|
public event Action<long, bool> FocusedChangedEvent;
|
|
private BindingList<CurrentTreeViewModel> _allBindingList = null;//所有绑定列表
|
|
private BLL.PumpSeries _seriesbll = null;
|
private BLL.PumpGroup _groupbll = null;
|
|
/// <summary>
|
/// 绑定数据
|
/// </summary>
|
public void Clear()
|
{
|
_allBindingList = new BindingList<CurrentTreeViewModel>();
|
this.treeList1.DataSource = _allBindingList;
|
this.FocusedChangedEvent?.Invoke(default, default);
|
}
|
|
/// <summary>
|
/// 绑定数据
|
/// </summary>
|
public async void SetBindingData()
|
{
|
_seriesbll = new BLL.PumpSeries();
|
_groupbll = new BLL.PumpGroup();
|
_allBindingList = new BindingList<CurrentTreeViewModel>();
|
var allseries = await _seriesbll.GetAll();
|
var allgroup = await _groupbll.GetAll();
|
foreach (var item in allseries)
|
{
|
var vm = new CurrentTreeViewModel(item);
|
_allBindingList.Add(vm);
|
}
|
foreach (var item in allgroup)
|
{
|
var vm = new CurrentTreeViewModel(item);
|
_allBindingList.Add(vm);
|
}
|
this.treeList1.DataSource = _allBindingList;
|
this.treeList1.RefreshDataSource();
|
}
|
|
//聚焦改变
|
private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e)
|
{
|
var vm = this.treeList1.GetCurrentViewModel(_allBindingList);
|
if (vm != null)
|
{
|
var series = vm.Model as PumpSeriesDto;
|
if (series != null)
|
{
|
this.FocusedChangedEvent?.Invoke(series.ID, true);
|
}
|
else
|
{
|
var group = vm.Model as PumpGroupDto;
|
if (group != null)
|
{
|
this.FocusedChangedEvent?.Invoke(group.ID, false);
|
}
|
}
|
}
|
}
|
|
#region 菜单事件
|
|
//检索
|
private void barCkSearch_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (this.barCkSearch.Checked)
|
this.treeList1.ShowFindPanel();
|
else
|
this.treeList1.HideFindPanel();
|
}
|
|
#endregion 菜单事件
|
|
//添加
|
private void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_allBindingList == null)
|
return;
|
var currentVm = this.treeList1.GetCurrentViewModel(_allBindingList);
|
var dlg = new AddPumpProductSeriesDlg();
|
dlg.ReloadDataEvent += async (model) =>
|
{
|
var allchildList = await _seriesbll.GetAll();
|
model.SortCode = allchildList.Count == 0 ? 1 : allchildList.Max(x => x.SortCode) + 1;
|
var id = await _seriesbll.Insert(model);
|
if (id > 0)
|
{
|
var vm = await _seriesbll.GetByID(id);
|
_allBindingList.Add(new CurrentTreeViewModel(vm));
|
return true;
|
}
|
return false;
|
};
|
dlg.ShowDialog();
|
}
|
|
//全部折叠
|
private void barBtnCollapseAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
this.treeList1.CollapseAll();
|
}
|
|
//全部展开
|
private void barBtnExpandAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
this.treeList1.ExpandAll();
|
}
|
|
//编辑
|
private void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
var currentVm = this.treeList1.GetCurrentViewModel(_allBindingList);
|
if (currentVm.IsGroup == false)
|
{
|
var series = currentVm.Model as Model.PumpSeries;
|
var dlg = new EditPumpProductSeriesDlg();
|
dlg.SetBindingData(currentVm.ID);
|
dlg.ReloadDataEvent += async (model) =>
|
{
|
if (await _seriesbll.Update(model))
|
{
|
currentVm.Reset(model);
|
this.treeList1.RefreshDataSource();
|
return true;
|
}
|
return false;
|
};
|
dlg.ShowDialog();
|
}
|
else
|
{
|
var dlg = new EditPumpProductGroupDlg();
|
dlg.SetBindingData(currentVm.ID);
|
dlg.ReloadDataEvent += async (model) =>
|
{
|
if (await _groupbll.Update(model))
|
{
|
currentVm.Reset(model);
|
this.treeList1.RefreshDataSource();
|
return true;
|
}
|
return false;
|
};
|
dlg.ShowDialog();
|
}
|
}
|
|
//删除
|
private void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
var currentVm = this.treeList1.GetCurrentViewModel(_allBindingList);
|
if (currentVm == null)
|
{
|
MessageBoxHelper.ShowWarning("请选择数据行!");
|
return;
|
}
|
if (MessageBoxHelper.IsClickOk($"确认删除数据行?", "提示"))
|
return;
|
if (currentVm.IsGroup)
|
{
|
var groupresult = _groupbll.DeleteEx(currentVm.ID);
|
if (groupresult)
|
{
|
_allBindingList.Remove(currentVm);
|
}
|
else
|
{
|
MessageBoxHelper.ShowError($"删除失败!");
|
return;
|
}
|
}
|
else
|
{
|
var result = _seriesbll.DeleteEx(currentVm.ID);
|
if (result)
|
{
|
_allBindingList.Remove(currentVm);
|
var children = _allBindingList.Where(x => x.ParentID == currentVm.ID).ToList();
|
foreach (var child in children)
|
{
|
_allBindingList.Remove(child);
|
}
|
MessageBoxHelper.ShowSuccess($"删除成功!");
|
this.treeList1.Refresh();
|
return;
|
}
|
else
|
{
|
MessageBoxHelper.ShowError($"删除失败!");
|
return;
|
}
|
}
|
}
|
|
//添加子项
|
private void barBtnAddChild_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
var currentVm = this.treeList1.GetCurrentViewModel(_allBindingList);
|
if (currentVm == null)
|
{
|
MessageBoxHelper.ShowWarning("请选择数据行!");
|
return;
|
}
|
if (_allBindingList == null)
|
return;
|
var dlg = new AddPumpProductGroupDlg();
|
dlg.SetBindingData(currentVm.ID);
|
dlg.ReloadDataEvent += async (model) =>
|
{
|
var allchildList = await _groupbll.GetAll();
|
model.SortCode = allchildList.Count == 0 ? 1 : allchildList.Max(x => x.SortCode) + 1;
|
var id = await _groupbll.Insert(model);
|
if (id > 0)
|
{
|
var vm = await _groupbll.GetByID(id);
|
_allBindingList.Add(new CurrentTreeViewModel(vm));
|
this.treeList1.Refresh();
|
return true;
|
}
|
return false;
|
};
|
dlg.ShowDialog();
|
}
|
|
public long GetCurrentID()
|
{
|
var currentVm = this.treeList1.GetCurrentViewModel(_allBindingList);
|
if (currentVm == null)
|
{
|
MessageBoxHelper.ShowWarning("请选择数据行!");
|
return default;
|
}
|
if (currentVm.IsGroup)
|
{
|
return currentVm.ParentID;
|
}
|
else
|
{
|
return currentVm.ID;
|
}
|
}
|
|
public long GetCurrentGroupID()
|
{
|
var currentVm = this.treeList1.GetCurrentViewModel(_allBindingList);
|
if (currentVm == null)
|
{
|
MessageBoxHelper.ShowWarning("请选择数据行!");
|
return default;
|
}
|
if (currentVm.IsGroup)
|
{
|
return currentVm.ID;
|
}
|
else
|
{
|
return default;
|
}
|
}
|
}
|
}
|