settlementChargeCard.js 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. app.controller('settlementChargeCardCtrl', ['$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/exportExcel', {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: 'orderNo', displayName: '单号'},
  126. {field: 'dealerName', displayName: '经销商'},
  127. {field: 'dealerTel', displayName: '手机号码'},
  128. {field: 'agentName', displayName: '所属代理商'},
  129. {field: 'logicalCode', displayName: '设备编号'},
  130. {field: 'dateTimeAdded', displayName: '设备注册时间'},
  131. {field: 'devType', displayName: '设备类型'},
  132. {
  133. field: 'chargeMoney', displayName: '充值金额',
  134. cellTemplate: '<div class="temp-row text-dark-dker text-md" ng-bind="row.entity.chargeMoney | currency:\'¥\'"></div>'
  135. },
  136. {
  137. field: 'chargeTime', displayName: '充值日期',
  138. cellTemplate: '<div class="temp-row" ng-bind="row.entity.chargeTime| date:\'yyyy-MM-dd HH:mm:ss\'"></div>'
  139. },
  140. ];
  141. var fields = $scope.gridOptions.columnDefs;
  142. for (var index in fields) {
  143. var item = fields[index];
  144. if (item && item['minWidth'] == null) {
  145. item['minWidth'] = 100;
  146. }
  147. }
  148. }
  149. $scope.setPagingData = function (data, curPage, pageSize) {
  150. var pagedData = data.data.dataList;
  151. $scope.myData = pagedData;
  152. $scope.gridOptions.totalItems = data.data.total;
  153. };
  154. $scope.getPagedDataAsync = function (curPage, pageSize) {
  155. var params = {
  156. pageSize: pageSize,
  157. pageIndex: curPage
  158. };
  159. var query = $scope.query;
  160. params.agentId = query.agent.id
  161. params.dealerId = query.dealer.value
  162. params.startTime = query.startTime
  163. params.endTime = query.endTime
  164. $scope.gridOptionsLoading = true;
  165. $http.get('/manager/getChargeSIMCardSettlementList', {
  166. params: params
  167. }).then(function (data) {
  168. $scope.gridOptionsLoading = false;
  169. $scope.setPagingData(data.data, curPage, pageSize);
  170. }).catch(function (data) {
  171. $scope.gridOptionsLoading = false;
  172. toaster.pop("error", "提示", "获取明细失败");
  173. });
  174. };
  175. function initDataGrid() {
  176. //首次加载表格
  177. $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize);
  178. }
  179. setColumnDefs();
  180. initDataGrid();
  181. }]);