1. Proyecto angular en la empresa, app.js es una función de autocarga que contiene la información de enrutamiento de Angular y el código que se carga primero cuando se inicia el programa angular (app.run (), que se ejecuta primero cuando se inicia el programa angular El código en el método de ejecución)
2. Por ahora, contiene la información de enrutamiento de Angular y el código cargado primero cuando se inicia el programa Angular; el siguiente código refleja
(function () {
'use strict'; // 严格模式
//Configuration for Angular UI routing.
app.config([
'$stateProvider', // 基于ui-router的服务
'$urlRouterProvider', // 路由操作
'$locationProvider', // 路由跳转
'$qProvider',
'$httpProvider', $http配置
function ($stateProvider, $urlRouterProvider, $locationProvider, $qProvider, $httpProvider) {
$locationProvider.hashPrefix('');
$urlRouterProvider.otherwise('/');//路径没有匹配的路由的时候,跳转到一个默认的路径
$qProvider.errorOnUnhandledRejections(false);
//注入拦截器
$httpProvider.interceptors.push('authInterceptor');
$stateProvider
.state("error", {
url: "/error",
templateUrl: "/App/views/error.html",
controller: "errorCtr"
})
.state('home', {
url: '/',
templateUrl: '/App/views/index.html',
controller: 'indexCtr'
}).state("index", {
url: "/index",
templateUrl: '/App/views/index.html',
controller: "indexCtr"
})
.state('userManager', {
url: '/userManager',
templateUrl: '/App/views/system/userManager.html',
controller: 'app.views.system.user'
})
.state('roleManager', {
url: '/roleManager',
templateUrl: '/App/views/system/roleManager.html',
controller: 'app.views.system.role'
})
.state('logManager', {
url: '/logManager',
templateUrl: '/App/views/system/logManager.html',
controller: 'app.views.system.log'
})
.state('dataDic', {
url: '/dataDic',
templateUrl: '/App/views/system/dataDic.html',
controller: 'app.views.system.data'
}).state('menuManager', {
url: '/menuManager',
templateUrl: '/App/views/system/menuManager.html',
controller: 'app.views.system.menu'
}).state('deptAreaManager', {
url: '/deptAreaManager',
templateUrl: '/App/views/system/deptAreaManager.html',
controller: 'app.views.system.deptArea'
}).state('workPlanManager', {
url: '/workPlanManager',
templateUrl: '/App/views/setTemplate/workPlanTemplate.html',
controller: 'app.views.setTemplate.workPlan'
}).state('serviceProductManage', {
url: '/serviceProductManage',
templateUrl: '/App/views/setServiceManage/serviceProductManage.html',
controller: 'app.views.setServiceManage.serviceProductManage'
}).state('serviceItemManage', {
url: '/serviceItemManage',
templateUrl: '/App/views/setServiceManage/serviceItemManage.html',
controller: 'app.views.setServiceManage.serviceItemManage'
}).state('workProjectMnage', {
url: '/workProjectMnage',
templateUrl: '/App/views/setServiceManage/workProjectMnage.html',
controller: 'app.views.setServiceManage.workProjectMnage'
}).state('servicePackManage', {
url: '/servicePackManage',
templateUrl: '/App/views/setServiceManage/servicePackManage.html',
controller: 'app.views.setServiceManage.servicePackManage'
}).state('demandTemplate', {
url: '/demandTemplate',
templateUrl: '/App/views/setTemplate/demandTemplate.html',
controller: 'app.views.setTemplate.demandTemplate'
}).state('createInnerProject', {
url: '/createInnerProject',
templateUrl: '/App/views/platProjectManage/createInnerProject.html',
controller: 'app.views.platProjectManage.createInnerProject'
}).state('lookRequisitionForm', {
url: '/lookRequisitionForm',
templateUrl: '/App/views/platServiceRequestForm/lookRequisitionForm.html',
controller: 'app.views.platServiceRequestForm.lookRequisitionForm'
}).state('createRequestForm', {
url: '/createRequestForm/:source',
templateUrl: '/App/views/platServiceRequestForm/createRequestForm.html',
controller: 'app.views.platServiceRequestForm.createRequestForm'
}).state('icon', {
url: '/icon',
templateUrl: '/App/views/system/icon.html',
controller: ''
}).state('projectList', {
url: '/projectList',
templateUrl: '/App/views/platProjectManage/projectList.html',
controller: 'app.views.platProjectManage.projectList'
}).state('projectDocumentManage', {
url: '/projectDocumentManage',
templateUrl: '/App/views/platProjectManage/projectDocumentManage.html',
controller: 'app.views.platProjectManage.projectDocumentManage'
}).state('deliverablesAudit', {
url: '/deliverablesAudit',
templateUrl: '/App/views/platProjectManage/deliverablesAudit.html',
controller: 'app.views.platProjectManage.deliverablesAudit'
})
.state('assignRequirement', {
url: '/assignRequirement',
templateUrl: '/App/views/dispatchManagement/assignRequirement.html',
controller: 'app.views.dispatchManagement.assignRequirement'
})
.state('planOrderSearch', {
url: '/planOrderSearch',
templateUrl: '/App/views/dispatchManagement/planOrderSearch.html',
controller: 'app.views.dispatchManagement.planOrderSearch'
})
.state('task', {
url: '/task/:typeid',
templateUrl: '/App/views/platMyProject/taskToDo.html',
controller: 'app.views.platMyProject.taskToDo'
}).state('transSupport', {
url: '/transSupport',
templateUrl: '/App/views/dispatchManagement/transSupport.html',
controller: 'app.views.dispatchManagement.transSupport'
}).state('myWorkOrder', {
url: '/myWorkOrder',
templateUrl: '/App/views/platMyWorkOrder/myWorkOrder.html',
controller: 'app.views.platMyWorkOrder.myWorkOrder'
}).state('workOrderInquire', {
url: '/workOrderInquire',
templateUrl: '/App/views/dispatchManagement/workOrderInquire.html',
controller: 'app.views.dispatchManagement.workOrderInquire'
}).state('staffSchedule', {
url: '/staffSchedule',
templateUrl: '/App/views/dispatchManagement/staffSchedule.html',
controller: 'app.views.dispatchManagement.staffSchedule'
}).state('synthesizeInquire', {
url: '/synthesizeInquire',
templateUrl: '/App/views/platComprehensiveInquiry/synthesizeInquire.html',
controller: 'app.views.platComprehensiveInquiry.synthesizeInquire'
}).state('resourceApplication', {
url: '/resourceApplication',
templateUrl: '/App/views/platMyProject/resourceApplication.html',
controller: 'app.views.platMyProject.resourceApplication'
}).state('assignWorkOrder', {
url: '/assignWorkOrder',
templateUrl: '/App/views/dispatchManagement/assignWorkOrder.html',
controller: 'app.views.dispatchManagement.assignWorkOrder'
}).state('specWhAccount', {
url: '/specWhAccount',
templateUrl: '/App/views/setServiceManage/specWorkHoursAccount.html',
controller: 'app.views.setServiceManage.specWorkHoursAccount'
}).state('importErpData', {
url: '/importErpData',
templateUrl: '/App/views/system/importErpData.html',
controller: 'app.views.system.importErpData'
}).state('workHourRate', {
url: '/workHourRate',
templateUrl: '/App/views/setServiceManage/workHourRateManage.html',
controller: 'app.views.setServiceManage.workHourRate'
});
}
]);
//程序启动时,获取用户信息
app.run(["$rootScope", "$cookies", "serverDomain", "httpService", "$location", function ($rootScope, $cookies, serverDomain, httpService, $location) {
//首先判断sessionStorage中是否已经有user,有的话则不再请求
if (sessionStorage.getItem("user") && sessionStorage.getItem("pId")) {
API.log("已登陆系统");
if (!$rootScope.user) {
API.log("重新写入rootScope");
$rootScope.user = JSON.parse(sessionStorage.getItem("user"));
}
//获取数据字典
getDicData();
//获得工程线下所有组织架构
getOrgTreeProjectLine();
return;
}
var user = {
employeeNumber: "",//员工工号
name: "",//用户姓名
passportId: "",//84380281-EA1D-4774-BA80-472349367725
passportName: "",//用户It编码
organizationId: 0,//所在部门id
organizationName: "",//所在部门名称
organizationIdPath: ""//所在部门,部门ID全路径
}
var cookieName = 'XSRF-PASSPORTNAME';
var passport_Name = '';
//检查cookie是否存在
if ($cookies.get(cookieName) == undefined || $cookies.get(cookieName) == '') {
$location.path('/index');
}
else {
passport_Name = $cookies.get(cookieName);
}
var paramData = { passportName: passport_Name };
var url = serverDomain + "api/services/app/SbpUser/GetUserInfoByPassportName";
httpService.Get(url, paramData, function (data) {
if (data.success) {
user.employeeNumber = data.result.employeeNumber;
user.name = data.result.name;
user.passportId = data.result.passportId;
user.passportName = data.result.passportName;
user.organizationId = data.result.organizationId;
user.organizationName = data.result.organizationName;
user.organizationIdPath = data.result.organizationIdPath;
user.organizationIdPathArray = data.result.organizationIdPath.split("/");
user.roles = data.result.roles;
user.position = data.result.position;
//写sessionStorage
sessionStorage.setItem("user", JSON.stringify(user));
sessionStorage.setItem("pId", user.passportId);
//写$rootScope
$rootScope.user = user;
//获取数据字典
getDicData();
//获得工程线下所有组织架构
getOrgTreeProjectLine();
}
}, function (data) {
console.error(data);
});
//获取数据字典
function getDicData() {
var dics = localStorage.getItem("dictionary");
if (dics && dics !== "undefined") {
dics = JSON.parse(dics);
if (!$rootScope.dictionary) {
$rootScope.dictionary = dics;
}
return;
}
var getDicUrl = serverDomain + "api/services/app/DictionaryType/GetDictionaryTypeList";
httpService.Get(getDicUrl, {}, function (rst) {
if (rst.success) {
var dicArr = rst.result || [];
var dicJson = {};
dicArr.forEach(function (item, index) {
//字典项列表统一按照sort的值升序排序
item.dictionaries = item.dictionaries.sort(function (first, two) {
if (first.sort < two.sort) {
return -1;
}
if (first.sort > two.sort) {
return 1;
}
return 0;
});
dicJson[item.typeCode] = { id: item.id, typeName: item.typeName, remark: item.remark, dictionaries: item.dictionaries };
});
localStorage.setItem("dictionary", JSON.stringify(dicJson));
$rootScope.dictionary = dicJson;
}
})
}
//获得工程线下所有组织架构
function getOrgTreeProjectLine() {
var orgs = localStorage.getItem("organization");
if (orgs && orgs !== "undefined") {
orgs = JSON.parse(orgs);
if (!$rootScope.organization) {
$rootScope.organization = orgs;
}
return;
}
//获取工程线下(oaOrgId为5)组织树的数据
var url = serverDomain + "api/services/app/SbpOrg/GetOrgTree";
var data = { oaOrgId: 5 };
httpService.Get(url, data, function (data) {
if (data.success) {
localStorage.setItem("organization", JSON.stringify(data.result.children));
//不显示root节点
$rootScope.organization = data.result.children;
}
}, function (err) { });
}
//统一配置math.js
math.config({
number: 'BigNumber',
// 'number' (default),
precision: 20
});
//路由监听事件
$rootScope.$on('$stateChangeStart',
function (event, toState, toParams, fromState, fromParams) {
API.log("Router change");
//API.log("fromParams:", fromParams);
//API.log($stateParams.type);
})
//当模板解析完成后触发
$rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) {
API.log("Router changed");
window.scrollTo(0,0);
abp.ui.clearBusy($('#mianBody'));//清除loading
})
// $stateChangeError 当模板解析过程中发生错误时触发
$rootScope.$on('$stateChangeError', function (event, toState, toParams, fromState, fromParams, error) {
})
}])
})();