inspectListCtrl.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839
  1. "use strict";
  2. /**
  3. * controller for User Profile Example
  4. */
  5. app.controller("inspectListCtrl", [
  6. "$rootScope",
  7. "$scope",
  8. "$state",
  9. "$timeout",
  10. "$interval",
  11. "$modal",
  12. "SweetAlert",
  13. "i18nService",
  14. "uiGridConstants",
  15. "uiGridGroupingConstants",
  16. "Restangular",
  17. "api_bpm_schedule",
  18. "api_bpm_data",
  19. "api_configure_data",
  20. "api_bpm",
  21. "api_user_data",
  22. function (
  23. $rootScope,
  24. $scope,
  25. $state,
  26. $timeout,
  27. $interval,
  28. $modal,
  29. SweetAlert,
  30. i18nService,
  31. uiGridConstants,
  32. uiGridGroupingConstants,
  33. Restangular,
  34. api_bpm_schedule,
  35. api_bpm_data,
  36. api_configure_data,
  37. api_bpm,
  38. api_user_data
  39. ) {
  40. $scope.langs = i18nService.getAllLangs();
  41. $scope.lang = "zh-cn";
  42. i18nService.setCurrentLang($scope.lang);
  43. var loginUser = $rootScope.user;
  44. $scope.chuli = false;
  45. $scope.assign = false;
  46. for (var i = 0; i < loginUser.menu.length; i++) {
  47. if (loginUser.menu[i].link == "xunjianliebiao_chuli") {
  48. $scope.chuli = true;
  49. }
  50. if (loginUser.menu[i].link == "xunjianliebiao_assign") {
  51. $scope.assign = true;
  52. }
  53. }
  54. var defaultFilterData = {
  55. assignee: loginUser.id,
  56. // "assignee": "1",
  57. idx: 0,
  58. sum: 10,
  59. status: "",
  60. searchType: "todo",
  61. };
  62. var inspectListParameter = {
  63. assignee: loginUser.id,
  64. // "assignee": "1",
  65. idx: 0,
  66. sum: 10,
  67. status: "",
  68. };
  69. // $scope.memoryfilterData = {
  70. // "idx": 0,
  71. // "sum": 10
  72. // }
  73. //本地存储
  74. sessionStorage.inspectListParameter = JSON.stringify(inspectListParameter);
  75. //ui-grid设置
  76. $scope.gridOptions = {};
  77. $scope.gridOptions.data = "myData";
  78. $scope.gridOptions.enableColumnResizing = true;
  79. $scope.gridOptions.enableFiltering = true;
  80. $scope.gridOptions.enableGridMenu = true;
  81. $scope.gridOptions.enableRowSelection = true;
  82. $scope.gridOptions.showGridFooter = true;
  83. $scope.gridOptions.showColumnFooter = false;
  84. $scope.gridOptions.fastWatch = true;
  85. $scope.gridOptions.useExternalFiltering = true;
  86. $scope.gridOptions.useExternalPagination = true;
  87. $scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
  88. $scope.gridOptions.paginationPageSize = 10;
  89. $scope.gridOptions.multiSelect = true;
  90. // $scope.gridOptions.rowTemplate = '<div style="background: red"><a>123</a></div';
  91. // $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>";
  92. $scope.gridOptions.rowIdentity = function (row) {
  93. return row.id;
  94. };
  95. $scope.gridOptions.getRowIdentity = function (row) {
  96. return row.id;
  97. };
  98. //执行中的巡检才能批量派单
  99. $scope.gridOptions.isRowSelectable = function (row,i) {
  100. // console.log(row,row.uid,document);
  101. if (row.entity.state == 0) {
  102. return true;
  103. } else {
  104. return false;
  105. }
  106. };
  107. $scope.transferColor = function (item) {
  108. var color = "icon iconfont icon-zhengchang greenfont";
  109. if (item && item.colourInfo) {
  110. if (item.colourInfo.id == 1) {
  111. color = "icon iconfont icon-yiyuqi redfont";
  112. } else if (item.colourInfo.id == 2) {
  113. color = "iconfont icon-yuqixinxiu yellofont";
  114. }
  115. } else {
  116. // color = "white";
  117. }
  118. return color;
  119. };
  120. $scope.transfertip = function (item) {
  121. var tip = "正常";
  122. if (item && item.colourInfo) {
  123. if (item.colourInfo.id == 1) {
  124. tip = "逾期";
  125. } else if (item.colourInfo.id == 2) {
  126. tip = "即将逾期";
  127. }
  128. } else {
  129. // color = "white";
  130. }
  131. return tip;
  132. };
  133. $scope.gridOptions.columnDefs = [
  134. {
  135. name: "id",
  136. displayName: "",
  137. width: 40,
  138. enableFiltering: false,
  139. cellTemplate:
  140. "<div>" +
  141. '<div class="ui-grid-cell-contents" tooltip={{grid.appScope.transfertip(row.entity.ruleColour)}} tooltip-placement="right"><i style="font-size: 18px !important;" class="{{grid.appScope.transferColor(row.entity.ruleColour)}}"></i></div></div>',
  142. },
  143. {
  144. name: "sign",
  145. displayName: "单号",
  146. width: "12%",
  147. minWidth: 120,
  148. enableFiltering: false,
  149. },
  150. {
  151. name: "inspectionType.type",
  152. displayName: "巡检分类",
  153. width: "12%",
  154. minWidth: 120,
  155. enableFiltering: false,
  156. },
  157. {
  158. name: "inspection.title",
  159. displayName: "计划主题",
  160. width: "12%",
  161. minWidth: 120,
  162. enableFiltering: false,
  163. },
  164. {
  165. name: "inspection.createUser.name",
  166. displayName: "创建人",
  167. width: "8%",
  168. minWidth: 80,
  169. enableFiltering: false,
  170. },
  171. {
  172. name: "stateName",
  173. displayName: "状态",
  174. width: "8%",
  175. minWidth: 80,
  176. enableFiltering: false,
  177. },
  178. {
  179. name: "processUser.name",
  180. displayName: "处理人",
  181. width: "8%",
  182. minWidth: 80,
  183. enableFiltering: false,
  184. },
  185. {
  186. name: "startDate",
  187. displayName: "开始时间",
  188. width: "15%",
  189. minWidth: 160,
  190. enableFiltering: false,
  191. cellTemplate:
  192. "<div>" +
  193. '<div class="ui-grid-cell-contents">{{grid.appScope.transferTime(row.entity.startDate)}}</div>' +
  194. "</div>",
  195. },
  196. {
  197. name: "overdueTime",
  198. displayName: "逾期时间",
  199. width: "15%",
  200. width: 160,
  201. enableFiltering: false,
  202. cellTemplate:
  203. "<div>" +
  204. '<div class="ui-grid-cell-contents">{{grid.appScope.transferTime(row.entity.overdueTime)}}</div>' +
  205. "</div>",
  206. },
  207. {
  208. name: "操作",
  209. minWidth: "150",
  210. enableFiltering: false,
  211. cellTemplate:
  212. '<div class="cl-effect-1 ui-grid-cell-contents pull-left">' +
  213. '<a ng-click="grid.appScope.lookFunction(row.entity)" tooltip="查看" tooltip-placement="right" class="bianjifont">查看</a>' +
  214. '<a ng-show="{{grid.appScope.showChuli(row.entity)&&grid.appScope.chuli}}" ng-click="grid.appScope.selectRowFunction(row.entity)" class="bianjifont">处理</a>' +
  215. // '<a ng-show="{{!row.entity.state==1}}" ng-click="grid.appScope.selectRowFunction(row.entity)" tooltip="编辑" tooltip-placement="left"><i class="fa fa-pencil-square-o"/></a>' +
  216. "</div>",
  217. },
  218. ];
  219. // $scope.addData = function() {
  220. // $state.go('app.inspection.inspectList.editor', {
  221. // formKey: 'inspectionform',
  222. // service: 'api_bpm_data'
  223. // });
  224. // }
  225. $scope.transferTime = function (time) {
  226. return moment(time).format("YYYY-MM-DD HH:mm");
  227. };
  228. $scope.showChuli = function (data) {
  229. if (data.processUser.id == loginUser.id && data.stateName == "执行中") {
  230. return true;
  231. } else {
  232. return false;
  233. }
  234. };
  235. $scope.selectRowFunction = function (data) {
  236. var filedata = {
  237. model: {
  238. inspectionProcessActual: data,
  239. },
  240. };
  241. $state.go("app.inspection.inspectListEditor", {
  242. taskId: data.taskId,
  243. dataId: data.id,
  244. processInstanceId: data.processInstanceId,
  245. pdKey: data.processKey,
  246. formUiEdit: data.inspectionType.formUiEdit,
  247. // "formUiName": data.inspection.inspectionTypeDTO.formUiName,
  248. model: JSON.stringify(filedata),
  249. });
  250. };
  251. $scope.lookFunction = function (data) {
  252. var filedata = {
  253. model: {
  254. inspectionProcessActual: data,
  255. },
  256. // model:data
  257. };
  258. $state.go("app.inspection.inspectListdetail", {
  259. formKey: data.inspectionType.formUiName,
  260. dataId: data.id,
  261. taskId: data.taskId,
  262. processInstanceId: data.processInstanceId,
  263. pdKey: data.processKey,
  264. // "formUiEdit": data.inspection.inspectionTypeDTO.formUiEdit,
  265. formUiName: data.inspectionType.formUiName,
  266. model: JSON.stringify(filedata),
  267. });
  268. };
  269. $scope.model = {
  270. assignee: JSON.parse(sessionStorage.inspectListParameter).assignee,
  271. idx: 0,
  272. sum: 10,
  273. searchType: "todo",
  274. inspectionProcessActual: {
  275. inspection: {},
  276. },
  277. };
  278. // $scope.removeData = function() {
  279. // // var rmvList = [$scope.selected.items.id]
  280. // var rmvList = [];
  281. // angular.forEach($scope.selected.items, function(item) {
  282. // rmvList.push(item.id);
  283. // });
  284. // if (rmvList.length > 0) {
  285. // api_bpm_data.rmvData('inspection', rmvList).then(function(response) {
  286. // if (response.status == 200) {
  287. // SweetAlert.swal({
  288. // title: "删除成功!",
  289. // type: "success",
  290. // confirmButtonColor: "#007AFF"
  291. // }, function() {
  292. // $scope.myData = _.reject($scope.myData, function(o) { return _.includes(rmvList, o.id); });
  293. // $scope.selected = {
  294. // items: []
  295. // };
  296. // });
  297. // } else {
  298. // SweetAlert.swal({
  299. // title: "操作异常!",
  300. // text: "系统异常,请稍后重试,或者联系管理员!",
  301. // type: "error"
  302. // });
  303. // }
  304. // })
  305. // }
  306. // }
  307. //批量派单
  308. $scope.toAssign = function() {
  309. var _$scope = $scope;
  310. console.log($scope.selected.items);
  311. var sendList = [];
  312. angular.forEach($scope.selected.items, function(item) {
  313. sendList.push(item.id);
  314. });
  315. // --------------------------------------------------------
  316. var modalInstance = $modal.open({
  317. templateUrl: 'assets/views/incident/tpl/toAssign.tpl.html',
  318. controller: function ($scope, $modalInstance, api_bpm_domain, modelData, currentUserId, Alert, api_user_data) {
  319. console.log(_$scope.selected.items,loginUser);
  320. //获取组下面的用户
  321. $scope.getUsers = function(groupId){
  322. $scope.user = [];
  323. var postData = {};
  324. if(groupId){
  325. postData = {
  326. "idx": 0,
  327. "sum": 100,
  328. user: {
  329. groupdata:{id:groupId},
  330. roledata: { rolecode: "inspectman" },
  331. selectType: "1",
  332. selectDetails:1
  333. }
  334. }
  335. }else{
  336. postData = {
  337. "idx": 0,
  338. "sum": 100,
  339. user: {
  340. roledata: { rolecode: "inspectman" },
  341. selectType: "1",
  342. selectDetails:1
  343. }
  344. }
  345. }
  346. api_user_data.fetchDataList('user', postData).then(function (data) {
  347. $scope.user = data.list;
  348. })
  349. }
  350. $scope.assignUser = null;
  351. $scope.user = [];
  352. $scope.group = [];
  353. $scope.getUsers();
  354. api_user_data.fetchDataList('group', {
  355. "idx": 0,
  356. "sum": 100,
  357. group: {'selectType':'nouser'}
  358. }).then(function (data) {
  359. $scope.group = data.list;
  360. })
  361. $scope.onChangeRotateUser = function(item){
  362. $scope.assignUser = item.id;
  363. }
  364. $scope.onChangeRotateGroup = function(item){
  365. $scope.assignGroup = item.id;
  366. $scope.getUsers(item.id)
  367. }
  368. $scope.ok = function () {
  369. if (!$scope.assignUser){
  370. Alert.swal({
  371. title: "操作失败",
  372. text: "请选择转派对象信息!",
  373. type: "error"
  374. });
  375. return;
  376. }
  377. api_bpm.assign({ids:sendList.join(),userId:$scope.assignUser}).then(function (response) {
  378. console.log(response)
  379. if (response.status == 200) {
  380. Alert.swal({
  381. title: "操作成功!",
  382. confirmButtonColor: "#007AFF",
  383. type: "success"
  384. });
  385. $modalInstance.close('success');
  386. _$scope.gridApi.selection.clearSelectedRows();
  387. } else {
  388. Alert.swal({
  389. title: "操作失败",
  390. text: "操作失败, 请稍后再试!",
  391. type: "error"
  392. });
  393. }
  394. });
  395. }
  396. $scope.cancel = function () {
  397. $modalInstance.dismiss('cancel');
  398. }
  399. },
  400. size: 'sm',
  401. resolve: {
  402. api_bpm: function () {
  403. return api_bpm;
  404. },
  405. modelData: function () {
  406. return _$scope.selected.items;
  407. },
  408. currentUserId: function () {
  409. return loginUser.id;
  410. },
  411. Alert: function () {
  412. return SweetAlert;
  413. },
  414. api_user_data: function () {
  415. return api_user_data;
  416. }
  417. }
  418. });
  419. modalInstance.result.then(function (selectedItem) {
  420. if (selectedItem == 'success') {
  421. defaultFilterData.assignee = loginUser.id;
  422. $scope.refreshData('expand-right', defaultFilterData);
  423. }
  424. });
  425. return;
  426. // --------------------------------------------------------
  427. }
  428. $scope.selected = {
  429. items: [],
  430. };
  431. $scope.editted = {
  432. items: [],
  433. };
  434. $scope.jry_idx = 0;
  435. $scope.jry_sum = 10;
  436. //分页控制
  437. $scope.gridOptions.onRegisterApi = function (gridApi) {
  438. $scope.gridApi = gridApi;
  439. gridApi.pagination.on.paginationChanged(
  440. $scope,
  441. function (newPage, pageSize) {
  442. console.log("ok");
  443. var filterData = JSON.parse(sessionStorage.inspectListParameter);
  444. filterData.idx = newPage - 1;
  445. filterData.sum = pageSize;
  446. $scope.jry_idx = newPage - 1;
  447. $scope.jry_sum = pageSize;
  448. $scope.model.idx = newPage - 1;
  449. $scope.model.sum = pageSize;
  450. $scope.refreshData("expand-right", $scope.model);
  451. }
  452. );
  453. // 单选
  454. gridApi.selection.on.rowSelectionChanged($scope, function(scope) {
  455. console.log(scope)
  456. if (scope.isSelected) {
  457. scope.grid.appScope.selected.items.push(scope.entity)
  458. } else {
  459. for (var i = 0; i <= scope.grid.appScope.selected.items.length; i++) {
  460. if (scope.grid.appScope.selected.items[i].id == scope.entity.id) {
  461. scope.grid.appScope.selected.items.splice(i, 1);
  462. break;
  463. }
  464. }
  465. }
  466. console.log(scope.grid.appScope.selected.items)
  467. });
  468. // 全选/全不选
  469. gridApi.selection.on.rowSelectionChangedBatch($scope, function(rows) {
  470. console.log(rows)
  471. var selectitem = [];
  472. selectitem = angular.copy($scope.selected.items);
  473. for (var j = 0; j < rows.length; j++) {
  474. if (rows[j].isSelected == true) {
  475. selectitem.push(rows[j].entity);
  476. } else {
  477. delete selectitem[j];
  478. }
  479. }
  480. $scope.selected.items = [];
  481. for (var i = 0; i < selectitem.length; i++) {
  482. if (selectitem[i]) {
  483. $scope.selected.items.push(selectitem[i]);
  484. }
  485. }
  486. console.log($scope.selected.items)
  487. });
  488. };
  489. // var data = JSON.parse(sessionStorage.inspectListParameter);
  490. // sessionStorage.inspectListParameter = JSON.stringify(data);
  491. $scope.ldloading = {};
  492. $scope.statusData = {};
  493. $scope.tData = { title: "", batchNo: "" };
  494. //搜索事件
  495. $scope.searchinspectlist = function (item) {
  496. var filterData = JSON.parse(sessionStorage.inspectListParameter);
  497. // console.log(filterData);
  498. // if (item.type) {
  499. // filterData.inspection = { 'inspectionTypeDTO': { 'id':item.type.id}};
  500. // }
  501. // if (item.title) {
  502. // filterData.inspection = { 'title': item.title};
  503. // }
  504. $scope.model.idx = $scope.jry_idx;
  505. $scope.model.sum = $scope.jry_sum;
  506. if ($scope.model.inspectionProcessActual.inspectionType) {
  507. $scope.model.inspectionProcessActual.inspectionTypeId =
  508. $scope.model.inspectionProcessActual.inspectionType.id;
  509. delete $scope.model.inspectionProcessActual.inspectionType;
  510. }
  511. if ($scope.statusData.state) {
  512. $scope.model.inspectionProcessActual.state =
  513. $scope.statusData.state.state;
  514. }
  515. if ($scope.tData.title) {
  516. if ($scope.model.inspectionProcessActual.inspection) {
  517. $scope.model.inspectionProcessActual.inspection.title =
  518. $scope.tData.title.title;
  519. } else {
  520. $scope.model.inspectionProcessActual.inspection = {
  521. title: $scope.tData.title.title,
  522. };
  523. }
  524. }
  525. if ($scope.tData.batchNo) {
  526. $scope.model.inspectionProcessActual.batchNo = $scope.tData.batchNo.batchNo;
  527. }
  528. // filterData.status = item;
  529. sessionStorage.inspectListParameter = JSON.stringify(filterData);
  530. $scope.refreshData("expand-right", $scope.model);
  531. };
  532. $scope.clean = function () {
  533. $scope.tData = { title: "", batchNo: "" };
  534. delete $scope.model.inspectionProcessActual.batchNo;
  535. delete $scope.model.inspectionProcessActual.inspection.title;
  536. delete $scope.model.inspectionProcessActual.inspectionType;
  537. delete $scope.model.inspectionProcessActual.inspectionTypeId;
  538. delete $scope.model.inspectionProcessActual.inspection.executeUser;
  539. delete $scope.model.inspectionProcessActual.inspection.createUser;
  540. delete $scope.model.inspectionProcessActual.state;
  541. $scope.statusData = {};
  542. $scope.try_async_load();
  543. $scope.refreshData("expand-right", $scope.model);
  544. };
  545. //树形控件点击事件
  546. $scope.my_tree_handler = function (branch) {
  547. var filterData = JSON.parse(sessionStorage.inspectListParameter);
  548. filterData.status = branch.id;
  549. // if (filterData.inspectionProcessActual) {
  550. // filterData.inspectionProcessActual.inspectionTypeId = branch.id;
  551. // } else {
  552. // filterData = angular.extend(filterData, {
  553. // "inspectionProcessActual": {
  554. // "inspectionTypeId": branch.id
  555. // }
  556. // })
  557. // }
  558. sessionStorage.inspectListParameter = JSON.stringify(filterData);
  559. $scope.refreshData("expand-right", filterData);
  560. };
  561. //搜索栏点击事件
  562. $scope.searchstate = "todo";
  563. $scope.onChange = function (searchType) {
  564. console.log($scope.gridApi)
  565. $scope.gridApi.selection.clearSelectedRows();
  566. $scope.searchstate = searchType;
  567. var filterData = JSON.parse(sessionStorage.inspectListParameter);
  568. filterData.searchType = searchType;
  569. $scope.model.searchType = searchType;
  570. sessionStorage.inspectListParameter = JSON.stringify(filterData);
  571. $scope.refreshData("expand-right", $scope.model);
  572. };
  573. $scope.reload = function () {
  574. var filterData = JSON.parse(sessionStorage.inspectListParameter);
  575. $scope.refreshData("expand-right", filterData);
  576. };
  577. $scope.refreshData = function (style, filterData) {
  578. $scope.ldloading[style.replace("-", "_")] = true;
  579. if (angular.isUndefined(filterData)) {
  580. filterData = defaultFilterData;
  581. }
  582. $scope.myData = [];
  583. $scope.memoryfilterData = filterData;
  584. api_bpm_data.fetchInspectServiceTasks(filterData.status, filterData).then(
  585. function (data) {
  586. var myData = Restangular.stripRestangular(data);
  587. $scope.gridOptions.totalItems = myData.resultCount;
  588. if (angular.isArray(myData.data)) {
  589. $scope.myData = myData.data;
  590. for (var i = 0; i < $scope.myData.length; i++) {
  591. //添加序号
  592. $scope.myData[i]["itemId"] =
  593. i + 1 + filterData.idx * filterData.sum;
  594. }
  595. $scope.ldloading[style.replace("-", "_")] = false;
  596. } else {
  597. $scope.ldloading[style.replace("-", "_")] = false;
  598. SweetAlert.swal({
  599. title: "数据为空",
  600. text: myData.data,
  601. type: "warning",
  602. });
  603. }
  604. },
  605. function () {
  606. $scope.ldloading[style.replace("-", "_")] = false;
  607. }
  608. );
  609. };
  610. $scope.refreshData2 = function (style, filterData) {
  611. $scope.ldloading[style.replace("-", "_")] = true;
  612. if (angular.isUndefined(filterData)) {
  613. filterData = defaultFilterData;
  614. }
  615. // $scope.myData = [];
  616. $scope.memoryfilterData = filterData;
  617. api_bpm_data.fetchInspectServiceTasks(filterData.status, filterData).then(
  618. function (data) {
  619. var myData = Restangular.stripRestangular(data);
  620. $scope.gridOptions.totalItems = myData.resultCount;
  621. if (angular.isArray(myData.data)) {
  622. $scope.myData = myData.data;
  623. for (var i = 0; i < $scope.myData.length; i++) {
  624. //添加序号
  625. $scope.myData[i]["itemId"] =
  626. i + 1 + filterData.idx * filterData.sum;
  627. }
  628. $scope.ldloading[style.replace("-", "_")] = false;
  629. } else {
  630. $scope.ldloading[style.replace("-", "_")] = false;
  631. SweetAlert.swal({
  632. title: "数据为空",
  633. text: myData.data,
  634. type: "warning",
  635. });
  636. }
  637. },
  638. function () {
  639. $scope.ldloading[style.replace("-", "_")] = false;
  640. }
  641. );
  642. };
  643. $scope.inspecttype = {};
  644. // 获取处理人
  645. $scope.getExecuteUser = function () {
  646. api_configure_data
  647. .fetchDataList("user", {
  648. idx: 0,
  649. sum: 1000,
  650. user: {
  651. roledata: {
  652. rolecode: "inspectman",
  653. },
  654. simple: true,
  655. },
  656. })
  657. .then(function (res) {
  658. $scope.executeUserData = res.list;
  659. });
  660. };
  661. $scope.getExecuteUser();
  662. $scope.statusData = [
  663. {
  664. name: "执行中",
  665. state: 0,
  666. },
  667. {
  668. name: "已完成",
  669. state: 1,
  670. },
  671. ];
  672. $scope.titleData = []; //计划主题列表
  673. $scope.batchNoData = []; //批次号列表
  674. // 获取计划主题列表
  675. $scope.getTitleData = function () {
  676. var postData = {
  677. assignee: $rootScope.user.id,
  678. idx: 0,
  679. sum: 9999,
  680. searchType: "all",
  681. inspectionProcessActual: {},
  682. };
  683. api_bpm_data
  684. .fetchDataList("inspection", postData)
  685. .then(function (result) {
  686. if (result.status == 200) {
  687. $scope.titleData = result.list;
  688. }
  689. });
  690. };
  691. $scope.getTitleData();
  692. //修改计划主题
  693. $scope.changeTitle = function(){
  694. $scope.tData.batchNo = "";
  695. $scope.batchNoData = $scope.tData.title.batchNos.map(v=>({id:v,batchNo:v}));
  696. }
  697. // 获取创建人
  698. $scope.getCreateUser = function () {
  699. api_configure_data
  700. .fetchDataList("user", {
  701. idx: 0,
  702. sum: 1000,
  703. user: {
  704. simple: true,
  705. },
  706. })
  707. .then(function (res) {
  708. $scope.createUserData = res.list;
  709. });
  710. };
  711. $scope.getCreateUser();
  712. $scope.open = function ($event) {
  713. $event.preventDefault();
  714. $event.stopPropagation();
  715. $scope.opened = !$scope.opened;
  716. };
  717. $scope.endOpen = function ($event) {
  718. $event.preventDefault();
  719. $event.stopPropagation();
  720. $scope.startOpened = false;
  721. $scope.endOpened = !$scope.endOpened;
  722. };
  723. $scope.startOpen = function ($event) {
  724. $event.preventDefault();
  725. $event.stopPropagation();
  726. $scope.endOpened = false;
  727. $scope.startOpened = !$scope.startOpened;
  728. };
  729. //树形控件加载
  730. $scope.my_tree = {};
  731. $scope.try_async_load = function () {
  732. $scope.my_data = [];
  733. $scope.doing_async = true;
  734. api_bpm_data
  735. .fetchDataList("inspectionType", {
  736. idx: 0,
  737. sum: 1000,
  738. })
  739. .then(function (response) {
  740. if (response.status == 200) {
  741. var data = response.list;
  742. var objects = [];
  743. for (var i = 0; i < data.length; i++) {
  744. var object = {};
  745. object.id = data[i].id;
  746. if (data[i].parent && data[i].parent.id != 0) {
  747. object.parent = data[i].parent.id;
  748. }
  749. object.label = data[i].type;
  750. objects.push(object);
  751. }
  752. $scope.my_data = convertParentToChildList(objects);
  753. $scope.tree_data = angular.copy($scope.my_data);
  754. if ($scope.my_data.length > 0) {
  755. $scope.doing_async = false;
  756. }
  757. // return $scope.my_tree.expand_all()
  758. } else {
  759. SweetAlert.swal({
  760. title: "系统错误!",
  761. text: "请刷新重试!",
  762. type: "error",
  763. });
  764. }
  765. });
  766. };
  767. function convertListToTree(data, treeMap) {
  768. var idToNodeMap = {}; //Keeps track of nodes using id as key, for fast lookup
  769. var root = null; //Initially set our loop to null
  770. var parentNode = null;
  771. //loop over data
  772. for (var i = 0; i < data.length; i++) {
  773. var datum = data[i];
  774. //each node will have children, so let's give it a "children" poperty
  775. datum.children = [];
  776. //add an entry for this node to the map so that any future children can
  777. //lookup the parent
  778. idToNodeMap[datum.id] = datum;
  779. //Does this node have a parent?
  780. if (typeof datum.parent === "undefined" || datum.parent == null) {
  781. //Doesn't look like it, so this node is the root of the tree
  782. root = datum;
  783. treeMap[datum.id] = root;
  784. } else {
  785. //This node has a parent, so let's look it up using the id
  786. parentNode = idToNodeMap[datum.parent];
  787. //We don't need this property, so let's delete it.
  788. delete datum.parent;
  789. //Let's add the current node as a child of the parent node.
  790. parentNode.children.push(datum);
  791. }
  792. }
  793. return root;
  794. }
  795. function convertParentToChildList(data) {
  796. var treeMap = {};
  797. var list = [];
  798. convertListToTree(data, treeMap);
  799. angular.forEach(treeMap, function (item) {
  800. list.push(item);
  801. });
  802. return list;
  803. }
  804. $scope.refreshData("expand-right", defaultFilterData);
  805. $scope.try_async_load();
  806. $scope.timer = $interval(function () {
  807. $scope.refreshData2("expand-right", $scope.model);
  808. }, $rootScope.refreshTime);
  809. $scope.$on("$destroy", function () {
  810. $interval.cancel($scope.timer);
  811. });
  812. },
  813. ]);