This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
SXS20240115/SRC/iMES_PDA/config/menu.js

84 lines
2.2 KiB
JavaScript
Raw Permalink Normal View History

2024-01-24 16:47:50 +08:00
//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;
});
}])
});