예제 #1
0
    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));
    }
예제 #2
0
    // 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));
    }
예제 #3
0
        /// <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);
        }
예제 #4
0
        /// <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;
        }