// var app = angular.module('app', ['ionic', 'restangular', 'oc.lazyLoad']); var app = angular.module('app', ['ui.router', 'ui.select', 'restangular', 'angularFileUpload', 'ngSanitize']); //var serverIp = "http://192.168.3.49"; //var reportIp = "http://192.168.3.50"; //var inspectIp = "http://192.168.3.69"; //var callIp = "http://192.168.3.49"; var serverIp = "http://itsm.whut.edu.cn"; var reportIp = "http://itsm.whut.edu.cn"; var inspectIp = "http://itsm.whut.edu.cn"; var callIp = "http://itsm.whut.edu.cn"; // app.constant('ADDRESS', { // serverIp: "http://192.168.3.19", // serverIpPort: ":8080", // api: "/service/api" // }); // app.constant('ADDRESS', { // serverIp: "http://192.168.3.49", // serverIpPort: ":9680", // api: "/api" // }); // app.constant('ADDRESS', { // serverIp: "http://192.168.3.52", // serverIpPort: ":9680", // api: "/api" // }); // app.constant('ADDRESS', { // serverIp: "http://115.156.150.70", // serverIpPort: ":8080", // api: "/service/api" // }); app.constant('ADDRESS', { // serverIp: "http://itservice.hust.edu.cn", serverIp: "http://itsm.whut.edu.cn", serverIpPort: ":80", api: "/service" }); app.config(['$httpProvider', '$stateProvider', '$urlRouterProvider', 'ADDRESS', function ($httpProvider, $stateProvider, $urlRouterProvider, address) { // setup an abstract state for the tabs directive $stateProvider.state('tab', { url: '/tab', abstract: true, cache: true, templateUrl: 'assets/views/mainView.html', controller: 'mainCtrl' }) .state('tab.dashboard', { url: '/dashboard', templateUrl: 'assets/views/dashboard.html', cache: true, controller: 'dashboardCtrl' }) .state('tab.requesterIndex', { url: '/requesterIndex', templateUrl: 'assets/views/requesterIndex.html', cache: true, controller: 'requesterIndexCtrl' }) .state('tab.requesterList', { url: '/requesterList', cache: true, templateUrl: 'assets/views/requesterList.html', controller: 'requesterListCtrl' }) .state('tab.requesterDetail', { url: '/requesterDetail/{data}', templateUrl: 'assets/views/requesterDetail.html', controller: 'requesterDetailCtrl' }) .state('tab.knowledgeList', { url: '/knowledgeList', cache: true, templateUrl: 'assets/views/knowledgeList.html', controller: 'knowledgeListCtrl' }) .state('tab.noticeList', { url: '/noticeList', cache: true, templateUrl: 'assets/views/noticeList.html', controller: 'noticeListCtrl' }) .state('tab.noticeDetail', { url: '/noticeDetail/{data}', cache: true, templateUrl: 'assets/views/noticeDetail.html', controller: 'noticeDetailCtrl' }) $urlRouterProvider.otherwise('/tab/dashboard'); } ]); app.config(function ($httpProvider) { $httpProvider.interceptors.push('sessionInjector'); }); app.run(['$rootScope', function ($rootScope) { $rootScope.serverIp = serverIp; }]); //拦截器 //$httpProvider.interceptors 不能注入$http和引用了$http的服务,否则会报依赖注入错误。 app.factory('sessionInjector', ['$rootScope', '$q', 'ADDRESS', function ($rootScope, $q, address) { //factory 的两种写法 //第一种写法 var sessionInjector = { //成功拦截器,发送请求道后台之前执行 'request': function (request) { if (sessionStorage.sessionLogin) { var sessionLogin = JSON.parse(sessionStorage.sessionLogin); if (sessionLogin.token && sessionLogin.token != '') { request.headers['access-token'] = sessionLogin.token; } } return request; }, //成功拦截器,从后台过来的响应之后执行 'response': function (response) { // if (response.config.headers["access-token"] && response.config.headers["access-token"] != '') { // sessionStorage.sessionLogin.token = response.config.headers["access-token"]; // } if (response.headers('access-token')) { // var aa = response.headers('access-token'); // console.log(aa); // var tempSession = JSON.parse(sessionStorage.sessionLogin); var tempSession = {}; if (sessionStorage.sessionLogin) { tempSession = JSON.parse(sessionStorage.sessionLogin); } tempSession.token = response.headers('access-token'); sessionStorage.sessionLogin = JSON.stringify(tempSession); } if (response.data.state == "433") { sessionStorage.clear(); location.href = address.serverIp; // window.location.href = 'https://pass.hust.edu.cn/cas/login?service=http%3A%2F%2Fitservice.hust.edu.cn%2F'; } return response; }, //失败拦截器,请求发送失败或者被拦截器拒绝 'requestError': function (requestError) { var data = requestError.data; return $q.reject(requestError); }, //失败拦截器,后台调用失败 'responseError': function (responseError) { return $q.reject(responseError); } }; return sessionInjector //第二种写法 // return { // request: function(config) { // if (!SessionService.isAnonymus) { // config.headers['x-session-token'] = SessionService.token; // } // return config; // } // }; }]); app.config(['RestangularProvider', function (RestangularProvider) { RestangularProvider.setBaseUrl(''); }]); app.factory('textRestangular', function (Restangular) { return Restangular.withConfig(function (RestangularConfigurer) { RestangularConfigurer.setBaseUrl(inspectIp + ':8088/DeskServer/'); }); }); app.factory('api_text', ['textRestangular', function (textRestangular) { var loginService = textRestangular.all("comm"); var loginsins = textRestangular.all("tele/agent"); return { start: function (phone) { var rdata = "dom=0&epwd=&aid=1000&apwd=e10adc3949ba59abbe56e057f20f883e&adn=" + phone; return loginService.customPOST(rdata, 'start', {}, { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }); }, exit: function (token) { var rdata = "dom=0&token=" + token; return loginService.customPOST(rdata, 'exit', {}, { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }); }, login: function (group, token) { var rdata = "dom=0&token=" + token + "&aid=1000&acd=" + group + "&skill=-1&mon=false&silent=false"; return loginsins.customPOST(rdata, 'login', {}, { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }); }, logout: function (token) { var rdata = "dom=0&token=" + token + "&aid=1000"; return loginsins.customPOST(rdata, 'logout', {}, { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }); }, dialout: function (token, gid, teleno) { var rdata = "dom=0&token=" + token + "&teleno=" + teleno + "&gid=" + gid + "&uud=&async=true"; return loginsins.customPOST(rdata, 'dialout', {}, { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }); }, callout: function (token, teleno) { var rdata = "dom=0&token=" + token + "&teleno=" + teleno + "&uud=&async=true"; return loginsins.customPOST(rdata, 'dialout', {}, { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }); }, setbusy: function (token) { var rdata = "dom=0&token=" + token; return loginsins.customPOST(rdata, 'setbusy', {}, { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }); }, setidle: function (token) { var rdata = "dom=0&token=" + token; return loginsins.customPOST(rdata, 'setidle', {}, { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }); }, inittrans: function (telephone, token) { var rdata = "dom=0&token=" + token + "&teleno=" + telephone + "&uud=&async=true"; return loginsins.customPOST(rdata, 'inittrans', {}, { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }); }, comptrans: function (telephone, token) { var rdata = "dom=0&token=" + token; return loginsins.customPOST(rdata, 'comptrans', {}, { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }); }, record: function (token) { var rdata = "dom=0&token=" + token + "&filename=/tmp/agent.wav&async=true&maxtime=10&termchar=&append=true"; return loginsins.customPOST(rdata, 'record', {}, { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }); }, offhook: function (token) { var rdata = "dom=0&token=" + token; return loginsins.customPOST(rdata, 'offhook', {}, { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }); }, onhook: function (token) { var rdata = "dom=0&token=" + token; return loginsins.customPOST(rdata, 'onhook', {}, { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }); }, getcdrid: function (token) { var rdata = "dom=0&token=" + token; return loginsins.customPOST(rdata, 'getcdrid', {}, { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }); } } }]) app.factory('logRestangular', ['Restangular', 'ADDRESS', function (Restangular, address) { return Restangular.withConfig(function (RestangularConfigurer) { RestangularConfigurer.setBaseUrl(address.serverIp + address.serverIpPort + address.api); }); }]); app.factory('api_logout', ['logRestangular', function (logRestangular) { var outService = logRestangular.all("logout"); return { logout: function () { return outService.customDELETE(); }, } }]) app.factory('UserRestangular', ['Restangular', 'ADDRESS', function (Restangular, address) { return Restangular.withConfig(function (RestangularConfigurer) { // RestangularConfigurer.setBaseUrl(serverIp + ':9680/api/user/'); RestangularConfigurer.setBaseUrl(address.serverIp + address.serverIpPort + address.api + '/user/'); }); }]); app.factory('api_user', ['UserRestangular', function (UserRestangular) { var basePath = "user/"; return { }; }]); app.factory('api_login', ['UserRestangular', function (UserRestangular) { var loginService = UserRestangular.all("auth"); var outService = UserRestangular.all("logout"); return { login: function (username, password) { return loginService.customPOST({ 'username': username, 'password': password }, 'login', {}); }, logout: function () { return outService.customDELETE(); }, // logout: function(sessionid,userid){ // return loginService.customPOST(sessionid + '/' + userid); // }, sso: function (nickname) { return loginService.customGET('sso/' + nickname); }, resetpwd: function (userid) { return loginService.customGET('resetpwd/' + userid); }, uppwd: function (data) { return loginService.customPOST(data, 'uppwd', {}); } } }]) app.factory('api_user_data', ['UserRestangular', function (UserRestangular) { var dataService = UserRestangular.all("data"); return { validate: function (data) { return dataService.customPOST(data, 'validate/role', {}); }, importData: function () { return dataService.one('/importData'); }, fetchDataList: function (model, data) { return dataService.customPOST(data, 'fetchDataList/' + model, {}); }, fetchData: function (model, data) { return dataService.customPOST(data, 'fetchData/' + model, {}); }, addData: function (model, data) { return dataService.customPOST(data, 'addData/' + model, {}); }, updData: function (model, data) { return dataService.customPOST(data, 'updData/' + model, {}); }, rmvData: function (model, data) { return dataService.customPOST(data, 'rmvData/' + model, {}); }, downDataModel: function (type, month) { return dataService.one('downDataModel/' + type + '/' + month); } }; }]); // app.factory('DpmRestangular', function(Restangular) { // return Restangular.withConfig(function(RestangularConfigurer) { // RestangularConfigurer.setBaseUrl(serverIp+':9008/data/'); // }); // }); // app.factory('api_bpm_dbca', ['DpmRestangular', function(DpmRestangular){ // var bpm = DpmRestangular.all("bpm"); // return { // impFileData: function(pdKey){ // return bpm.customPOST( 'impFileData/' + pdKey); // }, // }; // }]); // app.factory('BpmRestangular', function(Restangular) { // return Restangular.withConfig(function(RestangularConfigurer) { // // RestangularConfigurer.setBaseUrl("http://168.166.3.41"+':9008/api/'); // // RestangularConfigurer.setBaseUrl(serverIp + ':9680/api/bpm'); // RestangularConfigurer.setBaseUrl(serverIp + ':8080/service/api/bpm'); // // RestangularConfigurer.setBaseUrl(serverIp + ':8080/wechat/bpm'); // // RestangularConfigurer.setBaseUrl(serverIp + '/wechat/bpm'); // }); // }); app.factory('BpmRestangular', ['Restangular', 'ADDRESS', function (Restangular, address) { return Restangular.withConfig(function (RestangularConfigurer) { // RestangularConfigurer.setBaseUrl("http://168.166.3.41"+':9008/api/'); // RestangularConfigurer.setBaseUrl(serverIp + ':9680/api/bpm'); // RestangularConfigurer.setBaseUrl(serverIp + ':8080/service/api/bpm'); RestangularConfigurer.setBaseUrl(address.serverIp + address.serverIpPort + address.api + '/bpm'); // RestangularConfigurer.setBaseUrl(serverIp + ':8080/wechat/bpm'); // RestangularConfigurer.setBaseUrl(serverIp + '/wechat/bpm'); }); }]); app.factory('CommonRestangular', ['Restangular', 'ADDRESS', function (Restangular, address) { return Restangular.withConfig(function (RestangularConfigurer) { // RestangularConfigurer.setBaseUrl("http://168.166.3.41"+':9008/api/'); // RestangularConfigurer.setBaseUrl(serverIp + ':9680/api/bpm'); // RestangularConfigurer.setBaseUrl(serverIp + ':8080/wechat/bpm'); RestangularConfigurer.setBaseUrl(address.serverIp + address.serverIpPort + address.api + '/common'); }); }]); app.factory('WeChatRestangular', function (Restangular) { return Restangular.withConfig(function (RestangularConfigurer) { // RestangularConfigurer.setBaseUrl("http://168.166.3.41"+':9008/api/'); // RestangularConfigurer.setBaseUrl("http://192.168.3.49" + ':9680/api/bpm'); // RestangularConfigurer.setBaseUrl(serverIp + '/wechat/bpm'); // RestangularConfigurer.setBaseUrl(serverIp + ':8080/wechat/bpm'); RestangularConfigurer.setBaseUrl(serverIp + '/wechat/common'); }); }); app.factory('WeChatApply', ['Restangular', 'ADDRESS', function (Restangular, address) { return Restangular.withConfig(function (RestangularConfigurer) { // RestangularConfigurer.setBaseUrl("http://168.166.3.41"+':9008/api/'); // RestangularConfigurer.setBaseUrl("http://192.168.3.49" + ':9680/api/bpm'); // RestangularConfigurer.setBaseUrl(serverIp + '/wechat/bpm'); // RestangularConfigurer.setBaseUrl(serverIp + ':8080/wechat/bpm'); // RestangularConfigurer.setBaseUrl(serverIp + '/wechat/apply'); RestangularConfigurer.setBaseUrl(address.serverIp + address.serverIpPort + address.api + '/apply'); }); }]); app.factory('api_statistic', ['BpmRestangular', function (BpmRestangular) { var statistic = BpmRestangular.all("statistic"); return { query: function (data, rptId) { return statistic.customPOST(data, 'unidimensional/' + rptId, {}); }, // exportData: function(reportView, uuid, reportfileName){ // return reportService.one('query/rest/export/xls/?exportname='+reportfileName+'xls'); // } unidimensionalExport: function (rptId) { return statistic.one('unidimensionalExport/' + rptId); } } }]); app.factory('api_bpm', ['BpmRestangular', function (BpmRestangular) { var process = BpmRestangular.all("process"); return { deploy: function (data) { return process.customPOST(data, 're/model/deploy', {}); }, list: function () { return process.customGET('re/model/list'); }, modelsource: function (pdId) { return process.customGET('re/model/' + pdId + '/source'); }, savemodel: function (pdId, data) { return process.customPOST(data, 're/model/' + pdId + '/save', {}); }, removemodel: function (modelId) { return process.customGET('re/model/' + modelId + '/remove'); } }; }]); app.factory('WechatRestangularSeimin', ['Restangular', 'ADDRESS', function(Restangular, address) { return Restangular.withConfig(function(RestangularConfigurer) { // RestangularConfigurer.setBaseUrl(address.serverIp + address.serverIpPort + address.api + '/common/'); RestangularConfigurer.setBaseUrl(address.serverIp + address.serverIpPort + '/service' + '/common/'); }); }]); app.factory('api_wechatfile', ['WechatRestangularSeimin', function(WechatRestangularSeimin) { var dataService = WechatRestangularSeimin.all("common"); return { listAttachments: function(type, model) { return dataService.customGET('listAttachment/' + type + "/" + model, {}); // return dataService.one('listAttachment/' + type + "/" + model); }, downloadAttachment: function(model) { return dataService.one('downloadAttachment/' + model, {}); }, getDictionary: function(data) { return dataService.customPOST(data, 'getDictionary', {}); } }; }]); app.factory('api_bpm_domain', ['BpmRestangular', 'CommonRestangular', 'WeChatRestangular', 'WeChatApply', function (BpmRestangular, CommonRestangular, WeChatRestangular, WeChatApply) { var bpmService = BpmRestangular.all("bpm"); var commonService = CommonRestangular.all("common"); var weChatService = WeChatRestangular.all("bpm"); var weChatApply = WeChatApply.all("bpm"); // var bpmService = BpmRestangular.all("common"); return { fetchtask: function (pdKey, data) { return bpmService.customPOST(data, 'fetchTask/' + pdKey, {}); }, weChatFetchServiceTasks: function (pdKey, data) { return weChatApply.customPOST(data, 'fetchServiceTasks/' + pdKey, {}); }, start: function (pdKey, data) { return bpmService.customPOST(data, 'start/' + pdKey, {}); }, weChatApplyStart: function (pdKey, data) { return weChatApply.customPOST(data, 'addWxIncident', {}); }, flowTracing: function (processInstanceId, data) { return bpmService.customPOST(data, 'flowTracing/' + processInstanceId, {}); }, complete: function (taskId, userId, data) { return bpmService.customPOST(data, 'completeTask/' + taskId + '/' + userId, {}); }, completeUpgrade: function (data) { return bpmService.customPOST(data, 'upgradeIncident', {}); }, save: function (taskId, data) { return bpmService.customPOST(data, 'saveTaskVar/' + taskId, {}); }, weChatApplySave: function (taskId, data) { return weChatApply.customPOST(data, 'addWxIncidentDegree/' + taskId, {}); }, claimtask: function (taskId, data) { return bpmService.customPOST(data, 'claimTask/' + taskId, {}); }, expectedTime: function (taskId) { return bpmService.customGET('expectedTime/' + taskId); }, history: function (processId) { return bpmService.customGET('history/' + processId); }, upgrade: function (processInstanceId, taskId, data) { return bpmService.customPOST(data, 'upgradeIncident/' + processInstanceId + '/' + taskId, {}); }, listAttachments: function (processId, data) { return bpmService.customPOST(data, 'getAttachmentList/' + processId, {}); }, // saveAttachments: function(processId, taskId, userId, data) { // return bpmService.one('saveAttachments/' + processId + '/' + taskId + '/' + userId); // }, saveAttachments: function (processId, taskId, userId, data) { return weChatService.one('saveAttachments/' + processId + '/' + taskId + '/' + userId); }, uploadAttachment: function (processId, taskId, userId, data) { return commonService.one('uploadAttachment/' + 'wechatRequesterIncident/' + processId); }, download: function (attachmentId) { return bpmService.one('getAttachmentContent/' + attachmentId); }, // download: function(attachmentId){ // return bpmService.customGET('getAttachmentContent/' + attachmentId,{},{'responseType':'arraybuffer'}); // }, attachmentsPreviewUrl: function (attachmentId) { return bpmService.customGET('attachmentsPreviewUrl/' + attachmentId); }, startformkey: function (pdKey) { return bpmService.customGET('startformkey/' + pdKey); }, taskformkey: function (taskId) { return bpmService.customGET('taskformkey/' + taskId); }, workernumber: function (type) { return bpmService.customGET('restful/' + type); } }; }]); app.factory('api_bpm_data', ['BpmRestangular', function (BpmRestangular) { var dataService = BpmRestangular.all("data"); var serviceCatalogue = BpmRestangular.all("ServiceCatalogue"); var inspectionProcessActual = BpmRestangular.all("InspectionProcessActual"); return { impFileData: function () { return dataService.one('/impFileData/bpm_scheduleorder'); }, importData: function () { return dataService.one('/impFileData'); }, fetchDataList: function (model, data) { return dataService.customPOST(data, 'fetchDataList/' + model, {}); }, fetchData: function (model, dataId) { return dataService.customGET('fetchData/' + model + '/' + dataId); }, fetchServiceTasks: function (model, data) { if (!model) { model = "ALL" } return serviceCatalogue.customPOST(data, 'fetchServiceTasks/' + model, {}); }, fetchInspectServiceTasks: function (model, data) { if (!model) { model = "ALL" } return inspectionProcessActual.customPOST(data, 'fetchServiceTasks/' + model, {}); }, addData: function (model, data) { return dataService.customPOST(data, 'addData/' + model, {}); }, updData: function (model, data) { return dataService.customPOST(data, 'updData/' + model, {}); }, rmvData: function (model, data) { return dataService.customPOST(data, 'rmvData/' + model, {}); }, downDataModel: function (type, month) { return dataService.one('downDataModel/' + type + '/' + month); } }; }]); app.factory('api_bpm_schedule', ['BpmRestangular', function (BpmRestangular) { var dataService = BpmRestangular.all("data"); return { getScheduleClass: function () { var data = { "idx": "0", "sum": "10" }; return dataService.customPOST(data, 'fetchDataList/scheduleclass', {}); }, fetchList: function (startTime, endTime, userId, queryKey) { var scheduleOrder = { "scheduleorder": { "startTime": startTime, "endTime": endTime }, "idx": "0", "sum": "1000" }; if (userId) { scheduleOrder['scheduleorder']['user'] = userId; } if (queryKey) { scheduleOrder['scheduleorder']['description'] = queryKey; } return dataService.customPOST(scheduleOrder, 'fetchDataList/scheduleorder', {}); }, fetchData: function (dataId) { return dataService.customGET('fetchData/scheduleorder/' + dataId); }, update: function (data) { return dataService.customPOST(data, 'updData/scheduleorder', {}); }, add: function (data) { return dataService.customPOST(data, 'addData/scheduleorder', {}); }, remove: function (data) { return dataService.customPOST(data, 'rmvData/scheduleorder', {}); }, fetchSchedule: function (userId, startTime, endTime) { var scheduleData = { "schedulewatch": { "type": "1", "user": { "id": userId }, "startTime": startTime, "endTime": endTime }, "idx": "0", "sum": "100" }; return dataService.customPOST(scheduleData, 'fetchDataList/schedulewatch', {}); }, queryRecieveSwitch: function (userId) { var handleSwitch = { "schedulewatch": { "type": "3", "user": { "id": userId } }, "idx": "0", "sum": "10" }; return dataService.customPOST(handleSwitch, 'fetchDataList/schedulewatch', {}); }, queryHandleoutSwitch: function (userId) { var handleSwitch = { "schedulewatch": { "type": "2", "user": { "id": userId } }, "idx": "0", "sum": "10" }; return dataService.customPOST(handleSwitch, 'fetchDataList/schedulewatch', {}); }, handleSchedule: function (data) { return dataService.customPOST(data, 'updData/schedulewatch', {}); }, querySwitch: function (filterData) { var switchData = { "scheduleorder": { "type": "4" }, "idx": filterData.idx, "sum": filterData.sum }; return dataService.customPOST(switchData, 'fetchDataList/scheduleorder', {}); }, query: function (filterData) { var switchData = { "scheduleorder": filterData.scheduleorder, "idx": filterData.idx, "sum": filterData.sum }; return dataService.customPOST(switchData, 'fetchDataList/scheduleorder', {}); } }; }]); app.factory('SysinfoRestangular', function (Restangular) { return Restangular.withConfig(function (RestangularConfigurer) { RestangularConfigurer.setBaseUrl(serverIp + ':9680/api/sysinfo/'); }); }); app.factory('api_sysinfo', ['SysinfoRestangular', function (SysinfoRestangular) { var dataService = SysinfoRestangular.all("data"); return { fetchDataList: function (model, data) { return dataService.customPOST(data, 'fetchDataList/' + model, {}); }, addData: function (model, data) { return dataService.customPOST(data, 'addData/' + model, {}); }, getSerialnumber: function (type, model) { return dataService.customGET('getSerialnumber/' + type + '/' + model); } }; }]); app.factory('ConfigureRestangular', ['Restangular', 'ADDRESS', function (Restangular, address) { return Restangular.withConfig(function (RestangularConfigurer) { // RestangularConfigurer.setBaseUrl(serverIp + ':9680/api/config/'); // RestangularConfigurer.setBaseUrl(serverIp + '/wechat/config/'); RestangularConfigurer.setBaseUrl(address.serverIp + address.serverIpPort + address.api + '/config/'); }); }]); app.factory('api_configure_form', ['ConfigureRestangular', function (ConfigureRestangular) { var formService = ConfigureRestangular.all("form"); return { renderForm: function (formKey, userId, processInstanceId) { if (formKey) { formKey = formKey + '_weChat' } if (processInstanceId) { return formService.customGET('renderForm/' + formKey + "/" + processInstanceId + "/" + userId); } else { return formService.customGET('renderForm/' + formKey + "/000000/" + userId); } }, renderList: function (formKey) { return formService.customGET('renderList/' + formKey); }, renderTabForm: function (classify) { return formService.customGET('renderTabForm/' + classify); } }; }]); app.factory('api_configure_data', ['ConfigureRestangular', function (ConfigureRestangular) { var dataService = ConfigureRestangular.all("data"); return { fetchDataList: function (model, data) { return dataService.customPOST(data, 'fetchDataList/' + model, {}); }, fetchDataById: function (model, id) { return dataService.customGET('fetchData/' + id + '/' + model); }, fetchData: function (model, data) { return dataService.customPOST(data, 'fetchData/' + model, {}); }, addData: function (model, data) { return dataService.customPOST(data, 'addData/' + model, {}); }, updData: function (model, data) { return dataService.customPOST(data, 'updData/' + model, {}); }, downModels: function (type, id, name) { return dataService.one('export/' + type + '/' + id + '/' + name); } }; }]); app.factory('SolutionRestangular', ['Restangular', 'ADDRESS', function (Restangular, address) { return Restangular.withConfig(function (RestangularConfigurer) { //RestangularConfigurer.setBaseUrl('http://168.166.203.41:9000/services'); RestangularConfigurer.setBaseUrl(address.serverIp + address.serverIpPort + address.api); }); }]); app.factory('api_solution', ['SolutionRestangular', function (SolutionRestangular) { var solutionService = SolutionRestangular.all("solution"); var data = SolutionRestangular.all("solutionData"); var history = SolutionRestangular.all("solutionHistory"); var review = SolutionRestangular.all("solution_review"); var typeservice = SolutionRestangular.all("solutionType"); var groupservice = SolutionRestangular.all("solutionGroup"); return { findSolutionByKeys: function (data) { var key = data.key, status = data.status || 0, pageIndex = data.pageIndex || 0, pageSum = data.pageSum, treeIds = data.treeIds, userId = data.userId; if (angular.isUndefined(treeIds)) { return solutionService.customGET('findSolutionByKeys/' + key + '/' + status + '/' + pageIndex + '/' + pageSum + '/' + userId); } else { return solutionService.customGET('findSolutionByKeys/' + key + '/' + status + '/' + pageIndex + '/' + pageSum + '/' + treeIds + '/' + userId); } }, // searcher: function(data){ // var queryBuilder=data.key, indexname=data.treeIds, type=data.userId; // return searchservice.customGET('searcher/' + queryBuilder + '/' + indexname + '/' + type ); // }, addSolution: function () { return solutionService.one('add'); }, addFile: function (data) { return solutionService.customPOST(data, 'addSolution', {}); }, addModel: function (type, data) { return solutionService.customPOST(data, 'addModel/' + type, {}); }, updModel: function (type, data) { return solutionService.customPOST(data, 'updModel/' + type, {}); }, rmModels: function (id, data) { return solutionService.customPOST(data, 'rmModels/' + id, {}); }, update: function () { return solutionService.one('update'); }, upload: function () { return solutionService.one('upload'); }, uploadResponseUri: function () { return solutionService.one('/'); }, addNotFile: function (data) { return solutionService.customPOST(data, 'addNotFile', {}); }, updateNotFile: function (data) { return solutionService.customPOST(data, 'updateNotFile', {}); }, updateSolution: function (data) { return solutionService.customPOST(data, 'updateSolution', {}); }, searchSolutionByKey: function (key, id) { return solutionService.customGET('searchSolutionByKey/' + key + '/' + id); }, findSolutionById: function (id) { return solutionService.customGET('check/' + id); }, findSolutions: function (id) { return solutionService.customGET('check2/' + id); }, fetchDataList: function (model, data) { return solutionService.customPOST(data, 'fetchDataList/' + model, {}); }, findSolutionDataByDateById: function (ndate, sid) { return data.customGET('findSolutionDataByDateById/' + ndate + '/' + sid); }, findSolutionTypeActions: function (userId) { return typeservice.customGET('findSolutionTypeActions/' + userId); }, findSolutionTypesUser: function (data) { return typeservice.customPOST(data, 'findSolutionTypesUser', {}); }, addTypeUserAll: function (data) { return typeservice.customPOST(data, 'addTypeUserAll', {}); }, hotRanking: function (num) { return solutionService.customGET('hotRanking/' + num); }, scoreRanking: function (num) { return solutionService.customGET('scoreRanking/' + num); }, fetchBBSSolutions: function (pageIndex, pageSum, sequence, userId) { return solutionService.customGET('communicationSolutions/' + pageIndex + '/' + pageSum + '/' + sequence + '/' + userId); }, queryBBSSolutions: function (pageIndex, pageSum, sequence, userId, key) { return solutionService.customGET('communicationSolutions/' + pageIndex + '/' + pageSum + '/' + sequence + '/' + userId + '/' + key); }, updateSolutionStatus: function (data) { return solutionService.customPOST(data, 'updateSolutionStatus', {}); }, getSolutionNumber: function () { return solutionService.customGET('getSolutionNumber'); }, addSolutionType: function (data) { return typeservice.customPOST(data, 'add', {}); }, updateSolutionType: function (data) { return typeservice.customPOST(data, 'update', {}); }, removeSolutionType: function (id) { return typeservice.customGET('delete/' + id); }, getSolutionType: function (id) { return typeservice.customGET('' + id); }, getTree: function (typeId, groupId, flag) { return typeservice.customGET('getTree/' + typeId + '/' + groupId + '/' + flag); }, checkCommentScoreByUserIds: function (userId, id) { return review.customGET('findCommentScore/' + userId + '/' + id); }, addSolutionReview: function (data) { return solutionService.customPOST(data, 'addScore', {}); }, findSolutionReviewById: function (userid, id, pageIndex, pageSum) { return solutionService.customGET('findSolutionReviewByType/' + userid + '/' + id + '/' + pageIndex + '/' + pageSum); }, saveAllUserAuth: function (solutionId, flag) { return solutionService.customGET('saveAllUserTrees/' + solutionId + '/' + flag); }, updatermvSolutionType: function (typeId, groupId, userIds, flag) { return typeservice.customGET('delOrUpdateTrees/' + typeId + '/' + groupId + '/' + userIds + '/' + flag); }, findSolutionGroup: function (id) { return groupservice.customGET('findSolutionGroup/' + id); }, saveSolutionGroup: function (id, data) { return groupservice.customPOST(data, 'saveSolutionGroup/' + id); }, // getSolutionDowpath: function(id){ // return solutionService.one('download/'+id); // } getSolutionDowpath: function (attachmentId) { return solutionService.one('download/' + attachmentId + '/file'); } // getSolutionDowpath: function(attachmentId){ // return solutionService.customGET('download/' + attachmentId); // } }; }]); app.factory('CMDBRestangular', function (Restangular) { return Restangular.withConfig(function (RestangularConfigurer) { RestangularConfigurer.setBaseUrl(serverIp + ':9680/api/cmdb/cmdb/'); }); }); app.factory('api_cmdb', ['CMDBRestangular', function (CMDBRestangular) { var ciService = CMDBRestangular.all("ci"); var uuidService = CMDBRestangular.all("uuid"); var edgeService = CMDBRestangular.all("edge"); var traversal = CMDBRestangular.all("traversal"); var downloadService = CMDBRestangular.all("download"); var exportService = CMDBRestangular.all("export"); var importService = CMDBRestangular.all("import"); var exportModelService = CMDBRestangular.all("exportModel"); var importDataService = CMDBRestangular.all("importData"); var exportDataService = CMDBRestangular.all("exportData"); var searchService = CMDBRestangular.all("search"); function serializeData(data) { // If this is not an object, defer to native stringification. if (!angular.isObject(data)) { return ((data == null) ? "" : data.toString()); } var buffer = []; // Serialize each key in the object. for (var name in data) { if (!data.hasOwnProperty(name)) { continue; } var value = data[name]; buffer.push( encodeURIComponent(name) + "=" + encodeURIComponent((value == null) ? "" : value) ); } // Serialize the buffer and clean it up for transportation. var source = buffer.join("&").replace(/%20/g, "+"); return (source); } return { create: function (data) { return ciService.customPOST(data, '', {}); }, importData: function () { return importDataService.one('/nodes'); }, put: function (data, id) { return ciService.customPUT(data, id, {}); }, remove: function (id) { return ciService.customDELETE(id); }, removeByUUId: function (uuid) { return ciService.customDELETE('uuid/' + id, {}, { 'Content-Type': 'application/json' }); }, removeRefById: function (id) { return ciService.customDELETE(id + '/ref'); }, find: function (id) { return ciService.customGET(id); }, searchkey: function (type, key, idx, sum) { return searchService.customGET(type + '/' + key + '/' + idx + '/' + sum); }, findByUUId: function (uuid) { return ciService.customGET('?uuid=' + uuid); }, query: function (data) { return ciService.customGET('query', data); }, findRefById: function (id) { return ciService.customGET(id + '/refs'); }, finduuid: function (type, model) { return uuidService.customGET(type + '/' + model); }, types: function () { return CMDBRestangular.customGET('types'); }, createRef: function (data) { return edgeService.customPOST(data, '', {}); }, putRef: function (data, id) { return edgeService.customPUT(data, '' + id, {}); }, removeRef: function (id) { return edgeService.customDELETE(id, {}, { 'Content-Type': 'application/json' }); }, traversal: function (uuid) { return traversal.customGET(uuid); }, traversalRel: function (uuid, relation) { return traversal.customGET(uuid + '/' + relation + '/' + 'none'); }, export: function (label) { return exportService.customGET('nodes/' + label); }, import: function () { return importService.one('/nodes'); }, download: function (label) { return downloadService.one('/label'); }, exportData: function (type, model) { return exportDataService.one(model + '/' + type); }, downModels: function (type, model) { return exportModelService.one(model + '/' + type); } }; }]); app.factory('MonitorRestangular', function (Restangular) { return Restangular.withConfig(function (RestangularConfigurer) { RestangularConfigurer.setBaseUrl(serverIp + ':9004/services'); }); }); app.factory('api_monitor', ['MonitorRestangular', function (MonitorRestangular) { //http://127.0.0.1:9004/services/ftpFile/monitor/bankTip/ var process = MonitorRestangular.all("ftpFile/monitor"); return { bankTip: function (id) { return process.customGET('bankTip/' + id); }, list: function () { return process.customGET('list/1000'); }, devList: function (id) { return process.customGET('devList/' + id); }, cpuList: function () { return process.customGET('cpuList/10'); }, memList: function () { return process.customGET('memList/10'); }, storageList: function () { return process.customGET('storageList/10'); }, transData: function () { return process.customGET('transData/5'); }, banklist: function () { return process.customGET('banklist'); }, app: function (id) { return process.customGET('app/' + id); }, beita: function (id) { return process.customGET('beita/' + id); }, gongji: function (id) { return process.customGET('gongji/' + id); } }; }]); app.factory('ReportRestangular', function (Restangular) { return Restangular.withConfig(function (RestangularConfigurer) { //RestangularConfigurer.setBaseUrl('http://127.0.0.1:9005/api/cmdb/'); RestangularConfigurer.setBaseUrl(reportIp + ':8080/saiku/rest'); // RestangularConfigurer.setBaseUrl(serverIp+':8092/saiku/rest'); //saiku/rest/saiku/api/query/execute/ }); }); app.factory('api_report', ['ReportRestangular', 'Restangular', function (MonitorRestangular, Restangular) { var reportService = MonitorRestangular.all("saiku/api"); var authService = MonitorRestangular.one("saiku/session"); return { getLicenseKey: function () { return Restangular.one('assets/').customGET('api/reportToken.js'); }, // auth: function(){ // return authService.customPOST('username=admin&password=admin&language=zh' // ,'', {}, {'Content-Type': 'application/x-www-form-urlencoded'}); // }, // session: function(){ // return authService.customGET(''); // }, list: function () { return reportService.customGET('repository?type=saiku'); /** /saiku/api/repository path: /homes/home:admin/itsm_reports */ }, getMdx: function (path, uuid) { var rdata = 'file=' + path + '&formatter=flattened&language=zh'; return reportService.customPOST(rdata, 'query/' + uuid, {}, { 'Content-Type': 'application/x-www-form-urlencoded' }); }, execute: function (data) { return reportService.customPOST(data, 'query/execute', {}, { 'Accept': 'application/json, text/javascript, */*' }); }, exportData: function (reportView, uuid, reportfileName) { return reportService.one('query/rest/export/xls/?exportname=' + reportfileName + 'xls'); } }; }]); //图片展示canvas app.directive('ngThumb', ['$window', function ($window) { var helper = { support: !!($window.FileReader && $window.CanvasRenderingContext2D), isFile: function (item) { return angular.isObject(item) && item instanceof $window.File; }, isImage: function (file) { var type = '|' + file.type.slice(file.type.lastIndexOf('/') + 1) + '|'; return '|jpg|png|jpeg|bmp|gif|'.indexOf(type) !== -1; } }; return { restrict: 'A', template: '', link: function (scope, element, attributes) { if (!helper.support) return; var params = scope.$eval(attributes.ngThumb); if (!helper.isFile(params.file)) return; if (!helper.isImage(params.file)) return; var canvas = element.find('canvas'); var reader = new FileReader(); reader.onload = onLoadFile; reader.readAsDataURL(params.file); function onLoadFile(event) { var img = new Image(); img.onload = onLoadImage; img.src = event.target.result; } function onLoadImage() { var width = params.width || this.width / this.height * params.height; var height = params.height || this.height / this.width * params.width; canvas.attr({ width: width, height: height }); canvas[0].getContext('2d').drawImage(this, 0, 0, width, height); } } }; }]); //全局弹框 app.directive('alertBar', [function () { return { restrict: 'EA', templateUrl: 'assets/views/directives/tpl/alertBar.html', scope: { message: "=", type: "=", title: "=" }, link: function (scope, element, attrs) { scope.hideAlert = function () { scope.message = null; scope.type = null; scope.title = null; }; } }; }]); app.factory('TipService', ['$timeout', function ($timeout) { return { message: null, type: null, title: null, setMessage: function (title, msg, type) { this.message = msg; this.type = type; this.title = title; //提示框显示最多3秒消失 var _self = this; // $timeout(function() { // _self.clear(); // }, 3000); }, clear: function () { this.message = null; this.type = null; } }; }]); //angular 锚点功能 app.factory('anchorScroll', function () { function toView(element, top, height) { var winHeight = $(window).height(); element = $(element); height = height > 0 ? height : winHeight / 10; $('html, body').animate({ scrollTop: top ? (element.offset().top - height) : (element.offset().top + element.outerHeight() + height - winHeight) }, { duration: 200, easing: 'linear', complete: function () { if (!inView(element)) { element[0].scrollIntoView(!!top); } } }); } function inView(element) { element = $(element); var win = $(window), winHeight = win.height(), eleTop = element.offset().top, eleHeight = element.outerHeight(), viewTop = win.scrollTop(), viewBottom = viewTop + winHeight; function isInView(middle) { return middle > viewTop && middle < viewBottom; } if (isInView(eleTop + (eleHeight > winHeight ? winHeight : eleHeight) / 2)) { return true; } else if (eleHeight > winHeight) { return isInView(eleTop + eleHeight - winHeight / 2); } else { return false; } } return { toView: toView, inView: inView }; }) //过滤时间 app.filter('filterTime', function () { return function (text) { var time = text.split(" "); return time[0]; } });