|
|
@@ -0,0 +1,508 @@
|
|
|
+/**
|
|
|
+ * Created by admin on 2017/6/2.
|
|
|
+ */
|
|
|
+/**
|
|
|
+ * 结算中心控制器
|
|
|
+ */
|
|
|
+define(['app/app'], function(app) {
|
|
|
+ 'use strict';
|
|
|
+ app.register.controller('VendorPayCtrl', ['$scope', '$rootScope', 'bankInfoService', 'toaster', '$upload', 'ngTableParams', 'BaseService', 'bankTransferService', 'Purchase', '$filter', function($scope, $rootScope, bankInfoService, toaster, $upload, ngTableParams, BaseService, bankTransferService, Purchase, $filter) {
|
|
|
+ $rootScope.active = 'pay_center';
|
|
|
+
|
|
|
+ // 加密订单的ID过滤器
|
|
|
+ var enIdFilter = $filter('EncryptionFilter');
|
|
|
+
|
|
|
+ $scope.$payCenter = {};
|
|
|
+ $scope.param = {};
|
|
|
+ $scope.$payCenter.tab = "paymentRecord";
|
|
|
+ $scope.$$bankInfo = {};
|
|
|
+
|
|
|
+ //控制删除div显示
|
|
|
+ $scope.$payCenter.deleteDiv = false;
|
|
|
+ //删除id
|
|
|
+ $scope.$payCenter.deleteID = null;
|
|
|
+
|
|
|
+ $scope.$payCenter.newAccount = false;
|
|
|
+
|
|
|
+ //获取数据的方法;
|
|
|
+ $scope.getMethod = "getSaleEeterpriseBank";
|
|
|
+
|
|
|
+ $scope.bankInfo = {};
|
|
|
+
|
|
|
+ //获取订单数据
|
|
|
+ // var getData = function () {
|
|
|
+ // if($scope.$payCenter.tab === 'paymentRecode') {//获取支付记录
|
|
|
+ //
|
|
|
+ // }else {//获取企业的账户信息
|
|
|
+ // bankInfoService[$scope.getMethod](null, function (data) {
|
|
|
+ // $scope.bankInfos = data;
|
|
|
+ // }, function (response) {
|
|
|
+ // toaster.pop('error', '获取卖家的账户信息失败');
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ // };
|
|
|
+
|
|
|
+ $scope.tradeRecordTableParams = new ngTableParams({
|
|
|
+ page : 1,
|
|
|
+ count : 30
|
|
|
+ },{
|
|
|
+ total : 0,
|
|
|
+ getData : function ($defer, params) {
|
|
|
+ var param = BaseService.parseParams(params.url());
|
|
|
+ bankTransferService.getVendorBankTransferByMall(param, function (page) {
|
|
|
+ if(page.code == 1) {
|
|
|
+ $scope.bankTransRecore = page.data.content;
|
|
|
+ angular.forEach($scope.bankTransRecode, function (bankT) {
|
|
|
+ bankT.jsonReceive = angular.fromJson(bankT.jsonReceive);
|
|
|
+ });
|
|
|
+
|
|
|
+ $scope.totalPages = page.data.totalPages;
|
|
|
+ $scope.param.currentPage = page.data.number;
|
|
|
+ //计算页数
|
|
|
+ $scope.acculatePages(page.data.number, page.data.totalPages);
|
|
|
+ }else {
|
|
|
+ toaster.pop('info', '获取信息失败:' + page.message);
|
|
|
+ }
|
|
|
+ }, function () {
|
|
|
+ toaster.pop('error', '获取信息失败');
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ $scope.bankInfoTableParams = new ngTableParams({
|
|
|
+ page : 1,
|
|
|
+ count : 10,
|
|
|
+ sorting : {
|
|
|
+ num : 'ASC'
|
|
|
+ }
|
|
|
+ },{
|
|
|
+ total : 0,
|
|
|
+ getData : function ($defer, params) {
|
|
|
+ var param = BaseService.parseParams(params.url());
|
|
|
+ bankInfoService.getSaleEeterpriseBank(param, {}, function(page) {
|
|
|
+ $scope.accounts = page.content;
|
|
|
+
|
|
|
+ $scope.$$bankInfo.totalElements = page.totalElements;
|
|
|
+ if(Number(page.totalElements) > 0) {
|
|
|
+ $scope.$$bankInfo.start = Number(page.size) * (Number(page.number) - 1) + 1;
|
|
|
+ }else {
|
|
|
+ $scope.$$bankInfo.start = 0;
|
|
|
+ }
|
|
|
+ $scope.$$bankInfo.end = Number(page.size) * (Number(page.number) - 1) + Number(page.numberOfElements);
|
|
|
+
|
|
|
+ params.total(page.totalElements);
|
|
|
+ $defer.resolve(page.content);
|
|
|
+ }, function() {
|
|
|
+ toaster.pop('error', '获取账户信息失败');
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ var loadAccountData = function() {
|
|
|
+ $scope.bankInfoTableParams.page(1);
|
|
|
+ $scope.bankInfoTableParams.reload();
|
|
|
+ };
|
|
|
+
|
|
|
+ var loadHistory = function () {
|
|
|
+ $scope.tradeRecordTableParams.page(1);
|
|
|
+ $scope.tradeRecordTableParams.reload();
|
|
|
+ };
|
|
|
+
|
|
|
+ //获取数据的方法。
|
|
|
+ var loadData = function() {
|
|
|
+ switch ($scope.$payCenter.tab) {
|
|
|
+ case 'paymentRecord' :
|
|
|
+ loadHistory();
|
|
|
+ break;
|
|
|
+ case 'accountTab':
|
|
|
+ loadAccountData();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ loadData();
|
|
|
+
|
|
|
+ //切换tab方法
|
|
|
+ $scope.setTab = function (tab) {
|
|
|
+ if($scope.$payCenter.tab !== tab) {
|
|
|
+ $scope.$payCenter.tab = tab;
|
|
|
+ loadData();
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ // 文件上传成功之后
|
|
|
+ $scope.change = function(){
|
|
|
+ var text = document.getElementById("upload_text");
|
|
|
+ var dom = document.getElementById("InputFile");
|
|
|
+ var fileName = dom.files[0].name;
|
|
|
+ if (text.value != fileName) {
|
|
|
+ text.value = '';
|
|
|
+ }
|
|
|
+ var ext,idx;
|
|
|
+ idx = fileName.lastIndexOf(".");
|
|
|
+ if (idx != -1){
|
|
|
+ ext = fileName.substr(idx+1).toUpperCase();
|
|
|
+ ext = ext.toLowerCase( );
|
|
|
+ // console.log(ext);
|
|
|
+ // alert("ext="+ext);
|
|
|
+ if (ext != 'jpg' && ext != 'png' && ext != 'gif' && ext != 'pdf'){
|
|
|
+ alert("请上传可支持的格式");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // console.log(dom.files[0]);
|
|
|
+ var len = dom.files[0].size;
|
|
|
+ if (len > 3145728) {
|
|
|
+ // console.log(text.value.length);
|
|
|
+ alert('请勿超过3M');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // console.log(len);
|
|
|
+ text.value = fileName;
|
|
|
+ toaster.pop('success', '上传成功');
|
|
|
+ };
|
|
|
+
|
|
|
+ $scope.newAccount = function () {
|
|
|
+ if($scope.bankInfos.length > 0) {
|
|
|
+ toaster.pop('info', '目前仅支持邦定一个银行账户信息,如需修改或更换,可把原账户信息删除再重新添加.');
|
|
|
+ }else {
|
|
|
+ $scope.$payCenter.newAccount = true;
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ //删除账户
|
|
|
+ $scope.deleteAccount = function(account) {
|
|
|
+ if(account.id) {
|
|
|
+ $scope.$payCenter.deleteDiv = true;
|
|
|
+ $scope.$payCenter.deleteID = account.id;
|
|
|
+ }else {
|
|
|
+ toaster.pop('info', '请选择要删除的信息');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //取消删除的操作
|
|
|
+ $scope.cancleDelete = function () {
|
|
|
+ $scope.$payCenter.deleteDiv = false;
|
|
|
+ $scope.$payCenter.deleteID = null;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //确认删除账户信息
|
|
|
+ $scope.confirmDelete = function () {
|
|
|
+ if(!$scope.$payCenter.deleteID) {
|
|
|
+ toaster.pop('info', '请选择要删除的信息');
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ bankInfoService.deleteBank({id: $scope.$payCenter.deleteID}, function() {
|
|
|
+ toaster.pop('success', '删除账户成功');
|
|
|
+ $scope.$payCenter.deleteDiv = false;
|
|
|
+ $scope.$payCenter.deleteID = null;
|
|
|
+ getData();
|
|
|
+ }, function() {
|
|
|
+ toaster.pop('error', '删除失败');
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ //观察是否已经选中文件了
|
|
|
+ $scope.$watch('bankInfo.files', function (newValue, oldValue, scope) {
|
|
|
+ var dom = document.getElementById('upload_text');
|
|
|
+ if (dom) {
|
|
|
+ var str = dom.value;
|
|
|
+ // console.log(str.length);
|
|
|
+ }
|
|
|
+ if(newValue && newValue.length != 0 && str && str.length > 0) {
|
|
|
+ $scope.$payCenter.fileVal = true;
|
|
|
+ }else {
|
|
|
+ $scope.$payCenter.fileVal = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 验证企业名称和开户银行
|
|
|
+ * @param name
|
|
|
+ */
|
|
|
+ $scope.validateName = function (name, index) {
|
|
|
+ if(name) {
|
|
|
+ if(index == 1) {
|
|
|
+ $scope.$payCenter.accountNameVal = true;
|
|
|
+ }else {
|
|
|
+ $scope.$payCenter.bankNameVal = true;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ if(index == 1) {
|
|
|
+ $scope.$payCenter.accountNameVal = false;
|
|
|
+ }else {
|
|
|
+ $scope.$payCenter.bankNameVal = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 验证银行账号信息是否正确
|
|
|
+ * @param number
|
|
|
+ * number 全部是数字,并且小于 31位 和 大于 7位数字
|
|
|
+ */
|
|
|
+ $scope.validateNumber = function (number) {
|
|
|
+ if(number) {
|
|
|
+ if(/^\d+$/.test(number)) {
|
|
|
+ if(number.length < 31 && number.length > 7) {
|
|
|
+ $scope.$payCenter.numberVal = true;
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $scope.$payCenter.numberVal = false;
|
|
|
+ };
|
|
|
+
|
|
|
+ //取消新增账户
|
|
|
+ $scope.cancle = function () {
|
|
|
+ $scope.$payCenter.newAccount = false;
|
|
|
+ $scope.bankInfo = {};
|
|
|
+ $scope.bankInfo.files = null;
|
|
|
+ }
|
|
|
+
|
|
|
+ //保存账户信息
|
|
|
+ $scope.confirm = function () {
|
|
|
+ var file = null;
|
|
|
+ if($scope.bankInfo.files&&$scope.bankInfo.files[0]) {
|
|
|
+ file = $scope.bankInfo.files[0];
|
|
|
+ }
|
|
|
+ $upload.upload({
|
|
|
+ url: 'trade/bankInfo/save/enterprise',
|
|
|
+ file: file,
|
|
|
+ method: 'POST',
|
|
|
+ params : {type : 'sup'},
|
|
|
+ data: {
|
|
|
+ bankInfo: $scope.bankInfo
|
|
|
+ }
|
|
|
+ }).success(function(data){
|
|
|
+ $scope.$payCenter.newAccount = false;
|
|
|
+ $scope.bankInfo = {};
|
|
|
+ $scope.bankInfo.files = null;
|
|
|
+ toaster.pop('success', '保存成功');
|
|
|
+ getData();
|
|
|
+ }).error(function(data){
|
|
|
+ toaster.pop('error', "保存账户信息失败");
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取传入买家订单获取采购单的信息
|
|
|
+ $scope.goToPurchaseDetail = function (orderNum) {
|
|
|
+ if(!orderNum) {
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ var tempwindow = window.open("vendor#/order/center");
|
|
|
+ Purchase.getPurchaseByOrder({orderid : orderNum}, function (data) {
|
|
|
+ tempwindow.location = "vendor#/purchase/detail/" + enIdFilter(data.purchaseid);
|
|
|
+ // window.open("vendor#/purchase/detail/" + enIdFilter(data.purchaseid));
|
|
|
+ }, function (response) {
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /******************根据页数设置翻页的信息********start**************************/
|
|
|
+
|
|
|
+ //输入框监听Enter事件
|
|
|
+ $scope.listenEnter = function () {
|
|
|
+ if(event.keyCode == 13) {
|
|
|
+ $scope.setPage("page", $scope.param.currentPage);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ $scope.setPage = function(type, number) {
|
|
|
+ if(type != 'prev' && type != 'page' && type != 'next' && type != 'last' && type != 'first') {
|
|
|
+ return ;
|
|
|
+ };
|
|
|
+ var page = -1;
|
|
|
+ switch (type) {
|
|
|
+ case "page":
|
|
|
+ if(number < 1) {
|
|
|
+ page = 1;
|
|
|
+ }else if(number > $scope.totalPages) {
|
|
|
+ page = $scope.totalPages;
|
|
|
+ }else {
|
|
|
+ page = number;
|
|
|
+ };
|
|
|
+ break;
|
|
|
+ case "prev":
|
|
|
+ if($scope.param.page <= 1) {
|
|
|
+ page = 1;
|
|
|
+ }else {
|
|
|
+ page =$scope.param.page - 1;
|
|
|
+ };
|
|
|
+ break;
|
|
|
+ case "next":
|
|
|
+ if($scope.param.page >= $scope.totalPages) {
|
|
|
+ page = $scope.totalPages;
|
|
|
+ }else {
|
|
|
+ page =$scope.param.page + 1;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "first":
|
|
|
+ page = 1;
|
|
|
+ break;
|
|
|
+ case "last":
|
|
|
+ page = $scope.totalPages;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if(page == $scope.param.page || page < 1 || page > $scope.totalPages) {
|
|
|
+ $scope.param.currentPage = $scope.param.page;
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ $scope.param.page = page;
|
|
|
+ getData();
|
|
|
+ };
|
|
|
+
|
|
|
+ //当前页在前段的计算方式
|
|
|
+ $scope.frontSegment = function (currentPage, totalElementPages) {
|
|
|
+ angular.forEach($scope.pages, function (page) {
|
|
|
+ switch (page.number) {
|
|
|
+ case 8:
|
|
|
+ page.type = 'more';
|
|
|
+ page.active = false;
|
|
|
+ break;
|
|
|
+ case 0:
|
|
|
+ if(currentPage == 1) {
|
|
|
+ page.active = false;
|
|
|
+ }
|
|
|
+ default : {
|
|
|
+ page.current = (currentPage == page.number);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ };
|
|
|
+
|
|
|
+ //当前页在后端计算方式
|
|
|
+ $scope.endSegment = function (currentPage, totalElementPages) {
|
|
|
+ angular.forEach($scope.pages, function (page) {
|
|
|
+ switch (page.number) {
|
|
|
+ case 2:
|
|
|
+ page.active = false;
|
|
|
+ page.type = 'more';
|
|
|
+ break;
|
|
|
+ case 10:
|
|
|
+ if(currentPage == totalElementPages) {
|
|
|
+ page.active = false;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 0:
|
|
|
+ case 1:
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ if(page.number != totalElementPages) {
|
|
|
+ page.number = totalElementPages - 9 + page.number;
|
|
|
+ }
|
|
|
+ page.current = (currentPage == page.number);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ };
|
|
|
+
|
|
|
+ //当前页在中间计算方式
|
|
|
+ $scope.middleSegment = function (currentPage) {
|
|
|
+ angular.forEach($scope.pages, function (page) {
|
|
|
+ switch (page.number) {
|
|
|
+ case 2:
|
|
|
+ case 8:
|
|
|
+ page.type ='more';
|
|
|
+ page.active = false;
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ page.number = currentPage - 2;
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ page.number = currentPage - 1;
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ page.number = currentPage;
|
|
|
+ page.current = true;
|
|
|
+ break;
|
|
|
+ case 6:
|
|
|
+ page.number = currentPage + 1;
|
|
|
+ break;
|
|
|
+ case 7:
|
|
|
+ page.number = currentPage + 2;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ //初始化页数信息
|
|
|
+ $scope.initPages = function (totalElementPages) {
|
|
|
+ var pageNum = [];
|
|
|
+ if(totalElementPages == 1) {
|
|
|
+ return ;
|
|
|
+ }else if(totalElementPages < 10) {
|
|
|
+ for(var i = 0; i < totalElementPages + 2; i++) {
|
|
|
+ pageNum.push(i);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ pageNum = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
|
|
+ }
|
|
|
+ angular.forEach(pageNum, function (number) {
|
|
|
+ var page = {active : true, type : 'page', number : number};
|
|
|
+ if(number == 0) {
|
|
|
+ page.type = 'prev';
|
|
|
+ }else if(number == 1) {
|
|
|
+ page.type = 'first';
|
|
|
+ }else if(number == pageNum.length - 2) {
|
|
|
+ page.type = 'last';
|
|
|
+ page.number = totalElementPages;
|
|
|
+ }else if(number == pageNum.length - 1){
|
|
|
+ page.type = 'next';
|
|
|
+ }
|
|
|
+ $scope.pages.push(page);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ //计算页数的方式。
|
|
|
+ $scope.acculatePages = function(currentPage, totalElementPages) {
|
|
|
+ $scope.pages = [];
|
|
|
+ if(totalElementPages < 1) {
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ //初始化页面数据
|
|
|
+ $scope.initPages(totalElementPages);
|
|
|
+ if(totalElementPages < 10) {
|
|
|
+ angular.forEach($scope.pages, function (page) {
|
|
|
+ if(page.number == currentPage) {
|
|
|
+ page.current = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }else if(currentPage < 6) {//当期页小于6
|
|
|
+ $scope.frontSegment(currentPage, totalElementPages);
|
|
|
+ }else if(currentPage > totalElementPages - 5) { //当期页在后面
|
|
|
+ $scope.endSegment(currentPage, totalElementPages);
|
|
|
+ }else { //当期页在中间
|
|
|
+ $scope.middleSegment(currentPage);
|
|
|
+ }
|
|
|
+ };
|
|
|
+ /******************根据页数设置翻页的信息********end**************************/
|
|
|
+
|
|
|
+ }]);
|
|
|
+
|
|
|
+ app.register.filter('bankStatusFilter', function () {
|
|
|
+ return function (status) {
|
|
|
+ var result = '未知状态';
|
|
|
+ switch (status) {
|
|
|
+ case 101 :
|
|
|
+ result = '待审核';
|
|
|
+ break;
|
|
|
+ case 104:
|
|
|
+ result = '使用中';
|
|
|
+ break;
|
|
|
+ case 103:
|
|
|
+ result = '未通过';
|
|
|
+ break;
|
|
|
+ case 105:
|
|
|
+ result = '已失效';
|
|
|
+ break;
|
|
|
+ case 112:
|
|
|
+ result = '已删除';
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ })
|
|
|
+});
|