taskListCtrl.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  1. 'use strict';
  2. /**
  3. * controller for User Profile Example
  4. */
  5. app.controller('taskListListCtrl', ["$rootScope", "$scope", "$state", "$timeout", "$interval", "$modal", "SweetAlert", "i18nService", "uiGridConstants", "uiGridGroupingConstants", "Restangular", "api_bpm_schedule", "api_bpm_data","api_doc_data","api_user_data","api_wechatfile","FileUploader","api_bpm_domain","$http","$stateParams", function($rootScope, $scope, $state, $timeout, $interval, $modal, SweetAlert, i18nService, uiGridConstants, uiGridGroupingConstants, Restangular, api_bpm_schedule, api_bpm_data,api_doc_data,api_user_data,api_wechatfile,FileUploader,api_bpm_domain,$http,$stateParams) {
  6. $scope.langs = i18nService.getAllLangs();
  7. $scope.lang = 'zh-cn';
  8. i18nService.setCurrentLang($scope.lang);
  9. var loginUser = $rootScope.user;
  10. $scope.personListData={};//责任人下拉框列表数据
  11. $scope.personData={};//责任人下拉数据
  12. $scope.stateData={};//状态下拉数据
  13. $scope.stateListData2={};//状态下拉框列表数据
  14. //ui-grid设置
  15. $scope.gridOptions = {};
  16. $scope.gridOptions.data = 'myData';
  17. $scope.gridOptions.enableColumnResizing = true;
  18. $scope.gridOptions.enableFiltering = true;
  19. $scope.gridOptions.enableGridMenu = false;
  20. $scope.gridOptions.enableSelectAll = false;
  21. $scope.gridOptions.enableRowSelection = true;
  22. $scope.gridOptions.showGridFooter = true;
  23. $scope.gridOptions.showColumnFooter = false;
  24. $scope.gridOptions.fastWatch = true;
  25. $scope.gridOptions.useExternalFiltering = true;
  26. $scope.gridOptions.useExternalPagination = true;
  27. $scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
  28. $scope.gridOptions.paginationPageSize = 10;
  29. $scope.gridOptions.multiSelect = true;
  30. // $scope.gridOptions.rowTemplate = '<div style="background: red"><a>123</a></div';
  31. // $scope.gridOptions.rowTemplate = "<div ng-dblclick=\"grid.appScope.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>";
  32. $scope.gridOptions.rowIdentity = function(row) {
  33. return row.id;
  34. };
  35. $scope.gridOptions.getRowIdentity = function(row) {
  36. return row.id;
  37. };
  38. $scope.transferColor = function(item) {
  39. var color = "icon iconfont icon-zhengchang greenfont";
  40. if (item && item.colourInfo) {
  41. if (item.colourInfo.id == 1) {
  42. color = "icon iconfont icon-yiyuqi redfont";
  43. } else if (item.colourInfo.id == 2) {
  44. color = "iconfont icon-yuqixinxiu yellofont";
  45. }
  46. } else {
  47. // color = "white";
  48. }
  49. return color;
  50. }
  51. $scope.transfertip = function(item) {
  52. var tip = "正常";
  53. if (item && item.colourInfo) {
  54. if (item.colourInfo.id == 1) {
  55. tip = "逾期";
  56. } else if (item.colourInfo.id == 2) {
  57. tip = "即将逾期";
  58. }
  59. } else {
  60. // color = "white";
  61. }
  62. return tip;
  63. }
  64. $scope.gridOptions.columnDefs = [
  65. {
  66. name: 'item',
  67. displayName: '序号',
  68. width: '5%',
  69. cellTemplate: '<div>' +
  70. '<div class="ui-grid-cell-contents">{{row.entity.item}}</div>' +
  71. '</div>',
  72. enableFiltering: false
  73. },
  74. {
  75. name: 'taskDescribe',
  76. displayName: '任务描述',
  77. width: '25%',
  78. enableFiltering: false
  79. },
  80. {
  81. name: 'assign.name',
  82. displayName: '责任人',
  83. width: '10%',
  84. enableFiltering: false
  85. },
  86. {
  87. name: 'startTime',
  88. displayName: '开始时间',
  89. width: '15%',
  90. enableFiltering: false,
  91. cellTemplate: '<div>' +
  92. '<div class="ui-grid-cell-contents">{{row.entity.startTime}}</div>' +
  93. '</div>',
  94. },
  95. {
  96. name: 'endTime',
  97. displayName: '结束时间',
  98. width: '15%',
  99. enableFiltering: false
  100. },
  101. {
  102. name: 'priority.name',
  103. displayName: '优先级',
  104. width: '6%',
  105. enableFiltering: false
  106. },
  107. {
  108. name: 'state.name',
  109. displayName: '状态',
  110. width: '6%',
  111. enableFiltering: false
  112. },
  113. {
  114. name: 'strUpdateTime3',
  115. displayName: '操作',
  116. enableFiltering: false,
  117. cellTemplate: '<div class="cl-effect-1 ui-grid-cell-contents pull-left">' +
  118. '<a ng-click="grid.appScope.edit(row.entity)" tooltip="处理" tooltip-placement="right" ng-show="row.entity.state.id==grid.appScope.stateListData2[2]">处理</a>' +
  119. '<a ng-click="grid.appScope.see(row.entity)" tooltip="查看" tooltip-placement="right" class="bianjifont" ng-show="row.entity.state.id==grid.appScope.stateListData2[3]">查看</a>' +
  120. '</div>'
  121. },
  122. ];
  123. // 查看
  124. $scope.see=function(data){
  125. var toData={
  126. model:{taskSub:data}
  127. }
  128. $state.go('app.task.editTask',{"formKey":"taskListSee","model":JSON.stringify(toData)})
  129. }
  130. // 处理
  131. $scope.edit=function(data){
  132. var toData={
  133. model:{taskSub:data}
  134. }
  135. console.log(toData);
  136. $state.go('app.task.editTask',{"formKey":"taskListHandle","model":JSON.stringify(toData)})
  137. }
  138. $scope.selected = {
  139. items: []
  140. }
  141. $scope.editted = {
  142. items: []
  143. }
  144. //grid控制器
  145. $scope.gridOptions.onRegisterApi = function(gridApi) {
  146. //分页控制
  147. gridApi.pagination.on.paginationChanged($scope, function(newPage, pageSize) {
  148. var filterData = JSON.parse(sessionStorage.inspectListParameter);
  149. $scope.jry_filterdata.idx = newPage - 1;
  150. $scope.jry_filterdata.sum = pageSize;
  151. $scope.refreshData('expand-right', $scope.jry_filterdata);
  152. });
  153. }
  154. $scope.jry_filterdata={
  155. 'idx':0,
  156. 'sum':10,
  157. 'taskSub':{
  158. 'userid':loginUser.id,
  159. 'type':1,
  160. 'role':loginUser.role
  161. }
  162. }
  163. // 状态下拉框数据
  164. // $scope.getStateData=function(){
  165. // var data={
  166. // "key":'task_sub_state',
  167. // "type":'list'
  168. // }
  169. // api_wechatfile.getDictionary(data).then(function(res){
  170. // $scope.stateListData=res.splice(1)
  171. // })
  172. // }
  173. // $scope.getStateData();
  174. // 获取状态-lmm
  175. $scope.stateListData = {};
  176. $scope.getStateData=function(){//lyl
  177. var data={
  178. "key":'task_sub_state',
  179. "type":'list'
  180. }
  181. api_wechatfile.getDictionary(data).then(function(res){
  182. angular.forEach(res,function(v,i){
  183. $scope.stateListData2[v.value] = v.id;
  184. })
  185. $scope.stateListData=res.splice(1);
  186. })
  187. }
  188. $scope.getStateData();
  189. // 责任人下拉框数据
  190. $scope.getPersonData=function(){
  191. var data={
  192. "idx":0,
  193. "sum":1000,
  194. user: {
  195. engineer: 1,
  196. }
  197. }
  198. api_user_data.fetchDataList("user",data).then(function(res){
  199. $scope.personListData=res.list;
  200. })
  201. }
  202. $scope.getPersonData();
  203. // 搜索
  204. $scope.search=function(){
  205. if($scope.personData.data){
  206. $scope.jry_filterdata.taskSub['assign']={id:$scope.personData.data.id}
  207. }
  208. if($scope.stateData.data){
  209. $scope.jry_filterdata.taskSub['state']={id:$scope.stateData.data.id}
  210. }
  211. if($scope.jry_filterdata.taskSub.strStartTime){
  212. $scope.jry_filterdata.taskSub.strStartTime = moment(new Date($scope.jry_filterdata.taskSub.strStartTime).getTime()).format('YYYY-MM-DD HH:mm:ss');
  213. }
  214. if($scope.jry_filterdata.taskSub.strEndTime){
  215. $scope.jry_filterdata.taskSub.strEndTime = moment(new Date($scope.jry_filterdata.taskSub.strEndTime).getTime()).format('YYYY-MM-DD HH:mm:ss');
  216. }
  217. $scope.refreshData('expand-right', $scope.jry_filterdata);
  218. }
  219. //重置
  220. $scope.clean=function(){
  221. delete $scope.jry_filterdata.taskSub.assign;
  222. delete $scope.jry_filterdata.taskSub.state;
  223. delete $scope.jry_filterdata.taskSub.strStartTime;
  224. delete $scope.jry_filterdata.taskSub.strEndTime;
  225. $scope.personData={};
  226. $scope.stateData={};
  227. $scope.refreshData('expand-right', $scope.jry_filterdata);
  228. }
  229. //时间控件
  230. $scope.open = function ($event) {
  231. $event.preventDefault();
  232. $event.stopPropagation();
  233. $scope.opened = !$scope.opened;
  234. };
  235. $scope.endOpen = function ($event) {
  236. $event.preventDefault();
  237. $event.stopPropagation();
  238. $scope.startOpened = false;
  239. $scope.endOpened = !$scope.endOpened;
  240. };
  241. $scope.startOpen = function ($event) {
  242. $event.preventDefault();
  243. $event.stopPropagation();
  244. $scope.endOpened = false;
  245. $scope.startOpened = !$scope.startOpened;
  246. };
  247. $scope.ldloading = {};
  248. $scope.refreshData = function(style, filterData) {
  249. $scope.ldloading[style.replace('-', '_')] = true;
  250. if (angular.isUndefined(filterData)) {
  251. filterData = defaultFilterData;
  252. }
  253. $scope.myData = [];
  254. var liableName=[];
  255. $scope.memoryfilterData = filterData;
  256. api_doc_data.fetchDataList('taskSub',filterData).then(function(data) {
  257. console.log(data);//lmm
  258. var myData = Restangular.stripRestangular(data);
  259. $scope.gridOptions.totalItems = myData.totalNum;
  260. if (angular.isArray(myData.list)) {
  261. $scope.myData = myData.list;
  262. for (var i = 0; i < $scope.myData.length; i++) {
  263. //添加序号
  264. $scope.myData[i]['item'] = i + 1 + filterData.idx * filterData.sum;
  265. $scope.myData[i].startTime=moment($scope.myData[i].startTime).format('YYYY-MM-DD HH:mm:ss');
  266. $scope.myData[i].endTime=moment($scope.myData[i].endTime).format('YYYY-MM-DD HH:mm:ss');
  267. liableName=[];
  268. }
  269. console.log($scope.myData);
  270. $scope.ldloading[style.replace('-', '_')] = false;
  271. }
  272. else {
  273. $scope.ldloading[style.replace('-', '_')] = false;
  274. SweetAlert.swal({
  275. title: "数据为空",
  276. text: myData.data,
  277. type: "warning"
  278. });
  279. }
  280. }, function() {
  281. $scope.ldloading[style.replace('-', '_')] = false;
  282. });
  283. };
  284. $scope.refreshData('expand-right', $scope.jry_filterdata);
  285. }]);