using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.Routing; using BLL; using Model; namespace Lib { public class MasterPage : MainPage { protected override void Initialize(RequestContext requestContext) { base.Initialize(requestContext); ViewBag.SoftName = "自动化仓储管理系统"; //SetMenu(); SetMenuNew(); SetNav(); } /// /// 根据登录用的角色加载菜单信息 /// private void SetMenu() { StringBuilder sb = new StringBuilder(); if (IsLogin()) { List list = new List(); IDALGerUserMenu provider = new DALGetUserMenu(); list = provider.GetList(this.LoginUserCode).ToList(); UserMenu = list; UserGetBtn btns = new UserGetBtn(); btns.UserCode = this.LoginUserCode; List getBtns = new List(); if (list.Count > 0) { foreach (ResMenu parent in list.Where(a => string.IsNullOrEmpty(a.ParentName))) { StringBuilder sbChild = new StringBuilder(); sbChild.AppendFormat("
    "); bool flag = false; bool exists = false; foreach (ResMenu child in list.Where(a => a.ParentName == parent.ResName)) { flag = child.Url.Substring(0, child.Url.LastIndexOf('/')).ToLower() == this.Path.Substring(0, this.Path.LastIndexOf('/')).ToLower() // || (!child.Children.IsNullOrEmpty() && child.Children.Exists(c => c.Url.ToLower() == this.Path.ToLower())) ; GetBtn getBtn = new GetBtn(); List res = list.Where(a => a.ParentName == child.ResName).ToList(); if (res.Where(a => (a.ResName.IndexOf("新增") >= 0)).ToList().Count == 0) getBtn.Add = "dis"; else getBtn.Add = ""; if (res.Where(a => (a.ResName.IndexOf("编辑") >= 0)).ToList().Count == 0) getBtn.Edit = "dis"; else getBtn.Edit = ""; if (res.Where(a => (a.ResName.IndexOf("删除") >= 0)).ToList().Count == 0) getBtn.Del = "dis"; else getBtn.Del = ""; if (res.Where(a => (a.ResName.IndexOf("下单") >= 0)).ToList().Count == 0) getBtn.Send = "dis"; else getBtn.Send = ""; if (res.Where(a => (a.ResName.IndexOf("关单") >= 0)).ToList().Count == 0) getBtn.Close = "dis"; else getBtn.Close = ""; if (res.Where(a => (a.ResName.IndexOf("审核") >= 0)).ToList().Count == 0) getBtn.Audit = "dis"; else getBtn.Audit = ""; if (res.Where(a => (a.ResName.IndexOf("刷新") >= 0)).ToList().Count == 0) getBtn.Refresh = "dis"; else getBtn.Refresh = ""; if (res.Where(a => (a.ResName.IndexOf("导入") >= 0)).ToList().Count == 0) getBtn.Input = "dis"; else getBtn.Input = ""; if (res.Where(a => (a.ResName.IndexOf("导出") >= 0)).ToList().Count == 0) getBtn.Output = "dis"; else getBtn.Output = ""; if (res.Where(a => (a.ResName.IndexOf("打印") >= 0)).ToList().Count == 0) getBtn.Print = "dis"; else getBtn.Print = ""; if (res.Where(a => (a.ResName.IndexOf("分配权限") >= 0)).ToList().Count == 0) getBtn.Permission = "dis"; else getBtn.Permission = ""; if (res.Where(a => (a.ResName.IndexOf("合格") >= 0)).ToList().Count == 0) getBtn.SignYes = "dis"; else getBtn.SignYes = ""; if (res.Where(a => (a.ResName.IndexOf("不合格") >= 0)).ToList().Count == 0) getBtn.SignNo = "dis"; else getBtn.SignNo = ""; if (res.Where(a => (a.ResName.IndexOf("合格") >= 0)).ToList().Count == 0) getBtn.SignYes = "dis"; else getBtn.SignYes = ""; if (res.Where(a => (a.ResName.IndexOf("启用") >= 0)).ToList().Count == 0) getBtn.Start = "dis"; else getBtn.Start = ""; if (res.Where(a => (a.ResName.IndexOf("停用") >= 0)).ToList().Count == 0) getBtn.Stop = "dis"; else getBtn.Stop = ""; if (res.Where(a => (a.ResName.IndexOf("属性") >= 0)).ToList().Count == 0) getBtn.Property = "dis"; else getBtn.Property = ""; if (res.Where(a => (a.ResName.IndexOf("锁定") >= 0)).ToList().Count == 0) getBtn.ALock = "dis"; else getBtn.ALock = ""; if (res.Where(a => (a.ResName.IndexOf("解锁") >= 0)).ToList().Count == 0) getBtn.ULock = "dis"; else getBtn.ULock = ""; if (res.Where(a => (a.ResName.IndexOf("封存") >= 0)).ToList().Count == 0) getBtn.ALock = "dis"; else getBtn.ALock = ""; if (res.Where(a => (a.ResName.IndexOf("解封") >= 0)).ToList().Count == 0) getBtn.ULock = "dis"; else getBtn.ULock = ""; if (res.Where(a => (a.ResName.IndexOf("完成") >= 0)).ToList().Count == 0) getBtn.Complete = "dis"; else getBtn.Complete = ""; if (res.Where(a => (a.ResName.IndexOf("取消") >= 0)).ToList().Count == 0) getBtn.Cancel = "dis"; else getBtn.Cancel = ""; if (res.Where(a => (a.ResName.IndexOf("回传") >= 0)).ToList().Count == 0) getBtn.BackHaul = "dis"; else getBtn.BackHaul = ""; if (res.Where(a => (a.ResName.IndexOf("回库") >= 0)).ToList().Count == 0) getBtn.to = "dis"; else getBtn.to = ""; getBtn.PrantName = child.ResName; getBtns.Add(getBtn); if (flag) { exists = true; } sbChild.AppendFormat("
  • {2}
  • ", flag ? "class=\"active\"" : "", string.IsNullOrEmpty(child.Url) ? "javascript:void(0)" : child.Url, child.ResName); } sbChild.AppendFormat("
"); sb.AppendFormat("
  • ", exists ? "active" : ""); sb.AppendFormat(""); sb.AppendFormat("", parent.CssName == null ? "icon-bookmark-empty" : parent.CssName); sb.AppendFormat("{0}", parent.ResName); sb.AppendFormat("", exists ? "open" : ""); sb.AppendFormat(""); sb.Append(sbChild.ToString()); sb.AppendFormat("
  • "); } } btns.Btns = getBtns; UserBtn = btns; } ViewBag.MenuItems = sb.ToString(); } private void SetMenuNew() { StringBuilder sb = new StringBuilder(); if (IsLogin()) { List list = new List(); IDALGerUserMenu provider = new DALGetUserMenu(); list = provider.GetList(this.LoginUserCode).ToList(); UserMenu = list; UserGetBtn btns = new UserGetBtn(); btns.UserCode = this.LoginUserCode; List getBtns = new List(); if (list.Count > 0) { foreach (ResMenu parent in list.Where(a => string.IsNullOrEmpty(a.ParentName))) { int i = 1; sb.AppendFormat("
    "); sb.AppendFormat("
    {3}
    ", "dt_" + parent.ResNum, "head1", parent.ResNum, parent.ResName); sb.AppendFormat(""); sb.AppendFormat("
    "); i++; } } btns.Btns = getBtns; UserBtn = btns; } ViewBag.MenuItems = sb.ToString(); } /// /// 设置导航信息 /// private void SetNav() { StringBuilder sb = new StringBuilder(); sb.Append("
      "); sb.Append("
    • "); sb.Append(""); sb.Append("首页"); sb.Append(""); sb.Append("
    • "); if (IsLogin()) { List list = new List(); if (UserMenu == null) { IDALGerUserMenu provider = new DALGetUserMenu(); list = provider.GetList(this.LoginUserCode).ToList(); UserMenu = list; } else list = UserMenu; if (list.Count > 0) { ResMenu item = list.SingleOrDefault(a => (a.Url != null && a.Url.ToLower() == this.Path.ToLower())); List listResult = new List(); if (item != null) { ViewBag.ResMenuName = item.ResName; List getBtns = UserBtn.Btns.Where(a => a.PrantName == item.ResName).ToList(); ViewBag.Btns = getBtns.Count > 0 ? getBtns[0] : null; //ViewBag.Btns.Add; } while (item != null) { listResult.Insert(0, item); if (string.IsNullOrEmpty(item.ParentName)) { break; } else { if (list.Exists(a => a.ResNum == item.ParentName)) { item = list.First(a => a.ResNum == item.ParentName); } else { break; } } } for (int i = 0; i < listResult.Count; i++) { if (i != listResult.Count - 1) { sb.Append("
    • "); sb.AppendFormat("{1}", string.IsNullOrEmpty(listResult[i].Url) ? "javascript:void(0)" : listResult[i].Url, listResult[i].ResName); sb.Append(""); sb.Append("
    • "); } else { sb.Append("
    • "); sb.AppendFormat("{0}", listResult[i].ResName); sb.Append("
    • "); } } } } sb.Append("
    "); ViewBag.NavMenu = sb.ToString(); } } }