Browse Source

Merge remote-tracking branch 'origin/feature-201823-wangcz' into feature-201823-wangcz

huyy 7 years ago
parent
commit
f80d851491
21 changed files with 1008 additions and 219 deletions
  1. 4 1
      src/main/java/com/uas/platform/b2c/common/account/controller/UserController.java
  2. 8 3
      src/main/java/com/uas/platform/b2c/common/search/service/impl/SearcherServiceImpl.java
  3. 27 15
      src/main/webapp/resources/js/sso/app.js
  4. 1 0
      src/main/webapp/resources/js/sso/main.js
  5. 2 2
      src/main/webapp/resources/js/usercenter/app.js
  6. 129 38
      src/main/webapp/resources/js/usercenter/controllers/forstore/bom_detail_ctrl.js
  7. 3 1
      src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_no_invoice_ctrl.js
  8. 76 4
      src/main/webapp/resources/js/usercenter/controllers/forstore/pay_center_ctrl.js
  9. 1 1
      src/main/webapp/resources/js/vendor/app.js
  10. 70 2
      src/main/webapp/resources/js/vendor/controllers/forstore/pay_center_ctrl.js
  11. 4 0
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_invoice_ctrl.js
  12. 2 0
      src/main/webapp/resources/view/sso/left_nav.html
  13. 313 43
      src/main/webapp/resources/view/usercenter/forstore/bomDetail.html
  14. 8 0
      src/main/webapp/resources/view/usercenter/forstore/buyer_no_invoice.html
  15. 132 43
      src/main/webapp/resources/view/usercenter/forstore/pay_center.html
  16. 68 9
      src/main/webapp/resources/view/usercenter/forstore/seekPurchase.html
  17. 1 1
      src/main/webapp/resources/view/usercenter/left_nav.html
  18. 145 52
      src/main/webapp/resources/view/vendor/forstore/pay_center.html
  19. 5 3
      src/main/webapp/resources/view/vendor/forstore/purchaseOffer.html
  20. 8 0
      src/main/webapp/resources/view/vendor/forstore/vendor-invoice.html
  21. 1 1
      src/main/webapp/resources/view/vendor/left_nav.html

+ 4 - 1
src/main/java/com/uas/platform/b2c/common/account/controller/UserController.java

@@ -665,8 +665,11 @@ public class UserController {
 		userService.saveUserRole(user);
 		if (user != null) {
 			logger.log("用户信息", "修改用户信息,UU:" + user.getUserUU());
-			if (SystemSession.getUser().getUserUU().equals(user.getUserUU()))
+			if (SystemSession.getUser().getUserUU().equals(user.getUserUU())) {
+				user.setEnterprises(SystemSession.getUser().getEnterprises());
+				user.setCurrentEnterprise(SystemSession.getUser().getEnterprise().getUu());
 				request.getSession().setAttribute("user", user);
+			}
 		}
 		return new ResponseEntity<String>(HttpStatus.OK);
 	}

+ 8 - 3
src/main/java/com/uas/platform/b2c/common/search/service/impl/SearcherServiceImpl.java

@@ -659,12 +659,17 @@ public class SearcherServiceImpl implements SearcherService {
             type = "all";
         }
         try {
-            if (type.equals("store")) {
+            if (type.equals("store") || type.equals("all")) {
                 List<VendorIntroduction> vendorIntroductions = vendorIntroductionService.getVendorIntroduction(1,1024*1024*1024,keyword,null).getContent();
                 List<Object> resultMap = FastjsonUtils.fromJsonArray(JSON.toJSONString(vendorIntroductions.stream().map(VendorIntroduction::getEnName).map(en -> {Map s = new HashMap ();s.put("name", en);return s;}).collect(Collectors.toList())
                 ));
-                result= new HashMap<>();
-                result.put("result",resultMap);
+                if (type.equals("store")) {
+                    result= new HashMap<>();
+                    result.put("result",resultMap);
+                } else {
+                    result = searchService.getSimilarKeywords(keyword, type);
+                    result.put("store", resultMap);
+                }
             } else {
                 result = searchService.getSimilarKeywords(keyword, type);
             }

+ 27 - 15
src/main/webapp/resources/js/sso/app.js

@@ -1,7 +1,7 @@
 
-define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'common/services', 'common/directives','common/query/kind', 'common/query/brand', 'common/query/component', 'common/query/order', 'common/query/cart', 'common/query/goods', 'common/query/return' ,'angular-toaster', 'common/query/urlencryption', 'ui-jquery', 'common/query/bankTransfer', 'common/query/bankInfo', 'common/query/change', 'common/query/rate', 'common/query/logistics', 'common/query/address' ,'angular-toaster','common/query/collection', 'common/query/proofing', 'common/query/bill', 'common/query/user','file-upload', 'file-upload-shim', 'common/query/bankInfo' , 'common/query/responseLogistics', 'common/query/payment', 'common/query/afterSale', 'common/query/messageBoard', 'common/query/importDeclaration', 'common/query/enterprise', 'common/query/invoice', 'common/query/refund', 'common/query/recommendation', 'common/query/logisticsPort', 'common/query/storeInfo', 'common/query/tradeMessageNotice', 'common/query/tradeBasicProperties', 'common/query/browsingHistory', 'common/query/internalMessage', 'common/module/chat_web_module', 'angular-filter', 'common/query/vendor','common/query/seekPurchase', 'common/query/search', 'angular-sanitize', 'common/query/authority'], function(angularAMD) {
+define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'common/services', 'common/directives','common/query/kind', 'common/query/brand', 'common/query/component', 'common/query/order', 'common/query/cart', 'common/query/goods', 'common/query/return' ,'angular-toaster', 'common/query/urlencryption', 'ui-jquery', 'common/query/bankTransfer', 'common/query/bankInfo', 'common/query/change', 'common/query/rate', 'common/query/logistics', 'common/query/address' ,'angular-toaster','common/query/collection', 'common/query/proofing', 'common/query/bill', 'common/query/user','file-upload', 'file-upload-shim', 'common/query/bankInfo' , 'common/query/responseLogistics', 'common/query/payment', 'common/query/afterSale', 'common/query/messageBoard', 'common/query/importDeclaration', 'common/query/enterprise', 'common/query/invoice', 'common/query/refund', 'common/query/recommendation', 'common/query/logisticsPort', 'common/query/storeInfo', 'common/query/tradeMessageNotice', 'common/query/tradeBasicProperties', 'common/query/browsingHistory', 'common/query/internalMessage', 'common/module/chat_web_module', 'angular-filter', 'common/query/vendor','common/query/seekPurchase', 'common/query/search', 'angular-sanitize', 'common/query/authority','common/query/purchase'], function(angularAMD) {
 	'use strict';
-	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ng.local', 'ngTable', 'common.services', 'common.directives', 'tool.directives', 'common.query.kind', 'brandServices', 'componentServices', 'orderServices', 'cartServices', 'goodsServices', 'returnServices' , 'toaster', 'urlencryptionServices', 'ui.jquery', 'bankTransfer', 'bankInfo', 'changeServices','rateServices', 'logisticsServices', 'addressServices', 'toaster','collection','proofingServices', 'billServices', 'common.query.user', 'angularFileUpload', 'bankInfo', 'responseLogisticsService', 'PaymentService', 'afterSaleService', 'messageBoardServices', 'table.directives', 'importDeclaration', 'common.query.enterprise', 'invoiceServices', 'refundModule', 'recommendation','logisticsPortService', 'storeInfoServices', 'tradeMessageNoticeModule', 'tradeBasicPropertiesServices', 'BrowsingHistory', 'internalMessageServices', 'WebChatModule', 'angular.filter', 'vendorServices','seekPurchaseServices', 'searchService', 'ngSanitize', 'authorityServices']);
+	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ng.local', 'ngTable', 'common.services', 'common.directives', 'tool.directives', 'common.query.kind', 'brandServices', 'componentServices', 'orderServices', 'cartServices', 'goodsServices', 'returnServices' , 'toaster', 'urlencryptionServices', 'ui.jquery', 'bankTransfer', 'bankInfo', 'changeServices','rateServices', 'logisticsServices', 'addressServices', 'toaster','collection','proofingServices', 'billServices', 'common.query.user', 'angularFileUpload', 'bankInfo', 'responseLogisticsService', 'PaymentService', 'afterSaleService', 'messageBoardServices', 'table.directives', 'importDeclaration', 'common.query.enterprise', 'invoiceServices', 'refundModule', 'recommendation','logisticsPortService', 'storeInfoServices', 'tradeMessageNoticeModule', 'tradeBasicPropertiesServices', 'BrowsingHistory', 'internalMessageServices', 'WebChatModule', 'angular.filter', 'vendorServices','seekPurchaseServices', 'searchService', 'ngSanitize', 'authorityServices', 'purchaseServices']);
 	app.init = function() {
 		angularAMD.bootstrap(app);
 	};
@@ -52,18 +52,30 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
 			controller: 'rolePermissionCtrl',
 			controllerUrl: 'app/controllers/rolePermissionCtrl'
 		})).state('ssoAddress', angularAMD.route({
-        url: '/address',
-        templateUrl: 'static/view/sso/ssoAddress.html',
-        title: '收货地址',
-        controller: 'ssoAddressCtrl',
-        controllerUrl: 'app/controllers/ssoAddressCtrl'
-    })).state('ssoInvoice', angularAMD.route({
-      url: '/invoice',
-      templateUrl: 'static/view/sso/ssoInvoice.html',
-      title: '发票管理',
-      controller: 'ssoInvoiceCtrl',
-      controllerUrl: 'app/controllers/ssoInvoiceCtrl'
-    }))
+            url: '/address',
+            templateUrl: 'static/view/sso/ssoAddress.html',
+            title: '收货地址',
+            controller: 'ssoAddressCtrl',
+            controllerUrl: 'app/controllers/ssoAddressCtrl'
+        })).state('ssoInvoice', angularAMD.route({
+            url: '/invoice',
+            templateUrl: 'static/view/sso/ssoInvoice.html',
+            title: '发票管理',
+            controller: 'ssoInvoiceCtrl',
+            controllerUrl: 'app/controllers/ssoInvoiceCtrl'
+        })).state('payAccount', angularAMD.route({
+			url: '/payAccount?status',
+			title: '付款账户',
+			templateUrl: 'static/view/usercenter/forstore/pay_center.html',
+			controller: 'buyerPayCenterCtrl',
+			controllerUrl: 'js/usercenter/controllers/forstore/pay_center_ctrl'
+		})).state('gatheringAccount', angularAMD.route({
+			url: '/gatheringAccount?tab',
+			templateUrl: 'static/view/vendor/forstore/pay_center.html',
+			title: '收款账户',
+			controller: 'vendorPayCenterCtrl',
+			controllerUrl: 'js/vendor/controllers/forstore/pay_center_ctrl'
+		}))
 	}]);
 
 	// 状态码  -> 描述
@@ -227,7 +239,7 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
             });
             $rootScope.userInfo = data;
             $rootScope.userInfo.enterprise.enName ? $rootScope.personage = true : $rootScope.personage = false;
-            if ($rootScope.userInfo.enterprise) {
+			if ($rootScope.userInfo.enterprise) {
             	$rootScope.userInfo.enterprise.enAdminuu === $rootScope.userInfo.userUU ? $rootScope.isAdmin = true : $rootScope.isAdmin = false;
 			} else {
                 $rootScope.isAdmin = false

+ 1 - 0
src/main/webapp/resources/js/sso/main.js

@@ -2,6 +2,7 @@ require.config({
 	baseUrl : 'static',
 	paths : {
 		'app' : 'js/sso',
+		'js': 'js',
 		'angular' : 'lib/angular/angular.min',
 		'angularAMD' : 'lib/angular/angularAMD',
 		'angular-toaster': 'lib/angular/angular-toaster.min',

+ 2 - 2
src/main/webapp/resources/js/usercenter/app.js

@@ -78,9 +78,9 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
 			controller: 'buyerInvoiceRecordCtrl',
 			controllerUrl: 'app/controllers/forstore/buyer_invoice_record_ctrl'
 		})).state('pay_center', angularAMD.route({
-			url: '/payCenter',
+			url: '/payCenter?status',
 			templateUrl: 'static/view/usercenter/forstore/pay_center.html',
-			controller: 'payCenterCtrl',
+			controller: 'buyerPayCenterCtrl',
 			controllerUrl: 'app/controllers/forstore/pay_center_ctrl'
 		}))
 		/*	.state('my_seek_purchase', angularAMD.route({

+ 129 - 38
src/main/webapp/resources/js/usercenter/controllers/forstore/bom_detail_ctrl.js

@@ -6,9 +6,9 @@ define(['app/app', 'clipboard', 'QRCode'], function (app, clipboard, QRCode) {
     'use strict';
     app.register.controller('bomDetailCtrl',
         ['$scope', '$rootScope', 'seekPurchase', 'toaster', 'BaseService',
-            'ngTableParams', 'Order', 'SessionService', '$filter', '$upload', '$stateParams', '$http',
+            'ngTableParams', 'Order', 'SessionService', '$filter', '$upload', '$stateParams', '$http','Authority',
             function ($scope, $rootScope, seekPurchase, toaster, BaseService,
-                      ngTableParams, Order, SessionService, $filter, $upload, $stateParams, $http) {
+                      ngTableParams, Order, SessionService, $filter, $upload, $stateParams, $http, Authority) {
                 $rootScope.active = 'seek_purchase';
                 document.title = '我的求购-优软商城';
                 $scope.isEditName = false;
@@ -286,53 +286,144 @@ define(['app/app', 'clipboard', 'QRCode'], function (app, clipboard, QRCode) {
                 }
 
                 // 采纳报价
-                $scope.adopt = function () {
-                  if (!$scope.purchaseQuantity) {
-                    toaster.pop('error', "请输入正确的采购数量");
-                    return;
-                  }
-                  seekPurchase.updateSeekPurchaseStatus({
-                    spId: $scope.currentOffer.spId,
-                    ofId: $scope.currentOffer.id,
-                    purchaseQuantity: $scope.purchaseQuantity
-                  }, {}, function (data) {
-                    if (data.success) {
-                      $scope.currentOffer = null;
-                      $scope.seekPurchaseTableParams.reload();
-                      $scope.showUseFlag = false;
-                      toaster.pop('success', '采纳报价成功');
-                    } else {
-                      toaster.pop('error', data.message);
-                    }
-                  }, function (response) {
-                    toaster.pop('error', response.data);
+                $scope.adopt = function (of) {
+                  $http({
+                    headers:{
+                      'content-Type':'application/x-www-form-urlencoded'
+                    },
+                    method: 'POST',
+                    dataType: 'json',
+                    url: seekUrl + '/inquiry/buyer/adopt',
+                    params: {id: of.id, status: 1}
+                  }).success(function (data) {
+                    toaster.pop('success', '采纳报价成功');
+                    of.agreed = 1;
+                    // $scope.seekPurchaseTableParams.reload();
+                  }).error(function (response) {
+                    toaster.pop('error', response ? response.message : '该单据可能已被操作,请刷新后重试');
                   });
                 }
+                //  点击拒绝,选择理由
+                $scope.currentRefuseOffer = {};
+                $scope.showCurrentRefuseOffer = false;
+                $scope.setActiveRefuse = function (of) {
+                  $scope.currentRefuseOffer = of;
+                  $scope.setShowCurrentRefuseOffer(true);
+                }
+
+                $scope.setShowCurrentRefuseOffer = function (flag) {
+                  $scope.showCurrentRefuseOffer = flag;
+                }
+
+                $scope.choice = '采购需求变更';
 
+                // 选择理由
+                $scope.refuse = function (choice) {
+                  $http({
+                    headers:{
+                      'content-Type':'application/x-www-form-urlencoded'
+                    },
+                    method: 'POST',
+                    dataType: 'json',
+                    url: seekUrl + '/inquiry/buyer/refuse',
+                    params: {id:  $scope.currentRefuseOffer.id, status: 0, refusereason: choice}
+                  }).success(function (data) {
+                    toaster.pop('refuse', '已拒绝报价');
+                    $scope.setShowCurrentRefuseOffer(false);
+                    $scope.currentRefuseOffer.agreed = 0;
+                    $scope.currentRefuseOffer.refusereason =  choice
+                    // $scope.seekPurchaseTableParams.reload();
+                  }).error(function (response) {
+                    toaster.pop('error', response ? response.message : '该单据可能已被操作,请刷新后重试');
+                  });
+                }
                 $scope.offerCount = 0;
                 $scope.goodsCount = 0;
+                $scope.replaceOfferCount = 0;
                 $scope.currentSeek = {};
-                $scope.setSeekStatus = function (seek, status) {
-                  $scope.offerCount = seek.offerAmount || 0;
-                  $scope.goodsCount = seek.goodsAmount || 0;
+
+                // $scope.setSeekStatus = function (seek, status) {
+                //   $scope.offerCount = seek.offerAmount || 0;
+                //   $scope.goodsCount = seek.goodsAmount || 0;
+                //   $scope.currentSeek = seek;
+                //   // 查看报价
+                //   if (status == 2 && $scope.offerCount != 0) {
+                //     seekPurchase.getSeekPurchaseOfferPageInfo(
+                //         {count: 100, page: 1, spId: seek.spId},
+                //         function (data) {
+                //           $scope.offer = data.content;
+                //           clearSeekStatus();
+                //           seek.$status = status;
+                //         });
+                //   } else if (status == 1 && $scope.goodsCount != 0) {// 查看现货
+                //     seekPurchase.getMallGoodsList({spId: seek.spId},
+                //         function (data) {
+                //           $scope.goods = data;
+                //           clearSeekStatus();
+                //           initFragments();
+                //           seek.$status = status;
+                //         });
+                //   } else if (status == 0) { // 收起
+                //     seek.$status = status;
+                //   }
+                //   $scope.selectAmount = 0;
+                //   $scope.selectPrice = 0;
+                // }
+                $scope.setSeekStatus = function (seek, status, isDisabled) {
+                  if (isDisabled) {
+                    seek.$status = status;
+                    return;
+                  }
+                  if (seek.id != $scope.currentSeek.id) {
+                    $scope.isInit = true;
+                    $scope.goodsCount = 0;
+                    $scope.offerCount = 0;
+                    $scope.replaceOfferCount = 0;
+                  }
+
+                  // $scope.offerCount = seek.offerAmount;
                   $scope.currentSeek = seek;
+                  if (!seek.$status || seek.$status != 1) {
+                    seekPurchase.getMallGoodsList({code:seek.cmpCode, brand: seek.inbrand}, function (data) {
+                      $scope.goods = data;
+                      $scope.goodsCount = data.length;
+                    });
+                  }
                   // 查看报价
-                  if (status == 2 && $scope.offerCount != 0) {
-                    seekPurchase.getSeekPurchaseOfferPageInfo(
-                        {count: 100, page: 1, spId: seek.spId},
-                        function (data) {
-                          $scope.offer = data.content;
+                  if ((!seek.$status || seek.$status < 2) || (status == 2 && $scope.offerCount != 0) || (status == 3 && $scope.replaceOfferCount != 0)) {
+                    Authority.getAuthority({resUrl: '/authInquiry/inquiry/getQuotations'}, function (data) {
+                      if (data.status == 'fail') {
+                        toaster.pop('error', data.msg || '系统错误');
+                        return;
+                      } else {
+                        $http({
+                          method: 'GET',
+                          dataType: 'json',
+                          url: seekUrl + '/inquiry/buyer/quotation',
+                          params: {id:  seek.id}
+                        }).success(function (data) {
+                          $scope.offer = data.qutations;
                           clearSeekStatus();
-                          seek.$status = status;
+                          if (data.qutations && data.qutations.length && $scope.isInit) {
+                            for (var i = 0; i < data.qutations.length; i++) {
+                              if (data.qutations[i].isReplace == 1) {
+                                $scope.replaceOfferCount++;
+                              } else {
+                                $scope.offerCount++;
+                              }
+                            }
+                          }
+                          seek.$status = $scope.isInit ? $scope.offerCount == 0 ? 3 : 2 : status;
+                          $scope.isInit = false;
+                        }).error(function (response) {
+                          toaster.pop('error', response ? response.message : '该单据可能已被操作,请刷新后重试');
                         });
+                      }
+                    });
                   } else if (status == 1 && $scope.goodsCount != 0) {// 查看现货
-                    seekPurchase.getMallGoodsList({spId: seek.spId},
-                        function (data) {
-                          $scope.goods = data;
-                          clearSeekStatus();
-                          initFragments();
-                          seek.$status = status;
-                        });
+                    clearSeekStatus();
+                    initFragments();
+                    seek.$status = status;
                   } else if (status == 0) { // 收起
                     seek.$status = status;
                   }

+ 3 - 1
src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_no_invoice_ctrl.js

@@ -50,7 +50,6 @@ define([ 'app/app' ], function(app) {
             $scope.keyword = '';
         }
         initDataRule();
-
         $scope.$$kdnData = {};
 
         var initTable = function () {
@@ -130,6 +129,9 @@ define([ 'app/app' ], function(app) {
       // 内层DIV的滚动加载
       var window = angular.element($window);
       var docu = angular.element($document);
+      if (docu.scrollTop() + window.height() > docu.height() - 330) {
+        angular.element('#applyBtn').slideUp(0)
+      }
       window.on('scroll', function () {
         var scrollTop = docu.scrollTop();
         if (scrollTop + window.height() > docu.height() - 330) {

+ 76 - 4
src/main/webapp/resources/js/usercenter/controllers/forstore/pay_center_ctrl.js

@@ -3,8 +3,8 @@
  */
 define(['app/app'], function(app) {
 	'use strict';
-	app.register.controller('payCenterCtrl', ['$scope', '$rootScope', 'ngTableParams', 'BaseService', 'bankInfoService', '$filter', 'SessionService', '$modal', 'toaster', 'OrderSimpleInfo', 'Loading', 'Authority', function($scope, $rootScope, ngTableParams, BaseService, bankInfoService, $filter, SessionService, $modal, toaster, OrderSimpleInfo, Loading, Authority) {
-		$rootScope.active = 'pay_center';
+	app.register.controller('buyerPayCenterCtrl', ['$scope', '$rootScope', 'ngTableParams', 'BaseService', 'bankInfoService', '$filter', 'SessionService', '$modal', 'toaster', 'OrderSimpleInfo', 'Loading', 'Authority', '$stateParams', function($scope, $rootScope, ngTableParams, BaseService, bankInfoService, $filter, SessionService, $modal, toaster, OrderSimpleInfo, Loading, Authority, $stateParams) {
+		$rootScope.active = 'buyer_pay_center';
 
 		document.title = '支付中心-优软商城';
 		var hideBankFilter = $filter("hideBankFilter");
@@ -14,6 +14,11 @@ define(['app/app'], function(app) {
 
 		$scope.status = hiStatus == null ? 'pay-history' : hiStatus;
 
+		// pay-info
+		if ($stateParams.status) {
+			$scope.status = $stateParams.status;
+		}
+
 		//切换银行账户信息,历史记录的状态
 		$scope.toggleStatus = function(status) {
 			if($scope.status != status) {
@@ -42,6 +47,12 @@ define(['app/app'], function(app) {
 
 		$scope.paytype = 'ALL';
 
+		// 交易方式
+		$scope.remitteeType = 'ALL';
+
+		// 时间域选择
+		$scope.dateArea = 'ALL';
+
 		/**
 		 * 使用ngTable 获取支付记录信息
 		 */
@@ -61,9 +72,12 @@ define(['app/app'], function(app) {
 				if ($scope.currency && $scope.currency != 'ALL'){
 					param.currencyName = $scope.currency;
 				}
-				if ($scope.paytype && $scope.paytype != 'ALL'){
-					param.method = $scope.paytype;
+				if ($scope.remitteeType && $scope.remitteeType !== 'ALL') {
+					param.remitteeType = $scope.remitteeType;
 				}
+				// if ($scope.paytype && $scope.paytype != 'ALL'){
+				// 	param.method = $scope.paytype;
+				// }
 				if ($scope.startDate){
 					param.fromDate = $scope.startDate.getTime();
 				}
@@ -197,6 +211,7 @@ define(['app/app'], function(app) {
 					}
 				}
 			}
+			loadPayHistory();
 		};
 
 		/**
@@ -239,6 +254,63 @@ define(['app/app'], function(app) {
 			$scope.endDate = null;
 		};
 
+		var _formatDate = function (date, fmt) {
+			if (!date) {
+				return null;
+			}
+			if (typeof date === 'string') {
+				date = new Date(Date.parse(date.replace(/-/g, '/')));
+			}
+			var o = {
+				'M+': date.getMonth() + 1, // 月份
+				'd+': date.getDate(), // 日
+				'h+': date.getHours(), // 小时
+				'm+': date.getMinutes(), // 分
+				's+': date.getSeconds(), // 秒
+				'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
+				'S': date.getMilliseconds() // 毫秒
+			}
+			if (/(y+)/.test(fmt)) {
+				fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
+			}
+			for (var k in o) {
+				if (new RegExp('(' + k + ')').test(fmt)) {
+					fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)));
+				}
+			}
+			return fmt;
+		}
+
+		var _getClearDay = function (date) {
+			return new Date(_formatDate(date, 'yyyy-MM-dd')).getTime() - 8 * 60 * 60 * 1000
+		}
+
+		$scope.setFilters = function (type, val) {
+			$scope[type] = val;
+			if (type == 'dateArea') {
+				// 时间筛选
+				var currentTime = _getClearDay(new Date());
+				var endDate = new Date(currentTime + 23 * 60 * 60 * 1000 + 59 * 60 * 1000 + 59 * 1000);
+				if (val == 'ALL' || val == 'autoMonth') {
+					$scope.startDate = null;
+					$scope.endDate = null;
+				} else if (val == 'oneMonth') {
+					$scope.startDate = new Date(currentTime - 30 * 24 * 60 * 60 * 1000);
+					$scope.endDate = endDate;
+				} else if (val == 'threeMonth') {
+					$scope.startDate = new Date(currentTime - 3 * 30 * 24 * 60 * 60 * 1000);
+					$scope.endDate = endDate;
+				} else if (val == 'sixMonth') {
+					$scope.startDate = new Date(currentTime - 6 * 30 * 24 * 60 * 60 * 1000);
+					$scope.endDate = endDate;
+				} else {
+					$scope.startDate = null;
+					$scope.endDate = null;
+				}
+			}
+			loadPayHistory();
+		}
+
 		$scope.filterLoad = function () {
 			loadPayHistory();
 		};

+ 1 - 1
src/main/webapp/resources/js/vendor/app.js

@@ -574,7 +574,7 @@ define([ 'angularAMD', 'ngLocal', 'common/services', 'common/directives', 'commo
         })).state('pay_center', angularAMD.route({
 			url: '/payCenter?tab',
 			templateUrl: 'static/view/vendor/forstore/pay_center.html',
-			controller: 'payCenterCtrl',
+			controller: 'vendorPayCenterCtrl',
 			controllerUrl: 'app/controllers/forstore/pay_center_ctrl'
 		})).state('vendor_deliveryRule', angularAMD.route({
 			title : '配送规则',

+ 70 - 2
src/main/webapp/resources/js/vendor/controllers/forstore/pay_center_ctrl.js

@@ -3,8 +3,8 @@
  */
 define(['app/app'], function(app) {
     'use strict';
-    app.register.controller('payCenterCtrl', ['$scope', '$rootScope', 'bankInfoService', 'toaster', '$upload', 'bankTransferService', 'Purchase', '$filter', 'Loading', 'ngTableParams', 'BaseService', 'SessionService', '$stateParams', '$http', 'Authority', function($scope, $rootScope, bankInfoService, toaster, $upload, bankTransferService, Purchase, $filter, Loading, ngTableParams, BaseService, SessionService, $stateParams, $http, Authority) {
-        $rootScope.active = 'pay_center';
+    app.register.controller('vendorPayCenterCtrl', ['$scope', '$rootScope', 'bankInfoService', 'toaster', '$upload', 'bankTransferService', 'Purchase', '$filter', 'Loading', 'ngTableParams', 'BaseService', 'SessionService', '$stateParams', '$http', 'Authority', function($scope, $rootScope, bankInfoService, toaster, $upload, bankTransferService, Purchase, $filter, Loading, ngTableParams, BaseService, SessionService, $stateParams, $http, Authority) {
+        $rootScope.active = 'vendor_pay_center';
 
         document.title = '结算中心-优软商城';
         // 加密订单的ID过滤器
@@ -22,6 +22,12 @@ define(['app/app'], function(app) {
         $scope.paytype = 'ALL';
         $scope.$$transfer = {};
 
+        // 交易方式
+        $scope.remitteeType = 'ALL';
+
+        // 时间域选择
+        $scope.dateArea = 'ALL';
+
         var getTransferMoney = function () {
             bankTransferService.getTotalTransferMoney({}, function (data) {
                 if (data.code == 1) {
@@ -55,6 +61,9 @@ define(['app/app'], function(app) {
                     if ($scope.endDate){
                         param.toDate = $scope.endDate.getTime();
                     }
+                    if ($scope.remitteeType && $scope.remitteeType !== 'ALL') {
+                        param.remitteeType = $scope.remitteeType;
+                    }
                     bankTransferService.getVendorBankTransferByMall(param, function (page) {
                         if(page.code == 1) {
                             $scope.bankTransRecore = page.data.data.content;
@@ -144,6 +153,64 @@ define(['app/app'], function(app) {
             $scope.endDate = null;
         };
 
+
+        var _formatDate = function (date, fmt) {
+            if (!date) {
+                return null;
+            }
+            if (typeof date === 'string') {
+                date = new Date(Date.parse(date.replace(/-/g, '/')));
+            }
+            var o = {
+                'M+': date.getMonth() + 1, // 月份
+                'd+': date.getDate(), // 日
+                'h+': date.getHours(), // 小时
+                'm+': date.getMinutes(), // 分
+                's+': date.getSeconds(), // 秒
+                'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
+                'S': date.getMilliseconds() // 毫秒
+            }
+            if (/(y+)/.test(fmt)) {
+                fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
+            }
+            for (var k in o) {
+                if (new RegExp('(' + k + ')').test(fmt)) {
+                    fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)));
+                }
+            }
+            return fmt;
+        }
+
+        var _getClearDay = function (date) {
+            return new Date(_formatDate(date, 'yyyy-MM-dd')).getTime() - 8 * 60 * 60 * 1000
+        }
+
+        $scope.setFilters = function (type, val) {
+            $scope[type] = val;
+            if (type == 'dateArea') {
+                // 时间筛选
+                var currentTime = _getClearDay(new Date());
+                var endDate = new Date(currentTime + 23 * 60 * 60 * 1000 + 59 * 60 * 1000 + 59 * 1000);
+                if (val == 'ALL' || val == 'autoMonth') {
+                    $scope.startDate = null;
+                    $scope.endDate = null;
+                } else if (val == 'oneMonth') {
+                    $scope.startDate = new Date(currentTime - 30 * 24 * 60 * 60 * 1000);
+                    $scope.endDate = endDate;
+                } else if (val == 'threeMonth') {
+                    $scope.startDate = new Date(currentTime - 3 * 30 * 24 * 60 * 60 * 1000);
+                    $scope.endDate = endDate;
+                } else if (val == 'sixMonth') {
+                    $scope.startDate = new Date(currentTime - 6 * 30 * 24 * 60 * 60 * 1000);
+                    $scope.endDate = endDate;
+                } else {
+                    $scope.startDate = null;
+                    $scope.endDate = null;
+                }
+            }
+            loadHistory();
+        }
+
         $scope.search = function () {
             if (!$scope.startDate && $scope.endDate){
                 toaster.pop("info", "请输入起始日期");
@@ -257,6 +324,7 @@ define(['app/app'], function(app) {
                     }
                 }
             }
+            loadHistory();
         };
 
         /**

+ 4 - 0
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_invoice_ctrl.js

@@ -199,9 +199,13 @@ define([ 'app/app' ], function(app) {
             });
         }
 
+
       // 内层DIV的滚动加载
       var window = angular.element($window);
       var docu = angular.element($document);
+      if (docu.scrollTop() + window.height() > docu.height() - 330) {
+        angular.element('#applyBtn').slideUp(0)
+      }
       window.on('scroll', function () {
         var scrollTop = docu.scrollTop();
         if (scrollTop + window.height() > docu.height() - 330) {

+ 2 - 0
src/main/webapp/resources/view/sso/left_nav.html

@@ -49,6 +49,8 @@
 		<li ng-if="personage" ng-class="{'active' : active == 'sso_permission'}"><span ui-sref="ssoPermission">角色权限</span></li>
 		<li ng-class="{'active' : active == 'sso_address'}"><span ui-sref="ssoAddress">收货地址</span></li>
 		<li ng-class="{'active' : active == 'sso_invoice'}"><span ui-sref="ssoInvoice">发票管理</span></li>
+		<li ng-class="{'active' : active == 'vendor_pay_center'}" ng-if="userInfo.enterprise.uu && userInfo.enterprise.isVendor == 313"><span ui-sref="gatheringAccount({'tab': 'accountTab'})">收款账户</span></li>
+		<li ng-class="{'active' : active == 'buyer_pay_center'}"><span ui-sref="payAccount({'status': 'pay-info'})">付款账户</span></li>
 		<!--<li ng-class="{'active' : active == 'vendor_logistics'}">-->
 			<!--<span  ui-sref="vendor_logistics" ng-hide="store && (!store.status || store.status === 'OPENED')">物流管理</span>-->
 			<!--<span  ui-sref="vendor_deliveryRule" ng-if="store && (!store.status || store.status === 'OPENED')">物流管理</span>-->

+ 313 - 43
src/main/webapp/resources/view/usercenter/forstore/bomDetail.html

@@ -269,26 +269,27 @@
     }
     .seek-purchase .seek-purchase-content >table >tbody tr.expand-row td .switch-line a {
         position: relative;
-        width: 50%;
+        width: 33.2%;
         height: 34px;
         line-height: 34px;
         text-align: center;
         display: inline-block;
-        background: #d7d6d5;
-        color: #fff;
+        background: #d6e5ff;
+        color: #3f84f6;
     }
     .seek-purchase .seek-purchase-content >table >tbody tr.expand-row td .switch-line a.active {
-        background: #414140;
-    }
-    .seek-purchase .seek-purchase-content >table >tbody tr.expand-row td .switch-line a:first-child::after {
-        position: absolute;
-        right: 0;
-        content: '';
-        width: 0;
-        height: 0;
-        border-bottom: 34px solid #414140;
-        border-left: 12px solid transparent;
+        background: #3f84f6;
+        color: #fff;
     }
+    /*.seek-purchase .seek-purchase-content >table >tbody tr.expand-row td .switch-line a:first-child::after {*/
+        /*position: absolute;*/
+        /*right: 0;*/
+        /*content: '';*/
+        /*width: 0;*/
+        /*height: 0;*/
+        /*border-bottom: 34px solid #414140;*/
+        /*border-left: 12px solid transparent;*/
+    /*}*/
     .seek-purchase .seek-purchase-content >table >tbody tr.expand-row td .switch-line a:first-child.active::after {
         border-bottom-color: #d7d6d5;
     }
@@ -362,9 +363,18 @@
     .seek-purchase .seek-purchase-content .BOM-header > div {
         height: 100px;
         margin: 14px 0 0 0;
-        line-height: 100px;
+        /*line-height: 100px;*/
         border: 1px dashed #fd7748;
-        padding: 0 66px 0 21px;
+        padding: 10px 66px 0 21px;
+    }
+    .seek-purchase .seek-purchase-content .BOM-header > div span {
+        font-size: 22px;
+        font-weight: bold;
+        margin-right: 20px
+    }
+    .seek-purchase .seek-purchase-content .BOM-header > div a {
+        font-size: 14px;
+        color: #666
     }
     .seek-purchase .seek-purchase-content .BOM-header > div .fr {
         line-height: normal;
@@ -546,10 +556,16 @@
         <div class="BOM-header">
             <a href="user#/seekPurchase?type=bomManage">&lt;返回BOM列表</a>
             <div>
-                <p class="BOM-name-area" ng-show="!isEditName">
+                <div class="BOM-name-area" ng-show="!isEditName">
                     <span ng-bind="bomInfo.remark"></span>
-                    <!--<a ng-click="setIsEditName(true)">编辑BOM名称</a>-->
-                </p>
+                    <a ng-bind="bomInfo.date | date:'yyyy-MM-dd HH:mm:ss'"></a>
+                    <div class="progress">
+                        <div class="left">{{bomInfo.quotedAmount}}</div>
+                        <div class="progressBtn" ng-style="{width: bomInfo.quotedAmount / bomInfo.amount * '100' + '%'}"></div>
+                        <div class="right" ng-if="bomInfo.amount - bomInfo.quotedAmount > 0">{{bomInfo.amount - bomInfo.quotedAmount}}</div>
+                    </div>
+                    <p>本单共<span>{{bomInfo.amount}}</span>个产品,<span>{{bomInfo.quotedAmount}}</span>个已报价(其中{{bomInfo.replaceQuotedAmount}}个为替代料报价)</p>
+                </div>
                 <p class="BOM-edit" ng-show="isEditName">
                     <input type="text" class="form-control" ng-change="onBomNameChange()" ng-model="bomName">
                     <a ng-click="setIsEditName(false)">取消</a>
@@ -634,8 +650,8 @@
                 <th width="260">品牌/物料名称</th>
                 <th width="260">型号/规格</th>
                 <th width="110">采购数量(PCS)</th>
-                <th width="120">截止时间</th>
-                <th width="136">状态</th>
+                <th width="120">状态/截止时间</th>
+                <th width="136">操作</th>
                     <!--
                     <select class="select-adder form-control" ng-model="searchStatus" ng-change="onSearch(searchStatus)">
                         <option value="0">全部</option>
@@ -685,11 +701,36 @@
                         </div>
                     </div>
                 </td>
-                <td class="left-time" ng-if="seek.remainingTime > 0">剩余&nbsp;<span ng-bind="getDay(seek.remainingTime)" ng-if="getDay(seek.remainingTime) > 0" class="red-text"></span><i ng-if="getDay(seek.remainingTime) > 0">&nbsp;天&nbsp;</i><span ng-if="getDay(seek.remainingTime) <= 0" ng-bind="getHours(seek.remainingTime)" class="red-text">5</span><i ng-if="getDay(seek.remainingTime) <= 0">&nbsp;小时</i></td>
-                <td class="left-time" ng-if="seek.remainingTime <= 0"><span style="color: red;">已截止</span></td>
+                <td class="left-time">
+                    <div class="row-wrap">
+                        <span ng-if="seek.offerAmount == 0" style="color:red;">待报价</span>
+                        <span ng-if="seek.agreed == 0 && seek.offerAmount > 0">已报价</span>
+                        <span ng-if="seek.agreed == 1" style="color:green;">已采纳</span>
+                        <div class="remain" ng-if="seek.remainingTime > 0">
+                            剩余&nbsp;<span ng-bind="getDay(seek.remainingTime)" ng-if="getDay(seek.remainingTime) > 0" class="red-text"></span>
+                            <i ng-if="getDay(seek.remainingTime) > 0">&nbsp;天&nbsp;</i>
+                            <span ng-if="getDay(seek.remainingTime) <= 0" ng-bind="getHours(seek.remainingTime)" class="red-text">5</span>
+                            <i ng-if="getDay(seek.remainingTime) <= 0">&nbsp;小时</i>
+                        </div>
+                        <div class="remain" ng-if="seek.remainingTime <= 0"><span>已截止</span></div>
+                        <div class="remain" ng-if="seek.remainingTime == null"><span>-</span></div>
+                    </div>
+                </td>
+                <!--<td class="left-time" ng-if="seek.remainingTime > 0">-->
+                    <!--剩余&nbsp;<span ng-bind="getDay(seek.remainingTime)" ng-if="getDay(seek.remainingTime) > 0" class="red-text"></span>-->
+                    <!--<i ng-if="getDay(seek.remainingTime) > 0">&nbsp;天&nbsp;</i>-->
+                    <!--<span ng-if="getDay(seek.remainingTime) <= 0" ng-bind="getHours(seek.remainingTime)" class="red-text">5</span>-->
+                    <!--<i ng-if="getDay(seek.remainingTime) <= 0">&nbsp;小时</i>-->
+                <!--</td>-->
+                <!--<td class="left-time" ng-if="seek.remainingTime <= 0">-->
+                    <!--<span style="color: red;">已截止</span>-->
+                <!--</td>-->
                 <td class="operate-seek">
-                    <span ng-if="seek.offerAmount == 0" style="color:red;">待报价</span>
-                    <span ng-if="seek.offerAmount > 0">已报价</span>
+                    <span style="margin-left:0" ng-if="seek.offerAmount > 0" ng-show="!seek.$status || seek.$status == 0" ng-click="setSeekStatus(seek, 2)">查看报价&nbsp;<i class="fa fa-angle-double-down" style="display: contents;"></i></span>
+                    <span style="margin-left:0" ng-if="seek.goodsAmount > 0" ng-show="!seek.$status || seek.$status == 0" ng-click="setSeekStatus(seek, 1)">商城现货&nbsp;<i class="fa fa-angle-double-down" style="display: contents;"></i></span>
+                    <span style="margin-left:0" ng-show="seek.$status && (seek.$status == 1 || seek.$status == 2 || seek.$status == 3)" ng-click="setSeekStatus(seek, 0, true)">收起&nbsp;<i class="fa fa-angle-double-up" style="display: contents;"></i></span>
+                    <!--<span ng-if="seek.offerAmount == 0" style="color:red;">待报价</span>-->
+                    <!--<span ng-if="seek.offerAmount > 0">已报价</span>-->
                     <div class="sharecode" ng-mouseover="setShowShare(seek,$index)" ng-mouseleave="hideShare($index)">
                         <div class="sharecodeT">分<br/>享</div>
                         <div class="sharecodeBtn">
@@ -716,12 +757,14 @@
                 </td>
                 -->
             </tr>
-            <tr class="expand-row" ng-if="seek.$status == 1 || seek.$status == 2">
+
+            <tr class="expand-row" ng-if="seek.$status == 1 || seek.$status == 2 || seek.$status == 3">
                 <td colspan="10">
                     <div>
                         <div class="switch-line">
-                            <a ng-disabled="goodsCount == 0" ng-class="{'active': seek.$status == 1}" ng-click="setSeekStatus(seek, 1)">商城现货(<span ng-bind="goodsCount || 0"></span>)</a>
-                            <a ng-disabled="offerCount == 0" ng-class="{'active': seek.$status == 2}"  ng-click="setSeekStatus(seek, 2)">当前报价(<span ng-bind="offerCount || 0"></span>)</a>
+                            <a ng-disabled="goodsCount == 0" ng-class="{'active': seek.$status == 1}" ng-click="setSeekStatus(seek, 1, goodsCount == 0)">商城现货(<span ng-bind="goodsCount || 0"></span>)</a>
+                            <a ng-disabled="offerCount == 0" ng-class="{'active': seek.$status == 2}"  ng-click="setSeekStatus(seek, 2, offerCount == 0)">当前报价(<span ng-bind="offerCount || 0"></span>)</a>
+                            <a ng-disabled="replaceOfferCount == 0" ng-class="{'active': seek.$status == 3}"  ng-click="setSeekStatus(seek, 3, replaceOfferCount == 0)">替代型号报价(<span ng-bind="replaceOfferCount"></span>)</a>
                         </div>
                         <div ng-show="seek.$status == 1">
                             <table>
@@ -777,30 +820,118 @@
                             </div>
                             -->
                         </div>
-                        <div ng-show="seek.$status == 2">
+                        <div ng-show="seek.$status == 2 || seek.$status == 3">
                             <table>
                                 <thead>
-                                <tr>
-                                    <th width="173">卖家</th>
-                                    <th width="186">交期(天)</th>
-                                    <th width="186">单价</th>
-                                    <th width="195">生产日期</th>
+                                <tr ng-if="seek.$status == 2">
+                                    <th width="273">卖家</th>
+                                    <th width="233">交期(天)</th>
+                                    <th width="234">价格梯度</th>
+                                    <!--<th width="195">生产日期</th>-->
                                     <th width="221">操作</th>
                                 </tr>
+                                <tr ng-if="seek.$status == 3">
+                                    <th width="164">卖家</th>
+                                    <th width="84">品牌</th>
+                                    <th width="96">型号</th>
+                                    <th width="80">规格</th>
+                                    <th width="81">交期(天)</th>
+                                    <th width="102">价格梯度</th>
+                                    <th width="100">报价时间</th>
+                                    <!--<th width="195">生产日期</th>-->
+                                    <th width="181">操作</th>
+                                </tr>
                                 </thead>
                             </table>
                             <div class="seek-list">
                                 <table>
                                     <tbody>
-                                    <tr ng-repeat="of in offer">
-                                        <td width="173" ng-bind="(of.enterprise).enName"></td>
-                                        <td width="186" class="red-text" ng-bind="of.minDay+'-'+of.maxDay">4-6</td>
-                                        <td width="186"><span>{{of.currency + of.unitPrice | currencyStr}}</span></td>
-                                        <td width="195" ng-bind="of.produceDate || '-'"></td>
-                                        <td width="221" class="operate">
-                                            <a>联系卖家<img src="static/img/seekPurchase/link-buyer.png" alt=""></a>
-                                            <img ng-if="of.status == 202" src="static/img/seekPurchase/recieved.png" alt="" class="ng-scope">
-                                            <span ng-if="seek.status != 202" ng-click="setShowUseFlag(true, of)">采纳报价</span>
+                                        <tr ng-repeat="of in offer track by $index" ng-if="seek.$status == 2 && of.isReplace != 1">
+                                            <td width="273" ng-bind="of.vendName" title="{{of.vendName}}"></td>
+                                            <td width="233" class="red-text" ng-bind="of.leadtime">4-6</td>
+                                            <td width="234" class="seek-replies">
+                                                <!--<span>{{of.currency + of.unitPrice | currencyStr}}</span>-->
+                                                <div class="red-text">
+                                                    <!--<span>{{of.replies[0].lapQty}}</span>
+                                                    <span>{{of.currency + of.replies[0].price | currencyStr}}</span>-->
+                                                </div>
+                                                <ul class="red-text">
+                                                    <li ng-repeat="re in of.replies">
+                                                        <span ng-bind="re.lapQty" title="{{re.lapQty}}">1+</span>
+                                                        <span title="{{of.currency + re.price | currencyStr}}">{{of.currency + re.price | currencyStr}}</span>
+                                                    </li>
+                                                </ul>
+                                            </td>
+                                            <!--<td width="195" ng-bind="of.produceDate || '-'"></td>-->
+                                            <td width="221" class="operate">
+                                                <div style="display: inline-block" ng-controller="ChatContactCtrl as chat">
+                                                    <a href="javascript:void(0)" ng-click="chat.contactWithOther(null, currentSeek.qutations[$index].enterprise.uu, chat.UserType.ENTERPRISE)">联系卖家<img src="static/img/seekPurchase/link-buyer.png" alt=""></a>
+                                                    <div class="com-mall-del-box link-saler-box" ng-if="showLinkBox">
+                                                        <div class="title">
+                                                            <i ng-click="setShowLinkBox(false)"></i>
+                                                        </div>
+                                                        <div class="content">
+                                                            <p><i class="fa fa-exclamation-circle"></i>抱歉,暂时无法与卖家在线沟通!</p>
+                                                            <p>卖家联系电话:<span ng-bind="phone"></span></p>
+                                                            <div>
+                                                                <a ng-click="setShowLinkBox(false)">我知道了</a>
+                                                            </div>
+                                                        </div>
+                                                    </div>
+                                                </div>
+                                                <b class="refused-show" ng-if="of.agreed == 0">拒绝原因 <img src="static/img/seekPurchase/refu.png" alt="">
+                                                    <a class="say-price-history" ng-bind="of.refusereason"></a>
+                                                </b>
+                                                <img ng-if="of.agreed == 1" src="static/img/seekPurchase/recieved.png" alt="" class="ng-scope">
+                                                <img ng-if="of.agreed == 0" src="static/img/seekPurchase/refused.png" alt="" class="ng-scope">
+                                                <span class="seek-btn" ng-if="of.agreed != 0 && of.agreed != 1" ng-click="adopt(of)">采纳</span>
+                                                <a class="seek-btn" ng-if="of.agreed != 0 && of.agreed != 1" ng-click="setActiveRefuse(of)">拒绝</a>
+                                            </td>
+                                        </tr>
+                                        <tr ng-repeat="of in offer track by $index" ng-if="seek.$status == 3 && of.isReplace == 1">
+                                        <td width="164" ng-bind="of.vendName" title="{{of.vendName}}"></td>
+                                        <td width="84" ng-bind="of.replaceBrand || '-'" title="{{of.replaceBrand}}"></td>
+                                        <td width="96" ng-bind="of.replaceCmpCode || '-'" title="{{of.replaceCmpCode}}"></td>
+                                        <td width="80" ng-bind="of.replaceSpec || '-'" title="{{of.replaceSpec}}"></td>
+                                        <td width="81" class="red-text" ng-bind="of.leadtime">4-6</td>
+                                        <td width="102" class="seek-replies">
+                                            <!--<span>{{of.currency + of.unitPrice | currencyStr}}</span>-->
+                                            <div class="red-text">
+                                                <!--<span>{{of.replies[0].lapQty}}</span>
+                                                <span>{{of.currency + of.replies[0].price | currencyStr}}</span>-->
+                                            </div>
+                                            <ul class="red-text">
+                                                <li ng-repeat="re in of.replies">
+                                                    <span ng-bind="re.lapQty" title="{{re.lapQty}}">1+</span>
+                                                    <span title="{{of.currency + re.price | currencyStr}}">{{of.currency + re.price | currencyStr}}</span>
+                                                </li>
+                                            </ul>
+                                        </td>
+                                        <td width="100" class="red-text" ng-bind="of.offerTime | date:'yyyy-MM-dd'"></td>
+                                        <!--<td width="195" ng-bind="of.produceDate || '-'"></td>-->
+                                        <td width="181" class="operate">
+                                            <div style="display: inline-block" ng-controller="ChatContactCtrl as chat">
+                                                <a href="javascript:void(0)" ng-click="chat.contactWithOther(null, currentSeek.qutations[$index].enterprise.uu, chat.UserType.ENTERPRISE)">联系卖家<img src="static/img/seekPurchase/link-buyer.png" alt=""></a>
+                                                <div class="com-mall-del-box link-saler-box" ng-if="showLinkBox">
+                                                    <div class="title">
+                                                        <i ng-click="setShowLinkBox(false)"></i>
+                                                    </div>
+                                                    <div class="content">
+                                                        <p><i class="fa fa-exclamation-circle"></i>抱歉,暂时无法与卖家在线沟通!</p>
+                                                        <p>卖家联系电话:<span ng-bind="phone"></span></p>
+                                                        <div>
+                                                            <a ng-click="setShowLinkBox(false)">我知道了</a>
+                                                        </div>
+                                                    </div>
+                                                </div>
+                                            </div>
+                                            <b class="refused-show" ng-if="of.agreed == 0">拒绝原因 <img src="static/img/seekPurchase/refu.png" alt="">
+                                                <a class="say-price-history" ng-bind="of.refusereason"></a>
+                                            </b>
+                                            <img ng-if="of.agreed == 1" src="static/img/seekPurchase/recieved.png" alt="" class="ng-scope">
+                                            <img ng-if="of.agreed == 0" src="static/img/seekPurchase/refused.png" alt="" class="ng-scope">
+                                            <span class="seek-btn" ng-if="of.agreed != 0 && of.agreed != 1" ng-click="adopt(of)">采纳</span>
+                                            <a class="seek-btn" ng-if="of.agreed != 0 && of.agreed != 1" ng-click="setActiveRefuse(of)">拒绝</a>
                                         </td>
                                     </tr>
                                     </tbody>
@@ -836,4 +967,143 @@
             </div>
         </div>
     </div>
-</div>
+    <div class="com-mall-del-box link-saler-box" ng-if="showCurrentRefuseOffer">
+        <div class="title">
+            <i  ng-click="setShowCurrentRefuseOffer(false)"></i>
+        </div>
+        <div class="content">
+            <p><i class="fa fa-exclamation-circle"></i>拒绝报价原因:
+                <select class="select-adder" ng-model="choice">
+                    <option value="采购需求变更">采购需求变更</option>
+                    <option value="价格过高">价格过高</option>
+                    <option value="需进一步了解信息">需进一步了解信息</option>
+                    <option value="已选定合适供应商">已选定合适供应商</option>
+                    <option value="交期过长">交期过长</option>
+                </select>
+            </p>
+            <div>
+                <a ng-click="setShowCurrentRefuseOffer(false)">关闭</a>
+                <a ng-click="refuse(choice)">确定</a>
+            </div>
+        </div>
+    </div>
+</div>
+<style>
+    .seek-purchase .link-saler-box {
+        width: 289px;
+        height: auto;
+        min-height: auto;
+        border-radius: 2px;
+        position: fixed;
+        z-index: 10;
+        opacity: 1;
+        background-color: white;
+        -webkit-box-shadow: 0 5px 15px rgba(0,0,0,.5);
+        box-shadow: 0 5px 15px rgba(0,0,0,.5);
+        margin: -155px 0 0 -75px;
+        top: 55%;
+        left: 50%;
+    }
+    .seek-purchase .link-saler-box .title {
+        background-color: #4290f7;
+        height: 22px;
+        line-height: 22px;
+        margin-bottom: 20px;
+        text-align: right;
+        padding-right: 15px;
+    }
+    .com-mall-del-box .title i {
+        background: url('../img/icon/close.png') no-repeat;
+        display: inline-block;
+        width: 9px;
+        height: 9px;
+        cursor: pointer;
+        margin: 0;
+    }
+    .com-mall-del-box .content {
+        width: 100%;
+        text-align: center;
+        margin: 0 auto;
+    }
+    .seek-purchase .link-saler-box .content p {
+        line-height: 20px;
+        padding-top: 0;
+        color: #333;
+        font-size: 14px;
+    }
+    .seek-purchase .link-saler-box .content p i {
+        color: #4290f7;
+        margin-right: 4px;
+        font-size: 16px;
+    }
+    .seek-purchase .link-saler-box .select-adder {
+        display: inline-block;
+        width: 127px;
+        height: 22px;
+        border-radius: 2px;
+        border: 1px solid #a7a8a8;
+        padding: 0 20px 0 6px;
+        opacity: 1;
+        background: url(../img/user/images/xiala.png) right no-repeat #fff!important;
+        background-position-x: 100%!important;
+    }
+    .com-mall-del-box .content div {
+        width: 100%;
+        text-align: center;
+        margin: 0 auto
+    }
+    .seek-purchase .link-saler-box .content div a {
+        margin: 18px 0 13px 0;
+        border-radius: 2px;
+        color: #fff;
+        width: 78px!important;
+        background: #4290f7!important;
+    }
+    .progress {
+        width: 265px;
+        height: 13px;
+        line-height: 13px;
+        background: #d7d7d7;
+        border-radius: 13px;
+        overflow: hidden;
+        position: relative;
+        margin-top: 10px;
+        margin-bottom: 10px;
+    }
+    .progress ~ p {
+        font-size: 14px;
+        color: #666;
+    }
+    .seek-purchase .seek-purchase-content .BOM-header > div  p span {
+        color: #fd7748;
+        font-weight: 500;
+        font-size: 14px;
+        margin-right: 0;
+    }
+    .progress .left {
+        color: #fff;
+        font-size: 12px;
+        position: absolute;
+        left: 10px;
+        top: 0;
+        z-index: 2;
+    }
+    .progress .right {
+        color: #fff;
+        font-size: 12px;
+        position: absolute;
+        right: 15px;
+        top: 0;
+        z-index: 2;
+    }
+    .progress .progressBtn {
+        position: absolute;
+        left: 0;
+        top: 0;
+        height: 13px;
+        background: -webkit-linear-gradient(left, #8bbdff, #5078cb); /* Safari 5.1 - 6.0 */
+        background: -o-linear-gradient(left, #8bbdff, #5078cb); /* Opera 11.1 - 12.0 */
+        background: -moz-linear-gradient(left, #8bbdff, #5078cb); /* Firefox 3.6 - 15 */
+        background: linear-gradient(left, #8bbdff, #5078cb); /* 标准的语法 */
+    }
+</style>

+ 8 - 0
src/main/webapp/resources/view/usercenter/forstore/buyer_no_invoice.html

@@ -100,7 +100,15 @@
 .check-act input:checked + label{
     background-position: -31px 0;
 }
+.ng-table-pager::after {
+    content: ' ';
+    clear: both;
+    display: block;
+    visibility: hidden;
+    zoom: 1;
+}
 .apply-btn{
+    z-index: 10;
     /*margin: 30px 0;*/
     text-align: center;
     position: fixed;

+ 132 - 43
src/main/webapp/resources/view/usercenter/forstore/pay_center.html

@@ -105,26 +105,26 @@
 
 	}
 	.pay_record .ticket_record_list dl span:nth-child(1){
-		width:17.03%!important;
+		width:26%!important;
 	}
 	.pay_record .ticket_record_list dl span:nth-child(2){
-		width:15.73%!important;
+		width:20%!important;
 	}
 	.pay_record .ticket_record_list dl span:nth-child(3){
-		width:23.84%!important;
+		width:16%!important;
 	}
 	.pay_record .ticket_record_list dl span:nth-child(4){
-		width:8%!important;
+		width:10%!important;
 	}
 	.pay_record .ticket_record_list dl span:nth-child(5){
-		width:9.65%!important;
+		width:8%!important;
 	}
 	.pay_record .ticket_record_list dl span:nth-child(6){
-		width:12.12%!important;
+		width:20%!important;
 	}
-	.pay_record .ticket_record_list dl span:nth-child(7){
+	/*.pay_record .ticket_record_list dl span:nth-child(7){
 		width:13.52%!important;
-	}
+	}*/
 	.pay_record .ticket_record_list dl span .select-adder {
 		opacity: 1;
 		width: 64px;
@@ -141,19 +141,30 @@
 		font-size: 14px;
 		background: #89aefa;
 	}
+	.pay_record .ticket_record_list dl dd {
+		border: 1px solid #dae5fd;
+		border-top: none;
+	}
 	.pay_record .ticket_record_list dl dd:hover {
 		background: #f1f5ff;
 	}
-	.pay_record .ticket_record_list dl dd span:first-child{
+	/*.pay_record .ticket_record_list dl dd span:first-child{
 		border-left: 1px solid #dae5fd;
 	}
+	.pay_record .ticket_record_list dl dd span:first-child{
+		border-left: 1px solid #dae5fd;
+	}*/
 	.pay_record .ticket_record_list dl dd span {
 		color: #666;
-		border-right: 1px solid #dae5fd;
-		border-bottom: 1px solid #dae5fd;
+	/*	border-right: 1px solid #dae5fd;
+		border-bottom: 1px solid #dae5fd;*/
+	}
+	.pay_record .ticket_record_list dl dd .link {
+		color: #3f84f6;
 	}
 	.ticket_record_list{
 		background: none;
+		margin: 0!important;
 	}
 	ul.pagination.ng-table-pagination > li > a > span {
 		height: 17px;
@@ -436,17 +447,43 @@
 	.empty .empty-info i{
 		margin-right:5px;
 	}
+	.check-filter {
+		height: 80px;
+		line-height: 30px;
+		padding-left: 22px;
+		margin-top: 0;
+	}
+	.check-filter .sreach input {
+		width: 147px;
+	}
+	.check-filter .radio-block {
+		display: inline-block;
+		font-size: 14px;
+		width: 33.3%;
+	}
+	.check-filter .radio-block.date-radio {
+		width: 46%;
+	}
+	.check-filter .radio-block .com-check-radio {
+		font-weight: normal;
+		color: #666;
+		margin-right: 13px;
+	}
+	.check-filter .radio-block .com-check-radio:last-child {
+		margin-right: 0;
+	}
+
 </style>
 <!--右侧主体部分-->
 <div class="user_right fr" id="pay_center">
 	<!--支付中心-->
 	<div class="pay_record oder">
-		<div class="oder01" style="margin-bottom: 16px;">
+		<!--<div class="oder01" style="margin-bottom: 16px;">
 			<ul>
 				<li ng-class="{'active' : status=='pay-history'}" ng-click="toggleStatus('pay-history')"><a href="javascript:void(0)">交易记录</a></li>
 				<li ng-class="{'active' : status=='pay-info'}" ng-click="toggleStatus('pay-info')"><a href="javascript:void(0)">付款账户</a></li>
 			</ul>
-		</div>
+		</div>-->
 		<!--支付中心列表-->
 		<div class="ticket_record_list">
 			<!-- 支付信息-->
@@ -507,9 +544,73 @@
 			<!--支付记录-->
 			<div class="tab" ng-show="status == 'pay-history'" style="display: inline-block">
 				<!--搜索时间筛选-->
-				<div class="screen">
+				<div class="screen check-filter">
+					<div class="radio-block">
+						交易方式:
+						<label class="com-check-radio">
+							<input type="radio" id="methodAll" name="method" ng-click="setFilters('remitteeType', 'ALL')" ng-checked="remitteeType == 'ALL'">
+							<label for="methodAll"></label>
+							全部
+						</label>
+						<label class="com-check-radio">
+							<input type="radio" id="forSeller" name="method" ng-click="setFilters('remitteeType', 'PAIDTOVENDOR')" ng-checked="remitteeType == 'PAIDTOVENDOR'">
+							<label for="forSeller"></label>
+							卖家收款
+						</label>
+						<label class="com-check-radio">
+							<input type="radio" id="forPlatform" name="method" ng-click="setFilters('remitteeType', 'PAIDTOPLATFORM')" ng-checked="remitteeType == 'PAIDTOPLATFORM'">
+							<label for="forPlatform"></label>
+							平台代收
+						</label>
+					</div>
+					<div class="radio-block">
+					交易币种:
+					<label class="com-check-radio">
+						<input type="radio" id="currencyAll" name="currency" ng-click="setFilters('currency', 'ALL')" ng-checked="currency == 'ALL'">
+						<label for="currencyAll"></label>
+						全部
+					</label>
+					<label class="com-check-radio">
+						<input type="radio" id="RMB" name="currency" ng-click="setFilters('currency', 'RMB')" ng-checked="currency == 'RMB'">
+						<label for="RMB"></label>
+						RMB
+					</label>
+					<label class="com-check-radio">
+						<input type="radio" id="USD" name="currency" ng-click="setFilters('currency', 'USD')" ng-checked="currency == 'USD'">
+						<label for="USD"></label>
+						USD
+					</label>
+				</div>
+					<div class="radio-block date-radio">
+						交易时间:
+						<label class="com-check-radio">
+							<input type="radio" id="dateAll" name="date" ng-click="setFilters('dateArea', 'ALL')" ng-checked="dateArea == 'ALL'">
+							<label for="dateAll"></label>
+							全部
+						</label>
+						<label class="com-check-radio">
+							<input type="radio" id="oneMonth" name="date" ng-click="setFilters('dateArea', 'oneMonth')" ng-checked="dateArea == 'oneMonth'">
+							<label for="oneMonth"></label>
+							一个月
+						</label>
+						<label class="com-check-radio">
+							<input type="radio" id="threeMonth" name="date" ng-click="setFilters('dateArea', 'threeMonth')" ng-checked="dateArea == 'threeMonth'">
+							<label for="threeMonth"></label>
+							三个月
+						</label>
+						<label class="com-check-radio">
+							<input type="radio" id="sixMonth" name="date" ng-click="setFilters('dateArea', 'sixMonth')" ng-checked="dateArea == 'sixMonth'">
+							<label for="sixMonth"></label>
+							六个月
+						</label>
+						<label class="com-check-radio">
+							<input type="radio" id="autoMonth" name="date" ng-click="setFilters('dateArea', 'autoMonth')" ng-checked="dateArea == 'autoMonth'">
+							<label for="autoMonth"></label>
+							自定义
+						</label>
+					</div>
 					<div class="sreach fr">
-						<div class="date fl">
+						<div class="date fl" ng-show="dateArea == 'autoMonth'">
 							<div class="data-input">
 								<input id="start" type="text" ng-model="startDate" readonly="readonly"
 									   class="form-control select-adder" placeholder="起始时间"
@@ -544,55 +645,43 @@
 				</div>
 				<dl>
 					<dt>
-						<span>时间</span>
+						<span>卖家</span>
 						<span>订单号</span>
-						<span>商家名称</span>
-						<span>
+						<!--<span>
 							<select class="form-control select-adder" ng-model="currency" ng-change="filterLoad()">
 								<option value="ALL">币种</option>
 								<option value="RMB">RMB</option>
 								<option value="USD">USD</option>
 							</select>
-						</span>
-						<span>金额</span>
-						<span>
+						</span>-->
+						<span>订单金额</span>
+						<!--<span>
 							<select class="form-control select-adder" style="width: 90px" ng-model="paytype" ng-change="filterLoad()">
 								<option value="ALL">交易方式</option>
 								<option value="1102">线上支付</option>
 								<option value="1103">线下支付</option>
 							</select>
-						</span>
+						</span>-->
+						<span>交易方式</span>
 						<span>
-							<select class="form-control select-adder" style="width: 90px">
-								<option>状态</option>
-								<option value="1">支付成功</option>
-							</select>
+							状态
 						</span>
+						<span>时间</span>
 					</dt>
 					<dd ng-repeat="tradeRecord in tradeRecordPage">
-						<span ng-bind="tradeRecord.paytime | date : 'yyyy-MM-dd HH:mm:ss'">2017.01.18</span>
-						<span><a ng-bind="tradeRecord.orderid" ng-href="user#/order/detail/{{tradeRecord.orderid | EncryptionFilter}}">20170116001</a></span>
-						<span ng-bind="tradeRecord.sellername">优软科技</span>
-						<span ng-bind="tradeRecord.currencyName"></span>
-						<span style="text-align:left;padding-left:5px;">
-							<!--<i class="fa fa-plus" style="color:#f51c24"></i>-->
-							<i class="fa fa-minus" style="color:#1da902"></i>
+						<span title="{{tradeRecord.sellername}}" ng-bind="tradeRecord.sellername"></span>
+						<span><a class="link" ng-bind="tradeRecord.orderid" ng-href="user#/order/detail/{{tradeRecord.orderid | EncryptionFilter}}"></a></span>
+						<span>
+							{{tradeRecord.currencyName == 'USD' ? '$' : '¥'}}
                             <em style="color: #323232;" ng-bind="tradeRecord.ensurePrice | formateNumber : 2"></em></span>
 						</span>
 						<span>
-							<b ng-if="tradeRecord.paytype == 1102">线上支付</b>
-							<b ng-if="tradeRecord.paytype == 1103">线下支付</b>
+							<b ng-if="tradeRecord.remitteeType == 'PAIDTOVENDOR'">卖家收款</b>
+							<b ng-if="tradeRecord.remitteeType == 'PAIDTOPLATFORM'">平台代收</b>
 						</span>
 						<span><b>支付成功</b></span>
+						<span ng-bind="tradeRecord.paytime | date : 'yyyy-MM-dd HH:mm:ss'"></span>
 					</dd>
-					<!--<dd>
-						<span>2017.01.18</span>
-						<span><em>20170116001</em></span>
-						<span>¥8888.52</span>
-						<span>支付宝</span>
-						<span>12345678909</span>
-						<span><em>退款成功</em></span>
-					</dd>-->
 					<dd ng-if="!tradeRecordPage || tradeRecordPage.length == 0" class="tab-dd" style="height: 125px; padding: 30px;">
 						<div class="col-xs-offset-3 col-xs-3">
 							<img src="static/img/all/empty-cart.png">

+ 68 - 9
src/main/webapp/resources/view/usercenter/forstore/seekPurchase.html

@@ -1017,8 +1017,8 @@
                 -->
             </div>
             <div class="sreach fr">
-                <span>求购筛选</span>
-                <select class="form-control select-adder vendor-type" ng-model="vendorType" ng-change="onVendorTypeChange(vendorType)">
+                <span ng-show="tab == 'waitOffer'">求购筛选</span>
+                <select ng-show="tab == 'waitOffer'" class="form-control select-adder vendor-type" ng-model="vendorType" ng-change="onVendorTypeChange(vendorType)">
                     <option value="all">全部</option>
                     <option value="self">未截止</option>
                     <option value="end">已截止</option>
@@ -1065,7 +1065,7 @@
                 <th width="260">品牌/物料名称</th>
                 <th width="260">型号/规格</th>
                 <th width="110">采购数量(PCS)</th>
-                <th width="120">状态/截止时间</th>
+                <th width="120">状态/截止{{tab == 'waitOffer' ? '时间' : '日期'}}</th>
                 <th width="140">操作</th>
             </tr>
             </thead>
@@ -1105,12 +1105,17 @@
                 </td>
                 <td>
                     <div class="row-wrap">
+                        <!--<div ng-bind="seek.endDate | date:'yyyy-MM-dd'"></div>
+                        <div class="date-bottom-item" ng-bind="seek.endDate | date:'HH:mm:ss'"></div>-->
                         <span ng-if="seek.offerAmount == 0" style="color:red;">待报价</span>
                         <span ng-if="seek.agreed == 0 && seek.offerAmount > 0">已报价</span>
                         <span ng-if="seek.agreed == 1" style="color:green;">已采纳</span>
-                        <div class="remain" ng-if="seek.remainingTime > 0">剩余&nbsp;<span ng-bind="getDay(seek.remainingTime)" ng-if="getDay(seek.remainingTime) > 0" class="red-text"></span><i ng-if="getDay(seek.remainingTime) > 0">&nbsp;天&nbsp;</i><span ng-if="getDay(seek.remainingTime) <= 0" ng-bind="getHours(seek.remainingTime)" class="red-text">5</span><i ng-if="getDay(seek.remainingTime) <= 0">&nbsp;小时</i></div>
-                        <div class="remain" ng-if="seek.remainingTime <= 0"><span>已截止</span></div>
-                        <div class="remain" ng-if="seek.remainingTime == null"><span>-</span></div>
+                        <div ng-if="tab == 'offered'" class="date-bottom-item" ng-bind="seek.endDate | date:'yyyy-MM-dd'"></div>
+                        <div ng-if="tab == 'waitOffer'">
+                            <div class="remain" ng-if="seek.remainingTime > 0">剩余&nbsp;<span ng-bind="getDay(seek.remainingTime)" ng-if="getDay(seek.remainingTime) > 0" class="red-text"></span><i ng-if="getDay(seek.remainingTime) > 0">&nbsp;天&nbsp;</i><span ng-if="getDay(seek.remainingTime) <= 0" ng-bind="getHours(seek.remainingTime)" class="red-text">5</span><i ng-if="getDay(seek.remainingTime) <= 0">&nbsp;小时</i></div>
+                            <div class="remain" ng-if="seek.remainingTime <= 0"><span>已截止</span></div>
+                            <div class="remain" ng-if="seek.remainingTime == null"><span>-</span></div>
+                        </div>
                     </div>
                 </td>
                 <td class="operate-seek">
@@ -1407,10 +1412,21 @@
             <tr ng-repeat="bom in $data">
                 <td ng-click="toBomdetail(bom.id)">
                     <img src="static/img/seekPurchase/Excel.png" alt="">
-                    <div>
+                    <div style="width:300px">
                         <p ng-bind="bom.remark"></p>
-                        <div>共 <span class="blue-text" ng-bind="bom.amount || 0"></span> 个产品<!--,<span class="red-text" ng-bind="bom.offerAmount || 0">10</span> 个有报价,<span class="red-text" ng-bind="bom.goodsAmount || 0">7</span> 个有现货--></div>
-                        <div ng-bind="bom.releaseDate | date:'yyyy-MM-dd HH:mm:ss'"></div>
+                        <div ng-bind="bom.date | date:'yyyy-MM-dd HH:mm:ss'">
+
+                        </div>
+                        <!--<div>共 <span class="blue-text" ng-bind="bom.amount || 0"></span> 个产品&lt;!&ndash;,<span class="red-text" ng-bind="bom.offerAmount || 0">10</span> 个有报价,<span class="red-text" ng-bind="bom.goodsAmount || 0">7</span> 个有现货&ndash;&gt;</div>-->
+                        <!--<div ng-bind="bom.releaseDate | date:'yyyy-MM-dd HH:mm:ss'"></div>-->
+                    </div>
+                    <div>
+                        <div class="progress">
+                            <div class="left">{{bom.quotedAmount}}</div>
+                            <div class="progressBtn" ng-style="{width: bom.quotedAmount / bom.amount * '100' + '%'}"></div>
+                            <div class="right" ng-if="bom.amount - bom.quotedAmount > 0">{{bom.amount - bom.quotedAmount}}</div>
+                        </div>
+                        <p>本单共<span>{{bom.amount}}</span>个产品,<span>{{bom.quotedAmount}}</span>个已报价</p>
                     </div>
                     <a class="fr">查看详情</a>
                 </td>
@@ -1496,4 +1512,47 @@
         display: block;
         cursor: auto;
     }
+    .progress {
+        width: 265px;
+        height: 13px;
+        line-height: 13px;
+        background: #d7d7d7;
+        border-radius: 13px;
+        overflow: hidden;
+        position: relative;
+        margin-bottom: 10px;
+    }
+    .progress ~ p {
+        font-size: 14px;
+        color: #333;
+    }
+    .progress ~ p span {
+        color: #fd7748
+    }
+    .progress .left {
+        color: #fff;
+        font-size: 12px;
+        position: absolute;
+        left: 10px;
+        top: 0;
+        z-index: 2;
+    }
+    .progress .right {
+        color: #fff;
+        font-size: 12px;
+        position: absolute;
+        right: 15px;
+        top: 0;
+        z-index: 2;
+    }
+    .progress .progressBtn {
+        position: absolute;
+        left: 0;
+        top: 0;
+        height: 13px;
+        background: -webkit-linear-gradient(left, #8bbdff, #5078cb); /* Safari 5.1 - 6.0 */
+        background: -o-linear-gradient(left, #8bbdff, #5078cb); /* Opera 11.1 - 12.0 */
+        background: -moz-linear-gradient(left, #8bbdff, #5078cb); /* Firefox 3.6 - 15 */
+        background: linear-gradient(left, #8bbdff, #5078cb); /* 标准的语法 */
+    }
 </style>

+ 1 - 1
src/main/webapp/resources/view/usercenter/left_nav.html

@@ -39,7 +39,7 @@
                 <div>
                     <li ng-class="{'active' : active == 'buyer_cart'}"><a  ui-sref="buyer_cart">购物车<em>(<span ng-bind="countCart || 0 | number"></span>)</em></a> </li>
                     <li ng-class="{'active' : active == 'buyer_order'}"><a  ui-sref="buyer_order">采购订单</a></li>
-                    <li ng-class="{'active' : active == 'pay_center'}"><a  ui-sref="pay_center">支付中心</a></li>
+                    <li ng-class="{'active' : active == 'buyer_pay_center'}"><a  ui-sref="pay_center">应付对账</a></li>
                     <li ng-class="{'active' : active == 'buyer_invoice'}"><a  ui-sref="buyer_no_invoice">发票管理</a></li>
                 </div>
                 <!--<div ng-hide="!(userInfo.pwdEnable && userInfo.haveUserQuestion &&  userInfo.emailValidCode && userInfo.emailValidCode == 2)">-->

+ 145 - 52
src/main/webapp/resources/view/vendor/forstore/pay_center.html

@@ -432,25 +432,22 @@
 
     }
     .pay_record .ticket_record_list dl span:nth-child(1){
-        width:17.03%;
+        width:26%!important;
     }
     .pay_record .ticket_record_list dl span:nth-child(2){
-        width:15.73%;
+        width:20%!important;
     }
     .pay_record .ticket_record_list dl span:nth-child(3){
-        width:23.84%;
+        width:16%!important;
     }
     .pay_record .ticket_record_list dl span:nth-child(4){
-        width:8%;
+        width:10%!important;
     }
     .pay_record .ticket_record_list dl span:nth-child(5){
-        width:9.65%;
+        width:8%!important;
     }
     .pay_record .ticket_record_list dl span:nth-child(6){
-        width:12.12%;
-    }
-    .pay_record .ticket_record_list dl span:nth-child(7){
-        width:13.52%;
+        width:20%!important;
     }
     .pay_record .ticket_record_list dl span .select-adder {
         opacity: 1;
@@ -471,30 +468,50 @@
         white-space:nowrap;
         overflow: hidden;
     }
+    .pay_record .ticket_record_list dl dd {
+        border: 1px solid #dae5fd;
+        border-top: none;
+    }
     .pay_record .ticket_record_list dl dd:hover {
         background: #f1f5ff;
     }
-    .pay_record .ticket_record_list dl dd span:first-child{
-        border-left: 1px solid #dae5fd;
-    }
     .pay_record .ticket_record_list dl dd span {
         color: #666;
-        border-right: 1px solid #dae5fd;
-        border-bottom: 1px solid #dae5fd;
+    }
+    .pay_record .ticket_record_list dl dd .link {
+        color: #3f84f6;
     }
     .ticket_record_list{
         background: none;
+        margin: 0!important;
     }
     .pay_record .ticket_record_list .total{
         width:98%;
-        height:39px;
-        background: #e6eefe;
-        display:inline-flex;
-        justify-content: space-around;
-        align-items: center;
+        height:60px;
+        background: #e0dedf;
         margin:0 10px;
+        font-size: 14px;
+    }
+    .pay_record .ticket_record_list .total .fl {
+        color: #333;
+        margin-left: 25px;
+        line-height: 60px;
     }
-    .pay_record .ticket_record_list dl div.total>span{
+    .pay_record .ticket_record_list .total .fr {
+        line-height: 30px;
+        margin-right: 13px;
+    }
+    .pay_record .ticket_record_list .total .fr p {
+        font-size: 14px;
+        text-align: right;
+    }
+    .pay_record .ticket_record_list .total .fr p:first-child em {
+        color: #fd0303;
+    }
+    .pay_record .ticket_record_list .total .fr p:last-child em {
+        color: #15b262;
+    }
+   /* .pay_record .ticket_record_list dl div.total>span{
         width:200px;
     }
     .pay_record .ticket_record_list dl div.total>span:nth-child(1) em{
@@ -511,7 +528,7 @@
     }
     .pay_record .ticket_record_list dl div.total>b{
         color:#abc4f7;
-    }
+    }*/
 
 
     #pay_center .tab .tab-header {
@@ -626,25 +643,99 @@
     .oder01 ul li.active:after{
         display: block
     }
+    .check-filter {
+        height: 80px;
+        line-height: 30px;
+        padding-left: 22px;
+        margin-top: 0;
+    }
+    .check-filter .sreach input {
+        width: 147px;
+    }
+    .check-filter .radio-block {
+        display: inline-block;
+        font-size: 14px;
+        width: 33.3%;
+    }
+    .check-filter .radio-block.date-radio {
+        width: 46%;
+    }
+    .check-filter .radio-block .com-check-radio {
+        font-weight: normal;
+        color: #666;
+        margin-right: 13px;
+    }
+    .check-filter .radio-block .com-check-radio:last-child {
+        margin-right: 0;
+    }
+    .com-check-radio label {
+        margin-bottom: 5px;
+    }
 </style>
 <!--右侧主体部分-->
 <div class="user_right fr" id="pay_center">
     <!--支付中心-->
     <div class="pay_record oder">
-        <div class="oder01">
+      <!--  <div class="oder01">
             <ul>
                 <li ng-click="setTab('paymentRecord')" ng-class="{'active' : tab == 'paymentRecord'}"><a href="javascript:void(0)">交易记录</a></li>
                 <li ng-click="setTab('accountTab')" ng-class="{'active' : tab == 'accountTab'}"><a href="javascript:void(0)">收款帐户</a></li>
             </ul>
-        </div>
+        </div>-->
         <!--支付中心列表-->
         <div class="ticket_record_list">
             <!-- 交易记录-->
             <div class="tab" ng-show="tab == 'paymentRecord'" style="display: inline-block">
                 <!--搜索时间筛选-->
-                <div class="screen" style="background: #f5f8fe;height: 40px;margin-bottom: 15px;margin-top: 5px;padding-top: 4px;padding-right: 11px;">
+                <div class="screen check-filter" style="background: #f5f8fe;margin-bottom: 15px;margin-top: 5px;padding-top: 4px;padding-right: 11px;">
+                    <div class="radio-block" style="display: block;">
+                        交易方式:
+                        <label class="com-check-radio">
+                            <input type="radio" id="methodAll" name="method" ng-click="setFilters('remitteeType', 'ALL')" ng-checked="remitteeType == 'ALL'">
+                            <label for="methodAll"></label>
+                            全部
+                        </label>
+                        <label class="com-check-radio">
+                            <input type="radio" id="forSeller" name="method" ng-click="setFilters('remitteeType', 'PAIDTOVENDOR')" ng-checked="remitteeType == 'PAIDTOVENDOR'">
+                            <label for="forSeller"></label>
+                            买家付款
+                        </label>
+                        <label class="com-check-radio">
+                            <input type="radio" id="forPlatform" name="method" ng-click="setFilters('remitteeType', 'PLATFORMPAIDTOVENDOR')" ng-checked="remitteeType == 'PLATFORMPAIDTOVENDOR'">
+                            <label for="forPlatform"></label>
+                            平台代付
+                        </label>
+                    </div>
+                    <div class="radio-block date-radio">
+                        交易时间:
+                        <label class="com-check-radio">
+                            <input type="radio" id="dateAll" name="date" ng-click="setFilters('dateArea', 'ALL')" ng-checked="dateArea == 'ALL'">
+                            <label for="dateAll"></label>
+                            全部
+                        </label>
+                        <label class="com-check-radio">
+                            <input type="radio" id="oneMonth" name="date" ng-click="setFilters('dateArea', 'oneMonth')" ng-checked="dateArea == 'oneMonth'">
+                            <label for="oneMonth"></label>
+                            一个月
+                        </label>
+                        <label class="com-check-radio">
+                            <input type="radio" id="threeMonth" name="date" ng-click="setFilters('dateArea', 'threeMonth')" ng-checked="dateArea == 'threeMonth'">
+                            <label for="threeMonth"></label>
+                            三个月
+                        </label>
+                        <label class="com-check-radio">
+                            <input type="radio" id="sixMonth" name="date" ng-click="setFilters('dateArea', 'sixMonth')" ng-checked="dateArea == 'sixMonth'">
+                            <label for="sixMonth"></label>
+                            六个月
+                        </label>
+                        <label class="com-check-radio">
+                            <input type="radio" id="autoMonth" name="date" ng-click="setFilters('dateArea', 'autoMonth')" ng-checked="dateArea == 'autoMonth'">
+                            <label for="autoMonth"></label>
+                            自定义
+                        </label>
+                    </div>
                     <div class="sreach fr">
-                        <div class="date fl">
+                        <div  ng-show="dateArea == 'autoMonth'" class="date fl">
                             <div class="data-input">
                                 <input id="start" type="text" ng-model="startDate" readonly="readonly"
                                        class="form-control select-adder" placeholder="起始时间"
@@ -680,45 +771,47 @@
 
                 <dl>
                     <dt>
-                        <span>时间</span>
+                        <span>买家</span>
                         <span>订单号</span>
-                        <span>买家名称</span>
-                        <span>币种</span>
-                        <span>金额</span>
-                        <span>
-							<select class="form-control select-adder" style="width: 90px">
-								<option>交易方式</option>
-								<option value="1">线下支付</option>
-							</select>
-						</span>
-                        <span style="width:13.52%">
-							<select class="form-control select-adder" style="width: 90px">
-								<option>状态</option>
-								<option value="1">收款成功</option>
-							</select>
-						</span>
+                        <span>订单金额</span>
+                        <span>交易方式</span>
+                        <span>状态</span>
+                        <span>时间</span>
                     </dt>
                     <dd ng-repeat="record in bankTransRecore">
-                        <span ng-bind="record.transferTime | date : 'yyyy-MM-dd HH:mm:ss'">2017.01.18</span>
-                        <span><a style="color: #666;" ng-bind="record.orderid" ng-href="vendor#/purchase/detail/{{record.puid | EncryptionFilter}}">20170116001</a></span>
-                        <span ng-bind="record.buyerentername || record.buyername">优软科技</span>
-                        <span ng-bind="record.currencyName">RMB</span>
-                        <span style="text-align:left;padding-left:5px;">
-                            <i class="fa fa-plus" style="color:#f51c24"></i>
-                            <!--<i class="fa fa-minus" style="color:#1da902"></i>-->
-                            {{record.total}}</span>
-                        <span>线下付款</span>
+                        <span title="{{record.buyerentername || record.buyername}}" ng-bind="record.buyerentername || record.buyername">优软科技</span>
+                        <span><a class="link" style="color: #666;" ng-bind="record.orderid" ng-href="vendor#/purchase/detail/{{record.puid | EncryptionFilter}}">20170116001</a></span>
+                        <span title="{{(record.currencyName == 'USD' ? '$' : '¥') + record.total}}">{{(record.currencyName == 'USD' ? '$' : '¥') + record.total}}</span>
+                        <span>{{record.type == 'PAIDTOVENDOR' ? '买家付款' : '平台代付'}}</span>
                         <span>收款成功</span>
+                        <span ng-bind="record.transferTime | date : 'yyyy-MM-dd HH:mm:ss'">2017.01.18</span>
                     </dd>
                     <div class="total" ng-if="bankTransRecore && bankTransRecore.length > 0">
-                        <span>收入总计&nbsp;  <em><i class="fa fa-yen" ng-if="currencySymbol.indexOf('RMB') > -1"></i>
+                     <!--   <span>收入总计&nbsp;  <em><i class="fa fa-yen" ng-if="currencySymbol.indexOf('RMB') > -1"></i>
                             <i class="fa fa-usd" ng-if="currencySymbol.indexOf('USD') > -1"></i>{{totalPrice}}</em></span>
                         <b>|</b>
                         <span>支出总计&nbsp;  <em><i class="fa fa-yen" ng-if="currencySymbol.indexOf('RMB') > -1"></i>
                             <i class="fa fa-usd" ng-if="currencySymbol.indexOf('USD') > -1"></i>0</em></span>
                         <b>|</b>
                         <span>结余&nbsp;<em><i class="fa fa-yen" ng-if="currencySymbol.indexOf('RMB') > -1"></i>
-                            <i class="fa fa-usd" ng-if="currencySymbol.indexOf('USD') > -1"></i>{{totalPrice}}(共计{{totalElements}}笔交易)</em></span>
+                            <i class="fa fa-usd" ng-if="currencySymbol.indexOf('USD') > -1"></i>{{totalPrice}}(共计{{totalElements}}笔交易)</em></span>-->
+                        <div class="fl">共计{{totalElements}}笔交易</div>
+                        <div class="fr">
+                            <p>已收总计:
+                                <em>
+                                    <i class="fa fa-yen" ng-if="currencySymbol.indexOf('RMB') > -1"></i>
+                                    <i class="fa fa-usd" ng-if="currencySymbol.indexOf('USD') > -1"></i>
+                                    {{totalPrice}}
+                                </em>
+                            </p>
+                            <p>结余:
+                                <em>
+                                    <i class="fa fa-yen" ng-if="currencySymbol.indexOf('RMB') > -1"></i>
+                                    <i class="fa fa-usd" ng-if="currencySymbol.indexOf('USD') > -1"></i>
+                                    {{totalPrice}}
+                                </em>
+                            </p>
+                        </div>
                     </div>
 
                     <dd ng-if="!bankTransRecore || bankTransRecore.length == 0" class="tab-dd" style="height: 125px; padding: 30px;">

+ 5 - 3
src/main/webapp/resources/view/vendor/forstore/purchaseOffer.html

@@ -689,7 +689,7 @@
                 <th width="245">品牌/物料名称</th>
                 <th width="245">型号/规格</th>
                 <th width="110">采购数量(PCS)</th>
-                <th width="130">剩余时间</th>
+                <th width="130">截止日期</th>
                 <th width="90">操作</th>
             </tr>
             </thead>
@@ -730,9 +730,11 @@
                         </div>
                     </div>
                 </td>
-                <td class="left-time" ng-if="seek.remainingTime > 0">剩余&nbsp;<span ng-bind="getDay(seek.remainingTime)" ng-if="getDay(seek.remainingTime) > 0" class="red-text"></span><i ng-if="getDay(seek.remainingTime) > 0">&nbsp;天&nbsp;</i><span ng-if="getDay(seek.remainingTime) <= 0" ng-bind="getHours(seek.remainingTime)" class="red-text">5</span><i ng-if="getDay(seek.remainingTime) <= 0">&nbsp;小时</i></td>
+                <td ng-bind="seek.endDate | date:'yyyy-MM-dd'">
+                </td>
+                <!--<td class="left-time" ng-if="seek.remainingTime > 0">剩余&nbsp;<span ng-bind="getDay(seek.remainingTime)" ng-if="getDay(seek.remainingTime) > 0" class="red-text"></span><i ng-if="getDay(seek.remainingTime) > 0">&nbsp;天&nbsp;</i><span ng-if="getDay(seek.remainingTime) <= 0" ng-bind="getHours(seek.remainingTime)" class="red-text">5</span><i ng-if="getDay(seek.remainingTime) <= 0">&nbsp;小时</i></td>
                 <td class="left-time" ng-if="seek.remainingTime <= 0"><span>已截止</span></td>
-                <td class="left-time" ng-if="seek.remainingTime == null"><span style="color: red;">-</span></td>
+                <td class="left-time" ng-if="seek.remainingTime == null"><span style="color: red;">-</span></td>-->
                 <td class="operate" ng-switch="seek.agreed" style="border-right: 1px solid #dae5fd">
                     <a ng-click="setLinkBoxIndex($index)">联系买家<img src="static/img/seekPurchase/link-buyer.png" alt=""></a>
                     <div class="is-say-price" ng-if="seek.agreed != 1 && seek.agreed != 0 || seek.replies">已报价 <img src="static/img/seekPurchase/check.png" alt="">

+ 8 - 0
src/main/webapp/resources/view/vendor/forstore/vendor-invoice.html

@@ -119,7 +119,15 @@
     .check-act input:checked + label{
         background-position: -31px 0;
     }
+    .ng-table-pager::after {
+        content: ' ';
+        clear: both;
+        display: block;
+        visibility: hidden;
+        zoom: 1;
+    }
     .apply-btn{
+        z-index: 10;
         /*margin: 30px 0;*/
         text-align: center;
         position: fixed;

+ 1 - 1
src/main/webapp/resources/view/vendor/left_nav.html

@@ -51,7 +51,7 @@
 				<span  ui-sref="vendor_deliveryRule" ng-if="store && (!store.status || store.status === 'OPENED')">物流管理</span>
 			</li>
 			<li ng-class="{'active' : active == 'vendor_invoice'}"><span  ui-sref="vendorInvoice">发票管理</span></li>
-			<li ng-class="{'active' : active == 'pay_center'}"><span  ui-sref="pay_center">财务对账</span></li>
+			<li ng-class="{'active' : active == 'vendor_pay_center'}"><span  ui-sref="pay_center">应收对账</span></li>
 			<li ng-class="{'active' : active == 'vendor_store'}">
 				<!-- 我要开店 !store && applyStatus == 'NONE' -->
 				<span  ui-sref="vendor_store_apply" ng-if="!store && applyStatus == 'NONE'">开店申请</span>