app.controller('inspectListMobileCtrl', ["$rootScope", "$scope", "i18nService", "$state", "$timeout", "$interval", "SweetAlert", "$modal", "FileUploader", "i18nService", "uiGridConstants", "uiGridGroupingConstants", "Restangular", "api_user_data", "api_solution", "api_bpm_domain", "api_bpm_data", "$aside", function($rootScope, $scope, i18nService, $state, $timeout, $interval, SweetAlert, $modal, FileUploader, i18nService, uiGridConstants, uiGridGroupingConstants, Restangular, api_user_data, api_solution, api_bpm_domain, api_bpm_data, $aside) { $scope.langs = i18nService.getAllLangs(); $scope.lang = 'zh-cn'; i18nService.setCurrentLang($scope.lang); var loginUser = $rootScope.user; $rootScope.app.topTitle = '巡检列表'; $scope.transferTime = function(time) { return moment(time).format('YYYY-MM-DD '); } $scope.transferStatus = function(status) {}; var inspectListMobileParameter = { 'assignee': loginUser.id, 'idx': 0, 'sum': 10, 'status': '', 'count': 0, 'currentPage': 1, 'endPage': 0, 'pages': [] } $scope.paginationList = {}; //本地数据初始化 sessionStorage.inspectListMobileParameter = JSON.stringify(inspectListMobileParameter); //新增数据 $scope.addData = function() { var data = JSON.parse(sessionStorage.inspectListMobileParameter); if (data.formUiEdit) { var formUiEdit = data.formUiEdit; }; if (data.formUiName) { var formUiName = data.formUiName; }; if (data.processKey) { var pdKey = data.processKey; }; if (data.formUiStart) { var formUiStart = data.formUiStart; }; if (pdKey) { $state.go('app.reService.newService', { 'pdKey': pdKey, 'formUiEdit': formUiEdit, 'formUiName': formUiName, 'formUiStart': formUiStart, 'userId': data.status }); } else { SweetAlert.swal({ title: "当前服务类型不可新建", // text: myData.data, type: "warning" }); } }; $scope.addNewPage = function() { var asideOpen = $aside.open({ templateUrl: 'assets/views/reService/reServiceMoblieNewPage.html', placement: 'top', size: 'sm', backdrop: true, controller: function($scope, $modalInstance, api_user_data, api_solution, inspectListMobileCtrlTree) { var searchCriteria = {}; $scope.ok = function(e) { $modalInstance.close("asideOpen"); // e.stopPropagation(); }; $scope.cancel = function(e) { $modalInstance.dismiss(); // e.stopPropagation(); }; //通过树型控件获取服务请求分类 $scope.my_tree_handler = function(branch) { var filterData = JSON.parse(sessionStorage.inspectListMobileParameter); // filterData.status = branch.id; if (branch.formUiEdit) { filterData.formUiEdit = branch.formUiEdit; }; if (branch.formUiName) { filterData.formUiName = branch.formUiName; }; if (branch.processKey) { filterData.processKey = branch.processKey; }; if (branch.formUiStart) { filterData.formUiStart = branch.formUiStart; }; // filterData.idx = 0; sessionStorage.inspectListMobileParameter = JSON.stringify(filterData); }; $scope.my_data = []; $scope.tree_data = []; $scope.my_tree = tree = {}; $scope.try_async_load = function() { api_bpm_data.fetchDataList('inspectionType', { "idx": 0, "sum": 1000 }).then(function(response) { var responseData = inspectListMobileCtrlTree(response); $scope.my_data = responseData.my_data; $scope.tree_data = responseData.tree_data; }); } $scope.try_async_load(); } }); asideOpen.result.then(function(result) { $scope.addData(); }); }; //跳转到编辑列表 $scope.editorFunction = function(data) { $state.go('app.inspection.inspectListEditor', { "taskId": data.taskId, "processInstanceId": data.processInstanceId, "pdKey": data.processKey, "formUiEdit": data.inspection.inspectionTypeDTO.formUiEdit, // "formUiName": data.inspection.inspectionTypeDTO.formUiName, }); }; //跳转到查看列表 $scope.lookFunction = function(data) { $state.go('app.inspection.inspectListdetail', { "formKey": data.inspection.inspectionTypeDTO.formUiName, "dataId": data.id, "taskId": data.taskId, "processInstanceId": data.processInstanceId, "pdKey": data.processKey, // "formUiEdit": data.inspection.inspectionTypeDTO.formUiEdit, "formUiName": data.inspection.inspectionTypeDTO.formUiName, }); }; //页面刷新 $scope.reload = function() { $scope.refreshListData('expand-right'); } //前往第一页按钮 $scope.paginationFristPage = function() { var filterData = JSON.parse(sessionStorage.inspectListMobileParameter); filterData.currentPage = 1; sessionStorage.inspectListMobileParameter = JSON.stringify(filterData); $scope.refreshListData('expand-right'); } //前往最后一页按钮 $scope.paginationLastPage = function() { var filterData = JSON.parse(sessionStorage.inspectListMobileParameter); filterData.currentPage = filterData.endPage; sessionStorage.inspectListMobileParameter = JSON.stringify(filterData); $scope.refreshListData('expand-right'); } //加载某一页 $scope.paginationLoadPage = function(page) { var filterData = JSON.parse(sessionStorage.inspectListMobileParameter); filterData.currentPage = page; sessionStorage.inspectListMobileParameter = JSON.stringify(filterData); $scope.refreshListData('expand-right'); } //初始化分页栏 var reloadPno = function() { var filterData = JSON.parse(sessionStorage.inspectListMobileParameter); filterData.pages = calculateIndexes(filterData.currentPage, filterData.endPage, 4); $scope.paginationList = filterData; }; //分页算法 var calculateIndexes = function(current, length, displayLength) { var indexes = []; var start = Math.round(current - displayLength / 2); var end = Math.round(current + displayLength / 2); if (start <= 1) { start = 1; end = start + displayLength - 1; if (end >= length - 1) { end = length - 1; } } if (end >= length - 1) { end = length; start = end - displayLength + 1; if (start <= 1) { start = 1; } } for (var i = start; i <= end; i++) { indexes.push(i); } return indexes; }; //数据加载 $scope.ldloading = {}; $scope.refreshListData = function(style) { //刷新按钮动画 $scope.ldloading[style.replace('-', '_')] = true; //获取本地数据 var filterData = JSON.parse(sessionStorage.inspectListMobileParameter); //对接口参数进行重新组装 var showData = { 'assignee': filterData.assignee, 'idx': filterData.currentPage ? filterData.currentPage - 1 : 0, 'searchType': filterData.searchType, 'status': filterData.status, 'sum': filterData.sum }; $scope.myData = []; api_bpm_data.fetchInspectServiceTasks(filterData.status, showData).then(function(data) { var myData = Restangular.stripRestangular(data); filterData.count = myData.resultCount; if (angular.isArray(myData.data) && myData.data.length > 0) { $scope.myData = myData.data; $scope.listShow = true; filterData.endPage = Math.ceil(filterData.count / filterData.sum); // filterData.currentPage = filterData.pageIndex + 1; sessionStorage.inspectListMobileParameter = JSON.stringify(filterData); reloadPno(); angular.forEach($scope.myData, function(ObjIndex) { if (angular.isUndefined(ObjIndex.extendStatus)) { angular.extend(ObjIndex, { 'extendStatus': false }) } }); } else { // SweetAlert.swal({ // title: "数据为空", // text: myData.data, // type: "warning" // }); // if ($scope.paginationList || $scope.paginationList.count) { // $scope.paginationList.count = 0; // } $scope.listShow = false; } $scope.ldloading[style.replace('-', '_')] = false; }, function() { $scope.ldloading[style.replace('-', '_')] = false; }); } $scope.openAside = function(position) { var asideOpen = $aside.open({ templateUrl: 'assets/views/inspect/inspectListMoblieDetail.html', placement: position, size: 'sm', backdrop: true, controller: function($scope, $modalInstance, api_user_data, api_solution, inspectListMobileCtrlTree) { var searchCriteria = { // 'searchType': '', // 'status': '', }; // var filterData = JSON.parse(sessionStorage.inspectListMobileParameter); // searchCriteria.searchType = ""; // searchCriteria.status = ""; $scope.ok = function(e) { $modalInstance.close(searchCriteria); // e.stopPropagation(); }; $scope.cancel = function(e) { $modalInstance.dismiss(); // e.stopPropagation(); }; $scope.statuses = [ { status: 'all', label: '全部巡检任务', idName: 'a' }, { status: 'todo', label: '待我处理的', idName: 'b' }, // { status: 'create', label: '我创建的', idName: 'c' }, { status: 'done', label: '我处理过的', idName: 'd' }, // { status: 's', label: '已驳回', idName: 'e' }, // { status: '6', label: '已拒绝', idName: 'f' } ]; //获取服务请求类型 $scope.onChange = function(searchType) { // var filterData = JSON.parse(sessionStorage.inspectListMobileParameter); if (angular.isUndefined(searchType)) { searchCriteria.searchType = $scope.searchType; } else { searchCriteria.searchType = searchType; } // sessionStorage.inspectListMobileParameter = JSON.stringify(filterData); } //通过树型控件获取服务请求分类 $scope.my_tree_handler = function(branch) { // var filterData = JSON.parse(sessionStorage.inspectListMobileParameter); var filterData = {}; searchCriteria.status = branch.id; if (branch.formUiEdit) { filterData.formUiEdit = branch.formUiEdit; }; if (branch.formUiName) { filterData.formUiName = branch.formUiName; }; if (branch.processKey) { filterData.processKey = branch.processKey; }; if (branch.formUiStart) { filterData.formUiStart = branch.formUiStart; }; searchCriteria.idx = 0; angular.extend(searchCriteria, filterData); // sessionStorage.inspectListMobileParameter = JSON.stringify(filterData); }; $scope.my_data = []; $scope.tree_data = []; $scope.my_tree = tree = {}; $scope.try_async_load = function() { api_bpm_data.fetchDataList('inspectionType', { "idx": 0, "sum": 1000 }).then(function(response) { var responseData = inspectListMobileCtrlTree(response); $scope.my_data = responseData.my_data; $scope.tree_data = responseData.tree_data; }); } $scope.try_async_load(); } }); asideOpen.result.then(function(searchCriteria) { if (searchCriteria.searchType || searchCriteria.status) { var filterData = JSON.parse(sessionStorage.inspectListMobileParameter); angular.extend(filterData, searchCriteria); sessionStorage.inspectListMobileParameter = JSON.stringify(filterData); $scope.refreshListData('expand-right'); } else { SweetAlert.swal({ title: "条件未选", text: "请选择服务请求条件", type: "warning" }); } }); }; $scope.refreshListData('expand_right'); // $scope.try_async_load(); }]); app.factory('inspectListMobileCtrlTree', ['api_bpm_data', function(api_bpm_data) { function convertListToTree(data, treeMap) { var idToNodeMap = {}; var root = null; var parentNode = null; for (var i = 0; i < data.length; i++) { var datum = data[i]; datum.children = []; idToNodeMap[datum.id] = datum; if (typeof datum.parent === "undefined" || datum.parent == null) { root = datum; treeMap[datum.id] = root; } else { parentNode = idToNodeMap[datum.parent]; delete datum.parent; parentNode.children.push(datum); } } return root; }; function convertParentToChildList(data) { var treeMap = {}; var list = []; convertListToTree(data, treeMap); angular.forEach(treeMap, function(item) { list.push(item); }); return list; }; var forEachEelement = function forEachEelement(response) { var objects = []; angular.forEach(response.list, function(ObjIndex, index, destObj) { var object = {}; object.id = ObjIndex.id; object.label = ObjIndex.type; if (ObjIndex.parent && ObjIndex.parent.id != 0) { object.parent = ObjIndex.parent.id; }; if (ObjIndex.formUiEdit) { object.formUiEdit = ObjIndex.formUiEdit; }; if (ObjIndex.formUiName) { object.formUiName = ObjIndex.formUiName; }; if (ObjIndex.processKey) { object.processKey = ObjIndex.processKey; }; if (ObjIndex.formUiStart) { object.formUiStart = ObjIndex.formUiStart; }; objects.push(object); }); var my_data = convertParentToChildList(objects); var tree_data = angular.copy(my_data); return { 'my_data': my_data, 'tree_data': tree_data } } return forEachEelement; }]);