ChengDa_English/SGGL/FineUIPro.Web/SysManage/SystemMenuSet.aspx.cs

224 lines
7.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
namespace FineUIPro.Web.SysManage
{
public partial class SystemMenuSet : PageBase
{
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetButtonPower();
this.ckMenuType.DataTextField = "Text";
this.ckMenuType.DataValueField = "Value";
this.ckMenuType.DataSource = BLL.DropListService.Sys_Menu_Type();
this.ckMenuType.DataBind();
/// 加载菜单树
this.InitMenuTree(String.Join(", ", this.ckMenuType.SelectedValueArray));
}
}
#region Tab2
/// <summary>
/// 菜单类型选择
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ckMenuType_OnSelectedIndexChanged(object sender, EventArgs e)
{
this.InitMenuTree(String.Join(", ", this.ckMenuType.SelectedValueArray));
}
#region
/// <summary>
/// 初始化树
/// </summary>
/// <param name="menuList">菜单集合</param>
private void InitMenuTree(string menuType)
{
this.tvMenu.Nodes.Clear();
var menus = BLL.SysMenuService.GetMenuListByMenuType(menuType);
if (menus.Count() > 0)
{
TreeNode rootNode = new TreeNode
{
Text = "菜单",
NodeID = "0",
EnableCheckBox = true,
EnableCheckEvent = true,
Expanded = true
};
this.tvMenu.Nodes.Add(rootNode);
this.BoundTree(rootNode.Nodes, menus, rootNode.NodeID);
}
}
/// <summary>
/// 遍历增加子节点
/// </summary>
/// <param name="nodes"></param>
/// <param name="menuId"></param>
private void BoundTree(TreeNodeCollection nodes, List<Model.Sys_Menu> sysMenus, string superMenuId)
{
var menus = sysMenus.Where(x => x.SuperMenu == superMenuId).OrderBy(x => x.SortIndex);
if (menus.Count() > 0)
{
foreach (var item in menus)
{
TreeNode chidNode = new TreeNode
{
Text = item.MenuName,
NodeID = item.MenuId,
EnableCheckBox = true,
EnableCheckEvent = true
};
if (item.IsUsed == true)
{
chidNode.Checked = true;
chidNode.Expanded = true;
chidNode.Selectable = true;
}
nodes.Add(chidNode);
if (!item.IsEnd.HasValue || item.IsEnd == false)
{
this.BoundTree(chidNode.Nodes, sysMenus, item.MenuId);
}
}
}
}
#endregion
#region
/// <summary>
/// 全选、全不选
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvMenu_NodeCheck(object sender, FineUIPro.TreeCheckEventArgs e)
{
if (e.Checked)
{
this.tvMenu.CheckAllNodes(e.Node.Nodes);
SetCheckParentNode(e.Node);
}
else
{
this.tvMenu.UncheckAllNodes(e.Node.Nodes);
}
}
/// <summary>
/// 选中父节点
/// </summary>
/// <param name="node"></param>
private void SetCheckParentNode(TreeNode node)
{
if (node.ParentNode != null && node.ParentNode.NodeID != "0")
{
node.ParentNode.Checked = true;
if (node.ParentNode.ParentNode.NodeID != "0")
{
SetCheckParentNode(node.ParentNode);
}
}
}
#endregion
#region Tab2保存按钮
/// <summary>
/// Tab2保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnTab2Save_Click(object sender, EventArgs e)
{
string menuTyp = String.Join(", ", this.ckMenuType.SelectedValueArray);
if (!string.IsNullOrEmpty(menuTyp))
{
BLL.SysMenuService.SetAllIsUsed(menuTyp);
TreeNode[] nodes = this.tvMenu.GetCheckedNodes();
if (nodes.Length > 0)
{
foreach (TreeNode tn in nodes)
{
if (tn.NodeID != "0")
{
if (BLL.RolePowerService.IsExistMenu(tn.NodeID))
{
var menu = Funs.DB.Sys_Menu.FirstOrDefault(x => x.MenuId == tn.NodeID);
if (menu != null)
{
menu.IsUsed=true;
BLL.SysMenuService.UpdateSys_Menu(menu);
}
}
}
}
}
ShowNotify("保存成功!", MessageBoxIcon.Success);
}
}
#endregion
#endregion
#region
/// <summary>
/// 获取按钮权限
/// </summary>
/// <param name="button"></param>
/// <returns></returns>
private void GetButtonPower()
{
if (this.CurrUser.Account=="hfnbd")
{
this.btnTreeMenuEdit.Hidden = false;
this.btnTreeMenuMove.Hidden = false;
this.btnTab2Save.Hidden = false;
}
//if (this.CurrUser.UserId == BLL.Const.sysglyId)
//{
// this.btnRefresh.Hidden = false;
// this.btnRefresh1.Hidden = false;
//}
}
#endregion
protected void btnTreeMenuEdit_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SystemMenuSetEdit.aspx?MenuId={0}", this.tvMenu.SelectedNodeID, "编辑 - ")));
}
protected void btnTreeMenuMove_Click(object sender, EventArgs e)
{
if (this.tvMenu.SelectedNodeID=="0")
{
Alert.ShowInParent("暂不支持根节点迁移!", MessageBoxIcon.Warning);
return;
}
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SystemMenuSetMove.aspx?MenuId={0}", this.tvMenu.SelectedNodeID, "编辑 - ")));
}
}
}