Browse Source

新增卖家中心, 应收,发票

shenjj 7 years ago
parent
commit
83263d2857

+ 35 - 0
src/main/webapp/resources/js/common/b2bServices.js

@@ -2900,4 +2900,39 @@ define([ 'angular', 'common/services', 'common/utils', 'big'], function(angular,
             }
           });
         }])
+        .factory('B2bFaArCheck', ['$resource', 'BaseService', function($resource, BaseService) {
+          var b2bUrl = BaseService.getB2bUrl();
+          return $resource(b2bUrl + 'purchase/arCheck/:id', {}, {
+            agree: {
+              url: b2bUrl + 'purchase/arCheck/items/:itemId/reply',
+              method: 'POST',
+              params: {
+                itemId: 'itemId',
+                agreed: true
+              }
+            },
+            disagree: {
+              url: b2bUrl +  'purchase/arCheck/items/:itemId/reply',
+              method: 'POST',
+              params: {
+                orderItemId: 'itemId',
+                agreed: false
+              }
+            },
+            getReplies: {
+              url: b2bUrl + 'purchase/arCheck/items/:itemId/reply',
+              method: 'GET',
+              isArray: true
+            },
+            getDone: {
+              url : b2bUrl + 'purchase/arCheck/page/done',
+            },
+            getTodo: {
+              url : b2bUrl + 'purchase/arCheck/page/todo',
+            },
+            getWaiting: {
+              url : b2bUrl + 'purchase/arCheck/page/waiting',
+            }
+          });
+        }])
 });

+ 13 - 3
src/main/webapp/resources/js/usercenter/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', 'common/b2bServices'], 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/b2bServices', 'common/services/File'], 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', 'common.b2bServices']);
+	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', 'common.b2bServices', 'FileService']);
 	app.init = function() {
 		angularAMD.bootstrap(app);
 	};
@@ -95,7 +95,17 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
 			templateUrl: 'static/view/usercenter/forstore/pay_center.html',
 			controller: 'buyerPayCenterCtrl',
 			controllerUrl: 'app/controllers/forstore/pay_center_ctrl'
-		}))
+		})).state('fa_arCheck', angularAMD.route({
+      url: "/arCheck",
+      templateUrl: 'static/view/usercenter/b2b/fa/arCheck.html',
+      controller: 'SaleArCheckCtrl',
+      controllerUrl: 'app/controllers/b2b/fa/arCheck'
+    })).state('fa_arCheck_detail', angularAMD.route({
+      url: "/arCheck/:id",
+      templateUrl: 'static/view/usercenter/b2b/fa/arCheck_detail.html',
+      controller: 'SaleArCheckDetailCtrl',
+      controllerUrl: 'app/controllers/b2b/fa/arCheck_detail'
+    }))
 		/*	.state('my_seek_purchase', angularAMD.route({
 			url: '/seekPurchase',
 			templateUrl: 'static/view/usercenter/forstore/seek_purchase.html',

+ 207 - 0
src/main/webapp/resources/js/usercenter/controllers/b2b/fa/arCheck.js

@@ -0,0 +1,207 @@
+define(['app/app'], function(app) {
+  /**
+   * 应付对账单
+   */
+  app.register.controller('SaleArCheckCtrl', ['$rootScope', '$scope', '$filter', 'B2bFaArCheck', 'ngTableParams', 'toaster', 'BaseService', 'Symbol', function ($rootScope, $scope, $filter, FaArCheck, ngTableParams, toaster, BaseService, Symbol) {
+    BaseService.scrollBackToTop();
+    $scope.active = 'all';
+    $scope.dateZoneText = '不限';
+    $scope.condition = {dateZone: 1};
+    $rootScope.active = 'buyer_pay_center'
+    /* 时间筛选初始化*/
+    var fromDate = new Date();
+    var toDate = new Date();
+    fromDate.setMonth(fromDate.getMonth() - 1);
+    fromDate.setHours(0, 0, 0, 0);
+    toDate.setHours(23, 59, 59, 999);
+    $scope.condition.dateFrom = fromDate;
+    $scope.condition.dateTo = toDate;
+
+    $scope.changeDateZone = function (zone) {
+      $scope.condition.dateZone = zone;
+      $scope.dateZoneText = zone == 1 ? '最近一个月' : (zone == 3 ? '最近三个月' : (zone == 6 ? '最近六个月' : '自定义'));
+      $scope.condition.$dateZoneOpen = false;
+      getDateCondition(zone, $scope.condition);
+      $scope.tableParams.page(1);
+      $scope.tableParams.reload();
+    };
+    $scope.currency = Symbol.currency;//将币别转化为对应的符号
+    $scope.setActive = function (state) {
+      if ($scope.active != state) {
+        $scope.active = state;
+        if ($scope.tableParams.page() == 1)
+          $scope.tableParams.reload();
+        else
+          $scope.tableParams.page(1);
+      }
+    };
+    var getService = function () {
+      return FaArCheck;
+    };
+
+    $scope.tableParams = new ngTableParams({
+      page: 1,
+      count: 20,
+      sorting: {
+        date: 'desc'
+      }
+    }, {
+      total: 0,
+      counts: [5, 10, 25, 50],
+      getData: function ($defer, params) {
+        $scope.loading = true;
+        var pageParams = params.url();
+        pageParams.searchFilter = {};
+        pageParams.searchFilter.keyword = $scope.keyword;
+        pageParams.searchFilter.fromDate = $scope.condition.dateFrom ? $scope.condition.dateFrom.getTime() : null;
+        pageParams.searchFilter.endDate = $scope.condition.dateTo ? $scope.condition.dateTo.getTime() : null;
+        getService()[getState($scope.active)].call(null, BaseService.parseParams(pageParams), function (page) {
+          $scope.loading = false;
+          if (page) {
+            params.total(page.totalElement);
+            $defer.resolve(page.content);
+            $scope.infoCommon = page
+            $scope.infoCommon.all = page.content.length
+            $scope.keywordXls = angular.copy($scope.keyword);//保存当前取值的关键词
+            $scope.fromDateXls = angular.copy($scope.condition.dateFrom ? $scope.condition.dateFrom.getTime() : null);//保存当前取值的起始日期
+            $scope.endDateXls = angular.copy($scope.condition.dateTo ? $scope.condition.dateTo.getTime() : null);//保存当前取值的截止日期
+
+          }
+        }, function (response) {
+          $scope.loading = false;
+          toaster.pop('error', '数据加载失败', response.data);
+        });
+      }
+    });
+
+    $scope.openDatePicker = function ($event, item, openParam) {
+      $event.preventDefault();
+      $event.stopPropagation();
+      item[openParam] = !item[openParam];
+    };
+
+    $scope.openFilterDatePicker = function ($event, item, openParam) {
+      $event.preventDefault();
+      $event.stopPropagation();
+      item[openParam] = !item[openParam];
+      if ($scope.condition.dateFrom && $scope.condition.dateTo && !item[openParam]) {
+        $scope.tableParams.reload();
+      }
+    };
+
+    // 计算单据的商品总数
+    $scope.getTotalProd = function (check) {
+      var total = 0;
+      if (check.items) {
+        angular.forEach(check.items, function (value) {
+          total += value.qty;
+        });
+      }
+      return total;
+    };
+
+    // 搜索框回车
+    $scope.onSearch = function () {
+      $scope.tableParams.page(1);
+      $scope.tableParams.reload();
+    };
+
+    // 选择查找日期
+    $scope.onDateCondition = function () {
+      $scope.tableParams.page(1);
+      $scope.tableParams.reload();
+    };
+
+    /**
+     * 将日期转化为整数日期
+     */
+    var getDateTime = function (date) {
+      if (angular.isDate(date)) {
+        return date.getTime();
+      } else {
+        return null;
+      }
+    };
+
+    var getState = function (active) {
+      var fn = 'get';
+      switch (active) {
+        case 'done':
+          fn = 'getDone';
+          break;
+        case 'todo':
+          fn = 'getTodo';
+          break;
+        case 'end':
+          fn = 'getEnd';
+          break;
+        case 'waiting':
+          fn = 'getWaiting';
+          break;
+        case 'received':
+          fn = 'getReceived';
+          break;
+        case 'invalid':
+          fn = 'getInvalid';
+          break;
+          // 已采纳
+        case 'agreed':
+          fn = 'getAgreed';
+          break;
+          // 未采纳
+        case 'refused':
+          fn = 'getRefused';
+          break;
+          // 个人
+        case 'personal':
+          fn = 'getPersonal';
+          break;
+          // 集体
+        case 'teams':
+          fn = 'getTeams';
+          break;
+          // 非标准
+        case 'nonstandard':
+          fn = 'getNonstandard';
+          break;
+          // 标准
+        case 'standard':
+          fn = 'getStandard';
+          break;
+          // 变更单无需确认
+        case 'unread':
+          fn = 'getUnread';
+          break;
+      }
+      return fn;
+    };
+
+    var getDateCondition = function (zone, condition) {
+      var fromDate = new Date();
+      var toDate = new Date();
+      //去除时分秒限制,dateFrom设置成0时0分0秒,dateTo设置成23时59分59秒
+      fromDate.setHours(0, 0, 0, 0);
+      toDate.setHours(23, 59, 59, 999);
+      if (zone == -1) { // 自定义时间,什么都不做
+
+      } else if (zone == 1) {
+        fromDate.setMonth(fromDate.getMonth() - 1);
+        condition.dateFrom = fromDate;
+        condition.dateTo = toDate;
+      } else if (zone == 3) {
+        fromDate.setMonth(fromDate.getMonth() - 3);
+        condition.dateFrom = fromDate;
+        condition.dateTo = toDate;
+      } else if (zone == 6) {
+        fromDate.setMonth(fromDate.getMonth() - 6);
+        condition.dateFrom = fromDate;
+        condition.dateTo = toDate;
+      } else {
+        condition.dateFrom = null;
+        condition.dateTo = null;
+      }
+    };
+
+  }]);
+
+})

+ 45 - 0
src/main/webapp/resources/js/usercenter/controllers/b2b/fa/arCheck_detail.js

@@ -0,0 +1,45 @@
+define(['app/app'], function(app) {
+// 应付对账单详情页
+  app.register.controller('SaleArCheckDetailCtrl', ['$scope', '$stateParams', 'B2bFaArCheck', 'toaster', '$state', 'BaseService', function ($scope, $stateParams, FaArCheck, toaster, $state, BaseService) {
+    BaseService.scrollBackToTop();
+    var loadData = function () {
+      FaArCheck.get({id: $stateParams.id}, function (data) {
+        $scope.order = data;
+        $scope.loading = false;
+      });
+    };
+    loadData(); // 初始获取单据数据
+
+    $scope.onReplyClick = function (item, isAgreed) {
+      if (isAgreed) {// 同意确认
+        FaArCheck.agree({itemId: item.id}, {}, function (data) {
+          toaster.pop('success', '确认成功', '确认供应商对账数量成功');
+        }, function (response) {
+          toaster.pop('danger', '确认失败', response.data);
+        });
+      } else {// 不同意回复
+        FaArCheck.disagree({itemId: item.id}, {
+          qty: item.$replyQty,
+          remark: item.$replyRemark
+        }, function (data) {
+          toaster.pop('success', '确认成功', '您提交的数量将发送给供应商确认');
+        }, function (response) {
+          toaster.pop('danger', '确认失败', response.data);
+        });
+      }
+    };
+
+    // 获取明细的回复记录
+    $scope.getReplies = function (item) {
+      if (!item.replies) {
+        FaArCheck.getReplies({itemId: item.id}, function (data) {
+          item.replies = data;
+        }, function (response) {
+          toaster.pop('danger', '获取对账记录失败', response.data);
+        });
+      }
+    };
+
+  }]);
+
+})

+ 640 - 0
src/main/webapp/resources/view/usercenter/b2b/fa/arCheck.html

@@ -0,0 +1,640 @@
+<style>
+  body{
+    font-family: "Microsoft YaHei", "微软雅黑" !important;
+  }
+  .text-num{
+
+  }
+  .append{
+    color: #5078cb;font-size:12px; margin-left: 10px
+  }
+  .order-table td {
+    padding-top: 10px;
+    margin-bottom: 20px;
+    border-bottom: solid 1px #ccc;
+    border-top: solid 1px #e8e8e8;
+  }
+
+  .order-table td.first {
+    padding-left: 20px;
+  }
+
+  .order-table td.last {
+    padding-right: 20px;
+  }
+
+  .order-table td .static p {
+    display: inline-block;
+    line-height: 30px;
+    padding-top: 5px;
+    padding-bottom: 0px;
+    width: 150px;
+    font-size: 14px;
+    color: #666;
+    padding-left: 15px;
+    border-left: solid 1px #e8e8e8;
+  }
+  .order-table td .static p:first-child{
+    border-left: none;
+    width: 180px;
+    padding-left: 0;
+  }
+  .order-table td .static p:last-child{
+    margin-left: 22px;
+  }
+  .order-table td .static p:nth-of-type(3){
+    margin-left: 20px;
+  }
+  .order-table td .main {
+    margin-top: 5px;
+    margin-bottom: 20px;
+    color: #333;
+  }
+  .static{
+    margin: 12px 0;
+  }
+  .order-table td .main strong {
+    font-size: 14px;
+  }
+
+  .order-table td .static p strong {
+    font-size: 14px;
+    font-weight: bold;
+    color: #888;
+  }
+
+  .order-table td.status {
+    position: relative;
+    border-left: solid 1px #e8e8e8;
+    padding: 10px;
+    vertical-align: top;
+  }
+
+  .order-table td.status .operate {
+    position: absolute;
+    display: block;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    height: 0px;
+    color: #ffffff;
+    font-size: 14px;
+    font-weight: bold;
+    line-height: 40px;
+    opacity: 0.8;
+    transition: height ease-in-out 0.5s;
+    text-decoration: none;
+  }
+
+  .order-table td.status .operate-undo {
+    background: #428bca;
+  }
+
+  .order-table td.status .operate-done {
+    background: #cccccc;
+  }
+
+  .order-table td.status:hover  .operate {
+    height: 40px;
+  }
+
+  .unPrinted {
+    color: #56a022;
+  }
+  .order-table td .main strong{
+    font-weight: normal;
+  }
+  .order-table td{
+    font-size: 14px;
+  }
+  .order-table th{
+    text-align: center;
+  }
+  .order-table .text-trans{
+    margin-top: -17px;
+    margin-right: 14px;
+  }
+</style>
+<style>
+  .com_tab {
+    height: 40px;
+    margin-bottom: 10px;
+  }
+  .com_tab ul {
+    width: 100%;
+    margin: 0 auto;
+    height: 40px;
+    line-height: 40px;
+    background: #fff;
+  }
+  .com_tab ul li {
+    height: 40px;
+    text-align: center;
+    float: left;
+    position: relative;
+    min-width: 110px;
+  }
+  .com_tab:nth-of-type(1) ul li.active > a {
+    border-bottom: #fff;
+    background: #5078cb;
+    color: #fff !important;
+  }
+  .com_tab ul li a {
+    min-width: 110px;
+  }
+  .com_tab ul li > a {
+    font-size: 14px;
+    height: 40px;
+    padding: 0 20px;
+    display: inline-block;
+  }
+  .com_tab:nth-of-type(1) ul li::after {
+    background:url('/static/img/vendor/images/downicon.png')
+    width: 11px;
+    height: 6px;
+    position: absolute;
+    bottom: 0px;
+    left: 50%;
+    content: ' ';
+    margin-left: -5px;
+    display: none;
+  }
+  .com_tab ul li::after {
+    background:url('/static/img/vendor/images/downicon.png');
+    width: 11px;
+    height: 6px;
+    position: absolute;
+    bottom: 0px;
+    left: 50%;
+    content: ' ';
+    margin-left: -5px;
+    display: none;
+  }
+  .com_tab ul li.active:after {
+    display: block;
+  }
+  .oder01 ul li.active a{
+    border-bottom: 1px solid #fff;
+    color: #f15601;
+  }
+  .oder01 ul li.active a em {
+    color: #f15601;
+  }
+  .oder01 ul li a em {
+    color: #323232
+  }
+  .screen {
+    background: #fff;
+    padding-top: 10px;
+    padding-right: 11px;
+    line-height: 32px;
+    padding-left: 22px;
+    width: 100%;
+    height: 50px;
+    position: relative;
+  }
+  .screen .sreach input {
+    border: #5078cb 1px solid;
+    height: 32px;
+    width: 280px;
+    box-shadow: none;
+    padding-left: 10px;
+    background: #fff;
+    float: left;
+    vertical-align: middle;
+    font-size: 14px;
+  }
+  .screen .sreach a.seek {
+    width: 58px;
+    height: 32px;
+    background: #5078cb;
+    color: #fff;
+    line-height: 32px;
+    float: none;
+    border-radius: 2px;
+    vertical-align: unset;
+  }
+  .order-table {
+    background: #fff;
+    width: 100%;
+  }
+  .order-table .header > th {
+    height: 38px;
+    text-align: center;
+    background: #fff;
+    border-top: 1px solid #e8e8e8;
+    border-bottom: 1px solid #e8e8e8;
+    font-size: 14px;
+  }
+
+  .order-table .sep-row {
+    height: 10px;
+  }
+
+  .order-table .selector {
+    vertical-align: middle;
+    margin: 0 0 2px 0;
+  }
+
+  .toolbar label {
+    margin-right: 10px;
+    margin-bottom: 0;
+  }
+
+  .toolbar .select_all {
+    margin: 0 6px 0 10px;
+    line-height: 20px;
+  }
+
+  .toolbar .btn {
+    -moz-border-radius: 2px;
+    margin-right: 5px;
+    border: 1px solid #dcdcdc;
+    border-radius: 2px;
+    -webkit-border-radius: 2px;
+  }
+
+  .order-table .order-hd {
+    background: #f5f5f5;
+    height: 40px;
+    line-height: 40px;
+  }
+
+  .order-table .order-hd td.first {
+    padding-left: 20px;
+  }
+
+  .order-table .order-hd .order-main span {
+    margin-right: 8px;
+  }
+
+  .order-table .order-hd .order-code {
+    font-style: normal;
+    font-family: verdana;
+  }
+
+  .order-table .order-hd .order-sum {
+    position: relative;
+    padding: 0 5px;
+  }
+
+  .order-table .order-hd .dropdown-toggle {
+    line-height: 40px;
+    display: block;
+    color: #5078cb;
+    /*padding: 0 10px;*/
+  }
+
+
+  .order-table .operates {
+    display: none;
+  }
+
+  .order-table > tbody:hover .operates {
+    display: block;
+  }
+
+  .order-table .order-bd {
+    border-bottom: 1px solid #e6e6e6;
+  }
+
+  .order-table .order-bd > td {
+    padding: 10px 5px;
+    text-align: center;
+  }
+
+  .order-table .order-bd .product {
+    padding-left: 20px;
+  }
+
+  .input-xs, .input-group-xs > .form-control, .input-group-xs > .input-group-addon, .input-group-xs > .input-group-btn > .btn {
+    height: 26px;
+    padding: 0 5px;
+    font-size: 12px;
+    line-height: 1.5;
+    border-radius: 3px;
+  }
+  .order-table .order-hd .dropdown-toggle:hover + .order-snapshot {
+    display: block;
+  }
+  .order-table .order-hd .order-snapshot{
+    padding: 10px 15px;
+    display: none;
+    width: 250px;
+    position: absolute;
+    top: 32px;
+    left: 39px;
+    border: 1px solid rgba(0,0,0,0.15);
+    -webkit-box-shadow: 0 0 5px rgba(0,0,0,0.3);
+    -moz-box-shadow: 0 0 5px rgba(0,0,0,0.3);
+    -o-box-shadow: 0 0 5px rgba(0,0,0,0.3);
+    box-shadow: 0 0 5px rgba(0,0,0,0.3);
+  }
+  .order-snapshot .title {
+    border-top: 1px dashed #ddd;
+  }
+
+  .order-snapshot .dl-horizontal dt {
+    width: 60px;
+    text-align: left;
+    font-weight: normal;
+    color: #999;
+    padding: 4px 0;
+  }
+
+  .order-snapshot .dl-horizontal dd {
+    margin-left: 80px;
+    padding: 4px 0;
+  }
+
+  /*arrow*/
+  .order-send {
+    position: relative;
+  }
+
+  .order-send.arrow-border:before, .arrow-border:after {
+    content: '';
+    position: absolute;
+    top: 20px;
+    width: 0;
+    height: 0;
+    border: 7px solid transparent;
+  }
+
+  .order-send.arrow-border.arrow-bottom-right:before {
+    content: '';
+    position: absolute;
+    left: -13px;
+    border-bottom-color: #fff;
+    border-right-color: #fff;
+    margin-top: -10px;
+  }
+
+  .menu .new-dot {
+    width: 20px;
+    height: 20px;
+    line-height: 20px;
+    font-size: 12px;
+    color: #fff;
+    font-weight: inherit;
+    top: -2px;
+  }
+  .f14{
+    font-size:14px;
+  }
+  .screen .sreach input {
+    width: 288px
+  }
+  .modal {
+    position: fixed;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    z-index: 1050;
+    display: none;
+    overflow: hidden;
+    -webkit-overflow-scrolling: touch;
+    outline: 0;
+    margin: 0 !important;
+  }
+  .modal-open .modal {
+    overflow-x: hidden;
+    overflow-y: auto;
+  }
+  #empty {
+    padding: 70px 0;
+    margin: 0 auto;
+    text-align: center;
+  }
+  #empty .left_img {
+    display: inline-block;
+    color: #3f84f6;
+  }
+  #empty .left_img a {
+    font-size: 25px;
+    color: #3f84f6;
+  }
+  #empty .right_link p {
+    margin: 0;
+    font-size: 14px;
+    color: #666;
+  }
+  #empty_info .empty_title {
+    color: #3f84f6;
+    font-size: 18px;
+  }
+  #empty_info .empty_explain {
+    font-size: 16px;
+    color: #999;
+  }
+  #empty_info .empty_explain .info {
+    text-indent: -22px;
+  }
+  .f16 {
+    font-size: 16px !important;
+  }
+  .f14 {
+    font-size: 14px !important;
+  }
+  #empty_info {
+    padding-left: 60px;
+    padding-bottom: 40px;
+  }
+  table tbody tr td {
+    border-bottom: #e8e8e8 1px solid;
+    border-right: #e8e8e8 1px solid;
+    font-size: 14px;
+    color: #666;
+  }
+  .ng-table-pager::after {
+    clear: both;
+    content: ' ';
+    zoom: 1;
+    display: block;
+    visibility: hidden;
+  }
+  .ng-table-pager {
+    padding-right: 20px;
+    padding-top: 50px;
+    margin-right: 0 !important;
+  }
+  .text-mns {
+    padding-right: 15px;
+    position: absolute;
+    bottom: 64px;
+    right: 20px;
+    font-size: 12px;
+  }
+  .Boom18 {
+    bottom: 18px;
+  }
+  .fixed {
+    position: absolute;
+    left: 0px;
+    top: 0px;
+    width: 40px;
+  }
+  .order-table tbody {
+    border:1px solid #e8e8e8;
+  }
+  .order-table tbody:hover {
+    border: 2px solid #3c7cf5
+  }
+  .order-table tbody:hover .order-bd:nth-last-of-type(1) {
+    background: #f8fafe
+  }
+  .order-table .order-hdt {
+    background: #f5f5f5;
+  }
+</style>
+<div class="user_right fr" style="position: relative">
+  <div class="com_tab" style="margin-bottom: 10px">
+    <ul class="fl" style="width: 100%">
+      <li><a ui-sref="pay_center" href="javascript:void(0)">优软商城</a></li>
+      <li class="active"><a href="javascript:void(0)">B2B</a></li>
+    </ul>
+  </div>
+  <div class="screen check-filter">
+    <div class="radio-block date-radio" style="width: 33%">
+      时间:
+      <label class="com-check-radio">
+        <input type="radio" id="oneMonth" name="date" ng-click="changeDateZone(1);condition.$open=false" checked>
+        <label for="oneMonth"></label>
+        30天
+      </label>
+      <label class="com-check-radio">
+        <input type="radio" id="threeMonth" name="date" ng-click="changeDateZone(3);condition.$open=false">
+        <label for="threeMonth"></label>
+        90天
+      </label>
+      <label class="com-check-radio">
+        <input type="radio" id="sixMonth" name="date" ng-click="changeDateZone(6);condition.$open=false">
+        <label for="sixMonth"></label>
+        180天
+      </label>
+      <label class="com-check-radio">
+        <input type="radio" id="autoMonth" name="date" ng-click="condition.$open=!condition.$open;changeDateZone(-1)">
+        <label for="autoMonth"></label>
+        自定义
+      </label>
+    </div>
+    <div class="sreach fr">
+      <div ng-show="condition.$open" class="date fl">
+        <div class="data-input">
+          <input type="text" ng-model="condition.dateFrom"
+                 class="form-control select-adder" placeholder="起始时间"
+                 datepicker-popup="yyyy-MM-dd"
+                 is-open="condition.$fromOpened"
+                 max-date="condition.dateTo" current-text="今天" clear-text="清除" close-text="关闭"
+                 ng-focus="openFilterDatePicker($event, condition, '$fromOpened')"
+                 datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+                 style="width: 130px"
+          />
+          <button class="open" ng-click="openFilterDatePicker($event, condition, '$fromOpened')"></button>
+        </div>
+
+        <em>–</em>
+        <div class="data-input">
+          <input type="text" ng-model="condition.dateTo"
+                 class="form-control select-adder" placeholder="结束时间"
+                 datepicker-popup="yyyy-MM-dd"
+                 is-open="condition.$toOpened"
+                 min-date="condition.dateFrom" current-text="今天" clear-text="清除" close-text="关闭"
+                 ng-focus="openFilterDatePicker($event, condition, '$toOpened')"
+                 datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+                 style="width: 130px"
+          />
+          <button class="open" ng-click="openFilterDatePicker($event, condition, '$toOpened')"></button>
+        </div>
+      </div>
+      <div class="sreach-input fr">
+        <input type="search" placeholder="单据编号/客户名称/物料名称" class="form-control" ng-model="keyword" ng-search="onSearch()"/>
+        <a class="seek" href="javascript:void(0)" ng-click="onSearch()">搜索</a>
+      </div>
+    </div>
+  </div>
+
+  <table class="order-table block" ng-table="tableParams">
+    <thead>
+    <tr class="header">
+      <th width="230">对账期间</th>
+      <th width="180">对账总额</th>
+      <th width="180">明细条目</th>
+      <th width="100">商品总数</th>
+      <th width="100">对账结果</th>
+      <th width="100">操作</th>
+    </tr>
+    </thead>
+    <tbody ng-if="$data.length === 0">
+    <tr>
+      <td colspan="6">
+        <div id="empty">
+          <div class="left_img">
+            <a href="http://www.ubtob.com/" target="_blank" title="优软云首页"><img src="static/img/empty/uas_empty.png"></a>
+            <a href="#/index" title="B2B商务首页">B2B 商务</a>
+          </div>
+          <div class="right_link">
+            <p>暂无对应的对账单信息</p>
+          </div>
+        </div>
+      </td>
+    </tr>
+    </tbody>
+    <tbody ng-repeat="check in $data">
+    <tr class="order-bd order-hdt">
+      <td colspan="6" style="text-align: left">
+        <span class="text-num text-bold" style="font-weight:bold" title="录单时间">日期:{{::check.date | date:'MM月dd日 HH:mm'}}</span>
+        &nbsp;&nbsp;&nbsp;
+        <span>
+          <!--<i class="fa fa-star" ng-class="{'text-default':check.status==201}"></i>-->
+          <img src="static/img/user/images/shop_home.png" style="margin-right: 5px">{{::check.vendor.enName}}</span>
+        <span style="margin-left: 100px;">单据编号:</span>
+        <span class="text-num"><a style="color: #5078cb" ui-sref="fa_arCheck_detail({id:check.id})" title="点击查看详情">{{::check.code}}</a></span>
+      </td>
+    </tr>
+    <tr>
+      <td class="first info" colspan="1">
+        <p class="f14 text-num">{{::check.fromDate | date:'yyyy/MM/dd'}} - {{::check.toDate | date:'yyyy/MM/dd'}}</p>
+      </td>
+      <td class="first info" colspan="1">
+        <p>
+          <strong class="text-num">{{::check.checkAmount | number:6}}</strong>
+          <span class="text-number">{{::check.currency}}</span><br>
+        </p>
+      </td>
+      <td class="first info" colspan="1">
+        <p>
+          <strong class="text-num">{{::check.items.length}}</strong> 条<br>
+        </p>
+      </td>
+      <td class="first info" colspan="1">
+        <p>
+          <strong class="text-num">{{getTotalProd(check) | number}}</strong> <i class="fa fa-cubes"></i><br>
+        </p>
+      </td>
+      <td class="status" colspan="2">
+        <div ng-if="check.status == 200" class="text-center text-muted f14"><br>还未开始对账!</div>
+        <div ng-if="check.status == 201 && check.items.length == check.agree" class="text-center text-muted f14">
+          <br> <i class="fa fa-check-square-o"></i> 已全部确认
+        </div>
+        <div ng-if="check.status == 201 && check.items.length != check.agree" class="text-center text-muted f14">
+          已开始对账,但未全部确认
+        </div>
+        <div ng-if="check.status == 201 && check.items.length != check.agree">
+          <div class="text-success text-bold"><i class="fa fa-smile-o fa-lg fa-fw"></i>已确认: {{::check.agree}}</div>
+          <div class="text-warning text-bold"><i class="fa fa-frown-o fa-lg fa-fw"></i>不同意: {{::check.disagree}}</div>
+          <div class="text-muted text-bold"><i class="fa fa-meh-o fa-lg fa-fw"></i>未对账: {{check.items.length - check.agree - check.disagree}}</div>
+        </div>
+        <!-- <a ng-if="check.status == 200 || check.items.length != check.agree" class="operate operate-undo text-center"
+          ui-sref="fa.arCheck_detail({id:check.id})" target="_blank">立即开始对账</a>
+        <a ng-if="check.status == 201 && check.items.length == check.agree" class="operate operate-done text-center"
+          ui-sref="fa.arCheck_detail({id:check.id})" target="_blank">查看详情</a> -->
+      </td>
+    </tr>
+    </tbody>
+  </table>
+  <div ng-if="infoCommon.totalElement > 0" class="text-mns text-right" ng-class="infoCommon.totalElement >= 20 ? '': 'Boom18'">
+    显示&nbsp;{{(infoCommon .page - 1 ) * infoCommon.size + 1}}-{{infoCommon.all >= 20 ? infoCommon.page *  infoCommon.size: (infoCommon.page - 1 ) * infoCommon.size + infoCommon.all}}&nbsp;条,共&nbsp;{{infoCommon.totalElement}}&nbsp;条
+  </div>
+</div>

+ 433 - 0
src/main/webapp/resources/view/usercenter/b2b/fa/arCheck_detail.html

@@ -0,0 +1,433 @@
+<style>
+  .pane {
+    font-size: 14px;
+  }
+  .icon-purc {
+    display: inline-block;
+    background: url(static/img/icon/purc.ico);
+    height: 26px;
+    width: 26px;
+  }
+  .badge-success {
+    background: #5cb85c;
+    color: #ffffff;
+  }
+  .badge-warning {
+    background: #f0ad4e;
+    color: #ffffff;
+  }
+  .badge-info {
+    background: #5bc0de;
+    color: #ffffff;
+  }
+  .badge-primary {
+    background: #337ab7;
+    color: #ffffff;
+  }
+  .badge-danger {
+    background: #d9534f;
+    color: #ffffff;
+  }
+</style>
+<style>
+  .base-info-content {
+    box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    -o-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    border-radius: 5px;
+    /*min-height: 1066px;*/
+    background: #fff;
+    width: 1026px;
+  }
+  #order-detail-list {
+    font-size: 14px;
+  }
+  .pub-com_head, .com_head {
+    width: 100%;
+    height: 35px;
+    line-height: 35px;
+    background: #5078cb;
+    border-radius: 5px 5px 0 0;
+    /* background: url(../img/approvalFlow/comm_bg01.png) no-repeat left; */
+    /* background-color: #f5f5f5; */
+    /* background-size: 100% 100%; */
+  }
+  .pub-com_head span, .com_head span {
+    margin-left: 10px;
+    color: #fff;
+    font-size: 14px;
+    font-weight: bold;
+  }
+  .pub-com_head .p-right {
+    float: right;
+  }
+  .pane .pane-body {
+    /*padding: 15px!important;*/
+  }
+  com_title01, .title-div {
+    /*border-bottom: 1px dashed #3f84f6 !important;*/
+  }
+  .title-div {
+    color: #5078cb;
+    font-size: 14px;
+    font-weight: 600;
+    /*padding-left: 20px !important;*/
+    height: 50px;
+    padding-top: 11px;
+    position: relative;
+  }
+  .f14 {
+    font-size: 14px !important;
+  }
+  #order-detail-list .row {
+    /*width: 96%;*/
+    margin: 0 auto;
+    line-height: 30px;
+  }
+  .base-info-content .item {
+    line-height: 26px;
+    /* border-bottom: 1px dotted #e8e8e8; */
+    padding: 5px 0;
+  }
+  #order-detail-list .title {
+    font-weight: inherit;
+  }
+  .base-info-content .title {
+    float: left;
+    width: 92px;
+    color: #969595;
+    font-weight: bold;
+  }
+  #order-detail-list .content {
+    color: #666;
+  }
+  .base-info-content .content {
+    float: left;
+    white-space: nowrap;
+  }
+  .title-div .end {
+    position: absolute;
+    top: 10px;
+    right: 0;
+    line-height: 24px;
+    padding-left: 15px;
+    background: #fff;
+    z-index: 2;
+  }
+  .block {
+    background-color: #fff;
+    border-radius: 5px;
+    width: 100%;
+    /*position: relative;*/
+    margin-bottom: 0px;
+  }
+  #order-detail-list .table-default .header {
+    box-shadow: none;
+    border: none;
+    background: none;
+    background: #f9f9f9;
+  }
+  #order-detail-list .table-default .header th {
+    /*display: inline-block;*/
+    border-bottom: none;
+    font-weight: normal;
+    color: #999;
+    padding: 8px 0;
+    text-align: center;
+  }
+  #order-detail-list .table-default th, #order-detail-list .table-default td {
+    /*border-top: #ddd 1px dotted;*/
+  }
+  #order-detail-list .table-default tbody tr {
+    background: none;
+    position: relative;
+  }
+  #order-detail-list table.table-default.pms tbody tr td {
+    vertical-align: middle;
+    color: #323232;
+    min-height: 140px;
+    position: relative;
+    padding: 15px 0;
+    font-size: 14px;
+  }
+  [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak, .ng-hide:not(.ng-hide-animate) {
+    display: none !important;
+  }
+  .text-bold {
+    font-weight: 700;
+  }
+
+  .text-num {
+    font-style: normal;
+    word-break: break-all;
+    font-size: 14px;
+  }
+  .text-muted {
+    color: #333;
+    font-size: 14px;
+  }
+  .bottomB {
+    border-bottom: 2px solid #f5f5f5;
+    padding: 15px 30px 15px 15px;
+  }
+
+  .title-div .f14{
+    border-left: 5px solid #5078cb;padding-left: 10px;
+  }
+
+  .order-number {
+    position: absolute;
+    top: -1px;
+    left: -1px;
+    width: 20px;
+    height: 20px;
+    line-height: 20px;
+    text-align: center;
+    background: #f9f9f9;
+    font-weight: 500;
+    border: solid 1px #d5d5d5;
+    border-radius: 0 0 10px 0;
+  }
+  #order-detail-list .table-default.pms tbody tr td.product {
+    padding-left: 30px;
+  }
+  #order-detail-list .table-default tbody tr td{
+    border-right: 1px solid #e8e8e8;
+  }
+  #order-detail-list .table-default tbody tr:nth-last-of-type(1) td {
+    border-right: 0px
+  }
+  .text-trans {
+    top: 14px;
+    right: 20px;
+  }
+  .f14{
+    font-size: 14px;
+  }
+  #order-detail-list .table-default tbody tr td a:hover {
+    background: #3c7cf5;
+    color: #fff !important;
+  }
+</style>
+<div class="pane base-info-content fr" id="order-detail-list">
+  <div class="pub-com_head">
+    <span>应付对账单</span>
+    <div class="p-right">
+      <!-- <a ng-click="print(order)" class="pull-right text-simple"><i
+      class="fa fa-print fa-fw"></i>打印</a> -->
+    </div>
+  </div>
+  <div class="pane-body">
+    <div class="bottomB">
+    <div class="title-div">
+      <span class="f14">单据资料</span>&nbsp;
+    </div>
+      <div class="row row-sm item">
+        <div class="col-xs-6">
+          <span class="title">供应商</span>
+          <div class="content" ng-bind="::order.vendor.enName"></div>
+        </div>
+        <div class="col-xs-6">
+          <span class="title">对账期间</span>
+          <div class="content text-num">{{::order.fromDate | date:'yyyy/MM/dd'}} - {{::order.toDate | date:'yyyy/MM/dd'}}</div>
+        </div>
+      </div>
+      <div class="row row-sm item">
+        <div class="col-xs-6">
+          <span class="title">单据编号</span>
+          <div class="content text-num" ng-bind="::order.code"></div>
+        </div>
+        <div class="col-xs-6">
+          <span class="title">录单日期</span>
+          <div class="content" ng-bind="::order.date | date:'MM月dd日 HH:mm'"></div>
+        </div>
+      </div>
+      <div class="row row-sm item">
+        <div class="col-xs-6">
+          <span class="title">录单人</span>
+          <div class="content" ng-bind="::order.recorder"></div>
+        </div>
+        <div class="col-xs-6">
+          <span class="title">审批人</span>
+          <div class="content" ng-bind="::order.auditor"></div>
+        </div>
+      </div>
+      <div class="row row-sm item">
+        <div class="col-xs-6">
+          <span class="title">应收日期</span>
+          <div class="content" ng-bind="::order.arDate | date:'MM月dd日'"></div>
+        </div>
+        <div class="col-xs-6">
+          <span class="title">对方业务员</span>
+          <div class="content" ng-bind="::order.sellerName"></div>
+        </div>
+      </div>
+      <div class="row row-sm item" ng-if="order.remark">
+        <div class="col-xs-12">
+          <span class="title">供应商备注</span>
+          <div class="content" ng-bind="::order.remark"></div>
+        </div>
+      </div>
+    </div>
+    <div class="bottomB">
+    <div class="title-div">
+      <span class="f14">财务信息</span>&nbsp;
+    </div>
+    <div class="row row-sm item">
+      <div class="col-xs-3">
+        <span class="title">对账总额</span>
+        <div class="content text-num" ng-bind="::order.checkAmount | number:6"></div>
+      </div>
+      <div class="col-xs-3">
+        <span class="title">币别</span>
+        <div class="content" ng-bind="::order.currency"></div>
+      </div>
+      <div class="col-xs-3">
+        <span class="title">汇率</span>
+        <div class="content text-num" ng-bind="::order.rate"></div>
+      </div>
+      <div class="col-xs-3">
+        <span class="title">付款方式</span>
+        <div class="content" ng-bind="::order.payments"></div>
+      </div>
+    </div>
+    <div class="row row-sm item">
+      <div class="col-xs-3">
+        <span class="title">本期收账</span>
+        <div class="content text-num">
+          <span ng-bind="order.payAmount | number:6"></span>
+          <span ng-if="">-</span>
+        </div>
+      </div>
+      <div class="col-xs-9">
+        <span class="title">期初金额</span>
+        <div class="content text-num">
+          <span ng-if="order.beginAmount" ng-bind="order.beginAmount | number:6"></span>
+          <span ng-if="!order.beginAmount">-</span>
+        </div>
+      </div>
+    </div>
+    </div>
+    <div class="bottomB">
+    <div class="title-div">
+      <span class="f14">对账明细清单</span>&nbsp;
+    </div>
+    </div>
+    <div class="block">
+      <table class="block table table-default table-striped table-hover">
+        <thead>
+        <tr class="header">
+          <th width="52">行号</th>
+          <th>商品</th>
+          <th width="200">单据信息</th>
+          <th width="80">单价</th>
+          <th width="120">对账数量</th>
+          <th width="120">对账金额</th>
+          <th width="140">操作</th>
+        </tr>
+        </thead>
+        <tbody>
+        <tr ng-repeat="item in order.items track by item.id">
+          <td class="text-center text-num text-bold f-16 text-success">
+            <span ng-bind="::item.number"></span>
+          </td>
+          <td>
+            <div class="text-num text-bold">
+              <span ng-bind="::item.prodCode" title="商品编号"></span>
+            </div>
+            <div class="text-muted" ng-bind="::item.prodSpec" title="商品规格"></div>
+          </td>
+          <td class="text-muted text-num">
+            <div>
+              <i class="fa fa-file-text-o fa-fw" title="采购订单编号"></i>
+              <span ng-bind="::item.poCode"></span>
+            </div>
+            <div>
+              <i class="fa fa-share-square-o fa-fw" title="供应商出库单号"></i>
+              <span ng-bind="::item.inoutCode"></span> 第<span ng-bind="item.sourceNumber"></span>行
+            </div>
+          </td>
+          <td class="text-center">
+            <div class="text-num" ng-bind="::item.price | number:6"></div>
+            <div class="text-muted f12">税率:{{::item.taxrate || 0}}%</div>
+          </td>
+          <td class="text-center">
+            <div>
+              <span class="badge" ng-if="item.status==201 && !item.agreed">供</span>
+              <span class="text-num text-bold" ng-bind="::item.qty | number"></span>
+            </div>
+            <div ng-if="item.status==201 && !item.agreed">
+              <span class="badge badge-info">我</span>
+              <span class="text-num text-bold" ng-bind="::item.replyQty | number"></span>
+            </div>
+            <div ng-if="item.$editing">
+              <input ng-model="item.$replyQty" class="form-control input-xs" type="number" placeholder="确认数量">
+            </div>
+          </td>
+          <td>
+            <div class="text-num text-inverse text-bold" ng-bind="::item.amount | number:6"></div>
+            <div ng-if="item.$editing">
+              <input ng-model="item.$replyRemark" class="form-control input-xs" type="text" placeholder="确认备注">
+            </div>
+            <div ng-if="item.replyQty > 0" class="dropdown text-center">
+              <a href="javascript:void(0);" class="dropdown-toggle text-default"
+                 ng-mouseover="getReplies(item)">对账记录<i class="fa fa-fw fa-angle-down"></i></a>
+              <div class="dropdown-menu dropdown-menu-right pane" style="width: 270px;">
+                <div class="pane-body">
+                  <ul class="list-unstyled list-menu">
+                    <li ng-repeat="reply in ::item.replies">
+                      <div ng-if="reply.type=='v'" class="text-left">
+                        <div ng-class="{'text-inverse': $last}">
+                          <span class="pull-right text-muted" ng-bind="reply.date | date:'MM-dd HH:mm'"></span>
+                          <span class="badge">供</span> 数量:{{::reply.qty}}
+                        </div>
+                        <div class="text-muted">{{reply.remark}}</div>
+                      </div>
+                      <div ng-if="reply.type=='c'" class="text-right"
+                           ng-class="{'text-inverse': $last}">
+                        <div>
+                          <span class="pull-left text-muted" ng-bind="reply.date | date:'MM-dd HH:mm'"></span>
+                          {{::reply.qty}}:<span ng-bind="reply.recorder"></span>  <span class="badge badge-info">我</span>
+                        </div>
+                        <div class="text-muted">{{reply.remark}}</div>
+                      </div>
+                    </li>
+                  </ul>
+                </div>
+              </div>
+            </div>
+          </td>
+          <td class="text-center">
+            <div ng-if="item.status == 200 && !item.$editing">
+              <a ng-click="onReplyClick(item, true)" style="display:inline-block;width: 40px;height: 24px;line-height: 24px;color:#3c7cf5;border:1px solid #3c7cf5">确认</a>
+              <a ng-click="item.$editing = true"  style="display:inline-block;width: 48px;height: 24px;line-height: 24px;color:#3c7cf5;border:1px solid #3c7cf5">不同意</a>
+            </div>
+            <div ng-if="item.$editing">
+              <a ng-click="item.$editing = false" style="display:inline-block;width: 40px;height: 24px;line-height: 24px;color:#3c7cf5;border:1px solid #3c7cf5">取消</a>
+              <a ng-click="onReplyClick(item, false)" class="" style="display:inline-block;width: 62px;height: 24px;line-height: 24px;color:#3c7cf5;border:1px solid #3c7cf5">确认对账</a>
+            </div>
+            <div ng-if="item.status == 201 && item.agreed">
+              <span class="label label-success">已确认</span>
+            </div>
+            <div ng-if="item.waiting">
+              <span class="text-muted f12">您确认的数量正在等待供应商确认...</span>
+            </div>
+          </td>
+        </tr>
+        <tr>
+          <td></td>
+          <td></td>
+          <td></td>
+          <td></td>
+          <td class="text-right">总计:</td>
+          <td class="text-left">
+            <span class="text-num f16" ng-bind="order.checkAmount | number:6"></span>
+          </td>
+          <td></td>
+        </tr>
+        </tbody>
+      </table>
+    </div>
+  </div>
+</div>

+ 9 - 3
src/main/webapp/resources/view/usercenter/forstore/pay_center.html

@@ -398,14 +398,19 @@
 		display: inline;
 		float: left;
 	}
+	.oder01 ul {
+		border-bottom: 0px;
+	}
 	.oder01 ul li{
 		margin-left: 0px;
 		position: relative;
 	}
 	.oder01 ul li.active a{
 		border-bottom: #fff;
-		background: #5078cb;
-		color: #fff;
+		background: #5078cb ;
+		color: #fff !important;
+		border:0;
+		border-top: 0px
 	}
 	.oder01 ul li::after{
 		background: url('static/img/vendor/images/downicon.png');
@@ -481,7 +486,8 @@
 	<div class="pay_record oder">
 		<div class="oder01" style="margin-bottom: 16px;">
 			<ul>
-				<li ng-if="status != 'pay-info'" ng-class="{'active' : status=='pay-history'}"><a href="javascript:void(0)">应付对账</a></li>
+				<li ng-if="status != 'pay-info'" ng-class="{'active' : status=='pay-history'}"><a href="javascript:void(0)">优软商城</a></li>
+				<li ng-if="status != 'pay-info'"><a ui-sref="fa_arCheck" href="javascript:void(0)">B2B</a></li>
 				<li ng-if="status == 'pay-info'" ng-class="{'active' : status=='pay-info'}"><a href="javascript:void(0)">付款帐户</a></li>
 			</ul>
 		</div>

+ 13 - 4
src/main/webapp/resources/view/vendor/b2b/apCheck.html

@@ -111,8 +111,8 @@
     text-align: center;
   }
   .order-table .text-trans{
-    margin-top: -17px;
-    margin-right: 14px;
+    margin-top: -13px;
+    margin-right: 1px;
   }
   .menu .new-dot{
     width: 20px;
@@ -487,6 +487,15 @@
     top: 0px;
     width: 40px;
   }
+  .order-table tbody:hover {
+    border: 2px solid #3c7cf5
+  }
+  .order-table tbody:hover .order-bd:nth-last-of-type(1) {
+    background: #f8fafe
+  }
+  .order-table .order-hdt {
+    background: #f5f5f5;
+  }
 </style>
 <!--<link rel="stylesheet" href="static/css/public.css">-->
 <div class="user_right fr" style="position: relative">
@@ -584,7 +593,7 @@
     </tr>
     </thead>
     <tbody ng-repeat="check in $data">
-    <tr class="order-bd">
+    <tr class="order-bd order-hdt">
       <td colspan="6" style="text-align: left">
         <a href="javascript:void(0)" ng-if="!isUnread(check.id)" class="circle-icon">
           已读
@@ -592,7 +601,7 @@
         <a href="javascript:void(0)" ng-if="isUnread(check.id)" class="no-circle-icon">
           未读
         </a>
-        <span class="text-num text-bold;font-weight:bold" title="录单时间">日期:{{::check.recordDate | date:'MM月dd日 HH:mm'}}</span>
+        <span class="text-num text-bold;" style="font-weight:bold" title="录单时间">日期:{{::check.recordDate | date:'MM月dd日 HH:mm'}}</span>
         &nbsp;&nbsp;&nbsp;
         <span>
           <!--<i class="fa fa-star" ng-class="{'text-default':check.status==201}"></i>-->

+ 3 - 8
src/main/webapp/resources/view/vendor/b2b/apCheckList.html

@@ -17,7 +17,7 @@
 
   .add-apCheckList .table-header-wrap {
     background: #f9f9f9;
-    overflow-x: hidden;
+    /*overflow-x: hidden;*/
     overflow-y: scroll;
   }
 
@@ -242,22 +242,17 @@
   .f14{
     font-size: 14px;
   }
+
 </style>
 
 <div class="pane base-info-content fr" id="order-detail-list">
-<div class="add-apCheckList">
+    <div class="add-apCheckList">
     <div class="pub-com_head">
       <span>新增对账单</span>
       <div class="p-right"></div>
     </div>
     <form class="form-horizontal"
           style="padding-top: 10px; padding-bottom: 20px;">
-      <div class="loading" ng-class="{'in': loading}">
-        <!--<i></i>-->
-        <div class="wrap">
-          <div class="outer"></div>
-        </div>
-      </div>
       <div class="form-group form-group-sm form-group-inline">
         <label class="col-sm-2 control-label">客&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;户:</label>
         <div class="col-sm-4">

+ 3 - 3
src/main/webapp/resources/view/vendor/b2b/apCheck_detail.html

@@ -284,9 +284,9 @@
           <th>序号</th>
           <th>单价</th>
           <th>税率</th>
-          <th>对账数量</th>
-          <th>对账金额</th>
-          <th width="40">采购单号</th>
+          <th  width="80">对账数量</th>
+          <th  width="80">对账金额</th>
+          <th>采购单号</th>
           <th>采购序号</th>
         </tr>
         </thead>