namespace HStation.WinFrmUI.Assets
|
{
|
public partial class EditCompressorPartPropDlg : DevExpress.XtraEditors.XtraForm
|
{
|
public EditCompressorPartPropDlg()
|
{
|
InitializeComponent();
|
this.gridView1.Columns["PropGroupName"].Group();
|
this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
|
this.CompressorProductListBox1.MouseUp += CompressorProductListBox1_MouseUp;
|
}
|
|
private BLL.AssetsCompressorPartMain _bll = null;
|
private List<PropGroupChoiceViewModel> _proplist = null;
|
|
private List<CurrentPartMainViewModel> _allBindingList = new List<CurrentPartMainViewModel>();
|
|
private Vmo.AssetsCompressorMainAndPartMapVmo _partmap = null;
|
|
private Vmo.AssetsCompressorPartMainVmo _CompressorPart = null;
|
|
private long _catalogID; //分类ID
|
|
private long _seriesID; //系列ID
|
|
private List<Vmo.AssetsCompressorPropContentVmo> _allPropList = null;
|
|
//回调事件
|
public event Func<Vmo.AssetsCompressorPartMainVmo, List<Vmo.AssetsCompressorPropContentVmo>, Vmo.AssetsCompressorMainAndPartMapVmo, Task<bool>> ReloadEvent;
|
|
//数据绑定
|
public async void SetBindingData(Vmo.AssetsCompressorMainVmo AssetsCompressorMain)
|
{
|
this.CompressorProductListBox1.SetBindingData(AssetsCompressorMain);
|
this.CompressorProductListBox1.SelectReloadEvent += () =>
|
{
|
ListBoxPart_SelectedIndexChanged();
|
};
|
this.CompressorProductListBox1.AddReloadEvent += () =>
|
{
|
BarBtnAddCompressorPart_ItemClick();
|
};
|
_bll = new BLL.AssetsCompressorPartMain();
|
var allpartlist = await _bll.GetByCompressorMainID(AssetsCompressorMain.ID); //获取所有产品
|
/* var series = await new BLL.AssetsCompressorSeries().GetByID(AssetsCompressorMain.CompressorSeriesID); //获取系列
|
_CompressorPart = new Vmo.AssetsCompressorPartMainVmo();
|
_series = series.ID;
|
_CompressorPart.SeriesID = _series;
|
_catalogID = series.CatalogID;
|
_propList = new List<PropGroupChoiceViewModel>();
|
_partMapping = new Vmo.AssetsCompressorMainAndPartMapVmo();
|
_partMapping.CompressorID = AssetsCompressorMain.ID;
|
_partMapping.SeriesID = _series;*/
|
this.propGroupChoiceViewModelBindingSource.DataSource = _proplist;
|
this.propGroupChoiceViewModelBindingSource.ResetBindings(false);
|
}
|
|
//分类选择变换
|
private async void SetPropSelectedValue(CompressorPartViewModel partmain)
|
{
|
layoutControAddPart.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
|
var model = await _bll.GetByID(partmain.ID);
|
if (model == null) return;
|
this.TextEditNo.Text = partmain.NO.Trim();
|
this.TextEditProductCode.Text = partmain.Code.Trim();
|
this.TextEditProductName.Text = partmain.Name.Trim();
|
_proplist.Clear();
|
var bll = new Yw.BLL.SysPropStruct();
|
var catlog = await bll.GetByCatalogID(_catalogID);
|
if (catlog == null)
|
{
|
this.propGroupChoiceViewModelBindingSource.ResetBindings(false);
|
return;
|
}
|
_proplist.Clear();
|
foreach (var item in catlog)
|
{
|
foreach (var prop in item.PropList)
|
{
|
_proplist.Add(new PropGroupChoiceViewModel() { PropGroupName = item.Name, PropName = prop.Name, ID = prop.ID });
|
}
|
}
|
var propbll = new BLL.AssetsCompressorPartPropContent();
|
var alllist = await propbll.GetByCompressorPartID(model.ID);
|
_allPropList = alllist;
|
foreach (var item in alllist)
|
{
|
var selectProp = _proplist.Find(x => x.ID == item.PropID);
|
if (selectProp != null)
|
{
|
selectProp.Value = item.PropValue;
|
}
|
}
|
this.propGroupChoiceViewModelBindingSource.ResetBindings(false);
|
this.gridView1.ExpandAllGroups();
|
}
|
|
//产品列表聚焦改变
|
private void ListBoxPart_SelectedIndexChanged()
|
{
|
var vm = this.CompressorProductListBox1.GetCurrentVm();
|
if (vm == null)
|
return;
|
SetPropSelectedValue(vm);
|
}
|
|
//确认编辑
|
private async void BtnOk_Click(object sender, EventArgs e)
|
{
|
var vm = this.CompressorProductListBox1.GetCurrentVm();
|
if (vm == null)
|
return;
|
var updatepart = new Vmo.AssetsCompressorPartMainVmo();
|
updatepart.ID = vm.ID;
|
updatepart.Name = TextEditProductName.Text;
|
updatepart.NO = TextEditNo.Text;
|
updatepart.Code = TextEditProductCode.Text;
|
updatepart.SeriesID = _seriesID;
|
var updateproplist = new List<UpdateAssetsCompressorPropContentInput>();
|
foreach (var item in _proplist)
|
{
|
if (_allPropList != null)
|
{
|
// 查找 _allPropList 中是否存在与 item.ID 匹配的项
|
var prop = _allPropList.FirstOrDefault(x => x.PropID == item.ID);
|
// 如果找到匹配的项,则更新其 PropValue
|
if (prop != null)
|
{
|
prop.PropValue = item.Value;
|
}
|
else
|
{
|
_allPropList.Add(new Vmo.AssetsCompressorPropContentVmo() { SeriesID = _allPropList.First().SeriesID, PartID = _allPropList.First().PartID, PropID = item.ID, PropValue = item.Value });
|
}
|
}
|
}
|
if (await _bll.UpdateEx(updatepart, _allPropList))
|
{
|
vm.Reset(updatepart);
|
this.CompressorProductListBox1.Refresh();
|
TipFormHelper.ShowSucceed("修改成功!");
|
}
|
else
|
{
|
TipFormHelper.ShowError("修改失败!");
|
}
|
this.DialogResult = DialogResult.OK;
|
this.Close();
|
}
|
|
//左侧树右击菜单事件
|
private void CompressorProductListBox1_MouseUp(object sender, MouseEventArgs e)
|
{
|
/* if (e.Button == MouseButtons.Right)
|
{
|
Point screenPoint = Cursor.Position;
|
popupCompressorPartMenu.ShowPopup(screenPoint);
|
}*/
|
}
|
|
private bool Vaild()
|
{
|
this.dxErrorProvider1.ClearErrors();
|
if (TextEditProductName.Text == null)
|
{
|
this.dxErrorProvider1.SetError(TextEditProductName, "必填项");
|
return false;
|
}
|
return true;
|
}
|
|
//添加产品
|
private async void BtnAddCompressorPart_Click(object sender, EventArgs e)
|
{
|
if (!Vaild())
|
return;
|
_CompressorPart.Name = TextEditProductName.Text;
|
_CompressorPart.NO = TextEditNo.Text;
|
_CompressorPart.Code = TextEditProductCode.Text;
|
var AssetsCompressorPropContent = new List<Vmo.AssetsCompressorPropContentVmo>();
|
foreach (var item in _proplist)
|
{
|
AssetsCompressorPropContent.Add(new Vmo.AssetsCompressorPropContentVmo { PropID = item.ID, PropValue = item.Value, SeriesID = _CompressorPart.SeriesID });
|
}
|
var id = await _bll.InsertEx(_CompressorPart, AssetsCompressorPropContent, _partmap);
|
if (id > 0)
|
{
|
var Compressorpart = await _bll.GetByID(id);
|
this.CompressorProductListBox1._allBindingList.Add(new CompressorPartViewModel(Compressorpart));
|
this.CompressorProductListBox1.Refresh();
|
TipFormHelper.ShowSucceed("添加成功!");
|
}
|
else
|
{
|
TipFormHelper.ShowError("添加失败!");
|
}
|
this.DialogResult = DialogResult.OK;
|
this.Close();
|
}
|
|
#region 菜单功能
|
|
//添加产品
|
private async void BarBtnAddCompressorPart_ItemClick()
|
{
|
layoutControAddPart.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
|
TextEditProductName.Text = string.Empty;
|
TextEditNo.Text = string.Empty;
|
TextEditProductCode.Text = string.Empty;
|
var bll = new Yw.BLL.SysPropStruct();
|
try
|
{
|
var catlog = await bll.GetByCatalogID(_catalogID);
|
if (catlog == null)
|
{
|
this.propGroupChoiceViewModelBindingSource.ResetBindings(false);
|
return;
|
}
|
_proplist.Clear();
|
foreach (var item in catlog)
|
{
|
foreach (var prop in item.PropList)
|
{
|
_proplist.Add(new PropGroupChoiceViewModel() { PropGroupName = item.Name, PropName = prop.Name, ID = prop.ID, Value = prop.DefaultValue });
|
}
|
}
|
this.propGroupChoiceViewModelBindingSource.ResetBindings(false);
|
}
|
catch
|
{
|
}
|
this.TextEditProductName.Properties.NullText = "在此输入产品名称";
|
// 尝试改变焦点以触发控件更新
|
this.TextEditProductName.Focus();
|
// this.TextEditProductName.SelectAll();
|
|
this.TextEditNo.Properties.NullText = "在此输入产品编号";
|
this.TextEditProductCode.Properties.NullText = "在此输入产品图号";
|
}
|
|
// 删除产品
|
private async void BarBtnDeletePart_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
var vm = this.CompressorProductListBox1.GetCurrentVm();
|
if (vm == null)
|
return;
|
if (!MessageBoxHelper.IsClickOk("确定删除数据行"))
|
{
|
if (await _bll.DeleteEx(vm.ID))
|
{
|
this.CompressorProductListBox1._allBindingList.Remove(vm);
|
this.CompressorProductListBox1.Refresh();
|
MessageBoxHelper.ShowSuccess("删除成功!");
|
}
|
else
|
{
|
MessageBoxHelper.ShowError("删除失败!");
|
}
|
}
|
}
|
|
#endregion 菜单功能
|
}
|
}
|