224 lines
7.2 KiB
C#
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, "编辑 - ")));
|
|
|
|
}
|
|
}
|
|
} |