app.controller('settlementChargeCardCtrl', ['$scope', '$http', '$timeout', '$state', '$interval', 'uiGridConstants', 'i18nService', 'toaster', function ($scope, $http, $timeout, $state, $interval, uiGridConstants, i18nService, toaster) { i18nService.setCurrentLang("zh-cn"); moment.locale('zh-cn'); $scope.startTimeOpen = false; $scope.endTimeOpen = false; $scope.timeChange = function (newDate, oldDate) { $scope.startTimeOpen = false; $scope.endTimeOpen = false; }; var defaultValue = { agent: {id: "", nickname: "代理商"}, dealer: {value: "", label: "经销商"}, }; //下拉框数据 $scope.condition = { agent: [defaultValue.agent], dealer: [defaultValue.dealer], }; //查询条件 $scope.query = { agent: defaultValue.agent, dealer: defaultValue.dealer, startTime: moment().format("YYYY-MM-DD"), endTime: moment().format("YYYY-MM-DD"), }; //不传分页参数则获取全部代理商 $http.get('/agent/getAgentsDetailList', {}).then(function (data) { $scope.condition.agent = data.data.payload.dataList; $scope.condition.agent.unshift(defaultValue.agent);//可以选空 }); // angular 事件绑定 $scope.ngEvent = { //初始化代理商 changeAgent: function () { var id = $scope.query.agent.id; //无论是否选择了数据,都清空子级下拉框选中的项 $scope.query.dealer = defaultValue.dealer; //无论怎么选择,都清空子下拉框的所有选项 $scope.condition.dealer = [defaultValue.dealer]; //如果选择了代理商,则加载经销商 if (id) { $http.get('/ad/getDealerList', {params: {agentId: id}}).then(function (data) { $scope.condition.dealer = data.data.payload; $scope.condition.dealer.unshift(defaultValue.dealer);//可以选空 }); } }, changeDealer: function () { }, quickTime: function (event, passDay) { $scope.query.startTime = moment().add(-(passDay - 1), "day").format("YYYY-MM-DD"); $scope.query.endTime = moment().format("YYYY-MM-DD"); }, //查询 query: function () { if ($scope.query.startTime > $scope.query.endTime) { toaster.pop("info", "提示", "开始时间必须小于结束时间!"); return; } $scope.getPagedDataAsync(1, $scope.gridOptions.paginationPageSize); }, exportExcelOpen: false, //导出 exportExcel: function () { var params = { type: "settlementChargeCard", }; var query = $scope.query; params.agentId = query.agent.id params.dealerId = query.dealer.value params.startTime = query.startTime params.endTime = query.endTime if ($scope.ngEvent.exportExcelOpen) { toaster.pop("info", "提示", "有一份报表正在生成,请稍候!"); return; } else { $scope.ngEvent.exportExcelOpen = true; } $http.get('/manager/exportExcel', {params: params}).then(function (data) { data = data.data $scope.ngEvent.exportExcelOpen = false; if (data.result == 1) { var payload = data.payload; toaster.pop("success", data.description); $state.go('app.tool.offlineTask', { searchKey: payload }); } }).catch(function (data) { $scope.ngEvent.exportExcelOpen = false; if (data.status == 504) { toaster.pop("error", "计算超时,请前往任务->执行离线生成报表"); } else { toaster.pop("error", "系统错误,请重试"); } }); } }; $scope.gridOptions = { data: 'myData', showGridFooter: true, //是否显示grid footer //-------- 分页属性 ---------------- paginationPageSizes: [10, 20, 50, 100], //每页显示个数可选项 paginationCurrentPage: 1, //当前页码 paginationPageSize: 10, //每页显示个数 totalItems: 0,// 总数量 useExternalPagination: true,//是否使用分页按钮 //过滤 enableFiltering: false, columnDefs: [], // 菜单 enableGridMenu: true, //---------------api--------------------- onRegisterApi: function (gridApi) { $scope.gridApi = gridApi; gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) { if ($scope.setPagingData) { $scope.getPagedDataAsync(newPage, pageSize); } }); } }; function setColumnDefs() { $scope.gridOptions.columnDefs = [ {field: 'orderNo', displayName: '单号'}, {field: 'dealerName', displayName: '经销商'}, {field: 'dealerTel', displayName: '手机号码'}, {field: 'agentName', displayName: '所属代理商'}, {field: 'logicalCode', displayName: '设备编号'}, {field: 'dateTimeAdded', displayName: '设备注册时间'}, {field: 'devType', displayName: '设备类型'}, { field: 'chargeMoney', displayName: '充值金额', cellTemplate: '
' }, { field: 'chargeTime', displayName: '充值日期', cellTemplate: '' }, ]; var fields = $scope.gridOptions.columnDefs; for (var index in fields) { var item = fields[index]; if (item && item['minWidth'] == null) { item['minWidth'] = 100; } } } $scope.setPagingData = function (data, curPage, pageSize) { var pagedData = data.data.dataList; $scope.myData = pagedData; $scope.gridOptions.totalItems = data.data.total; }; $scope.getPagedDataAsync = function (curPage, pageSize) { var params = { pageSize: pageSize, pageIndex: curPage }; var query = $scope.query; params.agentId = query.agent.id params.dealerId = query.dealer.value params.startTime = query.startTime params.endTime = query.endTime $scope.gridOptionsLoading = true; $http.get('/manager/getChargeSIMCardSettlementList', { params: params }).then(function (data) { $scope.gridOptionsLoading = false; $scope.setPagingData(data.data, curPage, pageSize); }).catch(function (data) { $scope.gridOptionsLoading = false; toaster.pop("error", "提示", "获取明细失败"); }); }; function initDataGrid() { //首次加载表格 $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize); } setColumnDefs(); initDataGrid(); }]);