Просмотр исходного кода

修改卖家出库界面,优化

shenjunjie 7 лет назад
Родитель
Сommit
1f3b37aebb

+ 8 - 1
src/main/webapp/resources/js/vendor/controllers/b2b/sale/sale_accept.js

@@ -8,7 +8,7 @@ define(['app/app'], function (app) {
     CurrentRole.isUser({}, {}, function (data) {
     CurrentRole.isUser({}, {}, function (data) {
       $scope.isUser = data.isUser;
       $scope.isUser = data.isUser;
     });
     });
-    $scope.tab = 'B2b';
+    $scope.tab = 'storage';
     $scope.storeType = 'accept'
     $scope.storeType = 'accept'
     $rootScope.active = "vendor_material"
     $rootScope.active = "vendor_material"
 
 
@@ -220,6 +220,13 @@ define(['app/app'], function (app) {
         condition.dateTo = null;
         condition.dateTo = null;
       }
       }
     };
     };
+
+      // 展开收起
+      $scope.unfoldClick = function (data, type) {
+          angular.forEach(data, function(key) {
+              type.id !== key.id ? key.seleted = false : key.seleted = true;
+          })
+      };
   }]);
   }]);
 
 
 })
 })

+ 8 - 1
src/main/webapp/resources/js/vendor/controllers/b2b/sale/sale_badOut.js

@@ -8,7 +8,7 @@ define(['app/app'], function (app) {
         function ($rootScope, $scope, $filter, PurcBadOut, ngTableParams, toaster,
         function ($rootScope, $scope, $filter, PurcBadOut, ngTableParams, toaster,
             BaseService, Symbol, CurrentRole) {
             BaseService, Symbol, CurrentRole) {
           BaseService.scrollBackToTop();
           BaseService.scrollBackToTop();
-          $scope.tab = 'B2b';
+          $scope.tab = 'storage';
           $rootScope.active = "vendor_material"
           $rootScope.active = "vendor_material"
           $scope.storeType = 'badOut'
           $scope.storeType = 'badOut'
           // 获取当前用户是否为普通用户
           // 获取当前用户是否为普通用户
@@ -216,5 +216,12 @@ define(['app/app'], function (app) {
               condition.dateTo = null;
               condition.dateTo = null;
             }
             }
           };
           };
+
+            // 展开收起
+            $scope.unfoldClick = function (data, type) {
+                angular.forEach(data, function(key) {
+                    type.id !== key.id ? key.seleted = false : key.seleted = true;
+                })
+            };
         }]);
         }]);
 })
 })

+ 8 - 1
src/main/webapp/resources/js/vendor/controllers/b2b/sale/sale_make_accept.js

@@ -11,7 +11,7 @@ define(['app/app'], function (app) {
     CurrentRole.isUser({}, {}, function (data) {
     CurrentRole.isUser({}, {}, function (data) {
       $scope.isUser = data.isUser;
       $scope.isUser = data.isUser;
     });
     });
-    $scope.tab = 'B2b';
+    $scope.tab = 'storage';
     $scope.storeType = 'makeaccept'
     $scope.storeType = 'makeaccept'
     $rootScope.active = "vendor_material"
     $rootScope.active = "vendor_material"
     $scope.active = 'all';
     $scope.active = 'all';
@@ -205,6 +205,13 @@ define(['app/app'], function (app) {
         condition.dateTo = null;
         condition.dateTo = null;
       }
       }
     };
     };
+
+      // 展开收起
+      $scope.unfoldClick = function (data, type) {
+          angular.forEach(data, function(key) {
+              type.id !== key.id ? key.seleted = false : key.seleted = true;
+          })
+      };
   }]);
   }]);
 
 
 })
 })

+ 7 - 1
src/main/webapp/resources/js/vendor/controllers/b2b/sale/sale_make_returns.js

@@ -8,7 +8,7 @@ define(['app/app'], function (app) {
     CurrentRole.isUser({}, {}, function (data) {
     CurrentRole.isUser({}, {}, function (data) {
       $scope.isUser = data.isUser;
       $scope.isUser = data.isUser;
     });
     });
-    $scope.tab = 'B2b';
+    $scope.tab = 'storage';
     $scope.storeType = 'makereturns'
     $scope.storeType = 'makereturns'
     $rootScope.active = "vendor_material"
     $rootScope.active = "vendor_material"
     $scope.active = 'all';
     $scope.active = 'all';
@@ -212,6 +212,12 @@ define(['app/app'], function (app) {
         condition.dateTo = null;
         condition.dateTo = null;
       }
       }
     };
     };
+      // 展开收起
+      $scope.unfoldClick = function (data, type) {
+          angular.forEach(data, function(key) {
+              type.id !== key.id ? key.seleted = false : key.seleted = true;
+          })
+      };
   }]);
   }]);
 
 
 })
 })

+ 8 - 1
src/main/webapp/resources/js/vendor/controllers/b2b/sale/sale_returns.js

@@ -3,7 +3,7 @@ define(['app/app'], function (app) {
    * 客户采购验退
    * 客户采购验退
    */
    */
   app.register.controller('SaleReturnsCtrl', ['$rootScope', '$scope', '$filter', 'B2bPurcReturn', 'ngTableParams', 'toaster', 'BaseService', 'Symbol', 'B2bCurrentRole', function ($rootScope, $scope, $filter, PurcReturn, ngTableParams, toaster, BaseService, Symbol, CurrentRole) {
   app.register.controller('SaleReturnsCtrl', ['$rootScope', '$scope', '$filter', 'B2bPurcReturn', 'ngTableParams', 'toaster', 'BaseService', 'Symbol', 'B2bCurrentRole', function ($rootScope, $scope, $filter, PurcReturn, ngTableParams, toaster, BaseService, Symbol, CurrentRole) {
-    $scope.tab = 'B2b';
+    $scope.tab = 'storage';
     $scope.storeType = 'returns'
     $scope.storeType = 'returns'
     $rootScope.active = "vendor_material"
     $rootScope.active = "vendor_material"
     BaseService.scrollBackToTop();
     BaseService.scrollBackToTop();
@@ -213,6 +213,13 @@ define(['app/app'], function (app) {
         condition.dateTo = null;
         condition.dateTo = null;
       }
       }
     };
     };
+
+      // 展开收起
+      $scope.unfoldClick = function (data, type) {
+          angular.forEach(data, function(key) {
+              type.id !== key.id ? key.seleted = false : key.seleted = true;
+          })
+      };
   }]);
   }]);
 
 
 })
 })

+ 10 - 2
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_storageCtrl.js

@@ -1,6 +1,6 @@
 define([ 'app/app' ], function(app) {
 define([ 'app/app' ], function(app) {
     'use strict';
     'use strict';
-    app.register.controller('vendor_storageCtrl', ['$scope', '$rootScope', '$stateParams', 'BaseService', 'Goods', 'KdnLogistics', '$modal', 'toaster', 'Loading', 'AuthenticationService', '$q', '$upload', '$http', 'ngTableParams', 'InvoiceFPurchase', 'ShippingAddress', 'Enterprise', function ($scope, $rootScope, $stateParams, BaseService, Goods, KdnLogistics, $modal, toaster, Loading, AuthenticationService, $q, $upload, $http, ngTableParams, InvoiceFPurchase, ShippingAddress, Enterprise) {
+    app.register.controller('vendor_storageCtrl', ['$location', '$scope', '$rootScope', '$stateParams', 'BaseService', 'Goods', 'KdnLogistics', '$modal', 'toaster', 'Loading', 'AuthenticationService', '$q', '$upload', '$http', 'ngTableParams', 'InvoiceFPurchase', 'ShippingAddress', 'Enterprise', function ($location, $scope, $rootScope, $stateParams, BaseService, Goods, KdnLogistics, $modal, toaster, Loading, AuthenticationService, $q, $upload, $http, ngTableParams, InvoiceFPurchase, ShippingAddress, Enterprise) {
         $rootScope.active = 'vendor_material';
         $rootScope.active = 'vendor_material';
         $scope.keyword = '';
         $scope.keyword = '';
         $scope.type = '';
         $scope.type = '';
@@ -11,6 +11,7 @@ define([ 'app/app' ], function(app) {
         $scope.countData = 10;
         $scope.countData = 10;
         $scope.userInfo = $rootScope.userInfo || {};
         $scope.userInfo = $rootScope.userInfo || {};
 
 
+
         // 更多操作数据和记录
         // 更多操作数据和记录
         $scope.handleLink = [
         $scope.handleLink = [
             {name: '查看入库记录', tab: 'inBound', id: 0},
             {name: '查看入库记录', tab: 'inBound', id: 0},
@@ -148,6 +149,8 @@ define([ 'app/app' ], function(app) {
             }
             }
             initOtherData();
             initOtherData();
             clearRecordParams();
             clearRecordParams();
+
+            window.location.href = '#/vendor_storage?type=' + type
         };
         };
         // 销售方式筛选
         // 销售方式筛选
         $scope.changeSupportType = function (type) {
         $scope.changeSupportType = function (type) {
@@ -271,7 +274,12 @@ define([ 'app/app' ], function(app) {
                 }
                 }
             })
             })
         };
         };
-        getLoadStorageData();
+
+        if ($location.$$search.type !== undefined) {
+            $scope.toggleType(Number($location.$$search.type))
+        } else {
+            getLoadStorageData();
+        }
 
 
         // 搜索功能
         // 搜索功能
         $scope.onSearch = function (type) {
         $scope.onSearch = function (type) {

+ 319 - 151
src/main/webapp/resources/view/vendor/b2b/sale/sale_accept.html

@@ -293,10 +293,10 @@
     <div class="com_tab" style="margin-bottom: 10px">
     <div class="com_tab" style="margin-bottom: 10px">
       <ul class="fl" style="width: 100%">
       <ul class="fl" style="width: 100%">
         <li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
         <li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
-        <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
+        <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
         <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
         <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
         <li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
         <li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
-        <li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>
+        <!--<li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>-->
         <li class="down-purchase">
         <li class="down-purchase">
           <span ng-click="exportXls()" style="cursor:pointer">
           <span ng-click="exportXls()" style="cursor:pointer">
               <i class="fa fa-file-excel-o fa-fw"></i>导出Excel
               <i class="fa fa-file-excel-o fa-fw"></i>导出Excel
@@ -308,178 +308,205 @@
       </ul>
       </ul>
     </div>
     </div>
   </div>
   </div>
-  <div class="tab_top" style="margin-bottom: 10px">
-    <ul class="fl" style="width: 100%">
-      <li ng-class="{'active': storeType=='badOut'}"><a ui-sref="sale_badOut">不良品出库单</a></li>
-      <li ng-class="{'active': storeType=='badIn'}"><a ui-sref="sale_badIn">不良品入库单</a></li>
-      <li ng-class="{'active': storeType=='accept'}"><a ui-sref="sale_accept">客户采购验收单</a></li>
-      <li ng-class="{'active': storeType=='returns'}"><a ui-sref="sale_returns">客户采购验退单</a></li>
-      <li ng-class="{'active': storeType=='makeaccept'}"><a ui-sref="sale_makeaccept">客户委外验收单</a></li>
-      <li ng-class="{'active': storeType=='makereturns'}"><a ui-sref="sale_makereturns">客户委外验退单</a></li>
-    </ul>
-  </div>
-  <div class="screen check-filter">
-    <div class="radio-block date-radio">
-      时间筛选:
-      <label class="com-check-radio">
-        <input type="radio" id="oneMonth" name="date" ng-click="autoMonth = false;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="autoMonth = false;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="autoMonth = false;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="autoMonth = true;condition.$open=!condition.$open;changeDateZone(-1)">
-        <label for="autoMonth"></label>
-        自定义
-      </label>
+  <div class="search-check">
+    <div class="radio-block">
+      业务:
+      <ul class="radio-btn list-inline">
+        <li><a href="#/vendor_storage?type=0">查看出库记录</a></li>
+        <li><a href="#/vendor_storage?type=2">销售出库</a></li>
+        <li ui-sref="sale_badOut">不良品出库单</li>
+        <li class="active">客户采购验收单</li>
+        <li ui-sref="sale_returns">客户采购验退单</li>
+        <li ui-sref="sale_makeaccept">客户委外验收单</li>
+        <li ui-sref="sale_makereturns">客户委外验退单</li>
+        <li><a href="#/vendor_storage?type=1">其它出库</a></li>
+        <!--<li ng-repeat="item in handleLink"-->
+        <!--ng-bind="item.name"-->
+        <!--ng-class="{'active': handleItem === item.id}"-->
+        <!--ng-if="item.tab === storage_tab"-->
+        <!--ng-click="toggleType(item.id)"></li>-->
+      </ul>
+
     </div>
     </div>
-    <div class="sreach fr">
-      <div ng-show="autoMonth" 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-click="openFilterDatePicker($event, condition, '$fromOpened')"
-                 ng-focus="openFilterDatePicker($event, condition, '$fromOpened')"
-                 datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-          />
-          <button class="open" ng-click="openFilterDatePicker($event, condition, '$fromOpened')"></button>
-        </div>
+    <div class="screen check-filter">
+      <div class="radio-block date-radio">
+        筛选:
+        <label class="com-check-radio">
+          <input type="radio" id="oneMonth" name="date" ng-click="autoMonth = false;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="autoMonth = false;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="autoMonth = false;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="autoMonth = true;condition.$open=!condition.$open;changeDateZone(-1)">
+          <label for="autoMonth"></label>
+          自定义
+        </label>
+      </div>
+      <div class="sreach fr">
+        <div ng-show="autoMonth" 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-click="openFilterDatePicker($event, condition, '$fromOpened')"
+                   ng-focus="openFilterDatePicker($event, condition, '$fromOpened')"
+                   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+            />
+            <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-click="openFilterDatePicker($event, condition, '$toOpened')"
-                 ng-focus="openFilterDatePicker($event, condition, '$toOpened')"
-                 datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-          />
-          <button class="open" ng-click="openFilterDatePicker($event, condition, '$toOpened')"></button>
+          <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-click="openFilterDatePicker($event, condition, '$toOpened')"
+                   ng-focus="openFilterDatePicker($event, condition, '$toOpened')"
+                   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+            />
+            <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>
-      <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>
     </div>
+
   </div>
   </div>
+
+
   <table class="order-table block" ng-table="tableParams">
   <table class="order-table block" ng-table="tableParams">
     <thead>
     <thead>
     <tr class="header">
     <tr class="header">
-      <th>产品</th>
-      <th width="120">单价</th>
-      <th width="100">验收数量</th>
-      <th width="120">批号</th>
-      <th width="140">单据信息</th>
-      <th width="70">操作</th>
+      <th width="175">日期</th>
+      <th width="255">客户</th>
+      <th width="200">流水号</th>
+      <th width="210">送货单号</th>
+      <th>操作</th>
     </tr>
     </tr>
-    <!--<tr class="sep-row">-->
-      <!--<td colspan="6"></td>-->
-    <!--</tr>-->
     </thead>
     </thead>
-    <tbody ng-repeat="accept in $data">
-    <tr class="order-hd">
-      <td class="first" colspan="6">
-        <div class="order-main">
-						<span class="text-num text-bold"
-                  title="{{accept.date | date: 'yyyy年MM月dd日 hh:mm'}}">
-              日期:{{accept.date | date:'yyyy-MM-dd'}}
-            </span> <span
-            title="客户名称">
-          <img src="static/img/user/images/shop_home.png" style="margin-right: 5px;">{{accept.enterprise.enName}}
-        </span>
-          <span>流水号:<a class="text-num order-detail" title="查看详情" ng-bind="accept.code" ui-sref="sale_accept_detail({id: accept.id})"></a></span>
-          <span class="text-info" ng-if="accept.sendCode != null"
-                title="送货单号:{{::accept.sendCode}}"> 送货单号: <span
-              ng-bind="accept.sendCode" class="text-num"></span>
-						</span>
-        </div>
+
+    <tbody ng-repeat="accept in $data" ng-class="{'toggle-mode': accept.seleted}" class="outBody">
+    <tr class="outTr">
+      <td class="text-num" title="{{accept.date | date:'yyyy年MM月dd日'}}" >
+        {{accept.date | date:'yyyy年MM月dd日'    }}
+      </td>
+      <td title="{{accept.enterprise.enName}}">
+        {{accept.enterprise.enName}}
+      </td>
+      <td title="{{::accept.code}}"  class="text-num">
+        <a class="text-num order-detail" title="查看详情" ng-bind="accept.code" ui-sref="sale_accept_detail({id: accept.id})"></a>
+      </td>
+      <td title="{{accept.sendCode}}">
+        {{accept.sendCode}}
+      </td>
+      <td style="cursor: pointer;">
+        <span class="btn-toggle" ng-show="accept.seleted" ng-click="accept.seleted = !accept.seleted">收起 <i class="fa fa-angle-up"></i></span>
+        <span ng-click="unfoldClick($data, accept)" class="btn-toggle" ng-show="!accept.seleted">展开 <i class="fa fa-angle-down"></i></span>
       </td>
       </td>
     </tr>
     </tr>
-    <tr class="order-bd" ng-repeat="item in accept.acceptItems">
-      <td class="product" style="text-align: left">
-        <div class="text-num order-number" ng-class="{'key': item.key&&order.$showAll}" title="第{{$index + 1}}行">{{$index + 1}}</div>
-        <div class="text-num text-bold">
+    <tr ng-if="accept.seleted">
+      <td colspan="5">
+        <div class="sub-table-head">
+          <table class="wanted-sub-tab table">
+            <thead>
+            <tr>
+              <th width="60">序号</th>
+              <th width="406">产品</th>
+              <th width="120">单价</th>
+              <th width="100">验收数量</th>
+              <th width="120">批号</th>
+              <th width="230">单据信息</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr  ng-repeat="item in accept.acceptItems">
+              <td style="font-size: 14px;text-align: center">
+                {{$index + 1}}
+              </td>
+              <td class="product" style="text-align: left">
+                <div class="text-num text-bold">
 						<span  title="{{item.orderItem.product.code}}"
 						<span  title="{{item.orderItem.product.code}}"
-                  ng-if="item.orderItem.product.code != null">
+                               ng-if="item.orderItem.product.code != null" style="color: #333 !important;">
               物料编号:{{item.orderItem.product.code || '-'}}
               物料编号:{{item.orderItem.product.code || '-'}}
             </span>
             </span>
-          <span title="{{item.product.code}}"
-            ng-if="item.orderItem.product.code == null">
+                  <span title="{{item.product.code}}"
+                        ng-if="item.orderItem.product.code == null" style="color: #333 !important;">
             物料编号:{{item.product.code || '-'}}
             物料编号:{{item.product.code || '-'}}
           </span>
           </span>
-        </div>
-        <div>
+                </div>
+                <div>
 						<span style="color: #666 !important;" title="{{item.orderItem.product.title}}"
 						<span style="color: #666 !important;" title="{{item.orderItem.product.title}}"
-                  ng-if="item.orderItem.product.title != null">
+                              ng-if="item.orderItem.product.title != null">
               物料名称:{{item.orderItem.product.title || '-'}}
               物料名称:{{item.orderItem.product.title || '-'}}
             </span> <span style="color: #666 !important;"
             </span> <span style="color: #666 !important;"
-            title="{{item.product.title}}"
-            ng-if="item.orderItem.product.title == null">
+                          title="{{item.product.title}}"
+                          ng-if="item.orderItem.product.title == null">
           物料名称:{{item.product.title || '-'}}
           物料名称:{{item.product.title || '-'}}
         </span>
         </span>
+                </div>
+                <div style="color: #333 !important;" class="text-muted" title="{{item.orderItem.product.spec}}"
+                     ng-if="item.orderItem.product.spec != null">
+                  物料规格:{{item.orderItem.product.spec || '-'}}
+                </div>
+                <div style="color: #333 !important;" class="text-muted" title="{{item.product.spec}}"
+                     ng-if="item.orderItem.product.spec == null">
+                  物料规格:{{item.product.spec || '-'}}
+                </div>
+                <div class="text-bold text-inverse" title="送货工厂"
+                     ng-if="item.orderItem.factory">
+                  送货工厂:<span ng-bind="::item.orderItem.factory"></span>
+                </div>
+              </td>
+              <td>
+                <div ng-if="!isUser" class="text-num" title="{{item.orderPrice}}">
+                  <span ng-bind="::currency(accept.currency)"></span>
+                  <span ng-bind="item.orderPrice || 0 | number : 6"></span>
+                </div>
+                <div class="text-num" title="{{item.taxrate}}%"> 税率:<span ng-bind="::item.taxrate + '%'" class="text-num"></span>
+                </div>
+              </td>
+              <td class="text-center">
+                <div class="text-num " title="{{item.qty}}"
+                     ng-bind="item.qty"></div>
+                <div class="text-num" ng-bind="item.orderItem.product.unit"></div>
+              </td>
+              <td class="text-center br-l">
+                <div class="text-num" ng-bind="item.batchCode"></div>
+              </td>
+              <td class="br-l" colspan="2" ng-if="item.orderItem.order.code">
+                <div>
+                  单据编号:<a  style="color: #5078cb;" class="order-detail" title="查看采购单详情" ui-sref="sale_order_detail({id:item.orderItem.order.id})"
+                           ng-bind="item.orderItem.order.code"></a>
+                </div>
+                <div>
+                  第 <span ng-bind="item.orderItem.number"></span> 行
+                  &nbsp;&nbsp;&nbsp;&nbsp;数量:<span ng-bind="item.orderItem.qty"></span>
+                </div>
+              </td>
+              <td class="br-l" colspan="2" ng-if="!item.orderItem">
+                <div>无关联的采购单</div>
+              </td>
+            </tr>
+            </tbody>
+          </table>
         </div>
         </div>
-        <div style="color: #666 !important;" class="text-muted" title="{{item.orderItem.product.spec}}"
-             ng-if="item.orderItem.product.spec != null">
-          物料规格:{{item.orderItem.product.spec || '-'}}
-        </div>
-        <div style="color: #666 !important;" class="text-muted" title="{{item.product.spec}}"
-             ng-if="item.orderItem.product.spec == null">
-          物料规格:{{item.product.spec || '-'}}
-        </div>
-        <div class="text-bold text-inverse" title="送货工厂"
-             ng-if="item.orderItem.factory">
-          送货工厂:<span ng-bind="::item.orderItem.factory"></span>
-        </div>
-      </td>
-      <td>
-        <div ng-if="!isUser" class="text-num" title="{{item.orderPrice}}">
-          <span ng-bind="::currency(accept.currency)"></span><span
-            ng-bind="item.orderPrice || 0 | number : 6"></span>
-        </div>
-        <div  ng-if="isUser" class="text-num"></div>
-        <div class="text-muted" title="{{item.orderItem.taxrate}}%">
-          <br> 税率:<span ng-bind="::item.orderItem.taxrate + '%'"
-                        class="text-num" ng-if="item.orderItem.taxrate!=null"></span> <span
-            ng-bind="::item.taxrate + '%'" class="text-num"
-            ng-if="item.orderItem.taxrate==null"></span>
-        </div>
-      </td>
-      <td class="text-center">
-        <div class="text-num text-bold" title="{{item.qty}}"
-             ng-bind="item.qty"></div>
-        <div class="text-muted" ng-bind="item.orderItem.product.unit"></div>
-      </td>
-      <td class="text-center br-l">
-        <div class="text-num" ng-bind="item.batchCode"></div>
-      </td>
-      <td class="br-l" colspan="2" ng-if="item.orderItem.order.code">
-        <div>
-          单据编号:<a  style="color: #5078cb;" class="order-detail" title="查看采购单详情" ui-sref="sale_order_detail({id:item.orderItem.order.id})"
-                  ng-bind="item.orderItem.order.code"></a>
-        </div>
-        <div>
-          第 <span ng-bind="item.orderItem.number"></span> 行
-          &nbsp;&nbsp;&nbsp;&nbsp;数量:<span ng-bind="item.orderItem.qty"></span>
-        </div>
-      </td>
-      <td class="br-l" colspan="2" ng-if="!item.orderItem">
-        <div>无关联的采购单</div>
-      </td>
     </tr>
     </tr>
     </tbody>
     </tbody>
     <tbody ng-if="$data.length === 0">
     <tbody ng-if="$data.length === 0">
@@ -499,7 +526,148 @@
     </tr>
     </tr>
     </tbody>
     </tbody>
   </table>
   </table>
+
+
   <div ng-if="infoCommon.totalElement > 0" class="text-mns text-right" ng-class="infoCommon.totalElement >= 20 ? '': 'Boom18'">
   <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;条
     显示&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>
+</div>
+<style>
+  .order-table .header>th {
+    height: 50px;
+  }
+  .toggle-mode {
+    border-color: #3f84f6 !important;
+    border-width: 2px !important;
+  }
+  .order-table tbody.outBody tr.outTr td {
+    padding: 0 5px;
+    line-height: 50px;
+    height: 50px;
+    vertical-align: middle;
+    text-align: center;
+    font-size: 14px;
+    border-bottom: 1px solid #e9e9e9;
+    white-space: nowrap;
+  }
+  .table>thead>tr>th {
+    vertical-align: middle;
+  }
+  .order-table tbody.toggle-mode >tr:first-child {
+    background: #f5f5f5;
+  }
+  .order-table tbody>tr>td span {
+    vertical-align: middle;
+    width: 100%;
+    /*display: inline-block;*/
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
+  .order-table .btn-toggle {
+    text-align: center;
+    font-size: 14px;
+    color: #5078cb;
+    cursor: pointer;
+  }
+  /*search部分*/
+  .search-check{
+    padding: 15px 20px 5px;
+    height:auto;
+  }
+
+  .search-check .search .form-control{
+    width: 300px;
+    float: left;
+    height: 34px;
+    border-radius: 2px;
+    box-shadow: none;
+    border:1px solid #5078cb;
+  }
+
+  .search-check .search button{
+    background: #5078cb;
+    border: #5078cb 1px solid;
+    border-left: none;
+    color: #fff;
+    border-radius: 2px;
+  }
+
+  .search-check .radio-block {
+    line-height: 36px;
+    margin-bottom:10px;
+    font-size: 14px;
+  }
+  .search-check .radio-block .radio-btn{
+    display:inline-block;
+    position: relative;
+    top: 2px;
+  }
+  .search-check .radio-block .radio-btn li{
+    margin: 0 3px;
+    font-size: 14px;
+    line-height: 34px;
+    padding:0 10px;
+    height:34px;
+    border:1px solid #bfbfbf;
+    border-radius:3px;
+    cursor:pointer;
+  }
+  .search-check .radio-block .radio-btn li a{
+    color: #323232
+  }
+  .search-check .radio-block .radio-btn li:hover {
+    border:1px solid #5078cb;
+    color:#5078cb;
+  }
+  .search-check .radio-block .radio-btn li:hover a{
+    color:#5078cb;
+  }
+  .search-check .radio-block .radio-btn li.active{
+    border:1px solid #5078cb;
+    color:#5078cb;
+  }
+  .search-check .radio-block .radio-date{
+    display:inline-block;
+    vertical-align: middle;
+  }
+  .search-check .radio-block .radio-date .btn-default{
+    border: none;
+  }
+  .search-check .radio-block .radio-date .data-input{
+    float:left;
+    position:relative;
+  }
+  .search-check .radio-block .radio-date .data-input input{
+    width:120px;
+  }
+  .search-check .radio-block .radio-date .data-input button.open {
+    position: absolute;
+    right: 2px;
+    top: 2px;
+    width: 20px;
+    height: 30px;
+    background: url(static/img/user/images/xiala.png) right no-repeat #fff !important;
+    background-position-x: 100% !important;
+    border: none;
+  }
+  .search-check .radio-block .radio-date > em{
+    float: left;
+    line-height: 32px;
+    color: #999;
+    margin: 0 5px;
+  }
+  .search-check .radio-block .com-check-radio {
+    font-weight: normal;
+    color: #666;
+    margin-right: 13px;
+    cursor:pointer;
+  }
+  .search-check .radio-block .com-check-radio label {
+    margin-bottom:6px;
+  }
+  .screen {
+    padding-left: 0px;
+  }
+
+</style>

+ 327 - 168
src/main/webapp/resources/view/vendor/b2b/sale/sale_badOut.html

@@ -66,6 +66,7 @@
     border-width: 2px;
     border-width: 2px;
   }
   }
 
 
+
   .order-table .operates {
   .order-table .operates {
     display: none;
     display: none;
   }
   }
@@ -292,10 +293,10 @@
     <div class="com_tab" style="margin-bottom: 10px">
     <div class="com_tab" style="margin-bottom: 10px">
       <ul class="fl" style="width: 100%">
       <ul class="fl" style="width: 100%">
         <li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
         <li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
-        <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
+        <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
         <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
         <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
         <li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
         <li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
-        <li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>
+        <!--<li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>-->
         <li class="down-purchase">
         <li class="down-purchase">
           <span ng-click="exportXls()" style="cursor:pointer">
           <span ng-click="exportXls()" style="cursor:pointer">
               <i class="fa fa-file-excel-o fa-fw"></i>导出Excel
               <i class="fa fa-file-excel-o fa-fw"></i>导出Excel
@@ -307,186 +308,344 @@
       </ul>
       </ul>
     </div>
     </div>
   </div>
   </div>
-  <div class="tab_top" style="margin-bottom: 10px">
-    <ul class="fl" style="width: 100%">
-      <li ng-class="{'active': storeType=='badOut'}"><a ui-sref="sale_badOut">不良品出库单</a></li>
-      <li ng-class="{'active': storeType=='badIn'}"><a ui-sref="sale_badIn">不良品入库单</a></li>
-      <li ng-class="{'active': storeType=='accept'}"><a ui-sref="sale_accept">客户采购验收单</a></li>
-      <li ng-class="{'active': storeType=='returns'}"><a ui-sref="sale_returns">客户采购验退单</a></li>
-      <li ng-class="{'active': storeType=='makeaccept'}"><a ui-sref="sale_makeaccept">客户委外验收单</a></li>
-      <li ng-class="{'active': storeType=='makereturns'}"><a ui-sref="sale_makereturns">客户委外验退单</a></li>
-    </ul>
-  </div>
-  <div class="screen check-filter">
-    <div class="radio-block date-radio">
-      时间筛选:
-      <label class="com-check-radio">
-        <input type="radio" id="oneMonth" name="date" ng-click="autoMonth = false;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="autoMonth = false;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="autoMonth = false;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="autoMonth = true;condition.$open=!condition.$open;changeDateZone(-1)">
-        <label for="autoMonth"></label>
-        自定义
-      </label>
+  <div class="search-check">
+    <div class="radio-block">
+      业务:
+      <ul class="radio-btn list-inline">
+        <li><a href="#/vendor_storage?type=0">查看出库记录</a></li>
+        <li><a href="#/vendor_storage?type=2">销售出库</a></li>
+        <li class="active">不良品出库单</li>
+        <li ui-sref="sale_accept">客户采购验收单</li>
+        <li ui-sref="sale_returns">客户采购验退单</li>
+        <li ui-sref="sale_makeaccept">客户委外验收单</li>
+        <li ui-sref="sale_makereturns">客户委外验退单</li>
+        <li><a href="#/vendor_storage?type=1">其它出库</a></li>
+        <!--<li ng-repeat="item in handleLink"-->
+        <!--ng-bind="item.name"-->
+        <!--ng-class="{'active': handleItem === item.id}"-->
+        <!--ng-if="item.tab === storage_tab"-->
+        <!--ng-click="toggleType(item.id)"></li>-->
+      </ul>
+
     </div>
     </div>
-    <div class="sreach fr">
-      <div ng-show="autoMonth" 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-click="openFilterDatePicker($event, condition, '$fromOpened')"
-                 ng-focus="openFilterDatePicker($event, condition, '$fromOpened')"
-                 datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-          />
-          <button class="open" ng-click="openFilterDatePicker($event, condition, '$fromOpened')"></button>
-        </div>
+    <div class="screen check-filter">
+      <div class="radio-block date-radio">
+        筛选:
+        <label class="com-check-radio">
+          <input type="radio" id="oneMonth" name="date" ng-click="autoMonth = false;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="autoMonth = false;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="autoMonth = false;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="autoMonth = true;condition.$open=!condition.$open;changeDateZone(-1)">
+          <label for="autoMonth"></label>
+          自定义
+        </label>
+      </div>
+      <div class="sreach fr">
+        <div ng-show="autoMonth" 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-click="openFilterDatePicker($event, condition, '$fromOpened')"
+                   ng-focus="openFilterDatePicker($event, condition, '$fromOpened')"
+                   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+            />
+            <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-click="openFilterDatePicker($event, condition, '$toOpened')"
-                 ng-focus="openFilterDatePicker($event, condition, '$toOpened')"
-                 datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-          />
-          <button class="open" ng-click="openFilterDatePicker($event, condition, '$toOpened')"></button>
+          <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-click="openFilterDatePicker($event, condition, '$toOpened')"
+                   ng-focus="openFilterDatePicker($event, condition, '$toOpened')"
+                   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+            />
+            <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>
-      <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>
     </div>
-  </div>
 
 
+  </div>
   <table class="order-table block" ng-table="tableParams">
   <table class="order-table block" ng-table="tableParams">
     <thead>
     <thead>
-    <tr class="header">
-      <th>产品</th>
-      <th width="120">单价</th>
-      <th width="100">出库数量</th>
-      <th width="120">批号</th>
-      <th width="140">单据信息</th>
-      <th width="70">操作</th>
-    </tr>
-    <!--<tr class="sep-row">-->
-      <!--<td colspan="6"></td>-->
-    <!--</tr>-->
+      <tr class="header">
+        <th width="175">日期</th>
+        <th width="255">客户</th>
+        <th width="200">流水号</th>
+        <th width="210">送货单号</th>
+        <th>操作</th>
+      </tr>
     </thead>
     </thead>
-    <tbody ng-repeat="badOut in $data">
-    <tr class="order-hd">
-      <td class="first" colspan="3">
-        <div class="order-main">
-          <!--<span> <input type="checkbox" class="selector"
-            ng-model="badOut.$selected">
-          </span> -->
-          <span class="text-num text-bold" title="{{::badOut.date | date: 'yyyy年MM月dd日 hh:mm'}}" >
-            日期:{{::badOut.date | date:'yyyy-MM-dd'}}
-          </span>
-          <span title="客户名称">
-            <img src="static/img/user/images/shop_home.png" style="margin-right: 5px;">{{::badOut.badOutItems[0].orderItem.order.enterprise.enName}}
-          </span>
-          <span>流水号:<span
-              class="text-num" ng-bind="::badOut.code"></span></span>
-        </div>
-      </td>
-      <td colspan="2" class="order-sum">
-        <div class="text-ellipsis" ng-if="badOut.sendCode != null" style="width: 240px;" title="送货单号:{{::badOut.sendCode}}" >
-          <i style="color: #CC9933;" class="fa fa-truck"></i>
-          <span ng-bind="badOut.sendCode"></span>
-        </div>
-      </td>
-      <td colspan="1" class="text-center">
-        <div class="operates">
-          <!-- <a href="#" class="text-muted" title="打印">
-            <i class="fa fa-print fa-lg fa-fw"></i>
-          </a> -->
-        </div>
-      </td>
-    </tr>
-    <tr class="order-bd" ng-repeat="item in badOut.badOutItems">
-      <td class="product" style="text-align: left">
-        <div class="text-num order-number" ng-class="{'key': item.key&&order.$showAll}" title="第{{$index + 1}}行">{{$index + 1}}</div>
-        <div class="text-num text-bold" title="{{::item.orderItem.product.code}}">
-          <span >
-            物料编号:{{::item.orderItem.product.code || '-'}}
-          </span>
-        </div>
-        <div title="{{::item.orderItem.product.title}}">
-          <span style="color: #666">
-            物料名称:{{::item.orderItem.product.title || '-'}}
-          </span>
-        </div>
-        <div style="color: #666 !important;" class="text-muted" title="{{::item.orderItem.product.spec}}" >
-          物料规格:{{::item.orderItem.product.spec || '-'}}
-        </div>
-      </td>
-      <td>
-        <div class="text-num" title="{{::item.orderPrice}}">
-          <span ng-if="!isUser" ng-bind="::badOut.currency"></span>
-          <span ng-if="!isUser" ng-bind="::item.orderPrice"></span>
-          <span ng-if="isUser">-</span>
-        </div>
-        <div class="text-muted"
-             title="{{item.orderItem.taxrate}}%">
-          <br>
-          税率:<span ng-bind="::item.orderItem.taxrate + '%'" class="text-num"></span>
-        </div>
-      </td>
-      <td class="text-center">
-        <div class="text-num text-bold"
-             title="{{::item.qty}}" ng-bind="::item.qty"></div>
-        <div class="text-muted" ng-bind="::item.orderItem.product.unit"></div>
-      </td>
-      <td class="text-center br-l">
-        <div class="text-num"
-             ng-bind="::item.batchCode"></div>
-      </td>
-      <td class="br-l" colspan="2">
-        <div>单据编号:<a style="color: #5078cb;" title="查看对应采购单详情" ui-sref="sale_order_detail({id:item.orderItem.order.id})" ng-bind="::item.orderItem.order.code"></a></div>
-        <div>
-          第 <span ng-bind="::item.orderItem.number"></span> 行
-          &nbsp;&nbsp;&nbsp;&nbsp;数量:<span ng-bind="::item.orderItem.qty"></span>
-        </div>
-      </td>
-    </tr>
+    <tbody ng-repeat="badOut in $data" ng-class="{'toggle-mode': badOut.seleted}" class="outBody">
+      <tr class="outTr">
+        <td class="text-num" title="{{::badOut.date | date: 'yyyy年MM月dd日 hh:mm'}}" >
+          {{::badOut.date | date:'yyyy年MM月dd日   '}}
+        </td>
+        <td title="{{::badOut.badOutItems[0].orderItem.order.enterprise.enName}}">
+          {{::badOut.badOutItems[0].orderItem.order.enterprise.enName}}
+        </td>
+        <td title="{{::badOut.code}}"  class="text-num">
+          {{::badOut.code}}
+        </td>
+        <td title="{{badOut.sendCode}}">
+          {{badOut.sendCode}}
+        </td>
+        <td style="cursor: pointer;">
+          <span class="btn-toggle" ng-show="badOut.seleted" ng-click="badOut.seleted = !badOut.seleted">收起 <i class="fa fa-angle-up"></i></span>
+          <span ng-click="unfoldClick($data,badOut)" class="btn-toggle" ng-show="!badOut.seleted">展开 <i class="fa fa-angle-down"></i></span>
+        </td>
+      </tr>
+      <tr ng-if="badOut.seleted">
+        <td colspan="5">
+          <div class="sub-table-head">
+            <table class="wanted-sub-tab table">
+              <thead>
+                <tr>
+                  <th width="60">序号</th>
+                  <th width="406">产品</th>
+                  <th width="120">单价</th>
+                  <th width="100">出库数量</th>
+                  <th width="120">批号</th>
+                  <th width="230">单据信息</th>
+                </tr>
+              </thead>
+              <tbody>
+                <tr  ng-repeat="item in badOut.badOutItems">
+                  <td style="font-size: 14px;text-align: center">
+                    {{$index + 1}}
+                  </td>
+                  <td class="product" style="text-align: left">
+                    <div class="text-num" title="{{::item.orderItem.product.code}}">
+                      <span style="color: #333">
+                        物料编号:{{::item.orderItem.product.code || '-'}}
+                      </span>
+                    </div>
+                    <div title="{{::item.orderItem.product.title}}">
+                      <span style="color: #333">
+                        物料名称:{{::item.orderItem.product.title || '-'}}
+                      </span>
+                    </div>
+                    <div style="color: #333 !important;" class="text-muted" title="{{::item.orderItem.product.spec}}" >
+                      物料规格:{{::item.orderItem.product.spec || '-'}}
+                    </div>
+                  </td>
+                  <td>
+                    <div class="text-num" title="{{::item.orderPrice}}">
+                      <span ng-if="!isUser" ng-bind="::badOut.currency"></span>
+                      <span ng-if="!isUser" ng-bind="::item.orderPrice"></span>
+                      <span ng-if="isUser">-</span>
+                    </div>
+                    <div class="text-num" title="{{item.orderItem.taxrate}}%">
+                      税率:<span ng-bind="::item.orderItem.taxrate + '%'" class="text-num"></span>
+                    </div>
+                  </td>
+                  <td class="text-center">
+                    <div class="text-num"
+                         title="{{::item.qty}}" ng-bind="::item.qty"></div>
+                    <div class="text-num" ng-bind="::item.orderItem.product.unit"></div>
+                  </td>
+                  <td class="text-center br-l">
+                    <div class="text-num"
+                         ng-bind="::item.batchCode"></div>
+                  </td>
+                  <td class="br-l" colspan="2">
+                    <div>单据编号:<a style="color: #5078cb;" title="查看对应采购单详情" ui-sref="sale_order_detail({id:item.orderItem.order.id})" ng-bind="::item.orderItem.order.code"></a></div>
+                    <div>
+                      第 <span ng-bind="::item.orderItem.number"></span> 行
+                      &nbsp;&nbsp;&nbsp;&nbsp;数量:<span ng-bind="::item.orderItem.qty"></span>
+                    </div>
+                  </td>
+                </tr>
+              </tbody>
+            </table>
+          </div>
+      </tr>
     </tbody>
     </tbody>
     <tbody ng-if="$data.length === 0">
     <tbody ng-if="$data.length === 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>暂无对应的单据</p>
-            <a href="javascript:location.reload()">点击重新加载<i class="fa fa-refresh"></i></a>
+      <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>暂无对应的单据</p>
+              <a href="javascript:location.reload()">点击重新加载<i class="fa fa-refresh"></i></a>
+            </div>
           </div>
           </div>
-        </div>
-      </td>
-    </tr>
+        </td>
+     </tr>
     </tbody>
     </tbody>
   </table>
   </table>
+
+
   <div ng-if="infoCommon.totalElement > 0" class="text-mns text-right" ng-class="infoCommon.totalElement >= 20 ? '': 'Boom18'">
   <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;条
     显示&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>
+</div>
+<style>
+  .order-table .header>th {
+    height: 50px;
+  }
+  .toggle-mode {
+    border-color: #3f84f6 !important;
+    border-width: 2px !important;
+  }
+  .order-table tbody.outBody tr.outTr td {
+    padding: 0 5px;
+    line-height: 50px;
+    height: 50px;
+    vertical-align: middle;
+    text-align: center;
+    font-size: 14px;
+    border-bottom: 1px solid #e9e9e9;
+    white-space: nowrap;
+  }
+  .table>thead>tr>th {
+    vertical-align: middle;
+    font-size: 14px;
+    color: #323232;
+
+  }
+  .order-table tbody.toggle-mode >tr:first-child {
+    background: #f5f5f5;
+  }
+  .order-table tbody>tr>td span {
+    vertical-align: middle;
+    width: 100%;
+    /*display: inline-block;*/
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
+  .order-table .btn-toggle {
+    text-align: center;
+    font-size: 14px;
+    color: #5078cb;
+    cursor: pointer;
+  }
+  /*search部分*/
+  .search-check{
+    padding: 15px 20px 5px;
+    height:auto;
+  }
+
+  .search-check .search .form-control{
+    width: 300px;
+    float: left;
+    height: 34px;
+    border-radius: 2px;
+    box-shadow: none;
+    border:1px solid #5078cb;
+  }
+
+  .search-check .search button{
+    background: #5078cb;
+    border: #5078cb 1px solid;
+    border-left: none;
+    color: #fff;
+    border-radius: 2px;
+  }
+
+  .search-check .radio-block {
+    line-height: 36px;
+    margin-bottom:10px;
+    font-size: 14px;
+  }
+  .search-check .radio-block .radio-btn{
+    display:inline-block;
+    position: relative;
+    top: 2px;
+  }
+  .search-check .radio-block .radio-btn li{
+    margin: 0 3px;
+    font-size: 14px;
+    line-height: 34px;
+    padding:0 10px;
+    height:34px;
+    border:1px solid #bfbfbf;
+    border-radius:3px;
+    cursor:pointer;
+  }
+  .search-check .radio-block .radio-btn li a{
+    color: #323232
+  }
+  .search-check .radio-block .radio-btn li:hover {
+    border:1px solid #5078cb;
+    color:#5078cb;
+  }
+  .search-check .radio-block .radio-btn li:hover a{
+    color:#5078cb;
+  }
+  .search-check .radio-block .radio-btn li.active{
+    border:1px solid #5078cb;
+    color:#5078cb;
+  }
+  .search-check .radio-block .radio-date{
+    display:inline-block;
+    vertical-align: middle;
+  }
+  .search-check .radio-block .radio-date .btn-default{
+    border: none;
+  }
+  .search-check .radio-block .radio-date .data-input{
+    float:left;
+    position:relative;
+  }
+  .search-check .radio-block .radio-date .data-input input{
+    width:120px;
+  }
+  .search-check .radio-block .radio-date .data-input button.open {
+    position: absolute;
+    right: 2px;
+    top: 2px;
+    width: 20px;
+    height: 30px;
+    background: url(static/img/user/images/xiala.png) right no-repeat #fff !important;
+    background-position-x: 100% !important;
+    border: none;
+  }
+  .search-check .radio-block .radio-date > em{
+    float: left;
+    line-height: 32px;
+    color: #999;
+    margin: 0 5px;
+  }
+  .search-check .radio-block .com-check-radio {
+    font-weight: normal;
+    color: #666;
+    margin-right: 13px;
+    cursor:pointer;
+  }
+  .search-check .radio-block .com-check-radio label {
+    margin-bottom:6px;
+  }
+  .screen {
+    padding-left: 0px;
+  }
+
+</style>

+ 317 - 180
src/main/webapp/resources/view/vendor/b2b/sale/sale_make_accept.html

@@ -288,10 +288,10 @@
     <div class="com_tab" style="margin-bottom: 10px">
     <div class="com_tab" style="margin-bottom: 10px">
       <ul class="fl" style="width: 100%">
       <ul class="fl" style="width: 100%">
         <li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
         <li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
-        <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
+        <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
         <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
         <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
         <li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
         <li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
-        <li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>
+        <!--<li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>-->
         <li class="down-purchase">
         <li class="down-purchase">
           <span ng-click="exportXls()" style="cursor:pointer">
           <span ng-click="exportXls()" style="cursor:pointer">
               <i class="fa fa-file-excel-o fa-fw"></i>导出Excel
               <i class="fa fa-file-excel-o fa-fw"></i>导出Excel
@@ -303,208 +303,345 @@
       </ul>
       </ul>
     </div>
     </div>
   </div>
   </div>
-  <div class="tab_top" style="margin-bottom: 10px">
-    <ul class="fl" style="width: 100%">
-      <li ng-class="{'active': storeType=='badOut'}"><a ui-sref="sale_badOut">不良品出库单</a></li>
-      <li ng-class="{'active': storeType=='badIn'}"><a ui-sref="sale_badIn">不良品入库单</a></li>
-      <li ng-class="{'active': storeType=='accept'}"><a ui-sref="sale_accept">客户采购验收单</a></li>
-      <li ng-class="{'active': storeType=='returns'}"><a ui-sref="sale_returns">客户采购验退单</a></li>
-      <li ng-class="{'active': storeType=='makeaccept'}"><a ui-sref="sale_makeaccept">客户委外验收单</a></li>
-      <li ng-class="{'active': storeType=='makereturns'}"><a ui-sref="sale_makereturns">客户委外验退单</a></li>
-    </ul>
-  </div>
-  <div class="screen check-filter">
-    <div class="radio-block date-radio">
-      时间筛选:
-      <label class="com-check-radio">
-        <input type="radio" id="oneMonth" name="date" ng-click="autoMonth = false;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="autoMonth = false;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="autoMonth = false;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="autoMonth = true;condition.$open=!condition.$open;changeDateZone(-1)">
-        <label for="autoMonth"></label>
-        自定义
-      </label>
+  <div class="search-check">
+    <div class="radio-block">
+      业务:
+      <ul class="radio-btn list-inline">
+        <li><a href="#/vendor_storage?type=0">查看出库记录</a></li>
+        <li><a href="#/vendor_storage?type=2">销售出库</a></li>
+        <li ui-sref="sale_badOut" >不良品出库单</li>
+        <li ui-sref="sale_accept">客户采购验收单</li>
+        <li ui-sref="sale_returns">客户采购验退单</li>
+        <li class="active">客户委外验收单</li>
+        <li ui-sref="sale_makereturns">客户委外验退单</li>
+        <li><a href="#/vendor_storage?type=1">其它出库</a></li>
+        <!--<li ng-repeat="item in handleLink"-->
+        <!--ng-bind="item.name"-->
+        <!--ng-class="{'active': handleItem === item.id}"-->
+        <!--ng-if="item.tab === storage_tab"-->
+        <!--ng-click="toggleType(item.id)"></li>-->
+      </ul>
+
     </div>
     </div>
-    <div class="sreach fr">
-      <div ng-show="autoMonth" 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-click="openFilterDatePicker($event, condition, '$fromOpened')"
-                 ng-focus="openFilterDatePicker($event, condition, '$fromOpened')"
-                 datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-          />
-          <button class="open" ng-click="openFilterDatePicker($event, condition, '$fromOpened')"></button>
-        </div>
+    <div class="screen check-filter">
+      <div class="radio-block date-radio">
+        筛选:
+        <label class="com-check-radio">
+          <input type="radio" id="oneMonth" name="date" ng-click="autoMonth = false;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="autoMonth = false;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="autoMonth = false;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="autoMonth = true;condition.$open=!condition.$open;changeDateZone(-1)">
+          <label for="autoMonth"></label>
+          自定义
+        </label>
+      </div>
+      <div class="sreach fr">
+        <div ng-show="autoMonth" 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-click="openFilterDatePicker($event, condition, '$fromOpened')"
+                   ng-focus="openFilterDatePicker($event, condition, '$fromOpened')"
+                   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+            />
+            <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-click="openFilterDatePicker($event, condition, '$toOpened')"
-                 ng-focus="openFilterDatePicker($event, condition, '$toOpened')"
-                 datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-          />
-          <button class="open" ng-click="openFilterDatePicker($event, condition, '$toOpened')"></button>
+          <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-click="openFilterDatePicker($event, condition, '$toOpened')"
+                   ng-focus="openFilterDatePicker($event, condition, '$toOpened')"
+                   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+            />
+            <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>
-      <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>
     </div>
+
   </div>
   </div>
 
 
+
+
   <table class="order-table block" ng-table="tableParams">
   <table class="order-table block" ng-table="tableParams">
     <thead>
     <thead>
     <tr class="header">
     <tr class="header">
-      <th>产品</th>
-      <th width="120">单价</th>
-      <th width="100">验收数量</th>
-      <th width="120">批号</th>
-      <th width="140">单据信息</th>
-      <th width="70">操作</th>
+      <th width="175">日期</th>
+      <th width="255">客户</th>
+      <th width="200">流水号</th>
+      <th width="210">送货单号</th>
+      <th>操作</th>
     </tr>
     </tr>
-    <!--<tr class="sep-row">-->
-      <!--<td colspan="6"></td>-->
-    <!--</tr>-->
-    <!--<tr class="toolbar toolbar-top">
-      <td colspan="5">
-        <div>
-          &lt;!&ndash; 	<label><input ng-disabled="true" type="checkbox"
-            class="selector select_all" ng-model="selectAll">全选</label> <a
-            ng-disabled="true" href="javascript:void(0)"
-            class="btn btn-default btn-xs">批量处理</a> &ndash;&gt;
-        </div> &lt;!&ndash; 分页 &ndash;&gt;
-      </td>
-      <td class="text-center">
-        <a href="make/accept/xls?_state={{active}}&keyword={{keywordXls.keyword}}&fromDate={{keywordXls.fromDate}}&endDate={{keywordXls.endDate}}"
-        target="_self" class="text-simple" title="导出Excel表格"><i
-          class="fa fa-file-text fa-fw"></i>导出</a></td>
-    </tr>
-    <tr class="sep-row">
-      <td colspan="6"></td>
-    </tr>-->
     </thead>
     </thead>
-    <tbody ng-repeat="accept in $data">
-    <tr class="order-hd">
-      <td class="first" colspan="4">
-        <div class="order-main">
-          <!--<span><input type="checkbox" class="selector"
-            ng-model="accept.$selected"></span>-->
-          <span
-              class="text-num text-bold"
-              title="{{accept.date | date:'yyyy年MM月dd日hh:mm'}}">
-            日期:{{accept.date | date:'yyyy-MM-dd'}}
-          </span>
-          <span title="客户名称">
-            <img src="static/img/user/images/shop_home.png" style="margin-right: 5px;">{{accept.acceptItems[0].order.enterprise.enName}}
-          </span>
-          <span>流水号:<span
-              class="text-num" ng-bind="accept.code"></span></span>
-        </div>
+
+    <tbody ng-repeat="accept in $data" ng-class="{'toggle-mode': accept.seleted}" class="outBody">
+    <tr class="outTr">
+      <td class="text-num" title="{{accept.date | date:'yyyy年MM月dd日'}}" >
+        {{accept.date | date:'yyyy年MM月dd日'    }}
       </td>
       </td>
-      <td colspan="1" class="order-sum">
-        <div class="text-ellipsis" ng-if="accept.sendCode != null"
-             style="width: 120px;" title="送货单号:{{::accept.sendCode}}">
-          <i style="color: #CC9933;" class="fa fa-truck"></i> <span
-            ng-bind="accept.sendCode"></span>
-        </div>
+      <td title="{{accept.acceptItems[0].order.enterprise.enName}}">
+        {{accept.acceptItems[0].order.enterprise.enName}}
       </td>
       </td>
-      <td colspan="1" class="text-center">
-        <div class="operates">
-          <!-- <a href="#" class="text-muted" title="打印">
-          <i class="fa fa-print fa-lg fa-fw"></i>
-        </a> -->
-        </div>
+      <td title="{{::accept.code}}"  class="text-num">
+        {{::accept.code}}
       </td>
       </td>
-    </tr>
-    <tr class="order-bd" ng-repeat="item in accept.acceptItems">
-      <td class="product" style="text-align: left">
-        <div class="text-num order-number" class="key" title="第{{$index + 1}}行">{{$index + 1}}</div>
-        <div class="text-num text-bold" title="{{item.order.product.code}}">
-          <span>
-            物料编号:{{item.order.product.code|| '-'}}
-          </span>
-        </div>
-        <div title="{{item.order.product.title}}">
-          <span  style="color: #666 !important;">
-             物料名称:{{item.order.product.title|| '-'}}
-          </span>
-        </div>
-        <div class="text-muted" title="{{item.order.product.spec}}"  style="color: #666 !important;">
-          物料规格:{{item.order.product.spec|| '-'}}
-        </div>
-        <div class="text-bold text-inverse" ng-if="item.order.factory">
-          送货工厂:<span ng-bind="::item.order.factory"></span>
-        </div>
-      </td>
-      <td>
-        <div ng-if="!isUser" class="text-num" title="{{item.orderPrice}}">
-          <span ng-bind="::currency(accept.currency)"></span><span
-            ng-bind="item.orderPrice || 0 | number : 6"></span>
-        </div>
-        <div class="text-muted" title="{{item.taxrate}}%">
-          <br> 税率:<span ng-bind="::item.taxrate + '%'"
-                        class="text-num"></span>
-        </div>
-      </td>
-
-      <td class="text-center">
-        <div class="text-num text-bold" title="{{item.qty}}"
-             ng-bind="item.qty"></div>
-        <div class="text-muted" ng-bind="item.order.product.unit"></div>
+      <td title="{{accept.sendCode}}">
+        {{accept.sendCode}}
       </td>
       </td>
-      <td class="text-center br-l">
-        <div class="text-num" ng-bind="item.batchCode"></div>
+      <td style="cursor: pointer;">
+        <span class="btn-toggle" ng-show="accept.seleted" ng-click="accept.seleted = !accept.seleted">收起 <i class="fa fa-angle-up"></i></span>
+        <span ng-click="unfoldClick($data, accept)" class="btn-toggle" ng-show="!accept.seleted">展开 <i class="fa fa-angle-down"></i></span>
       </td>
       </td>
-      <td class="br-l" colspan="2">
-        <div>
-          单据编号:<a  style="color: #5078cb;" class="order-detail" title="查看采购单详情" ui-sref="sale_makeorder_detail({id:item.order.id})"
-                  ng-bind="item.order.code"></a>
-        </div>
-        <div>
-          &nbsp;&nbsp;&nbsp;&nbsp;数量:<span ng-bind="item.order.qty"></span>
+    </tr>
+      <tr ng-if="accept.seleted">
+      <td colspan="5">
+        <div class="sub-table-head">
+          <table class="wanted-sub-tab table">
+            <thead>
+            <tr>
+              <th width="60">序号</th>
+              <th width="406">产品</th>
+              <th width="120">单价</th>
+              <th width="100">验收数量</th>
+              <th width="120">批号</th>
+              <th width="230">单据信息</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr  ng-repeat="item in accept.acceptItems">
+              <td style="font-size: 14px;text-align: center">
+                {{$index + 1}}
+              </td>
+              <td class="product" style="text-align: left">
+                <div class="text-num" title="{{item.order.product.code|| '-'}}">
+                  <span style="color: #333 !important;" >
+                    物料编号:{{item.order.product.code|| '-'}}
+                  </span>
+                </div>
+                <div title="{{item.order.product.title|| '-'}}">
+                  <span style="color: #333">
+                    物料名称:{{item.order.product.title|| '-'}}
+                  </span>
+                </div>
+                <div style="color: #333 !important;" class="text-muted" title="{{::item.orderItem.product.spec}}" >
+                  物料规格:{{item.order.product.spec|| '-'}}
+                </div>
+                <div class="text-bold text-inverse" ng-if="item.order.factory">
+                  送货工厂:<span ng-bind="::item.order.factory"></span>
+                </div>
+              </td>
+              <td>
+                <div ng-if="!isUser" class="text-num" title="{{item.orderPrice}}">
+                  <span ng-bind="::currency(accept.currency)"></span>
+                  <span ng-bind="item.orderPrice || 0 | number : 6"></span>
+                </div>
+                <div class="text-num" title="{{item.taxrate}}%"> 税率:<span ng-bind="::item.taxrate + '%'" class="text-num"></span>
+                </div>
+              </td>
+              <td class="text-center">
+                <div class="text-num" title="{{item.qty}}"
+                     ng-bind="item.qty"></div>
+                <div class="text-num" ng-bind="item.order.product.unit"></div>
+              </td>
+              <td class="text-center br-l">
+                <div class="text-num" ng-bind="item.batchCode"></div>
+              </td>
+              <td class="br-l" colspan="2">
+                <div>
+                  单据编号:<a  style="color: #5078cb;" class="order-detail" title="查看采购单详情" ui-sref="sale_makeorder_detail({id:item.order.id})"
+                           ng-bind="item.order.code"></a>
+                </div>
+                <div>数量:<span ng-bind="item.order.qty"></span></div>
+              </td>
+            </tr>
+            </tbody>
+          </table>
         </div>
         </div>
-      </td>
     </tr>
     </tr>
     </tbody>
     </tbody>
     <tbody ng-if="$data.length === 0">
     <tbody ng-if="$data.length === 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>暂无对应的单据</p>
-            <a href="javascript:location.reload()">点击重新加载<i class="fa fa-refresh"></i></a>
+      <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>暂无对应的单据</p>
+              <a href="javascript:location.reload()">点击重新加载<i class="fa fa-refresh"></i></a>
+            </div>
           </div>
           </div>
-        </div>
-      </td>
-    </tr>
+        </td>
+      </tr>
     </tbody>
     </tbody>
   </table>
   </table>
+
+
   <div ng-if="infoCommon.totalElement > 0" class="text-mns text-right" ng-class="infoCommon.totalElement >= 20 ? '': 'Boom18'">
   <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;条
     显示&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>
+</div>
+<style>
+  .order-table .header>th {
+    height: 50px;
+  }
+  .toggle-mode {
+    border-color: #3f84f6 !important;
+    border-width: 2px !important;
+  }
+  .order-table tbody.outBody tr.outTr td {
+    padding: 0 5px;
+    line-height: 50px;
+    height: 50px;
+    vertical-align: middle;
+    text-align: center;
+    font-size: 14px;
+    border-bottom: 1px solid #e9e9e9;
+    white-space: nowrap;
+  }
+  .table>thead>tr>th {
+    vertical-align: middle;
+  }
+  .order-table tbody.toggle-mode >tr:first-child {
+    background: #f5f5f5;
+  }
+  .order-table tbody>tr>td span {
+    vertical-align: middle;
+    width: 100%;
+    /*display: inline-block;*/
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
+  .order-table .btn-toggle {
+    text-align: center;
+    font-size: 14px;
+    color: #5078cb;
+    cursor: pointer;
+  }
+  /*search部分*/
+  .search-check{
+    padding: 15px 20px 5px;
+    height:auto;
+  }
+
+  .search-check .search .form-control{
+    width: 300px;
+    float: left;
+    height: 34px;
+    border-radius: 2px;
+    box-shadow: none;
+    border:1px solid #5078cb;
+  }
+
+  .search-check .search button{
+    background: #5078cb;
+    border: #5078cb 1px solid;
+    border-left: none;
+    color: #fff;
+    border-radius: 2px;
+  }
+
+  .search-check .radio-block {
+    line-height: 36px;
+    margin-bottom:10px;
+    font-size: 14px;
+  }
+  .search-check .radio-block .radio-btn{
+    display:inline-block;
+    position: relative;
+    top: 2px;
+  }
+  .search-check .radio-block .radio-btn li{
+    margin: 0 3px;
+    font-size: 14px;
+    line-height: 34px;
+    padding:0 10px;
+    height:34px;
+    border:1px solid #bfbfbf;
+    border-radius:3px;
+    cursor:pointer;
+  }
+  .search-check .radio-block .radio-btn li a{
+    color: #323232
+  }
+  .search-check .radio-block .radio-btn li:hover {
+    border:1px solid #5078cb;
+    color:#5078cb;
+  }
+  .search-check .radio-block .radio-btn li:hover a{
+    color:#5078cb;
+  }
+  .search-check .radio-block .radio-btn li.active{
+    border:1px solid #5078cb;
+    color:#5078cb;
+  }
+  .search-check .radio-block .radio-date{
+    display:inline-block;
+    vertical-align: middle;
+  }
+  .search-check .radio-block .radio-date .btn-default{
+    border: none;
+  }
+  .search-check .radio-block .radio-date .data-input{
+    float:left;
+    position:relative;
+  }
+  .search-check .radio-block .radio-date .data-input input{
+    width:120px;
+  }
+  .search-check .radio-block .radio-date .data-input button.open {
+    position: absolute;
+    right: 2px;
+    top: 2px;
+    width: 20px;
+    height: 30px;
+    background: url(static/img/user/images/xiala.png) right no-repeat #fff !important;
+    background-position-x: 100% !important;
+    border: none;
+  }
+  .search-check .radio-block .radio-date > em{
+    float: left;
+    line-height: 32px;
+    color: #999;
+    margin: 0 5px;
+  }
+  .search-check .radio-block .com-check-radio {
+    font-weight: normal;
+    color: #666;
+    margin-right: 13px;
+    cursor:pointer;
+  }
+  .search-check .radio-block .com-check-radio label {
+    margin-bottom:6px;
+  }
+  .screen {
+    padding-left: 0px;
+  }
+
+</style>

+ 302 - 141
src/main/webapp/resources/view/vendor/b2b/sale/sale_make_returns.html

@@ -293,10 +293,10 @@
     <div class="com_tab" style="margin-bottom: 10px">
     <div class="com_tab" style="margin-bottom: 10px">
       <ul class="fl" style="width: 100%">
       <ul class="fl" style="width: 100%">
         <li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
         <li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
-        <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
+        <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
         <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
         <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
         <li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
         <li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
-        <li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>
+        <!--<li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>-->
         <li class="down-purchase">
         <li class="down-purchase">
           <span ng-click="exportXls()" style="cursor:pointer">
           <span ng-click="exportXls()" style="cursor:pointer">
               <i class="fa fa-file-excel-o fa-fw"></i>导出Excel
               <i class="fa fa-file-excel-o fa-fw"></i>导出Excel
@@ -308,160 +308,177 @@
       </ul>
       </ul>
     </div>
     </div>
   </div>
   </div>
-  <div class="tab_top" style="margin-bottom: 10px">
-    <ul class="fl" style="width: 100%">
-      <li ng-class="{'active': storeType=='badOut'}"><a ui-sref="sale_badOut">不良品出库单</a></li>
-      <li ng-class="{'active': storeType=='badIn'}"><a ui-sref="sale_badIn">不良品入库单</a></li>
-      <li ng-class="{'active': storeType=='accept'}"><a ui-sref="sale_accept">客户采购验收单</a></li>
-      <li ng-class="{'active': storeType=='returns'}"><a ui-sref="sale_returns">客户采购验退单</a></li>
-      <li ng-class="{'active': storeType=='makeaccept'}"><a ui-sref="sale_makeaccept">客户委外验收单</a></li>
-      <li ng-class="{'active': storeType=='makereturns'}"><a ui-sref="sale_makereturns">客户委外验退单</a></li>
-    </ul>
-  </div>
-  <div class="screen check-filter">
-    <div class="radio-block date-radio">
-      时间筛选:
-      <label class="com-check-radio">
-        <input type="radio" id="oneMonth" name="date" ng-click="autoMonth = false;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="autoMonth = false;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="autoMonth = false;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="autoMonth = true;condition.$open=!condition.$open;changeDateZone(-1)">
-        <label for="autoMonth"></label>
-        自定义
-      </label>
+
+  <div class="search-check">
+    <div class="radio-block">
+      业务:
+      <ul class="radio-btn list-inline">
+        <li><a href="#/vendor_storage?type=0">查看出库记录</a></li>
+        <li><a href="#/vendor_storage?type=2">销售出库</a></li>
+        <li ui-sref="sale_badOut">不良品出库单</li>
+        <li ui-sref="sale_accept">客户采购验收单</li>
+        <li ui-sref="sale_returns">客户采购验退单</li>
+        <li ui-sref="sale_makeaccept">客户委外验收单</li>
+        <li class="active">客户委外验退单</li>
+        <li><a href="#/vendor_storage?type=1">其它出库</a></li>
+        <!--<li ng-repeat="item in handleLink"-->
+        <!--ng-bind="item.name"-->
+        <!--ng-class="{'active': handleItem === item.id}"-->
+        <!--ng-if="item.tab === storage_tab"-->
+        <!--ng-click="toggleType(item.id)"></li>-->
+      </ul>
+
     </div>
     </div>
-    <div class="sreach fr">
-      <div ng-show="autoMonth" 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-click="openFilterDatePicker($event, condition, '$fromOpened')"
-                 ng-focus="openFilterDatePicker($event, condition, '$fromOpened')"
-                 datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-          />
-          <button class="open" ng-click="openFilterDatePicker($event, condition, '$fromOpened')"></button>
-        </div>
+    <div class="screen check-filter">
+      <div class="radio-block date-radio">
+        筛选:
+        <label class="com-check-radio">
+          <input type="radio" id="oneMonth" name="date" ng-click="autoMonth = false;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="autoMonth = false;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="autoMonth = false;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="autoMonth = true;condition.$open=!condition.$open;changeDateZone(-1)">
+          <label for="autoMonth"></label>
+          自定义
+        </label>
+      </div>
+      <div class="sreach fr">
+        <div ng-show="autoMonth" 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-click="openFilterDatePicker($event, condition, '$fromOpened')"
+                   ng-focus="openFilterDatePicker($event, condition, '$fromOpened')"
+                   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+            />
+            <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-click="openFilterDatePicker($event, condition, '$toOpened')"
-                 ng-focus="openFilterDatePicker($event, condition, '$toOpened')"
-                 datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-          />
-          <button class="open" ng-click="openFilterDatePicker($event, condition, '$toOpened')"></button>
+          <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-click="openFilterDatePicker($event, condition, '$toOpened')"
+                   ng-focus="openFilterDatePicker($event, condition, '$toOpened')"
+                   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+            />
+            <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>
-      <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>
     </div>
+
   </div>
   </div>
+
+
   <table class="order-table block" ng-table="tableParams">
   <table class="order-table block" ng-table="tableParams">
     <thead>
     <thead>
     <tr class="header">
     <tr class="header">
-      <th>产品</th>
-      <th width="120">单价</th>
-      <th width="100">验退数量</th>
-      <th width="120">批号</th>
-      <th width="140">单据信息</th>
-      <th width="70">操作</th>
+      <th width="285">日期</th>
+      <th width="285">客户</th>
+      <th width="270">流水号</th>
+      <th>操作</th>
     </tr>
     </tr>
     </thead>
     </thead>
-    <tbody ng-repeat="returns in $data">
-    <tr class="order-hd">
-      <td class="first" colspan="4">
-        <div class="order-main">
-          <span><!--<input type="checkbox" class="selector" ng-model="returns.$selected">--></span>
-          <span class="text-num text-bold"
-                title="{{::returns.date | date: 'yyyy年MM月dd日 hh:mm'}}">
-            日期:{{::returns.date | date:'yyyy-MM-dd'}}
-          </span>
-          <span title="客户名称">
-             <img src="static/img/user/images/shop_home.png" style="margin-right: 5px;">{{::returns.returnItems[0].order.enterprise.enName}}
-          </span>
-          <span>流水号:<span
-              class="text-num" ng-bind="::returns.code"></span></span>
-        </div>
-      </td>
-      <td colspan="1" class="order-sum">
-        <div class="text-ellipsis" ng-if="returns.sendCode != null"
-             style="width: 120px;" title="送货单号:{{::returns.sendCode}}">
-          <i style="color: #CC9933;" class="fa fa-truck"></i> <span
-            ng-bind="returns.sendCode"></span>
-        </div>
-      </td>
-      <td colspan="1" class="text-center">
-        <div class="operates">
-          <!-- <a href="#" class="text-muted" title="打印">
-          <i class="fa fa-print fa-lg fa-fw"></i>
-        </a> -->
-        </div>
-      </td>
-    </tr>
-    <tr class="order-bd" ng-repeat="item in returns.returnItems">
-      <td class="product" style="text-align: left">
-        <div class="text-num order-number" ng-class="{'key': item.key&&order.$showAll}" title="第{{$index + 1}}行">{{$index + 1}}</div>
-        <div class="text-num text-bold" title="{{::item.order.product.code}}">
-          <span>物料编号:{{::item.order.product.code || '-'}}</span>
-        </div>
-        <div title="{{::item.order.product.title}}">
-          <span style="color: #666 !important;">
-            物料名称:{{::item.order.product.title || '-'}}
-          </span>
-        </div>
-        <div class="text-muted" title="{{::item.order.product.spec}}" style="color: #666 !important;">
-          物料规格:{{::item.order.product.spec || '-'}}
-        </div>
-        <div class="text-bold text-inverse" ng-if="item.order.factory">送货工厂:<span ng-bind="::item.order.factory"></span></div>
+
+    <tbody ng-repeat="returns in $data" ng-class="{'toggle-mode': returns.seleted}" class="outBody">
+    <tr class="outTr">
+      <td class="text-num" title="{{::returns.date | date:'yyyy年MM月dd'}}" >
+        {{::returns.date | date:'yyyy年MM月dd'}}
       </td>
       </td>
-      <td>
-        <div ng-if="!isUser" class="text-num" title="{{::item.orderPrice}}">
-          <span ng-bind="::currency(returns.currency)"></span><span
-            ng-bind="::item.orderPrice | number:6"></span>
-        </div>
-        <div class="text-muted" title="{{item.taxrate}}%">
-          <br> 税率:<span ng-bind="::item.taxrate + '%'"
-                        class="text-num"></span>
-        </div>
+      <td title="{{::returns.returnItems[0].order.enterprise.enName}}">
+        {{::returns.returnItems[0].order.enterprise.enName}}
       </td>
       </td>
-      <td class="text-center">
-        <div class="text-num text-bold" title="{{item.qty}}"
-             ng-bind="item.qty"></div>
-        <div class="text-muted" ng-bind="item.order.product.unit"></div>
+      <td title="{{::returns.code}}"  class="text-num">
+        {{::returns.code}}
       </td>
       </td>
-      <td class="text-center br-l">
-        <div class="text-num" ng-bind="item.batchCode"></div>
+      <td style="cursor: pointer;">
+        <span class="btn-toggle" ng-show="returns.seleted" ng-click="returns.seleted = !returns.seleted">收起 <i class="fa fa-angle-up"></i></span>
+        <span ng-click="unfoldClick($data, returns)" class="btn-toggle" ng-show="!returns.seleted">展开 <i class="fa fa-angle-down"></i></span>
       </td>
       </td>
-      <td class="br-l" colspan="2">
-        <div>
-          单据编号:<a  style="color: #5078cb;" class="order-detail" title="查看采购单详情" ui-sref="sale_makeorder_detail({id:item.order.id})"
-                  ng-bind="::item.order.code"></a>
-        </div>
-        <div>
-          &nbsp;&nbsp;&nbsp;&nbsp;数量:<span ng-bind="::item.order.qty"></span>
+    </tr>
+    <tr ng-if="returns.seleted">
+      <td colspan="4">
+        <div class="sub-table-head">
+          <table class="wanted-sub-tab table">
+            <thead>
+            <tr>
+              <th width="60">序号</th>
+              <th width="406">产品</th>
+              <th width="120">单价</th>
+              <th width="100">验退数量</th>
+              <th width="120">批号</th>
+              <th width="230">单据信息</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr  ng-repeat="item in returns.returnItems">
+              <td style="font-size: 14px;text-align: center">
+                {{$index + 1}}
+              </td>
+              <td class="product" style="text-align: left">
+                <div class="text-num" title="{{::item.order.product.code}}">
+                  <span style="color: #333 !important;">物料编号:{{::item.order.product.code || '-'}}</span>
+                </div>
+                <div title="{{::item.order.product.title}}">
+                  <span style="color: #333 !important;">
+                    物料名称:{{::item.order.product.title || '-'}}
+                  </span>
+                </div>
+                <div class="text-muted" title="{{::item.order.product.spec}}" style="color: #333 !important;">
+                  物料规格:{{::item.order.product.spec || '-'}}
+                </div>
+                <div class="text-bold text-inverse" ng-if="item.order.factory">送货工厂:<span ng-bind="::item.order.factory"></span></div>
+              </td>
+              <td>
+                <div ng-if="!isUser" class="text-num" title="{{::item.orderPrice}}">
+                  <span ng-bind="::currency(returns.currency)"></span><span
+                        ng-bind="::item.orderPrice | number:6"></span>
+                </div>
+                <div class="text-num" title="{{item.taxrate}}%">税率:<span ng-bind="::item.taxrate + '%'"></span>
+                </div>
+              </td>
+              <td class="text-center">
+                <div class="text-num" title="{{item.qty}}"
+                     ng-bind="item.qty"></div>
+                <div class="text-num" ng-bind="item.order.product.unit"></div>
+              </td>
+              <td class="text-center br-l">
+                <div class="text-num" ng-bind="item.batchCode"></div>
+              </td>
+              <td class="br-l" colspan="2">
+                <div>
+                  单据编号:<a  style="color: #5078cb;" class="order-detail" title="查看采购单详情" ui-sref="sale_makeorder_detail({id:item.order.id})"
+                           ng-bind="::item.order.code"></a>
+                </div>
+                <div>数量:<span ng-bind="::item.order.qty"></span>
+                </div>
+              </td>
+            </tr>
+            </tbody>
+          </table>
         </div>
         </div>
-      </td>
     </tr>
     </tr>
     </tbody>
     </tbody>
     <tbody ng-if="$data.length === 0">
     <tbody ng-if="$data.length === 0">
@@ -481,7 +498,151 @@
     </tr>
     </tr>
     </tbody>
     </tbody>
   </table>
   </table>
+
+
   <div ng-if="infoCommon.totalElement > 0" class="text-mns text-right" ng-class="infoCommon.totalElement >= 20 ? '': 'Boom18'">
   <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;条
     显示&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>
+</div>
+<style>
+  .order-table .header>th {
+    height: 50px;
+  }
+  .toggle-mode {
+    border-color: #3f84f6 !important;
+    border-width: 2px !important;
+  }
+  .order-table tbody.outBody tr.outTr td {
+    padding: 0 5px;
+    line-height: 50px;
+    height: 50px;
+    vertical-align: middle;
+    text-align: center;
+    font-size: 14px;
+    border-bottom: 1px solid #e9e9e9;
+    white-space: nowrap;
+  }
+  .table>thead>tr>th {
+    vertical-align: middle;
+    font-size: 14px;
+    color: #323232;
+
+  }
+  .order-table tbody.toggle-mode >tr:first-child {
+    background: #f5f5f5;
+  }
+  .order-table tbody>tr>td span {
+    vertical-align: middle;
+    width: 100%;
+    /*display: inline-block;*/
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
+  .order-table .btn-toggle {
+    text-align: center;
+    font-size: 14px;
+    color: #5078cb;
+    cursor: pointer;
+  }
+  /*search部分*/
+  .search-check{
+    padding: 15px 20px 5px;
+    height:auto;
+  }
+
+  .search-check .search .form-control{
+    width: 300px;
+    float: left;
+    height: 34px;
+    border-radius: 2px;
+    box-shadow: none;
+    border:1px solid #5078cb;
+  }
+
+  .search-check .search button{
+    background: #5078cb;
+    border: #5078cb 1px solid;
+    border-left: none;
+    color: #fff;
+    border-radius: 2px;
+  }
+
+  .search-check .radio-block {
+    line-height: 36px;
+    margin-bottom:10px;
+    font-size: 14px;
+  }
+  .search-check .radio-block .radio-btn{
+    display:inline-block;
+    position: relative;
+    top: 2px;
+  }
+  .search-check .radio-block .radio-btn li{
+    margin: 0 3px;
+    font-size: 14px;
+    line-height: 34px;
+    padding:0 10px;
+    height:34px;
+    border:1px solid #bfbfbf;
+    border-radius:3px;
+    cursor:pointer;
+  }
+  .search-check .radio-block .radio-btn li a{
+    color: #323232
+  }
+  .search-check .radio-block .radio-btn li:hover {
+    border:1px solid #5078cb;
+    color:#5078cb;
+  }
+  .search-check .radio-block .radio-btn li:hover a{
+    color:#5078cb;
+  }
+  .search-check .radio-block .radio-btn li.active{
+    border:1px solid #5078cb;
+    color:#5078cb;
+  }
+  .search-check .radio-block .radio-date{
+    display:inline-block;
+    vertical-align: middle;
+  }
+  .search-check .radio-block .radio-date .btn-default{
+    border: none;
+  }
+  .search-check .radio-block .radio-date .data-input{
+    float:left;
+    position:relative;
+  }
+  .search-check .radio-block .radio-date .data-input input{
+    width:120px;
+  }
+  .search-check .radio-block .radio-date .data-input button.open {
+    position: absolute;
+    right: 2px;
+    top: 2px;
+    width: 20px;
+    height: 30px;
+    background: url(static/img/user/images/xiala.png) right no-repeat #fff !important;
+    background-position-x: 100% !important;
+    border: none;
+  }
+  .search-check .radio-block .radio-date > em{
+    float: left;
+    line-height: 32px;
+    color: #999;
+    margin: 0 5px;
+  }
+  .search-check .radio-block .com-check-radio {
+    font-weight: normal;
+    color: #666;
+    margin-right: 13px;
+    cursor:pointer;
+  }
+  .search-check .radio-block .com-check-radio label {
+    margin-bottom:6px;
+  }
+  .screen {
+    padding-left: 0px;
+  }
+
+</style>

+ 311 - 150
src/main/webapp/resources/view/vendor/b2b/sale/sale_returns.html

@@ -2,7 +2,7 @@
   .order-table .header>th {
   .order-table .header>th {
     height: 38px;
     height: 38px;
     text-align: center;
     text-align: center;
-    background: #f5f5f5;
+    /*background: #f5f5f5;*/
     border-top: 1px solid #e8e8e8;
     border-top: 1px solid #e8e8e8;
     border-bottom: 1px solid #e8e8e8;
     border-bottom: 1px solid #e8e8e8;
   }
   }
@@ -292,10 +292,10 @@
     <div class="com_tab" style="margin-bottom: 10px">
     <div class="com_tab" style="margin-bottom: 10px">
       <ul class="fl" style="width: 100%">
       <ul class="fl" style="width: 100%">
         <li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
         <li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
-        <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
+        <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
         <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
         <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
         <li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
         <li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
-        <li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>
+        <!--<li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>-->
         <li class="down-purchase">
         <li class="down-purchase">
           <span ng-click="exportXls()" style="cursor:pointer">
           <span ng-click="exportXls()" style="cursor:pointer">
               <i class="fa fa-file-excel-o fa-fw"></i>导出Excel
               <i class="fa fa-file-excel-o fa-fw"></i>导出Excel
@@ -307,170 +307,188 @@
       </ul>
       </ul>
     </div>
     </div>
   </div>
   </div>
-  <div class="tab_top" style="margin-bottom: 10px">
-    <ul class="fl" style="width: 100%">
-      <li ng-class="{'active': storeType=='badOut'}"><a ui-sref="sale_badOut">不良品出库单</a></li>
-      <li ng-class="{'active': storeType=='badIn'}"><a ui-sref="sale_badIn">不良品入库单</a></li>
-      <li ng-class="{'active': storeType=='accept'}"><a ui-sref="sale_accept">客户采购验收单</a></li>
-      <li ng-class="{'active': storeType=='returns'}"><a ui-sref="sale_returns">客户采购验退单</a></li>
-      <li ng-class="{'active': storeType=='makeaccept'}"><a ui-sref="sale_makeaccept">客户委外验收单</a></li>
-      <li ng-class="{'active': storeType=='makereturns'}"><a ui-sref="sale_makereturns">客户委外验退单</a></li>
-    </ul>
-  </div>
-  <div class="screen check-filter">
-    <div class="radio-block date-radio">
-      时间筛选:
-      <label class="com-check-radio">
-        <input type="radio" id="oneMonth" name="date" ng-click="autoMonth = false;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="autoMonth = false;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="autoMonth = false;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="autoMonth = true;condition.$open=!condition.$open;changeDateZone(-1)">
-        <label for="autoMonth"></label>
-        自定义
-      </label>
+  <div class="search-check">
+    <div class="radio-block">
+      业务:
+      <ul class="radio-btn list-inline">
+        <li><a href="#/vendor_storage?type=0">查看出库记录</a></li>
+        <li><a href="#/vendor_storage?type=2">销售出库</a></li>
+        <li ui-sref="sale_badOut" >不良品出库单</li>
+        <li ui-sref="sale_accept">客户采购验收单</li>
+        <li class="active">客户采购验退单</li>
+        <li ui-sref="sale_makeaccept">客户委外验收单</li>
+        <li ui-sref="sale_makereturns">客户委外验退单</li>
+        <li><a href="#/vendor_storage?type=1">其它出库</a></li>
+        <!--<li ng-repeat="item in handleLink"-->
+        <!--ng-bind="item.name"-->
+        <!--ng-class="{'active': handleItem === item.id}"-->
+        <!--ng-if="item.tab === storage_tab"-->
+        <!--ng-click="toggleType(item.id)"></li>-->
+      </ul>
+
     </div>
     </div>
-    <div class="sreach fr">
-      <div ng-show="autoMonth" 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-click="openFilterDatePicker($event, condition, '$fromOpened')"
-                 ng-focus="openFilterDatePicker($event, condition, '$fromOpened')"
-                 datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-          />
-          <button class="open" ng-click="openFilterDatePicker($event, condition, '$fromOpened')"></button>
-        </div>
+    <div class="screen check-filter">
+      <div class="radio-block date-radio">
+        筛选:
+        <label class="com-check-radio">
+          <input type="radio" id="oneMonth" name="date" ng-click="autoMonth = false;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="autoMonth = false;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="autoMonth = false;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="autoMonth = true;condition.$open=!condition.$open;changeDateZone(-1)">
+          <label for="autoMonth"></label>
+          自定义
+        </label>
+      </div>
+      <div class="sreach fr">
+        <div ng-show="autoMonth" 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-click="openFilterDatePicker($event, condition, '$fromOpened')"
+                   ng-focus="openFilterDatePicker($event, condition, '$fromOpened')"
+                   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+            />
+            <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-click="openFilterDatePicker($event, condition, '$toOpened')"
-                 ng-focus="openFilterDatePicker($event, condition, '$toOpened')"
-                 datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-          />
-          <button class="open" ng-click="openFilterDatePicker($event, condition, '$toOpened')"></button>
+          <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-click="openFilterDatePicker($event, condition, '$toOpened')"
+                   ng-focus="openFilterDatePicker($event, condition, '$toOpened')"
+                   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+            />
+            <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>
-      <div class="sreach-input fr">
-        <input type="search" placeholder="单据编号/客户名称/物料名称" class="form-control" ng-model="keyword" ng-search="onSearch()"/>
-        <a class="seek" href="javascript:void(0)" ng-click="onSearch()">搜索</a>
       </div>
       </div>
     </div>
     </div>
   </div>
   </div>
+
   <table class="order-table block" ng-table="tableParams">
   <table class="order-table block" ng-table="tableParams">
     <thead>
     <thead>
     <tr class="header">
     <tr class="header">
-      <th>产品</th>
-      <th width="120">单价</th>
-      <th width="100">验退数量</th>
-      <th width="120">批号</th>
-      <th width="140">单据信息</th>
-      <th width="70">操作</th>
+      <th width="175">日期</th>
+      <th width="255">客户</th>
+      <th width="200">流水号</th>
+      <th width="210">送货单号</th>
+      <th>操作</th>
     </tr>
     </tr>
-    <!--<tr class="sep-row">-->
-      <!--<td colspan="6"></td>-->
-    <!--</tr>-->
     </thead>
     </thead>
-    <tbody ng-repeat="returns in $data">
-    <tr class="order-hd">
-      <td class="first" colspan="4">
-        <div class="order-main">
-          <!--<span> <input type="checkbox" class="selector"
-            ng-model="returns.$selected">
-          </span> --><span class="text-num text-bold"
-                             title="{{::returns.date | date: 'yyyy年MM月dd日 hh:mm'}}"
-                             >
-          日期:{{::returns.date | date:'yyyy-MM-dd'}}
-        </span>
-          <span title="客户名称" ng-if="returns.returnItems[0].orderItem">
-            <img src="static/img/user/images/shop_home.png" style="margin-right: 5px;"> {{::returns.returnItems[0].orderItem.order.enterprise.enName}}
-          </span>
-          <span title="客户名称" ng-if="!returns.returnItems[0].orderItem"><img src="static/img/user/images/shop_home.png" style="margin-right: 5px;"> {{returns.enName}}</span>
-          <span>流水号:<a title="查看详情"
-                       class="text-num order-detail" ng-bind="::returns.code" ui-sref="sale_return_detail({id: returns.id})"></a></span>
-        </div>
-      </td>
-      <td colspan="1" class="order-sum">
-        <div class="text-ellipsis" ng-if="returns.sendCode != null" title="送货单号:{{::returns.sendCode}}">
-          <i style="color: #CC9933;" class="fa fa-truck"></i> <span
-            ng-bind="returns.sendCode"></span>
-        </div>
+
+    <tbody ng-repeat="returns in $data" ng-class="{'toggle-mode': returns.seleted}" class="outBody">
+    <tr class="outTr">
+      <td class="text-num" title="{{::returns.date | date: 'yyyy年MM月dd日'}}" >
+        {{::returns.date | date: 'yyyy年MM月dd日'}}
       </td>
       </td>
-      <td colspan="1" class="text-center">
-        <div class="operates">
-          <!-- <a href="#" class="text-muted" title="打印">
-          <i class="fa fa-print fa-lg fa-fw"></i>
-        </a> -->
-        </div>
+      <td ng-if="returns.returnItems[0].orderItem" title="{{::returns.returnItems[0].orderItem.order.enterprise.enName}}">
+        {{::returns.returnItems[0].orderItem.order.enterprise.enName}}
       </td>
       </td>
-    </tr>
-    <tr class="order-bd" ng-repeat="item in returns.returnItems">
-      <td class="product" style="text-align: left">
-        <div class="text-num order-number" ng-class="{'key': item.key&&order.$showAll}" title="第{{$index + 1}}行">{{$index + 1}}</div>
-        <div class="text-num text-bold">
-          <span>
-            物料编号:{{::item.product.code|| '-'}}
-          </span>
-        </div>
-        <div>
-          <span title="{{::item.product.title}}" style="color: #666 !important;">
-            物料名称:{{::item.product.title|| '-'}}
-          </span>
-        </div>
-        <div class="text-muted" title="{{::item.product.spec}}" style="color: #666 !important;">
-          物料规格:{{::item.product.spec|| '-'}}
-        </div>
-        <div class="text-bold text-inverse" title="送货工厂"
-             ng-if="item.orderItem.factory">
-          送货工厂:<span ng-bind="::item.orderItem.factory"></span>
-        </div>
+      <td ng-if="!returns.returnItems[0].orderItem" title="{{returns.enName}}">
+        {{returns.enName}}
       </td>
       </td>
-      <td>
-        <div ng-if="!isUser" class="text-num" title="{{::item.orderPrice}}">
-          <span ng-bind="::currency(returns.currency)"></span><span
-            ng-bind="::item.orderPrice | number:6"></span>
-        </div>
-        <div class="text-muted" title="{{item.taxrate}}%">
-          <br> 税率:<span ng-bind="::item.taxrate + '%'" class="text-num"></span>
-        </div>
+      <td title="{{::returns.code}}"  class="text-num">
+        <a class="text-num order-detail" title="查看详情" ng-bind="returns.code" ui-sref="sale_return_detail({id: returns.id})"></a>
       </td>
       </td>
-      <td class="text-center">
-        <div class="text-num text-bold" title="{{::item.qty}}"
-             ng-bind="::item.qty"></div>
-        <div class="::text-muted" ng-bind="::item.orderItem.product.unit"></div>
+      <td title="{{returns.sendCode}}">
+        {{returns.sendCode}}
       </td>
       </td>
-      <td class="text-center br-l">
-        <div class="text-num" ng-bind="::item.batchCode"></div>
+      <td style="cursor: pointer;">
+        <span class="btn-toggle" ng-show="returns.seleted" ng-click="returns.seleted = !returns.seleted">收起 <i class="fa fa-angle-up"></i></span>
+        <span ng-click="unfoldClick($data, returns)" class="btn-toggle" ng-show="!returns.seleted">展开 <i class="fa fa-angle-down"></i></span>
       </td>
       </td>
-      <td class="br-l" colspan="2">
-        <div>
-          单据编号:<a  style="color: #5078cb;"  class="order-detail" title="查看采购单详情" ui-sref="sale_order_detail({id:item.orderItem.order.id})"
-                  ng-bind="::item.orderItem.order.code"></a>
-        </div>
-        <div>
-          第 <span ng-bind="::item.orderItem.number"></span> 行
-          &nbsp;&nbsp;&nbsp;&nbsp;数量:<span ng-bind="::item.orderItem.qty"></span>
+    </tr>
+    <tr ng-if="returns.seleted">
+      <td colspan="5">
+        <div class="sub-table-head">
+          <table class="wanted-sub-tab table">
+            <thead>
+            <tr>
+              <th width="60">序号</th>
+              <th width="406">产品</th>
+              <th width="120">单价</th>
+              <th width="100">验退数量</th>
+              <th width="120">批号</th>
+              <th width="230">单据信息</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr  ng-repeat="item in returns.returnItems">
+              <td style="font-size: 14px;text-align: center">
+                {{$index + 1}}
+              </td>
+              <td class="product" style="text-align: left">
+                <div class="text-num">
+                  <span  style="color: #333 !important;">
+                    物料编号:{{::item.product.code|| '-'}}
+                  </span>
+                </div>
+                <div>
+                  <span title="{{::item.product.title}}" style="color: #333 !important;">
+                    物料名称:{{::item.product.title|| '-'}}
+                  </span>
+                </div>
+                <div class="text-muted" title="{{::item.product.spec}}" style="color: #333 !important;">
+                  物料规格:{{::item.product.spec|| '-'}}
+                </div>
+                <div class="text-bold text-inverse" title="送货工厂"
+                     ng-if="item.orderItem.factory">
+                  送货工厂:<span ng-bind="::item.orderItem.factory"></span>
+                </div>
+              </td>
+              <td>
+                <div ng-if="!isUser" class="text-num" title="{{::item.orderPrice}}">
+                  <span ng-bind="::currency(returns.currency)"></span><span
+                        ng-bind="::item.orderPrice | number:6"></span>
+                </div>
+                <div class="text-num" title="{{item.taxrate}}%">税率 :<span ng-bind="::item.taxrate + '%'" class="text-num"></span>
+                </div>
+              </td>
+              <td class="text-center">
+                <div class="text-num" title="{{::item.qty}}"
+                     ng-bind="::item.qty"></div>
+                <div class="::text-num" ng-bind="::item.orderItem.product.unit"></div>
+              </td>
+              <td class="text-center br-l">
+                <div class="text-num" ng-bind="::item.batchCode"></div>
+              </td>
+              <td class="br-l" colspan="2">
+                <div>
+                  单据编号:<a  style="color: #5078cb;"  class="order-detail" title="查看采购单详情" ui-sref="sale_order_detail({id:item.orderItem.order.id})"
+                           ng-bind="::item.orderItem.order.code"></a>
+                </div>
+                <div>
+                  第 <span ng-bind="::item.orderItem.number"></span> 行
+                  &nbsp;&nbsp;&nbsp;&nbsp;数量:<span ng-bind="::item.orderItem.qty"></span>
+                </div>
+              </td>
+            </tr>
+            </tbody>
+          </table>
         </div>
         </div>
-      </td>
     </tr>
     </tr>
     </tbody>
     </tbody>
     <tbody ng-if="$data.length === 0">
     <tbody ng-if="$data.length === 0">
@@ -490,7 +508,150 @@
     </tr>
     </tr>
     </tbody>
     </tbody>
   </table>
   </table>
+
   <div ng-if="infoCommon.totalElement > 0" class="text-mns text-right" ng-class="infoCommon.totalElement >= 20 ? '': 'Boom18'">
   <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;条
     显示&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>
+</div>
+<style>
+  .order-table .header>th {
+    height: 50px;
+  }
+  .toggle-mode {
+    border-color: #3f84f6 !important;
+    border-width: 2px !important;
+  }
+  .order-table tbody.outBody tr.outTr td {
+    padding: 0 5px;
+    line-height: 50px;
+    height: 50px;
+    vertical-align: middle;
+    text-align: center;
+    font-size: 14px;
+    border-bottom: 1px solid #e9e9e9;
+    white-space: nowrap;
+  }
+  .table>thead>tr>th {
+    vertical-align: middle;
+    font-size: 14px;
+    color: #323232;
+
+  }
+  .order-table tbody.toggle-mode >tr:first-child {
+    background: #f5f5f5;
+  }
+  .order-table tbody>tr>td span {
+    vertical-align: middle;
+    width: 100%;
+    /*display: inline-block;*/
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
+  .order-table .btn-toggle {
+    text-align: center;
+    font-size: 14px;
+    color: #5078cb;
+    cursor: pointer;
+  }
+  /*search部分*/
+  .search-check{
+    padding: 15px 20px 5px;
+    height:auto;
+  }
+
+  .search-check .search .form-control{
+    width: 300px;
+    float: left;
+    height: 34px;
+    border-radius: 2px;
+    box-shadow: none;
+    border:1px solid #5078cb;
+  }
+
+  .search-check .search button{
+    background: #5078cb;
+    border: #5078cb 1px solid;
+    border-left: none;
+    color: #fff;
+    border-radius: 2px;
+  }
+
+  .search-check .radio-block {
+    line-height: 36px;
+    margin-bottom:10px;
+    font-size: 14px;
+  }
+  .search-check .radio-block .radio-btn{
+    display:inline-block;
+    position: relative;
+    top: 2px;
+  }
+  .search-check .radio-block .radio-btn li{
+    margin: 0 3px;
+    font-size: 14px;
+    line-height: 34px;
+    padding:0 10px;
+    height:34px;
+    border:1px solid #bfbfbf;
+    border-radius:3px;
+    cursor:pointer;
+  }
+  .search-check .radio-block .radio-btn li a{
+    color: #323232
+  }
+  .search-check .radio-block .radio-btn li:hover {
+    border:1px solid #5078cb;
+    color:#5078cb;
+  }
+  .search-check .radio-block .radio-btn li:hover a{
+    color:#5078cb;
+  }
+  .search-check .radio-block .radio-btn li.active{
+    border:1px solid #5078cb;
+    color:#5078cb;
+  }
+  .search-check .radio-block .radio-date{
+    display:inline-block;
+    vertical-align: middle;
+  }
+  .search-check .radio-block .radio-date .btn-default{
+    border: none;
+  }
+  .search-check .radio-block .radio-date .data-input{
+    float:left;
+    position:relative;
+  }
+  .search-check .radio-block .radio-date .data-input input{
+    width:120px;
+  }
+  .search-check .radio-block .radio-date .data-input button.open {
+    position: absolute;
+    right: 2px;
+    top: 2px;
+    width: 20px;
+    height: 30px;
+    background: url(static/img/user/images/xiala.png) right no-repeat #fff !important;
+    background-position-x: 100% !important;
+    border: none;
+  }
+  .search-check .radio-block .radio-date > em{
+    float: left;
+    line-height: 32px;
+    color: #999;
+    margin: 0 5px;
+  }
+  .search-check .radio-block .com-check-radio {
+    font-weight: normal;
+    color: #666;
+    margin-right: 13px;
+    cursor:pointer;
+  }
+  .search-check .radio-block .com-check-radio label {
+    margin-bottom:6px;
+  }
+  .screen {
+    padding-left: 0px;
+  }
+
+</style>

+ 2 - 2
src/main/webapp/resources/view/vendor/forstore/vendor_material.html

@@ -1059,10 +1059,10 @@
 		<div class="com_tab" style="margin-bottom: 10px">
 		<div class="com_tab" style="margin-bottom: 10px">
 			<ul class="fl" style="width: 100%">
 			<ul class="fl" style="width: 100%">
 				<li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
 				<li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
-				<li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
+				<li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
 				<li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
 				<li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
 				<li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
 				<li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
-				<li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>
+				<!--<li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>-->
 			</ul>
 			</ul>
 		</div>
 		</div>
 		<div class="com_tab com_tab2" ng-if="!isPcbStore" style="margin-bottom: 0px">
 		<div class="com_tab com_tab2" ng-if="!isPcbStore" style="margin-bottom: 0px">

+ 36 - 24
src/main/webapp/resources/view/vendor/forstore/vendor_storage.html

@@ -804,7 +804,7 @@
         top: 2px;
         top: 2px;
     }
     }
     .search-check .radio-block .radio-btn li{
     .search-check .radio-block .radio-btn li{
-        margin: 0 10px;
+        margin: 0 3px;
         font-size: 14px;
         font-size: 14px;
         line-height: 34px;
         line-height: 34px;
         padding:0 10px;
         padding:0 10px;
@@ -1145,7 +1145,7 @@
 <div class="user_right fr" ng-click="clearOtherData()">
 <div class="user_right fr" ng-click="clearOtherData()">
     <!--货品管理-->
     <!--货品管理-->
     <div class="pro_management device">
     <div class="pro_management device">
-        <div class="com_tab">
+        <div class="com_tab" style="margin-bottom: 10px">
             <ul class="fl" style="width: 100%">
             <ul class="fl" style="width: 100%">
                 <!--<li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">公司产品库</a></li>-->
                 <!--<li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">公司产品库</a></li>-->
                 <!--<li ng-class="{'active': tab == 'material_person'}"><a ui-sref="vendor_material_person">个人产品库</a></li>-->
                 <!--<li ng-class="{'active': tab == 'material_person'}"><a ui-sref="vendor_material_person">个人产品库</a></li>-->
@@ -1156,18 +1156,31 @@
                 <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
                 <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
                 <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
                 <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
                 <li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
                 <li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
-                <li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>
+                <!--<li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>-->
             </ul>
             </ul>
         </div>
         </div>
-        <!--<div class="com_tab com_tab2" style="margin-bottom: 10px">-->
-            <!--<ul class="fl distance" style="width: 100%">-->
-                <!--<li ng-class="{active : storage_tab == 'inBound'}"  ng-click="toggleStorage('inBound')" title="入库"><a href="" class="standard">入库</a></li>-->
-                <!--<li ng-class="{active : storage_tab =='outBound'}" ng-click="toggleStorage('outBound')" title="出库"><a href="" class="standard">出库</a></li>-->
-            <!--</ul>-->
-        <!--</div>-->
         <div class="search-check">
         <div class="search-check">
-            <div class="radio-block" ng-if="handleItem !== 1">
-                更多筛选:
+            <div class="radio-block">
+                业务:
+                <ul class="radio-btn list-inline">
+                    <li ng-class="{'active': handleItem === 0}" ng-click="toggleType(0)" ng-if="'outBound' === storage_tab">查看出库记录</li>
+                    <li ng-class="{'active': handleItem === 2}" ng-click="toggleType(2)" ng-if="'outBound' === storage_tab">销售出库</li>
+                    <li ui-sref="sale_badOut">不良品出库单</li>
+                    <li ui-sref="sale_accept">客户采购验收单</li>
+                    <li ui-sref="sale_returns">客户采购验退单</li>
+                    <li ui-sref="sale_makeaccept">客户委外验收单</li>
+                    <li ui-sref="sale_makereturns">客户委外验退单</li>
+                    <li ng-class="{'active': handleItem === 1}" ng-click="toggleType(1)" ng-if="'outBound' === storage_tab">其它出库</li>
+                    <!--<li ng-repeat="item in handleLink"-->
+                        <!--ng-bind="item.name"-->
+                        <!--ng-class="{'active': handleItem === item.id}"-->
+                        <!--ng-if="item.tab === storage_tab"-->
+                        <!--ng-click="toggleType(item.id)"></li>-->
+                </ul>
+
+            </div>
+            <div class="radio-block" ng-if="handleItem !== 1" style="margin-top: 20px">
+                筛选:
                 <label class="com-check-radio">
                 <label class="com-check-radio">
                     <input type="radio" id="oneMonth" name="date" ng-click="setFilters('dateArea', 'oneMonth')" ng-checked="dateArea == 'oneMonth'">
                     <input type="radio" id="oneMonth" name="date" ng-click="setFilters('dateArea', 'oneMonth')" ng-checked="dateArea == 'oneMonth'">
                     <label for="oneMonth"></label>
                     <label for="oneMonth"></label>
@@ -1214,23 +1227,19 @@
                         <button class="open" ng-click="openDatePicker($event, condition, 1)"></button>
                         <button class="open" ng-click="openDatePicker($event, condition, 1)"></button>
                     </div>
                     </div>
                 </div>
                 </div>
-            </div>
-            <div class="radio-block">
-                更多操作:
-                <ul class="radio-btn list-inline">
-                    <li ng-repeat="item in handleLink"
-                        ng-bind="item.name"
-                        ng-class="{'active': handleItem === item.id}"
-                        ng-if="item.tab === storage_tab"
-                        ng-click="toggleType(item.id)"></li>
-                </ul>
                 <div class="search fr check" ng-if="handleItem !== 1">
                 <div class="search fr check" ng-if="handleItem !== 1">
                     <input type="text" class="form-control" ng-model="keyword" ng-search="onSearch(keyword)" placeholder="{{storage_tab =='outBound' ? ( handleItem === 0 ? '出库单号/买家名称':'订单号/买家名称') : ( handleItem === 0 ? '入库单号/卖家名称':'发货单/卖家名称')}}"/>
                     <input type="text" class="form-control" ng-model="keyword" ng-search="onSearch(keyword)" placeholder="{{storage_tab =='outBound' ? ( handleItem === 0 ? '出库单号/买家名称':'订单号/买家名称') : ( handleItem === 0 ? '入库单号/卖家名称':'发货单/卖家名称')}}"/>
                     <button ng-click="onSearch(keyword)" style="float: left;">搜索</button>
                     <button ng-click="onSearch(keyword)" style="float: left;">搜索</button>
                 </div>
                 </div>
             </div>
             </div>
-        </div>
 
 
+        </div>
+        <!--<div class="com_tab com_tab2" style="margin-bottom: 10px">-->
+            <!--<ul class="fl distance" style="width: 100%">-->
+                <!--<li ng-class="{active : storage_tab == 'inBound'}"  ng-click="toggleStorage('inBound')" title="入库"><a href="" class="standard">入库</a></li>-->
+                <!--<li ng-class="{active : storage_tab =='outBound'}" ng-click="toggleStorage('outBound')" title="出库"><a href="" class="standard">出库</a></li>-->
+            <!--</ul>-->
+        <!--</div>-->
         <div class="wanted_list">
         <div class="wanted_list">
             <table class="wanted-tab table" ng-table="storageTableParams">
             <table class="wanted-tab table" ng-table="storageTableParams">
                 <thead>
                 <thead>
@@ -1396,8 +1405,8 @@
                             <span>物流公司 :&nbsp;</span>
                             <span>物流公司 :&nbsp;</span>
                             <span class="input-ul">
                             <span class="input-ul">
                                 <input id="logistics-input" type="text" class="form-control select-adder" ng-focus="getItemFocus()"
                                 <input id="logistics-input" type="text" class="form-control select-adder" ng-focus="getItemFocus()"
-                                        ng-blur="onItemBlur()" ng-keydown="onKeyup()" ng-model="logistics.companyName" placeholder="请选择物流公司" autocomplete="off"
-                                        maxlength="15" readonly="readonly">
+                                       ng-blur="onItemBlur()" ng-keydown="onKeyup()" ng-model="logistics.companyName" placeholder="请选择物流公司" autocomplete="off"
+                                       maxlength="15" readonly="readonly">
                                 <div ng-if="showCompanyName">
                                 <div ng-if="showCompanyName">
                                   <ul id="ulContent" class="dropdown-menu">
                                   <ul id="ulContent" class="dropdown-menu">
                                     <li ng-click="showDefaultText()">请选择物流公司</li>
                                     <li ng-click="showDefaultText()">请选择物流公司</li>
@@ -1493,6 +1502,9 @@
                 </div>
                 </div>
             </div>
             </div>
         </div>
         </div>
+
+
+
     </div>
     </div>
 </div>
 </div>
 
 

+ 2 - 2
src/main/webapp/resources/view/vendor/forstore/vendor_undercarriage.html

@@ -607,10 +607,10 @@
                 <!--<li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出入库</a></li>-->
                 <!--<li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出入库</a></li>-->
                 <!--<li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架历史</a></li>-->
                 <!--<li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架历史</a></li>-->
                 <li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
                 <li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
-                <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
+                <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
                 <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
                 <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
                 <li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
                 <li ng-if="isPcbStore"><a ui-sref="vendor_upload">产品导入</a></li>
-                <li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>
+                <!--<li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>-->
             </ul>
             </ul>
         </div>
         </div>
         <div class="search-check">
         <div class="search-check">

+ 2 - 2
src/main/webapp/resources/view/vendor/forstore/vendor_upload.html

@@ -543,10 +543,10 @@
                 <!--<li><a ui-sref="vendor_storage">出入库</a></li>-->
                 <!--<li><a ui-sref="vendor_storage">出入库</a></li>-->
                 <!--<li><a ui-sref="vendor_undercarriage">上下架历史</a></li>-->
                 <!--<li><a ui-sref="vendor_undercarriage">上下架历史</a></li>-->
                 <li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
                 <li ng-class="{'active': tab == 'material'}"><a ui-sref="vendor_material">产品库</a></li>
-                <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
+                <li ng-class="{'active': tab == 'storage'}"><a ui-sref="vendor_storage">出库</a></li>
                 <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
                 <li ng-class="{'active': tab == 'undercarriage'}"><a ui-sref="vendor_undercarriage">上下架记录</a></li>
                 <li class="active"><a ui-sref="vendor_upload">产品导入</a></li>
                 <li class="active"><a ui-sref="vendor_upload">产品导入</a></li>
-                <li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>
+                <!--<li ng-class="{'active': tab == 'B2b'}"><a ui-sref="sale_badOut">B2B客户出入库</a></li>-->
             </ul>
             </ul>
         </div>
         </div>
         <div class="remind-line" ng-show="$$productOn.tab == 'bathOn' && showTip"><span class="fl">导入企业库的产品同时会进行上架销售并展示在店铺</span><a ng-click="closeTip()" class="fr">&times;</a></div>
         <div class="remind-line" ng-show="$$productOn.tab == 'bathOn' && showTip"><span class="fl">导入企业库的产品同时会进行上架销售并展示在店铺</span><a ng-click="closeTip()" class="fr">&times;</a></div>