This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
SXS20240115/SRC/iMES_PAD/module/system/program/menu/RouterExtendProvider.js
2024-01-24 16:47:50 +08:00

143 lines
5.9 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//RouterExtendProvidermanage login/logout function
define(['angularAMD'], function (angularAMD) {
angularAMD.factory('RouterExtendProvider', ['$rootScope', '$filter', '$timeout', 'config', '$mdDialog', 'MMWService', '$state',
function ($rootScope, $filter, $timeout, config, $mdDialog, $MMWService, $state) {
var RouterExtendProvider = this,
prev_state = {};
$MMWService.needLogout = function (callback) {
$mdDialog.closeAll(function () {
$rootScope.hideMenu();
config.mdssessionno = '';
delete $rootScope.menuClick;
//$rootScope.showAlert($filter('translate')('error.sessionTimeout'));
$rootScope.changeProgram(RouterExtendProvider.login_page, true);
if (callback) {
callback();
}
});
};
RouterExtendProvider.login_page = 'login';
RouterExtendProvider.home_page = 'home';
RouterExtendProvider.setting_page = 'setting';
RouterExtendProvider.sideTools = [];
RouterExtendProvider.extendSideMenus = [];
RouterExtendProvider.triggerSetting = function () {
if ($rootScope.currentState != RouterExtendProvider.setting_page) {
prev_state.name = $rootScope.currentState;
prev_state.stateParams = $state.$current.locals.globals.$stateParams;
prev_state.showMenu = $rootScope.isShowMenu;
$rootScope.changeProgram(RouterExtendProvider.setting_page, { parent: prev_state.name, sideMenu: true });
$rootScope.menu_hidden = true;
} else {
var parent = prev_state.name;
if (parent == undefined) {
parent = $state.$current.locals.globals.$stateParams.parent;
}
$rootScope.changeProgram(parent, prev_state.stateParams, true);
if (prev_state.showMenu) {
$rootScope.loadMenu();
}
prev_state = {};
$rootScope.menu_hidden = false;
}
};
RouterExtendProvider.home = function () {
// $state.$current.locals['@'].$scope.back();
$rootScope.changeProgram(RouterExtendProvider.home_page);
};
RouterExtendProvider.goToModule = function (menuItem, callback, failback) {
if (menuItem.module) {
//判斷是否為外部模組
//關閉sideSubMenu
if (typeof failback === 'function') {
failback();
}
} else if (!menuItem.default && !menuItem.childs) {
//沒有設定default、沒有設定子分類
//關閉sideSubMenu
if (typeof failback === 'function') {
failback();
}
$rootScope.subMenu = undefined;
$rootScope.changeProgram(menuItem.name);
$rootScope.loadMenu(config.menu);
} else if (!menuItem.default) {
$rootScope.subMenu = menuItem;
if (typeof callback === 'function') {
callback(menuItem, { mode: 'module' });
}
} else {
//關閉sideSubMenu
if (typeof failback === 'function') {
failback();
}
$rootScope.subMenu = undefined;
$rootScope.changeProgram(menuItem.default);
if (!menuItem.hideMenu && menuItem.childs.length > 1) {
$rootScope.loadMenu(menuItem.childs);
} else {
$rootScope.menuList = menuItem.childs;
$rootScope.hideMenu();
}
}
};
RouterExtendProvider.goToProgram = function (menuItem,parameter) {
$rootScope.changeProgram(menuItem.default, parameter);
if (!menuItem.hideMenu && menuItem.childs.length >= 1) {
$rootScope.loadMenu(menuItem.childs);
} else {
$rootScope.menuList = menuItem.childs;
$rootScope.hideMenu();
}
$rootScope.menuPick = menuItem.name;
};
// 增加左下角的按鈕
RouterExtendProvider.GetSideTools = function () {
return RouterExtendProvider.sideTools;
};
// 增加側邊欄清單的擴充功能
// 使用遞迴方式載入模板
RouterExtendProvider.addExtendSideMenu = function (scope, sideMenuTemp, callback) {
addExtendSideMenu(0, scope, sideMenuTemp, callback);
};
function addExtendSideMenu(index, scope, sideMenuTemp, callback) {
if (index < RouterExtendProvider.extendSideMenus.length) {
try {
scope = RouterExtendProvider.extendSideMenus[index].genController(scope);
RouterExtendProvider.extendSideMenus[index].genTemplate(sideMenuTemp, function (sideMenuTemp) {
addExtendSideMenu(index + 1, scope, sideMenuTemp, callback);
});
} catch (e) {
console.error(e);
addExtendSideMenu(index + 1, scope, sideMenuTemp, callback);
}
} else if (typeof (callback) === 'function') {
callback(scope, sideMenuTemp);
}
}
return RouterExtendProvider;
}]);
});