84 lines
2.2 KiB
JavaScript
84 lines
2.2 KiB
JavaScript
//menu function
|
|
define(["app"], function (app) {
|
|
app.run(['$state', '$rootScope', '$filter', '$templateRequest', '$compile', 'config', function($state, $rootScope, $filter, $templateRequest, $compile, config){
|
|
|
|
$rootScope.menuState = '';
|
|
$rootScope.isLoadMenu = false;
|
|
$rootScope.isShowMenu = false;
|
|
//載入menu
|
|
$rootScope.loadMenu = function(menu){
|
|
if(!$rootScope.isLoadMenu){
|
|
$templateRequest('module/system/program/mms03_system_home/mms03_system_home.html').then(function(respose){
|
|
var menuDiv = document.getElementById('menu');
|
|
var menuScope = menuController($rootScope.$new(true), menu);
|
|
angular.element(menuDiv).append($compile(respose)(menuScope)).removeClass('menu-hide').css('background', '#eef1f7');
|
|
$rootScope.isLoadMenu = true;
|
|
showMenu(menu);
|
|
});
|
|
} else {
|
|
showMenu(menu);
|
|
}
|
|
};
|
|
|
|
//開啟menu
|
|
$rootScope.permissions = [];
|
|
$rootScope.showMenu = showMenu;
|
|
$rootScope.menuList = [];
|
|
function showMenu(menu){
|
|
if(menu){
|
|
$rootScope.menuList = menu;
|
|
}
|
|
|
|
if(checkMenu()){
|
|
$rootScope.isShowMenu = true;
|
|
$rootScope.menuState = 'is-menu-showed';
|
|
}
|
|
}
|
|
function checkMenu(){
|
|
if($rootScope.menuList && $rootScope.menuList.length>0){
|
|
var menuItem_count = 0;
|
|
$rootScope.menuList.forEach(function(menuItem){
|
|
if(menuItem.isShow){
|
|
menuItem_count++;
|
|
}
|
|
});
|
|
|
|
return menuItem_count>1;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
//關閉menu
|
|
$rootScope.hideMenu = function(){
|
|
$rootScope.isShowMenu = false;
|
|
$rootScope.menuState = '';
|
|
}
|
|
function menuController(scope){
|
|
scope.menuClick = function(item, event){
|
|
var paramets;
|
|
if(item.isci == true){
|
|
$rootScope.changeProgram(config.cache.ci.toLowerCase());
|
|
}
|
|
else if(item.isco == true){
|
|
$rootScope.changeProgram(config.cache.co.toLowerCase());
|
|
}
|
|
else if($rootScope.menuClick){
|
|
$rootScope.menuClick(item.name, item);
|
|
} else {
|
|
$rootScope.changeProgram(item.name, paramets);
|
|
}
|
|
};
|
|
return scope;
|
|
}
|
|
|
|
$rootScope.currentState = '';
|
|
$rootScope.$on('$stateChangeSuccess',function(event, toState, toParams, fromState, fromParams){
|
|
$rootScope.currentState = toState.name;
|
|
});
|
|
|
|
}])
|
|
|
|
});
|