1.公司中angular的项目,app.js是一个自加载函数,包含了angular的路由信息和angular程序启动时最先加载的代码(app.run(),当angular的程序启动时,最先执行run方法里的代码)
2.就目前来讲,包含了angular的路由信息和angular程序启动时最先加载的代码;下面代码体现
(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) {
})
}])
})();