/// <summary> /// 判断用户对页面是否有权限 /// </summary> /// <param name="pathfile">文件路径</param> /// <param name="userName">用户名</param> /// <returns></returns> public static bool IsAllowVisitPage(string pathfile, string userName) { if (!IsOpenPagePermissions())//如果页面权限开关为关闭(0),直接返回有权限 { return(true); } pathfile = pathfile.ToLower(); if (pathfile == "") { return(true); } if (_listAllowPagePath.Contains(pathfile)) { return(true); } DataTable dtUserMenu = null; TSysMenuVo objSysMenuVo = new TSysMenuVo(); objSysMenuVo.IS_DEL = "0"; objSysMenuVo.IS_USE = "1"; objSysMenuVo.MENU_TYPE = "Menu"; dtUserMenu = new TSysMenuLogic().GetMenuByUserName(objSysMenuVo, userName); for (int i = 0; i < dtUserMenu.Rows.Count; i++) { if (pathfile == (dtUserMenu.Rows[i][TSysMenuVo.MENU_URL_FIELD].ToString()).ToLower()) { return(true); } } return(false); }
/// <summary> /// 获取属性类别信息 /// </summary> /// <returns></returns> private string getMenu(string strlocalUserID) { string json = "[]"; string strDataJson = new TSysMenuLogic().GetMenuByUserIDForLogin(strlocalUserID); if (strDataJson.Length > 0) { json = "[" + strDataJson + "]"; } return(json); }
/// <summary> /// 根据父ID 获取子孙 无限极 /// </summary> /// <param name="ParentId">父ID</param> public void GetMenuChild(string ParentId, string strMenuType) { DataTable dtUserMenu = new DataTable(); TSysMenuVo menuvo = new TSysMenuVo(); menuvo.IS_DEL = "0"; menuvo.IS_USE = "1"; menuvo.MENU_TYPE = strMenuType; DataTable dtMenu = new TSysMenuLogic().SelectByTable(menuvo); menuvo.PARENT_ID = ParentId; if (new PageBase().LogInfo.UserInfo.ID == "000000001") { dtUserMenu = new TSysMenuLogic().SelectByTable(menuvo); } else { menuvo.IS_HIDE = "0"; //dtUserMenu = new TSysMenuLogic().GetMenuByUserName(menuvo, LogInfo.UserInfo.USER_NAME); dtUserMenu = new TSysMenuLogic().GetMenuByUserID(menuvo, new PageBase().LogInfo.UserInfo.ID); } DataView dv = new DataView(dtUserMenu); dv.Sort = " PARENT_ID,ORDER_ID ASC"; //排序结果 重载dtUserMenu dtUserMenu = dv.ToTable(); for (int i = 0; i < dtUserMenu.Rows.Count; i++) { //nodes = "{ id:" + Convert.ToInt32(dtUserMenu.Rows[i]["ID"]) + ", pId:" + Convert.ToInt32(dtUserMenu.Rows[i]["PARENT_ID"]) + ", name:'" + dtUserMenu.Rows[i]["MENU_TEXT"] + "',icon:'../../Images/Menu/" + dtUserMenu.Rows[i]["MENU_IMGURL"] + "',IS_SHORTCUT:" + dtUserMenu.Rows[i]["IS_SHORTCUT"] + ""; //有图标,貌似和加载速度关系不大 nodes = "{ id:'" + dtUserMenu.Rows[i]["ID"] + "', pId:'" + dtUserMenu.Rows[i]["PARENT_ID"] + "', name:'" + dtUserMenu.Rows[i]["MENU_TEXT"] + "',icon:'../../Images/Menu/" + dtUserMenu.Rows[i]["MENU_IMGURL"] + "',IS_SHORTCUT:" + dtUserMenu.Rows[i]["IS_SHORTCUT"] + ""; if (dtUserMenu.Rows[i]["PARENT_ID"].ToString() == "0" && i == 0) { nodes += ", open:true"; } if (!String.IsNullOrEmpty(dtUserMenu.Rows[i]["MENU_URL"].ToString())) { nodes += ", url:'" + dtUserMenu.Rows[i]["MENU_URL"] + "'"; } nodes += "}"; treenodes.Add(nodes); //循环方法,取当前行的ID值作为父ID 查找儿子,依次循环 达到无限 GetMenuChild(dtUserMenu.Rows[i]["ID"].ToString(), strMenuType); } //根节点 string rootNode = "{id:'0',pId:'-1',name:'系统菜单管理',icon:'../../Images/Menu/home.gif',open:true},\r\n"; varNodes = "[" + rootNode + String.Join(",\r\n", treenodes.ToArray()) + "]"; }
/// <summary> /// 根据父ID 获取子孙 无限极 /// </summary> /// <param name="ParentId">父ID</param> private void GetMenuChild(string ParentId) { DataTable dtUserMenu = new DataTable(); TSysMenuVo menuvo = new TSysMenuVo(); menuvo.IS_DEL = "0"; menuvo.IS_USE = "1"; menuvo.IS_SHORTCUT = "0"; menuvo.MENU_TYPE = "Menu"; menuvo.PARENT_ID = ParentId; if (LogInfo.UserInfo.ID == "000000001") { dtUserMenu = new TSysMenuLogic().SelectByTable(menuvo); } else { menuvo.IS_HIDE = "0"; //dtUserMenu = new TSysMenuLogic().GetMenuByUserName(menuvo, LogInfo.UserInfo.USER_NAME); dtUserMenu = new TSysMenuLogic().GetMenuByUserID(menuvo, LogInfo.UserInfo.ID); } DataView dv = new DataView(dtUserMenu); dv.Sort = " PARENT_ID,ORDER_ID ASC"; //排序结果 重载dtUserMenu dtUserMenu = dv.ToTable(); for (int i = 0; i < dtUserMenu.Rows.Count; i++) { nodes = "{ id:" + Convert.ToInt32(dtUserMenu.Rows[i]["ID"]) + ", pId:" + Convert.ToInt32(dtUserMenu.Rows[i]["PARENT_ID"]) + ", name:'" + dtUserMenu.Rows[i]["MENU_TEXT"] + "'"; if (!String.IsNullOrEmpty(dtUserMenu.Rows[i]["MENU_URL"].ToString())) { nodes += ", menuurl:'../" + dtUserMenu.Rows[i]["MENU_URL"] + "'"; //指定在什么地方打开链接 默认 _ablak(新窗口)、 _selft(当前窗口) //nodes += ", target:'mainFrm'"; } if (i == 0) { nodes += ", open:true"; } nodes += "}"; treenodes.Add(nodes); //循环方法,取当前行的ID值作为父ID 查找儿子,依次循环 达到无限 GetMenuChild(dtUserMenu.Rows[i]["ID"].ToString()); } }
public static string getMenuInfo() { string strUserID = new PageBase().LogInfo.UserInfo.ID; DataTable dtUserMenu = null; TSysMenuVo menuvo = new TSysMenuVo(); menuvo.IS_DEL = "0"; menuvo.IS_USE = "1"; menuvo.IS_SHORTCUT = "0"; menuvo.MENU_TYPE = "Menu"; if (strUserID == "000000001") { dtUserMenu = new TSysMenuLogic().SelectByTable(menuvo); } else { menuvo.IS_HIDE = "0"; dtUserMenu = new TSysMenuLogic().GetMenuByUserID(menuvo, strUserID); } return(DataTableToJson(dtUserMenu));; }
/// <summary> /// 绑定菜单树,获取json数据 /// </summary> private void BindMenuTree() { TSysMenuVo objMenuVo = new TSysMenuVo(); objMenuVo.IS_DEL = "0"; objMenuVo.IS_HIDE = "0"; objMenuVo.IS_USE = "1"; objMenuVo.SORT_FIELD = TSysMenuVo.ORDER_ID_FIELD; objMenuVo.SORT_TYPE = ConstValues.SortType.ASC; DataTable dt = new TSysMenuLogic().SelectByTable(objMenuVo, 0, 0); if (dt.Rows.Count < 1) { return; } string MenuIconPath = "../../Images/Menu/"; MenuData.Append("["); for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; MenuData.Append("{"); MenuData.Append("id:\"" + dr[TSysMenuVo.ID_FIELD].ToString() + "\","); MenuData.Append("pId:\"" + dr[TSysMenuVo.PARENT_ID_FIELD].ToString() + "\","); MenuData.Append("name:\"" + dr[TSysMenuVo.MENU_TEXT_FIELD].ToString() + "\","); MenuData.Append("icon:\"" + MenuIconPath + dr[TSysMenuVo.MENU_IMGURL_FIELD].ToString() + "\","); MenuData.Append("open:false"); MenuData.Append("}"); if (i != dt.Rows.Count - 1) { MenuData.Append(","); } } MenuData.Append("]"); }
/// <summary> /// 加载左侧菜单Div项,节点JSON数据, 加载tree数据方法 By Castle (胡方扬) 2012-10-24 /// </summary> private void LoadDivModle() { if (LogInfo.UserInfo.USER_NAME == "" && LogInfo.UserInfo.ID != "000000001") { return; } DataTable dtUserMenu = null; TSysMenuVo menuvo = new TSysMenuVo(); menuvo.IS_DEL = "0"; menuvo.IS_USE = "1"; menuvo.IS_SHORTCUT = "0"; menuvo.MENU_TYPE = "Menu"; if (LogInfo.UserInfo.ID == "000000001") { dtUserMenu = new TSysMenuLogic().SelectByTable(menuvo); } else { menuvo.IS_HIDE = "0"; //dtUserMenu = new TSysMenuLogic().GetMenuByUserName(menuvo, LogInfo.UserInfo.USER_NAME); dtUserMenu = new TSysMenuLogic().GetMenuByUserID(menuvo, LogInfo.UserInfo.ID); } DataTable dt = new DataTable(); dt = dtUserMenu.Copy(); dt.Clear(); DataRow[] drlist = dtUserMenu.Select(" PARENT_ID='0'", "ORDER_ID ASC"); foreach (DataRow dr in drlist) { for (int i = 0; i < dtUserMenu.Rows.Count; i++) { if (dtUserMenu.Rows[i]["PARENT_ID"].ToString() == dr["ID"].ToString()) { //dt.Rows.Add(dtUserMenu.Rows[i].ItemArray); dt.Rows.Add(dr.ItemArray); } } } DataView dv = new DataView(dt); dt = dv.ToTable(true); int dtCount = dt.Rows.Count; if (dtCount > 0) { //LoadDiv="<div class=\"leftInner\" id=\"mainLeft\"><ul>"; LoadDiv = "<div class=\"leftInner\" id=\"mainLeft\"><ul>\r\n"; for (int i = 0; i < dtCount; i++) { string openclass = "", Strstyle = ""; if (i == 0) { openclass = "class=\"open\""; Strstyle = "style=\"display: block;\""; } LoadDiv += "<li " + openclass + "> \r\n <p><b>" + dt.Rows[i]["MENU_TEXT"] + "</b></p> \r\n"; LoadDiv += " <div class=\"leftCo\" " + Strstyle + "> \r\n"; LoadDiv += " <ul id=\"tree" + Convert.ToInt32(dt.Rows[i]["ID"]) + "\" class=\"ztree\"></ul> \r\n"; LoadDiv += " </div></li> \r\n"; TreeLoad += "$.fn.zTree.init($(\"#tree" + Convert.ToInt32(dt.Rows[i]["ID"]) + "\"), setting, zNodes" + Convert.ToInt32(dt.Rows[i]["ID"]) + "); \r\n"; GetMenuChild(dt.Rows[i]["ID"].ToString()); NodesData = string.Join(",\r\n", treenodes.ToArray()); LoadNodesData += " var zNodes" + Convert.ToInt32(dt.Rows[i]["ID"]) + "=[" + NodesData + "];\r\n"; treenodes.Clear(); } LoadDiv += "</ul></div> \r\n"; LoadDiv += "<div class=\"arrow\" id=\"mainMiddle\"><span></span></div> \r\n"; } }