using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using DevExpress.XtraEditors; using DevExpress.XtraBars.Ribbon; using ICSSoft.Frame.Menu.BLL; using ICSSoft.Base.Config.AppConfig; using ICSSoft.Frame.User.BLL; using ICSSoft.Base.Language.Tool; using ICSSoft.Base.UserControl.MessageControl; namespace ICSSoft.Frame.Main.Entrance { public partial class FormTableMenu : DevExpress.XtraEditors.XtraForm { SysMenuBLL menuBll = new SysMenuBLL(); private string ParentId = ""; private string SParentId = ""; GalleryItemGroup sysGroup = new GalleryItemGroup(); GalleryItemGroup selfGroup = new GalleryItemGroup(); GalleryItemGroup selectGroup = new GalleryItemGroup(); public FormTableMenu() { InitializeComponent(); sysGroup.Caption = "系统菜单"; selfGroup.Caption = "自定义菜单"; selectGroup.Caption = "功能搜索结果"; //sysGroup = Color.FromArgb(250, 250, 250);//246, 246, 246 galTable.Gallery.Groups.Add(sysGroup); galTable.Gallery.Groups.Add(selfGroup); galTable.Gallery.Groups.Add(selectGroup); galTable.Gallery.ImageSize = new System.Drawing.Size(64, 64); CreateSySMenu(ParentId); BindItems(SParentId); chkSelfMenu.Checked = true; chkSysMenu.Checked = true; chkSearch.Checked = true; } private void CreateSySMenu(string parentId) { sysGroup.Items.Clear(); DataTable data = menuBll.GetSysMenuStruct(parentId,true); foreach (DataRow dr in data.Rows) { GalleryItem item = new GalleryItem(); item.Tag = dr["ID"].ToString(); item.Caption = dr["MenuCaption"].ToString(); Image img = Image.FromFile(AppConfig.ImagesPath + dr["TableImage"].ToString()); item.Image = img; item.HoverImage = Image.FromFile(AppConfig.ImagesPath + dr["TableImage"].ToString().Replace(".png","")+"hover.png"); sysGroup.Items.Add(item); } GalleryItem preBtn = new GalleryItem(); preBtn.Tag = "r"; preBtn.Caption = "返回上一层"; Image pImg = Image.FromFile(AppConfig.ImagesPath + "icon\\138返回上一层.png"); preBtn.HoverImage = Image.FromFile(AppConfig.ImagesPath + "icon\\138返回上一层hover.png"); preBtn.Image = pImg; sysGroup.Items.Add(preBtn); if (parentId == "") { preBtn.Visible = false; } if (parentId != "") { var obj = menuBll.GetSingleMenuByID(parentId); if (obj == null) { this.Close(); } else { ParentId = obj.ParentID; } } } private void BindItems(string parentId) { selfGroup.Items.Clear(); DataTable itemData = menuBll.GetUserDefineForder(parentId); foreach (DataRow dr in itemData.Rows) { GalleryItem addFileItem = new GalleryItem(); Image addImag = Image.FromFile(AppConfig.ImagesPath + dr["TableImage"].ToString()); addFileItem.Tag = "1" + dr["ID"].ToString(); addFileItem.Image = addImag; addFileItem.HoverImage = Image.FromFile(AppConfig.ImagesPath + dr["TableImage"].ToString().Replace(".png", "") + "hover.png"); addFileItem.Caption = dr["DefineFileName"].ToString(); selfGroup.Items.Add(addFileItem); } DataTable menuItem = menuBll.GetUserDefineMenus(parentId); foreach (DataRow dr in menuItem.Rows) { GalleryItem addFileItem = new GalleryItem(); Image addImag = Image.FromFile(AppConfig.ImagesPath + dr["TableImage"].ToString()); addFileItem.Tag = "2" + dr["ID"].ToString(); addFileItem.Image = addImag; addFileItem.HoverImage = Image.FromFile(AppConfig.ImagesPath + dr["TableImage"].ToString().Replace(".png", "") + "hover.png"); addFileItem.Caption = dr["MenuCaption"].ToString(); selfGroup.Items.Add(addFileItem); } if (SParentId != "") { GalleryItem preBtn = new GalleryItem(); preBtn.Tag = "r"; preBtn.Caption = "返回上一层"; Image pImg = Image.FromFile(AppConfig.ImagesPath + "icon\\138返回上一层.png"); preBtn.HoverImage = Image.FromFile(AppConfig.ImagesPath + "icon\\138返回上一层hover.png"); preBtn.Image = pImg; selfGroup.Items.Add(preBtn); } } SysUserBLL userBll = new SysUserBLL(); private void galleryControlGallery1_ItemClick(object sender, GalleryItemClickEventArgs e) { try { if (e.Item.Tag.ToString() == "r") { if (e.Item.GalleryGroup == sysGroup) { CreateSySMenu(ParentId); } if (e.Item.GalleryGroup == selfGroup) { var forderObj = menuBll.GetSingleUserDefineForder(SParentId); if (forderObj != null) { SParentId = forderObj.ParentID; BindItems(SParentId); } } } else { if (e.Item.GalleryGroup == sysGroup) { var menuObj = menuBll.GetSingleMenuByID(e.Item.Tag.ToString()); if (menuObj == null) { CreateSySMenu(ParentId); } else { if (menuObj.StartFlag == true) { if (menuObj.FormFlag) { AppConfig.CreateFormShow(menuObj.FormAssem, menuObj.MenuCode, menuObj.MenuCaption, menuObj.FormName, true, this, menuObj.FormParameters,menuObj.MaxWindow); userBll.InsertLogin("N", AppConfig.UserCode, "使用" + menuObj.MenuCaption + "功能"); } else { CreateSySMenu(e.Item.Tag.ToString()); } } } } if (e.Item.GalleryGroup == selfGroup) { string tagString = e.Item.Tag.ToString(); string key = tagString.Substring(0, 1); if (key == "1") { string forderId = tagString.Substring(1, tagString.Length - 1); var forder = menuBll.GetSingleUserDefineForder(forderId); if (forder != null) { SParentId = forderId; BindItems(forderId); } else { BindItems(SParentId); } } if (key == "2") { try { string menuId = tagString.Substring(1, tagString.Length - 1); var menuObj = menuBll.GetSingleMenuByID(menuId); if (menuObj != null) { if (menuObj.StartFlag == true) { if (menuObj.FormFlag) { AppConfig.CreateFormShow(menuObj.FormAssem, menuObj.MenuCode, menuObj.MenuCaption, menuObj.FormName, true, this, menuObj.FormParameters,menuObj.MaxWindow); userBll.InsertLogin("N", AppConfig.UserCode, "使用" + menuObj.MenuCaption + "功能"); } } } else { BindItems(SParentId); } } catch (Exception ex) { List objList = new List(); LangObj exobj = new LangObj(); exobj.LConvertString = ex.Message; exobj.LParameters = new object[] { }; objList.Add(exobj); MessageDialog msg = new MessageDialog(2, objList); msg.ShowDialog(); } } } if (e.Item.GalleryGroup == selectGroup) { var menuObj = menuBll.GetSingleMenuByID(e.Item.Tag.ToString()); if (menuObj == null) { btnSelect_Click(null, null); } else { if (menuObj.StartFlag == true) { if (menuObj.FormFlag) { AppConfig.CreateFormShow(menuObj.FormAssem, menuObj.MenuCode, menuObj.MenuCaption, menuObj.FormName, true, this, menuObj.FormParameters,menuObj.MaxWindow); userBll.InsertLogin("N", AppConfig.UserCode, "使用" + menuObj.MenuCaption + "功能"); } } } } } } catch (Exception ex) { List langList = new List(); LangObj langObj = new LangObj(); langObj.LConvertString = ex.Message; langObj.LParameters = new object[] { }; langList.Add(langObj); if (langList.Count > 0) { MessageDialog messBox = new MessageDialog(2, langList); messBox.ShowDialog(); } } } private void chkSysMenu_CheckedChanged(object sender, EventArgs e) { if (chkSysMenu.Checked == true) { sysGroup.Visible = true; } else { sysGroup.Visible = false; } } private void chkSelfMenu_CheckedChanged(object sender, EventArgs e) { if (chkSelfMenu.Checked == true) { selfGroup.Visible = true; } else { selfGroup.Visible = false; } } private void btnSelect_Click(object sender, EventArgs e) { if (selectGroup.Visible == false) { chkSearch.Checked = true; } DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在搜索....请稍等...."); _wait.Show(); try { selectGroup.Items.Clear(); DataTable data = menuBll.GetSysMenuForSearch(txtKeyWords.Text.Trim()); if (data.Rows.Count == 0) { _wait.Close(); List langList = new List(); LangObj langObj = new LangObj(); langObj.LConvertString = "搜索无结果"; langObj.LParameters = new object[] { }; langList.Add(langObj); if (langList.Count > 0) { MessageDialog messBox = new MessageDialog(1, langList); messBox.ShowDialog(); } } else { foreach (DataRow dr in data.Rows) { GalleryItem item = new GalleryItem(); item.Tag = dr["ID"].ToString(); item.Caption = dr["MenuCaption"].ToString(); Image img = Image.FromFile(AppConfig.ImagesPath + dr["TableImage"].ToString()); item.Image = img; selectGroup.Items.Add(item); } _wait.Close(); } } catch { _wait.Close(); } } private void chkSearch_CheckedChanged(object sender, EventArgs e) { if (chkSearch.Checked == true) { selectGroup.Visible = true; } else { selectGroup.Visible = false; } } private void galleryControlGallery1_GalleryItemHover(object sender, GalleryItemEventArgs e) { Image img = e.Item.Image; e.Item.Image = e.Item.HoverImage; e.Item.HoverImage = img; } private void galleryControlGallery1_GalleryItemLeave(object sender, GalleryItemEventArgs e) { Image img = e.Item.Image; e.Item.Image = e.Item.HoverImage; e.Item.HoverImage = img; } } }