Browse Source

买家采购购物车

wangcz 8 years ago
parent
commit
aad2ac86ef

+ 40 - 0
src/main/webapp/resources/css/b2bCommon.css

@@ -1,3 +1,43 @@
+/** 页面头部  **/
+#b2b-box{
+    box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    -o-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    border-radius: 5px;
+    /* min-height: 1066px; */
+    background: #fff;
+    width: 1026px;
+    font-size: 14px;
+}
+
+#b2b-box .pub-com_head, .com_head {
+    width: 100%;
+    height: 35px;
+    line-height: 35px;
+    background: #5078cb;
+    border-radius: 5px 5px 0 0;
+    /* background: url(../img/approvalFlow/comm_bg01.png) no-repeat left; */
+    /* background-color: #f5f5f5; */
+    /* background-size: 100% 100%; */
+}
+#b2b-box .pub-com_head span, .com_head span {
+    margin-left: 10px;
+    color: #fff;
+    font-size: 14px;
+    font-weight: bold;
+}
+
+.pub-com_head .p-right {
+    float: right;
+}
+
+.pub-com_head .p-right a{
+    color: #fff;
+    margin: 0 10px;
+    text-decoration: none !important;
+}
+
 /*b2b table基础样式*/
 .b2b-com-table {
     width: 100%;

+ 38 - 0
src/main/webapp/resources/css/b2bPublic.css

@@ -274,4 +274,42 @@ tbody td.enddate span{
 #public .text-muted {
     color: #666 !important;
     font-size: 14px;
+}
+#public{
+    box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    -o-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    border-radius: 5px;
+    /* min-height: 1066px; */
+    background: #fff;
+    width: 1026px;
+    font-size: 14px;
+}
+
+#public .pub-com_head, .com_head {
+    width: 100%;
+    height: 35px;
+    line-height: 35px;
+    background: #5078cb;
+    border-radius: 5px 5px 0 0;
+    /* background: url(../img/approvalFlow/comm_bg01.png) no-repeat left; */
+    /* background-color: #f5f5f5; */
+    /* background-size: 100% 100%; */
+}
+#public .pub-com_head span, .com_head span {
+    margin-left: 10px;
+    color: #fff;
+    font-size: 14px;
+    font-weight: bold;
+}
+
+.pub-com_head .p-right {
+    float: right;
+}
+
+.pub-com_head .p-right a{
+    color: #fff;
+    margin: 0 10px;
+    text-decoration: none !important;
 }

+ 0 - 60
src/main/webapp/resources/css/public.css

@@ -1,60 +0,0 @@
-#public .com_title{width: 100%;margin: 0px auto;height: 40px;line-height: 40px;font-size: 14px;color: #323232;background: #f5f5f5;}
-#public .com_title font{color: #3f84f6;}
-#public .com_title .search{position: relative;}
-#public .com_title .search input{width: 300px;padding-left: 10px;height: 36px;background: #fff;float: left;vertical-align: middle;border: #3578ba 1px solid;font-size: 14px;text-align: center;padding-right: 85px;line-height: 36px;}
-#public .com_title .search a.seek{vertical-align: middle;display: inline-block;line-height: 36px;text-align: center;height: 36px;width: 85px;border-left: 0;background: #3578ba;color: #fff;text-align: center;font-size: 16px;float: right;border: #3578ba 1px solid;position: absolute;right: 0;}
-#public .com_title .search a.seek:hover{background: #1f6199;color: #fff;}
-.fl{float: left;}
-.fr{float: right;}
-/*切换导航*/
-#public .menu{background: #fff;padding: 0;border-bottom: #e8e8e8 1px solid;}
-#public .menu .btn-group{width: 100px;border: none;height: 45px;}
-#public .menu .row{height: 40px;line-height: 40px;}
-#public .menu .btn-group > .btn-info{border-bottom: #000 1px solid;}
-#public .menu .btn-group .btn{color: #000;}
-#public .menu .btn-group .btn-info{color: #d32526;background: #fff;border-bottom: #d32526 2px solid !important;}
-#public .menu .btn-group .btn{border: none;font-size: 16px;font-family: "Microsoft YaHei", "微软雅黑";}
-#public .menu .btn-group .btn em{color: #d32526;font-style: inherit;}
-#public .menu .btn-group .btn:hover{background: #fff;color: #d32526;}
-#public #topSearch{font-size: 16px;}
-#public .form-group-sm .form-control{height: 36px;/*line-height: 36px;*/border: #3f84f6 1px solid;border-radius: 0px;font-size: 14px;}
-#public .search-bg .col-xs-6{/*margin-left: 90px;*/}
-#public .search-bg .input-group-addon{width: 70px;height: 36px;display: inline-block;background: #3f84f6;font-size: 16px;text-align: center;line-height: 36px;color: #fff;padding: 0;border: none;border-radius: 0;position: absolute;top: 0;right: 0;}
-#public .order-table .header th,#public .inquiry-table .header th{height: 40px;line-height: 40px;background: none;font-size: 14px;}
-#public .order-table .order-hd,#public .inquiry-table .inquiry-hd{font-size: 14px;}
-#public .order-table .order-hd{ line-height: normal;}
-#public .order-table .order-bd,#public .inquiry-table .inquiry-bd{height: 100px;}
-#public .order-table .order-bd .product,#public .inquiry-table .inquiry-bd .product{line-height: 30px;font-size: 14px;}
-.height10{width: 100%;height: 10px;background: #f5f5f5;}
-#public .order-table .order-bd>td,#public .inquiry-table .inquiry-bd>td{ font-size: 14px;}
-#public .order-table,#public .inquiry-table{  background: #fff; }
-/*购物车*/
-#public .cart-table .header th{height: 40px;line-height: 40px;background: none;font-size: 14px;}
-#public .cart-table .cart-hd{font-size: 14px;}
-#public .cart-table .cart-bd{height: 100px;}
-#public .cart-table .cart-bd .product{line-height: 30px;font-size: 14px;}
-#public .cart-table .cart-bd>td{ font-size: 14px;}
-#public .cart-table{background: #fff;}
-#public .toolbar-top{font-size: 14px;}
-.com-text-1{
-    font-size: 14px;
-    margin-left: 20px;
-}
-
-#public .condition .toggle{
-    font-size: 14px;
-}
-#public .search-bg .col-xs-6{
-    width: 40%;
-    padding: 0;
-}
-#public .search-bg #topSearch{
-    width: 47%;
-}
-#public .toolbar-top .text-center .text-simple{
-    color: #3a89d1;
-    font-size: 14px;
-}
-#public #bg-white,#public #bg-white .search-bg{
-    background: #f5f5f5;
-}

+ 71 - 27
src/main/webapp/resources/js/common/b2bServices.js

@@ -1813,22 +1813,22 @@ define([ 'angular', 'common/services', 'common/utils', 'big'], function(angular,
                 }
             })
         }]).factory('B2bShipAddress', ['$resource', 'BaseService', function($resource, BaseService){
-        var b2bUrl = BaseService.getB2bUrl();
-        return $resource(b2bUrl + '/account/enterprise', {}, {
-            saveAddress: {
-                url: b2bUrl + '/account/enterprise/saveShipAddress',
-                method: 'POST'
-            },
-            shipAddList: {
-                url: b2bUrl + '/account/enterprise/shipAddList',
-                method: 'GET',
-                isArray: true
-            },
-            removeShipAddress: {
-                url: b2bUrl + '/account/enterprise/removeShipAddress/:id',
-                method: 'DELETE'
-            }
-        });
+            var b2bUrl = BaseService.getB2bUrl();
+            return $resource(b2bUrl + '/account/enterprise', {}, {
+                saveAddress: {
+                    url: b2bUrl + '/account/enterprise/saveShipAddress',
+                    method: 'POST'
+                },
+                shipAddList: {
+                    url: b2bUrl + '/account/enterprise/shipAddList',
+                    method: 'GET',
+                    isArray: true
+                },
+                removeShipAddress: {
+                    url: b2bUrl + '/account/enterprise/removeShipAddress/:id',
+                    method: 'DELETE'
+                }
+            });
         }]).factory('B2bRecentPrice', ['$resource', 'BaseService', function($resource, BaseService) {
             var b2bUrl = BaseService.getB2bUrl();
             return $resource(b2bUrl + '/sale/inquiry', {}, {
@@ -2527,8 +2527,7 @@ define([ 'angular', 'common/services', 'common/utils', 'big'], function(angular,
                 isArray: true
             }
         });
-    }])
-        .factory('B2bComponentActiveAPI', ['$resource', 'BaseService', function($resource, BaseService){
+    }]).factory('B2bComponentActiveAPI', ['$resource', 'BaseService', function($resource, BaseService){
             var b2bUrl = BaseService.getB2bUrl();
             return $resource(b2bUrl + '/product/component', {},{
             //获取ComponentInfo的分页数据
@@ -2547,8 +2546,7 @@ define([ 'angular', 'common/services', 'common/utils', 'big'], function(angular,
                 method: 'GET'
             }
         });
-    }])
-        .factory('B2bKindAPI', ['$resource', '$cacheFactory', 'BaseService', function($resource, $cacheFactory, BaseService) {
+    }]).factory('B2bKindAPI', ['$resource', '$cacheFactory', 'BaseService', function($resource, $cacheFactory, BaseService) {
             var cache = $cacheFactory('B2bKindAPI');
             var b2bUrl = BaseService.getB2bUrl();
             return $resource (b2bUrl + '/product/kind', {}, {
@@ -2559,8 +2557,7 @@ define([ 'angular', 'common/services', 'common/utils', 'big'], function(angular,
                     isArray: true
                 }
             })
-        }])
-        .factory('B2bBrandActiveAPI', ['$resource', 'BaseService', function($resource, BaseService) {
+        }]).factory('B2bBrandActiveAPI', ['$resource', 'BaseService', function($resource, BaseService) {
         //对单个BrandActive对象操作
             var b2bUrl = BaseService.getB2bUrl();
             return $resource(b2bUrl + '/product/brand/:uuid', {}, {
@@ -2584,8 +2581,7 @@ define([ 'angular', 'common/services', 'common/utils', 'big'], function(angular,
                 method: 'GET'
             }
         })
-    }])
-        .factory('B2bPurcProduct', ['$resource', 'BaseService', function($resource, BaseService) {
+    }]).factory('B2bPurcProduct', ['$resource', 'BaseService', function($resource, BaseService) {
             var b2bUrl = BaseService.getB2bUrl();
             return $resource(b2bUrl + '/purcProduct/info/search', {}, {
             getAll : {
@@ -2614,8 +2610,7 @@ define([ 'angular', 'common/services', 'common/utils', 'big'], function(angular,
                 method: 'GET'
             }
         })
-    }])
-        .factory('B2bPurcProductNewest', ['$resource', 'BaseService', function($resource, BaseService) {
+    }]).factory('B2bPurcProductNewest', ['$resource', 'BaseService', function($resource, BaseService) {
             var b2bUrl = BaseService.getB2bUrl();
             return $resource(b2bUrl + '/purcProduct/info/nosearch', {}, {
             getAll : {
@@ -2632,5 +2627,54 @@ define([ 'angular', 'common/services', 'common/utils', 'big'], function(angular,
                 }
             }
         })
-    }]);
+    }]).factory('B2bCartList', ['$resource', 'BaseService', function($resource, BaseService) {
+        var b2bUrl = BaseService.getB2bUrl();
+        return $resource(b2bUrl + '/cart/cartList', {}, {
+            getAll: {
+                isArray: false
+            }
+        })
+    }]).factory('B2bNewPurcOrder', ['$resource', 'BaseService', function($resource, BaseService) {
+        var b2bUrl = BaseService.getB2bUrl();
+        return $resource(b2bUrl + '/product/baseInfo/newPurcOrder', {}, {
+            save: {
+                method: 'POST',
+                isArray: false,
+                headers: {
+                    'Content-Type' : 'application/text;charset=UTF-8'
+                }
+            },
+            method: {
+                url: 'paymethod/method',
+                method: 'GET'
+            }
+        })
+    }]).factory('B2bAddtoCart', ['$resource', 'BaseService', function($resource, BaseService) {
+        var b2bUrl = BaseService.getB2bUrl();
+        return $resource(b2bUrl + '/product/baseInfo/addtoCart', {}, {
+            save: {
+                method: 'POST',
+                isArray: false,
+                headers: {
+                    'Content-Type' : 'application/json;charset=UTF-8'
+                }
+            }
+        })
+    }]).factory('B2bRecentPrice', ['$resource', 'BaseService', function($resource, BaseService) {
+        var b2bUrl = BaseService.getB2bUrl();
+        return $resource(b2bUrl + '/sale/inquiry', {}, {
+            // 获取最新的已采纳的价信息
+            agreed: {
+                url: 'sale/inquiry/recentPrice/:prId',
+                method: 'GET'
+            }
+        });
+    }]).factory('B2bGetCartList', ['$resource', 'BaseService', function($resource, BaseService) {
+        var b2bUrl = BaseService.getB2bUrl();
+        return $resource(b2bUrl + '/cart/getCartList', {}, {
+            getAll: {
+                isArray: false
+            }
+        })
+    }])
 });

+ 13 - 1
src/main/webapp/resources/js/usercenter/app.js

@@ -443,7 +443,7 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
 			templateUrl: "static/view/usercenter/b2b/Purc/vendor.html",
 			controller: 'PurcVendorCtrl',
 			controllerUrl: 'app/controllers/b2b/Purc/PurcVendorCtrl'
-			/* 采购供应商资料 详情*/
+			/* 采购供应商资料详情*/
 		})).state('purc_vendordetail', angularAMD.route({
 			url: "/purc/vendor/:id",
 			templateUrl: "static/view/usercenter/b2b/Purc/vendor_detail.html",
@@ -570,6 +570,18 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
             templateUrl: "static/view/usercenter/b2b/Purc/purchaseInquiryCtrl.html",
             controller: 'PurchaseInquiryCtrl',
             controllerUrl: 'app/controllers/b2b/Purc/purchaseInquiryCtrl'
+        })).state('purc_cart', angularAMD.route({
+            url: "/purc/cart",
+            title: '买家中心-B2b采购购物车',
+            templateUrl: "static/view/usercenter/b2b/Purc/cart.html",
+            controller: 'CartController',
+            controllerUrl: 'app/controllers/b2b/Purc/CartController'
+        })).state('purc_cart_detail', angularAMD.route({
+            url: "/purc/cart/:id",
+            title: '买家中心-B2b采购购物车详情',
+            templateUrl: "static/view/usercenter/b2b/Purc/cart_detail.html",
+            controller: 'CartDetailController',
+            controllerUrl: 'app/controllers/b2b/Purc/CartDetailController'
         })).state('purc_purcinquiry_new', angularAMD.route({
 			url: "/purc/purcinquiry/:bussinessCode",
 			templateUrl: "static/view/usercenter/b2b/Purc/purcinquiry_new.html",

+ 354 - 0
src/main/webapp/resources/js/usercenter/controllers/b2b/Purc/CartController.js

@@ -0,0 +1,354 @@
+/**
+ * 采购购物车
+ */
+
+define(['app/app'], function(app) {
+    app.register.controller('CartController', ['$scope', 'toaster', 'B2bGetCartList', 'ngTableParams', '$filter', 'BaseService', 'B2bCartOperation', '$timeout', 'B2bCartList', 'B2bPurchaseOrder',
+        function ($scope, toaster, getCartList, ngTableParams, $filter, BaseService, cartOperation, $timeout, cartList, PurchaseOrder) {
+        BaseService.scrollBackToTop();
+        $scope.active = 'all';
+        $scope.agreedText = '全部';
+        $scope.dateZoneText = '一个月内';
+        $scope.condition = {dateZone: 1};
+        $scope.currency = Symbol.currency;//将币别转化为对应的符号
+        $scope.hasClick = false;
+
+        /**
+         * 改变单据日期范围
+         */
+        var getDateCondition = function (zone, condition) {
+            var fromDate = new Date();
+            var toDate = new Date();
+            //去除时分秒限制,dateFrom设置成0时0分0秒,dateTo设置成23时59分59秒
+            fromDate.setHours(0, 0, 0, 0);
+            toDate.setHours(23, 59, 59, 999);
+            if (zone == -1) { // 自定义时间,什么都不做
+
+            } else if (zone == 1) {
+                fromDate.setMonth(fromDate.getMonth() - 1);
+                condition.dateFrom = fromDate;
+                condition.dateTo = toDate;
+            } else if (zone == 3) {
+                fromDate.setMonth(fromDate.getMonth() - 3);
+                condition.dateFrom = fromDate;
+                condition.dateTo = toDate;
+            } else if (zone == 6) {
+                fromDate.setMonth(fromDate.getMonth() - 6);
+                condition.dateFrom = fromDate;
+                condition.dateTo = toDate;
+            } else {
+                condition.dateFrom = null;
+                condition.dateTo = null;
+            }
+        };
+
+        /**
+         * 改变单据交货日期范围
+         */
+        var getDelveryCondition = function (zone, condition) {
+            var date = new Date();
+            if (zone == -1) {
+                condition.deliveryFrom = null;
+                condition.deliveryTo = null;
+            } else if (zone == 1) {
+                date.setMonth(date.getMonth() + 1);
+                condition.deliveryTo = date;
+                condition.deliveryFrom = new Date();
+            } else if (zone == 2) {
+                date.setMonth(date.getMonth() + 2);
+                condition.deliveryTo = date;
+                condition.deliveryFrom = new Date();
+            }
+        };
+
+        /**
+         * 将日期转化为整数日期
+         */
+        var getDateTime = function (date) {
+            if (angular.isDate(date)) {
+                return date.getTime();
+            } else {
+                return null;
+            }
+        };
+
+            /**
+             * 页面状态按钮过滤
+             */
+            var getState = function (active) {
+                var fn = 'get';
+                switch (active) {
+                    case 'done':
+                        fn = 'getDone';
+                        break;
+                    case 'todo':
+                        fn = 'getTodo';
+                        break;
+                    case 'end':
+                        fn = 'getEnd';
+                        break;
+                    case 'waiting':
+                        fn = 'getWaiting';
+                        break;
+                    case 'received':
+                        fn = 'getReceived';
+                        break;
+                    case 'invalid':
+                        fn = 'getInvalid';
+                        break;
+                    // 已采纳
+                    case 'agreed':
+                        fn = 'getAgreed';
+                        break;
+                    // 未采纳
+                    case 'refused':
+                        fn = 'getRefused';
+                        break;
+                    // 个人
+                    case 'personal':
+                        fn = 'getPersonal';
+                        break;
+                    // 集体
+                    case 'teams':
+                        fn = 'getTeams';
+                        break;
+                    // 非标准
+                    case 'nonstandard':
+                        fn = 'getNonstandard';
+                        break;
+                    // 标准
+                    case 'standard':
+                        fn = 'getStandard';
+                        break;
+                    // 变更单无需确认
+                    case 'unread':
+                        fn = 'getUnread';
+                        break;
+                }
+                return fn;
+            };
+
+        /* 时间筛选初始化*/
+        var fromDate = new Date();
+        var toDate = new Date();
+        fromDate.setMonth(fromDate.getMonth() - 1);
+        fromDate.setHours(0, 0, 0, 0);
+        toDate.setHours(23, 59, 59, 999);
+        $scope.condition.dateFrom = fromDate;
+        $scope.condition.dateTo = toDate;
+
+        $scope.changeDateZone = function (zone) {
+            $scope.condition.dateZone = zone;
+            $scope.dateZoneText = zone == 1 ? '最近一个月' : (zone == 3 ? '最近三个月' : (zone == 6 ? '最近六个月' : '自定义'));
+            $scope.condition.$dateZoneOpen = false;
+            getDateCondition(zone, $scope.condition);
+            $scope.tableParams.page(1);
+            $scope.tableParams.reload();
+        };
+        $scope.changeDeliveryZone = function (zone) {
+            $scope.condition.deliveryZoneText = zone;
+            $scope.deliveryZoneText = typeof zone == 'undefined' ? '不限' : (zone == -1 ? '不限' : (zone == 1 ? '一个月内' : '两个月内'));
+            $scope.condition.$delievryZoneOpen = false;
+            getDelveryCondition(zone, $scope.condition);
+            $scope.tableParams.reload();
+        };
+
+        $scope.openDatePicker = function ($event, item, openParam) {
+            $event.preventDefault();
+            $event.stopPropagation();
+            item[openParam] = !item[openParam];
+        };
+
+        $scope.openFilterDatePicker = function ($event, item, openParam) {
+            $event.preventDefault();
+            $event.stopPropagation();
+            item[openParam] = !item[openParam];
+            if ($scope.condition.dateFrom && $scope.condition.dateTo && !item[openParam]) {
+                $scope.tableParams.reload();
+            }
+        };
+
+        $scope.parseDate = function (dateStr) {
+            if (dateStr)
+                return Date.parse(dateStr, 'yyyy-MM-dd');
+            return new Date();
+        };
+        $scope.setActive = function (state) {
+            if ($scope.active != state) {
+                $scope.active = state;
+                if ($scope.tableParams.page() == 1)
+                    $scope.tableParams.reload();
+                else
+                    $scope.tableParams.page(1);
+            }
+        };
+        $scope.searchMethod = false;
+        var getService = function () {
+            return $scope.searchMethod ? cartList : getCartList;
+        };
+        var getTodoCartCount = function () {
+            cartOperation.getTodoCartCount({}, function (data) {
+                $scope.countTodo = data.cartTodo;
+            });
+        };
+        getTodoCartCount();
+        $scope.tableParams = new ngTableParams({
+            page: 1,
+            count: 20,
+            sorting: {
+                date: 'desc'
+            }
+        }, {
+            total: 0,
+            counts: [5, 10, 25, 50],
+            getData: function ($defer, params) {
+                $scope.loading = true;
+                var pageParams = params.url();
+                pageParams.searchFilter = { // 筛选条件
+                    keyword: $scope.keyword,
+                    fromDate: getDateTime($scope.condition.dateFrom),
+                    endDate: getDateTime($scope.condition.dateTo)
+                };
+                getService()[getState($scope.active)].call(null, BaseService.parseParams(pageParams), function (page) {
+                    $scope.loading = false;
+                    if (page) {
+                        params.total(page.totalElement);
+                        $defer.resolve(page.content);
+                    }
+                }, function (response) {
+                    $scope.loading = false;
+                    toaster.pop('error', '数据加载失败', response.data);
+                });
+            }
+        });
+
+        $scope.getCartTotal = function (items) {
+            var sum = 0;
+            angular.forEach(items, function (item) {
+                sum += item.qty * item.price;
+            });
+            return sum;
+        };
+
+        // 搜索框回车
+        $scope.onSearch = function (keyword) {
+            // 每次搜索重置获取数据方法
+            $scope.searchMethod = false;
+            if(keyword != null && keyword != '') {
+                $scope.searchMethod = true;
+            }
+            $scope.tableParams.page(1);
+            $scope.tableParams.reload();
+        };
+
+        var changeClickStatus = function () {
+            $scope.hasClick = true;
+            $timeout(function () {
+                $scope.hasClick = false;
+            }, 500);
+        }
+        // 提交
+        $scope.addtoOrder = function (id) {
+            cartOperation.addToOrder({id: id}, {}, function (data) {
+                if (data.success) {
+                    toaster.pop('success', '提示', data.success);
+                    getTodoCartCount();
+                    $timeout(function () {
+                        window.location.hash = '#/purc/order/' + data.id;
+                        window.location.reload();
+                    }, 500);
+                }
+                if (data.error) {
+                    toaster.pop('error', '提示', data.error);
+                }
+            }, function (response) {
+                toaster.pop('erroer', '提示', response.data);
+            });
+        };
+
+        // 删除一条主记录
+        $scope.deleteCart = function (id) {
+            changeClickStatus();
+            $scope.loading = true;
+            cartOperation.deleteCart({id: id}, {}, function (data) {
+                if (data.success) {
+                    toaster.pop('success', '提示', data.success);
+                    getTodoCartCount();
+                    getTodoCartCount();
+                    $timeout(function () {
+                        $scope.tableParams.page(1);
+                        $scope.tableParams.reload();
+                    }, 500);
+                }
+                if (data.error) {
+                    toaster.pop('error', '提示', data.error);
+                }
+                $scope.loading = false;
+            }, function (response) {
+                $scope.loading = false;
+                toaster.pop('erroer', '提示', response.data);
+            });
+        };
+
+        // 删除一条明细
+        $scope.deleteDetail = function (id) {
+            changeClickStatus();
+            $scope.loading = true;
+            cartOperation.deleteCartDetail({id: id}, {}, function (data) {
+                if (data.success) {
+                    toaster.pop('success', '提示', data.success);
+                    $timeout(function () {
+                        $scope.tableParams.reload();
+                    }, 500);
+                }
+                if (data.error) {
+                    toaster.pop('error', '提示', data.error);
+                }
+                $scope.loading = false;
+            }, function (response) {
+                toaster.pop('erroer', '提示', response.data);
+                $scope.loading = false;
+            });
+        };
+
+        // 清空购物车
+        $scope.clearCart = function () {
+            changeClickStatus();
+            $scope.loading = true;
+            cartOperation.deleteCarts({}, function (data) {
+                if (data.success) {
+                    toaster.pop('success', '提示', data.success);
+                    getTodoCartCount();
+                    $timeout(function () {
+                        $scope.tableParams.reload();
+                    }, 500);
+                }
+                if (data.error) {
+                    toaster.pop('error', '提示', data.error);
+                }
+                $scope.loading = false;
+            }, function (response) {
+                toaster.pop('erroer', '提示', response.data);
+                $scope.loading = false;
+            });
+        }
+
+        // 复制订单
+        $scope.copyorder = function (id) {
+            changeClickStatus();
+            $scope.loading = true;
+            PurchaseOrder.copyorder({id: id}, {}, function (data) {
+                if (data.id) {
+                    toaster.pop('success', '提示', '单据复制成功');
+                    getTodoCartCount();
+                    $scope.loading = false;
+                    window.location.hash = "#purc/cart/" + data.id;
+                }
+            }, function (response) {
+                toaster.pop('error', '提示', response.data);
+                $scope.loading = false;
+            });
+        }
+
+    }]);
+})

+ 314 - 0
src/main/webapp/resources/js/usercenter/controllers/b2b/Purc/CartDetailController.js

@@ -0,0 +1,314 @@
+/**
+ * 采购购物车详情
+ */
+
+define(['app/app'], function(app) {
+    app.register.controller('CartDetailController', ['$scope', 'B2bCartOperation', '$stateParams', 'toaster', '$timeout', 'BaseService', 'ngTableParams', '$filter', 'B2bProduct', 'B2bVendor', 'B2bShipAddress', '$modal', 'B2bNewPurcOrder', 'B2bAddtoCart', '$http', 'B2bToken', 'B2bRecentPrice',
+        function ($scope, cartOperation, $stateParams, toaster, $timeout, BaseService, ngTableParams, $filter, Product, Vendor, ShipAddress, $modal, newPurcOrder, addtoCart, $http, token, recentPrice) {
+            BaseService.scrollBackToTop();
+            $scope.loading = true;
+            var loadData = function () {
+                cartOperation.getCartDetail({id: $stateParams.id}, function (data) {
+                    if (data.code) {
+                        $scope.order = data;
+                        var sum = 0;
+                        angular.forEach($scope.order.orderItems, function (item) {
+                            sum += item.qty * item.price;
+                        });
+                        $scope.order.total = sum;
+                        Vendor.contacts({venduu: $scope.order.receiveCode}, {}, function (data) {
+                            $scope.contacts = data;
+                            $scope.order.vendor = $scope.order.venduser;
+                        });
+                        $scope.loading = false;
+                    } else {
+                        window.location.hash = '#/purc/cart';
+                    }
+                });
+            };
+            loadData();
+
+            var getToken = function() {
+                token.info({userType: 'cart'}, {}, function(data) {
+                    $scope.token = data.token;
+                }, function(response) {
+                    toaster.pop('error', '提示', response.data);
+                });
+            }
+            getToken();
+
+            // 获取地址信息
+            $http.get('resources/js/prod/data/city.json', {
+                "Accept": "application/json;charset=utf-8", "Accept-Charset": "charset=utf-8"
+            }).then(function (response) {
+                $scope.provinces = response.data;
+            });
+
+            // 获取收货地址列表
+            ShipAddress.shipAddList({}, function (data) {
+                $scope.ships = data;
+                $scope.order.shipadd = $scope.ships[0];
+            });
+
+            //增加商品
+            $scope.addProduct = function (index) {
+                if ($scope.order.orderItems[index].code == null) {
+                    toaster.pop('info', '提示', '请先选择商品');
+                } else {
+                    $scope.order.orderItems.push({
+                        code: null,
+                        title: null,
+                        spec: null,
+                        unit: null,
+                        qty: null,
+                        price: null,
+                        remark: null,
+                        delivery: null,
+                        $endDateOpen: false,
+                        taxrate: $scope.order.rate
+                    });
+                }
+            };
+
+            //删除商品
+            $scope.deleteProduct = function (index, id) {
+                $scope.order.orderItems.splice(index, 1);
+                if (id != null) {
+                    cartOperation.deleteCartDetail({id: id}, {}, function (data) {
+                        if (data.success) {
+                            loadData();
+                        }
+                        if (data.error) {
+                            toaster.pop('error', '提示', data.error);
+                        }
+                    }, function (response) {
+                        toaster.pop('erroer', '提示', response.data);
+                    });
+                }
+            };
+
+            // 搜索框回车
+            $scope.onSearch = function (keyword) {
+                $scope.keyword = keyword;
+                $scope.tableParams.page(1);
+                $scope.tableParams.reload();
+            };
+
+            $scope.tableParams = new ngTableParams({
+                page: 1,
+                count: 20
+            }, {
+                total: 0,
+                counts: [5, 10, 25, 50],
+                getData: function ($defer, params) {
+                    $scope.loading = true;
+                    var pageParams = params.url();
+                    pageParams.keyword = $scope.keyword;
+                    $scope.tip = $scope.keyword;
+                    pageParams.vendUU = $scope.order.receiveCode;
+                    Product.vendPord.call(null, BaseService.parseParams(pageParams), function (page) {
+                        $scope.loading = false;
+                        if (page) {
+                            params.total(page.totalElement);
+                            $scope.total = page.totalElement;
+                            $defer.resolve(page.content);
+                        }
+                    }, function (response) {
+                        $scope.loading = false;
+                        toaster.pop('error', '数据加载失败', response.data);
+                    });
+                }
+            });
+
+            // 选择
+            $scope.check = function (data) {
+                var price = null;
+                var qty = null;
+                var taxRate = null;
+                if (data.id) {
+                    recentPrice.agreed({prId: data.id}, {}, function(response) {
+                        price = response.price;
+                        qty = response.qty;
+                        taxRate = response.taxRate;
+                        $scope.order.orderItems.push({
+                            code: data.code,
+                            title: data.title,
+                            spec: data.spec,
+                            unit: data.unit,
+                            qty: qty,
+                            price: price,
+                            remark: null,
+                            delivery: null,
+                            prid: data.id,
+                            taxrate: taxRate,
+                            prodsource: 'seller',
+                        });
+                    });
+                }
+            };
+
+            // 导入商品信息
+            $scope.uplodaByBatch = function () {
+                var modalInstance = $modal.open({
+                    templateUrl: 'static/view/usercenter/b2b/modal/purc_uplodaByBatch.html',
+                    controller: 'PurcUploadByBatchCtrl',
+                    size: 'lg',
+                    resolve: {}
+                });
+
+                modalInstance.result.then(function (data) {
+                    angular.forEach(data, function (prod) {
+                        $scope.order.orderItems.push({
+                            code: prod.code,
+                            title: data.title,
+                            unit: 'PCS',
+                            spec: prod.spec,
+                            qty: prod.amount,
+                            price: prod.rateprice,
+                            remark: prod.remark,
+                            delivery: prod.date,
+                            prid: prod.id,
+                            taxrate: prod.rate
+                        });
+                    })
+
+                }, function () {
+
+                });
+            }
+
+            // 删除一条主记录
+            $scope.deleteCart = function (id) {
+                cartOperation.deleteCart({id: id}, {}, function (data) {
+                    if (data.success) {
+                        toaster.pop('success', '提示', data.success);
+                        $timeout(function () {
+                            window.location.reload();
+                        }, 500);
+                    }
+                    if (data.error) {
+                        toaster.pop('error', '提示', data.error);
+                    }
+                }, function (response) {
+                    toaster.pop('erroer', '提示', response.data);
+                });
+            };
+
+            $scope.getMinDate = function (item) {
+                return $filter('date')(new Date, 'yyyy-MM-dd');
+            };
+
+            $scope.openDatePicker = function ($event, openParam, index) {
+                $event.preventDefault();
+                $event.stopPropagation();
+                $scope.order.orderItems[index].$endDateOpen = !openParam;
+            };
+
+            // 添加到购物车
+            $scope.addToCart = function (order) {
+                $scope.loading = true;
+                if (order.vendor.tel != null) {
+                    $scope.order.vendusertel = order.vendor.tel;
+                }
+                if (order.vendor.venduser != null && order.vendor.tel != null) {
+                    $scope.order.venduser = order.vendor.venduser + '' + order.vendor.tel;
+                }
+                if (order.shipadd != null) {
+                    $scope.order.shipaddress = order.shipadd.address + order.shipadd.addressdet + '' + order.shipadd.receiver + '' + order.shipadd.usertel;
+                }
+                if ($scope.order.date instanceof Date) {
+                    $scope.order.date = $scope.order.date.getTime();
+                }
+                for (var i = 0; i < $scope.order.orderItems.length; i++) {
+                    if ($scope.order.orderItems[i].delivery instanceof Date) {
+                        $scope.order.orderItems[i].delivery = $scope.order.orderItems[i].delivery.getTime();
+                    }
+                    if ($scope.order.currency != 'RMB') {
+                        $scope.order.orderItems[i].rate = 0;
+                    }
+                }
+                $scope.order.status = 311;
+                addtoCart.save({token: $scope.token}, $scope.order, function (data) {
+                    $scope.loading = false;
+                    toaster.pop('success', '成功', '保存成功');
+                    loadData();
+                }, function (response) {
+                    $scope.loading = false;
+                    toaster.pop('error', '保存失败', response.data);
+                });
+            };
+
+            // 立即购买
+            $scope.addToOrder = function (order) {
+                $scope.loading = true;
+                if (order.vendor.tel != null) {
+                    $scope.order.vendusertel = order.vendor.tel;
+                }
+                if (order.vendor.venduser != null && order.vendor.tel != null) {
+                    $scope.order.venduser = order.vendor.venduser + '' + order.vendor.tel;
+                }
+                if (order.shipadd != null) {
+                    $scope.order.shipaddress = order.shipadd.address + order.shipadd.addressdet + '' + order.shipadd.receiver + '' + order.shipadd.usertel;
+                }
+                if ($scope.order.date instanceof Date) {
+                    $scope.order.date = $scope.order.date.getTime();
+                }
+                for (var i = 0; i < $scope.order.orderItems.length; i++) {
+                    if ($scope.order.orderItems[i].delivery instanceof Date) {
+                        $scope.order.orderItems[i].delivery = $scope.order.orderItems[i].delivery.getTime();
+                    }
+                    if ($scope.order.currency != 'RMB') {
+                        $scope.order.orderItems[i].rate = 0;
+                    }
+                }
+                $scope.order.status = 200;
+                addtoCart.save({token: $scope.token}, $scope.order, function (data) {
+                    $scope.loading = false;
+                    toaster.pop('success', '成功', '保存成功');
+                    window.location.hash = '#/purc/order/' + data.id;
+                }, function (response) {
+                    $scope.loading = false;
+                    toaster.pop('error', '保存失败', response.data);
+                });
+            };
+
+            // 新增收货地址保存
+            $scope.saveShipAddress = function (ship) {
+                ship.address = ship.province + ship.city + ship.district;
+                ShipAddress.saveAddress({}, ship, function (data) {
+                    if (data.success) {
+                        ShipAddress.shipAddList({}, function (data) {
+                            $scope.ships = data;
+                            $scope.order.shipadd = $scope.ships[0];
+                        });
+                        toaster.pop('success', '提示', data.success);
+                    }
+                    if (data.error) {
+                        toaster.pop('error', '提示', data.error);
+                    }
+                });
+            }
+
+            // 新增供应商联系人
+            $scope.addContact = function (uu) {
+                var modalInstance = $modal.open({
+                    animation: true,
+                    templateUrl: 'static/tpl/index/purc/modal/contact_person_modal.html',
+                    controller: 'AddContacCtrl',
+                    resolve: {}
+                });
+                modalInstance.result.then(function (data) {
+                    $scope.contact = data;
+                    $scope.contact.venduu = $scope.order.receiveCode;
+                    Vendor.saveContact({}, $scope.contact, function (data) {
+                        Vendor.contacts({venduu: $scope.order.receiveCode}, {}, function (data) {
+                            $scope.contacts = data;
+                        });
+                        toaster.pop('success', '提示', '联系人保存成功');
+                    }, function (response) {
+                        toaster.pop('error', '失败', response.data);
+                    });
+                });
+            }
+        }]);
+})

+ 363 - 0
src/main/webapp/resources/view/usercenter/b2b/Purc/cart.html

@@ -0,0 +1,363 @@
+<style>
+.condition .more.open {
+	margin-top: 10px;
+	height: 36px;
+	opacity: 1;
+}
+
+.condition .more .form-group {
+	margin-bottom: 0;
+}
+
+.order-table .header>th {
+	height: 38px;
+	text-align: center;
+	background: #f5f5f5;
+	border-top: 1px solid #e8e8e8;
+	border-bottom: 1px solid #e8e8e8;
+}
+
+.order-table .sep-row {
+	height: 10px;
+}
+
+.order-table .selector {
+	vertical-align: middle;
+	margin: 0 0 2px 0;
+}
+
+.toolbar label {
+	margin-right: 10px;
+	margin-bottom: 0;
+}
+
+.toolbar .select_all {
+	margin: 0 6px 0 10px;
+	line-height: 20px;
+}
+
+.toolbar .btn {
+	-moz-border-radius: 2px;
+	margin-right: 5px;
+	border: 1px solid #dcdcdc;
+	border-radius: 2px;
+	-webkit-border-radius: 2px;
+}
+
+.order-table .order-hd {
+	background: #f5f5f5;
+	height: 40px;
+	line-height: 40px;
+}
+
+.order-table .order-hd td.first {
+	padding-left: 20px;
+}
+
+.order-table .order-hd .order-main span {
+	margin-right: 8px;
+}
+
+.order-table .order-hd .order-code {
+	font-style: normal;
+	font-family: verdana;
+}
+
+.order-table .order-hd .order-sum {
+	padding: 0 5px;
+}
+
+/*.order-table>tbody {
+	border: 1px solid transparent;
+	border-bottom: 10px #ddd solid;
+}*/
+.order-table>tbody:hover{
+	border: #3f84f6 2px solid !important;
+}
+/*.order-table>tbody:hover .order-hd td{
+	border-top: #d32526 2px solid !important;
+}*/
+
+.order-table .operates {
+	display: none;
+}
+
+.order-table .operates i {
+	padding: 0 2px;
+}
+
+.order-table>tbody:hover .operates {
+	display: block;
+}
+.order-table>tbody:hover .operates-status {
+	display: none;
+}
+
+
+.order-table .order-bd {
+	border-bottom: 1px solid #e6e6e6;
+}
+
+.order-table .order-bd>td {
+	padding: 10px 5px;
+	vertical-align: top;
+	position: relative;
+}
+
+.order-table .order-bd .product {
+	padding-left: 20px;
+}
+
+.order-table .order-bd .order-number {
+	position: absolute;
+	top: -1px;
+	left: -1px;
+	width: 20px;
+	height: 20px;
+	line-height: 20px;
+	text-align: center;
+	background: #f5f5f5;
+	font-weight: 500;
+	border: solid 1px #d5d5d5;
+	border-radius: 0 0 10px 0;
+}
+
+.order-table .order-bd .order-number.key {
+	background: #56a022;
+	color: #ffffff;
+}
+
+.unPrinted {
+	color: #56a022;
+}
+
+.info-container .info:hover {
+	color: #CC3333;
+}
+.buy-cart{
+	font-size: 14px;
+	padding: 0;
+	margin-left: 50px;
+}
+.buy-cart a{
+	color: #5078cb;
+	float: left;
+	margin-left: 15px;
+}
+.buy-cart a img{
+	margin-right: 3px;
+}
+#public .menu .btn-group{
+	height: inherit !important;
+}
+</style>
+<link rel="stylesheet" href="static/css/b2bPublic.css">
+<div class="block fr" id="public">
+<div class="loading in" ng-class="{'in': loading}">
+	<!--<i></i>-->
+	<div class="wrap">
+		<div class="outer"></div>
+	</div>
+</div><div class="pub-com_head">
+	<span>购物车</span>
+	<div class="p-right">
+		<a ng-click="clearCart()" ng-disabled="hasClick"><i class="fa fa-trash"></i>清空</a>
+		<a ui-sref="purc_newOrder" title="新增采购单"><i class="fa fa-plus-square fa-fw"></i>新增</a>
+	</div>
+</div>
+<div class="condition block">
+	<!--搜索时间筛选-->
+	<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>
+				</div>
+			</div>
+			<div class="sreach-input fr">
+				<input type="search" class="form-control input-sm" ng-model="keyword"
+					   ng-search="onSearch(keyword)" placeholder="输入单据编号、客户名称、物料名称搜索"/>
+				<a class="btn input-group-addon" ng-click="onSearch(keyword)">搜索</a>
+			</div>
+		</div>
+	</div>
+</div>
+<table class="order-table block" ng-table="tableParams">
+	<thead>
+		<tr class="header">
+			<th>物料</th>
+			<th width="80">含税单价</th>
+			<th width="100">税率</th>
+			<th width="100">数量</th>
+			<th width="120">交货日期</th>
+			<th width="180">单据状态</th>
+			<th width="120">操作</th>
+		</tr>
+	</thead>
+	<tbody ng-if="tableParams.total() == 0">
+	<tr>
+		<td colspan="7">
+			<div id="empty">
+				<div class="left_img">
+					<a href="http://www.ubtob.com/" target="_blank" title="优软云首页"><img src="static/img/empty/uas_empty.png"></a>
+					<a href="#/index" title="B2B商务首页">B2B 商务</a>
+				</div>
+				<div class="right_link">
+					<p>当前没有对应的采购订单!</p>
+				</div>
+			</div>
+		</td>
+	</tr>
+	<tr>
+		<td colspan="7">
+			<div id="empty_info">
+				<div class="f16 text-center empty_title">
+					<p>为什么我没有采购订单?</p>
+				</div>
+				<div class="f14 empty_explain">
+					<div class="info">
+						<p>1、您的采购单在ERP系统上还没审核,订单无法上传到平台<br>
+							解决:采购员沟通确认单据是否已经审核(只有ERP中已经审核的单据才能接收到)</p>
+					</div>
+					<div class="info">
+						<p>2、ERP中供应商信息有误<br>
+							解决:与您的供应商沟通确认他的资料在供应商资料中是否维护正确,尤其是企业UU号</p>
+					</div>
+					<div class="info">
+						<p>3、您的供应商正在使用旧版本的UAS商务平台<br>
+							解决:我们仍有部分用户在使用旧版本UAS商务平台系统,你可以用您的企业UU号和管理员个人UU号 <a href="http://www.usoftchina.com" class="text-bold text-link" title="http://www.usoftchina.com" target="_blank">登陆旧版本UAS商务平台</a></p>
+					</div>
+				</div>
+			</div>
+		</td>
+	</tr>
+	</tbody>
+	<tbody ng-repeat="order in $data track by order.id">
+		<tr class="order-hd" ng-dblclick="order.$collapsed=!order.$collapsed" ng-class="{'text-bold': order.display>0}">
+			<td class="first" colspan="5">
+				<div class="order-main">
+					<!--<span> <input type="checkbox" class="selector"
+						ng-model="order.$selected" ng-click="checkOne(order)">
+					</span> -->
+					<span class="text-num text-bold"
+						ng-bind="::order.date | date:'yyyy-MM-dd'"></span>
+					<span>订单号:<a
+						class="text-num" ng-bind="::order.code" ui-sref="purc_cart_detail({id:order.id})" target="_self"></a></span>
+					<span ng-bind="::order.receiveName"></span>
+				</div>
+			</td>
+			<td class="order-sum">{{::order.currency}}: <span
+				ng-bind="getCartTotal(order.orderItems) | number : 2"
+				class="text-num text-bold"></span>
+			</td>
+			<td class="text-center">
+				<a ng-click="copyorder(order.id)" ng-disabled="hasClick">复制</a>
+				<a ng-click="deleteCart(order.id)" ng-disabled="hasClick">删除</a>
+			</td>
+		</tr>
+		<tr class="order-bd" ng-repeat="item in order.orderItems track by item.id"
+			ng-if="!order.$collapsed "><!-- && (!searchFilterXls.keyword || item.key || order.$showAll) -->
+			<td class="product">
+				<div class="text-num order-number" ng-class="{'key': item.key&&order.$showAll}" title="第{{::item.number}}行">{{::item.number}}</div>
+				<div class="text-num text-bold">
+					<span ng-bind="::item.product.code"></span>
+				</div>
+				<div>
+					<span ng-bind="::item.product.title"></span>
+				</div>
+				<div class="text-muted"
+					ng-bind="::item.product.spec"></div>
+				<div class="text-muted text-bold" ng-if="item.vendspec"><span ng-bind="::item.vendspec"></span></div>
+				<div class="text-bold text-inverse" ng-if="item.factory">送货工厂:<span ng-bind="::item.factory"></span></div>
+				<div class="text-bold text-inverse" ng-if="item.remark">备注:<span ng-bind="::item.remark"></span></div>
+			</td>
+			<td class="text-center">
+				<div class="text-num" ng-bind="::item.price | number:6"></div>
+			</td>
+			<td class="text-center"><div class="text-muted">{{::item.taxrate || 0}}</div></td>
+			<td class="text-center">
+				<div class="text-num" ng-bind="::item.qty"></div>
+				<div class="text-muted" ng-bind="::item.product.unit"></div>
+				<div style="margin: 0 auto" ng-if="item.$editing">
+					<input type="number" ng-model="item.reply.qty" min="0" max="{{item.qty}}"
+						ng-init="item.reply.qty=item.qty-item.replyQty"
+						class="form-control input-xs" placeholder="0~{{item.qty-item.replyQty}}">
+				</div>
+			</td>
+			<td class="text-center br-l">
+				<div class="text-num" ng-bind="::item.delivery | date:'yyyy-MM-dd'"></div>
+				<br>
+				<div style="margin: 0 auto"
+					class="input-group input-group-xs input-trigger"
+					ng-if="item.$editing">
+					<input type="text" ng-model="item.reply.delivery"
+						class="form-control" placeholder="回复交期"
+						datepicker-popup="yyyy-MM-dd" is-open="item.$opened"
+						min-date="order.date" ng-required="true" current-text="今天"
+						clear-text="清除" close-text="关闭"
+						datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+						ng-focus="openDatePicker($event, item, '$opened')"> <span
+						class="input-group-btn">
+						<button type="button" class="btn btn-default"
+							ng-click="openDatePicker($event, item, '$opened')">
+							<i class="fa fa-calendar"></i>
+						</button>
+					</span>
+				</div>
+			</td>
+			<td class="br-l">
+				<div ng-if="!item.replyQty" class="text-muted text-center">待提交</div>
+			</td>
+			<td class="text-center br-l">
+				<a ng-click="deleteDetail(item.id)" ng-disabled="hasClick">删除</a>
+			</td>
+		</tr>
+	</tbody>
+</table>
+</div>

+ 2725 - 0
src/main/webapp/resources/view/usercenter/b2b/Purc/cart_detail.html

@@ -0,0 +1,2725 @@
+<style>
+#pub .purc li div span .select02 {
+	background: none;
+	-webkit-appearance: inherit;
+	appearance: inherit;
+	-o-appearance: inherit;
+	-moz-appearance: inherit;
+	-ms-appearance: inherit;
+	border: #bfbfbf 1px solid !important;
+	width: 187px;
+}
+
+.dropdown-menu tr td button {
+	border: none;
+}
+
+.oder-change .purc li .dropdown-menu {
+	padding: 0;
+	margin: 0;
+	width: 185px;
+}
+
+.oder-change .purc li .dropdown-menu li {
+	margin-bottom: 0;
+	height: 34px;
+	line-height: 34px;
+}
+
+.oder-change .purc li  .dropdown-menu>li>a {
+	display: inline-block;
+	width: 100%;
+	padding: 0;
+	height: 34px;
+	line-height: 34px;
+	padding-left: 10px;
+}
+
+.dropdown-menu>.active>a, .dropdown-menu>.active>a:hover, .dropdown-menu>.active>a:focus
+	{
+	background: #5078cb;
+}
+
+.com_title01 a {
+    float: right;
+    color: #5078cb;
+    font-weight: normal;
+    margin-right: 30px;
+    margin-top: 20px;
+    font-size: 14px;
+}
+</style>
+<style>
+	.textMore {
+		display: block;
+		white-space: nowrap;
+		overflow: hidden;
+		text-overflow: ellipsis;
+	}
+
+
+	.bule {
+		color: #3578ba;
+	}
+
+	.grey {
+		color: #969595;
+	}
+
+	.red {
+		color: #d2272d;
+	}
+
+	/*产品资料-价格*/
+	input:focus, select:focus {
+		border: #3578ba 1px solid !important;
+		order-color: #66afe9;
+		outline: 0;
+		-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
+		box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6)
+	}
+
+	.com_title {
+		width: 100%;
+		margin: 0px auto;
+		height: 40px;
+		line-height: 40px;
+		font-size: 14px;
+		color: #323232;
+		background: #f5f5f5;
+	}
+
+	.com_title font {
+		color: #3f84f6;
+	}
+
+	.search {
+		position: relative;
+	}
+
+	.search input {
+		width: 300px;
+		padding-left: 10px;
+		height: 36px;
+		background: #fff;
+		float: left;
+		vertical-align: middle;
+		border: #3578ba 1px solid;
+		font-size: 14px;
+		text-align: center;
+		padding-right: 85px;
+		line-height: 36px;
+	}
+
+	.search a.seek {
+		vertical-align: middle;
+		display: inline-block;
+		line-height: 36px;
+		text-align: center;
+		height: 36px;
+		width: 85px;
+		border-left: 0;
+		background: #3578ba;
+		color: #fff;
+		text-align: center;
+		font-size: 16px;
+		float: right;
+		border: #3578ba 1px solid;
+		position: absolute;
+		right: 0;
+	}
+
+	.search a.seek:hover {
+		background: #1f6199;
+		color: #fff;
+	}
+
+	.public-01 {
+		height: 44px;
+		margin-bottom: 10px;
+		margin-top: 10px;
+	}
+
+	.public-01 ul {
+		width: 87%;
+		margin: 0 auto;
+		height: 44px;
+		line-height: 44px;
+		background: #fff;
+		border: #e8e8e8 1px solid;
+	}
+
+	.public-01 ul li {
+		width: 100px;
+		height: 44px;
+		text-align: center;
+		float: left;
+		margin-left: 10px;
+	}
+
+	.public-01 ul li a {
+		font-size: 16px;
+		width: 100px;
+		height: 44px;
+		display: inline-block;
+		color: #323232;
+	}
+
+	.public-01 ul li.active a {
+		color: #d82128;
+		border-bottom: 3px #d82128 solid;
+	}
+
+	.public-01 ul li:hover a {
+		color: #d82128;
+		border-bottom: 3px #d82128 solid;
+	}
+
+	.public-01 ul li a em {
+		color: #d2272d;
+		font-size: 16px;
+	}
+
+	.public-01 ul li.active a {
+		color: #d82128;
+	}
+
+	.public-01-btn, .public-01-btn a {
+		width: 104px;
+		height: 44px;
+		color: #3f84f6;
+		text-align: center;
+		background: #fff;
+		display: inline-block;
+		font-size: 14px;
+		line-height: 44px;
+		border: #e8e8e8 1px solid;
+	}
+
+	.public-01-btn a:hover {
+		border: #3578ba 1px solid;
+	}
+
+	.public-01-btn a img {
+		vertical-align: middle;
+		margin-right: 5px;
+	}
+
+	.pro-price {
+		margin-bottom: 20px !important;
+	}
+
+	.pro-price, .pro-price dl {
+		width: 100%;
+		margin: 0 auto;
+		background: #fff;
+		padding-top: 6px;
+	}
+
+	.pro-price dl dt {
+		width: 100%;
+		margin: 0 auto;
+		height: 40px;
+		line-height: 40px;
+	}
+
+	.pro-price dl span {
+		width: 18.75%;
+		display: inline-block;
+		float: left;
+		font-size: 14px;
+		text-align: center;
+	}
+
+	.pro-price dl span.wid01 {
+		width: 25%;
+	}
+
+	.pro-price dl dt span {
+		line-height: 40px;
+	}
+
+	.pro-price dl dd span {
+		line-height: 110px;
+		height: 110px;
+	}
+
+	.pro-price dl dd span p {
+		line-height: 22px;
+		text-align: left;
+		font-size: 14px;
+		width: 80%;
+		margin: 0 auto;
+	}
+
+	.pro-price dl dd {
+		border-bottom: #e3e3e3 1px dotted;
+	}
+
+	.pro-price dl dd:hover {
+		border: #d32526 1px solid;
+	}
+
+	.pro-price dl dd {
+		height: 110px;
+		overflow: hidden;
+	}
+
+	.pro-price dl .bottom01 {
+		border-bottom: #3578ba 1px dotted;
+	}
+
+	.pro-price dl dd span.style01 {
+		padding-top: 10px;
+	}
+
+	.pro-price dl dd span em {
+		width: 100%;
+		display: inline-block;
+		font-size: 14px;
+	}
+
+	.pro-price dl dd span.style02 {
+		line-height: 22px;
+		margin-top: 30px;
+	}
+
+	.pro-price dl dd span em i {
+		margin-left: 10px;
+	}
+
+	/*B2B商务账号设置-个人信息*/
+	/*弹框*/
+	.bomb-box {
+		width: 100%;
+		height: 100%;
+		position: fixed;
+		z-index: 11111;
+		background: rgba(0, 0, 0, 0.2);
+		top: 0;
+		left: 0;
+	}
+
+	.bomb-box .box {
+		position: absolute;
+		left: 0;
+		right: 0;
+		top: 0;
+		bottom: 0;
+		margin: auto;
+		box-shadow: 0 0 3px #888;
+	}
+
+	.bomb-box .box01 {
+		margin-top: 80px;
+		width: 580px;
+		height: 406px;
+		border-radius: 5px;
+		background: #fff;
+	}
+
+	.bomb-box .box i.off {
+		width: 20px;
+		height: 20px;
+		display: inline-block;
+		position: absolute;
+		right: 8px;
+		top: 8px;
+		text-align: center;
+		cursor: pointer;
+	}
+
+	.bomb-box .box p {
+		height: 40px;
+		line-height: 40px;
+		font-size: 14px;
+		width: 100%;
+		margin: 0 auto;
+		border-bottom: #e8e8e8 1px solid;
+		padding-left: 20px;
+	}
+	.bomb-box .box-bottom{
+		padding: 0 5px 5px;
+		width: 465px;
+		height: 450px!important;
+		background: #e8e8e8;
+	}
+	.bomb-box .box-bottom .box-header{
+		padding-left: 5px;
+		width: 100%;
+		height: 26px;
+	}
+	.bomb-box .box-bottom .box-header p{
+		float: left;
+		padding-left: 10px;
+		height: 26px;
+		line-height: 28px;
+		width: 100px;
+		font-size: 14px;
+		color: #000;
+	}
+	.bomb-box .box-bottom .box-header a{
+		margin-top: 6px;
+		display: inline-block;
+		float: right;
+		width: 15px;
+		height: 15px;
+		text-align: center;
+		font-size: 14px;
+		color: #000;
+		border-radius: 3px;
+		border: 1px solid #000;
+	}
+	.bomb-box .box-bottom .per-data{
+		margin: 0 auto;
+		width: 455px;
+		height: 418px;
+		text-align: center;
+		background: #f3f3f3;
+		border-top: 1px solid #ccc;
+	}
+	.bomb-box .box-bottom .per-data ul li{
+		margin-bottom: 15px;
+		height: 26PX;
+		line-height: 26px;
+	}
+	.bomb-box .box-bottom .per-data ul li:first-child, .bomb-box .box-bottom .per-data ul li:last-child{
+		margin-top: 25px;
+	}
+	.bomb-box .box-bottom .per-data ul li em{
+		width: 80px;
+		text-align: right;
+	}
+	.bomb-box .box-bottom .per-data ul li input{
+		padding-left: 10px;
+		width: 300px;
+		height: 26px;
+		border: 1px solid #a0a0a0;
+	}
+	.bomb-box .box-bottom .per-data ul li a.mod-psd{
+		float: none;
+	}
+
+	.per-data {
+		width: 90%;
+		margin: 0 auto;
+	}
+
+	.per-data ul, .per-data ul li {
+		width: 100%;
+		margin: 0 auto;
+	}
+
+	.per-data ul li {
+		height: 34px;
+		line-height: 34px;
+		margin-top: 15px;
+	}
+
+	.per-data ul li em {
+		width: 60px;
+		font-size: 14px;
+		float: left;
+	}
+	.per-data ul li.text-info{
+		font-size: 13px;
+		color: #787878 !important;
+	}
+	.per-data ul li.text-info b{
+		font-size: 13px;
+		color: #D08200;
+	}
+	.per-data ul li input, .per-data ul li select {
+		width: 236px;
+		height: 34px;
+		border: #e8e8e8 1px solid;
+		font-size: 14px;
+		padding-left: 10px;
+	}
+
+	.per-data ul li select {
+		background: url("../img/purc/select.png") no-repeat right;
+		-webkit-appearance: none;
+		appearance: none;
+		-o-appearance: none;
+		-moz-appearance: none;
+		-ms-appearance: none;
+	}
+
+	.per-data ul li select option {
+		line-height: 30px;
+	}
+
+	.per-data ul li span {
+		color: #959595;
+		line-height: 18px;
+		float: right;
+		width: 215px;
+		display: inline-block;
+	}
+
+	.per-data ul li.per-btn {
+		margin-top: 30px;
+	}
+	.per-data ul li.perBtn{
+		margin-top: 45px;
+	}
+	.per-data ul li.perBtn .save{
+		margin-left: 150px;
+	}
+	.per-data ul li a {
+		width: 94px;
+		height: 36px;
+		display: inline-block;
+		font-size: 14px;
+		color: #fff;
+		text-align: center;
+		line-height: 34px;
+		float: left;
+	}
+
+	.per-data ul li button {
+		width: 94px;
+		height: 36px;
+		display: inline-block;
+		font-size: 14px;
+		color: #fff;
+		text-align: center;
+		line-height: 34px;
+		float: left;
+	}
+
+	.per-data ul li a.save {
+		margin-left: 60px;
+		background: #3f84f6;
+	}
+
+	.per-data ul li button.save {
+		margin-left: 60px;
+		background: #3f84f6;
+		border: 1px;
+	}
+
+	.per-data ul li a.mod-psd {
+		background: #8dc7f9;
+		margin-left: 30px;
+	}
+
+	.per-data ul li a:hover {
+		background: #3578ba;
+	}
+
+	.per-data ul li button:hover {
+		background: #3578ba;
+	}
+	.per ul{
+		text-align: center;
+	}
+	.per ul li.register{
+		margin-top: 10px;
+		height: 20px;
+		line-height: 20px;
+		font-size: 14px;
+	}
+	.per ul li.register span{
+		float: none;
+		margin-left: 5px;
+		width: 65px;
+		font-size: 14px;
+		color: #3578ba;
+	}
+	.per ul li em{
+		margin-left: 60px;
+		text-align: left;
+	}
+	/*产品资料-价格-新增*/
+	.com_head a {
+		color: #fff;
+		float: right;
+		margin-right: 40px;
+		font-size: 14px;
+	}
+
+	.com_head a i {
+		margin-left: 5px;
+		line-height: 40px;
+	}
+
+	.com_head a:hover {
+		color: #d2272d;
+	}
+
+	.pro-add-data {
+		width: 100%;
+		margin: 0 auto;
+		background: #fff;
+	}
+
+	.pro-add-data dl {
+		width: 95%;
+		margin: 0 auto;
+	}
+
+	.pro-add-data dl dd {
+		width: 100%;
+		margin: 0 auto;
+		height: 34px;
+		line-height: 34px;
+		font-size: 14px;
+		margin-top: 10px;
+	}
+
+	.pro-add-data dl dd div.fl {
+		width: 100px;
+	}
+
+	.pro-add-data dl dd div.fr {
+		width: 750px;
+	}
+
+	.pro-add-data dl dd div.fr input {
+		width: 750px;
+		border-bottom: #5d5d5d 1px solid !important;
+		height: 34px;
+		line-height: 34px;
+		border: none;
+		position: relative;
+		font-size: 14px;
+		/*top: -6px;*/
+		color: #666;
+	}
+
+	.pro-add-data dl dd div.fr input:focus {
+		/*box-shadow: none;
+        border: none !important;*/
+		border: #3578ba 1px solid !important;
+	}
+
+	.com_title01 {
+		height: 50px;
+		line-height: 50x;
+		width: 100%;
+		margin: 0 auto;
+		border-bottom: #3578ba 1px dotted;
+		border-top: #e8e8e8 1px solid;
+		margin-top: 10px;
+	}
+
+	.com_title01 span {
+		margin-left: 20px;
+		font-size: 14px;
+		line-height: 50px;
+		color: #555;
+		font-weight: bold;
+	}
+
+	.pro-info, .pro-info dl {
+		width: 99%;
+		margin: 0 auto;
+	}
+
+	.pro-info dl dd, .pro-info dl dt {
+		width: 99%;
+		margin: 0 auto;
+		height: 50px;
+		border-bottom: #e8e8e8 1px dotted;
+	}
+
+	.pro-info dl span {
+		width: 8.5%;
+		font-size: 14px;
+		float: left;
+		display: inline-block;
+		height: 50px;
+		line-height: 50px;
+		text-align: center;
+	}
+
+	.pro-info dl span.wid01 {
+		width: 4%;
+	}
+
+	.pro-info dl span.wid02 {
+		width: 12%;
+	}
+
+	.pro-info dl span.wid01 a {
+		width: 20px;
+		height: 20px;
+		display: inline-block;
+		line-height: 18px;
+		background: #c2c2c2;
+		text-align: center;
+		border-radius: 100%;
+	}
+
+	.pro-info dl span.wid01 a i {
+		color: #fff;
+	}
+
+	.pro-info dl span.wid01 a:hover {
+		background: #d2272d;
+	}
+
+	.pro-info dl span.add-wl {
+		text-align: left;
+		width: 100%;
+	}
+
+	.pro-info .save {
+		width: 100%;
+		height: 36px;
+		margin: 5px 0 20px 0;
+	}
+
+	.pro-info .save a {
+		width: 94px;
+		height: 36px;
+		display: inline-block;
+		background: #3578ba;
+		text-align: center;
+		color: #fff;
+		font-size: 14px;
+		float: right;
+		line-height: 36px;
+		margin-right: 40px;
+	}
+
+	.pro-info .save a:hover {
+		background: #1f4fb2;
+	}
+
+	.pro-add-data02 {
+		width: 100%;
+		margin: 0 auto;
+		background: #fff;
+		margin-top: 20px;
+	}
+
+	.pro-search {
+		width: 100%;
+		height: 90px;
+		margin: 0 auto;
+		/*border-bottom: #d0cfcf 1px solid;*/
+		overflow: hidden;
+	}
+
+	.pro-search .search {
+		margin-top: 30px;
+		margin-right: 20px;
+	}
+
+	.pro-search .search input {
+		width: 348px;
+	}
+
+	.pro-add-data02 .pro-info dl span {
+		width: 12.5%;
+	}
+
+	/*分页*/
+	.page {
+		width: 100%;
+		margin: 0 auto;
+		height: 60px;
+		line-height: 60px;
+	}
+
+	.page ul {
+		margin-left: 20px;
+	}
+
+	.page ul li {
+		float: left;
+		font-size: 14px;
+		color: #999;
+		margin: 0 5px;
+	}
+
+	.page ul li a {
+		width: 50px;
+		display: inline-block;
+		font-size: 14px;
+		color: #999;
+	}
+
+	.page ul li input {
+		width: 24px;
+		height: 24px;
+		border: #3578ba 1px solid;
+		text-align: center;
+		color: #3578ba;
+		margin: 0 10px;
+	}
+
+	.page ul li a:hover {
+		color: #3578ba;
+	}
+
+	/*产品资料批量导入 1*/
+	.bomb-box .box02 {
+		width: 654px;
+		height: 264px;
+		border-radius: 5px;
+		background: #fff;
+	}
+
+	.bomb-box .box02 .many-file {
+		width: 90%;
+		margin: 0 auto;
+		font-size: 14px;
+	}
+
+	.bomb-box .box02 .many-file .file {
+		margin-top: 25px;
+		position: relative;
+	}
+
+	.bomb-box .box02 .many-file span {
+		margin-left: 10px;
+	}
+
+	.bomb-box .box02 .many-file span, .bomb-box .box02 .many-file .file input[type="text"] {
+		width: 506px;
+		height: 34px;
+		display: inline-block;
+		border: #e8e8e8 1px solid;
+		position: relative;
+	}
+
+	.bomb-box .box02 .many-file .file input[type="text"] {
+		padding-left: 30px;
+		font-size: 14px;
+		color: #999;
+	}
+
+	.bomb-box .box02 .many-file span {
+		border: none;
+	}
+
+	.bomb-box .box02 .many-file .file i {
+		position: absolute;
+		top: 10px;
+		z-index: 10;
+		color: #959595;
+		font-size: 16px;
+		left: 10px;
+	}
+
+	.bomb-box .box02 .many-file-btn {
+		width: 235px;
+		margin: 0px auto;
+		margin-top: 20px;
+	}
+
+	.bomb-box .box02 .many-file-btn a {
+		width: 94px;
+		height: 36px;
+		line-height: 36px;
+		font-size: 14px;
+		display: inline-block;
+		text-align: center;
+	}
+
+	.bomb-box .box02 .many-file-btn a.btn01 {
+		background: #3f84f6;
+		color: #fff;
+	}
+
+	.bomb-box .box02 .many-file-btn .btn01 a {
+		color: #fff;
+	}
+
+	.bomb-box .box02 .many-file-btn a.btn02 {
+		border: #3f84f6 1px solid;
+		color: #3f84f6;
+		margin-left: 45px;
+	}
+
+	.bomb-box .box02 .many-file-btn a:hover {
+		background: #135c9a;
+		color: #fff;
+	}
+
+	.many-file-text {
+		width: 100%;
+		margin: 0 auto;
+		margin-top: 30px;
+	}
+
+	.many-file-text em {
+		width: 100%;
+		margin: 0 auto;
+		display: inline-block;
+		line-height: 30px;
+	}
+
+	.bomb-box .box02 .file01 {
+		width: 506px;
+		height: 34px;
+		filter: alpha(opacity=0);
+		-moz-opacity: 0;
+		opacity: 0;
+		position: absolute;
+		left: 0;
+		top: 8px;
+	}
+
+	/*产品资料批量导入 后*/
+	.bomb-box .box03 {
+		width: 648px;
+		min-height: 300px;
+		border-radius: 5px;
+		background: #fff;
+		margin-top: 15%;
+		bottom: auto;
+		padding-bottom: 18px;
+	}
+
+	.bomb-box .box03 .many-tile {
+		width: 100%;
+		height: 60px;
+		line-height: 60px;
+		font-size: 14px;
+	}
+
+	.bomb-box .box03 .many-tile i {
+		background: #04be02;
+		color: #fff;
+		font-size: 14px;
+		border-radius: 100%;
+		width: 24px;
+		height: 24px;
+		line-height: 24px;
+		margin-left: 60px;
+		text-align: center;
+		margin-right: 10px;
+	}
+
+	.bomb-box .box03 .fail-data {
+		width: 90%;
+		margin: 0 auto;
+	}
+
+	.bomb-box .box03 .fail-data p {
+		width: 100%;
+		margin: 0 auto;
+		font-size: 14px;
+		color: #959595;
+		height: 30px;
+		line-height: 30px;
+		border-bottom: none !important;
+		padding-left: 0
+	}
+
+	.bomb-box .box03 .fail-data dl {
+		width: 100%;
+		margin: 0 auto;
+	}
+
+	.bomb-box .box03 .fail-data dl span {
+		font-size: 14px;
+		width: 18.333%;
+		float: left;
+		text-align: center;
+		border: #e8e8e8 1px solid;
+		border-top: none;
+		border-right: none;
+	}
+
+	.bomb-box .box03 .fail-data dl dt, .bomb-box .box03 .fail-data dl dd {
+		width: 100%;
+		margin: 0 auto;
+		display: flex !important;
+		border-top: #e8e8e8 1px solid;
+		border-right: #e8e8e8 1px solid;
+	}
+
+	.bomb-box .box03 .fail-data dl span.wid01 {
+		width: 15%;
+	}
+
+	.bomb-box .box03 .fail-data dl span.wid02 {
+		width: 30%;
+	}
+
+	.bomb-box .box03 .fail-data dl dt, .bomb-box .box03 .fail-data dl dt span {
+		height: 40px;
+		line-height: 40px;
+		display: inline-block;
+	}
+
+	.bomb-box .box03 .fail-data dl dd, .bomb-box .box03 .fail-data dl dd span {
+		height: 50px;
+		line-height: 50px;
+		display: inline-block;
+	}
+
+	.fail-data a {
+		width: 94px;
+		height: 36px;
+		display: inline-block;
+		background: #3578ba;
+		text-align: center;
+		color: #fff;
+		font-size: 14px;
+		float: right;
+		line-height: 36px;
+		margin-top: 30px;
+	}
+
+	.fail-data a:hover {
+		background: #1f4fb2;
+	}
+
+	/*供应商列表*/
+	.supply-list {
+		width: 100%;
+		margin: 0 auto;
+		background: #fff;
+		margin-top: 10px;
+	}
+
+	.supply-list dl, .supply-list dl dt, .supply-list dl dd {
+		width: 100%;
+		margin: 0 auto;
+		border-bottom: #dcdcdc 1px dotted;
+	}
+
+	.supply-list dl dt, .supply-list dl dt span {
+		height: 50px;
+		line-height: 50px;
+	}
+
+	.supply-list dl span {
+		width: 20.5%;
+		display: inline-block;
+		text-align: center;
+		font-size: 14px;
+	}
+
+	.supply-list dl span.wid01 {
+		width: 8%;
+	}
+
+	.supply-list dl span.wid02 {
+		width: 10%;
+	}
+
+	.supply-list dl dd, .supply-list dl dd span {
+		height: 110px;
+		line-height: 110px;
+		overflow: hidden;
+	}
+
+	.supply-list dl dd p {
+		line-height: 22px;
+		padding-top: 20px;
+		font-size: 14px;
+		width: 90%;
+		margin: 0 auto;
+	}
+
+	.supply-list dl dd:hover {
+		border: #d2272d 1px solid;
+	}
+
+	.supply-list dl dd span a {
+		color: #3f84f6;
+	}
+
+	.supply-list dl dd span a.buy-btn {
+		margin-left: 15px;
+	}
+
+	.supply-list dl dd span a:hover {
+		color: #d2272d;
+	}
+
+	/*供应商详情*/
+	.pro-add-data .sty01 {
+		margin-top: 0px !important;
+	}
+
+	.supply-list01 dl span {
+		width: 20%;
+	}
+
+	.supply-list01 dl span.wid01, .supply-list01 dl span.wid02 {
+		width: 10%;
+	}
+
+	.supply-list01 dl span a.edit {
+		margin-right: 10px;
+	}
+
+	/*设置-企业设置-收货地址编辑*/
+	.bomb-box .box04 {
+		width: 780px;
+		height: 478px;
+		background: #fff;
+	}
+
+	.bomb-box .box04 p {
+		height: 50px;
+		line-height: 50px;
+		border-bottom: #dcdcdc 1px dotted;
+	}
+
+	.bomb-box .box04 ul {
+		width: 92%;
+		margin: 0 auto;
+	}
+
+	.bomb-box .box04 ul li {
+		width: 100%;
+		height: 34px;
+		margin-top: 16px !important;
+		line-height: 34px;
+		margin: 0 auto;
+	}
+
+	.bomb-box .box04 ul li.line01 div {
+		width: 50%;
+		float: left;
+	}
+
+	.bomb-box .box04 ul li.line01 div.fl span.fl, .bomb-box .box04 ul li.line01 div.fr span.fl {
+		width: 80px;
+		font-size: 14px;
+	}
+
+	.bomb-box .box04 ul li.line01 div.fl span.fr, .bomb-box .box04 ul li.line01 div.fr span.fr {
+		width: 254px;
+		height: 34px;
+		display: inline-block;
+		float: left;
+	}
+
+	.bomb-box .box04 ul li div em {
+		color: #f00;
+	}
+
+	.bomb-box .box04 ul li.line01 div.fl span.fr input, .bomb-box .box04 ul li.line01 div.fr span.fr input {
+		width: 254px;
+		height: 34px;
+		padding-left: 10px;
+		border: #cccccd 1px solid;
+		font-size: 14px;
+	}
+
+	.bomb-box .box04 ul li.line01 div.fr span.fl {
+		margin-left: 20px;
+	}
+
+	.bomb-box .box04 ul li.line02 div.fl {
+		width: 80px;
+		font-size: 14px;
+	}
+
+	.bomb-box .box04 ul li.line02 div.fr {
+		width: 632px;
+		height: 34px;
+		font-size: 14px;
+		float: left;
+	}
+
+	.bomb-box .box04 ul li.line02 div.fr input {
+		width: 632px;
+		height: 34px;
+		font-size: 14px;
+		padding-left: 10px;
+		border: #cccccd 1px solid;
+	}
+
+	.bomb-box .box04 .margin-top40 {
+		margin-top: 40px !important;
+	}
+
+	.bomb-box .box04 .emaill, .bomb-box .box04 .address {
+		position: relative;
+	}
+
+	.bomb-box .box04 .emaill i, .bomb-box .box04 .address i {
+		position: absolute;
+		bottom: -30px;
+		width: 112%;
+		font-size: 12px;
+		color: #959595;
+		left: 0;
+	}
+
+	.bomb-box .box04 .select {
+		position: relative;
+	}
+
+	.bomb-box .box04 .select i {
+		position: absolute;
+		top: 10px;
+		left: 60px;
+		color: #959595;
+	}
+
+	.bomb-box .box04 .many-file-btn {
+		width: 240px;
+		margin: 0px auto;
+		margin-top: 60px;
+	}
+
+	.bomb-box .box04 .many-file-btn a {
+		width: 94px;
+		height: 36px;
+		line-height: 36px;
+		font-size: 14px;
+		display: inline-block;
+		text-align: center;
+	}
+
+	.bomb-box .box04 .many-file-btn button {
+		width: 94px;
+		height: 36px;
+		line-height: 36px;
+		font-size: 14px;
+		display: inline-block;
+		text-align: center;
+	}
+
+	.bomb-box .box04 .many-file-btn button.btn01 {
+		border: 1px;
+		background: #3f84f6;
+		color: #fff;
+	}
+
+	.bomb-box .box04 .many-file-btn a.btn01 {
+		background: #3f84f6;
+		color: #fff;
+	}
+
+	.bomb-box .box04 .many-file-btn .btn01 a {
+		color: #fff;
+	}
+
+	.bomb-box .box04 .many-file-btn a.btn02 {
+		border: #3f84f6 1px solid;
+		color: #3f84f6;
+		margin-left: 45px;
+	}
+
+	.bomb-box .box04 .many-file-btn button:hover {
+		background: #135c9a;
+		color: #fff;
+	}
+
+	.bomb-box .box04 .many-file-btn a:hover {
+		background: #135c9a;
+		color: #fff;
+	}
+
+	/*产品资料新增*/
+	.pro-add-tab {
+		padding-bottom: 40px;
+	}
+
+	.pro-add-tab dl {
+		margin-top: 20px;
+	}
+
+	.pro-add-tab dl dd span {
+		font-size: 12px;
+		color: #959595;
+		margin-left: 10px;
+	}
+
+	.pro-add-tab dd div.fr input {
+		width: 190px !important;
+		color: #323232 !important;
+	}
+
+	.com_head span.fr {
+		margin-right: 20px;
+		color: #fff;
+	}
+
+	.com_head span.fr em {
+		margin-right: 50px;
+		font-size: 14px;
+		color:#fff;
+	}
+
+	.pro-add-tab dl dd select {
+		width: 96px;
+		height: 34px;
+		background: url("../img/purc/select.png") no-repeat right;
+		-webkit-appearance: none;
+		appearance: none;
+		-o-appearance: none;
+		-moz-appearance: none;
+		-ms-appearance: none;
+		border: #3f84f6 1px solid;
+		position: relative;
+		font-size: 14px;
+		padding-left: 10px;
+	}
+
+	.pro-add-tab .com_title01 span em {
+		color: #d2272d;
+		font-size: 14px;
+		margin-left: 5px;
+	}
+
+	.pro-add-tab .upload-pro {
+		height: 100px;
+		overflow: hidden;
+		margin-top: 20px;
+	}
+
+	.pro-add-tab .upload-pro span {
+		width: 100px;
+		height: 100px;
+		background: url("../img/purc/upload.png") no-repeat center;
+		display: inline-block;
+		border: #ccc 1px solid;
+		float: left;
+		margin-left: 0;
+	}
+
+	.pro-add-tab .upload-pro input[type="file"] {
+		width: 100px !important;
+		height: 100px;
+		filter: alpha(opacity=0);
+		-moz-opacity: 0;
+		opacity: 0;
+	}
+
+	.pro-add-tab .upload-pro i {
+		font-size: 12px;
+		color: #959595;
+		margin-left: 10px;
+		padding-top: 75px;
+		display: inline-block;
+	}
+
+	.pro-add-tab .text-detail {
+		height: 120px;
+		overflow: hidden;
+		margin-top: 20px;
+	}
+
+	.pro-add-tab .text-detail textarea {
+		width: 710px;
+		height: 110px;
+		border: #ccc 1px solid;
+		padding: 0 10px;
+		font-size: 14px;
+	}
+
+	.pro-add-tab .fj-file {
+		width: 200px;
+		height: 34px;
+		display: inline-block;
+		position: relative;
+	}
+
+	.pro-add-tab .fj-file input[type="text"], .pro-add-tab .fj-file input[type="file"] {
+		width: 200px;
+		height: 34px;
+		border: none !important;
+		top: 0;
+		padding-left: 15px;
+		z-index: 1;
+		color: #3f84f6 !important;
+	}
+
+	.pro-add-tab .fj-file i {
+		position: absolute;
+		top: 6px;
+		left: -10px;
+		z-index: 2;
+		font-size: 16px;
+		width: 18px;
+		height: 18px;
+		display: inline-block;
+		background: url("../img/purc/folder.png") no-repeat center;
+	}
+
+	.pro-add-tab .fj-file input[type="file"] {
+		filter: alpha(opacity=0);
+		-moz-opacity: 0;
+		opacity: 0;
+		position: absolute;
+		left: 0;
+		top: 0;
+	}
+
+	.pro-add-tab .many-file-btn {
+		width: 220px;
+		margin: 0px auto;
+		margin-top: 20px;
+		float: right;
+		margin-right: 40px;
+	}
+
+	.pro-add-tab .many-file-btn a {
+		width: 94px;
+		height: 36px;
+		line-height: 36px;
+		font-size: 14px;
+		display: inline-block;
+		text-align: center;
+	}
+
+	.pro-add-tab .many-file-btn button {
+		border: 1px;
+		width: 94px;
+		height: 36px;
+		line-height: 36px;
+		font-size: 14px;
+		display: inline-block;
+		text-align: center;
+	}
+
+	.pro-add-tab .many-file-btn button.btn01 {
+		background: #3f84f6;
+		color: #fff;
+	}
+
+	.pro-add-tab .many-file-btn .btn01 a {
+		color: #fff;
+	}
+
+	.pro-add-tab .many-file-btn a.btn02 {
+		border: #3f84f6 1px solid;
+		color: #3f84f6;
+		margin-left: 25px;
+	}
+
+	.pro-add-tab .many-file-btn a:hover {
+		background: #135c9a;
+		color: #fff;
+	}
+
+	.pro-add-tab .many-file-btn button.btn02 {
+		border: #3f84f6 1px solid;
+		color: #3f84f6;
+		margin-left: 25px;
+		background-color: #fff;
+	}
+
+	.pro-add-tab .many-file-btn button:hover {
+		background: #135c9a;
+		color: #fff;
+	}
+
+	.pro-add-tab dl dd div.fr {
+		position: relative;
+	}
+
+	.pro-add-tab #proText {
+		position: absolute;
+		border: none !important;
+		color: #3f84f6 !important;
+		top: 30px;
+		left: 110px;
+		width: 600px !important;
+	}
+
+	option {
+		height: 30px;
+		padding-top: 3px;
+		padding-left: 10px;
+	}
+
+	/*B2B商务采购变更-添加*/
+	.oder-change {
+		width: 100%;
+		margin: 0 auto;
+		background: #fff;
+		padding-top: 10px;
+		padding-bottom: 30px;
+	}
+
+	.oder-change .purc {
+		width: 100%;
+		margin: 0 auto;
+	}
+
+	.oder-change .purc li {
+		width: 100%;
+		height: 34px;
+		line-height: 34px;
+		margin-bottom: 16px;
+	}
+
+	.oder-change .purc li div {
+		width: 450px;
+		float: left;
+		font-size: 14px;
+	}
+
+	.oder-change .purc li div em {
+		width: 110px;
+		float: left;
+		margin-left: 30px;
+		line-height: 40px;
+		font-size: 14px;
+	}
+
+	.oder-change .purc li div span {
+		width: 275px;
+		float: left;
+		display: inline-block;
+		height: 40px;
+		line-height: 40px;
+		position: relative;
+		font-size: 14px;
+	}
+
+	.oder-change .dropdown-menu td {
+		padding: 0;
+		line-height: 30px;
+	}
+
+	.oder-change .purc li div span .select01 {
+		width: 187px;
+		height: 34px;
+		font-size: 14px;
+		padding-left: 10px;
+	}
+
+	.oder-change .purc li.beizhu div {
+		width: 800px;
+	}
+
+	.oder-change .purc li.beizhu div span {
+		width: 600px;
+	}
+
+	.oder-change .purc li div span .select01 option em {
+		margin-right: 10px;
+		width: 20px;
+		display: inline-block;
+	}
+
+	.oder-change .purc li div span .select02 {
+		background: url("../img/purc/select.png") no-repeat right;
+		-webkit-appearance: none;
+		appearance: none;
+		-o-appearance: none;
+		-moz-appearance: none;
+		-ms-appearance: none;
+		border: #5078cb 1px solid;
+		height: 34px;
+		font-size: 14px;
+		line-height: 34px;
+		padding-left: 20px;
+	}
+
+	.oder-change .purc li div span .select02 option {
+		padding-right: 21px;
+		text-align: center;
+	}
+
+	.oder-change .purc li div span .wid152 {
+		width: 152px;
+	}
+
+	.oder-change .purc li div span .wid100 {
+		width: 100px;
+	}
+
+	.editable {
+		width: 100%;
+		height: 34px;
+		border: none;
+		font-size: 14px;
+		padding-left: 4px;
+		line-height: 34px;
+	}
+
+	/*下拉样式*/
+	.oder-change .select {
+		width: 568px !important;
+		height: 34px;
+		border: #ccc 1px solid;
+		font-size: 14px;
+		position: relative;
+		margin: 0px auto;
+		margin-top: 3px;
+	}
+
+	.oder-change .select:after {
+		content: "";
+		display: block;
+		width: 8px;
+		height: 8px;
+		border-left: 1px solid #444;
+		border-bottom: 1px #444 solid;
+		position: absolute;
+		right: 10px;
+		top: 10px;
+		transform: rotate(-45deg);
+		cursor: pointer;
+		transition: transform .1s ease-out, top .1s ease-out;
+	}
+
+	.oder-change .select p {
+		width: 95% !important;
+		display: block;
+		height: 34px;
+		line-height: 32px;
+		padding: 0 15px;
+		cursor: pointer;
+		font-size: 14px;
+	}
+
+	.oder-change .select ul {
+		list-style-type: none;
+		background-color: #fff;
+		width: 100%;
+		position: absolute;
+		top: 35px;
+		overflow-y: auto;
+		left: -1px;
+		max-height: 0;
+		transition: max-height .5s ease-out;
+		z-index: 20;
+	}
+
+	.oder-change .select ul li {
+		line-height: 34px;
+		cursor: pointer;
+		padding-left: 10px;
+		font-size: 14px;
+		margin-bottom: 0;
+	}
+
+	.oder-change .select ul li:hover {
+		background-color: #f5f5f5;
+	}
+
+	.oder-change .select ul li.selected {
+		background-color: #5078cb;
+		color: #fff;
+	}
+
+	.oder-change .select ul li b, .oder-change .select p b {
+		margin-right: 16px;
+	}
+
+	@-webkit-keyframes slide-out {
+		0% {
+			transform: scale(1, 0)
+		}
+
+		25% {
+			transform: scale(1,
+			1.1)
+		}
+		50% {
+			transform: scale(1,
+			0.85)
+		}
+		0% {
+			transform: scale(1,
+			1.1)
+		}
+		0% {
+			transform: scale(1,
+			1)
+		}
+	}
+
+	.oder-change .select.open ul {
+		max-height: 500px;
+		animation: slide-out .3s ease-in;
+		transform-origin: 50% 0;
+		transition: max-height .3s ease-in;
+		border: #ccc 1px solid;
+	}
+
+	.oder-change .select.open:after {
+		transform: rotate(-225deg);
+		top: 14px;
+		transition: all .1s ease-in;
+	}
+
+	.oder-change dl {
+		width: 100%;
+		margin: 0 auto;
+		position: relative;
+	}
+
+	.oder-change dl dt {
+		width: 100%;
+		margin: 0 auto;
+		height: 40px;
+	}
+
+	.oder-change dl dt b {
+		height: 40px;
+		line-height: 48px;
+		display: inline-block;
+		color: #999;
+	}
+
+	.oder-change dl dd {
+		width: 100%;
+		margin: 0 auto;
+		min-height: 100px;
+		border-bottom: #ccc 1px dashed;
+		overflow: hidden;
+	}
+
+	.oder-change dl dd:hover {
+		border: #3f84f6 1px solid;
+	}
+
+	.oder-change dl dd:hover b.wid02 a {
+		display: inline-block;
+	}
+	.oder-change dl.delect-hover dd:hover b.wid02 a{
+		display: none;
+	}
+	.oder-change dl dd b {
+		height: 100px;
+		line-height: 50px;
+		display: inline-block;
+	}
+
+	.oder-change dl b {
+		width: 10.2%;
+		font-size: 14px;
+		float: left;
+		text-align: center;
+	}
+
+	.oder-change dl b.wid01 {
+		width: 24%;
+	}
+
+	.oder-change .purc .address {
+		width: 100%;
+	}
+
+	.oder-change .purc .address span {
+		width: 720px;
+	}
+
+	.oder-change ul .address b {
+		width: 720px
+	}
+
+	.oder-change .add-address {
+		float: right;
+		color: #5078cb;
+	}
+
+	.oder-change .add-address:hover {
+		color: #d2272d;
+	}
+
+	.oder-change dl b.wid02 {
+		width: 4%;
+	}
+
+	.oder-change dl b.wid01 p {
+		font-size: 14px;
+		line-height: 22px;
+		text-align: left;
+		margin: 0;
+	}
+
+	.oder-change dl dd b.wid01 {
+		margin-top: 15px;
+	}
+
+	.oder-change dl b.wid02 a {
+		display: none;
+	}
+
+	.oder-change dl b.wid02 a i {
+		width: 20px;
+		height: 20px;
+		display: inline-block;
+		line-height: 20px;
+		background: #d2272d;
+		text-align: center;
+		border-radius: 100%;
+		color: #fff;
+	}
+
+	.oder-change .savebtn {
+		margin-top: 30px;
+	}
+
+	.oder-change .dropdown-menu {
+		min-width: auto;
+	}
+
+	.oder-change .savebtn button {
+		border: 1px;
+		width: 94px;
+		height: 36px;
+		display: inline-block;
+		background: #3578ba;
+		text-align: center;
+		color: #fff;
+		font-size: 14px;
+		float: right;
+		line-height: 36px;
+		margin-right: 40px;
+	}
+
+	/* .oder-change .save button:hover {
+        background: #1f4fb2;
+    } */
+
+	.search-result {
+		font-size: 18px;
+		color: #969595;
+		line-height: 90px;
+	}
+
+	.search-result img {
+		margin-left: 40px;
+		font-style: inherit;
+		margin-right: 15px;
+	}
+
+	.search-result em {
+		color: #000;
+		font-size: 18px;
+	}
+
+	/*投标单*/
+	.tender-list, .tender-list02 {
+		width: 100%;
+		margin: 0 auto;
+		background: #fff;
+	}
+
+	.tender-list dl {
+		width: 100%;
+		margin: 0 auto;
+	}
+
+	.tender-list dl dt {
+		width: 100%;
+		margin: 0 auto;
+		height: 40px;
+	}
+
+	.tender-list dl dt span {
+		height: 40px;
+		line-height: 48px;
+		display: inline-block;
+		color: #999;
+	}
+
+	.tender-list dl dd {
+		width: 100%;
+		margin: 0 auto;
+		height: 100px;
+		border-bottom: #ccc 1px dashed;
+		overflow: hidden;
+	}
+
+	.tender-list dl dd:hover {
+		border: #d32526 1px solid;
+	}
+
+	.tender-list dl dd span {
+		height: 100px;
+		line-height: 50px;
+		display: inline-block;
+	}
+
+	.tender-list dl span {
+		width: 10.6%;
+		font-size: 14px;
+		float: left;
+		text-align: center;
+	}
+
+	.tender-list dl span.wid01 {
+		width: 25%;
+	}
+
+	.tender-list dl span.wid01 p {
+		font-size: 14px;
+		line-height: 22px;
+		text-align: left;
+		margin: 0;
+	}
+
+	.tender-list dl dd span.wid01 {
+		margin-top: 15px;
+	}
+
+	.tender-list .com_title01 em, .tender-list02 .com_title01 em {
+		margin-left: 5px;
+		font-size: 16px;
+		color: #f00;
+		position: relative;
+		top: 3px;
+	}
+
+	/*招标单*/
+	.tender-list02 dl {
+		width: 100%;
+		margin: 0 auto;
+	}
+
+	.tender-list02 dl dt {
+		width: 100%;
+		margin: 0 auto;
+		height: 40px;
+	}
+
+	.tender-list02 dl dt span {
+		height: 50px;
+		line-height: 50px;
+		display: inline-block;
+		color: #999;
+	}
+
+	.tender-list02 dl dd {
+		width: 100%;
+		margin: 0 auto;
+		height: 50px;
+		border-bottom: #ccc 1px dotted;
+		/*overflow: hidden;*/
+		display: inline-block;
+		display: flex;
+	}
+	.scroll-y{
+		display: inline;
+	}
+	.tender-list02 dl dd:hover {
+		border: #d32526 1px solid;
+	}
+
+	.tender-list02 dl dd span {
+		height: 50px;
+		line-height: 50px;
+		display: inline-block;
+	}
+
+	.tender-list02 dl span {
+		width: 16.6666%;
+		font-size: 14px;
+		float: left;
+		text-align: center;
+	}
+
+	.tender-list02 .com_title01 a {
+		float: right;
+		margin-right: 45px;
+		font-size: 14px;
+		line-height: 50px;
+	}
+
+	.scroll-y {
+		width: 100%;
+		margin: 0 auto;
+		max-height: 500px;
+	}
+
+	.scroll-y.active {
+		overflow-y: scroll;
+		overflow-x: hidden;
+	}
+
+	/*评标单*/
+	.tender-list02 .comment-oder {
+		width: 100%;
+		margin: 0 auto;
+	}
+
+	.tender-list02 .comment-oder:hover {
+		border: #d32526 1px solid;
+	}
+
+	.tender-list02 .comment-oder-text {
+		border-bottom: #5078cb 1px solid;
+	}
+
+	.tender-list02 .comment-oder-text, .comment-oder-text ul {
+		width: 100%;
+		margin: 0 auto;
+		padding: 5px 0;
+		position: relative;
+	}
+
+	.tender-list02 .comment-oder-text i {
+		position: absolute;
+		top: -1px;
+		left: 35px;
+		width: 20px;
+		height: 20px;
+		line-height: 15px;
+		text-align: center;
+		background: #595959;
+		display: inline-block;
+		font-weight: 700;
+		font-size: 14px;
+		color: #fff;
+		border-radius: 0 0 50px 0;
+	}
+
+	.tender-list02 .comment-oder-text ul li {
+		width: 88%;
+		margin: 0 auto;
+		height: 30px;
+		line-height: 30px;
+	}
+
+	.tender-list02 .comment-oder-text ul li span {
+		width: 33.3333%;
+		float: left;
+	}
+
+	.tender-list02 .comment-oder-text ul li span em, .comment-oder-text ul li span b {
+		font-size: 14px;
+	}
+
+	.tender-list02 .comment-oder-text ul li span em {
+		width: 110px;
+		display: inline-block;
+	}
+
+	.tender-list02 .comment-oder-text ul li span b {
+		color: #959595;
+	}
+
+	.tender-list02 .comment-oder-list, .comment-oder-list dl {
+		width: 100%;
+		margin: 0 auto;
+	}
+
+	.tender-list02 .comment-oder-list dl dt, .comment-oder-list dl dd {
+		width: 100%;
+		margin: 0 auto;
+		border-bottom: #ccc 1px dashed;
+		height: 50px;
+		line-height: 50px;
+	}
+
+	.tender-list02 .comment-oder-list dl dt span.wid01 {
+		text-align: left;
+		padding-left: 30px;
+	}
+
+	.tender-list02 .comment-oder-list dl span {
+		font-size: 14px;
+		width: 9.1%;
+		float: left;
+		color: #323232 !important;
+		line-height: 50px;
+		position: relative;
+		overflow: hidden;
+	}
+
+	.tender-list02 .comment-oder-list dl span.wid01 {
+		width: 30%;
+	}
+
+	.tender-list02 .comment-oder-list dl span.wid02 {
+		width: 15%;
+	}
+
+	.tender-list02 .comment-oder-list dl dd span a {
+		margin-left: 15px;
+		font-size: 12px;
+	}
+
+	.tender-list02 .comment-oder-list dl dd:hover {
+		border-bottom: #ccc 1px dotted;
+		border-top: none;
+		border-left: none;
+		border-right: none;
+	}
+
+	.tender-list02 .change01 {
+		width: 16px;
+		height: 14px;
+		display: inline-block;
+		float: right;
+		line-height: 7px;
+		position: absolute;
+		top: 13px;
+	}
+
+	.tender-list02 .change01 i {
+		width: 100%;
+		display: inline-block;
+		height: 7px;
+		color: #000;
+	}
+
+	.tender-list02 .change01:hover i {
+		color: #5078cb;
+	}
+
+	.tender-list02 .explain {
+		width: 90%;
+		height: 30px;
+		border: none;
+		text-align: center;
+	}
+
+	.tender-list02 .save {
+		margin-top: 30px;
+	}
+
+	.tender-list02 .save a {
+		width: 94px;
+		height: 36px;
+		display: inline-block;
+		background: #3578ba;
+		text-align: center;
+		color: #fff;
+		font-size: 14px;
+		float: right;
+		line-height: 36px;
+		margin-right: 40px;
+	}
+
+	.tender-list02 .save a:hover {
+		background: #1f4fb2;
+	}
+
+	.tender-list02 .com_title01, .tender-list .com_title01 {
+		margin-top: 0;
+	}
+
+	/*采购变更弹窗*/
+	.pro-add-data02 {
+		margin-bottom: 30px;
+	}
+
+	.pro-add-data02 .pro-info dl {
+		position: relative;
+	}
+
+	.pro-add-data02 .pro-info dl dd.active .add01 {
+		color: #d32526;
+	}
+
+	.pro-add-data02 .pro-info dl dd.active {
+		border: #d32526 1px solid;
+	}
+
+	.add-tanchuang {
+		position: absolute;
+		box-shadow: 0 0 3px #888;
+		width: 238px;
+		height: 202px;
+		background: #fff;
+		right: 100px;
+		top: 20%;
+		display: none;
+	}
+
+	.add-tanchuang ul {
+		width: 195px;
+		margin: 0 auto;
+		margin-top: 10px;
+	}
+
+	.add-tanchuang ul li {
+		width: 100%;
+		margin: 0 auto;
+		height: 34px;
+		line-height: 34px;
+		margin-top: 12px;
+	}
+
+	.add-tanchuang ul li div.fl {
+		width: 50px;
+		font-size: 14px;
+	}
+
+	.add-tanchuang ul li div.fr {
+		width: 145px;
+	}
+
+	.add-tanchuang ul li div.fr .price-input {
+		width: 145px;
+		border: #969595 1px solid;
+		height: 34px;
+		font-size: 14px;
+		padding-left: 10px;
+	}
+
+	.add-tanchuang ul li.add-btn {
+		margin-top: 20px;
+	}
+
+	.add-tanchuang ul li.add-btn div.fr a {
+		width: 62px;
+		height: 24px;
+		display: inline-block;
+		line-height: 24px;
+		text-align: center;
+	}
+
+	.add-tanchuang ul li div.fr a.off {
+		border: #3f84f6 1px solid;
+		color: #3f84f6;
+		float: left;
+	}
+
+	.add-tanchuang ul li div.fr a.ok {
+		background: #3f84f6;
+		color: #fff;
+		float: right;
+	}
+
+	.add-tanchuang ul li div.fr a:hover {
+		background: #5078cb;
+		color: #fff;
+	}
+
+	.add-tanchuang ul li .btn-wrap {
+		position: relative;
+		height: 30px;
+		width: 145px;
+		line-height: 30px;
+	}
+
+	.add-tanchuang ul li .btn-wrap input {
+		display: inline-block;
+	}
+
+	.add-tanchuang ul li .btn-wrap .number {
+		width: 145px;
+		height: 34px !important;
+		border: #969595 1px solid;
+		display: inline-block;
+		text-align: center;
+		line-height: 34px !important;
+		color: #333;
+	}
+
+	.add-tanchuang ul li .btn-wrap .number a {
+		width: 26px;
+		height: 33px;
+		display: inline-block;
+		font-size: 18px;
+		color: #666;
+		line-height: 28px;
+	}
+
+	.add-tanchuang ul li .btn-wrap .number a:hover {
+		color: #fff;
+		background: #5078cb
+	}
+
+	.add-tanchuang ul li .btn-wrap .number .reduce {
+		float: left;
+		border-right: #969595 1px solid;
+	}
+
+	.add-tanchuang ul li .btn-wrap .number .add {
+		float: right;
+		border-left: #969595 1px solid;
+	}
+
+	.add-tanchuang ul li .btn-wrap .number input {
+		float: left;
+		width: 91px;
+		height: 32px;
+		line-height: 32px;
+		text-align: center;
+		font-size: 16px;
+		color: #666;
+		border: none;
+	}
+
+	.area-select {
+		width: 204px;
+		height: 34px;
+		padding-left: 10px;
+		border: #cccccd 1px solid;
+		font-size: 14px;
+		float: left;
+		margin-left: 10px;
+	}
+
+	.area-select:first-child {
+		margin-left: 0 !important;
+	}
+
+	.area-select[size] {
+		z-index: 1000;
+		position: relative;
+	}
+
+	.area-select option {
+		width: 204px;
+		position: relative;
+		left: -10px;
+	}
+
+	.oder-change dl .editable {
+		text-align: center;
+	}
+
+	.oder-change dl dd b {
+		height: auto;
+	}
+
+	.oder-change .save button:disabled {
+		background: #ccc !important;
+	}
+
+	.pro-add-data02 table tbody {
+		font-size: 14px;
+	}
+
+	.pro-add-data02 .table-default .header {
+		background: #fff;
+		border: none;
+		font-size: 14px;
+	}
+
+	.pro-add-data02 .table-default .header th {
+		border-bottom: #e8e8e8 1px solid;
+	}
+
+	.pro-add-data02 table tbody tr td {
+		/*line-height: 50px;*/
+		height: 50px;
+		padding: 0;
+		font-size: 14px !important;
+		border-bottom: #e8e8e8 1px solid;
+		background: #fff;
+		vertical-align: middle;
+	}
+
+	.pro-add-data02 table tbody tr {
+		margin-top: 1px;
+		background: #f5f5f5;
+	}
+
+	.pro-add-data02 table tbody tr td a:hover {
+		color: #f00 !important;
+	}
+
+	.pro-add-data02 table tbody tr:hover td {
+		background: #f5f5f5;
+	}
+
+	/*蒋下划线改成框*/
+	.pro-add-data dl dd div.fr input {
+		border: #bfbfbf 1px solid !important;
+		padding-left: 10px;
+	}
+
+	.bor01 {
+		width: 187px;
+		height: 34px;
+		border: #bfbfbf 1px solid !important;
+		font-size: 14px;
+		padding-left: 10px;
+		line-height: 34px;
+	}
+	.com_title01{
+		border-bottom: #5078cb 1px dashed !important;
+	}
+	.sale-view {
+		box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+		-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+		-o-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+		-moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+		border-radius: 5px;
+		/* min-height: 1066px; */
+		background: #fff;
+		width: 1026px;
+	}
+</style>
+<div class="loading in" ng-class="{'in': loading}">
+	<!--<i></i>-->
+	<div class="wrap">
+		<div class="outer"></div>
+	</div>
+</div>
+<div id="pub" class="sale-view fr">
+	<div class="content">
+		<!--<div class="com_title">服务>采购模块>采购单<font>>新增采购单</font></div>-->
+		<div class="com_head">
+			<span>购物车详情</span>
+		</div>
+		<!--B2B商务采购变更-添加-->
+		<form class="oder-change clearfix" name="orderForm" id="orderForm">
+			<ul class="purc">
+				<li>
+					<div class="fl">
+						<em>流水号:</em> <span>{{order.code}}</span>
+					</div>
+					<div class="fr">
+						<em>录入时间:</em> <span>{{order.date | date:'yyyy-MM-dd HH:mm:ss'}}</span>
+					</div>
+				</li>
+				<li>
+					<div class="fl">
+						<em>供应商:</em> <span>{{order.receiveName}}</span>
+					</div>
+					<div class="fr">
+						<em>供应商联系人:</em>
+						<span>
+								<select class="select01" ng-model="order.vendor"
+										ng-options="(contact.venduser + '' + contact.tel) for contact in contacts">
+										<option value="">{{order.venduser}}</option>
+								</select>
+								<a class="add-address" ng-if="order.vendUU != null" ng-click="addContact(venduu)">+增加联系人</a>
+							</span>
+					</div>
+				</li>
+				<li>
+					<div class="fl">
+						<em>付款方式:</em>
+						<span>
+								<input ng-model="order.payments" list="paymentmethod" class="select02 wid152" placeholder="选择付款方式" />
+								<datalist id="paymentmethod">
+									<option value="月结30天">月结30天</option>
+									<option value="月结60天">月结60天</option>
+									<option value="现金支付">现金支付</option>
+								</datalist>
+							</span>
+					</div>
+					<div class="fr">
+						<em>交易币别:</em>
+						<span>
+							<select class="select02 wid100" ng-model="order.currency" ng-init="order.currency = 'RMB'">
+								<option value="RMB">RMB</option>
+								<option value="USD">USD</option>
+								<option value="HKD">HKD</option>
+							</select>
+							</span>
+					</div>
+				</li>
+				<li>
+					<div class="fr address">
+						<em>收货信息:</em>
+						<span class="fr">
+								<select class="select fl" ng-model="order.shipadd"
+										ng-options="(ship.address + ship.addressdet + ' ' + ship.receiver + ' ' + ship.usertel) for ship in ships">
+									<option value="">{{order.shipAddress}}</option>
+								</select>
+								<a href="javascript:void(0);" class="add-address"><i class="fa fa-plus-square fa-fw"></i>新增收货信息</a>
+							</span>
+					</div>
+				</li>
+				<li class="beizhu">
+					<div class="fl">
+						<em>备注:</em>
+						<span><input type="text" ng-model="order.remark" class="bor01" placeholder="请填写备注"
+									 style="cursor: pointer; width: 568px;" />
+							</span>
+					</div>
+				</li>
+				<!-- 汇率字段B2B暂时不做处理,所以这一部分先隐藏 -->
+				<!--<li>
+                    <div class="fl">
+                        <em>汇率:</em>
+                        <span class="fl" required="required" ng-if="order.currency == 'RMB'">
+                                <select class="select02 wid100" ng-model="order.rate" required="required">
+                                    <option value="17">17</option>
+                                    <option value="0">0</option>
+                                </select>
+                            </span>
+                        <span class="fl" required="required" ng-if="order.currency != 'RMB'"> <input
+                                class="text select02 wid100" value="0" readonly>
+                            </span>
+                    </div>
+                </li>-->
+			</ul>
+			<div class="com_title01"
+				 ng-if="order.orderItems.length == 0 && order.receiveCode">
+				<span>请先选择供应商产品</span> <a ng-click="uplodaByBatch()">批量导入</a>
+			</div>
+			<div class="com_title01"
+				 ng-if="order.orderItems.length > 0 && order.receiveCode">
+				<span>产品信息</span> <a ng-click="uplodaByBatch()">批量导入</a>
+			</div>
+			<!--产品信息-->
+			<dl ng-if="order.orderItems.length > 0" class="delect-hover">
+				<dt>
+					<b>序号</b> <b class="wid01">产品信息</b> <b>单位</b> <b>数量</b> <b>单价</b>
+					<b>税率(%)</b> <b>交货日期</b> <b>备注</b> <b class="wid02">&nbsp;</b>
+				</dt>
+				<dd ng-repeat="item in order.orderItems">
+					<b>{{$index + 1}}</b>
+					<b class="wid01" ng-if="item.id != null">
+						<p>{{item.product.code}}</p>
+						<p>{{item.product.title}}</p>
+						<p>{{item.product.spec}}</p>
+					</b>
+					<b class="wid01" ng-if="item.id == null">
+						<p>{{item.code}}</p>
+						<p>{{item.title}}</p>
+						<p>{{item.spec}}</p>
+					</b>
+					<b ng-if="item.id != null"><span ng-bind="item.product.unit != null ? item.product.unit : 'PCS'"></span></b>
+					<b ng-if="item.id == null">{{item.unit}}</b>
+					<b><input class="editable" type="text" ng-model="item.qty" placeholder="数量" style="cursor: pointer;" required="true"
+							  ng-pattern="/^(([0-9]+\.[0-9]{1,3})|([0-9]*[1-9][0-9]*\.[0-9]{1,3})|([0-9]*[1-9][0-9]*))$/" />
+					</b>
+					<b><input class="editable" type="text" ng-model="item.price" placeholder="单价" style="cursor: pointer;" required="true"
+							  ng-pattern="/^(([0-9]+\.[0-9]{1,6})|([0-9]*[1-9][0-9]*\.[0-9]{1,6})|([0-9]*[1-9][0-9]*))$/" />
+					</b>
+					<b ng-if="order.currency == 'RMB'">
+						<input class="editable" type="text" ng-model="item.taxrate" placeholder="税率"
+							   style="cursor: pointer;" ng-pattern="/^[0-9][0-9]{0,1}$/" />
+					</b>
+					<b ng-if="order.currency != 'RMB'">
+						<input class="editable" type="text" style="cursor: pointer;" value="0"
+							   readonly="readonly" />
+					</b>
+					<b><input ng-model="item.delivery"
+							  type="text" class="editable" placeholder="选择时间"
+							  datepicker-popup="yyyy-MM-dd" is-open="item.$endDateOpen"
+							  min-date="getMinDate()" ng-required="true" current-text="今天"
+							  clear-text="清除" close-text="关闭"
+							  datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+							  ng-focus="openDatePicker($event, item.$endDateOpen)"
+							  readonly="readonly"
+							  ng-click="openDatePicker($event, item.$endDateOpen, $index)">
+					</b>
+					<b class="textMore">
+						<input class="editable" type="text" ng-model="item.remark" placeholder="备注" />
+					</b>
+					<b class="wid02"><a ng-click="deleteProduct($index, item.id)"><i class="fa fa-close"></i></a></b>
+				</dd>
+			</dl>
+			<div class="savebtn" ng-if="order.orderItems[0].code != null || order.orderItems[0].product.code != null ">
+				<button ng-click="addToOrder(order)"
+						ng-disabled="orderForm.$invalid">立即购买</button>
+				<button ng-click="addToCart(order)"
+						ng-disabled="orderForm.$invalid">添加购物车</button>
+			</div>
+		</form>
+		<!-- 搜索结果列表-->
+		<div class="pro-add-data02" style="min-height: 500px;"
+			 ng-if="order.receiveCode">
+			<div class="pro-search">
+				<div class="col-xs-2 search-title fl">供应商产品库</div>
+				<div class="col-xs-8 fr">
+					<div class="col-xs-9 search" style="margin-right: 0;">
+						<input type="text" placeholder="输入供应商物料关键字查询" ng-model="keyword"
+							   ng-search="onSearch(keyword)" /> <a class="seek"
+																   ng-click="onSearch(keyword)" style="right: inherit;">搜索</a>
+					</div>
+					<div class="col-xs-3 result-title fr">
+						搜索到<em>{{total}}</em>条
+					</div>
+				</div>
+			</div>
+			<table class="block table table-default table-striped"
+				   ng-table="tableParams">
+				<thead>
+				<tr class="header">
+					<th width="250">名称</th>
+					<th width="160">编号</th>
+					<th>规格</th>
+					<th width="80">单位</th>
+					<th width="80">选择</th>
+				</tr>
+				</thead>
+				<tbody ng-if="tableParams.total() == 0">
+				<tr>
+					<td colspan="5">
+						<div id="empty">
+							<div class="left_img">
+								<a href="http://www.ubtob.com/" target="_blank" title="优软云首页"><img src="static/img/empty/uas_empty.png"></a>
+								<a href="#/index" title="B2B商务首页">B2B 商务</a>
+							</div>
+							<div class="right_link">
+								<p ng-if="tip != null">搜索"{{tip}}"未找到产品信息,请重新输入搜索条件</p>
+								<p ng-if="tip == null">您的供应商还未添加商品信息,请尽快通知供应商</p>
+							</div>
+						</div>
+					</td>
+				</tr>
+				</tbody>
+				<tbody>
+				<tr ng-repeat="product in $data">
+					<td class="text-center" ng-bind="::product.title"></td>
+					<td class="text-center" ng-bind="::product.code"></td>
+					<td class="text-center f12" ng-bind="::product.spec"></td>
+					<td class="text-center" ng-bind="::product.unit"></td>
+					<td class="text-center"><a title="添加"
+											   href="javascript:void(0)" ng-click="check(product)"
+											   style="text-decoration: none; color: #3f84f6;" id="click"
+											   class="add01">添加</a>
+						<div class="add-tanchuang">
+							<ul>
+								<li>
+									<div class="fl">数量:</div>
+									<div class="fr">
+										<div class="btn-wrap">
+													<span class="number"> <a href="###" class="reduce">-</a>
+														<input type="text" value="100"> <a href="###"
+																						   class="add">+</a>
+													</span>
+										</div>
+									</div>
+								</li>
+								<li>
+									<div class="fl">交期:</div>
+									<div class="fr">
+										<input type="text" class="price-input" value="时间选择">
+									</div>
+								</li>
+								<li>
+									<div class="fl">单价:</div>
+									<div class="fr">
+										<input type="text" class="price-input" value="¥1.23">
+									</div>
+								</li>
+								<li class="add-btn">
+									<div class="fl">&nbsp;</div>
+									<div class="fr">
+										<a href="javascript:void(0);" class="off">取消</a><a
+											href="javascript:void(0);" class="ok">确认</a>
+									</div>
+								</li>
+							</ul>
+						</div></td>
+				</tr>
+				</tbody>
+			</table>
+		</div>
+	</div>
+</div>
+<!--设置-企业设置-收货地址编辑-->
+<div class="bomb-box" style="display: none">
+	<form class="box04 box" name="shipAddress" id="shipAddress">
+		<i class="off"><img src="static/img/purc/close.png" alt="" /></i>
+		<p>收货人资料</p>
+		<ul>
+			<li class="line01">
+				<div class="fl">
+						<span class="fl"><em>*</em>收货人:
+						</span> <span class="fr"><input type="text" placeholder="填写收货人"
+														ng-model="ship.receiver" required="true"
+														ng-pattern="/^[\u4e00-\u9fa5]{1,6}$|^[\dA-Za-z]{1,12}$/" /></span>
+				</div>
+				<div class="fr">
+						<span class="fl"><em>*</em>手机:
+						</span> <span class="fr"><input type="text"
+														ng-model="ship.usertel" required="true"
+														ng-pattern="/^1(3|4|5|7|8)\d{9}$/" /></span>
+				</div>
+			</li>
+			<li class="line01">
+				<div class="fl">
+						<span class="fl">固定电话<em></em>:
+						</span> <span class="fr"><input type="text" ng-model="ship.phone"
+														ng-pattern="/([0-9]{3,4}-)?[0-9]{7,8}/" /></span>
+				</div>
+				<div class="fr">
+					<span class="fl">邮箱:</span> <span class="fr emaill"><input
+						type="text" ng-model="ship.email"
+						ng-pattern="/^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/" /><i>用于接收订单提醒邮件,便于您及时了解订单状态</i></span>
+				</div>
+			</li>
+			<li class="line02 margin-top40">
+				<div class="fl">
+					<em>*</em>所在地址:
+				</div> <!--<div class="select fr"><input type="text" placeholder="请选择" ng-model="ship.address" required="true"/><i class="fa fa-angle-down"></i></div>-->
+				<div class="select fr">
+					<select required="" class="area-select" ng-model="ship.province"
+							ng-options="key as key for (key,value) in provinces"
+							ng-change="ship.city='';ship.district='';" required="true">
+						<option value="">省</option>
+					</select> <select class="area-select" ng-model="ship.city"
+									  ng-options="key as key for (key,value) in provinces[ship.province]"
+									  ng-change="ship.district='';" required="true">
+					<option value="">市</option>
+				</select> <select class="area-select" ng-model="ship.district"
+								  ng-options="value as value for value in provinces[ship.province][ship.city]"
+								  required="true">
+					<option value="">区</option>
+				</select>
+				</div>
+			</li>
+			<li class="line02">
+				<div class="fl">
+					<em>*</em>详细地址:
+				</div>
+				<div class="fr">
+					<input type="text" ng-model="ship.addressdet" required="true" />
+				</div>
+			</li>
+			<li class="line02">
+				<div class="fl">地址别名:</div>
+				<div class="fr address">
+					<input type="text" ng-model="ship.addalias" /><i>建议填写常用名称:家里/父母家/公司</i>
+				</div>
+			</li>
+		</ul>
+		<div class="many-file-btn">
+			<button class="btn01" ng-click="saveShipAddress(ship)"
+					ng-disabled="shipAddress.$invalid">保存</button>
+			<a href="#" class="btn02">取消</a>
+		</div>
+	</form>
+</div>
+<script src="static/lib/jquery/jquery.min.js"></script>
+<script>
+    $(function(){
+        /*下拉效果*/
+        $('.select p').click(function(e){
+            $('.select').toggleClass('open');
+            e.stopPropagation();
+        });
+        $('.select ul li').click(function(e){
+            var title=$(this).html();
+            $('.select p').html(title);
+            $(this).addClass('selected').siblings().removeClass('selected');
+            $('.select').removeClass('open');
+            e.stopPropagation();
+        });
+        $(document).click(function(){
+            $('.select').removeClass('open');
+        })
+        /*鼠标移动上去删除*/
+        $('.oder-change dl dd').hover(function(){
+            $(this).find('a').toggle();
+        });
+        /*点击添加弹出框*/
+        $(".pro-add-data02 .add01").click(function(){
+            $(".add-tanchuang").show();
+            $(this).parents("dd").addClass("active").siblings().removeClass("active");
+        });
+        $(".add-tanchuang a.off").click(function(){
+            $(this).parents(".add-tanchuang").hide();
+            $(this).parents(".pro-add-data02").find("dd").removeClass("active");
+        });
+        //增加数量
+        $(document).on('click','.add-tanchuang .btn-wrap span.number a.add',function () {
+            var sum = parseInt($(this).prev().val())+1;
+            $(this).prev().val(sum)
+        });
+        //减少数量
+        $(document).on('click','.add-tanchuang .btn-wrap span.number a.reduce',function () {
+            var sum = parseInt($(this).next().val())-1;
+            $(this).next().val(sum);
+        });
+        //新增收货地址
+        $(".oder-change ul li .add-address").click(function(){
+            document.getElementById('shipAddress').reset();
+            $(".bomb-box").show();
+        });
+        $(".bomb-box .box04 .off,.box04 .many-file-btn .btn02").click(function(){
+            $(".bomb-box").hide();
+        })
+        $(".bomb-box .box04 .off,.box04 .many-file-btn .btn01").click(function(){
+            $(".bomb-box").hide();
+        })
+
+    })
+</script>

+ 1 - 14
src/main/webapp/resources/view/usercenter/b2b/modal/contact_person_modal.html

@@ -1,14 +1,3 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="UTF-8"/>
-	<title>B2B商务账号设置-个人信息</title>
-	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
-	<meta name="Keywords" content=""/>
-	<meta name="Description" content=""/>
-	<link rel="stylesheet" href="static/css/add.css "/>
-</head>
-<body>
 <!--B2B商务账号设置-个人信息-->
 <style>
 	.bomb-box .box01{
@@ -66,6 +55,4 @@
 			</ul>
 		</form>
 	</div>
-</div>
-</body>
-</html>
+</div>

+ 58 - 65
src/main/webapp/resources/view/usercenter/b2b/modal/enableOrderList.html

@@ -110,7 +110,7 @@
     overflow: auto;
 }
 </style>
-<link rel="stylesheet" href="static/css/public.css">
+<link rel="stylesheet" href="static/css/b2bPublic.css">
 <div class="block" id="public">
     <div class="loading in" ng-class="{'in': loading}">
         <div class="wrap">
@@ -125,72 +125,65 @@
         </div>
     </div>
     <div class="condition block">
-        <div class="search-bg condition block" style="padding: 10px 15px;">
-            <div class="row">
-                <div id="topSearch" style="float: left">
-                    <a ng-click="changeDateZone(1);condition.$open=false" title="最近一个月"
-                       ng-class="{'active':condition.dateZone=='1'}">最近一个月</a>
-                    <a ng-click="changeDateZone(3);condition.$open=false" title="最近三个月"
-                       ng-class="{'active':condition.dateZone=='3'}">最近三个月</a>
-                    <a ng-click="changeDateZone(6);condition.$open=false" title="最近六个月"
-                       ng-class="{'active':condition.dateZone=='6'}">最近六个月</a>
-                    <a ng-click="condition.$open=!condition.$open;changeDateZone(-1)" title="自定义"
-                       ng-class="{'active':condition.dateZone=='-1'}">自定义</a>
-                </div>
-                <div class="col-xs-6" style="float: right;">
-                    <div class="search">
-                        <div class="form-group form-group-sm has-feedback" dropdown auto-close="outsideClick"
-                             on-toggle="searchAdvance=open">
-                            <input type="search" class="form-control input-sm" ng-model="keyword"
-                                   ng-search="onSearch(keyword)" placeholder="输入单据编号、客户名称、物料名称搜索" style="width: 100%"/>
-                            <a class="btn input-group-addon" ng-click="onSearch(keyword)">搜索</a>
-                        </div>
-                    </div>
-                </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="more-list more" ng-class="{'open': condition.$open}">
-                <form class="form-inline">
-                    <div class="form-group ">
-                        <label>日期:</label>
-                        <div class="btn-group btn-menu" dropdown is-open="condition.$dateZoneOpen">
-                            <ul class="dropdown-menu">
-                                <li><a ng-click="changeDateZone(1)">一个月内</a></li>
-                                <li><a ng-click="changeDateZone(6)">半年内</a></li>
-                                <li><a ng-click="changeDateZone()">半年前</a></li>
-                            </ul>
-                        </div>
-                        <div class="form-group input-group input-group-xs input-trigger">
-                            <input type="text" ng-model="condition.dateFrom"
-                                   class="form-control" placeholder="从"
-                                   datepicker-popup="yyyy-MM-dd" is-open="condition.$fromOpened"
-                                   ng-required="true" max-date="condition.dateTo"
-                                   current-text="今天" clear-text="清除" close-text="关闭"
-                                   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-                                   ng-focus="openFilterDatePicker($event, condition, '$fromOpened')">
-                            <span class="input-group-btn">
-						<button type="button" class="btn btn-default"
-                                ng-click="openFilterDatePicker($event, condition, '$fromOpened')">
-							<i class="fa fa-calendar"></i>
-						</button>
-					</span>
-                        </div>
-                        <div class="form-group input-group input-group-xs input-trigger">
-                            <input type="text" ng-model="condition.dateTo"
-                                   class="form-control" placeholder="到"
-                                   datepicker-popup="yyyy-MM-dd" is-open="condition.$toOpened"
-                                   ng-required="true" min-date="condition.dateFrom"
-                                   current-text="今天" clear-text="清除" close-text="关闭"
-                                   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-                                   ng-focus="openFilterDatePicker($event, condition, '$toOpened')">
-                            <span class="input-group-btn">
-						<button type="button" class="btn btn-default"
-                                ng-click="openFilterDatePicker($event, condition, '$toOpened')">
-							<i class="fa fa-calendar"></i>
-						</button>
-					</span>
-                        </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>
                     </div>
-                </form>
+                </div>
+                <div class="sreach-input fr">
+                    <input type="search" class="form-control input-sm" ng-model="keyword"
+                           ng-search="onSearch(keyword)" placeholder="输入单据编号、客户名称、物料名称搜索"/>
+                    <a class="btn input-group-addon" ng-click="onSearch(keyword)">搜索</a>
+                </div>
             </div>
         </div>
     </div>

+ 2 - 2
src/main/webapp/resources/view/usercenter/b2b/order/usercenter_order.html

@@ -205,8 +205,8 @@
 			<li ng-class="{'active': storeType=='deputy'}"><a ui-sref="purc_deputy">代采订单</a></li>
 			<li ng-class="{'active': storeType=='outorder'}"><a ui-sref="purc_make_outorder">委外订单</a></li>
 			<li class="down-purchase">
-				<a class="tab_add" ui-sref="purc.newOrder" title="新增采购单"><i class="fa fa-plus-square fa-fw"></i>新增</a>
-				<a class="tab_add" ui-sref="purc.cart" title="购物车"><i class="fa fa-shopping-cart fa-fw"></i>购物车</a>
+				<a class="tab_add" ui-sref="purc_newOrder" title="新增采购单"><i class="fa fa-plus-square fa-fw"></i>新增</a>
+				<a class="tab_add" ui-sref="purc_cart" title="购物车"><i class="fa fa-shopping-cart fa-fw"></i>购物车</a>
 				<span class='tab_add' ng-click="exportXls()">
 					<i class="fa fa-file-excel-o fa-fw"></i>导出Excel
 				</span>