public void Init() { focusedGameObject = null; singlePlayerText = singlePlayer.GetComponent <UnityEngine.UI.Text>(); multiPlayerText = multiPlayer.GetComponent <UnityEngine.UI.Text>(); tutorialText = tutorial.GetComponent <UnityEngine.UI.Text>(); loadFileText = loadFile.GetComponent <UnityEngine.UI.Text>(); singlePlayer.GetComponent <UnityEngine.UI.Shadow>().enabled = false; multiPlayer.GetComponent <UnityEngine.UI.Shadow>().enabled = false; tutorial.GetComponent <UnityEngine.UI.Shadow>().enabled = false; loadFile.GetComponent <UnityEngine.UI.Shadow>().enabled = false; GameObject levelManager = GameObject.Find("LevelManager"); menuScript = (MenuChoose)levelManager.GetComponent(typeof(MenuChoose)); }
// Use this for initialization void Start() { focusedGameObject = null; firstChapterText = firstChapter.GetComponent <UnityEngine.UI.Text>(); secondChapterText = secondChapter.GetComponent <UnityEngine.UI.Text>(); thirdChapterText = thirdChapter.GetComponent <UnityEngine.UI.Text>(); backText = back.GetComponent <UnityEngine.UI.Text>(); firstChapter.GetComponent <UnityEngine.UI.Shadow>().enabled = false; secondChapter.GetComponent <UnityEngine.UI.Shadow>().enabled = false; thirdChapter.GetComponent <UnityEngine.UI.Shadow>().enabled = false; back.GetComponent <UnityEngine.UI.Shadow>().enabled = false; GameObject levelManager = GameObject.Find("LevelManager"); menuScript = (MenuChoose)levelManager.GetComponent(typeof(MenuChoose)); }
/// <summary> /// 尋找所有節點(Menu編輯側邊樹、Menu parentId下拉選單、後台選單、Role checkbox) /// </summary> /// <param name="parentMenu">The parent menu.</param> /// <param name="type">Enum:後台、前台</param> /// <param name="chooseMenu">Enum:全部、menu、包含角色</param> /// <param name="menuCheck">某角色所包含的選單</param> /// <returns></returns> public List <TreeViewModel> GetTrees(Menu parentMenu, MenuType type, MenuChoose chooseMenu = 0, IEnumerable <Menu> menuCheck = null) { IEnumerable <Menu> menuData; // 第一層:pareintId null if (parentMenu == null) { menuData = Db.Menus.Where(x => x.ParentId == null && x.Type == (int)type && x.IsDelete == false) .OrderBy(x => x.Sort) .ToList(); #region "取得使用者包含Menu" //if (chooseMenu == MenuChoose.Menu && roleMenu == null) //{ // roleMenu = Db.Admins.Find(UserHelper.Id).Roles.Where(x => x.IsDelete == false) // .SelectMany(x => x.Menus).Where(x => x.IsDelete == false) // .Distinct().ToList(); //} #endregion } else { menuData = parentMenu.ChildMenus.Where(x => x.IsDelete == false).OrderBy(x => x.Sort).ToList(); } // 篩選Menu(userMenu包含使用者擁有權限的menu) if (chooseMenu == MenuChoose.Menu) { menuData = menuData.Where(x => x.IsMenu); List <Guid> userMenu = UserHelper.UserMenu; if (UserHelper.IsSuperManager == false) //&& userMenu != null { menuData = menuData.Where(x => userMenu.Contains(x.Id)); }// super管理員的Menu、設定角色全限時 不用篩選menu } var tree = new List <TreeViewModel>(); foreach (var menu in menuData) { var node = new TreeViewModel(); node.Id = menu.Id; node.Name = menu.NativeName; node.IsMenu = menu.IsMenu ? "true" : "false"; UrlHelper url = new UrlHelper(HttpContext.Current.Request.RequestContext); node.Url = url.Action(menu.Action, menu.Controller) + menu.Url.FieldToString(); //Keys.AdminRoot + // 角色是否包含選單 node.IsChecked = (menuCheck != null) && menuCheck.Any(x => x.Id == menu.Id); // 若有子層繼續遞迴 #region "遞迴" var child = Db.Menus.Where(x => x.ParentId == menu.Id && x.IsDelete == false); if (chooseMenu == MenuChoose.Menu) { child = child.Where(x => x.IsMenu); } int childCount = child.Count(); if (childCount > 0) { node.Nodes = GetTrees(menu, type, chooseMenu, menuCheck); } #endregion tree.Add(node); } return(tree); }
/// <summary> /// 尋找所有節點(Menu編輯側邊樹、Menu parentId下拉選單、後台選單、Role checkbox) /// </summary> /// <param name="parentMenu">The parent menu.</param> /// <param name="type">Enum:後台、前台</param> /// <param name="chooseMenu">Enum:全部、menu、包含角色</param> /// <param name="menuCheck">某角色所包含的選單</param> /// <returns></returns> public List<TreeViewModel> GetTrees(Menu parentMenu, MenuType type, MenuChoose chooseMenu = 0, IEnumerable<Menu> menuCheck = null) { IEnumerable<Menu> menuData; // 第一層:pareintId null if (parentMenu == null) { menuData = Db.Menus.Where(x => x.ParentId == null && x.Type == (int)type && x.IsDelete == false) .OrderBy(x => x.Sort) .ToList(); #region "取得使用者包含Menu" //if (chooseMenu == MenuChoose.Menu && roleMenu == null) //{ // roleMenu = Db.Admins.Find(UserHelper.Id).Roles.Where(x => x.IsDelete == false) // .SelectMany(x => x.Menus).Where(x => x.IsDelete == false) // .Distinct().ToList(); //} #endregion } else { menuData = parentMenu.ChildMenus.Where(x => x.IsDelete == false).OrderBy(x => x.Sort).ToList(); } // 篩選Menu(userMenu包含使用者擁有權限的menu) if (chooseMenu == MenuChoose.Menu) { menuData = menuData.Where(x => x.IsMenu); List<Guid> userMenu = UserHelper.UserMenu; if (UserHelper.IsSuperManager == false) //&& userMenu != null { menuData = menuData.Where(x => userMenu.Contains(x.Id)); }// super管理員的Menu、設定角色全限時 不用篩選menu } var tree = new List<TreeViewModel>(); foreach (var menu in menuData) { var node = new TreeViewModel(); node.Id = menu.Id; node.Name = menu.NativeName; node.IsMenu = menu.IsMenu ? "true" : "false"; UrlHelper url = new UrlHelper(HttpContext.Current.Request.RequestContext); node.Url = url.Action(menu.Action, menu.Controller) + menu.Url.FieldToString(); //Keys.AdminRoot + // 角色是否包含選單 node.IsChecked = (menuCheck != null) && menuCheck.Any(x => x.Id == menu.Id); // 若有子層繼續遞迴 #region "遞迴" var child = Db.Menus.Where(x => x.ParentId == menu.Id && x.IsDelete == false); if (chooseMenu == MenuChoose.Menu) { child = child.Where(x => x.IsMenu); } int childCount = child.Count(); if (childCount > 0) { node.Nodes = GetTrees(menu, type, chooseMenu, menuCheck); } #endregion tree.Add(node); } return tree; }