app.controller('walletCtrl', ['$scope', '$http', '$timeout', 'uiGridConstants', 'i18nService', 'toaster', 'chartOptions', function ($scope, $http, $timeout, uiGridConstants, i18nService, toaster, chartOptions) { i18nService.setCurrentLang("zh-cn"); $scope.gridOptions = { data: 'myData', showGridFooter: true, //是否显示grid footer // rowHeight:40, //-------- 分页属性 ---------------- paginationPageSizes: [10, 20, 50, 100], //每页显示个数可选项 paginationCurrentPage: 1, //当前页码 paginationPageSize: 10, //每页显示个数 totalItems: 0,// 总数量 useExternalPagination: true,//是否使用分页按钮 //过滤 // enableFiltering: true, columnDefs: [], //---------------api--------------------- onRegisterApi: function (gridApi) { $scope.gridApi = gridApi; gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) { if ($scope.setPagingData) { $scope.getPagedDataAsync(newPage, pageSize); } }); } }; //查询条件 var condition = $scope.condition = { status: {value: 0, label: "待处理"}, searchKey: "" }; //枚举常量 $scope.enum = {}; //事件 $scope.event = { statusChange: function (item) { condition.status.value = item.value; condition.status.label = item.label; $scope.getPagedDataAsync(1, $scope.gridOptions.paginationPageSize); }, search: function () { $scope.getPagedDataAsync(1, $scope.gridOptions.paginationPageSize); } }; var payTypeList = $scope.enum.payType = [ {value: "wechat", label: "微信"}, {value: "bank", label: "银行"} ]; var statusList = $scope.enum.status = [ {value: 0, label: "待处理"}, {value: 1, label: "提现成功"}, {value: 2, label: "处理中..."}, {value: 3, label: "提现失败"},//后台处理错误,可以尝试重新处理,多见于微信 {value: 4, label: "已退单"},//用户信息填写有误可以退单,多用于银行 ]; function setColumnDefs() { $scope.gridOptions.columnDefs = [ { field: 'oper', displayName: '查看', enableFiltering: false, enableSorting: false, enableHiding: false,//禁止在列选择器中隐藏 enableColumnMenu: false,// 是否显示列头部菜单按钮 width: 66, cellTemplate: '
' + '' + '
' }, {field: 'name', displayName: '商家名称'}, {field: 'tel', displayName: '商家电话'}, {field: 'orderNo', displayName: '单号', width: 280}, { field: 'actualPay', displayName: '提现(实际到账)', cellTemplate: '
' }, {field: 'bankName', displayName: '银行'}, { field: 'subBankName', displayName: '支行名称', width: 200, cellTemplate: '
' }, {field: 'cardId', displayName: '卡号', width: 280}, { field: 'cardUserName', displayName: '持卡人' }, { field: 'dateTime', displayName: '发起日期', cellTemplate: '
', width: 200, }, { field: 'amount', displayName: '操作前余额', cellTemplate: '
' }, { field: 'payType', displayName: '提现方式', filter: { term: '', type: uiGridConstants.filter.SELECT, selectOptions: payTypeList }, cellTemplate: '
' }, { field: 'remarks', displayName: '备注', width: 200, cellTemplate: '
{{row.entity.remarks}}
' }, { field: 'operResult', displayName: '状态', filter: { term: '', type: uiGridConstants.filter.SELECT, selectOptions: statusList }, cellTemplate: '
{{grid.appScope.formatterStatus(row.entity,row.entity.operResult)}}
' }, ]; var fields = $scope.gridOptions.columnDefs; for (var index in fields) { var item = fields[index]; if (item && item['minWidth'] == null) { item['minWidth'] = 100; } } } $scope.formatterPayType = function (row, payType) { for (var i = 0; i < payTypeList.length; i++) { var item = payTypeList[i]; if (item.value == payType) { return item.label; } } }; $scope.formatterStatus = function (row, operResult) { for (var i = 0; i < statusList.length; i++) { var item = statusList[i]; if (item.value == operResult) { return item.label; } } }; $scope.setPagingData = function (data, curPage, pageSize) { var firstRow = (curPage - 1) * pageSize; var pagedData = data.data.dataList; $scope.myData = pagedData; $scope.gridOptions.totalItems = data.data.total; }; $scope.getPagedDataAsync = function (curPage, pageSize) { if ($scope.gridOptionsLoading) { return; } var params = { pageSize: pageSize, pageIndex: curPage }; if (condition.status.value >= 0) { params.status = condition.status.value } if (condition.searchKey != "") { params.searchKey = condition.searchKey } $scope.gridOptionsLoading = true; $http.get('/manager/getDealersWithdrawalList', { params: params }).then(function (data) { $scope.gridOptionsLoading = false; $scope.setPagingData(data.data, curPage, pageSize); }).catch(function (data) { toaster.pop("error", "提示", "获取提现列表失败"); }); }; function initDataGrid() { //首次加载表格 $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize); } setColumnDefs(); initDataGrid(); //展示详情 $scope.showInfoDetail = function (title, content) { $scope.infoDetail = {title: title, content: content}; $("#detailInfoPanel").modal(); }; $scope.closeDetailInfoPanel = function () { $("#detailInfoPanel").modal("hide"); }; /**************统计图********************/ var chartCondition = $scope.chartCondition = {"timeType": "month", "dealerId": null}; var selectEntity = {}; var dealerMoneyChartPanel; $scope.showChart = function (entity) { $("#chartInfoPanel").modal(); selectEntity = entity; chartCondition.dealerId = entity.dealerId; dealerMoneyChartPanel = echarts.init(document.getElementById('dealerMoneyChartPanel')); //resize事件绑定 $(window).off("resize.DealerMoneyChart").on("resize.DealerMoneyChart", function () { dealerMoneyChartPanel.resize(); }); loadChartData(); }; $scope.closeChart = function () { $("#chartInfoPanel").modal('hide'); }; //按条件加载统计图 var loadChartData = $scope.loadChartData = function () { //获取数据:每日提现曲线 $http.get('/manager/getDealerMoneyTrend', {params: chartCondition}).then(function (data) { data = data.data var transData = adapterDealerMoneyChartData(data.data); var option = chartOptions.getLineOptions(transData.xData); dealerMoneyChartOption(option, transData.yData, data.detail); dealerMoneyChartPanel.setOption(option); }); }; //数据适配 function adapterDealerMoneyChartData(data) { var xData = []; var yData = {totalIncome: [], actualPay: [], balance: []}; for (var i = 0; i < data.length; i++) { var item = data[i]; xData.push(item.time); yData.totalIncome.push(item.totalIncome); yData.actualPay.push(item.actualPay); yData.balance.push(item.balance); } return { xData: xData, yData: yData } } //趋势自定义样式 function dealerMoneyChartOption(option, yData, detail) { option.grid.y = 80; option.title = { text: selectEntity.name + "-提现和收入趋势", subtext: '提现成功次数:' + detail.success + " ,失败次数:" + detail.fail, left: 'center', textStyle: {}, subtextStyle: { fontSize: 14, color: "#525252" } }; option.series = [ { name: '成功提现', type: 'line', itemStyle: {normal: {color: "#f05050"}}, data: yData.actualPay }, { name: '线上收入', type: 'line', itemStyle: {normal: {color: "#27c24c"}}, data: yData.totalIncome }, { name: '钱包余额', type: 'line', itemStyle: {normal: {color: "rgba(0,0,0,.2)"}}, data: yData.balance } ]; option.legend = { data: ['成功提现', '线上收入', '钱包余额'], y: 62 }; var start = 0; var end = 100; if (chartCondition.timeType == "month") { start = 50; } option.dataZoom = [ { show: true, realtime: true, start: start, end: end }, { type: 'inside', realtime: true, start: start, end: end } ] } }]);