changeCtrl.js 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. 'use strict';
  2. app.controller('changeListCtrl', ["$scope","i18nService","$rootScope", "$state","$timeout" , "$interval", "SweetAlert", "uiGridConstants", "uiGridGroupingConstants", "Restangular", "api_bpm_domain", function ($scope,i18nService,$rootScope, $state,$timeout , $interval, SweetAlert, uiGridConstants, uiGridGroupingConstants, Restangular, api_bpm_domain) {
  3. $scope.langs=i18nService.getAllLangs();
  4. $scope.lang = 'zh-cn';
  5. i18nService.setCurrentLang($scope.lang);
  6. var pdKey = $state.current.pdKey;
  7. $scope.gridOptions = {};
  8. $scope.gridOptions.data = 'myData';
  9. $scope.gridOptions.enableColumnResizing = true;
  10. $scope.gridOptions.enableFiltering = true;
  11. $scope.gridOptions.enableGridMenu = true;
  12. $scope.gridOptions.enableRowSelection = true;
  13. $scope.gridOptions.showGridFooter = true;
  14. $scope.gridOptions.showColumnFooter = true;
  15. $scope.gridOptions.fastWatch = true;
  16. $scope.gridOptions.useExternalFiltering=true;
  17. $scope.gridOptions.useExternalPagination = true;
  18. $scope.gridOptions.paginationPageSizes = [10];
  19. $scope.gridOptions.paginationPageSize = 10;
  20. $scope.gridOptions.multiSelect = false;
  21. // $scope.gridOptions.rowTemplate= "<div ng-dblclick=\"grid.appScope.pdList.onDblClick(row)\" ng-repeat=\"(colRenderIndex, col) in colContainer.renderedColumns track by col.uid\" ui-grid-one-bind-id-grid=\"rowRenderIndex + '-' + col.uid + '-cell'\" class=\"ui-grid-cell\" ng-class=\"{ 'ui-grid-row-header-cell': col.isRowHeader }\" role=\"{{col.isRowHeader ? 'rowheader' : 'gridcell'}}\" ui-grid-cell></div>";
  22. //
  23. $scope.gridOptions.rowIdentity = function(row) {
  24. return row.id;
  25. };
  26. $scope.gridOptions.getRowIdentity = function(row) {
  27. return row.id;
  28. };
  29. $scope.gridOptions.columnDefs = [
  30. { name:'changesign', displayName:'变更单号', width:80},
  31. { name:'title', displayName:'变更标题', width:100},
  32. { name:'requestingPerson.name', displayName:'请求人', width:100, enableFiltering:false},
  33. { name:'registrationTime', displayName:'登记时间', width:120, enableFiltering:false},
  34. { name:'source.name', displayName:'变更来源', width:100, enableFiltering:false},
  35. { name:'type.name', displayName:'变更类型', width:100, enableFiltering:false},
  36. { name:'classify.name', displayName:'变更分类', width:100, enableFiltering:false},
  37. { name:'rickLevel.name', displayName:'风险等级', width:100, enableFiltering:false},
  38. { name:'state.name', displayName:'状态', width:100, enableFiltering:false},
  39. { name:'操作', cellTemplate:'<changeoperator item="row.entity" colobject="col">', width:100,enableFiltering:false}];
  40. $scope.gridOptions.onRegisterApi = function(gridApi){
  41. $scope.gridApi = gridApi;
  42. gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) {
  43. var filtersData = $scope.memoryfilterData;
  44. filtersData.idx=newPage-1;
  45. filtersData.sum=pageSize;
  46. $rootScope['idxchange']=newPage-1;
  47. $scope.refreshData('expand-right',filtersData);
  48. // $scope.refreshData('expand-right', {"assignee":$rootScope.user.id, "candidateGroups":$rootScope.user.group[0].id, "idx":newPage-1,"sum":pageSize});
  49. });
  50. gridApi.selection.on.rowSelectionChanged($scope, function(data){
  51. //$scope.selected.item = data.entity;
  52. // console.log(data);
  53. });
  54. gridApi.core.on.filterChanged($scope, function() {
  55. var grid = this.grid;
  56. var filtersData = {
  57. "assignee":$rootScope.user.id,
  58. "candidateGroups":$rootScope.user.group[0].id,
  59. idx:0,
  60. sum:10
  61. };
  62. angular.forEach(grid.columns,function(item){
  63. if(item.enableFiltering){
  64. if(angular.isDefined(item.filters[0].term)&&item.filters[0].term!=''){
  65. // console.log('item.filters[0]='+JSON.stringify(item.filters[0]));
  66. if(angular.isUndefined(filtersData['change'])){
  67. filtersData['change']={};
  68. }
  69. filtersData['change'][item.field]=item.filters[0].term;
  70. }
  71. }
  72. });
  73. $scope.memoryfilterData = filtersData;
  74. $scope.refreshData('expand-right', filtersData);
  75. });
  76. };
  77. $scope.memoryfilterData = defaultFilterData = {
  78. "assignee":$rootScope.user.id,
  79. "candidateGroups":$rootScope.user.group[0].id,
  80. "idx":0,
  81. "sum":10
  82. };
  83. $scope.selectRowFunction = function(data){
  84. // console.log(data);
  85. // $state.go('app.process.modeler',{modelId:data.id});
  86. $state.go('app.change.editor',{taskId:data.taskId,processInstanceId: data.processInstanceId});
  87. };
  88. $scope.lookFunction = function(data){
  89. console.log('data='+JSON.stringify(data.id));
  90. //$state.go('app.detail',{taskId:data.taskId,processInstanceId: data.processInstanceId});
  91. $state.go('app.detail', { formKey:'changeDetail', pdKey:'change', dataId: data.id,taskId:data.taskId,processInstanceId: data.processInstanceId});
  92. };
  93. this.removeRowFunction = function(data){
  94. //TODO $translate('key')
  95. SweetAlert.swal({
  96. title: "确认删除?",
  97. text: "删除以后,你将不能恢复该数据!",
  98. type: "warning",
  99. cancelButtonText: "取消",
  100. showCancelButton: true,
  101. confirmButtonColor: "#DD6B55",
  102. confirmButtonText: "确认删除!"
  103. }, function (isConfirm) {
  104. if (isConfirm) {
  105. // api_bpm_domain.removemodel(data.id).then(function(response){
  106. // if(response){
  107. // $scope.refreshData();
  108. // SweetAlert.swal({
  109. // title: "删除成功!",
  110. // confirmButtonColor: "#007AFF"
  111. // });
  112. // }
  113. // });
  114. }else{
  115. }
  116. });
  117. }
  118. //$scope.callsPending = 0;
  119. //var i = 0;
  120. var defaultFilterData = {
  121. "assignee":$rootScope.user.id,
  122. "candidateGroups":$rootScope.user.group[0].id,
  123. "idx":0,
  124. "sum":10
  125. };
  126. if(angular.isDefined($rootScope['searchchange'])){
  127. defaultFilterData['searchType']=$rootScope['searchchange'];
  128. $scope.searchTypes=$rootScope['searchchange'];
  129. // console.log($scope.searchTypes);
  130. }
  131. // $scope.searchTypeOptions = [
  132. // {name:'请选择...', search:''},
  133. // {name:'待我处理的变更', search:'todo'},
  134. // {name:'我创建的变更', search:'create'},
  135. // {name:'我处理过的变更', search:'done'},
  136. // ];
  137. // if(angular.isDefined($rootScope['idxchange'])){
  138. // defaultFilterData.idx=$rootScope['idxchange'];
  139. // }
  140. $scope.ldloading = {};
  141. $scope.refreshData = function(style, filterData){
  142. $scope.ldloading[style.replace('-', '_')] = true;
  143. if(angular.isUndefined(filterData)){
  144. filterData = defaultFilterData;
  145. }
  146. if(angular.isDefined($scope.searchTypes)){
  147. filterData['searchType'] = $scope.searchTypes;
  148. $rootScope['searchchange']=$scope.searchTypes;
  149. }
  150. $scope.myData = [];
  151. //var start = new Date();
  152. //var sec = $interval(function () {
  153. //$scope.callsPending++;
  154. api_bpm_domain.fetchtask(pdKey,filterData).then(function(data){
  155. $scope.callsPending--;
  156. // console.log('filterData='+JSON.stringify(filterData));
  157. var myData = Restangular.stripRestangular(data);
  158. $scope.gridOptions.totalItems = myData.totalNum;
  159. $scope.myData = myData.data;
  160. $scope.ldloading[style.replace('-', '_')] = false;
  161. },function(){
  162. $scope.ldloading[style.replace('-', '_')] = false;
  163. });
  164. };
  165. $scope.refreshData('expand-right', defaultFilterData);
  166. }]);
  167. app.controller('ChangeOperCtrl', ['$rootScope','$http', '$scope', function ($rootScope,$http, $scope, $event) {
  168. // console.log('$rootScope.user3='+JSON.stringify($scope.item));
  169. if( $scope.item.handlerUser!=null){
  170. if ($rootScope.user.id==$scope.item.handlerUser.id) {
  171. $scope.item.chaozuoPower=true;
  172. }
  173. }
  174. $scope.look = function(){
  175. $scope.colobject.grid.appScope.lookFunction($scope.item);
  176. // console.log('$scope.item='+JSON.stringify($scope.item));
  177. }
  178. $scope.edit = function(){
  179. $scope.colobject.grid.appScope.selectRowFunction($scope.item);
  180. // console.log('$scope.item='+JSON.stringify($scope.item));
  181. $scope.doEdit($scope.item.id);
  182. }
  183. }]);
  184. app.directive('changeoperator', function () {
  185. return {
  186. restrict: 'E',
  187. scope:
  188. {
  189. item: '=',
  190. colobject: '='
  191. },
  192. controller: 'ChangeOperCtrl',
  193. template: '<div class="links cl-effect-1">' +
  194. '<a ng-click="look()" tooltip="查看" tooltip-placement="left"><i class="ti-eye"></i></a>'+
  195. '<a ng-click="edit()" ng-show="{{item.chaozuoPower}}" tooltip="编辑" tooltip-placement="left"><i class="fa fa-pencil-square-o"></i></a>'+
  196. '</div>'
  197. };
  198. });