Przeglądaj źródła

新增发货单

shenjj 8 lat temu
rodzic
commit
9a6c7b1320

+ 135 - 0
src/main/webapp/resources/js/common/services/Make.js

@@ -0,0 +1,135 @@
+define([ 'ngResource'], function() {
+	angular.module('MakeServices', [ 'ngResource'
+	]).factory('B2bMakeOrder', ['$resource', 'BaseService', function($resource, BaseService) {
+    var b2bPath = BaseService.getB2bUrl();
+		return $resource(b2bPath + 'make/orders/info/search', {}, {
+			getItem: {
+				url: b2bPath +  'make/orders/:id/info',
+				method: 'GET'
+			},
+			reply: {
+				url: b2bPath + 'make/orders/:orderId/reply',
+				method: 'POST',
+				params: {
+					orderId: 'orderId'
+				}
+			}, 
+			getReply: {
+				url: b2bPath + 'make/orders/:orderId/reply',
+				method: 'GET',
+				isArray: true,
+				params: {
+					orderId: 'orderId'
+				}
+			},	
+			getTodo: {
+				url: b2bPath + 'make/orders/info/search',
+				method: 'GET',
+				params: {
+					_state: 'todo'
+				}
+			},
+			getDone: {
+				url: b2bPath + 'make/orders/info/search',
+				method: 'GET',
+				params: {
+					_state: 'done'
+				}
+			},
+			printCount: {
+				url: b2bPath + 'make/orders/printCount/:id',
+				method: 'POST'
+			},
+			getEnd: {
+				url: b2bPath + 'make/orders/info/search',
+				method: 'GET',
+				params: {
+					_state: 'end'
+				}
+			},
+			getAll: {},
+			setRead:{
+				url: b2bPath + 'make/orders/setRead',
+				method: 'POST'
+			},
+			setReadByState:{
+				url: b2bPath + 'make/orders/setReadByState',
+				method: 'GET'
+			},
+			getUnreadIds:{
+				url: b2bPath + 'make/orders/getUnreadIds',
+				method: 'GET'
+			},
+			getUnreadCount:{
+				url: b2bPath + 'make/orders/unread',
+				method: 'GET'
+			},
+			exportXls: {
+				url: b2bPath + 'make/orders/xls/permission',
+				method: 'GET'
+			}
+		});
+	}]).factory('B2bMakeChange', ['$resource', 'BaseService', function($resource, BaseService) {
+    var b2bPath = BaseService.getB2bUrl();
+		return $resource(b2bPath + 'make/changes/info/search', {}, {
+			reply: {
+				url: b2bPath + 'make/changes/:itemId/reply',
+				method: 'POST',
+				params: {
+					itemId: 'itemId'
+				}
+			},
+			getAll: {
+				url: b2bPath + 'make/changes/info/search',
+				method: 'GET',
+			},
+			getItem: {
+				url: b2bPath + 'make/changes/:id/info',
+				method: 'GET',
+			},
+			exportXls: {
+				url: b2bPath + 'make/changes/xls/permission',
+				method: 'GET',
+			}
+		});
+	}]).factory('B2bMakeAccept',['$resource', 'BaseService', function($resource, BaseService){
+    var b2bPath = BaseService.getB2bUrl();
+		return $resource(b2bPath + 'make/accept/:id',{},{
+			getAll: {},
+			exportXls: {
+				url: b2bPath + 'make/accept/xls/permission',
+				method: 'GET'
+			}
+		});
+	}]).factory('B2bMakeReturn',['$resource', 'BaseService', function($resource, BaseService){
+    var b2bPath = BaseService.getB2bUrl();
+		return $resource(b2bPath + 'make/return/:id',{},{
+			getAll: {},
+			exportXls: {
+				url: b2bPath + 'make/return/xls/permission',
+				method: 'GET'
+			}
+		});
+	}]).factory('B2bMakeOutOrder', ['$resource', 'BaseService', function($resource, BaseService){
+    var b2bPath = BaseService.getB2bUrl();
+		return $resource(b2bPath + 'make/outorders/info/search', {}, {
+            getReply: {
+                url: b2bPath + 'make/orders/:orderId/reply',
+                method: 'GET',
+                isArray: true,
+                params: {
+                    orderId: 'orderId'
+                }
+            },
+			getAll: {},
+			getItem: {
+				url: b2bPath + 'make/outorders/:id/info',
+				method: 'GET'
+			},
+			exportXls: {
+				url: b2bPath + 'make/outorders/xls/permission',
+				method: 'GET'
+			}
+		})
+	}]);
+});

+ 9 - 3
src/main/webapp/resources/js/vendor/app.js

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

+ 93 - 0
src/main/webapp/resources/js/vendor/controllers/b2b/sale/sale_makeorder_detail.js

@@ -0,0 +1,93 @@
+/**
+ * 委外加工单详细
+ */
+define(['app/app'], function (app) {
+  app.register.controller('MakeOrderDetailCtrl',
+      ['$rootScope', '$scope', '$stateParams', 'B2bMakeOrder', 'toaster', 'B2bReportService',
+        'BaseService', 'B2bCurrentRole',
+        function ($rootScope, $scope, $stateParams, MakeOrder, toaster, ReportService,
+            BaseService, CurrentRole) {
+          $rootScope.active = 'vendor_order'
+          BaseService.scrollBackToTop();
+          // 获取当前用户是否为普通用户
+          CurrentRole.isUser({}, {}, function (data) {
+            $scope.isUser = data.isUser;
+          });
+          var loadData = function () {
+            MakeOrder.getItem({id: $stateParams.id}, function (data) {
+              $scope.order = data;
+              var sum = $scope.order.qty * $scope.order.price;
+              $scope.order.total = sum;
+              $scope.loading = false;
+            }, function (response) {
+              toaster.pop('error', '', response.data);
+            });
+          };
+          loadData();
+          // 获取回复记录
+          $scope.getReply = function (item) {
+            if (!item.replies) {
+              MakeOrder.getReply({orderId: item.id}, function (replies) {
+                item.replies = replies;
+              });
+            }
+          };
+          $scope.openDatePicker = function ($event, item, openParam) {
+            $event.preventDefault();
+            $event.stopPropagation();
+            item[openParam] = !item[openParam];
+          };
+
+          // 点击回复
+          $scope.onReplyClick = function (order, inverse) {
+            if (order.reply) {
+              if (!order.reply.qty || order.reply.qty < 0 || order.reply.qty
+                  > order.qty) {
+                toaster.pop('warning', '提示', '请填写有效的回复数量!');
+                return;
+              }
+              var reply = angular.copy(order.reply);
+              if (reply.delivery) {
+                if (typeof reply.delivery == 'object')
+                  reply.delivery = reply.delivery.getTime();
+              } else {
+                reply.delivery = order.delivery;
+              }
+              if (inverse && inverse == -1) reply.qty = -1 * reply.qty;// 取相反
+              $scope.loading = true;
+              MakeOrder.reply({orderId: order.id}, reply, function () {
+                $scope.loading = false;
+                toaster.pop('info', '提示', (inverse == -1 ? '撤销成功' : '回复成功'));
+                loadData();
+              }, function (response) {
+                $scope.loading = false;
+                toaster.pop('error', '回复失败', response.data);
+              });
+            }
+          };
+
+          // 打开回复
+          $scope.openReply = function (order) {
+            if (!order.reply) {
+              order.reply = {
+                qty: order.qty - (order.replyQty ? order.replyQty : 0),
+                delivery: order.delivery
+              }
+            }
+            order.$editing = true;
+          };
+
+          // 关闭回复
+          $scope.closeReply = function (order) {
+            order.$editing = false;
+          }
+
+          // 委外订单
+          $scope.print = function (order) {
+            MakeOrder.printCount({id: order.id}, {});//增加打印此次
+            ReportService.print(order.enUU, 'MAKE', 'where make$orders.ma_id ='
+                + order.id);
+          };
+
+        }]);
+})

+ 89 - 57
src/main/webapp/resources/js/vendor/controllers/b2b/saleMaketodoCtrl.js

@@ -4,65 +4,95 @@
  */
  */
 define(['app/app'], function (app) {
 define(['app/app'], function (app) {
     "use strict";
     "use strict";
-    app.register.controller('saleMaketodoCtrl', ['$scope', '$filter', 'MakeOrder', 'ngTableParams', 'toaster', 'ReportService', 'BaseService', 'B2bSearchFilter', '$http', 'B2bCurrentRole',
-        function ($scope, $filter, MakeOrder, ngTableParams, toaster, ReportService, BaseService, SearchFilter, $http, B2bCurrentRole) {
+    app.register.controller('saleMaketodoCtrl', ['$rootScope','$scope', '$filter', 'B2bMakeOrder', 'ngTableParams', 'toaster', 'B2bReportService', 'BaseService', 'B2bSearchFilter', '$http', 'B2bCurrentRole',
+        function ($rootScope, $scope, $filter, MakeOrder, ngTableParams, toaster, ReportService, BaseService, SearchFilter, $http, B2bCurrentRole) {
+          $rootScope.active = 'vendor_order'
+          $scope.tab = 'maketodo'
             var b2bUrl = BaseService.getB2bUrl()
             var b2bUrl = BaseService.getB2bUrl()
             BaseService.scrollBackToTop();
             BaseService.scrollBackToTop();
-            /**
-             * 页面状态按钮过滤
-             */
-            var getState = function (active) {
-                var fn = 'get';
-                switch (active) {
-                    case 'done':
-                        fn = 'getDone';
-                        break;
-                    case 'todo':
-                        fn = 'getTodo';
-                        break;
-                    case 'end':
-                        fn = 'getEnd';
-                        break;
-                    case 'waiting':
-                        fn = 'getWaiting';
-                        break;
-                    case 'received':
-                        fn = 'getReceived';
-                        break;
-                    case 'invalid':
-                        fn = 'getInvalid';
-                        break;
-                    // 已采纳
-                    case 'agreed':
-                        fn = 'getAgreed';
-                        break;
-                    // 未采纳
-                    case 'refused':
-                        fn = 'getRefused';
-                        break;
-                    // 个人
-                    case 'personal':
-                        fn = 'getPersonal';
-                        break;
-                    // 集体
-                    case 'teams':
-                        fn = 'getTeams';
-                        break;
-                    // 非标准
-                    case 'nonstandard':
-                        fn = 'getNonstandard';
-                        break;
-                    // 标准
-                    case 'standard':
-                        fn = 'getStandard';
-                        break;
-                    // 变更单无需确认
-                    case 'unread':
-                        fn = 'getUnread';
-                        break;
-                }
-                return fn;
-            };
+          /**
+           * 改变单据日期范围
+           */
+          var getDateCondition = function (zone, condition) {
+            var fromDate = new Date();
+            var toDate = new Date();
+            //去除时分秒限制,dateFrom设置成0时0分0秒,dateTo设置成23时59分59秒
+            fromDate.setHours(0, 0, 0, 0);
+            toDate.setHours(23, 59, 59, 999);
+            if (zone == -1) { // 自定义时间,什么都不做
+
+            } else if (zone == 1) {
+              fromDate.setMonth(fromDate.getMonth() - 1);
+              condition.dateFrom = fromDate;
+              condition.dateTo = toDate;
+            } else if (zone == 3) {
+              fromDate.setMonth(fromDate.getMonth() - 3);
+              condition.dateFrom = fromDate;
+              condition.dateTo = toDate;
+            } else if (zone == 6) {
+              fromDate.setMonth(fromDate.getMonth() - 6);
+              condition.dateFrom = fromDate;
+              condition.dateTo = toDate;
+            } else {
+              condition.dateFrom = null;
+              condition.dateTo = null;
+            }
+          };
+          /**
+           * 页面状态按钮过滤
+           */
+          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;
+          };
             $scope.storeType = 'maketodo';
             $scope.storeType = 'maketodo';
             // 获取当前用户是否为普通用户
             // 获取当前用户是否为普通用户
             B2bCurrentRole.isUser({}, {}, function (data) {
             B2bCurrentRole.isUser({}, {}, function (data) {
@@ -136,6 +166,8 @@ define(['app/app'], function (app) {
                         console.log(data)
                         console.log(data)
                         params.total(data.totalElement);
                         params.total(data.totalElement);
                         $defer.resolve(data.content);
                         $defer.resolve(data.content);
+                        $scope.infoCommon = data
+                        $scope.infoCommon.all = data.content.length
                         $scope.searchFilterXls = angular.copy(param.searchFilter);//保存当前取值的条件
                         $scope.searchFilterXls = angular.copy(param.searchFilter);//保存当前取值的条件
                     }).error(function (response) {
                     }).error(function (response) {
                         toaster.pop('error', response);
                         toaster.pop('error', response);

+ 1 - 1
src/main/webapp/resources/view/vendor/b2b/change/sale_change_details.html

@@ -216,7 +216,7 @@
             <span class="title">采购单号:</span>
             <span class="title">采购单号:</span>
             <div class="content">
             <div class="content">
               <a ng-bind="::change.orderCode"
               <a ng-bind="::change.orderCode"
-                 ui-sref="sale.order_detail({id:change.orderId})" target="_blank"></a>
+                 ui-sref="sale_order_detail({id:change.orderId})" target="_blank"></a>
             </div>
             </div>
           </div>
           </div>
           <!-- <div class="col-xs-3">
           <!-- <div class="col-xs-3">

+ 1 - 1
src/main/webapp/resources/view/vendor/b2b/sale/sale_makechangedetail.html

@@ -221,7 +221,7 @@
           <span class="title">委外单号</span>
           <span class="title">委外单号</span>
           <div class="content">
           <div class="content">
             <a ng-bind="::change.orderCode"
             <a ng-bind="::change.orderCode"
-               ui-sref="sale.makeorder_detail({id:change.orderId})" target="_blank"></a>
+               ui-sref="sale_makeorder_detail({id:change.orderId})" target="_blank"></a>
           </div>
           </div>
         </div>
         </div>
       </div>
       </div>

+ 388 - 0
src/main/webapp/resources/view/vendor/b2b/sale/sale_makeorder_detail.html

@@ -0,0 +1,388 @@
+<style>
+  .text-trans {
+    right: 24px
+  }
+  .base-info {
+    box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    -o-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+    border-radius: 5px;
+    /*min-height: 1066px;*/
+    background: #fff;
+    width: 1026px;
+  }
+  #order-detail-list {
+    font-size: 14px;
+  }
+  .pub-com_head, .com_head {
+    width: 100%;
+    height: 35px;
+    line-height: 35px;
+    background: #5078cb;
+    border-radius: 5px 5px 0 0;
+    /* background: url(../img/approvalFlow/comm_bg01.png) no-repeat left; */
+    /* background-color: #f5f5f5; */
+    /* background-size: 100% 100%; */
+  }
+  .pub-com_head span, .com_head span {
+    margin-left: 10px;
+    color: #fff;
+    font-size: 14px;
+    font-weight: bold;
+  }
+  .pub-com_head .p-right {
+    float: right;
+  }
+  .pane .pane-body {
+    /*padding: 15px!important;*/
+  }
+  com_title01, .title-div {
+    /*border-bottom: 1px dashed #3f84f6 !important;*/
+  }
+  .title-div {
+    color: #5078cb;
+    font-size: 14px;
+    font-weight: 600;
+    /*padding-left: 20px !important;*/
+    height: 50px;
+    padding-top: 11px;
+    position: relative;
+  }
+  .f14 {
+    font-size: 14px !important;
+  }
+  #order-detail-list .row {
+    width: 96%;
+    margin: 0 auto;
+    line-height: 30px;
+  }
+  .base-info .item {
+    line-height: 26px;
+    /* border-bottom: 1px dotted #e8e8e8; */
+    padding: 5px 0;
+  }
+  #order-detail-list .title {
+    font-weight: inherit;
+  }
+  .base-info .title {
+    float: left;
+    width: 92px;
+    color: #333;
+    font-weight: bold;
+  }
+  #order-detail-list .content {
+    color: #666;
+  }
+  .base-info .content {
+    float: left;
+    white-space: nowrap;
+  }
+  .title-div .end {
+    position: absolute;
+    top: 10px;
+    right: 0;
+    line-height: 24px;
+    padding-left: 15px;
+    background: #fff;
+    z-index: 2;
+  }
+  .block {
+    background-color: #fff;
+    border-radius: 5px;
+    width: 100%;
+    position: relative;
+    margin-bottom: 0px;
+  }
+  #order-detail-list .table-default .header {
+    box-shadow: none;
+    border: none;
+    background: none;
+    background: #f9f9f9;
+  }
+  #order-detail-list .table-default .header th {
+    display: inline-block;
+    border-bottom: none;
+    font-weight: normal;
+    color: #999;
+  }
+  #order-detail-list .table-default th, #order-detail-list .table-default td {
+    /*border-top: #ddd 1px dotted;*/
+  }
+  #order-detail-list .table-default tbody tr {
+    background: none;
+    position: relative;
+  }
+  #order-detail-list .table-default tbody tr td {
+    vertical-align: middle;
+    color: #323232;
+    position: relative;
+    padding: 25px 0px;
+  }
+  [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak, .ng-hide:not(.ng-hide-animate) {
+    display: none !important;
+  }
+  .text-bold {
+    font-weight: 700;
+  }
+
+  .text-num {
+    font-style: normal;
+    word-break: break-all;
+    font-size: 14px;
+  }
+  .text-muted {
+    color: #333;
+    font-size: 14px;
+  }
+  .bottomB {
+    border-bottom: 2px solid #f5f5f5;
+    padding: 15px 30px 15px 15px;
+  }
+
+  .title-div .f14{
+    border-left: 5px solid #5078cb;padding-left: 10px;
+  }
+
+  .order-number {
+    position: absolute;
+    top: -1px;
+    left: -1px;
+    width: 20px;
+    height: 20px;
+    line-height: 20px;
+    text-align: center;
+    background: #f9f9f9;
+    font-weight: 500;
+    border: solid 1px #d5d5d5;
+    border-radius: 0 0 10px 0;
+  }
+  #order-detail-list .table-default tbody tr td.product {
+    padding-left: 30px;
+  }
+  #order-detail-list .table-default tbody tr td{
+    border-right: 1px solid #e8e8e8;
+  }
+  .text-trans {
+    top: -20px;
+  }
+</style>
+<div class="pane base-info fr" id="order-detail-list">
+  <div class="pub-com_head">
+    <span>委外加工单</span>
+    <div class="p-right">
+      <a ng-click="print(order)" style="color: #fff;margin-right: 10px" class="pull-right text-simple"><i
+          class="fa fa-print fa-fw"></i>打印</a>
+    </div>
+  </div>
+  <div class="pane-body">
+    <div class="bottomB">
+    <div class="title-div">
+      <span class="f14">委外资料</span>&nbsp;
+    </div>
+    <div class="row row-sm item">
+      <div class="col-xs-6">
+        <span class="title">委外单号</span>
+        <div class="content" ng-bind="::order.code"></div>
+      </div>
+      <div class="col-xs-6">
+        <span class="title">日期</span>
+        <div class="content" ng-bind="::order.date | date:'yyyy-MM-dd'"></div>
+      </div>
+    </div>
+    <div class="row row-sm item">
+      <div class="col-xs-6">
+        <span class="title">客户</span>
+        <div class="content" ng-bind="::order.enterprise.enName"></div>
+      </div>
+      <div class="col-xs-6">
+        <span class="title">录单人</span>
+        <div class="content" ng-bind="::order.recorder"></div>
+      </div>
+    </div>
+    </div>
+    <div class="bottomB">
+    <div class="title-div" >
+      <span class="f14">交易信息</span>&nbsp;
+    </div>
+    <div class="row row-sm item">
+      <div class="col-xs-6">
+        <span class="title">币别</span>
+        <div class="content" ng-bind="::order.currency"></div>
+      </div>
+      <div class="col-xs-6">
+        <span class="title">金额</span>
+        <div class="content" ng-bind="::(isUser ? '-' : order.total) | number: 2"></div>
+      </div>
+    </div>
+    <div class="row row-sm item">
+      <div class="col-xs-6">
+        <span class="title">付款方式</span>
+        <div class="content" ng-bind="::order.payments"></div>
+      </div>
+      <div class="col-xs-6">
+        <span class="title">交货地址</span>
+        <div class="content" ng-bind="::order.shipAddress "></div>
+        <div class="content" ng-if="!order.shipAddress ">无</div>
+      </div>
+    </div>
+    </div>
+    <div class="bottomB">
+    <div class="title-div">
+      <span class="f14">产品清单</span>&nbsp;
+    </div>
+    </div>
+    <div class="block">
+      <table class="block table table-default table-striped table-hover" style="margin-bottom: 0;">
+        <thead>
+        <tr class="header">
+          <!--<th width="50">序号</th>-->
+          <th width="400" style="text-align: center">产品</th>
+          <th width="100" style="text-align: center">单价</th>
+          <th width="100" style="text-align: center">数量</th>
+          <th width="120" style="text-align: center">交货日期</th>
+          <th width="180" style="text-align: center">回复状态</th>
+          <th width="126" style="text-align: center">操作</th>
+        </tr>
+        </thead>
+      </table>
+      <table class="block table table-default table-striped table-hover" ng-class="{'scoroll':order.orderItems.length>10}">
+        <tbody>
+        <tr>
+          <!--<td class="text-center text-num text-bold f-16 text-success" width="50">-->
+            <!--<span >{{$index+1}}</span>-->
+          <!--</td>-->
+          <td class="product" width="400">
+            <div class="text-num order-number text-overflow" title="第{{$index + 1}}行">{{$index + 1}}</div>
+            <div class="text-num text-bold"  style="width: 100%;color: #333;" title="{{::order.product.code}}">
+              物料编号:<span ng-bind="::order.product.code"></span>
+            </div>
+            <div class="text-overflow f14" style="color: #333;font-size: 14px;" title="{{::order.product.title}}">
+              物料名称:<span ng-bind="::order.product.title"></span>
+            </div>
+            <div class="text-muted text-over text-overflow" title="{{::order.product.spec}}" style="color: #333;word-break: break-word;" >
+              物料规格:{{::order.product.spec}}
+            </div>
+          </td>
+          <td width="100" class="text-center">
+            <div ng-if="!isUser" class="text-num" ng-bind="::order.price | number:6"></div>
+            <div class="text-muted">税率:{{order.taxrate || 0}}%</div>
+          </td>
+          <td width="100" class="text-center">
+            <div class="text-num" ng-bind="::order.qty"></div>
+            <div class="text-muted" ng-bind="::order.product.unit"></div>
+            <div style="margin: 0 auto" ng-if="order.$editing">
+              <input type="text" ng-model="order.reply.qty" min="0" max="{{order.qty}}"
+                     ng-init="order.reply.qty=order.qty-order.replyQty"
+                     class="form-control input-xs" placeholder="0~{{order.qty-order.replyQty}}">
+            </div>
+          </td>
+          <td width="120" class="text-center">
+            <div class="text-num"
+                 ng-bind="::order.delivery | date:'yyyy-MM-dd'"></div> <br>
+            <div style="margin: 0 auto"
+                 class="input-group input-group-xs input-trigger"
+                 ng-if="order.$editing">
+              <input type="text" ng-model="order.reply.delivery"
+                     ng-init="order.reply.delivery=parseDate(order.delivery)"
+                     class="form-control" placeholder="回复交期"
+                     datepicker-popup="yyyy-MM-dd" is-open="order.$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, order, '$opened')"> <span
+                class="input-group-btn">
+									<button type="button" class="btn btn-default"
+                          ng-click="openDatePicker($event, order, '$opened')">
+										<i class="fa fa-calendar"></i>
+									</button>
+								</span>
+            </div>
+          </td>
+          <td width="180">
+            <div ng-show="!order.$editing">
+              <div ng-if="!order.replyQty" class="text-muted text-center">未回复</div>
+              <div ng-if="order.replyQty > 0 && order.replyQty < order.qty">
+                <div class="progress progress-sm">
+                  <div class="progress-bar progress-bar-success"
+                       ng-style="{'width': 100*order.replyQty/order.qty + '%'}">
+                    <span class="sr-only"></span>
+                  </div>
+                </div>
+                已回复 <span class="text-default">{{::order.replyQty}}</span> / <span>{{::order.qty}}</span>
+              </div>
+              <div ng-if="order.replyQty > 0" class="dropdown"
+                   ng-class="{'text-center': order.replyQty>=order.qty}">
+                <a href="javascript:void(0);"
+                   class="dropdown-toggle text-default"
+                   ng-mouseover="getReply(order)">回复历史<i
+                    class="fa fa-fw fa-angle-down"></i></a>
+                <div class="dropdown-menu pane" style="width: 270px;">
+                  <div class="pane-body">
+                    <ul class="list-unstyled list-menu">
+                      <li ng-repeat="reply in ::order.replies">
+                        <div class="row row-sm"
+                             ng-class="{'text-inverse': $index==0}">
+                          <div class="col-xs-6">
+                            <span ng-if="reply.qty < 0"> 撤销</span>
+                            数量 {{::reply.qty}}
+                          </div>
+                          <div class="col-xs-6">交期{{::reply.delivery |
+                            date:'yyyy-MM-dd'}}</div>
+                        </div>
+                        <div class="text-muted" style="font-size: 12px">{{::reply.recorder}}{{::reply.date
+                          | date:'yyyy-MM-dd HH:mm:ss'}}回复</div>
+                      </li>
+                    </ul>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <div style="margin: 0 auto" ng-if="order.$editing">
+              <br> <br> <input type="text"
+                               ng-model="order.reply.remark" class="form-control input-xs"
+                               placeholder="回复备注" />
+            </div>
+            <div ng-if="order.acceptQty" class="text-success text-center text-bold f14">
+              客户验收:{{::order.acceptQty}}{{::order.product.unit}}
+            </div>
+            <div ng-if="order.returnQty" class="text-error text-center text-bold f14">
+              客户验退:{{::order.returnQty}}{{::order.product.unit}}
+            </div>
+          </td>
+          <td width="126" class="text-center">
+            <div ng-if="order.replyQty>=order.qty" class="block">
+              <span class="text-trans success">已回复</span>
+            </div>
+            <div ng-if="order.end" class="block">
+              <span class="text-trans warning">已结案</span>
+            </div>
+            <div
+                ng-if="(!order.replyQty || order.replyQty<=order.qty) && !order.end">
+              <br ng-if="order.replyQty>=order.qty">
+              <br ng-if="order.replyQty>=order.qty">
+              <div ng-show="!order.$editing">
+                <a ng-click="order.$editing=!order.$editing">回复</a>
+              </div>
+              <div ng-if="order.$editing">
+                <div>
+                  <a ng-click="order.$editing=!order.$editing">取消</a>
+                </div>
+                <br>
+                <div>
+                  <a ng-click="onReplyClick(order)" class="text-inverse">
+                    <i class="fa fa-arrow-up"></i> 确认回复
+                  </a>
+                  <br>
+                  <a ng-click="onReplyClick(order, -1)" class="text-muted" title="减去已回复数量">
+                    <i class="fa fa-arrow-down"></i> 撤销回复</a>
+                </div>
+              </div>
+            </div>
+          </td>
+        </tr>
+        </tbody>
+      </table>
+    </div>
+  </div>
+</div>

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

@@ -579,7 +579,7 @@
 			</tbody>
 			</tbody>
 
 
 		</table>
 		</table>
-		<div ng-if="infoCommon.size > 0" class="text-mns text-right"  ng-class="infoCommon.size > 20 ? '': 'Boom18'" >
+		<div ng-if="infoCommon.totalElement > 0" class="text-mns text-right"  ng-class="infoCommon.size > 20 ? '': 'Boom18'" >
 		显示&nbsp;{{(infoCommon .page - 1 ) * infoCommon.size + 1}}-{{infoCommon.all >= 20 ? infoCommon.page *  infoCommon.size: (infoCommon.page - 1 ) * infoCommon.size + infoCommon.all}}&nbsp;条,共&nbsp;{{infoCommon.totalElement}}&nbsp;条
 		显示&nbsp;{{(infoCommon .page - 1 ) * infoCommon.size + 1}}-{{infoCommon.all >= 20 ? infoCommon.page *  infoCommon.size: (infoCommon.page - 1 ) * infoCommon.size + infoCommon.all}}&nbsp;条,共&nbsp;{{infoCommon.totalElement}}&nbsp;条
 		</div>
 		</div>
 	</div>
 	</div>

+ 2 - 2
src/main/webapp/resources/view/vendor/b2b/sale_makechange.html

@@ -342,7 +342,7 @@
 						<span style="margin-left: 66px">订单:<a class="text-num text-bold order-detail"
 						<span style="margin-left: 66px">订单:<a class="text-num text-bold order-detail"
 												title="查看委外单详情" ng-bind="::change.orderCode"
 												title="查看委外单详情" ng-bind="::change.orderCode"
 												style="color: #3c7cf5"
 												style="color: #3c7cf5"
-												ui-sref="sale.makeorder_detail({id:change.orderId})" target="_blank"></a>
+												ui-sref="sale_makeorder_detail({id:change.orderId})" target="_blank"></a>
 						</span>
 						</span>
 					</div>
 					</div>
 				</td>
 				</td>
@@ -425,7 +425,7 @@
 			</tr>
 			</tr>
 			</tbody>
 			</tbody>
 		</table>
 		</table>
-		<div ng-if="infoCommon.size > 0" class="text-mns text-right" ng-class="infoCommon.size > 20 ? '': 'Boom18'">
+		<div ng-if="infoCommon.totalElement > 0" class="text-mns text-right" ng-class="infoCommon.size > 20 ? '': 'Boom18'">
 			显示&nbsp;{{(infoCommon .page - 1 ) * infoCommon.size + 1}}-{{infoCommon.all >= 20 ? infoCommon.page *  infoCommon.size: (infoCommon.page - 1 ) * infoCommon.size + infoCommon.all}}&nbsp;条,共&nbsp;{{infoCommon.totalElement}}&nbsp;条
 			显示&nbsp;{{(infoCommon .page - 1 ) * infoCommon.size + 1}}-{{infoCommon.all >= 20 ? infoCommon.page *  infoCommon.size: (infoCommon.page - 1 ) * infoCommon.size + infoCommon.all}}&nbsp;条,共&nbsp;{{infoCommon.totalElement}}&nbsp;条
 		</div>
 		</div>
 	</div>
 	</div>

Plik diff jest za duży
+ 342 - 553
src/main/webapp/resources/view/vendor/b2b/sale_maketodo.html


+ 4 - 0
src/main/webapp/resources/view/vendor/b2b/sale_notice.html

@@ -761,6 +761,7 @@
 				</td>
 				</td>
 			</tr>
 			</tr>
 			</tbody>
 			</tbody>
+
 			<tbody ng-if="$data.length === 0">
 			<tbody ng-if="$data.length === 0">
 			<tr>
 			<tr>
 				<td colspan="6">
 				<td colspan="6">
@@ -778,6 +779,9 @@
 			</tr>
 			</tr>
 			</tbody>
 			</tbody>
 		</table>
 		</table>
+		<div ng-if="infoCommon.totalElement > 0" class="text-mns text-right" ng-class="infoCommon.totalElement >= 20 ? '': 'Boom18'">
+			显示&nbsp;{{(infoCommon .page - 1 ) * infoCommon.size + 1}}-{{infoCommon.all >= 20 ? infoCommon.page *  infoCommon.size: (infoCommon.page - 1 ) * infoCommon.size + infoCommon.all}}&nbsp;条,共&nbsp;{{infoCommon.totalElement}}&nbsp;条
+		</div>
 	</div>
 	</div>
 	<!--猜你喜欢-->
 	<!--猜你喜欢-->
 	<!--<div class="love_list">
 	<!--<div class="love_list">

+ 4 - 1
src/main/webapp/resources/view/vendor/b2b/sale_order.html

@@ -163,6 +163,9 @@
 	.order-table .order-detail{
 	.order-table .order-detail{
 		color:#3c7cf5;
 		color:#3c7cf5;
 	}
 	}
+	.order-table .order-bd td {
+		border-right: 1px solid #e8e8e8;
+	}
 </style>
 </style>
 
 
 <div class="user_right fr">
 <div class="user_right fr">
@@ -203,7 +206,7 @@
 			</ul>
 			</ul>
 		</div>
 		</div>
 		<!--搜索时间筛选-->
 		<!--搜索时间筛选-->
-		<p class="height16">&nbsp;</p>
+		<!--<p class="height16">&nbsp;</p>-->
 		<!--搜索时间筛选-->
 		<!--搜索时间筛选-->
 		<div class="screen check-filter">
 		<div class="screen check-filter">
 			<div class="radio-block date-radio">
 			<div class="radio-block date-radio">

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

@@ -442,7 +442,7 @@
 			</tr>
 			</tr>
 			</tbody>
 			</tbody>
 		</table>
 		</table>
-		<div ng-if="infoCommon.size > 0" class="text-mns text-right" ng-class="infoCommon.totalElement >= 20 ? '': 'Boom18'">
+		<div ng-if="infoCommon.totalElement > 0" class="text-mns text-right" ng-class="infoCommon.totalElement >= 20 ? '': 'Boom18'">
 			显示&nbsp;{{(infoCommon .page - 1 ) * infoCommon.size + 1}}-{{infoCommon.all >= 20 ? infoCommon.page *  infoCommon.size: (infoCommon.page - 1 ) * infoCommon.size + infoCommon.all}}&nbsp;条,共&nbsp;{{infoCommon.totalElement}}&nbsp;条
 			显示&nbsp;{{(infoCommon .page - 1 ) * infoCommon.size + 1}}-{{infoCommon.all >= 20 ? infoCommon.page *  infoCommon.size: (infoCommon.page - 1 ) * infoCommon.size + infoCommon.all}}&nbsp;条,共&nbsp;{{infoCommon.totalElement}}&nbsp;条
 		</div>
 		</div>
 	</div>
 	</div>

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików