shenjj пре 7 година
родитељ
комит
b47406d892

+ 16 - 8
src/main/java/com/uas/platform/b2c/prod/product/component/modal/Component.java

@@ -792,13 +792,21 @@ public class Component implements Serializable {
 	public Component(ProductAttachSubmit submit) {
 		Component component = new Component();
 		Date now = new Date();
-		component.setBrandid(submit.getBrandId());
-		component.setAttach(submit.getUploadAttach());
-		component.setCode(submit.getCode());
-		component.setCreateTime(now);
-		component.setDescription(submit.getSpec());
-		component.setKindid(submit.getKindId());
-		component.setModifyTime(now);
-		component.setVersion((short) 1);
+		this.brandid = submit.getBrandId();
+		this.attach = submit.getUploadAttach();
+		this.code = submit.getCode();
+		this.createTime = now;
+		this.description = submit.getSpec();
+		this.kindid = submit.getKindId();
+		this.modifyTime = now;
+		this.version = (short) 1;
+//		component.setBrandid(submit.getBrandId());
+//		component.setAttach(submit.getUploadAttach());
+//		component.setCode(submit.getCode());
+//		component.setCreateTime(now);
+//		component.setDescription(submit.getSpec());
+//		component.setKindid(submit.getKindId());
+//		component.setModifyTime(now);
+//		component.setVersion((short) 1);
 	}
 }

BIN
src/main/webapp/resources/img/vendor/images/upload_file_icon.png


+ 68 - 45
src/main/webapp/resources/js/admin/controllers/AuditRegulpicListCtrl.js

@@ -1,48 +1,29 @@
 define([ 'app/app' ], function(app) {
   //品牌审批
-  app.register.controller('AuditRegulpicListCtrl', ['$scope', '$modal', 'BaseService', 'toaster', 'ngTableParams', 'StoreInfo', function ($scope, $modal, BaseService, toaster, ngTableParams, StoreInfo) {
-
-    $scope.storeType = 'ALL';
-    $scope.isShow = 'ALL';
+  app.register.controller('AuditRegulpicListCtrl', ['$scope', '$modal', 'BaseService', 'toaster', 'ngTableParams', 'StoreAdminListInformation',
+    function ($scope, $modal, BaseService, toaster, ngTableParams, StoreAdminListInformation) {
+    $scope.storeStatus = 'all'
     $scope.storeTableParams = new ngTableParams({
       page : 1,
-      count : 10,
-      sorting : {
-        updateTime : 'DESC'
-      }
+      count : 10
     }, {
       total : 0,
       counts: [5, 10, 25, 50, 100],
       getData : function($defer, params) {
         $scope.loading = true;
         var param = BaseService.parseParams(params.url());
-
-        // 过滤店铺类型
-        if ($scope.storeType && $scope.storeType !== '' && $scope.storeType !== 'ALL') {
-          param.type = $scope.storeType;
-        }
-
-        // 过滤店铺状态信息
-        if ($scope.storeStatus && $scope.storeStatus !== '') {
-          param.status = $scope.storeStatus;
-        }
+        $scope.page = param.page
+        param.status = $scope.storeStatus
 
         // 根据关键字进行搜索
         if ($scope.keyword && $scope.keyword !== '') {
-          param.keyword = $scope.keyword;
+          param.keywords = $scope.keyword;
         }
 
-        StoreInfo.pageStoreInfoWhenAdminQuery(param, function (data) {
+        StoreAdminListInformation.attach(param, function (data) {
           if (!data.content || !Array.isArray(data.content)) {
             data.content = [];
           }
-          angular.forEach(data.content, function (store) {
-            var tags = JSON.parse(store.tags || '[]');
-            store.tagsObject = {};
-            for (var i = 0; i < tags.length; i++) {
-              store.tagsObject[tags[i]] = true;
-            }
-          });
           $defer.resolve(data.content);
           params.total(data.totalElements);
           console.log(data);
@@ -61,6 +42,11 @@ define([ 'app/app' ], function(app) {
       $scope.storeTableParams.reload();
     };
 
+    $scope.chooseStoreType = function(status) {
+      $scope.storeStatus = status
+      $scope.storeTableParams.page(1);
+      $scope.storeTableParams.reload();
+    }
     /**
      * 通过
      */
@@ -75,7 +61,7 @@ define([ 'app/app' ], function(app) {
     /**
      * 审核未通过开铺申请
      */
-    $scope.cancelBtnFn = function() {
+    $scope.cancelBtnFn = function(list) {
       openReasonModal().then(function (reason) {
         NopassAudit(list, reason)
       }, function (error) {
@@ -97,7 +83,11 @@ define([ 'app/app' ], function(app) {
      * 审核不通过 回调
      */
     function NopassAudit(list, reason) {
-
+      // var param = angular.toJson({submitId: list.id, reason: reason})
+      StoreAdminListInformation.auditFailed({submitId: list.id}, {reason: reason}, function (data) {
+        $scope.storeTableParams.page($scope.page);
+        $scope.storeTableParams.reload();
+      })
     }
 
     /**
@@ -105,13 +95,18 @@ define([ 'app/app' ], function(app) {
      */
     function passAudit(data, item) {
       // 是否需要打开规格书选择项
-      openRegulChooseModal(data, item).then(function (reason) {
-        // 刷新页面
+      if (data.mallAttach !== '') {
+        openRegulChooseModal(data, item).then(function (reason) {
+          // 刷新页面
+          $scope.storeTableParams.page(1);
+          $scope.storeTableParams.reload();
+        }, function (error) {
+          console.log(error);
+        });
+      } else {
         $scope.storeTableParams.page(1);
         $scope.storeTableParams.reload();
-      }, function (error) {
-        console.log(error);
-      });
+      }
     }
 
     /**
@@ -181,7 +176,8 @@ define([ 'app/app' ], function(app) {
   /**
    * 审核通过模态框控制器
    */
-  app.register.controller('auditRegulpicpassController', ['$scope', '$modalInstance', 'toaster', 'Commodity', 'Search','item', function ($scope, $modalInstance, toaster, Commodity, Search, item) {
+  app.register.controller('auditRegulpicpassController', ['$scope', '$modalInstance', 'toaster', 'Commodity', 'Search','item', 'StoreAdminListInformation',
+    function ($scope, $modalInstance, toaster, Commodity, Search, item, StoreAdminListInformation) {
 
     $scope.kindPojo = {
       first: '请选择一级类目',
@@ -223,30 +219,46 @@ define([ 'app/app' ], function(app) {
      * 保存不通过原因
      */
     function saveReason() {
+      var info = ''
       if (!$scope.keyword || $scope.keyword === '') {
-        toaster.pop('error', '品牌必填项');
+        toaster.pop('error', '品牌必填项');
         return ;
       }
       if ($scope.kindPojo.first === '请选择一级类目') {
         toaster.pop('error', '商城类目未选择');
         return ;
       }
-      if ($scope.kindPojo.second === '请选择二级类目') {
+      if ($scope.kindPojo.second === '请选择二级类目' && $scope.kindInfo[$scope.kindPojo.first].children) {
         toaster.pop('error', '商城类目未选择');
         return ;
       }
-      if ($scope.kindPojo.third === '请选择三级类目') {
+      if ($scope.kindPojo.third === '请选择三级类目' && $scope.kindInfo[$scope.kindPojo.first].children[$scope.kindPojo.second].children) {
         toaster.pop('error', '商城类目未选择');
         return ;
       }
-      // 申请品牌后,返回
-      $modalInstance.close({});
+      if ($scope.kindPojo.third !== '请选择三级类目') {
+        info = $scope.kindPojo.third
+      } else if ($scope.kindPojo.second !== '请选择二级类目') {
+        info = $scope.kindPojo.second
+      }
+      $scope.item.kindId = info.id
+      $scope.item.brandId = $scope.brandId
+      $scope.item.spec = $scope.spec !== '' ? $scope.spec : $scope.item.product.spec
+      StoreAdminListInformation.auditSuccess({}, $scope.item, function(data) {
+        console.log(data)
+        if (data.success) {
+          $modalInstance.close(data);
+        } else {
+          toaster.pop('error', data.message);
+        }
+      })
     }
     /**
      * 选择品牌联想词
      */
-    $scope.setBrand = function(item) {
+    $scope.setBrand = function(item, id) {
       $scope.keyword = item
+      $scope.brandId = id
       $scope.BrandList = []
     }
 
@@ -284,11 +296,13 @@ define([ 'app/app' ], function(app) {
   /**
    * 规格书选项
    */
-  app.register.controller('auditRegulpicChooseController',['$scope', '$modalInstance', 'toaster', 'responseData', 'item', function($scope, $modalInstance, toaster, responseData, item) {
+  app.register.controller('auditRegulpicChooseController',['$scope', '$modalInstance', 'toaster', 'responseData', 'item', 'StoreAdminListInformation',
+    function($scope, $modalInstance, toaster, responseData, item, StoreAdminListInformation) {
     $scope.saveReason = saveReason;
     $scope.dismiss = dismiss;
     $scope.checked = 'store';
-
+    $scope.item = item;
+    $scope.responseData = responseData
     /**
      * 保存不通过原因
      */
@@ -298,8 +312,17 @@ define([ 'app/app' ], function(app) {
       //   return ;
       // }
       // 请求保存规格书接口
-      alert($scope.checked)
-      $modalInstance.close($scope.reason);
+      // alert($scope.checked)
+      var chooseAttach = ''
+      if ($scope.checked === 'store') {
+        chooseAttach = responseData.mallAttach
+      } else {
+        chooseAttach = item.uploadAttach
+      }
+      StoreAdminListInformation.chooseAttach({}, {chooseAttach: chooseAttach, submit: responseData}, function(data) {
+        $modalInstance.close(data);
+      })
+
     }
 
     /**

+ 16 - 3
src/main/webapp/resources/js/common/directives.js

@@ -845,7 +845,7 @@ define(['angular', 'showdown', 'angular-toaster'], function(angular) {
 				var preview = !attr.nonPreview;
 				var maxSize = attr.maxSize;
 				var errorSizeMsg = attr.errorSizeMsg;
-
+				var _accept = attr.accept
 				// 设置图片预览
 				element.append('<img class=previewImage title=""/>');
 				var previewImage = $(element).find('.previewImage');
@@ -856,7 +856,11 @@ define(['angular', 'showdown', 'angular-toaster'], function(angular) {
 				});
 
 				// 设置文件上传
-				element.append('<input type=file class=uploadImage style=display:none; accept=image/jpeg,image/jpg,image/gif,image/bmp,image/png,.pdf />');
+				if (!_accept) {
+          element.append('<input type=file class=uploadImage style=display:none; accept=image/jpeg,image/jpg,image/gif,image/bmp,image/png,.pdf />');
+				} else {
+          element.append("<input type='file' class='uploadImage' style='display:none;' accept="+_accept+" />");
+        }
 				var uploadImage = $(element).find('.uploadImage');
 
 				uploadImage.change(function () {
@@ -872,7 +876,16 @@ define(['angular', 'showdown', 'angular-toaster'], function(angular) {
 							if (!validateFileSize(file.files[0], maxSize, errorSizeMsg)) return ;
 						}
 
-						if (!validateFileType(file.files[0])) return;
+						if (_accept) {
+							// 如果有,则先处理pdf
+              if (!/\/(pdf)$/.test(file.type)) {
+                alert('请上传可支持的格式');
+                return false;
+              }
+						}
+						else {
+              if (!validateFileType(file.files[0])) return;
+            }
 
 						// 如果不可预览属性设置为false,则显示预览图片
 						if (preview) {

+ 48 - 0
src/main/webapp/resources/js/common/query/storeInfo.js

@@ -302,5 +302,53 @@ define([ 'ngResource' ], function() {
 				isArray: true
 			}
 		});
+	}]).factory('StoreAdminListInformation', ['$resource', function ($resource) {
+      return $resource('trade/product', {}, {
+        /**
+         * 获取申请列表(分页)
+         *
+         */
+        attach: {
+          url: 'trade/product/attach',
+          method: 'GET'
+        },
+        /**
+         * 获取申请单个信息
+         *
+         */
+        Getoneattach: {
+          url: 'trade/product/attach/:id',
+          method: 'GET'
+        },
+        /**
+         * 审核通过
+         *
+         * @param submit	对象
+         */
+        auditSuccess: {
+          url: 'trade/product/attach/auditSuccess',
+          method: 'POST'
+        },
+        /**
+         * 审核不通过
+         *
+         * @param submitId	对象id
+         * @param reason	原因
+         */
+        auditFailed: {
+          url: 'trade/product/attach/auditFailed/:submitId',
+          method: 'POST'
+        },
+        /**
+         * 选择确认最终规格书并审核通过 chooseAttach()
+         *
+         * @param chooseAttach	选中的规格书
+         * @param submit	对象
+         */
+        chooseAttach: {
+          url: 'trade/product/attach/chooseAttach',
+          method: 'POST'
+        }
+      });
 	}]);
 });

+ 148 - 4
src/main/webapp/resources/js/vendor/app.js

@@ -1138,16 +1138,51 @@ define([ 'angularAMD', 'ngLocal', 'common/services', 'common/directives', 'commo
 	}]);
 
   // 上传规格书
-  app.controller('editRegulationCtrl', ['$scope', 'Regulpic', '$modalInstance','showAction', function ($scope, Regulpic, $modalInstance, showAction) {
+  app.controller('editRegulationCtrl', ['$scope', 'Regulpic', '$modalInstance','showAction', 'Search', 'ChooseItem', function ($scope, Regulpic, $modalInstance, showAction, Search, ChooseItem) {
+    $scope.iniUrlImg = 'static/img/vendor/images/upload_file_icon.png'
     $scope.Regulpic = Regulpic;
     $scope.showAction = showAction || false
+	  $scope.IsLookOrUpdate = 'update'// 编辑还是查看
+    $scope.brandcode = ChooseItem.pbranden || ChooseItem.pbrand || ($scope.IsLookOrUpdate === 'update' ? '' : '-') // 品牌
+    $scope.BrandList = [] // 品牌数组
+	  $scope.kind = ChooseItem.kind || ChooseItem.kinden || '-' // 类目
+    $scope.spec = ChooseItem.spec || '' // 规格
+    $scope.cmpcode = ChooseItem.cmpUuId || ChooseItem.pcmpcode || ($scope.IsLookOrUpdate === 'update' ? '' : '-') // 型号
+    $scope.CodeList = [] // 型号数组
+	  $scope.RegulChange = true // 规格书是否可以编辑
+	  $scope.RegulpicUrl = ChooseItem.Regulpic
     $scope.cancel = function () {
       $modalInstance.close();
     };
+		// 确定
+    $scope.confirm = function() {
+      if (!$scope.brandcode || $scope.brandcode === '') {
+        toaster.pop('error', '品牌为必填项');
+        return ;
+      }
+      if (!$scope.kind || $scope.kind === '') {
+        toaster.pop('error', '类目为必填项');
+        return ;
+      }
+      if (!$scope.cmpcode || $scope.cmpcode === '') {
+        toaster.pop('error', '型号为必填项');
+        return ;
+      }
+      var list = {
+        pbranden: $scope.brandcode,
+        kind: $scope.kind,
+        pcmpcode: $scope.cmpcode,
+        url: $scope.Regulpic === $scope.iniUrlImg ? '' : $scope.Regulpic,
+        spec: $scope.spec,
+	      id: ChooseItem.id
+      }
+      // 返回信息
+      $modalInstance.close(list);
+    }
 
     // 删除已上传图片
     $scope.deleteImg = function () {
-      $scope.Regulpic = 'static/img/store/common/default.png'
+      $scope.Regulpic = $scope.iniUrlImg
     }
 
     // 图片上传成功之后
@@ -1155,9 +1190,118 @@ define([ 'angularAMD', 'ngLocal', 'common/services', 'common/directives', 'commo
       $scope.Regulpic = data.path;
     };
 
-    $scope.confirm = function() {
-      $modalInstance.close($scope.Regulpic);
+
+
+    /**
+     * 品牌联想词
+     */
+    $scope.onBrandChange = function(name) {
+      if (name === '') {
+        $scope.BrandList = []
+        return false
+      }
+      if ((/[^\x00-\xff]/g).test(name)) {
+        $scope.brandcode = ''
+        $scope.BrandList = []
+        return false
+      }
+      $scope.BrandList = getSimilarBrands(name).$$state
+    }
+
+    /**
+     * 型号联想词
+     */
+    $scope.onCodeChange = function(name) {
+      if (name === '') {
+        $scope.CodeList = []
+        return false
+      }
+      if ((/[^\x00-\xff]/g).test(name)) {
+        $scope.cmpcode = ''
+        $scope.CodeList = []
+        return false
+      }
+      $scope.CodeList = getSimilarCode(name).$$state
+    }
+
+
+    /**
+     * 获取品牌联想词
+     *
+     * @param name    品牌名称
+     */
+    function getSimilarBrands(name) {
+      if (name) {
+        return Search.getSimilarBrands({keyword: name}).$promise.then(
+            function (data) {
+              return data.map(function (item) {
+                return item;
+              });
+            });
+      }
+    }
+
+    /**
+     * 获取型号联想词
+     *
+     * @param name    品牌名称
+     */
+    function getSimilarCode(name) {
+      if (name) {
+        return Search.getSimilarComponents({keyword: name}).$promise.then(
+            function (data) {
+              return data.map(function (item) {
+                return item;
+              });
+            });
+      }
     }
+    /**
+     * 品牌输入框失去焦点
+     *
+     * @param name    品牌名称
+     */
+    $scope.onBrandBlur = function(name) {
+      if (name === '') {
+        $scope.BrandList = []
+        return false
+      } else {
+        $scope.brandcode = $scope.BrandList.value[0].nameEn
+        $scope.BrandList = []
+        return false
+      }
+    }
+
+    /**
+     * 型号输入框失去焦点
+     *
+     * @param name    型号名称
+     */
+    $scope.onCodeBlur = function(name) {
+      if (name === '') {
+        $scope.CodeList = []
+        return false
+      } else {
+        $scope.cmpcode = $scope.CodeList.value[0].code
+        $scope.CodeList = []
+        return false
+      }
+    }
+    /**
+     * 选择品牌联想词
+     */
+    $scope.setBrand = function(item) {
+      $scope.brandcode = item
+      $scope.BrandList = []
+    }
+    /**
+     * 选择型号联想词
+     */
+    $scope.setCode = function(index, code) {
+      $scope.cmpcode = item
+      $scope.CodeList = []
+    }
+
   }]);
 	return app;
 });

+ 9 - 5
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialCtrl.js

@@ -1,6 +1,6 @@
 define([ 'app/app', 'jquery-uploadify' ], function(app) {
 	'use strict';
-	app.register.controller('vendor_materialCtrl', ['$scope', 'Loading', '$rootScope', 'Material', 'toaster', 'ComponentActive', 'Enterprise', '$q', 'NumberService', '$location', '$stateParams', 'Search', '$modal', 'ComponentActiveAPI', 'BrandSubmit', 'BrandActiveAPI', 'DistributionRule', 'prodRepositoryService', 'AuthenticationService', 'StoreInfo', 'ProductServiceQuery', 'StoreCms', 'ByteCountService', 'Goods', 'UASBatchPutOnPropertyServices', '$filter', '$upload', function ($scope, Loading, $rootScope, Material, toaster, ComponentActive, Enterprise, $q, NumberService, $location, $stateParams, Search, $modal, ComponentActiveAPI, BrandSubmit, BrandActiveAPI, DistributionRule, prodRepositoryService, AuthenticationService, StoreInfo, ProductServiceQuery, StoreCms, ByteCountService, Goods, UASBatchPutOnPropertyServices, $filter, $upload) {
+	app.register.controller('vendor_materialCtrl', ['$scope', 'Loading', '$rootScope', 'Material', 'toaster', 'ComponentActive', 'Enterprise', '$q', 'NumberService', '$location', '$stateParams', 'Search', '$modal', 'ComponentActiveAPI', 'BrandSubmit', 'BrandActiveAPI', 'DistributionRule', 'prodRepositoryService', 'AuthenticationService', 'StoreInfo', 'ProductServiceQuery', 'StoreCms', 'ByteCountService', 'Goods', 'UASBatchPutOnPropertyServices', '$filter', '$upload', '$http',function ($scope, Loading, $rootScope, Material, toaster, ComponentActive, Enterprise, $q, NumberService, $location, $stateParams, Search, $modal, ComponentActiveAPI, BrandSubmit, BrandActiveAPI, DistributionRule, prodRepositoryService, AuthenticationService, StoreInfo, ProductServiceQuery, StoreCms, ByteCountService, Goods, UASBatchPutOnPropertyServices, $filter, $upload, $http) {
 		$rootScope.active = 'vendor_material';
 		document.title = '卖家产品库-优软商城';
 		$scope.tab = 'material';
@@ -3421,13 +3421,17 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
           },
           showAction : function() {
             return true;
+          },
+          ChooseItem: function() {
+          	return commodity
           }
         }
       });
-      modalInstance.result.then(function (Regulpic) {
-        if(Regulpic) {
-          commodity.Regulpic = Regulpic;
-        }
+      modalInstance.result.then(function (item) {
+      	var str = JSON.stringify(item)
+        $http.post('trade/products/update/product?url=' + item.url, str).success(function(response){
+        	console.log(response)
+        })
       }, function() {
 
       });

+ 31 - 1
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialPersonCtrl.js

@@ -1,6 +1,6 @@
 define([ 'app/app', 'jquery-uploadify' ], function(app) {
   'use strict';
-  app.register.controller('vendor_materialPersonCtrl', ['$scope', '$rootScope', 'Material', 'toaster', 'ComponentActive', 'Enterprise', '$q', 'NumberService', '$location', '$stateParams', 'Search', '$modal', 'ComponentActiveAPI', 'BrandSubmit', 'BrandActiveAPI', 'DistributionRule', 'prodRepositoryService', 'AuthenticationService', 'StoreInfo', 'ProductServiceQuery', 'StoreCms', 'ByteCountService', 'Goods', function ($scope, $rootScope, Material, toaster, ComponentActive, Enterprise, $q, NumberService, $location, $stateParams, Search, $modal, ComponentActiveAPI, BrandSubmit, BrandActiveAPI, DistributionRule, prodRepositoryService, AuthenticationService, StoreInfo, ProductServiceQuery, StoreCms, ByteCountService, Goods) {
+  app.register.controller('vendor_materialPersonCtrl', ['$scope', '$rootScope', 'Material', 'toaster', 'ComponentActive', 'Enterprise', '$q', 'NumberService', '$location', '$stateParams', 'Search', '$modal', 'ComponentActiveAPI', 'BrandSubmit', 'BrandActiveAPI', 'DistributionRule', 'prodRepositoryService', 'AuthenticationService', 'StoreInfo', 'ProductServiceQuery', 'StoreCms', 'ByteCountService', 'Goods','$http', function ($scope, $rootScope, Material, toaster, ComponentActive, Enterprise, $q, NumberService, $location, $stateParams, Search, $modal, ComponentActiveAPI, BrandSubmit, BrandActiveAPI, DistributionRule, prodRepositoryService, AuthenticationService, StoreInfo, ProductServiceQuery, StoreCms, ByteCountService, Goods, $http) {
     $rootScope.active = 'vendor_material';
     document.title = '卖家产品库-优软商城';
     $scope.tab = 'material_person';
@@ -2833,6 +2833,36 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
         $scope.ngLastFinished = false
       }
     })
+
+    /**
+     * 修改规格书
+     */
+    $scope.editRegulPicture = function(Regulpic, commodity) {
+      var modalInstance = $modal.open({
+        templateUrl : 'static/view/vendor/modal/edit_regul_modal.html',
+        size : 'md',
+        controller : 'editRegulationCtrl',
+        resolve : {
+          Regulpic : function() {
+            return Regulpic;
+          },
+          showAction : function() {
+            return true;
+          },
+          ChooseItem: function() {
+            return commodity
+          }
+        }
+      });
+      modalInstance.result.then(function (item) {
+        var str = JSON.stringify(item)
+        $http.post('trade/products/update/product?url=' + item.url, str).success(function(response){
+          console.log(response)
+        })
+      }, function() {
+
+      });
+    }
   }])
 
   //类目选择模态框

+ 45 - 1
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_onSaleCtrl.js

@@ -1563,6 +1563,9 @@ define([ 'app/app' ], function(app) {
               },
               showAction: function() {
                 return false
+              },
+              ChooseItem: function() {
+                  return {}
               }
             }
           });
@@ -1892,7 +1895,48 @@ define([ 'app/app' ], function(app) {
                 }
             }
         };
-
+      $scope.onCodeChange = function(code) {
+        if ((/[^\x00-\xff]/g).test(code)) {
+          var chineseIndex = -1;
+          for (var i = 0; i < code.length; i++) {
+            if ((/[^\x00-\xff]/g).test(code.charAt(i))) {
+              chineseIndex = i;
+              break;
+            }
+          }
+          $scope.commodity.kindNameCn = cutOutString(code, chineseIndex);
+        } else if (code && getRealLen(code) > 100) {
+          $scope.commodity.kindNameCn = cutOutString(code, 100);
+        }
+      }
+      $scope.onBrandChange = function(brand) {
+        if (brand && getRealLen(brand) > 50) {
+          $scope.commodity.brandNameEn = cutOutString(brand, 50);
+        } else if ((/[^\x00-\xff]/g).test(brand)) {
+          var chineseIndex = -1;
+          for (var i = 0; i < brand.length; i++) {
+            if ((/[^\x00-\xff]/g).test(brand.charAt(i)) && !(/[\u4e00-\u9fa5]/).test(brand.charAt(i))) {
+              chineseIndex = i;
+              break;
+            }
+          }
+          if (chineseIndex > -1) {
+            $scope.commodity.brandNameEn = brand.substring(0, chineseIndex);
+          }
+        }
+      }
+
+      var getRealLen = function(str) {
+        var len = 0;
+        for (var i = 0; i < str.length; i++) {
+          if (str.charCodeAt(i) > 127 || str.charCodeAt(i) === 94) {
+            len += 2;
+          } else {
+            len++;
+          }
+        }
+        return len;
+      }
     }]);
 
     // 上传批次图片

+ 20 - 18
src/main/webapp/resources/view/admin/RegulpicList.html

@@ -245,10 +245,10 @@
   <div class="row menu menu2">
     <div class="col-sm-8">
       <div class="btn-group" role="group" aria-label="...">
-        <a type="button" class="btn btn-default" ng-class="{'btn-primary': storeType === 'ALL'}" ng-click="chooseStoreType('ALL')">全部</a>
-        <a type="button" class="btn btn-default" ng-class="{'btn-primary': storeType === 'ORIGINAL_FACTORY'}" ng-click="chooseStoreType('ORIGINAL_FACTORY')">待审核</a>
-        <a type="button" class="btn btn-default" ng-class="{'btn-primary': storeType === 'AGENCY'}" ng-click="chooseStoreType('AGENCY')">已通过</a>
-        <a type="button" class="btn btn-default" ng-class="{'btn-primary': storeType === 'DISTRIBUTION'}" ng-click="chooseStoreType('DISTRIBUTION')">未通过</a>
+        <a type="button" class="btn btn-default" ng-class="{'btn-primary': storeStatus === 'all'}" ng-click="chooseStoreType('all')">全部</a>
+        <a type="button" class="btn btn-default" ng-class="{'btn-primary': storeStatus === 'unaudit'}" ng-click="chooseStoreType('unaudit')">待审核</a>
+        <a type="button" class="btn btn-default" ng-class="{'btn-primary': storeStatus === 'audited'}" ng-click="chooseStoreType('audited')">已通过</a>
+        <a type="button" class="btn btn-default" ng-class="{'btn-primary': storeStatus === 'notallow'}" ng-click="chooseStoreType('notallow')">未通过</a>
       </div>
     </div>
     <div class="col-sm-3">
@@ -279,33 +279,35 @@
       <tbody>
       <tr ng-repeat="list in $data">
         <td>
-          <div>呼哈哈</div>
-          <div>深圳市优软科技</div>
+          <div>{{list.submiter.userName}}</div>
+          <div>{{list.submitEn.enName}}</div>
         </td>
         <td><span ng-bind="list.createTime | date : 'yyyy-MM-dd HH:mm:ss'"></span></td>
-        <td>品牌</td>
-        <td>物料(类目名称)</td>
-        <td>型号</td>
-        <td><a href="{{list}}" target="_blank"><img src="static/img/vendor/images/pdf.png" style="width:31px;height:35px;" /></a></td>
-        <td>审核人</td>
+        <td>{{list.brand ? list.brand.nameCn : (list.product.brand || list.product.pbranden || '-') }}
+        </td>
+        <td>
+          {{list.kind ? list.kind.nameCn : (list.product.kind || list.product.prodName || '-') }}</td>
+        <td>{{list.product.cmpCode || list.product.pcmpcode || '-'}}</td>
+        <td><a href="{{list.uploadAttach}}" target="_blank"><img src="static/img/vendor/images/pdf.png" style="width:31px;height:35px;" /></a></td>
+        <td>{{list.auditer.userName || '-'}}</td>
         <td><span ng-bind="list.createTime | date : 'yyyy-MM-dd HH:mm:ss'"></span></td>
         <td>
-          <!--<span style="color: #219ee6">待审核</span>-->
-          <!--<span style="color: #666">已通过</span>-->
-          <div class="lookNoPassInfo">
+          <span style="color: #219ee6" ng-if="list.status === 311">待审核</span>
+          <span style="color: #666" ng-if="list.status === 102">已通过</span>
+          <div class="lookNoPassInfo" ng-if="list.status === 103">
             <span style="color: #f02020">未通过<img src="static/img/vendor/images/nofireinfo_icon.png" width="16" height="16" /></span>
             <div class="infoMore">
-              <span style="color:#219ee6">原因:</span>就是不想让你通过。
+              <span style="color:#219ee6">原因:</span>{{list.reason}}
             </div>
           </div>
         </td>
         <td>
-          <span class="passBtn" ng-click="passBtnFn(list)">通过</span>
-          <span class="cancelBtn" ng-click="cancelBtnFn(list)">不通过</span>
+          <span class="passBtn" ng-click="passBtnFn(list)" ng-if="list.status === 311">通过</span>
+          <span class="cancelBtn" ng-click="cancelBtnFn(list)" ng-if="list.status === 311">不通过</span>
         </td>
       </tr>
       <tr ng-if="!$data || $data.length <= 0">
-        <td colspan="8">暂时没有待审核申请</td>
+        <td colspan="10">暂时没有待审核申请</td>
       </tr>
       </tbody>
     </table>

+ 6 - 4
src/main/webapp/resources/view/admin/modal/auditRegulpic_choose_modal.html

@@ -40,15 +40,17 @@
     <div class="form-group" style="margin: 0px">
       <div class="col-sm-6">
         <label class="radio-inline">
-          <input type="radio" name="inlineRadioOptions" id="inlineRadio1" value="store" ng-checked="checked === 'store'" ng-click="checked = 'store'"> 商城规格书
+          <input type="radio" name="inlineRadioOptions" id="inlineRadio1" value="store" ng-checked="checked === 'store'" ng-click="checked = 'store'">
+          商城规格书
         </label>
-        <div style="margin: 10px 0"><img src="static/img/vendor/images/pdf.png" style="width:31px;height:35px;" /></div>
+        <div style="margin: 10px 0"><a href="{{responseData.mallAttach}}" target="_blank"><img src="static/img/vendor/images/pdf.png" style="width:31px;height:35px;" /></a></div>
       </div>
       <div class="col-sm-6">
         <label class="radio-inline">
-          <input type="radio" name="inlineRadioOptions" id="inlineRadio2" value="user"  ng-checked="checked === 'user'" ng-click="checked = 'user'"> 用户上传规格书
+          <input type="radio" name="inlineRadioOptions" id="inlineRadio2" value="user"  ng-checked="checked === 'user'" ng-click="checked = 'user'">
+          用户上传规格书
         </label>
-        <div style="margin: 10px 0"><img src="static/img/vendor/images/pdf.png" style="width:31px;height:35px;" /></div>
+        <div style="margin: 10px 0"><a href="{{item.uploadAttach}}" target="_blank"><img src="static/img/vendor/images/pdf.png" style="width:31px;height:35px;" /></a></div>
       </div>
     </div>
     <div class="form-group">

+ 7 - 6
src/main/webapp/resources/view/admin/modal/auditRegulpicpass_modal.html

@@ -65,26 +65,26 @@
   <div class="modal-body" id="body" style="padding: 0px 15px;">
     <div class="form-group">
       <div class="col-sm-3 name">品牌:</div>
-      <div class="col-sm-9">这是品牌名字</div>
+      <div class="col-sm-9">{{item.product.brand || item.product.pbranden || '-'}}</div>
     </div>
     <div class="form-group">
       <div class="col-sm-3 name">物料名称(类目):</div>
-      <div class="col-sm-9">这是物料名称</div>
+      <div class="col-sm-9">{{item.product.kind || item.product.prodName || '-'}}</div>
     </div>
     <div class="form-group">
       <div class="col-sm-3 name">型号:</div>
-      <div class="col-sm-9">这是型号名字</div>
+      <div class="col-sm-9">{{item.product.cmpCode || item.product.pcmpcode || '-'}}</div>
     </div>
     <div class="form-group">
       <div class="col-sm-3 name">规格书:</div>
-      <div class="col-sm-9"><a href="" target="_blank"><img src="static/img/vendor/images/pdf.png" style="width:28px;height:28px;"/></a></div>
+      <div class="col-sm-9"><a href="{{item.uploadAttach}}" target="_blank"><img src="static/img/vendor/images/pdf.png" style="width:28px;height:28px;"/></a></div>
     </div>
     <div class="form-group">
       <div class="col-sm-3 name"><em style="color: #ea0e0e">*</em>品牌:</div>
       <div class="col-sm-9" style="position: relative;">
         <input type="text" ng-blur="onBrandBlur(keyword)"  ng-change="onBrandChange(keyword)" placeholder="请输入品牌名字" ng-model="keyword" class="form-control" style="width: 240px;height: 28px" />
         <ul class="listUl" ng-if="BrandList.value.length > 0">
-          <li ng-repeat="item in BrandList.value" ng-click="setBrand(item.nameEn)">
+          <li ng-repeat="item in BrandList.value" ng-click="setBrand(item.nameEn,item.id)">
             {{item.nameEn}}
           </li>
         </ul>
@@ -103,7 +103,7 @@
           </select>
         </div>
         <div class="col-sm-4" style="padding: 0px;">
-          <select class="form-control" ng-model="kindPojo.second"
+          <select class="form-control" ng-model="kindPojo.second" ng-show="kindInfo[kindPojo.first].children"
                   ng-options="key as value.nameCn for (key,value) in kindInfo[kindPojo.first].children"
                   ng-change="kindPojo.third='';" style="height:28px;line-height:28px;padding: 0 6px;">
             <option value="">请选择二级类目</option>
@@ -111,6 +111,7 @@
         </div>
         <div class="col-sm-4" style="padding: 0px;">
           <select class="form-control" ng-model="kindPojo.third" style="opacity: 1;height:28px;line-height:28px;padding: 0 6px;"
+                  ng-show="kindInfo[kindPojo.first].children[kindPojo.second].children"
                   ng-options="value as value.nameCn for value in kindInfo[kindPojo.first].children[kindPojo.second].children">
             <option value="">请选择三级类目</option>
           </select>

+ 1 - 0
src/main/webapp/resources/view/vendor/forstore/purchasAttendtion.html

@@ -57,6 +57,7 @@
   }
   .seek-purchase-content tbody th {
     font-weight: 500;
+    user-select:inherit;
   }
   .seek-purchase-content tbody tr:nth-last-of-type(1) {
     border-bottom: 0;

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

@@ -2126,7 +2126,7 @@
 								<!--<span>查看</span></span>/<span ng-click="setActiveIndex($index,material)"><span>编辑可替代型号</span>-->
 						  </span>
 							<span name="delete-material" ng-show="!isBatch && !material.exPandOper && !material.addGoodsOper" ng-click="deleteMaterial(material)"><span>删除</span></span>
-							<span ng-click="editRegulPicture(goods.Regulpic || 'static/img/store/common/default.png', goods)">
+							<span ng-click="editRegulPicture(goods.Regulpic || 'static/img/vendor/images/upload_file_icon.png', material)">
 								<span>编辑物料</span>
 							</span>
 							<!---->

+ 56 - 5
src/main/webapp/resources/view/vendor/forstore/vendor_material_person.html

@@ -1861,10 +1861,11 @@
 						<th width="80">序号</th>
 						<th width="150">品牌</th>
 						<th width="180">物料名称(类目)</th>
-						<th width="200">型号</th>
+						<th width="190">型号</th>
 						<!--<th width="100">单位</th>-->
-						<th width="80">规格</th>
-						<th width="180">操作</th>
+						<th width="60">规格</th>
+						<th width="100">规格书</th>
+						<th width="210">操作</th>
 					</tr>
 					</thead>
 					<tbody class="bg-show">
@@ -1874,7 +1875,7 @@
                     </div>
 					<!--<tr style="height: 14px;" ng-show="!isBatch && standard_tab == 'standard'">-->
 					<tr style="height: 14px;">
-						<td colspan="6" class="hei18"></td>
+						<td colspan="7" class="hei18"></td>
 					</tr>
 					</tbody>
 					<!--<tbody>
@@ -1913,6 +1914,24 @@
 						<td>
 							<span ng-bind="material.spec || '-'" title="{{material.spec || '-'}}"></span>
 						</td>
+						<!-- 新增规格书字段 -->
+						<td style="overflow: initial;">
+							<div class="Regulpic">
+								<a href="{{goods.Regulpic}}" target="_blank" ng-if="goods.Regulpic" class="Regulpica">
+									<span style="cursor: pointer;">
+										<img style="width:24px;height:26px;border: 0px" src="static/img/vendor/images/pdf.png"/>
+										<div style="position: relative;display: inline-block" class="ToforAdminLook">
+											<img src="static/img/vendor/images/fireinfo_icon.png" width="18" height="18" style="width:18px;height:18px;border: 0px;margin-left:5px;"/>
+											<div class="forAdminLook">待审核</div>
+										</div>
+									</span>
+								</a>
+								<div ng-if="!goods.Regulpic">
+									-
+								</div>
+							</div>
+						</td>
+						<!-- /end 新增规格书字段 -->
 						<td class="edit">
 							<span name="delete-material" ng-show="!isBatch && !material.exPandOper && !material.addGoodsOper" ng-click="deleteMaterial(material)"><span>删除</span></span>
 							<!--<span ng-show="!isBatch && !material.exPandOper && !material.addGoodsOper" ng-click="showShelfArea(material)"><span>添加产品</span></span>-->
@@ -1920,6 +1939,9 @@
 							<!--收起-->
 							<span ng-show="!isBatch && material.exPandOper" ng-click="disExpandGoods(material)" class="packUp"><span>收起<i class="fa fa-angle-up" style="margin-left:2px;"></i></span></span>
 							<span ng-click="setActiveIndex($index,material)"><span>编辑可替代型号</span></span>
+							<span  ng-click="editRegulPicture(goods.Regulpic || 'static/img/vendor/images/upload_file_icon.png', material)">
+								<span>编辑物料</span>
+							</span>
 							<!--<a ng-show="!isBatch" ng-click="showShelfArea(material)"><span ng-if="!isBatch">编辑</span></a>-->
 							<!--<span ng-show="!isBatch && (material.sold == 0 && material.canSell == 1)" ng-click="publishGoods(material)"><span ng-if="!isBatch">上架</span></span>-->
 						</td>
@@ -2267,7 +2289,7 @@
 						</td>
 					</tr>
 					<tr class="replace-row" ng-if="material.productReplaceList.length > 0">
-						<td colspan="6">
+						<td colspan="7">
 							<div>
 								<p>可替代型号:</p>
 								<div class="replace-list"  ng-class="{'Scrollactive': material.showMoreReplace} ">
@@ -2591,4 +2613,33 @@
         position: relative;
         top: 7px;
     }
+		.device .wanted_list01 a.Regulpica:hover {
+			text-decoration: none;
+			border-bottom: 0 !important;
+		}
+		.Regulpica:hover span{
+			background: rgba(0,0,0,0) !important;
+		}
+		.Regulpic img {
+			width: 24px;
+			height: 27px;
+		}
+		div.forAdminLook {
+			margin: 0 auto;
+			width: 70px;
+			height: 25px;
+			color: #333;
+			font-size: 14px;
+			border: 1px solid #5078cb;
+			border-radius: 3px;
+			text-align: center;
+			line-height: 25px;
+			margin-top: 4px;
+			position: absolute;
+			background: #fff;
+			display: none
+		}
+		.ToforAdminLook:hover .forAdminLook {
+			display: block;
+		}
 </style>

+ 20 - 4
src/main/webapp/resources/view/vendor/forstore/vendor_onSale.html

@@ -1243,10 +1243,26 @@
                                         </div>
                                     </div>
                                     <div class="fr wid135">
-                                        <p>品牌: <em ng-bind="commodity.brandNameEn" title="{{commodity.brandNameEn}}">NXP</em></p>
-                                        <p>物料名称(类目): <em ng-bind="commodity.kindNameCn || '-'" title="{{commodity.kindNameCn}}"></em></p>
-                                        <p>型号: <em ng-bind="commodity.code" title="{{commodity.code}}">LPC1112</em></p>
-                                        <p>规格: <em ng-bind="commodity.spec || '-'" title="{{commodity.spec}}">LPC1112</em></p>
+                                        <p>
+                                            品牌:
+                                            <input type="text" ng-model="commodity.brandNameEn" style="width:106px" maxlength="25" ng-change="onBrandChange(commodity.brandNameEn)"/>
+                                        </p>
+                                        <p>
+                                            物料名称:
+                                            <input type="text" ng-model="commodity.kindNameCn" style="width:78px" maxlength="20" ng-change="onCodeChange(commodity.kindNameCn)"/>
+                                        </p>
+                                        <p>
+                                            型号:
+                                            <input type="text" ng-model="commodity.code" style="width:106px" maxlength="100" />
+                                        </p>
+                                        <p>
+                                            规格:
+                                            <input type="text" ng-model="commodity.spec" maxlength="50" style="width:106px"/>
+                                        </p>
+                                        <!--<p>品牌: <em ng-bind="commodity.brandNameEn" title="{{commodity.brandNameEn}}">NXP</em></p>-->
+                                        <!--<p>物料名称(类目): <em ng-bind="commodity.kindNameCn || '-'" title="{{commodity.kindNameCn}}"></em></p>-->
+                                        <!--<p>型号: <em ng-bind="commodity.code" title="{{commodity.code}}">LPC1112</em></p>-->
+                                        <!--<p>规格: <em ng-bind="commodity.spec || '-'" title="{{commodity.spec}}">LPC1112</em></p>-->
                                         <!--<p>-->
                                             <!--<span style="width: 32px;">规格: </span>-->
                                             <!--<span><input style="width:90px" type="text"-->

+ 200 - 49
src/main/webapp/resources/view/vendor/modal/edit_regul_modal.html

@@ -5,8 +5,7 @@
     height: 345px;
   }
   .update-img{
-    width: 520px;
-    height: 324px;
+    width: 540px;
   }
   .update-img .update-big-img{
     width: 265px;
@@ -173,24 +172,209 @@
     font-size: 16px;
     margin-right: 3px;
   }
+  .clearboth:after, .clearboth:before{
+    content: ' ';
+    display: block;
+    visibility: hidden;
+    height: 100%;
+    clear: both;
+    zoom: 1;
+  }
+  .pull-left {
+    float: left
+  }
+  .wuliao_list {
+    line-height: 28px;
+    margin-bottom: 10px;
+  }
+  .wuliao_list .name {
+    margin-right: 5px;
+    width: 100px;
+    text-align: right;
+  }
+  .listUl {
+    position: absolute;
+    top: 28px;
+    left: 0px;
+    width: 180px;
+    max-height: 180px;
+    overflow-y: auto;
+    background: #fff;
+    border: 1px solid #dcdcdc;
+    z-index: 100;
+  }
+  .listUl li {
+    font-size: 14px;
+    color: #666;
+    line-height: 24px;
+    text-indent: 12px;
+  }
+  .listUl li:hover {
+    background: #dcdcdc;
+    cursor: pointer;
+  }
+  .modal-dialog {
+    height: auto;
+    width: 560px;
+  }
+  .uploadImage .previewImage{
+    width: 100%;
+    height: 30px;
+    cursor: pointer;
+  }
 </style>
 <div class="modal-head"></div>
 <div class="modal-body">
   <div class="view-box">
     <div class="update-img">
+      <p style="">{{showAction ? '编辑物料信息': '规格书上传'}}</p>
       <a ng-click="cancel()" class="close">&times;</a>
-      <!--企业产品库 --- 这里加上品牌类目型号规格编辑 -->
-      <div ng-if="showAction">
+      <!--企业产品库 / 个人产品库 --- 这里加上品牌类目型号规格编辑 -->
+      <ul style="margin-top:12px;" ng-show="showAction" >
+        <li class="wuliao_list clearboth">
+          <div class="pull-left clearboth">
+            <div class="name pull-left" style="width: 60px"><em style="color: #f01414">*</em>品牌:</div>
+            <div class="pull-left" style="position: relative;">
+            <div ng-show="IsLookOrUpdate === 'update'">
+              <!-- 可编辑状态 -->
+              <input type="text"
+                     ng-change="onBrandChange(brandcode)"
+                     placeholder="请输入品牌名字"
+                     style="width: 180px;height: 28px"
+                     ng-blur="onBrandBlur(brandcode)"
+                     ng-model="brandcode"
+                     class="form-control" maxlength="25"/>
+              <ul class="listUl" ng-show="BrandList.value.length > 0">
+                <li ng-repeat="item in BrandList.value" ng-click="setBrand(item.nameEn)">
+                  {{item.nameEn}}
+                </li>
+              </ul>
+            </div>
+            <div ng-show="IsLookOrUpdate === 'look'" style="width: 180px;height: 28px">
+              物料品牌
+            </div>
+          </div>
+          </div>
+          <div class="pull-left clearboth">
+            <div class="name pull-left"><em style="color: #f01414">*</em>物料名称(类目):</div>
+            <div class="pull-left" style="position: relative;">
+              <div ng-show="IsLookOrUpdate === 'update'">
+                <!-- 可编辑状态 -->
+                <input type="text"
+                       placeholder="请输入物料名称(类目)"
+                       style="width: 180px;height: 28px"
+                       ng-model="kind"
+                       class="form-control" maxlength="20"/>
+              </div>
+              <div ng-show="IsLookOrUpdate === 'look'" style="width: 180px;height: 28px">
+                物料名称
+              </div>
+            </div>
+          </div>
+        </li>
+        <li class="wuliao_list clearboth">
+          <div class="pull-left clearboth">
+            <div class="name pull-left" style="width: 60px"><em style="color: #f01414">*</em>型号:</div>
+            <div class="pull-left" style="position: relative;">
+              <div ng-show="IsLookOrUpdate === 'update'">
+                <!-- 可编辑状态 -->
+                <input type="text"
+                       ng-change="onCodeChange(cmpcode)"
+                       placeholder="请输入型号"
+                       style="width: 180px;height: 28px"
+                       ng-blur="onCodeBlur(cmpcode)"
+                       ng-model="cmpcode"
+                       class="form-control" maxlength="100"/>
+                <ul class="listUl" ng-show="CodeList.value.length > 0">
+                  <li ng-repeat="item in CodeList.value" ng-click="setCode(item.nameEn)">
+                    {{item.code}}
+                  </li>
+                </ul>
+              </div>
+              <div ng-show="IsLookOrUpdate === 'look'" style="width: 180px;height: 28px">
+                物料型号
+              </div>
+            </div>
+          </div>
+          <div class="pull-left clearboth">
+            <div class="name pull-left">规格:</div>
+            <div class="pull-left">
+                <!-- 可编辑状态 -->
+                <input type="text"
+                       placeholder="请输入规格参数"
+                       style="width: 180px;height: 28px"
+                       ng-model="spec"
+                       class="form-control" maxlength="50"/>
+            </div>
+          </div>
+        </li>
+        <li class="wuliao_list clearboth">
+          <div class="name pull-left" style="width: 60px">规格书:</div>
+          <div ng-show="RegulChange" style="line-height: 30px;position: relative;height: 30px;width: 60px;text-align: center;" class="pull-left">
+            <input type="file" image-upload class="uploadImage"  on-success="onUploadSuccess($data, $file)" non-preview="true" maxSize="20971520" errorSizeMsg="'文件大小不能超过20M'">
+            <span style="color: #5078cb;cursor: pointer;">点击上传</span>
+          </div>
+          <div ng-show="!RegulChange">
+            <a href="{{RegulpicUrl}}">
+              <img src="static/img/vendor/images/pdf.png" style="width:31px;height:35px;" />
+            </a>
+          </div>
+        </li>
+      </ul>
+      <div ng-if="showAction && RegulChange" class="clearboth">
+        <div class="update-big-img" style="margin-top: 0px;width: 197px;">
+          <div class="previewImage" style="height: 197px;width: 197px;line-height: 197px;text-align: center">
+            <img ng-src="{{Regulpic}}" alt="商品图片" style="height: 159px;width: 130px;">
+            <img ng-src="{{Regulpic}}" alt="商品图片" ng-if="!Regulpic" style="height: 197px;line-height: 197px;width: 197px;">
+            <div class="cover" style="background: rgba(0,0,0,0)">
+              <i class="fa fa-trash" style="z-index: 98" ng-click="deleteImg()"></i>
+            </div>
+            <a href="{{Regulpic}}" target="_blank" ng-if="Regulpic != iniUrlImg">
+              <div class="cover">
+                <div class="look"><i class="fa fa-search"></i>查看</div>
+              </div>
+            </a>
+          </div>
+          <span class="prompt"><em style="color: #f00;">*</em>仅允许上传PDF格式文件,大小不超过20M</span>
+        </div>
+        <div class="update-file-btn" style="width: 323px;">
+          <div class="file-text" style="margin-top: 0px">
+            <h3>规格书上传须知</h3>
+            <div style="height: 171px;">1、规格书上传后,商城会在两个工作日内进行审核,审核通过后规格书将会被展示在在售产品中;<br/>
+              2、当规格书处于<span style="color:#ef0606">待审核</span>状态时,再次上传规格书,则前份规格书失效,需重新等待审核;<br/>
+              3、如审核不通过,将会以小心的形式通知您;<br/>
+              4、商城已收录规格书的器件暂不开放上传<br/>
+            </div>
+          </div>
+          <!--<p>-->
+            <!--<a ng-click="confirm()" class="ok">确定</a>-->
+            <!--<span style="left:90px;">-->
+                <!--<span ng-click="cancel()">取消</span>-->
+            <!--</span>-->
+          <!--</p>-->
+        </div>
 
-        <div>品牌类目型号</div>
+      </div>
+      <div ng-if="showAction" class="update-file-btn clearboth" style="width: 100%; float: none">
+        <p>
+          <a ng-click="confirm()" class="ok" style="float: none">确定</a>
+          <span style="position:static;vertical-align: top;" ng-click="cancel()">
+          取消
+                <!--<span >取消</span>-->
+            </span>
+        </p>
+      </div>
+      <!-- /end 企业产品库 / 个人产品库 --- 这里加上品牌类目型号规格编辑 -->
+
+      <!-- 在售产品 -->
+      <div ng-if="!showAction" class="clearboth">
         <div class="update-big-img">
-          <p>规格书上传</p>
           <div class="previewImage">
             <img ng-src="{{Regulpic}}" alt="商品图片">
             <img ng-src="{{Regulpic}}" alt="商品图片" ng-if="!Regulpic">
-            <div class="cover" style="background: rgba(0,0,0,0)">
-              <i class="fa fa-trash" style="z-index: 98" ng-click="deleteImg()"></i>
-            </div>
+            <!--<div class="cover" style="background: rgba(0,0,0,0)">-->
+              <!--<i class="fa fa-trash" style="z-index: 98" ng-click="deleteImg()"></i>-->
+            <!--</div>-->
             <a href="{{Regulpic}}" target="_blank" ng-if="Regulpic != 'static/img/store/common/default.png'">
               <div class="cover">
                 <div class="look"><i class="fa fa-search"></i>查看</div>
@@ -200,57 +384,24 @@
           <span class="prompt"><em style="color: #f00;">*</em>仅允许上传PDF格式文件,大小不超过20M</span>
         </div>
         <div class="update-file-btn">
-          <div class="file-text">
+          <div class="file-text"  style="margin-top: 0px">
             <h3>规格书上传须知</h3>
             <div>1、规格书上传后,商城会在两个工作日内进行审核,审核通过后规格书将会被展示在在售产品中;<br/>
-              2、当规格书处于<span>待审核</span>状态时,再次上传规格书,则前份规格书失效,需重新等待审核;<br/>
+              2、当规格书处于<span style="color:#ef0606">待审核</span>状态时,再次上传规格书,则前份规格书失效,需重新等待审核;<br/>
               3、如审核不通过,将会以小心的形式通知您;<br/>
               4、商城已收录规格书的器件暂不开放上传<br/>
             </div>
           </div>
           <p>
-                        <span style="left:40px;">
-                            <input type="file" image-upload class="uploadImage" accept=".pdf" on-success="onUploadSuccess($data, $file)" non-preview="true">
-                            <span>选择文件</span>
-                        </span>
+                          <span style="left:40px;">
+                              <input maxSize="20971520" type="file" image-upload class="uploadImage" accept=".pdf" on-success="onUploadSuccess($data, $file)" non-preview="true" errorSizeMsg="'文件大小不能超过20M'">
+                              <span>选择文件</span>
+                          </span>
             <a ng-click="confirm()" class="ok">确定</a>
           </p>
         </div>
       </div>
-      <!--企业产品库 --- /end 这里加上品牌类目型号规格编辑 -->
-      <div class="update-big-img" ng-if="!showAction">
-        <p>规格书上传</p>
-        <div class="previewImage">
-          <img ng-src="{{Regulpic}}" alt="商品图片">
-          <img ng-src="{{Regulpic}}" alt="商品图片" ng-if="!Regulpic">
-          <!--<div class="cover" style="background: rgba(0,0,0,0)">-->
-            <!--<i class="fa fa-trash" style="z-index: 98" ng-click="deleteImg()"></i>-->
-          <!--</div>-->
-          <a href="{{Regulpic}}" target="_blank" ng-if="Regulpic != 'static/img/store/common/default.png'">
-            <div class="cover">
-              <div class="look"><i class="fa fa-search"></i>查看</div>
-            </div>
-          </a>
-        </div>
-        <span class="prompt"><em style="color: #f00;">*</em>仅允许上传PDF格式文件,大小不超过20M</span>
-      </div>
-      <div class="update-file-btn" ng-if="!showAction">
-        <div class="file-text">
-          <h3>规格书上传须知</h3>
-          <div>1、规格书上传后,商城会在两个工作日内进行审核,审核通过后规格书将会被展示在在售产品中;<br/>
-            2、当规格书处于<span>待审核</span>状态时,再次上传规格书,则前份规格书失效,需重新等待审核;<br/>
-            3、如审核不通过,将会以小心的形式通知您;<br/>
-            4、商城已收录规格书的器件暂不开放上传<br/>
-          </div>
-        </div>
-        <p>
-                        <span style="left:40px;">
-                            <input type="file" image-upload class="uploadImage" accept=".pdf" on-success="onUploadSuccess($data, $file)" non-preview="true">
-                            <span>选择文件</span>
-                        </span>
-          <a ng-click="confirm()" class="ok">确定</a>
-        </p>
-      </div>
+      <!-- /end 在售产品 -->
     </div>
   </div>
 </div>