using DevExpress.XtraEditors; using Newtonsoft.Json; using System; using System.Data; using Gs.DevApp.ToolBox; using Gs.DevApp.Models; using DevExpress.XtraTreeList.Nodes; namespace Gs.DevApp.DevFrm.User { public partial class SysMenuAdd : DevExpress.XtraEditors.XtraForm { public event EventHandler UpdateParent; public SysMenuAdd(string guid) { InitializeComponent(); btnSave.Click += BtnSave_Click; btnEsc.Click += BtnEsc_Click; txtMenuType.TextChanged += TxtMenuType_TextChanged; getTree(); lbGuid.Text = guid; getModel(); } private void TxtMenuType_TextChanged(object sender, EventArgs e) { if (txtMenuType.SelectedIndex == 1) { this.txtFormNamespace.Enabled = true; this.txtMenuIco.Enabled = true; } else { this.txtFormNamespace.Enabled = false; this.txtMenuIco.Enabled = false; this.txtFormNamespace.Text = ""; this.txtMenuIco.Text = ""; } } private void BtnEsc_Click(object sender, EventArgs e) { this.Dispose(); } private void BtnSave_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtMenuType.Text.Trim()) || txtMenuType.SelectedIndex == 0) { Gs.DevApp.ToolBox.MsgHelper.Warning("菜单类型不能为空!"); txtMenuType.Focus(); return; } if (string.IsNullOrEmpty(txtMenuName.Text.Trim())) { Gs.DevApp.ToolBox.MsgHelper.Warning("菜单名称不能为空!"); txtMenuName.Focus(); return; } if (string.IsNullOrEmpty(txtStatus.Text.Trim()) || txtStatus.SelectedIndex == 0) { Gs.DevApp.ToolBox.MsgHelper.Warning("菜单状态不能为空!"); txtStatus.Focus(); return; } string _upGuid = ""; TreeListNode focusedNode = txtParentMenuName.Properties.TreeList.FocusedNode; if (focusedNode != null) { _upGuid = focusedNode.GetValue("guid").ToString(); } var _obj = new { guid = lbGuid.Text.Trim(),//主建 upGuid = _upGuid,//上级的主建 name = txtMenuName.Text.Trim(),//名称 icon = txtMenuIco.Text,//菜单图标 status = txtStatus.SelectedIndex,//状态 formPath = txtFormNamespace.Text.Trim(),//窗体路径 idx = int.Parse(txtIdx.Value.ToString()),//排序 category = txtMenuType.SelectedIndex,//类型 }; string strJson = ""; try { strJson = UtilityHelper.HttpPost("", "MenuAction/EditModel", JsonConvert.SerializeObject(_obj)); ReturnModel _rtn = ToolBox.UtilityHelper.GetDataByJson(strJson); ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg); if (_rtn.rtnCode > 0) { UpdateParent?.Invoke(this, new UpdateParentEventArgs { Data = "" }); } } catch (Exception ex) { ToolBox.MsgHelper.Warning("提示:" + ex.Message); } } private void getTree() { Models.PageQueryModel pgq = new Models.PageQueryModel(1, 999999, "idx", "asc", "", " and category=1"); string json = JsonConvert.SerializeObject(pgq); string strReturn = ""; try { strReturn = UtilityHelper.HttpPost("", "MenuAction/GetListPage", json); ReturnModel dd = UtilityHelper.GetTableByJson(strReturn); DataTable dt = dd.rtnData.list; txtParentMenuName.Properties.TreeList.KeyFieldName = "guid"; txtParentMenuName.Properties.TreeList.ParentFieldName = "upGuid"; //txtParentMenuName.Properties.ValueMember = "guid"; txtParentMenuName.Properties.DisplayMember = "name"; txtParentMenuName.Properties.DataSource = dt; } catch (Exception ex) { ToolBox.MsgHelper.Warning("提示:" + ex.Message); } } private void getModel() { if (lbGuid.Text.Length <= 0) return; var _obj = new { guid = lbGuid.Text.Trim(),//主建 }; string strJson = ""; try { strJson = UtilityHelper.HttpPost("", "MenuAction/GetModel", JsonConvert.SerializeObject(_obj)); ReturnModel _rtn = ToolBox.UtilityHelper.GetDataByJson(strJson); if (_rtn.rtnCode > 0) { txtMenuName.Text = _rtn.rtnData.name; txtMenuIco.Text = _rtn.rtnData.icon; txtFormNamespace.Text = _rtn.rtnData.formPath; txtStatus.SelectedIndex = _rtn.rtnData.status; txtMenuType.SelectedIndex = _rtn.rtnData.category; txtIdx.Value = _rtn.rtnData.idx; // txtParentMenuName.Text = ""; } else ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg); } catch (Exception ex) { ToolBox.MsgHelper.Warning("提示:" + ex.Message); } } private void cleanTxt() { //guid = lbGuid.Text.Trim(),//主建 // upGuid = _upGuid,//上级的主建 // name = txtMenuName.Text.Trim(),//名称 // icon = txtMenuIco.Text,//菜单图标 // status = txtStatus.SelectedIndex,//状态 // formPath = txtFormNamespace.Text.Trim(),//窗体路径 // idx = int.Parse(txtIdx.Value.ToString()),//排序 // category = txtMenuType.SelectedIndex,//类型 //if(lbGuid.Text) } } }