Browse Source

修改应付对账

shenjunjie 7 years ago
parent
commit
4d0960bef1

BIN
pdf


BIN
png


+ 1 - 1
pom.xml

@@ -690,7 +690,7 @@
 				<artifactId>tomcat7-maven-plugin</artifactId>
 				<version>2.2</version>
 				<configuration>
-					<port>8090</port>
+					<port>8091</port>
 					<path>/</path>
 					<uriEncoding>utf-8</uriEncoding>
 				</configuration>

+ 1 - 1
src/main/resources/ptest/jdbc.properties

@@ -1,5 +1,5 @@
 jdbc.driverClassName=com.mysql.jdbc.Driver
-jdbc.url=7e5ef205e2ff4ca4ac98c9f833880ec6d6085f468fc17f40a4dfc9bf67cf337d8161ba85a3d70d1b4fe75d882e787d153aeb790a4137ba411d4ad617c2597c9adfdc60459f9d4f713399948d5dcd615f7bad79d50f49ce8c27b3246574344a5056a61f3aab10970034a23bf895ace2b12bd4ed6cbf0b5e664f9bca3c439b87a493bf837581ab6eede1d5a08b3c10e7a55fc9806d53ec1d453f3b0132088da1d8
+jdbc.url=7e5ef205e2ff4ca465e5938df11039fbd8c6b199dd4a7aaa96b15509a0293d175a9b5ec4e7cf3d474c104dd96d988f4ed5a1cb49da75d3385b3cdc8b75cee4aca0ed7be1dd4e24bc2b3a56fb58a6a0a6517e82a62c82b595c72b7aa67cc6e28ee2ab68b82263a7c5134dc9a322e75b67505db36980c1e0ae93c76e21c8bd92ec4e71b284c2ff419fbb79b93497692557ce0cd4911da3766366420c7f66ff8cc0
 jdbc.username=73f3cd5578b9e08b
 jdbc.password=48981af937f010627b96e886a0d38aad
 jdbc.initialSize=1

+ 1 - 1
src/main/resources/ptest/redis.properties

@@ -1,2 +1,2 @@
-redis.host=192.168.100.4
+redis.host=188.131.128.107
 redis.port=6379

+ 1 - 1
src/main/resources/ptest/redisson.yaml

@@ -13,7 +13,7 @@ singleServerConfig:
   password: null
   subscriptionsPerConnection: 5
   clientName: null
-  address: ["redis://192.168.100.4:6379"]
+  address: ["redis://188.131.128.107:6379"]
   subscriptionConnectionMinimumIdleSize: 1
   subscriptionConnectionPoolSize: 25
   connectionMinimumIdleSize: 5

BIN
src/main/webapp/resources/css/font/iconfont.woff


File diff suppressed because it is too large
+ 0 - 0
src/main/webapp/resources/css/wui.min.css


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

@@ -771,7 +771,9 @@ define([ 'angular', 'common/services', 'common/utils', 'big'], function(angular,
                 },
                 getAuthentication: function() {
                     var request = $http.get(rootPath + '/authentication', {cache: true});
+                    console.log(request)
                     request.success(function(data) {
+
                         if (data) {
                             cacheSession();
                         } else {
@@ -2770,6 +2772,10 @@ define([ 'angular', 'common/services', 'common/utils', 'big'], function(angular,
         .factory('B2bFaApCheck', ['$resource', 'BaseService', function($resource, BaseService) {
           var b2bUrl = BaseService.getB2bUrl();
           return $resource(b2bUrl + '/sale/apCheck/info/search', {}, {
+              customer: {
+                  url: b2bUrl +'/sale/apCheck/customer',
+                  method: 'GET'
+              },
             getItem: {
               url: b2bUrl + '/sale/apCheck/:id/info',
               method: 'GET'

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

@@ -1,4 +1,4 @@
-define([ 'angularAMD', 'ngLocal', 'common/services', 'common/directives', 'common/query/brand', 'common/query/kind', 'common/query/component', 'common/query/goods', 'common/query/rate','common/query/cart', 'common/query/order', 'common/query/address', 'common/query/invoice', 'common/query/property', 'common/query/kindAdvice', 'common/query/propertyAdvice', 'common/query/return' , 'common/query/change', 'common/query/logistics', 'ui.router', 'ui-bootstrap', 'ui-form', 'ui-jquery','angular-toaster', 'ngDraggable', 'angular-sanitize', 'ngTable', 'dynamicInput', 'jquery-imagezoom', 'file-upload', 'file-upload-shim', 'common/query/urlencryption' , 'common/query/purchase', 'common/query/vendor', 'common/query/goods', 'common/query/bankTransfer', 'common/query/enterprise', 'common/query/bill', 'common/query/receipt', 'common/query/collection', 'common/query/express', 'common/query/bankInfo','common/query/charge', 'common/query/statistics', 'common/query/currency', 'jquery-chart', 'common/query/responseLogistics', 'common/query/goodsPrice', 'common/query/address' , 'common/query/search', 'common/query/urlencryption', 'common/query/releaseProInfo', 'common/query/makerDemand', 'common/query/afterSale', 'common/query/messageBoard', 'common/query/logistics', 'common/query/storeInfo', 'common/query/recommendation', 'common/query/user', 'common/query/logisticsPort', 'common/query/cms', 'common/query/material', 'common/query/storeCms', 'common/query/productImport', 'common/query/stockInOut', 'common/module/store_recommend_product', 'common/module/chat_web_module', 'common/query/standardPutOnAdmin', 'common/query/storeViolations', 'common/query/internalMessage', 'common/query/installments','common/query/product','common/query/seekPurchase','common/query/UASBatchPutOnProperty', 'common/query/authority', 'common/query/attendtion', 'common/b2bServices', 'common/services/File', 'common/services/Token'], function(angularAMD) {
+define([ 'angularAMD', 'ngLocal', 'common/services', 'common/directives', 'common/query/brand', 'common/query/kind', 'common/query/component', 'common/query/goods', 'common/query/rate','common/query/cart', 'common/query/order', 'common/query/address', 'common/query/invoice', 'common/query/property', 'common/query/kindAdvice', 'common/query/propertyAdvice', 'common/query/return' , 'common/query/change', 'common/query/logistics', 'ui.router', 'ui-bootstrap', 'ui-form', 'ui-jquery','angular-toaster', 'ngDraggable', 'angular-sanitize', 'ngTable', 'dynamicInput', 'jquery-imagezoom', 'file-upload', 'file-upload-shim', 'common/query/urlencryption' , 'common/query/purchase', 'common/query/vendor', 'common/query/goods', 'common/query/bankTransfer', 'common/query/enterprise', 'common/query/bill', 'common/query/receipt', 'common/query/collection', 'common/query/express', 'common/query/bankInfo','common/query/charge', 'common/query/statistics', 'common/query/currency', 'jquery-chart', 'common/query/responseLogistics', 'common/query/goodsPrice', 'common/query/address' , 'common/query/search', 'common/query/urlencryption', 'common/query/releaseProInfo', 'common/query/makerDemand', 'common/query/afterSale', 'common/query/messageBoard', 'common/query/logistics', 'common/query/storeInfo', 'common/query/recommendation', 'common/query/user', 'common/query/logisticsPort', 'common/query/cms', 'common/query/material', 'common/query/storeCms', 'common/query/productImport', 'common/query/stockInOut', 'common/module/store_recommend_product', 'common/module/chat_web_module', 'common/query/standardPutOnAdmin', 'common/query/storeViolations', 'common/query/internalMessage', 'common/query/installments','common/query/product','common/query/seekPurchase','common/query/UASBatchPutOnProperty', 'common/query/authority', 'common/query/attendtion', 'common/b2bServices', 'common/services/File', 'common/services/Token', 'wui.date'], function(angularAMD) {
 	'use strict';
 	/**
 	 * 自定义Array对象的属性last 方法
@@ -8,7 +8,7 @@ define([ 'angularAMD', 'ngLocal', 'common/services', 'common/directives', 'commo
 		return this.length > 0 ? this[this.length - 1] : null;
 	};
 
-	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ng.local', 'ui.form', 'ui.jquery', 'toaster', 'ngDraggable', 'tool.directives', 'ngSanitize', 'common.query.kind', 'common.services', 'brandServices', 'componentServices', 'goodsServices',  'rateServices','cartServices', 'orderServices', 'addressServices', 'invoiceServices', 'common.query.propertyAdvice', 'propertyServices', 'returnServices' , 'changeServices',  'logisticsServices', 'common.query.kindAdvice', 'ngTable', 'ngDynamicInput', 'common.directives', 'angularFileUpload', 'urlencryptionServices', 'purchaseServices', 'vendorServices', 'goodsServices', 'bankTransfer', 'common.query.enterprise', 'billServices', 'receiptServices', 'collection', 'expressServices', 'bankInfo','Charge', 'statisticsServices', 'currencyService', 'responseLogisticsService', 'PriceServices', 'addressServices', 'searchService', 'urlencryptionServices', 'ReleaseProductByBatchService', 'makerDemand', 'afterSaleService', 'messageBoardServices', 'logisticsServices', 'table.directives', 'storeInfoServices', 'recommendation', 'common.query.user', 'logisticsPortService', 'cmsService', 'materialServices', 'StoreCmsServices', 'productImportModule', 'stockInOutModule', 'StoreCmsModule', 'WebChatModule', 'StandardPutOnAdminModule', 'StoreViolationsServices', 'internalMessageServices', 'installmentServices','common.query.product', 'ui.tour', 'seekPurchaseServices', 'UASBatchPutOnPropertyModule', 'authorityServices', 'AttendtionServices', 'common.b2bServices', 'FileService', 'TokenService'])
+	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ng.local', 'ui.form', 'ui.jquery', 'toaster', 'ngDraggable', 'tool.directives', 'ngSanitize', 'common.query.kind', 'common.services', 'brandServices', 'componentServices', 'goodsServices',  'rateServices','cartServices', 'orderServices', 'addressServices', 'invoiceServices', 'common.query.propertyAdvice', 'propertyServices', 'returnServices' , 'changeServices',  'logisticsServices', 'common.query.kindAdvice', 'ngTable', 'ngDynamicInput', 'common.directives', 'angularFileUpload', 'urlencryptionServices', 'purchaseServices', 'vendorServices', 'goodsServices', 'bankTransfer', 'common.query.enterprise', 'billServices', 'receiptServices', 'collection', 'expressServices', 'bankInfo','Charge', 'statisticsServices', 'currencyService', 'responseLogisticsService', 'PriceServices', 'addressServices', 'searchService', 'urlencryptionServices', 'ReleaseProductByBatchService', 'makerDemand', 'afterSaleService', 'messageBoardServices', 'logisticsServices', 'table.directives', 'storeInfoServices', 'recommendation', 'common.query.user', 'logisticsPortService', 'cmsService', 'materialServices', 'StoreCmsServices', 'productImportModule', 'stockInOutModule', 'StoreCmsModule', 'WebChatModule', 'StandardPutOnAdminModule', 'StoreViolationsServices', 'internalMessageServices', 'installmentServices','common.query.product', 'ui.tour', 'seekPurchaseServices', 'UASBatchPutOnPropertyModule', 'authorityServices', 'AttendtionServices', 'common.b2bServices', 'FileService', 'TokenService', 'wui.date'])
     app.directive('onFinishRenderFilters', function ($timeout) {
         return {
             restrict: 'A',

+ 564 - 149
src/main/webapp/resources/js/vendor/controllers/b2b/apCheck.js

@@ -1,177 +1,592 @@
 define(['app/app'], function (app) {
 
   //应收对账单列表
-  app.register.controller('PurchaseApCheckCtrl', ['$rootScope', '$scope', 'B2bFaApCheck', 'BaseService', 'ngTableParams', 'toaster', 'B2bReportService', 'Symbol', 'B2bCurrentRole', function ($rootScope, $scope, FaApCheck, BaseService, ngTableParams, toaster, ReportService, Symbol, CurrentRole) {
-    BaseService.scrollBackToTop();
-    $rootScope.active = 'vendor_pay_center';
-    // 获取当前用户是否为普通用户
-    CurrentRole.isUser({}, {}, function (data) {
-      $scope.isUser = data.isUser;
-    });
-    $scope.dateZoneText = '不限';
-    $scope.condition = {dateZone: 1};
-    $scope.currency = Symbol.currency;//将币别转化为对应的符号
-    $scope.active = 'todo';
-
-    /* 时间筛选初始化*/
-    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.print = function (check) {
-      var newPage = window.open("about:blank");
-      FaApCheck.printPermission({}, function () {
-        FaApCheck.printCount({id: check.id}, {});//增加打印此次
-        ReportService.print(check.custUu, 'PURCCHECK', 'where purc$apcheck.pa_id =' + check.id, newPage);
-      }, function (response) {
-        newPage.close();
-        toaster.pop('error', '打印失败', response.data);
+  app.register.controller('PurchaseApCheckCtrl', ['$rootScope', '$scope', 'B2bFaApCheck', 'BaseService', 'ngTableParams', 'toaster', 'B2bReportService', 'Symbol', 'B2bCurrentRole',  'B2bDecimalNumber', '$filter', '$state',function ($rootScope, $scope, FaApCheck, BaseService, ngTableParams, toaster, ReportService, Symbol, CurrentRole, DecimalNumber, $filter, $state) {
+      BaseService.scrollBackToTop();
+      // 获取当前用户是否为普通用户
+      $rootScope.active = 'vendor_pay_center';
+      CurrentRole.isUser({}, {}, function (data) {
+          $scope.isUser = data.isUser;
       });
-    };
+      $scope.dateZoneText = '不限';
+      $scope.condition = {dateZone: 1};
+      $scope.currency = Symbol.currency;//将币别转化为对应的符号
+      $scope.active = 'all';
+
+
+
+      /* 时间筛选初始化*/
+      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.print = function (check) {
+          var newPage = window.open("about:blank");
+          FaApCheck.printPermission({}, function () {
+              FaApCheck.printCount({id: check.id}, {});//增加打印此次
+              ReportService.print(check.custUu, 'PURCCHECK', 'where purc$apcheck.pa_id =' + check.id, newPage);
+          }, function (response) {
+              newPage.close();
+              toaster.pop('error', '打印失败', response.data);
+          });
+      };
+
+      //状态
+      $scope.setActive = function (state) {
+          if ($scope.active != state) {
+              $scope.active = state;
+              if ($scope.tableParams.page() == 1)
+                  $scope.tableParams.reload();
+              else
+                  $scope.tableParams.page(1);
+              $scope.showNotCheck = false
+          }
+      };
+      $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.tableParams = new ngTableParams({
+          page: 1,
+          count: 20,
+          sorting: {
+              recordDate: 'desc'
+          }
+      }, {
+          total: 0,
+          counts: [5, 10, 25, 50],
+          getData: function ($defer, params) {
+              $scope.loading = true;
+              var pageParams = params.url();
+
+              pageParams.searchFilter = { // 筛选条件
+                  keyword: $scope.keyword,
+                  fromDate: getDateTime($scope.condition.dateFrom),
+                  endDate: getDateTime($scope.condition.dateTo)
+              };
+              if ($scope.active === 'all') {
+                  pageParams.keyword = $scope.keyword
+                  FaApCheck.customer(BaseService.parseParams(pageParams), function (page) {
+                      $scope.loading = false;
+                      if (page) {
+                          params.total(page.totalElement);
+                          $defer.resolve(page.content);
+                      }
+                      $scope.ALLList = page.content
+                      $scope.infoCommon = page
+                      $scope.infoCommon.all = page.content.length
+                      $scope.totalCount = page.totalElement;
+                  }, function (response) {
+                      $scope.loading = false;
+                      toaster.pop('error', '数据加载失败', response.data);
+                  });
+              } else {
+                  FaApCheck[getState($scope.active)](BaseService.parseParams(pageParams), function (page) {
+                      $scope.loading = false;
+                      if (page) {
+                          params.total(page.totalElement);
+                          $scope.data = $defer.resolve(page.content);
+                          $scope.infoCommon = page
+                          $scope.infoCommon.all = page.content.length
+                          $scope.searchFilterXls = angular.copy(pageParams.searchFilter);//保存当前取值的条件
+                      }
+                  }, function (response) {
+                      $scope.loading = false;
+                      toaster.pop('error', '数据加载失败', response.data);
+                  });
+              }
+          }
+      });
+
+      //获得各分类未阅读数量
+      var getUnreadCount = function () {
+          FaApCheck.getUnreadCount(null, function(data){
+              $scope.unread = data;
+          });
+      };
+      getUnreadCount();
+
+      //设置单据已读
+      $scope.setOrdersRead = function (id) {
+          // 如果单据本身已读,则不发送请求修改数据
+          if (!$scope.isUnread(id)){
+              return;
+          }
+          var sourceId = [];
+          sourceId.push(id);
+          FaApCheck.setRead({}, sourceId, function (message) {
+              getUnreadCount();
+          });
+      };
+
+      //获取未读单据id
+      var getUnreadIds = function (){
+          FaApCheck.getUnreadIds({}, "", function (message) {
+              $scope.unreadCode = message.content;
+          });
+      };
+      getUnreadIds();
+      //判断单据是否未读
+      $scope.isUnread = function (id){
+          for (var i in $scope.unreadCode) {
+              if (id == $scope.unreadCode[i]) {
+                  return true;
+              }
+          }
+      };
+
+      $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.checkQty;
+              });
+          }
+          return total;
+      };
 
-    //状态
-    $scope.setActive = function (state) {
-      if ($scope.active != state) {
-        $scope.active = state;
-        if ($scope.tableParams.page() == 1)
+      // 搜索框回车
+      $scope.onSearch = function () {
+          $scope.tableParams.page(1);
           $scope.tableParams.reload();
-        else
+      };
+
+      // 选择查找日期
+      $scope.onDateCondition = function () {
           $scope.tableParams.page(1);
+          $scope.tableParams.reload();
+      };
+
+      // 导出
+      $scope.exportXls = function () {
+          FaApCheck.exportXls({}, {}, function (data) {
+              if (data.success){
+                  window.location.href = 'sale/apCheck/xls/list?_state='+$scope.active+'&searchFilter='+encodeURIComponent(angular.toJson($scope.searchFilterXls));
+              }
+          }, function (response) {
+              toaster.pop('error', '数据加载失败', response.data);
+          });
+      }
+
+      $scope.data = [];// 列表数据
+
+      $scope.condition = {
+          $fromOpened: false
       }
-    };
-    $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.tableParams = new ngTableParams({
-      page: 1,
-      count: 20,
-      sorting: {
-        recordDate: 'desc'
+      $scope.openDatePicker = function ($event, item, openParam) {
+          $event.preventDefault();
+          $event.stopPropagation();
+          item[openParam] = !item[openParam];
       }
-    }, {
-      total: 0,
-      counts: [5, 10, 25, 50],
-      getData: function ($defer, params) {
-        $scope.loading = true;
-        var pageParams = params.url();
-        pageParams.searchFilter = { // 筛选条件
-          keyword: $scope.keyword,
-          fromDate: getDateTime($scope.condition.dateFrom),
-          endDate: getDateTime($scope.condition.dateTo)
-        };
-        FaApCheck[getState($scope.active)](BaseService.parseParams(pageParams), function (page) {
-          $scope.loading = false;
-          if (page) {
-            params.total(page.totalElement);
-            $scope.data = $defer.resolve(page.content);
-            $scope.infoCommon = page
-            $scope.infoCommon.all = page.content.length
-            $scope.searchFilterXls = angular.copy(pageParams.searchFilter);//保存当前取值的条件
+
+      // 客户联想词
+      $scope.getSimilarCustomers = function (value) {
+          if (value) {
+              return Vendor.getSimilarCustomers({keyword: value}).$promise.then(function (data) {
+                  return data.map(function (item) {
+                      return item;
+                  });
+              });
+          }
+      };
+
+      $scope.onAssociateCustomerClick = function (vendor) {
+          if (vendor.apcheck == 0) {
+              toaster.pop('info', '提示', '该客户暂未启用平台对账功能');
+              $scope.suuorname = '';
+          } else {
+              $scope.suuorname = vendor.custName;
           }
-        }, function (response) {
-          $scope.loading = false;
-          toaster.pop('error', '数据加载失败', response.data);
-        });
       }
-    });
 
-    //获得各分类未阅读数量
-    var getUnreadCount = function () {
-      FaApCheck.getUnreadCount(null, function(data){
-        $scope.unread = data;
-      });
-    };
-    getUnreadCount();
+      //查找客户
+      $scope.searchCust = function (suuorname) {
+          var modalInstance = $modal.open({
+              animation: true,
+              templateUrl: 'static/tpl/index/fa/apcheck_customer.html',
+              controller: 'SearchCustInfoCtrl',
+              size: 'lg',
+              resolve: {
+                  suuorname: function () {
+                      return suuorname;
+                  }
+              }
+          });
+          modalInstance.result.then(function (customer) {
+              $scope.suuorname = customer.myEnterprise.enName;
+          });
 
-    //设置单据已读
-    $scope.setOrdersRead = function (id) {
-      // 如果单据本身已读,则不发送请求修改数据
-      if (!$scope.isUnread(id)){
-        return;
       }
-      var sourceId = [];
-      sourceId.push(id);
-      FaApCheck.setRead({}, sourceId, function (message) {
-        getUnreadCount();
-      });
-    };
 
-    //获取未读单据id
-    var getUnreadIds = function (){
-      FaApCheck.getUnreadIds({}, "", function (message) {
-        $scope.unreadCode = message.content;
-      });
-    };
-    getUnreadIds();
-    //判断单据是否未读
-    $scope.isUnread = function (id){
-      for (var i in $scope.unreadCode) {
-        if (id == $scope.unreadCode[i]) {
-          return true;
-        }
+      $scope.showNotCheck = false
+      $scope.goToMNs = function(item) {
+          $scope.chooseItem = item;
+          $scope.showNotCheck = true
+          $scope.suuorname = item.myEnterprise.enName
+          this.searchOrder()
       }
-    };
 
-    $scope.openDatePicker = function ($event, item, openParam) {
-      $event.preventDefault();
-      $event.stopPropagation();
-      item[openParam] = !item[openParam];
-    };
+      // 点击筛选根据条件选择数据
+      // 默认本月
+      $scope.sdateTo = new Date();
+      $scope.sdateFrom = new Date($scope.sdateTo.getFullYear(), $scope.sdateTo.getMonth(), 1);
+      $scope.thisMouth = $scope.sdateTo.getFullYear() +'-'+ ($scope.sdateTo.getMonth() + 1)
+      $scope.condition.uuorname = '';
+      // $scope.condition.dateFrom = '';
+      // $scope.condition.dateTo = '';
+      $scope.condition.venduuorname = '';
+      $scope.condition.factory = '';
+      $scope.condition.prodtitle = '';
+      $scope.condition.prodspec = '';
+
+      $scope.searchOrder = function (check) {
+          $scope.data = [];
+          $scope.checkboxes.checked = false;
+          $scope.totalMoney = 0;
+          $scope.condition.uuorname = $scope.suuorname;
+          $scope.condition.factory = $scope.factory
+          $scope.condition.prodtitle = $scope.prodtitle;
+          $scope.condition.prodspec = $scope.prodspec;
+          // $scope.condition.dateFrom = ($scope.sdateFrom || 0);
+          $scope.thisdatato = ($scope.sdateTo || 0);
+          if ($scope.thisdatato != 0) {
+              $scope.condition.dateTo = (new Date($scope.thisdatato.valueOf()) || 0);
+          } else {
+              $scope.condition.dateTo = ($scope.sdateTo || 0);
+          }
+          $scope.condition.venduuorname = $scope.vuuorname;
+          if ($scope.condition.dateTo != null || $scope.keywordXls != null) {
+
+              // $scope.fromDate = $scope.condition.dateFrom ? $scope.condition.dateFrom.getTime() : null;
+              // $scope.endDate = $scope.condition.dateTo ? $scope.condition.dateTo.getTime() : null;
+              $scope.searchKeyWord = {
+                  receiveName: $scope.receiveName,
+                  factory: $scope.factory,
+                  prodTitle: $scope.prodTitle,
+                  prodSpec: $scope.prodSpec,
+                  taxRate: $scope.taxRate,
+                  suuorname: $scope.suuorname
+              }
+              $scope.exportKeywords = encodeURIComponent($scope.searchKeyWord);
+              // $scope.fromDateXls = angular.copy($scope.condition.dateFrom ? $scope.condition.dateFrom.getTime() : null);//保存当前取值的起始日期
+              // $scope.endDateXls = angular.copy($scope.condition.dateTo ? $scope.condition.dateTo.getTime() : null);//保存当前取值的截止日期
+              // if (!$scope.suuorname) {
+              //     toaster.pop('warning', '提示', '请先选择客户');
+              //     document.getElementById('suuorname').focus();//光标默认在客户
+              // } else {
+              $scope.loading = true;
+              FaApCheck.getAllByKeywords({
+                  // fromDate: $scope.fromDate,
+                  // endDate: $scope.endDate,
+                  receiveName: $scope.receiveName,
+                  factory: $scope.factory,
+                  prodTitle: $scope.prodTitle,
+                  prodSpec: $scope.prodSpec,
+                  taxRate: $scope.taxRate,
+                  checkDate: $scope.thisMouth,
+                  suuorname: $scope.suuorname
+              }, function (data) {
+                  if (data.length > 0) {
+                      angular.forEach(data, function (item) {
+                          item.$selected = true;
+                      });
+                      $scope.data = data;
+                      $scope.checkboxes.checked = true;
+                      $scope.getTotalMoney();
+                  } else {
+                      toaster.pop('info', '提示', '当前没有需要对账记录');
+                  }
+                  $scope.loading = false;
+              }, function (response) {
+                  $scope.loading = false;
+                  toaster.pop('error', '提示', response.data);
+              });
+              // }
+          }
 
-    $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.checkQty;
-        });
+      $scope.exportApcheckList = function() {
+          var url = 'sale/apCheck/xls?fromDate=' + $scope.fromDate + '&endDate=' + $scope.endDate;
+          if (angular.isDefined($scope.receiveName)) {
+              url = url + '&receiveName=' + $scope.receiveName;
+          }
+          if (angular.isDefined($scope.factory)) {
+              url = url + '&factory=' + $scope.factory;
+          }
+          if (angular.isDefined($scope.prodTitle)) {
+              url = url + '&prodTitle=' + $scope.prodTitle;
+          }
+          if (angular.isDefined($scope.prodSpec)) {
+              url = url + '&prodSpec=' + $scope.prodSpec;
+          }
+          if (angular.isDefined($scope.suuorname)) {
+              url = url + '&suuorname=' + $scope.suuorname;
+          }
+          if (angular.isDefined($scope.taxRate)) {
+              url = url + '&receiveName=' + $scope.taxRate;
+          }
+          window.location.href = url;
       }
-      return total;
-    };
 
-    // 搜索框回车
-    $scope.onSearch = function () {
-      $scope.tableParams.page(1);
-      $scope.tableParams.reload();
-    };
+      /**
+       * 点击勾选框,选中要转应收对账单的订单
+       * */
+      $scope.totalMoney = 0;
+      $scope.checkboxes = {
+          checked: false
+      };
 
-    // 选择查找日期
-    $scope.onDateCondition = function () {
-      $scope.tableParams.page(1);
-      $scope.tableParams.reload();
-    };
+      // 点击勾选全部的复选框
+      $scope.checkAll = function () {
+          $scope.totalMoney = 0;
+          $scope.filteredData = $filter('filter')($scope.data, $scope.condition.prodtitle || $scope.condition.uuorname || $scope.condition.venduuorname || $scope.condition.prodspec || $scope.condition.factory);
+          // var dateFrom = $scope.condition.dateFrom;
+          // var dateTo = $scope.condition.dateTo;
+          angular.forEach($scope.filteredData, function (item) {
+              // if ((item.pidate >= dateFrom || dateFrom == '') && (item.pidate < dateTo || dateTo == '')) {
+              item.$selected = $scope.checkboxes.checked;
+              // }
+          });
+          $scope.getTotalMoney();
+      };
 
-    // 导出
-    $scope.exportXls = function () {
-      FaApCheck.exportXls({}, {}, function (data) {
-        if (data.success){
-          window.location.href = BaseService.getB2bUrl() + '/sale/apCheck/xls/list?_state='+$scope.active+'&searchFilter='+encodeURIComponent(angular.toJson($scope.searchFilterXls));
-        }
-      }, function (response) {
-        toaster.pop('error', '数据加载失败', response.data);
-      });
-    }
+      //获取已选单据总金额
+      $scope.getTotalMoney = function () {
+          $scope.totalMoney = 0;
+          angular.forEach($scope.data, function (check) {
+              if (check.$selected) {
+                  var price = DecimalNumber.accMul((check.thischeckqty || 0), (check.orderprice || 0));
+                  $scope.totalMoney += Math.round(price * 100) / 100;
+              } else {
+                  $scope.totalMoney += 0;
+              }
+          });
+
+      }
+
+      // 点击其中一个明细的复选框
+      $scope.checkOne = function (check) {
+          var result = true;
+          angular.forEach($scope.data, function (item) {
+              if (item.$selected != true) {
+                  result = false;
+                  return;
+              }
+          });
+          $scope.checkboxes.checked = result;
+      };
+
+      $scope.haveSelected = false;
+
+      //生成应收对账单
+      $scope.createApCheck = function () {
+          //保存应收对账单主记录字段
+          $scope.apCheck = {
+              custUu: '',
+              custName: '',
+              enUu: '',
+              apDate: '',
+              beginDate: '',
+              endDate: '',
+              checkStatus: '未对账',
+              checkAmount: 0,
+              currency: '',
+              rate: '',
+              items: [],
+              taxrate: ''
+          };
+          //保存来源单据相关信息
+          var sourceInfos = [];
+
+
+          //所允许的本次对账最大最小数量
+          $scope.data.maxThisCheckQty = 0;
+          $scope.data.minThisCheckQty = 0;
+
+          $scope.sameCust = true;
+          $scope.validQty = true;
+          $scope.loading = true;
+
+          angular.forEach($scope.data, function (check) {
+              //保存应收对账单明细行数据
+              $scope.item = {
+                  inoutno: '',
+                  inoutnodetno: '',
+                  orderCode: '',
+                  orderClass: '',
+                  orderDetno: '',
+                  price: '',
+                  checkQty: '',
+                  amount: '',
+                  sourceId: '',
+                  sourceTable: '',
+                  oldYCheckQty: '',
+                  status: 0,
+                  receiveCode: '',
+                  receiveName: '',
+                  prodCode: '',
+                  prodTitle: '',
+                  prodUnit: '',
+                  prodSpec: '',
+                  taxrate: '',
+                  sendcode: '',
+                  whname: '',
+                  custUserUU: ''
+              };
+
+              //应收对账单明细行来源表信息
+              $scope.sourceInfo = {
+                  sourceId: '',
+                  sourceTable: '',
+                  newYCheckQty: ''
+              };
+
+              //此次对账后新的已转数
+              $scope.newYCheckQty = 0;
+              if (check.$selected == true) {
+                  $scope.apCheck.custName = check.custname;
+                  $scope.apCheck.enUu = check.enuu;
+                  $scope.apCheck.checkAmount += (check.thischeckqty || 0) * (check.orderprice || 0);
+                  $scope.apCheck.apDate = check.pidate;
+                  $scope.apCheck.rate = check.rate;
+
+                  //必须是同一家客户才能生成对账单,否则提示错误
+                  if ($scope.apCheck.custUu == '') {
+                      $scope.apCheck.custUu = check.custuu;
+                  } else if ($scope.apCheck.custUu !== check.custuu) {
+                      $scope.sameCust = false;
+                      $scope.loading = false;
+                      toaster.pop('error', '请选择同一家客户');
+                  }
+
+                  //必须是相同币别才能生成对账单,否则提示错误
+                  if ($scope.apCheck.currency == '') {
+                      $scope.apCheck.currency = check.currency;
+                  } else if ($scope.apCheck.currency !== check.currency) {
+                      $scope.sameCust = false;
+                      $scope.loading = false;
+                      toaster.pop('error', '请选择同一种币别');
+                  }
+
+                  //必须是相同税率才能生成对账单,否则提示错误
+                  if (!angular.isNumber($scope.apCheck.taxrate)) {
+                      $scope.apCheck.taxrate = check.taxrate;
+                  } else if ($scope.apCheck.taxrate != check.taxrate) {
+                      $scope.sameCust = false;
+                      $scope.loading = false;
+                      toaster.pop('error', '请选择相同的税率');
+                  }
+
+                  //本次对账数量必须小于总对账数量
+                  if (check.qty > 0) {
+                      $scope.data.maxThisCheckQty = check.qty;
+                      $scope.data.minThisCheckQty = 0;
+                      if (check.qty - (check.ycheckqty || 0) < check.thischeckqty || check.thischeckqty < 0 || check.thischeckqty == 0) {
+                          $scope.validQty = false;
+                          $scope.loading = false;
+                          toaster.pop('error', '本次对账数量,填写有误!');
+                      }
+                  } else if (check.qty < 0) {
+                      $scope.data.maxThisCheckQty = 0;
+                      $scope.data.minThisCheckQty = check.qty;
+                      if (((-check.qty) - (-check.ycheckqty) < (-check.thischeckqty)) || check.thischeckqty > 0 || check.thischeckqty == 0) {
+                          $scope.validQty = false;
+                          $scope.loading = false;
+                          toaster.pop('error', '本次对账数量,填写有误!');
+                      }
+                  }
+
+                  //获取筛选时间的开始时间为对账的开始时间
+                  $scope.apCheck.beginDate = $scope.fromDate;
+
+                  //获取筛选的截止时间为对账的截止时间
+                  $scope.apCheck.endDate = $scope.endDate;
+
+                  //应收对账单明细行数据
+                  $scope.item.orderCode = check.ordercode;
+                  $scope.item.orderClass = check.piclass;
+                  $scope.item.orderDetno = check.orderdetno;
+                  $scope.item.price = check.orderprice;
+                  $scope.item.checkQty = check.thischeckqty;
+                  $scope.item.amount = (check.thischeckqty || 0) * (check.orderprice || 0);
+                  $scope.item.sourceId = check.sourceid;
+                  $scope.item.sourceTable = check.sourcetable;
+                  $scope.item.oldYCheckQty = check.ycheckqty;
+                  $scope.item.prodCode = check.prodcode;
+                  $scope.item.prodTitle = check.prodtitle;
+                  $scope.item.prodSpec = check.prodspec;
+                  $scope.item.prodUnit = check.produnit;
+                  $scope.item.inoutno = check.inoutno;
+                  $scope.item.inoutnodetno = check.detno;
+                  $scope.item.taxrate = check.taxrate;
+                  $scope.item.receiveCode = check.receivecode;
+                  $scope.item.receiveName = check.receivename;
+                  $scope.item.sendcode = check.sendcode;
+                  $scope.item.whname = check.whname;
+                  $scope.item.custUserUU = check.custuseruu;
+
+                  //来源表相关信息
+                  $scope.sourceInfo.sourceid = check.sourceid;
+                  $scope.sourceInfo.sourcetable = check.sourcetable;
+                  $scope.sourceInfo.newYCheckQty = ((check.ycheckqty || 0) + check.thischeckqty);
+
+                  sourceInfos.push($scope.sourceInfo);
+                  $scope.apCheck.items.push($scope.item);
+                  $scope.haveSelected = true;
+              }
+          });
+
+          //保存生成的应收对账单
+          $scope.saveApCheck = function () {
+              if ($scope.apCheck.items.length == 0) {
+                  $scope.loading = false;
+                  toaster.pop('error', '请先选择需要对账的数据');
+              } else {
+                  FaApCheck.saveApCheck({}, $scope.apCheck, function (data) {
+                      $scope.loading = false;
+                      toaster.pop('success', '成功', '生成应收对账成功');
+                      $state.go('fa_apCheck_detail', {id: data.id}, {reload: true});
+                  }, function (response) {
+                      $scope.loading = false;
+                      toaster.pop('error', '生成对账单失败', response.data);
+                  })
+              }
+          };
+
+          //如果是同一家客户,生成对账单的同时,关闭模态框
+          if ($scope.sameCust && $scope.validQty) {
+              $scope.saveApCheck();
+          }
+      }
 
     /**
      * 将日期转化为整数日期

+ 4 - 2
src/main/webapp/resources/js/vendor/main.js

@@ -28,7 +28,8 @@ require.config({
 		'file-upload-shim': 'lib/angular/angular-file-upload-shim.min',
 		'showdown' : 'lib/showdown/showdown.min',
 		'calendar': 'lib/calendar/calendar',
-		'big': 'lib/decimal/big.min'
+		'big': 'lib/decimal/big.min',
+        'wui.date' : 'lib/wui/wui-date'
 	},
 	shim : {
 		'angular' : {
@@ -65,7 +66,8 @@ require.config({
 		},
 		'file-upload': ['angular', 'file-upload-shim'],
 		'calendar': ['jquery'],
-		'big' : ['jquery']
+		'big' : ['jquery'],
+        'wui.date' : ['angular']
 	}
 });
 require([ 'app/app', 'common/controllers/commonCtrls', 'common/controllers/b2bCommonCtrls' ], function(app) {

+ 653 - 0
src/main/webapp/resources/lib/wui/wui-date.js

@@ -0,0 +1,653 @@
+angular.module('wui.date',[]).directive('wuiDate', function() {
+	return {
+		// Restrict to elements and attributes
+		restrict: 'EA',
+
+		// Assign the angular link function
+		compile: fieldCompile,
+
+		// Assign the angular directive template HTML
+		template: fieldTemplate,
+		// templateUrl: "pageTemplate.html",
+
+		// Assign the angular scope attribute formatting
+		scope: {
+			id: '@?', // 时间插件主键 默认scope.$id
+			name: '@?', // 绑定表单验证input的name属性
+			format: '@?', // 定义时间格式 默认yyyy-mm-dd
+			interval: '@?', // 定义time时间间隔 默认30minutes
+			placeholder: '@?', // 选择框提示语 默认 '选择时间'
+			position: '@?', // 定义选择框浮动位置 默认left
+			ngModel: '=', // 父scope绑定的时间的属性
+			btns: '@', // 按钮信息 空则不显示任何按钮
+			dateClass: '@?', // 自定义样式
+			width: '@?', // 输入框宽度 支持px及百分比
+			size: '@?' // 插件大小 默认为迷你型  large、L、l表示大型窗
+		}
+
+	};
+
+	function fieldCompile(scope, element, attr) {
+		return {
+			pre: function(scope, element, attr) {
+
+				scope.id = scope.id || 'date' + scope.$id; // 生成插件唯一id
+				var position = scope.position || 'left', // 面板浮动
+					iptWidth = parseInt(scope.width); // 输入框宽度
+					iptWidthU = scope.width?scope.width.search('%') == -1 ? 'px' : '%':null,
+					size = scope.size != 'large' && scope.size != 'l' && scope.size != 'L' ? 'small' : null;
+				angular.element(element).find('.wui-date').addClass('wui-date-' + scope.id);
+				if(scope.name != '' && typeof scope.name != 'undefined') {
+					angular.element(element).find('.wui-date input').attr('name', scope.name);
+				}
+				if(size) {
+					angular.element(element).find('.wui-date').addClass(size); // 大小
+				}
+				angular.element(element).find('.wui-date .wui-date-picker').addClass(position); // 面板添加浮动
+				scope.dateClass ? angular.element(element).find('.wui-date').addClass(scope.dateClass) : null; // 插件外部样式
+				iptWidth ? angular.element(element).find('.wui-date').css('width', iptWidth + iptWidthU) : null; // 输入框宽度
+			},
+			post: function(scope, element, attr) {
+				fieldLink(scope, element, attr);
+			}
+		}
+	}
+
+	function fieldLink(scope, element, attr) {
+		// 初始化
+		var GMTDate, // GMT格式时间
+			format = (scope.format || 'yyyy-mm-dd').toLowerCase(), // 时间格式
+			interval = parseInt(scope.interval) || 30, // time间隔
+			interval = (60 % interval === 0 || interval % 60 === 0) && interval <= 12 * 60 ? interval : 30,
+			placeholder = scope.placeholder || "选择时间",
+			maxYear = parseInt(new Date().getFullYear()) + 100, // 插件最大year
+			minYear = 1900, // 插件最小year
+			SPECIAL_DATE_RULES = ['至今'], // 特殊字符串规则
+			DATE_RULES = ['yyyy-mm-dd hh:mm:ss', 'yyyy-mm-dd hh:mm', 'yyyy-mm-dd', 'yyyy-mm']; // 内置的日期格式
+
+		// angular对象初始化
+		scope.date = {
+			year: '0000',
+			month: '00',
+			date: '00',
+			hours: '00',
+			minutes: '00',
+			seconds: '00',
+			dateList: [],
+			timeList: [],
+			yearList: {},
+			showPicker: false,
+			showTimePicker: false,
+			showTimeList: true,
+			showClearIcon: false,
+			selector: 1,
+			btns: scope.btns ? JSON.parse(scope.btns.replace(/'/g, '"')) : {}, // btns字符串转对象
+			showBtn: false,
+		};
+
+		// 初始化GMT时间
+		function GMTDateInit(date) {
+			date = dateFormat(date);
+			if(date) {
+				if(!SPECIAL_DATE_RULES.includes(date)) {
+					GMTDate = StrDateToGMT(date);
+				} else {
+					GMTDate = new Date();
+				}
+			} else {
+				GMTDate = new Date();
+			}
+		}
+
+		// 加载dom
+		function domBootstrap(format) {
+			if(Object.keys(scope.date.btns).length) {
+				scope.date.showBtn = true;
+			}
+			switch(format) {
+				case 'yyyy-mm-dd hh:mm:ss':
+				case 'yyyy-mm-dd hh:mm':
+					scope.date.showTimePicker = true; // 
+					scope.date.selector = 1;
+					angular.element(element).find('.wui-date .wui-date-picker').removeClass('no_timer');
+					break;
+				case 'yyyy-mm-dd':
+					scope.date.showTimePicker = false;
+					angular.element(element).find('.wui-date .wui-date-picker').addClass('no_timer');
+					scope.date.selector = 1;
+					break;
+				case 'yyyy-mm':
+					scope.date.showTimePicker = false;
+					scope.date.selector = 2;
+					angular.element(element).find('.wui-date .wui-date-picker').addClass('no_timer');
+					break;
+				default:
+					break;
+			}
+		}
+
+		// 时间格式化
+		function dateFormat(date) {
+			if(!date) {
+				return null;
+			}
+			if(SPECIAL_DATE_RULES.includes(date)) { // 特殊字符串
+				return date;
+			}
+			date = date.toString().replace(/[\D]/g, ""); // 清除时间除数字外字符
+			var len = format.replace(/\W/g, "").length; // 默认格式长度
+			var str = date.length >= len ? date.slice(0, len) : '';
+			if(date && str) {
+				switch(format) {
+					case 'yyyy-mm-dd hh:mm:ss':
+						date = str.replace(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/, "$1-$2-$3 $4:$5:$6");
+						break;
+					case 'yyyy-mm-dd hh:mm':
+						date = str.replace(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/, "$1-$2-$3 $4:$5");
+						break;
+					case 'yyyy-mm-dd':
+						date = str.replace(/(\d{4})(\d{2})(\d{2})/, "$1-$2-$3");
+						break;
+					case 'yyyy-mm':
+						date = str.replace(/(\d{4})(\d{2})/, "$1-$2");
+						break;
+					default:
+						break;
+				}
+				return str !== date ? date : null; // 正则替换失败后返回原字符串  替换成功则 str != date 
+			}
+			return null;
+		}
+		// 字符串时间格式化为标准时间
+		function StrDateToGMT(date) {
+			if(date && new Date(date) != 'Invalid Date') {
+				return new Date(date);
+			}
+			return null;
+		}
+		// 标准时间格式化为字符串时间
+		function GMTToStrDate(date) {
+			date = new Date(date);
+			if(date && toString.call(date) == '[object Date]') {
+				return date.getFullYear() + '/' + getDoubleDigit(date.getMonth() + 1) + '/' + getDoubleDigit(date.getDate()) + ' ' + getDoubleDigit(date.getHours()) + ':' + getDoubleDigit(date.getMinutes()) + ':' + getDoubleDigit(date.getSeconds());
+			}
+			return null;
+		}
+		// 生成两位月、日
+		function getDoubleDigit(num) {
+			num = '0' + num;
+			return num.slice(-2);
+		}
+
+		// 显示的年月日时分秒数据 
+		function getAllDate() {
+			scope.date.year = GMTDate.getFullYear(); // 初始化年份
+			scope.date.month = getDoubleDigit(GMTDate.getMonth() + 1); // 两位月份
+			scope.date.day = getDoubleDigit(GMTDate.getDate()); // 两位日期
+			scope.date.hours = getDoubleDigit(GMTDate.getHours()); // 两位时
+			scope.date.minutes = getDoubleDigit(GMTDate.getMinutes()); // 两位分
+			scope.date.seconds = getDoubleDigit(GMTDate.getSeconds()); // 两位秒
+		}
+		// 生成日期数据
+		function getDateList(date) {
+			date = date || new Date();
+			if(date.getFullYear() <= maxYear && date.getFullYear() >= minYear) { // 判断年份上下限
+				// 初始化数据
+				var dateList = [], // 属性type:1 表示上月的日期 2表示当月日期 3表示下月日期, 属性date:当天是几号
+					weekOfFirstDay, // 当月第一天是周几
+					endDayOfMonth, // 当前月份最后一天
+					endDayOfLastMonth, // 上月最后一天
+					modelDate = StrDateToGMT(scope.ngModel);
+
+				getAllDate();
+
+				weekOfFirstDay = new Date(scope.date.year, scope.date.month - 1, 1).getDay();
+				endDayOfMonth = new Date(scope.date.year, scope.date.month, 0).getDate();
+				endDayOfLastMonth = new Date(scope.date.year, scope.date.month - 1, 0).getDate();
+
+				// 当月日期列表
+				for(var i = 1; i <= endDayOfMonth; i++) {
+					// 面板显示日期与输入框日期相同返回 true
+					if(modelDate) {
+						var condition1 = modelDate.getFullYear() == scope.date.year && (modelDate.getMonth() + 1) == scope.date.month && modelDate.getDate() == i;
+					}
+					// 面板日期为系统当天日期返回 true
+					var condition2 = new Date().getFullYear() == GMTDate.getFullYear() && new Date().getMonth() == GMTDate.getMonth() && new Date().getDate() == i;
+					var dateObj = {
+						'type': 2,
+						'date': i
+					};
+					if(condition1) {
+						dateObj.current = true; // currently picked
+					}
+					if(condition2) {
+						dateObj.today = true; // today
+					}
+					dateList.push(dateObj);
+				}
+
+				// 根据week生成填充上月日期
+				var prevLen = 0; // the length of prev month day
+				prevLen = weekOfFirstDay || 7;
+				for(var j = 0; j < prevLen; j++) {
+					dateList.unshift({
+						'type': 1,
+						'date': endDayOfLastMonth--
+					});
+				}
+
+				// 每个面板最多显示42天  计算剩余下月显示的天数
+				var nextLen = 42 - prevLen - endDayOfMonth;
+				for(var k = 1; k <= nextLen; k++) {
+					dateList.push({
+						'type': 3,
+						'date': k
+					});
+				}
+
+				// 按每行显示7天分割数组
+				var count = 0,
+					arr = [],
+					resList = [];
+				for(var l = 0; l < dateList.length; l++) {
+					count++;
+					arr.push(dateList[l]);
+					if(count >= 7) {
+						resList.push(arr);
+						count = 0;
+						arr = [];
+					}
+				}
+				return resList;
+			}
+		}
+
+		// 生成时间选择列表数据
+		function createTimeList() {
+			var h = 8,
+				m = 0,
+				resList = [{
+					'time': '08:00'
+				}];
+			// fill time list
+			for(var i = 1; i < 24 * 60 / interval; i++) {
+				m = m + interval;
+				if(m >= 60) {
+					h = h + (m / 60);
+					m = 0;
+				}
+				if(h >= 24) {
+					h = h - 24;
+				}
+				var timeObj = {
+					'time': getDoubleDigit(h) + ":" + getDoubleDigit(m)
+				};
+				resList.push(timeObj);
+			}
+			return resList;
+		}
+
+		// 生成年份选择列表数据
+		function createYearList(year) {
+			year = parseInt(year) || GMTDate.getFullYear();
+			if(year) {
+				var yearList = {};
+				yearList.startYear = year;
+				yearList.endYear = yearList.startYear + 10;
+				yearList.y1 = [];
+				yearList.y2 = [];
+				yearList.y3 = [];
+
+				for(var i = 0; i < 4; i++) {
+					yearList.y1.push(year + i);
+					yearList.y2.push(year + i + 4);
+					if(yearList.y3.length <= 2) {
+						yearList.y3.push(year + i + 8);
+					}
+				}
+				return yearList;
+			}
+			return null;
+		}
+
+		// 输出时间
+		function outputDate() {
+			scope.ngModel = dateFormat(GMTToStrDate(GMTDate));
+		}
+
+		// 点击某天关闭弹窗的规则
+		var DATE_PICK_CLOSE = (format == DATE_RULES[2]);
+
+		// Pick Date
+		scope.pickDate = function(item, e) {
+			if(item.type == 2) {
+				GMTDate.setDate(item.date);
+				if(DATE_PICK_CLOSE) {
+					scope.date.showPicker = false;
+				}
+			} else if(item.type == 1) {
+				GMTDate.setDate(item.date);
+				GMTDate.setMonth(scope.date.month - 2);
+			} else if(item.type == 3) {
+				GMTDate.setDate(item.date);
+				GMTDate.setMonth(scope.date.month);
+			}
+			outputDate();
+			scope.date.dateList = getDateList(GMTDate); // 生成年月日数据
+		}
+
+		// Pick Time
+		scope.pickTime = function(time) {
+			GMTDate.setHours(time.slice(0, 2));
+			GMTDate.setMinutes(time.slice(3, 5));
+			outputDate();
+			getAllDate();
+		}
+
+		// Prev Year
+		scope.prevYear = function() {
+			var y = scope.date.year - 1;
+			if(y >= minYear) {
+				GMTDate.setFullYear(y);
+				scope.date.dateList = getDateList(GMTDate); // 生成年月日数据
+			}
+		}
+
+		// Next Year
+		scope.nextYear = function() {
+			var y = scope.date.year + 1;
+			if(y <= maxYear) {
+				GMTDate.setFullYear(y);
+				scope.date.dateList = getDateList(GMTDate); // 生成年月日数据
+			}
+		}
+
+		// Prev Year
+		scope.prevYearByMonth = function() {
+			var y = scope.date.year - 1;
+			if(y >= minYear) {
+				GMTDate.setFullYear(y);
+				getAllDate();
+			}
+		}
+
+		// Next Year
+		scope.nextYearByMonth = function() {
+			var y = scope.date.year + 1;
+			if(y <= maxYear) {
+				GMTDate.setFullYear(y);
+				getAllDate();
+			}
+		}
+
+		// Prev Month
+		scope.prevMonth = function() {
+			var m = scope.date.month - 2;
+			GMTDate.setMonth(m);
+			scope.date.dateList = getDateList(GMTDate); // 生成年月日数据
+		}
+
+		// Next Month
+		scope.nextMonth = function() {
+			var m = scope.date.month;
+			GMTDate.setMonth(m);
+			scope.date.dateList = getDateList(GMTDate); // 生成年月日数据
+		}
+
+		// 打开年份选择列表
+		scope.openYearPicker = function(year) {
+			scope.date.selector = 3;
+			scope.date.yearList = createYearList(year);
+		}
+
+		// Pick Year
+		scope.selectYear = function(year) {
+			GMTDate.setFullYear(year);
+			scope.date.selector = 2;
+			getAllDate();
+			outputDate();
+		}
+
+		scope.pickPrevYear = function() {
+			var year = scope.date.yearList.startYear - 11;
+			if(year >= minYear) {
+				scope.openYearPicker(year);
+			}
+		}
+
+		scope.pickNextYear = function() {
+			var year = scope.date.yearList.startYear + 11;
+			if(year <= maxYear) {
+				scope.openYearPicker(year);
+			}
+		}
+
+		// 打开月份选择列表
+		scope.openMonthPicker = function() {
+			scope.date.selector = 2;
+		}
+
+		// 点击某月关闭弹窗的规则
+		var MONTH_PICK_CLOSE = (format == DATE_RULES[3]);
+
+		// Select Month
+		scope.selectMonth = function(m) {
+			GMTDate.setMonth(m - 1);
+			scope.date.dateList = getDateList(GMTDate); // 生成年月日数据
+			scope.date.selector = 1;
+			outputDate();
+			if(MONTH_PICK_CLOSE) {
+				scope.date.showPicker = false;
+			}
+		}
+
+		// 选择至今
+		scope.hitherto = function() {
+			scope.ngModel = '至今';
+			scope.date.showPicker = false;
+		}
+
+		// Picker open
+		scope.openPicker = function() {
+			domBootstrap(format); // 打开日期面板更新样式
+			angular.element(".wui-date .wui-date-picker").hide();
+			angular.element(".wui-date-" + scope.id + " .wui-date-picker").show();
+			GMTDateInit(scope.ngModel);
+			scope.date.dateList = getDateList(GMTDate); // 生成年月日数据
+			scope.date.showPicker = true;
+		}
+
+		// 确定按钮
+		scope.confirm = function() {
+			outputDate();
+			scope.date.showPicker = false;
+		}
+
+		// 此刻按钮
+		scope.moment = function() {
+			GMTDate = new Date();
+			outputDate();
+			scope.date.showPicker = false;
+		}
+
+		// 格式化input的date
+		scope.checkDateFormat = function() {
+			scope.ngModel = dateFormat(scope.ngModel);
+		}
+
+		// date init
+		scope.dateInit = function() {
+			domBootstrap(format);
+			GMTDateInit(scope.ngModel);
+			scope.date.dateList = getDateList(GMTDate); // 生成年月日数据
+			scope.date.timeList = createTimeList();
+		}
+
+		scope.$watch('date.showPicker', function() {
+			if(scope.date.showPicker) {
+				scope.dateInit();
+			}
+		});
+
+		// Close by click blank
+		element.on('click', function(e) {
+			//阻止底层冒泡
+			e.stopPropagation();
+		});
+
+		angular.element('body').on('click', ':not(.wui-date)', function() {
+			angular.element(element).find('.wui-date-picker').hide();
+		});
+
+	}
+
+	function fieldTemplate(scope, element, attr) {
+		return(
+			'<div class="wui-date wui-date" ng-app="wui.date">' +
+			'<div class="wui-date-editor" ng-click="openPicker()">' +
+			'<input class="wui-input wui-input-block wui-date-input" type="text" placeholder="{{placeholder}}" ng-model="ngModel" autocomplete="off" ng-blur=checkDateFormat()>' +
+			'<i class="iconfont icon1">&#xe807;</i>' +
+			'</div>' +
+			'<br/>' +
+			'<div class="wui-date-picker" ng-show="date.showPicker">' +
+			'<div class="wui-date-picker_body">' +
+			'<div class="wui-date-picker_panel" ng-show="date.selector == 1">' +
+			'<div class="wui-date-panel_header">' +
+			'<i class="iconfont" ng-click="prevYear()">&#xe809;</i>' +
+			'<i class="iconfont" ng-click="prevMonth()">&#xe808;</i>' +
+			'<span class="title">' +
+			'<span class="txt" ng-click="openYearPicker()"><span>{{date.year}}</span> 年 </span>' +
+			'<span class="txt" ng-click="openMonthPicker()"><span>{{date.month}}</span> 月</span>' +
+			'</span>' +
+			'<i class="iconfont" ng-click="nextMonth()">&#xe886;</i>' +
+			'<i class="iconfont" ng-click="nextYear()">&#xe640;</i>' +
+			'</div>' +
+			'<div class="wui-date-picker_content">' +
+			'<table class="wui-data-table">' +
+			'<tr>' +
+			'<th>日</th>' +
+			'<th>一</th>' +
+			'<th>二</th>' +
+			'<th>三</th>' +
+			'<th>四</th>' +
+			'<th>五</th>' +
+			'<th>六</th>' +
+			'</tr>' +
+			'<tr ng-repeat="item in date.dateList track by $index">' +
+			'<td ng-repeat="subItem in date.dateList[$index]"><div ng-class="{&apos;prev-date&apos;:subItem.type==1,&apos;date&apos;:subItem.type==2,&apos;next-date&apos;:subItem.type==3}"><span ng-click="pickDate(subItem,$event)" ng-class="{&apos;today&apos;:subItem.today,&apos;current&apos;:subItem.current}">{{subItem.date}}</span></div></td>' +
+			'</tr>' +
+			'</table>' +
+			'</div>' +
+			'</div>' +
+			'<div class="wui-date-picker_panel month_panel" ng-show="date.selector == 2">' +
+			'<div class="wui-date-panel_header">' +
+			'<i class="iconfont" ng-click="prevYearByMonth()">&#xe809;</i>' +
+			'<span class="title">' +
+			'<span class="txt" ng-click="openYearPicker()"><span>{{date.year}}</span> 年</span>' +
+			'</span>' +
+			'<i class="iconfont" ng-click="nextYearByMonth()">&#xe640;</i>' +
+			'</div>	' +
+			'<div class="wui-date-picker_content">' +
+			'<table class="wui-data-table">' +
+			'<tr>' +
+			'<td>' +
+			'<a class="cell" ng-click="selectMonth(1)">一月</a>' +
+			'</td>' +
+			'<td>' +
+			'<a class="cell" ng-click="selectMonth(2)">二月</a>' +
+			'</td>' +
+			'<td>' +
+			'<a class="cell" ng-click="selectMonth(3)">三月</a>' +
+			'</td>' +
+			'<td>' +
+			'<a class="cell" ng-click="selectMonth(4)">四月</a>' +
+			'</td>' +
+			'</tr>' +
+			'<tr>' +
+			'<td>' +
+			'<a class="cell" ng-click="selectMonth(5)">五月</a>' +
+			'</td>' +
+			'<td>' +
+			'<a class="cell" ng-click="selectMonth(6)">六月</a>' +
+			'</td>' +
+			'<td>' +
+			'<a class="cell" ng-click="selectMonth(7)">七月</a>' +
+			'</td>' +
+			'<td>' +
+			'<a class="cell" ng-click="selectMonth(8)">八月</a>' +
+			'</td>' +
+			'</tr>' +
+			'<tr>' +
+			'<td>' +
+			'<a class="cell" ng-click="selectMonth(9)">九月</a>' +
+			'</td>' +
+			'<td>' +
+			'<a class="cell" ng-click="selectMonth(10)">十月</a>' +
+			'</td>' +
+			'<td>' +
+			'<a class="cell" ng-click="selectMonth(11)">十一月</a>' +
+			'</td>' +
+			'<td>' +
+			'<a class="cell" ng-click="selectMonth(12)">十二月</a>' +
+			'</td>' +
+			'</tr>' +
+			'</table>' +
+			'</div>	' +
+			'</div>' +
+			'<div class="wui-date-picker_panel year_panel" ng-show="date.selector == 3 ">' +
+			'<div class="wui-date-panel_header">' +
+			'<i class="iconfont" ng-click="pickPrevYear()">&#xe809;</i>' +
+			'<span class="title">' +
+			'<span class="txt"><span>{{date.yearList.startYear}}</span> 年 - <span>{{date.yearList.endYear}}</span> 年</span>' +
+			'</span>' +
+			'<i class="iconfont" ng-click="pickNextYear()">&#xe640;</i>' +
+			'</div>' +
+			'<div class="wui-date-picker_content">' +
+			'<table class="wui-data-table">' +
+			'<tr>' +
+			'<td ng-repeat="item in date.yearList.y1 track by $index">' +
+			'<a class="cell" ng-click="selectYear(item)">{{item}}</a>' +
+			'</td>' +
+			'</tr>' +
+			'<tr>' +
+			'<td ng-repeat="item in date.yearList.y2 track by $index">' +
+			'<a class="cell" ng-click="selectYear(item)">{{item}}</a>' +
+			'</td>' +
+			'</tr>' +
+			'<tr>' +
+			'<td ng-repeat="item in date.yearList.y3 track by $index">' +
+			'<a class="cell" ng-click="selectYear(item)">{{item}}</a>' +
+			'</td>' +
+			'</tr>' +
+			'</table>' +
+			'</div>' +
+			'</div>' +
+			'<div class="wui-date-picker_aside" ng-show="date.showTimePicker">' +
+			'<div class="wui-date-aside_header">' +
+			'<div class="wui-select wui-select-block time-select" id="time">' +
+			'<div class="wui-select-selection time-selection">' +
+			'<input type="hidden" name="" value="" >' +
+			'<span class="wui-select-icon iconfont time-icon">&#xe887;</span>' +
+			'<span class="wui-select-placeholder placeholder">{{date.hours}}:{{date.minutes}}</span>' +
+			'<span class="wui-select-selected-value value"></span>' +
+			'</div>' +
+			'<div class="wui-select-menu time-menu" ng-show="date.showTimeList">' +
+			'<ul>' +
+			'<li class="wui-select-item time-menu-item" ng-repeat="item in date.timeList" ng-click="pickTime(item.time)">{{item.time}}</li>' +
+			'</ul>' +
+			'</div>' +
+			'</div>' +
+			'</div>' +
+			'</div>' +
+			'</div>' +
+			'<div class="wui-date-picker_footer" ng-show="date.showBtn">' +
+			'<button type="button" class="wui-btn wui-btn-white wui-btn-xsmall" ng-click="moment()" ng-if="date.btns.now">{{date.btns.now}}</button>' +
+			'<button type="button" class="wui-btn wui-btn-primary wui-btn-xsmall" ng-click="confirm()" ng-if="date.btns.ok">{{date.btns.ok}}</button>' +
+			'<button type="button" class="wui-btn wui-btn-white wui-btn-xsmall" ng-click="hitherto()" ng-if="date.btns.hitherto">至今</button>' +
+			'</div>' +
+			'</div>' +
+			'</div>'
+		);
+	}
+
+});

+ 372 - 94
src/main/webapp/resources/view/vendor/b2b/apCheck.html

@@ -499,7 +499,9 @@
   }
 </style>
 <!--<link rel="stylesheet" href="static/css/public.css">-->
+<link rel="stylesheet" href="static/css/wui.min.css">
 <div class="user_right fr" style="position: relative">
+
   <div class="com_tab">
     <ul class="fl">
       <li class="active"><a  href="javascript:void(0)">B2B</a></li>
@@ -517,14 +519,14 @@
   </div>
   <div class="com_tab tab_top" style="margin-bottom: 0px">
     <ul>
-      <li ng-class="{'active': active=='all'}" ng-click="setActive('all')"><a> 全部</a></li>
-      <li ng-class="{'active': active=='done'}" ng-click="setActive('done')"><a>确认(<em ng-class="{'color-black': !unread.replied }" ng-bind="unread.replied || 0"></em>)</a></li>
+      <li ng-class="{'active': active=='all'}" ng-click="setActive('all')"><a> 未对账</a></li>
+      <li ng-class="{'active': active=='done'}" ng-click="setActive('done')"><a>确认(<em ng-class="{'color-black': !unread.replied }" ng-bind="unread.replied || 0"></em>)</a></li>
       <li ng-class="{'active': active=='todo'}" ng-click="setActive('todo')"><a>未对账</a></li>
       <li ng-class="{'active': active=='end'}" ng-click="setActive('end')"><a>已作废(<em ng-class="{'color-black': !unread.cancelled }" ng-bind="unread.cancelled || 0"></em>)</a></li>
     </ul>
   </div>
-  <div class="screen check-filter">
-    <div class="radio-block date-radio" style="width: 33%">
+  <div class="screen check-filter" ng-if="active !== 'all'">
+    <div class="radio-block date-radio" ng-if="active !== 'all'" style="width: 33%">
       时间:
       <label class="com-check-radio">
         <input type="radio" id="oneMonth" name="date" ng-click="changeDateZone(1);condition.$open=false" checked>
@@ -582,104 +584,380 @@
       </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-repeat="check in $data">
-    <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">
-          已读
-        </a>
-        <a href="javascript:void(0)" ng-if="isUnread(check.id)" class="no-circle-icon">
-          未读
-        </a>
-        <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>-->
-          <img src="static/img/user/images/shop_home.png" style="margin-right: 5px">{{::check.custName}}</span>
-        <span style="margin-left: 100px;">单据编号:</span>
-        <span class="text-num"><a ui-sref="fa_apCheck_detail({id:check.id})" title="点击查看详情" ng-click="setOrdersRead(check.id)" style="color: #5078cb">{{::check.code}}</a></span>
-      </td>
-    </tr>
-    <tr class="order-bd" style="padding: 15px 0 ">
-      <td class="first info" colspan="1" style="text-align: left">
-        <div class="static">
-          <p><span class="f14 text-num">{{::check.beginDate | date:'yyyy/MM/dd'}} - {{::check.endDate | date:'yyyy/MM/dd'}}</span></p>
-        </div>
-      </td>
-      <td>
-        <p>
-          <strong class="text-num">{{::(isUser?'-':(check.checkAmount | number:2))}}</strong>
-          <span ng-if="!isUser" class="text-number">{{::check.currency}}</span>
-        </p>
-      </td>
-      <td>
-        <p>
-          <strong class="text-num">{{::check.items.length}}</strong> 条<br>
-        </p>
-      </td>
-      <td>
-        <p>
-          <strong class="text-num">{{getTotalProd(check) | number}}</strong> <i class="fa fa-cubes"></i>
-        </p>
-      </td>
-      <td class="status">
-        <div ng-if="check.checkStatus == '未对账'" class="text-center text-muted f14"><br>未对账!</div>
-        <div></div>
-        <div ng-if="check.checkStatus == '已确认'" class="text-center text-muted f14">
-          <br> <i class="fa fa-check-square-o"></i> 已确认
+  <div ng-hide="showNotCheck">
+
+    <!--<div ng-show="active === 'all'">-->
+      <!--<table class="order-table block order-table2" ng-table="tableParams" width="100%" style="table-layout:fixed">-->
+
+      <!--</table>-->
+    <!--</div>-->
+    <div >
+      <table class="order-table block" ng-class="{'order-table2': active === 'all'}" ng-table="tableParams" ng-table="tableParams" width="100%" style="table-layout:fixed">
+        <thead ng-show="active !== 'all'">
+          <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-show="active !== 'all'" ng-repeat="check in $data">
+          <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">
+                已读
+              </a>
+              <a href="javascript:void(0)" ng-if="isUnread(check.id)" class="no-circle-icon">
+                未读
+              </a>
+              <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>-->
+            <img src="static/img/user/images/shop_home.png" style="margin-right: 5px">{{::check.custName}}</span>
+              <span style="margin-left: 100px;">单据编号:</span>
+              <span class="text-num"><a ui-sref="fa_apCheck_detail({id:check.id})" title="点击查看详情" ng-click="setOrdersRead(check.id)" style="color: #5078cb">{{::check.code}}</a></span>
+            </td>
+          </tr>
+          <tr class="order-bd" style="padding: 15px 0 ">
+          <td class="first info" colspan="1" style="text-align: left">
+            <div class="static">
+              <p><span class="f14 text-num">{{::check.beginDate | date:'yyyy/MM/dd'}} - {{::check.endDate | date:'yyyy/MM/dd'}}</span></p>
+            </div>
+          </td>
+          <td>
+            <p>
+              <strong class="text-num">{{::(isUser?'-':(check.checkAmount | number:2))}}</strong>
+              <span ng-if="!isUser" class="text-number">{{::check.currency}}</span>
+            </p>
+          </td>
+          <td>
+            <p>
+              <strong class="text-num">{{::check.items.length}}</strong> 条<br>
+            </p>
+          </td>
+          <td>
+            <p>
+              <strong class="text-num">{{getTotalProd(check) | number}}</strong> <i class="fa fa-cubes"></i>
+            </p>
+          </td>
+          <td class="status">
+            <div ng-if="check.checkStatus == '未对账'" class="text-center text-muted f14"><br>未对账!</div>
+            <div></div>
+            <div ng-if="check.checkStatus == '已确认'" class="text-center text-muted f14">
+              <br> <i class="fa fa-check-square-o"></i> 已确认
+            </div>
+            <div ng-if="check.checkStatus == '不同意'" class="text-center text-muted f14">
+              <br> <i class="fa fa-check-square-o"></i> 不同意
+            </div>
+            <div ng-if="check.checkStatus == '已作废'" class="text-center text-muted f14">
+              <br> <i class="fa fa-check-square-o"></i> 已作废
+            </div>
+          </td>
+          <td>
+            <div ng-hide="check.status" class="block">
+              <span class="text-trans error">未提交</span>
+            </div>
+            <div ng-show="check.status" class="block">
+              <span class="text-trans success">已提交</span>
+            </div>
+            <div class="" style="margin-top: 33px;margin-right: 20px;">
+              <a ng-click="print(check)" class="pull-right" title="打印{{check.print? '(已打印)':'(未打印)'}}" ng-class="{'unPrinted' : !check.print, 'text-muted': check.print}"><i class="fa fa-print fa-lg"></i>&nbsp;打印</a>
+            </div>
+            <!-- <a ui-sref="fa.apCheck_detail({id:check.id})" class="operate operate-undo text-center"
+               target="_blank">查看详情</a>	 -->
+          </td>
+        </tr>
+        </tbody>
+
+        <thead ng-show="active === 'all'">
+          <tr class="header">
+            <th width="313">客户名称</th>
+            <th width="250">上次对账时间</th>
+            <th width="250">未对账总额</th>
+            <th width="160">操作</th>
+          </tr>
+        </thead>
+        <tbody ng-show="active === 'all'" ng-repeat="check in ALLList">
+          <tr >
+            <td style="color: #3f84f6">{{::check.myEnterprise.enName}}</td>
+            <td ng-if="check.lastCheckDate">{{::check.lastCheckDate | date : 'MM月dd日 HH:mm'}}</td>
+            <td ng-if="!check.lastCheckDate">-</td>
+            <td>{{::check.uncheckedCount || '-'}}</td>
+            <td style="color: #3f84f6;cursor: pointer" ng-click="goToMNs(check)">立即对账</td>
+          </tr>
+        </tbody>
+
+        <tbody ng-if="tableParams.total() == 0">
+        <tr>
+          <td colspan="6">
+            <div id="empty">
+              <div class="left_img">
+                <a><img src="static/img/all/empty-cart.png"></a>
+                <a>B2B 商务</a>
+              </div>
+              <div class="right_link">
+                <p ng-if="active != 'all'">暂无对账信息!</p>
+                <p ng-if="active == 'all'">您还未生成对账单,请立即新增对账!</p>
+                <a ng-if="active == 'all'" ui-sref="fa_apCheckList"><i class="fa fa-plus-square fa-fw"></i> 新增对账单</a>
+              </div>
+            </div>
+          </td>
+        </tr>
+        </tbody>
+      </table>
+    </div>
+  </div>
+  <div ng-hide="!showNotCheck" class="infoms add-apCheckList"  >
+    <form class="form-horizontal"
+          style="padding-top: 10px; padding-bottom: 20px;">
+      <div class="form-group form-group-sm form-group-inline">
+        <label class="col-sm-1 control-label">客&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;户:</label>
+        <div class="col-sm-7 control-label" style="text-align:left">
+          {{suuorname}}
         </div>
-        <div ng-if="check.checkStatus == '不同意'" class="text-center text-muted f14">
-          <br> <i class="fa fa-check-square-o"></i> 不同意
+        <label class="col-sm-2 control-label">请选择月份:</label>
+        <div class="col-sm-2" style="padding-right: 5px">
+          <wui-date
+                  format="yyyy-mm"
+                  placeholder="请选择或输入日期"
+                  id="date4"
+                  btns="{'ok':'确定','now':'此刻'}"
+                  ng-model="thisMouth"
+          >
+          </wui-date>
         </div>
-        <div ng-if="check.checkStatus == '已作废'" class="text-center text-muted f14">
-          <br> <i class="fa fa-check-square-o"></i> 已作废
+      </div>
+      <div class="form-group form-group-sm form-group-inline">
+        <div class="col-sm-12 text-right">
+          <a ng-click="condition.$open=!condition.$open" class="text-simple"><span
+                  ng-bind="condition.$open ? '收起筛选条件' : '更多筛选条件'"></span><i
+                  class="fa fa-fw"
+                  ng-class="{'fa-angle-up': condition.$open, 'fa-angle-down': !condition.$open}"></i></a>
+          <div class="btn-group btn-group-sm">
+            <a class="btn btn-default" ng-click="searchOrder()" title="筛选"><i class="fa fa-search fa-fw btn-icon-left"></i>筛选</a>
+            <a class="btn btn-default" ng-click="createApCheck(check.$selected)" ng-disabled="!data || data.length==0"><i class="fa fa-check-circle-o fa-fw btn-icon-left"></i>对账</a>
+            <a class="btn btn-default" ng-click="exportApcheckList()" title="导出Excel" ng-disabled="!data || data.length==0"><i class="fa fa-file-text fa-fw btn-icon-left"></i>导出</a>
+          </div>
         </div>
-      </td>
-      <td>
-        <div ng-hide="check.status" class="block">
-          <span class="text-trans error">未提交</span>
+      </div>
+      <div class="form-group form-group-sm form-group-inline"
+           ng-show="condition.$open">
+        <label class="col-sm-2 control-label">应付供应商:</label>
+        <div class="col-sm-4">
+          <div class="form-group form-group-sm has-feedback">
+            <input type="search" class="form-control input-sm"
+                   ng-model="receiveName" placeholder="可用应付供应商名称筛选" /><span
+                  class="form-control-feedback text-simple"><i
+                  class="fa fa-search"></i></span>
+          </div>
         </div>
-        <div ng-show="check.status" class="block">
-          <span class="text-trans success">已提交</span>
+        <label class="col-sm-2 control-label">送货工厂:</label>
+        <div class="col-sm-4">
+          <div class="form-group form-group-sm has-feedback">
+            <input type="search" class="form-control input-sm"
+                   ng-model="factory" placeholder="请输入送货工厂名称" /><span
+                  class="form-control-feedback text-simple"><i
+                  class="fa fa-search"></i></span>
+          </div>
         </div>
-        <div class="" style="margin-top: 33px;margin-right: 20px;">
-          <a ng-click="print(check)" class="pull-right" title="打印{{check.print? '(已打印)':'(未打印)'}}" ng-class="{'unPrinted' : !check.print, 'text-muted': check.print}"><i class="fa fa-print fa-lg"></i>&nbsp;打印</a>
+      </div>
+      <div class="form-group form-group-sm form-group-inline"
+           ng-show="condition.$open">
+        <label class="col-sm-2 control-label">物料名称:</label>
+        <div class="col-sm-4">
+          <div class="form-group form-group-sm has-feedback">
+            <input type="search" class="form-control input-sm"
+                   ng-model="prodTitle" placeholder="请输入物料名称" /><span
+                  class="form-control-feedback text-simple"><i
+                  class="fa fa-search"></i></span>
+          </div>
         </div>
-        <!-- <a ui-sref="fa.apCheck_detail({id:check.id})" class="operate operate-undo text-center"
-           target="_blank">查看详情</a>	 -->
-      </td>
-    </tr>
-    </tbody>
-    <tbody ng-if="tableParams.total() == 0">
-    <tr>
-      <td colspan="6">
-        <div id="empty">
-          <div class="left_img">
-            <a><img src="static/img/all/empty-cart.png"></a>
-            <a>B2B 商务</a>
+        <label class="col-sm-2 control-label">规&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格:</label>
+        <div class="col-sm-4">
+          <div class="form-group form-group-sm has-feedback">
+            <input type="search" class="form-control input-sm"
+                   ng-model="prodSpec" placeholder="请输入物料规格" /><span
+                  class="form-control-feedback text-simple"><i
+                  class="fa fa-search"></i></span>
           </div>
-          <div class="right_link">
-            <p ng-if="active != 'all'">暂无对账信息!</p>
-            <p ng-if="active == 'all'">您还未生成对账单,请立即新增对账!</p>
-            <a ng-if="active == 'all'" ui-sref="fa_apCheckList"><i class="fa fa-plus-square fa-fw"></i> 新增对账单</a>
+        </div>
+      </div>
+      <div class="form-group form-group-sm form-group-inline"
+           ng-show="condition.$open">
+        <label class="col-sm-2 control-label">税率:</label>
+        <div class="col-sm-4">
+          <div class="form-group form-group-sm has-feedback">
+            <input type="search" class="form-control input-sm"
+                   ng-model="taxRate" placeholder="请输入税率" /><span
+                  class="form-control-feedback text-simple"><i
+                  class="fa fa-search"></i></span>
           </div>
         </div>
-      </td>
-    </tr>
-    </tbody>
-  </table>
-  <div ng-if="infoCommon.totalElement > 0" class="text-mns text-right" ng-class="infoCommon.totalElement >= 20 ? '': 'Boom18'">
+      </div>
+    </form>
+    <!-- 标签scroll-table用于表头滚动 -->
+    <div class="table-wrap" id="order-detail-list" scroll-table>
+      <div class="table-header-wrap">
+        <table class="table table-bordered">
+          <tr>
+            <th width="36" style="vertical-align: middle;">
+              <input type="checkbox" name="checkbox" ng-model="checkboxes.checked" ng-click="checkAll()"></th>
+            <th width="100">本次<br>对账数</th>
+            <th width="70">客户<br>名称</th>
+            <th width="60">单据<br>编号</th>
+            <th width = "60">发货<br>单号</th>
+            <th width="35">序号</th>
+            <th width="60">类型</th>
+            <th width="60">单据<br>日期</th>
+            <th width="90">应付<br>供应商</th>
+            <th width="70">客户<br>采购单</th>
+            <th width="65">客户<br>料号</th>
+            <th width="70">客户物<br>料名称</th>
+            <th width="70">客户规<br>格型号</th>
+            <th width="65">送货<br>工厂</th>
+            <th width="55">数量</th>
+            <th width="40">单价</th>
+            <th width="30">币别</th>
+            <th width="40">税率</th>
+            <th width="60">金额</th>
+            <th width="70">本次对<br>账金额</th>
+          </tr>
+        </table>
+      </div>
+      <div class="table-body-wrap">
+        <table class="table table-bordered">
+          <tr ng-repeat="check in data"
+              class="thAlign" style="height: 40px;">
+            <td width="36" style="text-align: center;vertical-align: middle;"><input
+                    ng-model="check.$selected" name="checkbox"
+                    ng-click="checkOne(check)" ng-change="getTotalMoney()"
+                    type="checkbox"></td>
+            <td width="100"><input ng-model="check.thischeckqty"
+                                   type="number" max="data.maxThisCheckQty"
+                                   min="data.minThisCheckQty" ng-change="getTotalMoney()"
+                                   style="width: 75px;" class=" input-sm text-center"></td>
+            <td width="70" title="{{check.custname}}"><div
+                    style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.custname}}</div></td>
+            <td width="60">{{::check.inoutno}}</td>
+            <td width="60">{{::check.sendcode}}</td>
+            <td width="35" align="center">{{::check.detno}}</td>
+            <td width="60">{{::check.piclass}}</td>
+            <td width="60">{{::check.pidate | date:'yyyy-MM-dd' }}</td>
+            <td width="90" title="{{check.receivename}}">
+              <div
+                      style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.receivename}}</div>
+            </td>
+            <td width="70">{{::check.ordercode}}</td>
+            <td width="65">{{::check.prodcode}}</td>
+            <td width="70" title="{{check.prodtitle}}">
+              <div
+                      style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.prodtitle}}</div>
+            </td>
+            <td width="70" title="{{check.prodspec}}"><div
+                    style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.prodspec}}</div></td>
+            <td width="65">{{::check.factory}}</td>
+            <td width="55">{{::check.qty}}</td>
+            <td width="40">{{::check.orderprice}}</td>
+            <td width="30">{{::check.currency}}</td>
+            <td width="40" align="center">{{::check.taxrate}}</td>
+            <td width="60">{{::(check.qty || 0)*(check.orderprice || 0) | number:2}}</td>
+            <td width="60">{{::(check.orderprice || 0)*(check.thischeckqty || 0) | number:2}}</td>
+          </tr>
+          <tr ng-if="!data || data.length==0">
+            <td colspan="19">
+              <div class="empty-block">
+                <i class="fa fa-exclamation-circle"></i>
+                <p class="text-muted">没有对账数据,请先筛选</p>
+              </div>
+            </td>
+          </tr>
+        </table>
+      </div>
+      <div style="padding: 10px 20px">总金额合计:{{totalMoney | number:2 || 0}}</div>
+    </div>
+  </div>
+  <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>
+</div>
+<style>
+  .order-table2 tbody td {
+    text-align: center;
+    padding: 20px 0
+  }
+</style>
+<style>
+  .add-apCheckList {
+    background: #fff
+  }
+
+  .add-apCheckList input[type="checkbox"] {
+    /*width: 16px;
+    height: 16px*/
+  }
+
+  .add-apCheckList .table-wrap {
+    overflow: hidden
+  }
+
+  .add-apCheckList .table-header-wrap {
+    background: #f9f9f9;
+    overflow-x: hidden;
+    overflow-y: scroll;
+  }
+
+  .add-apCheckList .table-header-wrap table,.add-apCheckList .table-body-wrap table
+  {
+    width: 100%;
+    table-layout: fixed;
+    border-collapse: collapse;
+    border-spacing: 0;
+    margin-bottom: 0
+  }
+
+  .add-apCheckList .table-header-wrap th {
+    text-align: center;
+  }
+
+  .add-apCheckList .table-body-wrap {
+    max-height: 600px;
+    overflow-x: auto;
+    overflow-y: scroll;
+  }
+
+  .add-apCheckList td {
+    word-break: break-all;
+    text-align: center;
+  }
+
+  .add-apCheckList tbody {
+    overflow: auto;
+  }
+
+  #order-detail-list .input-sm {
+    border: #ccc 1px solid;
+  }
+
+  .infoms .has-feedback input[type="search"] {
+    padding-right: 0 !important;
+  }
+  .infoms .table>tbody>tr>td{
+    vertical-align: middle;
+  }
+  .form-horizontal .form-group {
+     margin-right: 0px;
+     margin-left: 0px;
+  }
+  .infoms .form-horizontal .form-group-sm .control-label{
+    font-size: 14px;
+  }
+  .infoms .form-group .form-control{
+    font-size: 14px;
+  }
+  .wui-date.small .wui-date-picker {
+    width: 260px
+  }
+</style>

+ 685 - 0
src/main/webapp/resources/view/vendor/b2b/apCheck_old.html

@@ -0,0 +1,685 @@
+<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: auto;
+        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: -13px;
+        margin-right: 1px;
+    }
+    .menu .new-dot{
+        width: 20px;
+        height: 20px;
+        line-height: 20px;
+        font-size: 12px;
+        color: #fff;
+        font-weight: inherit;
+        top: -2px;
+    }
+    .block {
+        position: relative;
+    }
+</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-top:20px;
+        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: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">
+    <div class="com_tab">
+        <ul class="fl">
+            <li class="active"><a  href="javascript:void(0)">B2B</a></li>
+            <li><a ui-sref="pay_center" href="javascript:void(0)">优软商城</a></li>
+            <li class="down-purchase" style="margin-right: 0;min-width: 80px">
+                <a href="#" style="min-width: 80px" ng-click="exportXls()" target="_self" title="导出Excel表格" class="blue f14"><i class="fa fa-file-text fa-fw"></i>导出</a>
+            </li>
+            <li class="down-purchase" style="margin-right: 0;min-width: 80px">
+                <a class="text-simple append" style="min-width: 80px" ui-sref="fa_apCheckList" title="新增对账单">
+                    <i class="fa fa-plus-square fa-fw"></i>新增对账单
+                </a>
+            </li>
+
+        </ul>
+    </div>
+    <div class="com_tab tab_top" style="margin-bottom: 0px">
+        <ul>
+            <li ng-class="{'active': active=='all'}" ng-click="setActive('all')"><a> 全部</a></li>
+            <li ng-class="{'active': active=='done'}" ng-click="setActive('done')"><a>已确认(<em ng-class="{'color-black': !unread.replied }" ng-bind="unread.replied || 0"></em>)</a></li>
+            <li ng-class="{'active': active=='todo'}" ng-click="setActive('todo')"><a>未对账</a></li>
+            <li ng-class="{'active': active=='end'}" ng-click="setActive('end')"><a>已作废(<em ng-class="{'color-black': !unread.cancelled }" ng-bind="unread.cancelled || 0"></em>)</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(keyword)"/>
+                <a class="seek" href="javascript:void(0)" ng-click="onSearch(keyword)">搜索</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-repeat="check in $data">
+        <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">
+                    已读
+                </a>
+                <a href="javascript:void(0)" ng-if="isUnread(check.id)" class="no-circle-icon">
+                    未读
+                </a>
+                <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>-->
+          <img src="static/img/user/images/shop_home.png" style="margin-right: 5px">{{::check.custName}}</span>
+                <span style="margin-left: 100px;">单据编号:</span>
+                <span class="text-num"><a ui-sref="fa_apCheck_detail({id:check.id})" title="点击查看详情" ng-click="setOrdersRead(check.id)" style="color: #5078cb">{{::check.code}}</a></span>
+            </td>
+        </tr>
+        <tr class="order-bd" style="padding: 15px 0 ">
+            <td class="first info" colspan="1" style="text-align: left">
+                <div class="static">
+                    <p><span class="f14 text-num">{{::check.beginDate | date:'yyyy/MM/dd'}} - {{::check.endDate | date:'yyyy/MM/dd'}}</span></p>
+                </div>
+            </td>
+            <td>
+                <p>
+                    <strong class="text-num">{{::(isUser?'-':(check.checkAmount | number:2))}}</strong>
+                    <span ng-if="!isUser" class="text-number">{{::check.currency}}</span>
+                </p>
+            </td>
+            <td>
+                <p>
+                    <strong class="text-num">{{::check.items.length}}</strong> 条<br>
+                </p>
+            </td>
+            <td>
+                <p>
+                    <strong class="text-num">{{getTotalProd(check) | number}}</strong> <i class="fa fa-cubes"></i>
+                </p>
+            </td>
+            <td class="status">
+                <div ng-if="check.checkStatus == '未对账'" class="text-center text-muted f14"><br>未对账!</div>
+                <div></div>
+                <div ng-if="check.checkStatus == '已确认'" class="text-center text-muted f14">
+                    <br> <i class="fa fa-check-square-o"></i> 已确认
+                </div>
+                <div ng-if="check.checkStatus == '不同意'" class="text-center text-muted f14">
+                    <br> <i class="fa fa-check-square-o"></i> 不同意
+                </div>
+                <div ng-if="check.checkStatus == '已作废'" class="text-center text-muted f14">
+                    <br> <i class="fa fa-check-square-o"></i> 已作废
+                </div>
+            </td>
+            <td>
+                <div ng-hide="check.status" class="block">
+                    <span class="text-trans error">未提交</span>
+                </div>
+                <div ng-show="check.status" class="block">
+                    <span class="text-trans success">已提交</span>
+                </div>
+                <div class="" style="margin-top: 33px;margin-right: 20px;">
+                    <a ng-click="print(check)" class="pull-right" title="打印{{check.print? '(已打印)':'(未打印)'}}" ng-class="{'unPrinted' : !check.print, 'text-muted': check.print}"><i class="fa fa-print fa-lg"></i>&nbsp;打印</a>
+                </div>
+                <!-- <a ui-sref="fa.apCheck_detail({id:check.id})" class="operate operate-undo text-center"
+                   target="_blank">查看详情</a>	 -->
+            </td>
+        </tr>
+        </tbody>
+        <tbody ng-if="tableParams.total() == 0">
+        <tr>
+            <td colspan="6">
+                <div id="empty">
+                    <div class="left_img">
+                        <a><img src="static/img/all/empty-cart.png"></a>
+                        <a>B2B 商务</a>
+                    </div>
+                    <div class="right_link">
+                        <p ng-if="active != 'all'">暂无对账信息!</p>
+                        <p ng-if="active == 'all'">您还未生成对账单,请立即新增对账!</p>
+                        <a ng-if="active == 'all'" ui-sref="fa_apCheckList"><i class="fa fa-plus-square fa-fw"></i> 新增对账单</a>
+                    </div>
+                </div>
+            </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>

Some files were not shown because too many files changed in this diff