app.controller('incidentHandlerCtrl', ["$rootScope", "$scope", '$stateParams', '$http', '$state', '$timeout', '$ionicPopover', '$ionicPopup', '$ionicLoading', 'api_bpm_domain', 'Restangular', 'loginService', 'getLoginUser', function($rootScope, $scope, $stateParams, $http, $state, $timeout, $ionicPopover, $ionicPopup, $ionicLoading, api_bpm_domain, Restangular, loginService, getLoginUser) {
console.log('incidentHandlerCtrl is load');
//弹出框
// .fromTemplate() method
// var template = ' My Popover Title
Hello! ';
// $scope.popover = $ionicPopover.fromTemplate(template, {
// scope: $scope
// });
// .fromTemplateUrl() method
var promise = getLoginUser.query(); // 同步调用,获得承诺接口
promise.then(function(data) { // 调用承诺API获取数据 .resolve
// $scope.user = data;
console.log(data)
}, function(data) { // 处理错误 .reject
// $scope.user = {error: '用户不存在!'};
console.log(data)
});
$scope.goBack = function() {
history.go(-1);
}
$scope.newFunction = function() {
$state.go('tab.customFormIndex', {
'formKey': 'requestMobileEditor'
});
};
$scope.load = {
'pageIndex': 0, //第几页
'pageSum': 10, //每页条数
'pageCount': 0 //总页数
};
$ionicPopover.fromTemplateUrl('assets/views/weChat/myIncident/popover.html', {
scope: $scope
}).then(function(popover) {
$scope.popover = popover;
});
$scope.openPopover = function($event) {
$scope.popover.show($event);
};
$scope.closePopover = function() {
$scope.popover.hide();
};
//Cleanup the popover when we're done with it!
$scope.$on('$destroy', function() {
$scope.popover.remove();
});
// Execute action on hidden popover
$scope.$on('popover.hidden', function(res) {
// Execute action
});
// Execute action on remove popover
$scope.$on('popover.removed', function() {
// Execute action
});
$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.searchTypeFunction = function(searchType) {
$scope.refreshListData({ 'searchType': searchType });
$scope.popover.hide();
}
// 一个精心制作的自定义弹窗
// var myPopup = $ionicPopup.show({
// template: '',
// title: 'Enter Wi-Fi Password',
// subTitle: 'Please use normal things',
// scope: $scope,
// buttons: [
// { text: 'Cancel' },
// {
// text: 'Save',
// type: 'button-positive',
// onTap: function(e) {
// if (!$scope.data.wifi) {
// //不允许用户关闭,除非他键入wifi密码
// e.preventDefault();
// } else {
// return $scope.data.wifi;
// }
// }
// },
// ]
// });
// myPopup.then(function(res) {
// console.log('Tapped!', res);
// });
// $timeout(function() {
// myPopup.close(); //由于某种原因3秒后关闭弹出
// }, 3000);
// 一个确认对话框
$scope.showConfirm = function() {
var confirmPopup = $ionicPopup.confirm({
title: 'Consume Ice Cream',
template: 'Are you sure you want to eat this ice cream?'
});
confirmPopup.then(function(res) {
if (res) {
console.log('You are sure');
} else {
console.log('You are not sure');
}
});
};
// 一个提示对话框
$scope.showAlert = function() {
var alertPopup = $ionicPopup.alert({
title: 'Don\'t eat that!',
template: 'It might taste good'
});
alertPopup.then(function(res) {
console.log('Thank you for not eating my delicious ice cream cone');
});
};
// $scope.loginForm = {};
// var loginUser = $rootScope.user;
//获取login中的数据
var sessionLogin = JSON.parse(sessionStorage.sessionLogin);
var loginUser = sessionLogin.user;
$rootScope.user = sessionLogin.user;
//定义流程代号
// var pdKey = $state.current.pdKey;
var pdKey = 'bpm_incident';
// var incidentListMobileParameter = {
// 'assignee': loginUser.id,
// 'idx': 0,
// 'sum': 10,
// 'status': '',
// 'count': 0,
// 'currentPage': 1,
// 'endPage': 0,
// 'pages': []
// };
//默认数据
var defaultData = {
'assignee': loginUser.id,
'idx': 0,
'sum': 10,
'candidateGroups': loginUser.group["0"].id
};
//页面数据容器
$scope.myData = [];
//是否加载上拉刷新
$scope.domore = false;
//填充数据
$scope.filterData = {
'assignee': loginUser.id,
'idx': 0,
'sum': 10,
};
//本地数据初始化
// sessionStorage.incidentListMobileParameter = JSON.stringify(incidentListMobileParameter);
//新增数据
$scope.addData = function() {
var roleMan = false;
if ($rootScope.user.role || $rootScope.user.role != null) {
for (var i in $rootScope.user.role) {
if ($rootScope.user.role[i].id == 3 || $rootScope.user.role[i].id == 5 || $rootScope.user.role[i].id == 29700 || $rootScope.user.role[i].id == 29701) {
roleMan = true;
break;
}
}
}
if (roleMan) {
$state.go('tab.incidentHandlerNew', {
// pdKey: 'bpm_incident'
})
} else {
$ionicPopup.alert({
title: '没有访问权限',
// template: 'It might taste good'
});
}
// $state.go('tab.incidentHandlerNew', {
// // pdKey: 'bpm_incident'
// })
};
//跳转到编辑列表
$scope.editorFunction = function(data) {
$state.go('tab.incidentHandlerCustomFormIndex', {
taskId: data.taskId,
processInstanceId: data.processInstanceId
});
};
//跳转到查看列表
$scope.lookFunction = function(data) {
$state.go('tab.incidentHandlerCustomFormDetail', {
"formKey": 'incident_back',
"pdKey": 'incident',
"dataId": data.id,
"taskId": data.taskId,
"processInstanceId": data.processInstanceId
});
};
//页面刷新
$scope.reload = function() {
$scope.refreshListData();
}
//下拉刷新
$scope.doRefresh = function() {
$scope.filterData.idx = 0;
var idx = {
'idx': $scope.filterData.idx
}
$scope.refreshListData(idx, 'down');
$scope.domore = false;
};
//上拉加载
$scope.loadMore = function() {
//开启上拉加载
$scope.domore = false;
//数据列表加1
$scope.filterData.idx += 1;
$scope.load.pageIndex += 1;
//定时器
var timer = null;
//参数
var filterData = defaultData;
angular.extend(filterData, { 'idx': $scope.filterData.idx });
//加载
if ($scope.load.pageIndex < $scope.load.pageCount) {
api_bpm_domain.fetchtask(pdKey, filterData).then(function(data) {
var myData = Restangular.stripRestangular(data);
if (myData.pageIndex <= myData.pageCount) {
if (angular.isArray(myData.data) && myData.data.length > 0) {
angular.forEach(myData.data, function(item) {
$scope.myData.push(item);
});
}
$scope.$broadcast('scroll.infiniteScrollComplete');
} else {
$scope.domore = true;
$scope.$broadcast('scroll.infiniteScrollComplete');
}
}, function(data) {});
} else {
$scope.domore = true;
$scope.$broadcast('scroll.infiniteScrollComplete');
}
};
//数据加载
$scope.refreshListData = function(filterData, loadStyle) {
//获取本地数据
// var filterData = JSON.parse(sessionStorage.incidentListMobileParameter);
//对接口参数进行重新组装
// var showData = {
// 'assignee': filterData.assignee,
// // 'idx': filterData.currentPage ? filterData.currentPage - 1 : 0,
// 'idx': filterData.idx,
// 'searchType': filterData.searchType,
// 'status': filterData.status,
// 'sum': filterData.sum,
// };
var showData = {};
if (filterData) {
showData = angular.extend(defaultData, filterData);
} else {
showData = defaultData;
}
// if (filterData.candidateGroups) {
// angular.extend(showData, { 'candidateGroups': filterData.candidateGroups });
// };
//遮罩层开启
$ionicLoading.show({
template: 'Loading...'
});
api_bpm_domain.fetchtask(pdKey, 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.load.pageIndex = myData.pageIndex;
$scope.load.pageCount = myData.pageCount;
if (loadStyle == 'down') {
$scope.$broadcast('scroll.refreshComplete');
}
} else {
// SweetAlert.swal({
// title: "数据为空",
// text: myData.data,
// type: "warning"
// });
// if ($scope.paginationList || $scope.paginationList.count) {
// $scope.paginationList.count = 0;
// }
$scope.listShow = false;
}
//遮罩层关闭
$ionicLoading.hide();
}, function() {
$ionicLoading.hide();
});
}
//事件提取
$scope.acceptTaskAction = function(item) {
var confirmPopup = $ionicPopup.confirm({
title: '事件提取',
template: '是否提取该事件?'
});
confirmPopup.then(function(res) {
// var receiveTask = function(receive_code, item) {
// var data = {
// 'receive_code': receive_code
// };
// if (item) {
// return {
// taskId: item.taskId,
// data: data
// };
// } else {
// return 'error';
// }
// };
// var data = receiveTask($scope.receive_code, item);
if (res) {
api_bpm_domain.claimAndCompletedTask(item.taskId, { userId: loginUser.id, receive_code: "handler" }).then(function(response) {
if (response.status == 200) {
$ionicPopup.alert({
title: '操作成功!',
// template: 'It might taste good'
});
$scope.reload()
confirmPopup.close();
} else if (response.status == 500) {
$ionicPopup.alert({
title: '操作失败!',
template: '该事件已被提取,请刷新页面!'
});
confirmPopup.close();
} else {
$ionicPopup.alert({
title: '操作失败!',
template: '操作失败, 请稍后再试!'
});
confirmPopup.close();
}
});
} else {
}
});
}
//页面加载
// $scope.reload();
//跳转成功刷新页面
$scope.$on('$stateChangeSucess', $scope.reload());
}])
app.controller('handlerExtendCtrl', ['$scope', '$rootScope', '$http', function($scope, $rootScope, $http) {
//判断当前事件状态
if ($scope.item.state.id != null && $scope.item.state.id != 6 && $scope.item.handlerUser != null) {
if ($rootScope.user.id && $rootScope.user.id == $scope.item.handlerUser.id) {
$scope.item.chaozuoPower = true;
} else {
// angular.forEach($rootScope.user.group, function(userItem) {
// angular.forEach($scope.item.handlerUser.group, function(handlerUserItem) {
// if (handlerUserItem == userItem.id) {
// $scope.item.chaozuoPower = true;
// }
// });
// });
}
}
if ($scope.item.state.id != 6 && $scope.item.handlerUser == null) {
$scope.item.tiquPower = true;
}
// if ($scope.item.state.id != null && $scope.item.handlerUser != null) {
// if ($rootScope.user.id == $scope.item.handlerUser.id) {
// $scope.item.chaozuoPower = true;
// }
// }
$scope.look = function() {
$scope.$parent.$parent.$parent.lookFunction($scope.item);
};
$scope.edit = function() {
$scope.$parent.$parent.$parent.editorFunction($scope.item);
};
$scope.handler = function() {
$scope.$parent.$parent.$parent.acceptTaskAction($scope.item);
}
}]);