releaseCtrl.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. 'use strict';
  2. app.controller('releaseListCtrl', ["$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. var pdKey = $state.current.pdKey;
  4. $scope.langs=i18nService.getAllLangs();
  5. $scope.lang = 'zh-cn';
  6. i18nService.setCurrentLang($scope.lang);
  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:'id', width:100, enableFiltering:false},
  31. // { name:'deploymentId', displayName:'部署Id', width:100, enableFiltering:false},
  32. // { name:'name', displayName:'名称', width:100 },
  33. // { name:'key', displayName:'KEY', width:200 },
  34. // { name:'version', displayName:'版本号', width:100},
  35. // { name:'最后更新时间',field:'lastUpdateTime', cellFilter:'date', width:150, type:'date', enableFiltering:false },
  36. // { name:'创建时间',field:'createTime', cellFilter: 'date', width:150, type:'date', enableFiltering:false},
  37. // { name:'操作', cellTemplate:'<a class="btn btn-sm btn-info" ng-click="grid.appScope.pdList.selectRowFunction(row.entity)"><i class="fa fa-pencil-square-o"/></a><a class="btn btn-sm btn-warning" ng-click="grid.appScope.pdList.removeRowFunction(row.entity)"><i class="fa fa-trash"/></a>', enableFiltering:false}
  38. // ];
  39. // '<a class="btn btn-sm btn-warning" ng-click="grid.appScope.pdList.removeRowFunction(row.entity)">' + '<i class="fa fa-trash"/></a>'
  40. $scope.gridOptions.columnDefs = [
  41. { name:'releasemsign', displayName:'发布单号', width:140 },
  42. { name:'title', displayName:'发布标题', width:120},
  43. { name:'applyUser.name', displayName:'请求人', width:100, enableFiltering:false},
  44. { name:'change.changesign', displayName:'关联变更单号', width:140, enableFiltering:false},
  45. { name:'source.name', displayName:'发布来源', width:100,enableFiltering:false},
  46. // { name:'priority.name', displayName:'优先级', width:80},
  47. // { name:'manager.name', displayName:'问题经理', width:80},
  48. { name:'type.name', displayName:'发布类型', width:100, enableFiltering:false},
  49. { name:'registrationTime', displayName:'创建时间', width:140, enableFiltering:false},
  50. { name:'stage.name', displayName:'状态', width:100,enableFiltering:false},
  51. { name:'操作', cellTemplate:'<releaseoperator item="row.entity" colobject="col">', width:100,enableFiltering:false}
  52. ];
  53. // $scope.gridOptions.importerDataAddCallback = function( grid, newObjects ) {
  54. // $scope.myData = $scope.myData.concat( newObjects );
  55. // console.log($scope);
  56. // };
  57. $scope.gridOptions.onRegisterApi = function(gridApi){
  58. $scope.gridApi = gridApi;
  59. gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) {
  60. var filtersData = $scope.memoryfilterData;
  61. filtersData.idx=newPage-1;
  62. filtersData.sum=pageSize;
  63. $scope.refreshData('expand-right',filtersData);
  64. // $scope.refreshData('expand-right', {"assignee":$rootScope.user.id, "candidateGroups":$rootScope.user.group[0].id, "idx":newPage-1,"sum":pageSize});
  65. });
  66. gridApi.selection.on.rowSelectionChanged($scope, function(data){
  67. //$scope.selected.item = data.entity;
  68. // console.log(data);
  69. });
  70. gridApi.core.on.filterChanged($scope, function() {
  71. var grid = this.grid;
  72. var filtersData = {
  73. "assignee":$rootScope.user.id,
  74. "candidateGroups":$rootScope.user.group[0].id,
  75. idx:0,
  76. sum:10
  77. };
  78. angular.forEach(grid.columns,function(item){
  79. if(item.enableFiltering){
  80. if(angular.isDefined(item.filters[0].term)&&item.filters[0].term!=''){
  81. // console.log('item.filters[0]='+JSON.stringify(item.filters[0]));
  82. if(angular.isUndefined(filtersData['release'])){
  83. filtersData['release']={};
  84. }
  85. filtersData['release'][item.field]=item.filters[0].term;
  86. }
  87. }
  88. });
  89. $scope.memoryfilterData = filtersData;
  90. $scope.refreshData('expand-right', filtersData);
  91. });
  92. };
  93. $scope.memoryfilterData = defaultFilterData = {
  94. "assignee":$rootScope.user.id,
  95. "candidateGroups":$rootScope.user.group[0].id,
  96. "idx":0,
  97. "sum":10
  98. };
  99. // $scope.gridOptions.appScopeProvider = {
  100. // onDblClick : function(row) {
  101. // $state.go('app.form.detail',{data:row, formKey:'changeDetail', pdKey:'change'});
  102. // //var url = '//google.com';
  103. // //$window.open(url, "_blank", "height=600,width=800,toolbar=no,location=no,menubar=no,titlebar=no");
  104. // }
  105. // };
  106. $scope.selectRowFunction = function(data){
  107. console.log(data);
  108. // $state.go('app.process.modeler',{modelId:data.id});
  109. $state.go('app.release.editor',{taskId:data.taskId,processInstanceId: data.processInstanceId});
  110. };
  111. $scope.onDblClick = function(data){
  112. //console.log(row.entity);
  113. // $state.go('app.detail', { formKey:'releaseDetail', pdKey:'release', dataId: row.entity.id});
  114. $state.go('app.detail', { formKey:'releaseDetail', pdKey:'release', dataId: data.id,taskId:data.taskId,processInstanceId: data.processInstanceId});
  115. };
  116. /*
  117. appScopeProvider: {
  118. onDblClick : function(row) {
  119. var url = '//google.com';
  120. $window.open(url, "_blank", "height=600,width=800,toolbar=no,location=no,menubar=no,titlebar=no");
  121. }
  122. },
  123. rowTemplate: "<div ng-dblclick=\"grid.appScope.onDblClick(row)\" ng-repeat=\"(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name\" class=\"ui-grid-cell\" ng-class=\"{ 'ui-grid-row-header-cell': col.isRowHeader }\" ui-grid-cell ></div>"
  124. */
  125. this.removeRowFunction = function(data){
  126. //TODO $translate('key')
  127. SweetAlert.swal({
  128. title: "确认删除?",
  129. text: "删除以后,你将不能恢复该数据!",
  130. type: "warning",
  131. cancelButtonText: "取消",
  132. showCancelButton: true,
  133. confirmButtonColor: "#DD6B55",
  134. confirmButtonText: "确认删除!"
  135. }, function (isConfirm) {
  136. if (isConfirm) {
  137. // api_bpm_domain.removemodel(data.id).then(function(response){
  138. // if(response){
  139. // $scope.refreshData();
  140. // SweetAlert.swal({
  141. // title: "删除成功!",
  142. // confirmButtonColor: "#007AFF"
  143. // });
  144. // }
  145. // });
  146. }else{
  147. }
  148. });
  149. }
  150. //$scope.callsPending = 0;
  151. //var i = 0;
  152. var defaultFilterData = {
  153. "assignee":$rootScope.user.id,
  154. "candidateGroups":$rootScope.user.group[0].id,
  155. "idx":0,
  156. "sum":10,
  157. };
  158. if(angular.isDefined($rootScope['searchrelease'])){
  159. defaultFilterData['searchType']=$rootScope['searchrelease'];
  160. $scope.searchTypes=$rootScope['searchrelease']
  161. }
  162. $scope.ldloading = {};
  163. $scope.refreshData = function(style, filterData){
  164. $scope.ldloading[style.replace('-', '_')] = true;
  165. if(angular.isUndefined(filterData)){
  166. filterData = defaultFilterData;
  167. }
  168. if(angular.isDefined($scope.searchTypes)){
  169. filterData['searchType'] = $scope.searchTypes;
  170. $rootScope['searchrelease']=$scope.searchTypes;
  171. }
  172. $scope.myData = [];
  173. //var start = new Date();
  174. //var sec = $interval(function () {
  175. //$scope.callsPending++;
  176. api_bpm_domain.fetchtask(pdKey,filterData).then(function(data){
  177. $scope.callsPending--;
  178. // console.log('filterData='+JSON.stringify(filterData));
  179. var myData = Restangular.stripRestangular(data);
  180. $scope.gridOptions.totalItems = myData.totalNum;
  181. $scope.myData = myData.data;
  182. $scope.ldloading[style.replace('-', '_')] = false;
  183. },function(){
  184. $scope.ldloading[style.replace('-', '_')] = false;
  185. });
  186. };
  187. $scope.refreshData('expand-right', defaultFilterData);
  188. }]);
  189. app.controller('ReleaseOperCtrl', ['$rootScope','$http', '$scope', function ($rootScope,$http, $scope, $event) {
  190. // console.log('$rootScope.user3='+JSON.stringify($scope.item));
  191. if( $scope.item.handlerUser!=null){
  192. if ($rootScope.user.id==$scope.item.handlerUser.id) {
  193. $scope.item.chaozuoPower=true;
  194. }
  195. }
  196. $scope.look = function(){
  197. $scope.colobject.grid.appScope.onDblClick($scope.item);
  198. // console.log('$scope.item='+JSON.stringify($scope.item));
  199. }
  200. $scope.edit = function(){
  201. $scope.colobject.grid.appScope.selectRowFunction($scope.item);
  202. // console.log('$scope.item='+JSON.stringify($scope.item));
  203. $scope.doEdit($scope.item.id);
  204. }
  205. }]);
  206. app.directive('releaseoperator', function () {
  207. return {
  208. restrict: 'E',
  209. scope:
  210. {
  211. item: '=',
  212. colobject: '='
  213. },
  214. controller: 'ReleaseOperCtrl',
  215. template: '<div class="links cl-effect-1">' +
  216. '<a ng-click="look()" tooltip="查看" tooltip-placement="left"><i class="ti-eye"></i></a>'+
  217. '<a ng-click="edit()" ng-show="{{item.chaozuoPower}}" tooltip="编辑" tooltip-placement="left"><i class="fa fa-pencil-square-o"></i></a>'+
  218. '</div>'
  219. };
  220. });