chartCtrl.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. 'use strict';
  2. app.controller('chartCtrl', ["$scope", "i18nService", "$rootScope", "$state", "$timeout", "$interval", "$modal", "SweetAlert", "uiGridConstants", "uiGridGroupingConstants", "Restangular", "api_bpm_data", "api_text", "api_user_data", function($scope, i18nService, $rootScope, $state, $timeout, $interval, $modal, SweetAlert, uiGridConstants, uiGridGroupingConstants, Restangular, api_bpm_data, api_text, api_user_data) {
  3. $scope.langs = i18nService.getAllLangs();
  4. $scope.lang = 'zh-cn';
  5. i18nService.setCurrentLang($scope.lang);
  6. // $(window).resize(function() {
  7. // // console.log("1111")
  8. // });
  9. var loginUser = $rootScope.user;
  10. // var voiceurl=$rootScope.audioiIp;
  11. // delete $rootScope.user.authority;
  12. var pdKey = $state.current.pdKey;
  13. $scope.gridOptions = {};
  14. $scope.gridOptions.data = 'myData';
  15. $scope.gridOptions.enableColumnResizing = true;
  16. $scope.gridOptions.enableFiltering = false;
  17. $scope.gridOptions.enableGridMenu = false;
  18. $scope.gridOptions.enableRowSelection = true;
  19. $scope.gridOptions.showGridFooter = true;
  20. $scope.gridOptions.showColumnFooter = false;
  21. $scope.gridOptions.fastWatch = true;
  22. // $scope.gridOptions.useExternalFiltering=true;
  23. $scope.gridOptions.useExternalPagination = true;
  24. $scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
  25. $scope.gridOptions.paginationPageSize = 10;
  26. $scope.gridOptions.multiSelect = true;
  27. var mun = $scope.gridOptions.paginationPageSize;
  28. $scope.gridOptions.rowTemplate = "<div ng-click=\"lookFunction(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>";
  29. $scope.gridOptions.rowIdentity = function(row) {
  30. return row.id;
  31. };
  32. $scope.gridOptions.getRowIdentity = function(row) {
  33. return row.id;
  34. };
  35. $scope.gridOptions.columnDefs = [{
  36. name: 'item',
  37. displayName: '序号',
  38. width: 50,
  39. cellTemplate: '<div>' +
  40. '<div class="ui-grid-cell-contents">{{row.entity.item}}</div>' +
  41. '</div>'
  42. }, {
  43. name: 'incidentDescription',
  44. displayName: '事件描述',
  45. width: '12%',
  46. cellTemplate: '<div>' +
  47. '<div class="ui-grid-cell-contents" style="cursor:pointer;text-align:center" >{{row.entity.incidentDescription}}</div>' +
  48. '</div>'
  49. },
  50. // {
  51. // name: 'incidentDescription1',
  52. // displayName: '报修科室',
  53. // width: '12%',
  54. // cellTemplate: '<div>' +
  55. // '<div class="ui-grid-cell-contents" style="cursor:pointer;text-align:center" >{{row.entity.incidentDescription1}}</div>' +
  56. // '</div>'
  57. // },
  58. {
  59. name: 'address',
  60. displayName: '地点',
  61. width: '10%',
  62. cellTemplate: '<div>' +
  63. '<div class="ui-grid-cell-contents" style="cursor:pointer;text-align:center" >{{row.entity.place.place||""}} {{row.entity.address}}</div>' +
  64. '</div>'
  65. }, {
  66. name: 'contacts',
  67. displayName: '联系人',
  68. width: '10%',
  69. cellTemplate: '<div>' +
  70. '<div class="ui-grid-cell-contents" style="cursor:pointer;text-align:center" >{{row.entity.contacts}}</div>' +
  71. '</div>'
  72. }, , {
  73. name: 'contactsInformation',
  74. displayName: '联系电话',
  75. width: '10%',
  76. cellTemplate: '<div>' +
  77. '<div class="ui-grid-cell-contents" style="cursor:pointer;text-align:center" >{{row.entity.contactsInformation}}</div>' +
  78. '</div>'
  79. },
  80. // {
  81. // name: 'requester.name',
  82. // displayName: '报修人',
  83. // width: '10%',
  84. // cellTemplate: '<div>' +
  85. // '<div class="ui-grid-cell-contents" style="cursor:pointer;text-align:center" >{{row.entity.requester.name}}</div>' +
  86. // '</div>'
  87. // },
  88. {
  89. name: 'state',
  90. displayName: '状态',
  91. width: '8%',
  92. cellTemplate: '<div>' +
  93. '<div class="ui-grid-cell-contents" style="cursor:pointer;text-align:center" >{{row.entity.state}}</div>' +
  94. '</div>'
  95. }, {
  96. name: 'createTime',
  97. displayName: '创建时间',
  98. width: '12%',
  99. cellTemplate: '<div>' +
  100. '<div class="ui-grid-cell-contents" style="cursor:pointer;text-align:center" >{{row.entity.createTime}}</div>' +
  101. '</div>'
  102. // },
  103. // {
  104. // name: '生成事件',
  105. // width: 80,
  106. // cellTemplate: '<div class="links cl-effect-1">' +
  107. // '<a ng-click="grid.appScope.selectRowFunction(row.entity)" tooltip="新建事件" tooltip-placement="left"><i class="fa fa-pencil-square-o"></i></a>' +
  108. // '</div>'
  109. },
  110. { name: '操作', cellTemplate: '<wechatoperator item="row.entity" colobject="col">', enableFiltering: false }
  111. ];
  112. $scope.value = 10;
  113. $scope.decrement = function() {
  114. $scope.value = $scope.value - 1;
  115. };
  116. $scope.searchstate = '未转换';
  117. $scope.searchkeys = {};
  118. $scope.onChange = function(searchType) {
  119. $scope.searchstate = searchType;
  120. defaultFilterData = $scope.memoryfilterData;
  121. defaultFilterData.wxincident['state'] = searchType;
  122. // sessionStorage.searchchart.state = searchType;
  123. $scope.refreshData('expand-right', defaultFilterData);
  124. }
  125. $scope.record = function() {
  126. api_text.record($rootScope.takes).then(function(data) {
  127. if (data.errno == 0) {
  128. $scope.busy = false;
  129. }
  130. })
  131. };
  132. $scope.parameters = null;
  133. $scope.open = function($event) {
  134. $event.preventDefault();
  135. $event.stopPropagation();
  136. $scope.opened = !$scope.opened;
  137. };
  138. $scope.endOpen = function($event) {
  139. $event.preventDefault();
  140. $event.stopPropagation();
  141. $scope.startOpened = false;
  142. $scope.endOpened = !$scope.endOpened;
  143. };
  144. $scope.startOpen = function($event) {
  145. $event.preventDefault();
  146. $event.stopPropagation();
  147. $scope.endOpened = false;
  148. $scope.startOpened = !$scope.startOpened;
  149. };
  150. var getUser = function(fieldatas) {
  151. api_user_data.fetchDataList('requester', fieldatas).then(function(data) {
  152. $scope.requester = data.list;
  153. });
  154. }
  155. $scope.onChangehandling = function(key) {
  156. var filuser = {
  157. "idx": 0,
  158. "sum": 10,
  159. "requester": { "name": key }
  160. }
  161. getUser(filuser);
  162. }
  163. getUser({ "idx": 0, "sum": 10 });
  164. $scope.chiceIncident = function(item) {
  165. var fildata = {};
  166. if (sessionStorage.searchincident) {
  167. fildata = JSON.parse(sessionStorage.getItem("searchchart"));
  168. $scope.gridOptions.paginationCurrentPage = 1;
  169. fildata.idx = 0;
  170. } else {
  171. fildata = defaultFilterData;
  172. }
  173. if (!fildata.incident) {
  174. fildata['wxincident'] = {};
  175. }
  176. if (item.createTime) {
  177. item.createTime = moment(item.createTime).format('YYYY-MM-DD HH:mm:ss');
  178. }
  179. if (item.createTimeEnd) {
  180. item.createTimeEnd = moment(new Date(item.createTimeEnd).getTime() + 86399999).format('YYYY-MM-DD HH:mm:ss');
  181. }
  182. angular.extend(fildata.wxincident, item)
  183. sessionStorage['searchchart'] = angular.copy(JSON.stringify(fildata));
  184. $scope.memoryfilterData = fildata;
  185. $scope.refreshData('expand-right', fildata);
  186. }
  187. $scope.gridOptions.onRegisterApi = function(gridApi) {
  188. $scope.gridApi = gridApi;
  189. gridApi.pagination.on.paginationChanged($scope, function(newPage, pageSize) {
  190. var filtersData = $scope.memoryfilterData;
  191. filtersData.idx = newPage - 1;
  192. filtersData.sum = pageSize;
  193. if (JSON.parse(sessionStorage.getItem("searchchart")).idx != filtersData.idx) {
  194. $scope.refreshData('expand-right', filtersData);
  195. }
  196. // $scope.refreshData('expand-right', filtersData);
  197. });
  198. $scope.selected = {
  199. items: []
  200. }
  201. };
  202. $scope.memoryfilterData = defaultFilterData = {
  203. // "assignee":$rootScope.user.id,
  204. // "candidateGroups":$rootScope.user.group[0].id,
  205. "idx": 0,
  206. "wxincident": { "state": "未转换" },
  207. "sum": mun
  208. };
  209. $scope.selectRowFunction = function(data) {
  210. var formdata = {
  211. 'model': {
  212. 'incident': {
  213. 'requester': data.requester,
  214. 'area': data.area,
  215. 'place': data.place,
  216. 'houseNumber': data.address,
  217. 'contacts': data.contacts,
  218. 'contactsInformation': data.contactsInformation,
  219. // 'category': data.wxIncidentClassifyDTO.category,
  220. 'description': data.incidentDescription,
  221. 'source': { 'id': 4 },
  222. 'sourceType': data.sourceType,
  223. 'fileUrl': data.fileUrl
  224. },
  225. 'requestershow': data.requester,
  226. 'flow': data.id
  227. }
  228. }
  229. // if (data.requester.requesterTypeDTO && data.requester.requesterTypeDTO.id == 2) {
  230. // angular.extend(formdata.model.incident, { 'priority': { 'id': 2 } });
  231. // }
  232. $state.go('app.incident.chart', { 'model': JSON.stringify(formdata) });
  233. };
  234. $scope.lookFunction = function(data) {
  235. // var data = row.entity;
  236. var formdata = {
  237. 'model': {
  238. 'incident': {
  239. 'requester': data.requester,
  240. 'area': data.area,
  241. 'place': data.place,
  242. 'houseNumber': data.address,
  243. 'contacts': data.contacts,
  244. 'contactsInformation': data.contactsInformation,
  245. // 'category': data.wxIncidentClassifyDTO.category,
  246. 'description': data.incidentDescription,
  247. 'source': { 'id': 4 },
  248. 'sourceType': data.sourceType,
  249. 'fileUrl': data.fileUrl
  250. },
  251. 'requestershow': data.requester,
  252. 'flow': data.id
  253. }
  254. }
  255. var modelfile = { model: { incident: data } };
  256. // if (data.state == "未转换") {
  257. angular.extend(modelfile.model, { 'gourl': 'app.incident.chart', 'state_model': formdata })
  258. angular.extend(modelfile.model.incident, { status: 1 })
  259. // } else {
  260. // angular.extend(modelfile.model.incident, { status: 0 })
  261. // }
  262. $state.go('app.desk.form_editor', { formKey: 'desk_detail', service: 'api_user_data', model: JSON.stringify(modelfile) });
  263. };
  264. // $scope.followFunction = function(data){
  265. // //console.log('data='+JSON.stringify(data));
  266. // $state.go('app.detail', { formKey:'statusform', pdKey:'incident', dataId: data.id,processInstanceId: data.processInstanceId});
  267. // };
  268. $scope.onDblClick = function(row) {
  269. var data = row.entity;
  270. var formdata = {
  271. 'model': {
  272. 'incident': {
  273. 'requester': data.requester,
  274. 'area': data.area,
  275. 'place': data.place,
  276. 'houseNumber': data.address,
  277. 'contacts': data.contacts,
  278. 'contactsInformation': data.contactsInformation,
  279. // 'category': data.wxIncidentClassifyDTO.category,
  280. 'description': data.incidentDescription,
  281. 'source': { 'id': 4 },
  282. 'sourceType': data.sourceType,
  283. 'fileUrl': data.fileUrl
  284. },
  285. 'requestershow': data.requester,
  286. 'flow': data.id
  287. }
  288. }
  289. var modelfile = { model: { incident: row.entity } };
  290. if (row.entity.state == "未转换") {
  291. angular.extend(modelfile.model, { 'gourl': 'app.incident.chart', 'state_model': formdata })
  292. angular.extend(modelfile.model.incident, { status: 1 })
  293. } else {
  294. angular.extend(modelfile.model.incident, { status: 0 })
  295. }
  296. $state.go('app.desk.form_editor', { formKey: 'desk_detail', service: 'api_user_data', model: JSON.stringify(modelfile) });
  297. };
  298. var defaultFilterData = {
  299. // "assignee":$rootScope.user.id,
  300. // "candidateGroups":$rootScope.user.group[0].id,
  301. "idx": 0,
  302. "wxincident": { "state": "未转换" },
  303. "sum": mun
  304. };
  305. $scope.ldloading = {};
  306. $scope.refreshData = function(style, filterData) {
  307. $scope.ldloading[style.replace('-', '_')] = true;
  308. // if (angular.isUndefined(filterData)) {
  309. // filterData = defaultFilterData;
  310. // }
  311. if (angular.isUndefined(filterData)) {
  312. if (sessionStorage.searchchart) {
  313. filterData = JSON.parse(sessionStorage.getItem("searchchart"));
  314. $scope.searchkeys = filterData.wxincident;
  315. // $scope.searchstate = filterData.state;
  316. $scope.gridOptions.paginationCurrentPage = 1 + filterData.idx;
  317. $scope.searchstate = filterData.wxincident.searchType;
  318. } else {
  319. filterData = defaultFilterData;
  320. }
  321. }
  322. $scope.myData = [];
  323. $scope.gridOptions['sum'] = filterData.sum;
  324. sessionStorage['searchchart'] = angular.copy(JSON.stringify(filterData));
  325. api_bpm_data.fetchDataList("wxincident", filterData).then(function(data) {
  326. var myData = Restangular.stripRestangular(data);
  327. $scope.gridOptions['totalItems'] = myData.totalNum;
  328. $scope.myData = myData.list;
  329. for (var i = 0; i < $scope.myData.length; i++) {
  330. $scope.myData[i]['item'] = i + 1 + filterData.idx * filterData.sum
  331. }
  332. // console.log($scope.myData)
  333. $scope.ldloading[style.replace('-', '_')] = false;
  334. }, function() {
  335. $scope.ldloading[style.replace('-', '_')] = false;
  336. });
  337. };
  338. $scope.refreshData('expand-right');
  339. }]);
  340. app.controller('Wechatoperator', ['$rootScope', '$http', '$scope', '$modal', function($rootScope, $http, $scope, $modal) {
  341. $scope.handle = false;
  342. if ($scope.item.state == "未转换") {
  343. $scope.handle = true;
  344. } else { $scope.handle = false; }
  345. $scope.edit = function() {
  346. $scope.colobject.grid.appScope.selectRowFunction($scope.item);
  347. $scope.doEdit($scope.item.id);
  348. }
  349. $scope.look = function() {
  350. $scope.colobject.grid.appScope.lookFunction($scope.item);
  351. $scope.doEdit($scope.item.id);
  352. }
  353. }]);
  354. app.directive('wechatoperator', function() {
  355. return {
  356. restrict: 'E',
  357. scope: {
  358. item: '=',
  359. colobject: '='
  360. },
  361. controller: 'Wechatoperator',
  362. template: '<div class="links cl-effect-1 ui-grid-cell-contents pull-left" >' +
  363. // '<a ng-click="edit()" ng-show="{{handle}}" tooltip="生成事件" tooltip-placement="left"><i class="icon iconfont icon-bianji bianjifont"></i></a>' +
  364. '<a ng-click="edit()" class="bianjifont">生成事件</a>' +
  365. // '<a ng-click="look()" ng-show="{{handle}}" class="bianjifont">查看</a>' +
  366. '<a ng-click="look()" class="bianjifont">查看</a>' +
  367. // '<a ng-click="look()" ng-show="{{handle}}" tooltip="查看" tooltip-placement="right"><i class="ti-eye"></i></a>' +
  368. '</div>'
  369. };
  370. });
  371. // app.factory('myFactory', function() {
  372. // //定义factory返回对象
  373. // var myServices = {};
  374. // //定义参数对象
  375. // var myObject = {};
  376. // var _set = function(data) {
  377. // myObject = data;
  378. // };
  379. // })