From b084bd77d01a94c8f0a2d20c86a1f45ba7c8a23c Mon Sep 17 00:00:00 2001 From: lu <99954486@qq.com> Date: 星期六, 19 四月 2025 14:08:05 +0800 Subject: [PATCH] 页面跳转 --- DevApp/Gs.DevApp/DevFrm/Sys/SysMenu.cs | 409 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 409 insertions(+), 0 deletions(-) diff --git a/DevApp/Gs.DevApp/DevFrm/Sys/SysMenu.cs b/DevApp/Gs.DevApp/DevFrm/Sys/SysMenu.cs new file mode 100644 index 0000000..f34a688 --- /dev/null +++ b/DevApp/Gs.DevApp/DevFrm/Sys/SysMenu.cs @@ -0,0 +1,409 @@ +锘縰sing DevExpress.Utils; +using DevExpress.XtraEditors; +using DevExpress.XtraEditors.Controls; +using DevExpress.XtraTreeList; +using Gs.DevApp.Entity; +using Gs.DevApp.Properties; +using Gs.DevApp.ToolBox; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Reflection; +using System.Resources; +using System.Windows.Forms; + +namespace Gs.DevApp.DevFrm.User +{ + public partial class SysMenu : XtraForm + { + public SysMenu() + { + InitializeComponent(); + getImg(); + txt_upGuid.Properties.PopupFormSize = + new Size(txt_upGuid.Width, 300); + txt_upGuid.Properties.TextEditStyle = + TextEditStyles.DisableTextEditor; + toolBarMenu1.btnAddClick += ToolBarMenu1_btnAddClick; + toolBarMenu1.btnEdtClick += ToolBarMenu1_btnEdtClick; + toolBarMenu1.btnSaveClick += ToolBarMenu1_btnSaveClick; + toolBarMenu1.btnLoadClick += ToolBarMenu1_btnLoadClick; + toolBarMenu1.btnDelClick += ToolBarMenu1_btnDelClick1; + toolBarMenu1.btnEscClick += ToolBarMenu1_btnEscClick; + txt_category.TextChanged += Txt_category_TextChanged; + tlMenu.MouseDoubleClick += TlMenu_MouseDoubleClick; + txt_upGuid.Properties.TreeList.IndicatorWidth = 50; + txt_upGuid.Properties.TreeList.CustomDrawNodeIndicator += (s, ee) => + { + if (ee.IsNodeIndicator) + { + var index = ee.Node.TreeList.GetVisibleIndexByNode(ee.Node); + ee.Info.DisplayText = (index + 1).ToString(); + } + }; + tlMenu.IndicatorWidth = 50; + tlMenu.CustomDrawNodeIndicator += (s, ee) => + { + if (ee.IsNodeIndicator) + { + var index = ee.Node.TreeList.GetVisibleIndexByNode(ee.Node); + ee.Info.DisplayText = (index + 1).ToString(); + } + }; + getTree(); + getDownList(); + getActionList(); + } + + /// <summary> + /// 鑿滃崟绫诲瀷鏀瑰彉浜嬩欢 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void Txt_category_TextChanged(object sender, EventArgs e) + { + if (txt_category.SelectedIndex == 1) + { + txt_formPath.Enabled = true; + txt_icon.Enabled = true; + } + else + { + txt_formPath.Enabled = false; + txt_icon.Enabled = false; + txt_formPath.Text = ""; + } + } + + /// <summary> + /// 鍙屽嚮琛屼簨浠� + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void TlMenu_MouseDoubleClick(object sender, MouseEventArgs e) + { + var rowGuid = UtilityHelper.GetCurrentDoubleRow(tlMenu, e, "guid"); + if (!string.IsNullOrEmpty(rowGuid)) + getModel(rowGuid); + } + + /// <summary> + /// 鍙栨秷浜嬩欢 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void ToolBarMenu1_btnEscClick(object sender, EventArgs e) + { + Gs.DevApp.ToolBox.UtilityHelper.JumpTab(xtraTabControl1, 1); + } + + /// <summary> + /// 鍒犻櫎浜嬩欢 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void ToolBarMenu1_btnDelClick1(object sender, EventArgs e) + { + string rowGuid, rowName; + (rowGuid, rowName) = UtilityHelper.GetCurrentRow(xtraTabControl1, + lbGuid, txt_name, tlMenu); + if (string.IsNullOrEmpty(rowGuid)) + { + MsgHelper.Warning("璇峰厛閫夋嫨浣犺鎿嶄綔鐨勮锛�"); + return; + } + if (!MsgHelper.AskQuestion("浣犻�夋嫨浜嗐��" + rowName + "銆戯紝纭畾鍒犻櫎鍚楋紵")) return; + var lst = new List<string>(); + lst.Add(rowGuid); + var _obj = lst; + try + { + var strJson = UtilityHelper.HttpPost("", + "MenuAction/DeleteModel", + JsonConvert.SerializeObject(_obj)); + var _rtn = UtilityHelper.ReturnToDynamic(strJson); + if (_rtn.rtnCode > 0) + { + if (xtraTabControl1.SelectedTabPageIndex == 0) + { } + else + Gs.DevApp.ToolBox.UtilityHelper.JumpTab(xtraTabControl1, 2); + getTree(); + } + + MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnMsg); + } + catch (Exception ex) + { + MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + } + } + + /// <summary> + /// 鍒锋柊浜嬩欢 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void ToolBarMenu1_btnLoadClick(object sender, EventArgs e) + { + if (xtraTabControl1.SelectedTabPageIndex == 1) + getModel(lbGuid.Text.Trim()); + else + { + //_filterList.Clear(); + //if (gridView1.ActiveFilter.Count > 0) + //{ + // gridView1.ColumnFilterChanged -= GridView1_ColumnFilterChanged; + // gridView1.ActiveFilter.Clear(); + // gridView1.ColumnFilterChanged += GridView1_ColumnFilterChanged; + //} + //getPageList(1); + getTree(); + } + + } + + /// <summary> + /// 淇敼浜嬩欢 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void ToolBarMenu1_btnEdtClick(object sender, EventArgs e) + { + string rowGuid = "", rowName = ""; + (rowGuid, rowName) = UtilityHelper.GetCurrentRow(xtraTabControl1, lbGuid, txt_name, tlMenu); + if (string.IsNullOrEmpty(rowGuid)) + { + ToolBox.MsgHelper.Warning("璇峰厛閫夋嫨浣犺鎿嶄綔鐨勮锛�"); + return; + } + Gs.DevApp.ToolBox.UtilityHelper.JumpTab(xtraTabControl1, 3); + if (xtraTabControl1.SelectedTabPageIndex == 1) + { + getModel(rowGuid); + if (txt_category.SelectedIndex == 1) + { + txt_formPath.Enabled = true; + txt_icon.Enabled = true; + } + else + { + txt_formPath.Enabled = false; + txt_icon.Enabled = false; + } + } + else + { + UtilityHelper.ChangeEnableByControl(this.panel1.Controls, true); + } + + + } + + /// <summary> + /// 鏂板浜嬩欢 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void ToolBarMenu1_btnAddClick(object sender, EventArgs e) + { + lbGuid.Text = ""; + Gs.DevApp.ToolBox.UtilityHelper.JumpTab(xtraTabControl1, 4); + UtilityHelper.CleanValueByControl(panel1.Controls, true); + + } + + /// <summary> + /// 淇濆瓨浜嬩欢 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void ToolBarMenu1_btnSaveClick(object sender, EventArgs e) + { + toolBarMenu1.isSetBtn = false; + if (string.IsNullOrEmpty(txt_category.Text.Trim()) || + txt_category.SelectedIndex == 0) + { + MsgHelper.Warning("鑿滃崟绫诲瀷涓嶈兘涓虹┖锛�"); + txt_category.Focus(); + return; + } + + if (string.IsNullOrEmpty(txt_name.Text.Trim())) + { + MsgHelper.Warning("鑿滃崟鍚嶇О涓嶈兘涓虹┖锛�"); + txt_name.Focus(); + return; + } + + var _upGuid = txt_upGuid.EditValue.ToString(); + if (txt_category.SelectedIndex == 2 && + string.IsNullOrEmpty(_upGuid)) + { + MsgHelper.Warning("鎸夐挳绫诲瀷蹇呴』閫夋嫨鐖剁骇鑿滃崟锛�"); + txt_upGuid.Focus(); + return; + } + var _obj = new + { + guid = UtilityHelper.ToGuid(lbGuid.Text.Trim()), //涓诲缓 + upGuid = _upGuid, //涓婄骇鐨勪富寤� + name = txt_name.Text.Trim(), //鍚嶇О + icon = txt_icon.Text, //鑿滃崟鍥炬爣 + isStatus = txt_isStatus.Checked, //鐘舵�� + formPath = txt_formPath.Text.Trim(), //绐椾綋璺緞 + idx = int.Parse(txt_idx.Value.ToString()), //鎺掑簭 + category = txt_category.SelectedIndex //绫诲瀷 + }; + try + { + var strJson = UtilityHelper.HttpPost("", "MenuAction/EditModel", + JsonConvert.SerializeObject(_obj)); + var _rtn = UtilityHelper.ReturnToDynamic(strJson); + MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnMsg); + if (_rtn.rtnCode > 0) + { + lbGuid.Text = _rtn.rtnData; + toolBarMenu1.isSetBtn = true; + UtilityHelper.ChangeEnableByControl(panel1.Controls, false); + toolBarMenu1.currentAction = ""; + Gs.DevApp.ToolBox.UtilityHelper.JumpTab(xtraTabControl1, 6); + } + } + catch (Exception ex) + { + MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + } + } + + /// <summary> + /// 璇诲彇鍒楄〃 + /// </summary> + private void getTree() + { + var pgq = new PageQueryModel(1, 999999, "a.idx"); + var json = JsonConvert.SerializeObject(pgq); + try + { + var strReturn = + UtilityHelper.HttpPost("", "MenuAction/GetListPage", json); + var dd = UtilityHelper.ReturnToTablePage(strReturn); + var dt = dd.rtnData.list; + tlMenu.DataSource = dt; + tlMenu.KeyFieldName = "guid"; + tlMenu.ParentFieldName = "upGuid"; + tlMenu.Tag = "name"; + tlMenu.EndUpdate(); + this.tlMenu.CollapseAll(); + tlMenu.OptionsView.CheckBoxStyle = + DefaultNodeCheckBoxStyle.Default; + } + catch (Exception ex) + { + MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + } + } + + private void getModel(string strGuid) + { + bool isEdit = false; + if (toolBarMenu1.currentAction == "add") return; + if (toolBarMenu1.currentAction == "edit") isEdit = true; + if (string.IsNullOrEmpty(strGuid)) + { + MsgHelper.Warning("璇峰厛閫夋嫨浣犺鎿嶄綔鐨勮锛�"); + return; + } + var _obj = new + { + guid = strGuid //涓诲缓 + }; + try + { + var strJson = UtilityHelper.HttpPost("", "MenuAction/GetModel", + JsonConvert.SerializeObject(_obj)); + var _rtn = UtilityHelper.ReturnToDynamic(strJson); + if (_rtn.rtnCode > 0) + { + var dy = _rtn.rtnData; + lbGuid.Text = strGuid; + UtilityHelper.SetValueByObj(panel1.Controls, dy, isEdit); + txt_upGuid.EditValue = dy.upGuid.ToString(); + } + else + { + MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnMsg); + } + } + catch (Exception ex) + { + MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + } + } + + /// <summary> + /// 璇诲彇涓婄骇鏍� + /// </summary> + private void getDownList() + { + var pgq = new PageQueryModel(1, 999999, "a.idx", "asc", "", + " and a.category=1"); + var json = JsonConvert.SerializeObject(pgq); + try + { + var strReturn = + UtilityHelper.HttpPost("", "MenuAction/GetListPage", json); + var dd = UtilityHelper.ReturnToTablePage(strReturn); + var dt = dd.rtnData.list; + txt_upGuid.Properties.TreeList.KeyFieldName = "guid"; + txt_upGuid.Properties.TreeList.ParentFieldName = "upGuid"; + txt_upGuid.Properties.ValueMember = "guid"; + txt_upGuid.Properties.DisplayMember = "name"; + txt_upGuid.Properties.DataSource = dt; + } + catch (Exception ex) + { + MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + } + } + + private void getActionList() + { + var lst = new List<string>(); + lst = toolBarMenu1.actions; + txt_name.Properties.Items.AddRange(toolBarMenu1.actions); + var assembly = Assembly.GetExecutingAssembly(); + var types = assembly.GetTypes(); + foreach (var type in types) + if (type.IsSubclassOf(typeof(Form))) + txt_formPath.Properties.Items.Add(type.FullName); + } + + private void getImg() + { + var assembly = Assembly.GetExecutingAssembly(); + var resourceManager = + new ResourceManager("Gs.DevApp.Properties.Resources", assembly); + var i = 0; + var dicImg = new ImageCollection(); + var res = new Resources(); + var properInfo = res.GetType().GetProperties(BindingFlags.Static | + BindingFlags.NonPublic | BindingFlags.Instance); + foreach (var item in properInfo) + if (item.Name.Contains("_")) + { + var image = resourceManager.GetObject(item.Name) as Image; + if (image != null) + { + dicImg.AddImage(image); + txt_icon.Properties.Items.Add( + new ImageComboBoxItem(item.Name, i, i)); + i++; + } + } + txt_icon.Properties.LargeImages = dicImg; + txt_icon.Properties.SmallImages = dicImg; + } + } +} \ No newline at end of file -- Gitblit v1.9.3