settlementUserConsume.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. app.controller('settlementUserConsumeCtrl', ['$scope', '$http', '$timeout', '$state', '$interval', 'uiGridConstants', 'i18nService', 'toaster', function ($scope, $http, $timeout, $state, $interval, uiGridConstants, i18nService, toaster) {
  2. i18nService.setCurrentLang("zh-cn");
  3. moment.locale('zh-cn');
  4. $scope.startTimeOpen = false;
  5. $scope.endTimeOpen = false;
  6. $scope.timeChange = function (newDate, oldDate) {
  7. $scope.startTimeOpen = false;
  8. $scope.endTimeOpen = false;
  9. };
  10. var defaultValue = {
  11. agent: {id: "", nickname: "代理商"},
  12. dealer: {value: "", label: "经销商"},
  13. };
  14. //下拉框数据
  15. $scope.condition = {
  16. agent: [defaultValue.agent],
  17. dealer: [defaultValue.dealer],
  18. };
  19. //查询条件
  20. $scope.query = {
  21. agent: defaultValue.agent,
  22. dealer: defaultValue.dealer,
  23. startTime: moment().format("YYYY-MM-DD"),
  24. endTime: moment().format("YYYY-MM-DD"),
  25. };
  26. //不传分页参数则获取全部代理商
  27. $http.get('/agent/getAgentsDetailList', {}).then(function (data) {
  28. $scope.condition.agent = data.data.payload.dataList;
  29. $scope.condition.agent.unshift(defaultValue.agent);//可以选空
  30. });
  31. // angular 事件绑定
  32. $scope.ngEvent = {
  33. //初始化代理商
  34. changeAgent: function () {
  35. var id = $scope.query.agent.id;
  36. //无论是否选择了数据,都清空子级下拉框选中的项
  37. $scope.query.dealer = defaultValue.dealer;
  38. //无论怎么选择,都清空子下拉框的所有选项
  39. $scope.condition.dealer = [defaultValue.dealer];
  40. //如果选择了代理商,则加载经销商
  41. if (id) {
  42. $http.get('/ad/getDealerList', {params: {agentId: id}}).then(function (data) {
  43. $scope.condition.dealer = data.data.payload;
  44. $scope.condition.dealer.unshift(defaultValue.dealer);//可以选空
  45. });
  46. }
  47. },
  48. changeDealer: function () {
  49. },
  50. quickTime: function (event, passDay) {
  51. $scope.query.startTime = moment().add(-(passDay - 1), "day").format("YYYY-MM-DD");
  52. $scope.query.endTime = moment().format("YYYY-MM-DD");
  53. },
  54. //查询
  55. query: function () {
  56. if ($scope.query.startTime > $scope.query.endTime) {
  57. toaster.pop("info", "提示", "开始时间必须小于结束时间!");
  58. return;
  59. }
  60. $scope.getPagedDataAsync(1, $scope.gridOptions.paginationPageSize);
  61. },
  62. exportExcelOpen: false,
  63. //导出
  64. exportExcel: function () {
  65. var params = {
  66. type: "settlementChargeCard",
  67. };
  68. var query = $scope.query;
  69. params.agentId = query.agent.id
  70. params.dealerId = query.dealer.value
  71. params.startTime = query.startTime
  72. params.endTime = query.endTime
  73. if ($scope.ngEvent.exportExcelOpen) {
  74. toaster.pop("info", "提示", "有一份报表正在生成,请稍候!");
  75. return;
  76. } else {
  77. $scope.ngEvent.exportExcelOpen = true;
  78. }
  79. $http.get('/manager/exportConsumptionOrderList', {params: params}).then(function (data) {
  80. data = data.data
  81. $scope.ngEvent.exportExcelOpen = false;
  82. if (data.result == 1) {
  83. var payload = data.payload;
  84. toaster.pop("success", data.description);
  85. $state.go('app.tool.offlineTask', {
  86. searchKey: payload
  87. });
  88. }
  89. }).catch(function (data) {
  90. $scope.ngEvent.exportExcelOpen = false;
  91. if (data.status == 504) {
  92. toaster.pop("error", "计算超时,请前往任务->执行离线生成报表");
  93. } else {
  94. toaster.pop("error", "系统错误,请重试");
  95. }
  96. });
  97. }
  98. };
  99. $scope.gridOptions = {
  100. data: 'myData',
  101. showGridFooter: true, //是否显示grid footer
  102. //-------- 分页属性 ----------------
  103. paginationPageSizes: [10, 20, 50, 100], //每页显示个数可选项
  104. paginationCurrentPage: 1, //当前页码
  105. paginationPageSize: 10, //每页显示个数
  106. totalItems: 0,// 总数量
  107. useExternalPagination: true,//是否使用分页按钮
  108. //过滤
  109. enableFiltering: false,
  110. columnDefs: [],
  111. // 菜单
  112. enableGridMenu: true,
  113. //---------------api---------------------
  114. onRegisterApi: function (gridApi) {
  115. $scope.gridApi = gridApi;
  116. gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) {
  117. if ($scope.setPagingData) {
  118. $scope.getPagedDataAsync(newPage, pageSize);
  119. }
  120. });
  121. }
  122. };
  123. function setColumnDefs() {
  124. $scope.gridOptions.columnDefs = [
  125. {field: 'createTime', displayName: '日期', minWidth: 140},
  126. {field: 'title', displayName: '消费内容'},
  127. {field: 'amount', displayName: '消费额'},
  128. {field: 'dealerName', displayName: '经销商'},
  129. {field: 'agentName', displayName: '代理商'},
  130. {field: 'userNickname', displayName: '用户昵称'},
  131. {field: 'userGender', displayName: '用户性别'},
  132. {field: 'logicalCode', displayName: '设备编号'},
  133. {field: 'devTypeName', displayName: '设备类型'},
  134. {field: 'groupName', displayName: '设备地址',},
  135. ];
  136. var fields = $scope.gridOptions.columnDefs;
  137. for (var index in fields) {
  138. var item = fields[index];
  139. if (item && item['minWidth'] == null) {
  140. item['minWidth'] = 80;
  141. }
  142. }
  143. }
  144. $scope.setPagingData = function (data, curPage, pageSize) {
  145. var pagedData = data.data.dataList;
  146. $scope.myData = pagedData;
  147. $scope.gridOptions.totalItems = data.data.total;
  148. };
  149. $scope.getPagedDataAsync = function (curPage, pageSize) {
  150. var params = {
  151. pageSize: pageSize,
  152. pageIndex: curPage
  153. };
  154. var query = $scope.query;
  155. params.agentId = query.agent.id
  156. params.dealerId = query.dealer.value
  157. params.startTime = query.startTime
  158. params.endTime = query.endTime
  159. $scope.gridOptionsLoading = true;
  160. $http.get('/manager/getConsumptionOrderList', {
  161. params: params
  162. }).then(function (data) {
  163. $scope.gridOptionsLoading = false;
  164. $scope.setPagingData(data.data, curPage, pageSize);
  165. }).catch(function (data) {
  166. $scope.gridOptionsLoading = false;
  167. toaster.pop("error", "提示", "获取明细失败");
  168. });
  169. };
  170. function initDataGrid() {
  171. //首次加载表格
  172. $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize);
  173. }
  174. setColumnDefs();
  175. initDataGrid();
  176. }]);