Эх сурвалжийг харах

Merge remote-tracking branch 'origin/feature-201815-liusw' into feature-201815-liusw

yangc 7 жил өмнө
parent
commit
16a6e4ef95
25 өөрчлөгдсөн 1652 нэмэгдсэн , 67 устгасан
  1. BIN
      jpg
  2. 22 0
      src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductAttachSubmitDao.java
  3. 328 0
      src/main/java/com/uas/platform/b2c/prod/commodity/model/ProductAttachSubmit.java
  4. 20 0
      src/main/java/com/uas/platform/b2c/prod/commodity/service/ProductAttachService.java
  5. 92 0
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductAttachServiceImpl.java
  6. 2 0
      src/main/webapp/WEB-INF/views/normal/adminWithNav.html
  7. 1 1
      src/main/webapp/resources/css/common.css
  8. BIN
      src/main/webapp/resources/img/vendor/images/fireinfo_icon.png
  9. BIN
      src/main/webapp/resources/img/vendor/images/nofireinfo_icon.png
  10. BIN
      src/main/webapp/resources/img/vendor/images/pdf.png
  11. 7 1
      src/main/webapp/resources/js/admin/app.js
  12. 312 0
      src/main/webapp/resources/js/admin/controllers/AuditRegulpicListCtrl.js
  13. 22 0
      src/main/webapp/resources/js/vendor/app.js
  14. 30 1
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialCtrl.js
  15. 3 2
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialPersonCtrl.js
  16. 3 16
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_onSaleCtrl.js
  17. 313 0
      src/main/webapp/resources/view/admin/RegulpicList.html
  18. 2 1
      src/main/webapp/resources/view/admin/audit_component.html
  19. 63 0
      src/main/webapp/resources/view/admin/modal/auditRegulpic_choose_modal.html
  20. 49 0
      src/main/webapp/resources/view/admin/modal/auditRegulpic_modal.html
  21. 135 0
      src/main/webapp/resources/view/admin/modal/auditRegulpicpass_modal.html
  22. 79 18
      src/main/webapp/resources/view/vendor/forstore/vendor_material.html
  23. 4 4
      src/main/webapp/resources/view/vendor/forstore/vendor_material_person.html
  24. 70 6
      src/main/webapp/resources/view/vendor/forstore/vendor_onSale.html
  25. 95 17
      src/main/webapp/resources/view/vendor/modal/edit_regul_modal.html

+ 22 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductAttachSubmitDao.java

@@ -0,0 +1,22 @@
+package com.uas.platform.b2c.prod.commodity.dao;
+
+import com.uas.platform.b2c.prod.commodity.model.ProductAttachSubmit;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 物料规格书申请
+ * Created by wangyc on 2018/6/26.
+ *
+ * @version 2018/6/26 18:27 wangyc
+ */
+@Repository
+public interface ProductAttachSubmitDao extends JpaRepository<ProductAttachSubmit, Long>, JpaSpecificationExecutor<ProductAttachSubmit> {
+
+    /**
+     * 通过物料id和状态获取物料规格书申请
+     * @return
+     */
+    ProductAttachSubmit findByProductIdAndStatus(Long productId, Integer status);
+}

+ 328 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/model/ProductAttachSubmit.java

@@ -0,0 +1,328 @@
+package com.uas.platform.b2c.prod.commodity.model;
+
+import com.uas.platform.b2c.b2b.model.EnterpriseBaseInfo;
+import com.uas.platform.b2c.common.account.model.UserBaseInfo;
+import com.uas.platform.b2c.core.constant.Status;
+import java.io.Serializable;
+import java.util.Date;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+/**
+ * 物料规格书申请
+ * Created by wangyc on 2018/6/26.
+ *
+ * @version 2018/6/26 17:19 wangyc
+ */
+@Entity
+@Table(name = "product$attach_submit")
+public class ProductAttachSubmit implements Serializable{
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    @Column(name = "as_id")
+    private Long id;
+
+    /**
+     * 物料id
+     */
+    @Column(name = "as_productid")
+    private Long productId;
+
+    /**
+     * 上传的规格书
+     */
+    @Column(name = "as_uploadattach", nullable = false)
+    private String uploadAttach = "";
+
+    /**
+     * 物料
+     */
+    @Transient
+    private Product product;
+
+    /**
+     * 创建时间
+     */
+    @Column(name = "as_createtime")
+    private Date createTime;
+
+    /**
+     * 提交人uu
+     */
+    @Column(name = "as_submituu")
+    private Long submitUu;
+
+    /**
+     * 提交人企业
+     */
+    @Column(name = "as_submitenuu")
+    private Long submitEnuu;
+
+    /**
+     * 提交人信息
+     */
+    @Transient
+    private UserBaseInfo submiter;
+
+    /**
+     * 提交企业
+     */
+    @Transient
+    private EnterpriseBaseInfo submitEn;
+
+    /**
+     * 匹配标准器件的uuid
+     */
+    @Column(name = "as_uuid", nullable = false)
+    private String uuid = "";
+
+    /**
+     * 审核状态
+     * 待审核 UNAUDIT 311
+     * 审核通过 AUDITED 102
+     * 未通过 NOTALLOW 103
+     */
+    @Column(name = "as_status", nullable = false)
+    private Integer status = Status.UNAUDIT.value();
+
+    /**
+     * 审核时间
+     */
+    @Column(name = "as_audittime")
+    private Date auditTime;
+
+    /**
+     * 审核人uu
+     */
+    @Column(name = "as_audituu")
+    private Long auditUu;
+
+    /**
+     * 审核人企业uu
+     */
+    @Column(name = "as_auditenuu")
+    private Long auditEnuu;
+
+    @Transient
+    private UserBaseInfo auditer;
+
+    @Transient
+    private EnterpriseBaseInfo auditEn;
+
+    /**
+     * 商城类目id
+     */
+    @Column(name = "as_kindId")
+    private Long kindId;
+
+    /**
+     * 商城品牌id
+     */
+    @Column(name = "as_brandId")
+    private Long brandId;
+
+    /**
+     * 商城规格
+     */
+    @Column(name = "as_spec", length = 4000)
+    private String spec;
+
+    /**
+     * 已匹配标准型号的规格书
+     */
+    @Column(name = "as_mallattach")
+    private String mallAttach;
+
+    /**
+     * 原因
+     */
+    @Column(name = "as_reason")
+    private String reason;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getProductId() {
+        return productId;
+    }
+
+    public void setProductId(Long productId) {
+        this.productId = productId;
+    }
+
+    public String getUploadAttach() {
+        return uploadAttach;
+    }
+
+    public void setUploadAttach(String uploadAttach) {
+        this.uploadAttach = uploadAttach;
+    }
+
+    public Product getProduct() {
+        return product;
+    }
+
+    public void setProduct(Product product) {
+        this.product = product;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Long getSubmitUu() {
+        return submitUu;
+    }
+
+    public void setSubmitUu(Long submitUu) {
+        this.submitUu = submitUu;
+    }
+
+    public Long getSubmitEnuu() {
+        return submitEnuu;
+    }
+
+    public void setSubmitEnuu(Long submitEnuu) {
+        this.submitEnuu = submitEnuu;
+    }
+
+    public UserBaseInfo getSubmiter() {
+        return submiter;
+    }
+
+    public void setSubmiter(UserBaseInfo submiter) {
+        this.submiter = submiter;
+    }
+
+    public EnterpriseBaseInfo getSubmitEn() {
+        return submitEn;
+    }
+
+    public void setSubmitEn(EnterpriseBaseInfo submitEn) {
+        this.submitEn = submitEn;
+    }
+
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Date getAuditTime() {
+        return auditTime;
+    }
+
+    public void setAuditTime(Date auditTime) {
+        this.auditTime = auditTime;
+    }
+
+    public Long getAuditUu() {
+        return auditUu;
+    }
+
+    public void setAuditUu(Long auditUu) {
+        this.auditUu = auditUu;
+    }
+
+    public Long getAuditEnuu() {
+        return auditEnuu;
+    }
+
+    public void setAuditEnuu(Long auditEnuu) {
+        this.auditEnuu = auditEnuu;
+    }
+
+    public UserBaseInfo getAuditer() {
+        return auditer;
+    }
+
+    public void setAuditer(UserBaseInfo auditer) {
+        this.auditer = auditer;
+    }
+
+    public EnterpriseBaseInfo getAuditEn() {
+        return auditEn;
+    }
+
+    public void setAuditEn(EnterpriseBaseInfo auditEn) {
+        this.auditEn = auditEn;
+    }
+
+    public Long getKindId() {
+        return kindId;
+    }
+
+    public void setKindId(Long kindId) {
+        this.kindId = kindId;
+    }
+
+    public Long getBrandId() {
+        return brandId;
+    }
+
+    public void setBrandId(Long brandId) {
+        this.brandId = brandId;
+    }
+
+    public String getSpec() {
+        return spec;
+    }
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+    }
+
+    public String getMallAttach() {
+        return mallAttach;
+    }
+
+    public void setMallAttach(String mallAttach) {
+        this.mallAttach = mallAttach;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    @Override
+    public String toString() {
+        return "ProductAttachSubmit{" + "id=" + id + ", productId=" + productId
+            + ", uploadAttach='" + uploadAttach + '\'' + ", product=" + product + ", createTime=" + createTime +
+            ", submitUu=" + submitUu + ", submitEnuu=" + submitEnuu + ", submiter=" + submiter
+            + ", submitEn=" + submitEn + ", uuid='" + uuid + '\'' + ", status=" + status + ", auditTime=" + auditTime +
+            ", auditUu=" + auditUu + ", auditEnuu=" + auditEnuu + ", auditer=" + auditer + ", auditEn=" + auditEn +
+            ", kindId=" + kindId + ", brandId=" + brandId + ", spec='" + spec + '\'' +
+            ", mallAttach='" + mallAttach + '\'' + ", reason='" + reason + '\'' + '}';
+    }
+}

+ 20 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/service/ProductAttachService.java

@@ -0,0 +1,20 @@
+package com.uas.platform.b2c.prod.commodity.service;
+
+import com.uas.platform.b2c.prod.commodity.model.ProductAttachSubmit;
+
+/**
+ * 物料规格书接口
+ * Created by wangyc on 2018/6/26.
+ *
+ * @version 2018/6/26 18:10 wangyc
+ */
+public interface ProductAttachService {
+
+    /**
+     * 物料上传规格书申请
+     * @param productId 物料id
+     * @param attach 规格书
+     * @return
+     */
+    ProductAttachSubmit submit(Long productId, String attach);
+}

+ 92 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductAttachServiceImpl.java

@@ -0,0 +1,92 @@
+package com.uas.platform.b2c.prod.commodity.service.impl;
+
+import com.uas.platform.b2c.core.constant.Status;
+import com.uas.platform.b2c.core.support.SystemSession;
+import com.uas.platform.b2c.prod.commodity.dao.ProductAttachSubmitDao;
+import com.uas.platform.b2c.prod.commodity.dao.ProductDao;
+import com.uas.platform.b2c.prod.commodity.model.Product;
+import com.uas.platform.b2c.prod.commodity.model.ProductAttachSubmit;
+import com.uas.platform.b2c.prod.commodity.service.ProductAttachService;
+import com.uas.platform.b2c.prod.product.component.dao.ComponentDao;
+import com.uas.platform.b2c.prod.product.component.modal.Component;
+import com.uas.platform.core.exception.IllegalOperatorException;
+import java.util.Date;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+/**
+ * Created by wangyc on 2018/6/26.
+ *
+ * @version 2018/6/26 18:12 wangyc
+ */
+@Service
+public class ProductAttachServiceImpl implements ProductAttachService {
+
+    private final ProductDao productDao;
+
+    private final ProductAttachSubmitDao productAttachSubmitDao;
+
+    private final ComponentDao componentDao;
+
+    @Autowired
+    public ProductAttachServiceImpl(ProductDao productDao, ProductAttachSubmitDao productAttachSubmitDao,
+        ComponentDao componentDao) {
+        this.productDao = productDao;
+        this.productAttachSubmitDao = productAttachSubmitDao;
+        this.componentDao = componentDao;
+    }
+
+    @Override
+    public ProductAttachSubmit submit(Long productId, String attach) {
+        if (StringUtils.isEmpty(attach)) {
+            throw new IllegalOperatorException("规格书为空,请上传规格书");
+        } else {
+            Product product = productDao.findOne(productId);
+            if (product == null) {
+                throw new IllegalOperatorException("此物料不存在,请重新确认物料信息");
+            } else {
+                ProductAttachSubmit productAttachSubmit = productAttachSubmitDao.findByProductIdAndStatus(productId,
+                    Status.UNAUDIT.value());
+                // 更新物料规格书申请
+                if (productAttachSubmit != null) {
+                    productAttachSubmit = completeSubmit(productAttachSubmit, product, attach);
+                // 新增物料规格书申请
+                } else {
+                    productAttachSubmit = new ProductAttachSubmit();
+                    productAttachSubmit = completeSubmit(productAttachSubmit, product, attach);
+                }
+                return productAttachSubmitDao.save(productAttachSubmit);
+            }
+        }
+    }
+
+    /**
+     * 补充申请
+     * @param submit 申请
+     * @param product 物料信息
+     * @param attach 规格书
+     * @return
+     */
+    private ProductAttachSubmit completeSubmit(ProductAttachSubmit submit, Product product, String attach) {
+        submit.setUploadAttach(attach);
+        submit.setProductId(product.getId());
+        submit.setProduct(product);
+        submit.setCreateTime(new Date());
+        if (SystemSession.getUser().getUserUU() != null && SystemSession.getUser().getEnterprise() != null) {
+            submit.setSubmitUu(SystemSession.getUser().getUserUU());
+            submit.setSubmitEnuu(SystemSession.getUser().getEnterprise().getUu());
+        } else {
+            throw new IllegalOperatorException("此功能仅供企业下属用户使用,请以企业下属用户身份登录");
+        }
+
+        submit.setUuid("");
+        if (product.getCmpUuId() != null) {
+            Component component = componentDao.findByUuid(product.getCmpUuId());
+            if (component != null) {
+                submit.setUuid(product.getCmpUuId());
+            }
+        }
+        return submit;
+    }
+}

+ 2 - 0
src/main/webapp/WEB-INF/views/normal/adminWithNav.html

@@ -145,6 +145,8 @@
 					class="fa fa-shopping-cart"></i><span> 标准器件批量建档维护</span></a></li>
 			<li class="nav-node"><a href="#audit/componentMaintenance"><i
 					class="fa fa-shopping-cart"></i><span> 标准器件维护</span></a></li>
+			<li class="nav-node"><a href="#audit/RegulpicList"><i
+					class="fa fa-shopping-cart"></i><span> 规格书审核</span></a></li>
 			<li class="nav-node"><a href="#audit/kindContrast"><i
 					class="fa fa-shopping-cart"></i><span> 属性对应关系维护</span></a></li>
 			<li class="nav-node"><a href="#audit/crawlTask"><i

+ 1 - 1
src/main/webapp/resources/css/common.css

@@ -403,7 +403,7 @@ input.ng-invalid.ng-dirty,textarea.ng-invalid.ng-dirty {
 .modal-open .modal {
     overflow-x: hidden;
     overflow-y: hidden;
-		z-index: 1000000 !important;
+		z-index: 999995 !important;
 }
 
 

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


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


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


+ 7 - 1
src/main/webapp/resources/js/admin/app.js

@@ -352,7 +352,13 @@
 			templateUrl : 'static/view/admin/audit_component.html',
 			controller : 'AuditComponentCtrl',
 			controllerUrl : 'app/controllers/AuditComponentCtrl'
-		})).state('audit_component_detail', angularAMD.route({
+		})).state('audit_regulplist', angularAMD.route({
+      // 规格书审核
+      url: '/audit/RegulpicList',
+      templateUrl : 'static/view/admin/RegulpicList.html',
+      controller : 'AuditRegulpicListCtrl',
+      controllerUrl : 'app/controllers/AuditRegulpicListCtrl'
+    })).state('audit_component_detail', angularAMD.route({
 			// 品牌审批详细页面
 			url: '/audit/component/:id',
 			templateUrl : 'static/view/admin/audit_component_detail.html',

+ 312 - 0
src/main/webapp/resources/js/admin/controllers/AuditRegulpicListCtrl.js

@@ -0,0 +1,312 @@
+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';
+    $scope.storeTableParams = new ngTableParams({
+      page : 1,
+      count : 10,
+      sorting : {
+        updateTime : 'DESC'
+      }
+    }, {
+      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;
+        }
+
+        // 根据关键字进行搜索
+        if ($scope.keyword && $scope.keyword !== '') {
+          param.keyword = $scope.keyword;
+        }
+
+        StoreInfo.pageStoreInfoWhenAdminQuery(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);
+        });
+      }
+    });
+
+    $scope.newStoreMap = {};
+
+
+    /**
+     * 根据关键字进行搜索
+     */
+    $scope.refreshTableData = function () {
+      $scope.storeTableParams.page(1);
+      $scope.storeTableParams.reload();
+    };
+
+    /**
+     * 通过
+     */
+    $scope.passBtnFn = function(item) {
+      openPassModal(item).then(function (data) {
+        passAudit(data, item)
+      }, function (error) {
+        console.log(error);
+      });
+    }
+
+    /**
+     * 审核未通过开铺申请
+     */
+    $scope.cancelBtnFn = function() {
+      openReasonModal().then(function (reason) {
+        NopassAudit(list, reason)
+      }, function (error) {
+        console.log(error);
+      });
+    }
+    /**
+     * 打开审核不通过原因模态框
+     */
+    function openReasonModal() {
+      return $modal.open({
+        templateUrl: 'static/view/admin/modal/auditRegulpic_modal.html',
+        controller: 'auditRegulpicController',
+        size : 'md'
+      }).result;
+    }
+
+    /**
+     * 审核不通过 回调
+     */
+    function NopassAudit(list, reason) {
+
+    }
+
+    /**
+     * 审核通过 回调
+     */
+    function passAudit(data, item) {
+      // 是否需要打开规格书选择项
+      openRegulChooseModal(data, item).then(function (reason) {
+        // 刷新页面
+        $scope.storeTableParams.page(1);
+        $scope.storeTableParams.reload();
+      }, function (error) {
+        console.log(error);
+      });
+    }
+
+    /**
+     * 打开审核通过模态框
+     */
+    function openPassModal(item) {
+      return $modal.open({
+        templateUrl: 'static/view/admin/modal/auditRegulpicpass_modal.html',
+        controller: 'auditRegulpicpassController',
+        size : 'md',
+        resolve : {
+          item : function() {
+            return item;
+          }
+        }
+      }).result;
+    }
+
+
+    /**
+     * 打开规格书选择模态框
+     */
+    function openRegulChooseModal(data,item) {
+      return $modal.open({
+        templateUrl: 'static/view/admin/modal/auditRegulpic_choose_modal.html',
+        controller: 'auditRegulpicChooseController',
+        size : 'md',
+        resolve : {
+          item : function() {
+            return item;
+          },
+          responseData: function() {
+            return data;
+          }
+        }
+      }).result;
+    }
+  }]);
+
+  /**
+   * 审核不通过模态框控制器
+   */
+  app.register.controller('auditRegulpicController', ['$scope', '$modalInstance', 'toaster', function ($scope, $modalInstance, toaster) {
+    $scope.saveReason = saveReason;
+    $scope.dismiss = dismiss;
+    $scope.reason = null;
+
+    /**
+     * 保存不通过原因
+     */
+    function saveReason() {
+      if (!$scope.reason || $scope.reason === '') {
+        toaster.pop('error', '请填写审核不通过原因');
+        return ;
+      }
+      $modalInstance.close($scope.reason);
+    }
+
+    /**
+     * 关闭模态框
+     */
+    function dismiss() {
+      $modalInstance.dismiss();
+    }
+  }]);
+
+  /**
+   * 审核通过模态框控制器
+   */
+  app.register.controller('auditRegulpicpassController', ['$scope', '$modalInstance', 'toaster', 'Commodity', 'Search','item', function ($scope, $modalInstance, toaster, Commodity, Search, item) {
+
+    $scope.kindPojo = {
+      first: '请选择一级类目',
+      second: '请选择二级类目',
+      third: '请选择三级类目'
+    }
+    $scope.saveReason = saveReason;
+    $scope.dismiss = dismiss;
+    $scope.BrandList = []
+    $scope.reason = null;
+    $scope.keyword = ''
+    $scope.spec = ''
+    $scope.item = item
+    /**
+     * 品牌联想词
+     */
+    $scope.onBrandChange = function(name) {
+      if (name === '') {
+        $scope.BrandList = []
+        return false
+      }
+      if ((/[^\x00-\xff]/g).test(name)) {
+        $scope.keyword = ''
+        $scope.BrandList = []
+        return false
+      }
+      $scope.BrandList = getSimilarBrands(name).$$state
+    }
+    /**
+     * 品牌联想词失去焦点
+     */
+    $scope.onBrandBlur = function(name) {
+      if (name === '') {
+        $scope.BrandList = []
+        return false
+      }
+    }
+    /**
+     * 保存不通过原因
+     */
+    function saveReason() {
+      if (!$scope.keyword || $scope.keyword === '') {
+        toaster.pop('error', '品牌未必填项');
+        return ;
+      }
+      if ($scope.kindPojo.first === '请选择一级类目') {
+        toaster.pop('error', '商城类目未选择');
+        return ;
+      }
+      if ($scope.kindPojo.second === '请选择二级类目') {
+        toaster.pop('error', '商城类目未选择');
+        return ;
+      }
+      if ($scope.kindPojo.third === '请选择三级类目') {
+        toaster.pop('error', '商城类目未选择');
+        return ;
+      }
+      // 申请品牌后,返回
+      $modalInstance.close({});
+    }
+    /**
+     * 选择品牌联想词
+     */
+    $scope.setBrand = function(item) {
+      $scope.keyword = item
+      $scope.BrandList = []
+    }
+
+    /**
+     * 关闭模态框
+     */
+    function dismiss() {
+      $modalInstance.dismiss();
+    }
+
+    var initKindDataInfo = function () {
+      Commodity.getAllKindInfo({}, function (data) {
+        $scope.kindInfo = data[0].children;
+      })
+    };
+    initKindDataInfo();
+
+    /**
+     * 获取品牌联想词
+     *
+     * @param name    品牌名称
+     */
+    function getSimilarBrands(name) {
+      if (name) {
+        return Search.getSimilarBrands({keyword: name}).$promise.then(
+            function (data) {
+              return data.map(function (item) {
+                return item;
+              });
+            });
+      }
+    }
+  }]);
+
+  /**
+   * 规格书选项
+   */
+  app.register.controller('auditRegulpicChooseController',['$scope', '$modalInstance', 'toaster', 'responseData', 'item', function($scope, $modalInstance, toaster, responseData, item) {
+    $scope.saveReason = saveReason;
+    $scope.dismiss = dismiss;
+    $scope.checked = 'store';
+
+    /**
+     * 保存不通过原因
+     */
+    function saveReason() {
+      // if (!$scope.reason || $scope.reason === '') {
+      //   toaster.pop('error', '请填写审核不通过原因');
+      //   return ;
+      // }
+      // 请求保存规格书接口
+      alert($scope.checked)
+      $modalInstance.close($scope.reason);
+    }
+
+    /**
+     * 关闭模态框
+     */
+    function dismiss() {
+      $modalInstance.dismiss();
+    }
+  }])
+});

+ 22 - 0
src/main/webapp/resources/js/vendor/app.js

@@ -1137,5 +1137,27 @@ define([ 'angularAMD', 'ngLocal', 'common/services', 'common/directives', 'commo
 		}
 	}]);
 
+  // 上传规格书
+  app.controller('editRegulationCtrl', ['$scope', 'Regulpic', '$modalInstance','showAction', function ($scope, Regulpic, $modalInstance, showAction) {
+    $scope.Regulpic = Regulpic;
+    $scope.showAction = showAction || false
+    $scope.cancel = function () {
+      $modalInstance.close();
+    };
+
+    // 删除已上传图片
+    $scope.deleteImg = function () {
+      $scope.Regulpic = 'static/img/store/common/default.png'
+    }
+
+    // 图片上传成功之后
+    $scope.onUploadSuccess = function(data){
+      $scope.Regulpic = data.path;
+    };
+
+    $scope.confirm = function() {
+      $modalInstance.close($scope.Regulpic);
+    }
+  }]);
 	return app;
 });

+ 30 - 1
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialCtrl.js

@@ -3032,6 +3032,7 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
     $scope.activeIndex = -1;
     // 编辑
     $scope.setActiveIndex = function(index, material) {
+      $scope.setShowActive = -1;
       $scope.errorObj = [];
       $scope.isInCodeList = [];
       $scope.isInBrandList = [];
@@ -3383,7 +3384,7 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
       var _wl = (angular.element('body').width() - angular.element('.edit-replace-box').width()) / 2
       var _bl = angular.element(window).height() * 0.2  + angular.element('.edit-replace-box .title').height()
       var Y = _bl + _hl + 28 - _scrollTop
-      if(type == 'brand') {
+      if(type == 'code') {
         X = _wl + $event.currentTarget.offsetLeft - 11
         el.css({
           right: X,
@@ -3405,6 +3406,32 @@ 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;
+          }
+        }
+      });
+      modalInstance.result.then(function (Regulpic) {
+        if(Regulpic) {
+          commodity.Regulpic = Regulpic;
+        }
+      }, function() {
+
+      });
+    }
   }]);
 
 	//类目选择模态框
@@ -3611,4 +3638,6 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
 			}
         };
 	}]);
+
+
 });

+ 3 - 2
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialPersonCtrl.js

@@ -2806,11 +2806,12 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
 
     function caleUllist($event,type,key,el){
       var _scrollTop = angular.element('.edit-replace-box .content').scrollTop()
+      var Y, X;
       var _hl = angular.element('.edit-replace-box .content .content-line')[key] ? angular.element('.edit-replace-box .content .content-line')[key].offsetTop : 0
       var _wl = (angular.element('body').width() - angular.element('.edit-replace-box').width()) / 2
       var _bl = angular.element(window).height() * 0.2  + angular.element('.edit-replace-box .title').height()
-      var Y = _bl + _hl + 28 - _scrollTop, X
-      if(type == 'brand') {
+      var Y = _bl + _hl + 28 - _scrollTop
+      if(type == 'code') {
         X = _wl + $event.currentTarget.offsetLeft - 11
         el.css({
           right: X,

+ 3 - 16
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_onSaleCtrl.js

@@ -1560,6 +1560,9 @@ define([ 'app/app' ], function(app) {
             resolve : {
               Regulpic : function() {
                 return Regulpic;
+              },
+              showAction: function() {
+                return false
               }
             }
           });
@@ -1909,20 +1912,4 @@ define([ 'app/app' ], function(app) {
         }
     }]);
 
-    // 上传规格书
-    app.register.controller('editRegulationCtrl', ['$scope', 'Regulpic', '$modalInstance', function ($scope, Regulpic, $modalInstance) {
-      $scope.Regulpic = Regulpic;
-      $scope.cancel = function () {
-        $modalInstance.close();
-      };
-
-      // 图片上传成功之后
-      $scope.onUploadSuccess = function(data){
-        $scope.Regulpic = data.path;
-      };
-
-      $scope.confirm = function() {
-        $modalInstance.close($scope.Regulpic);
-      }
-    }]);
 });

+ 313 - 0
src/main/webapp/resources/view/admin/RegulpicList.html

@@ -0,0 +1,313 @@
+<style>
+  #store-list .table tr>th,
+  #store-list .table tr>td{
+    text-align: center;
+    vertical-align: middle;
+  }
+
+  #store-list table td .info-line {
+    white-space: nowrap;
+  }
+  /*切换导航*/
+  .menu .col-sm-8{
+    padding: 0;
+    width: auto;
+  }
+  .menu{
+    width: 100%;
+    height: 40px;
+    background: #229ee6;
+    margin: 0;
+    line-height: 40px;
+    overflow: hidden;
+  }
+  .menu .btn{
+    border: none;
+    background: none;
+    color: #fff;
+    padding: 8px 30px;
+    min-width: 100px;
+  }
+
+  .menu2{
+    background: #fff;
+    border-bottom: 1px solid #229ee6
+  }
+  .menu2 .btn{
+    color: #333;
+  }
+  .menu .btn:active{
+    background: none;
+    box-shadow: inset 0 0 0 rgba(0,0,0,0.125);
+    border:0;
+  }
+  .menu2 .btn:active{
+    color: #333;
+  }
+  .menu .btn-group{
+    height: 40px;
+  }
+  .menu .btn-primary:before,.menu a:hover:before{
+    content: "";
+    width: 20px;
+    height: 20px;
+    display: inline-block;
+    background: #fff;
+    transform: rotate(-45deg);
+    position: absolute;
+    bottom: -18px;
+    left: 40%;
+  }
+  .menu2 .btn-primary{
+    border-bottom: 3px solid #219ee6;
+    color: #219ee6
+  }
+  .menu2 .btn:hover {
+    border-bottom: 3px solid #219ee6;
+    color: #219ee6
+  }
+  .menu2 .btn-primary:before,.menu2 a:hover:before{
+    content: '';
+    background: rgba(0,0,0,0);
+  }
+  .menu .col-sm-3{
+    float: right;
+    margin-right: 100px;
+    width: 270px;
+    padding: 0;
+  }
+  .menu .sreach-input{
+    position: relative;
+    margin-top: 5px;
+    width: 270px;
+    height: 40px;
+  }
+  .menu .sreach-input .form-control{
+    height: 30px;
+    float: left;
+    border-radius: 0;
+    font-size: 12px;
+  }
+  .menu .sreach-input button{
+    width: 60px;
+    height: 30px;
+    background: #b9e1f9;
+    float: right;
+    position: absolute;
+    right: 0;
+    top: 0;
+    border: none;
+    font-size: 14px;
+  }
+  .com-title h2{
+    font-size: 24px;
+    color: #219ee6;
+  }
+  /*显示记录条数*/
+  .text-rt{
+    text-align: right;
+  }
+  .record-stort{
+    line-height: 34px;
+    font-size: 12px;
+    margin-bottom: 0;
+    padding-right: 30px;
+  }
+  .record-stort em{
+    font-family: "Microsoft Yahei", "微软雅黑";
+    color: #229ee6;
+    font-style: inherit;
+    font-weight: inherit;
+    background: none;
+  }
+  /*表格样式*/
+  .application-tab table tbody tr{
+    height: 70px;
+  }
+  .application-tab table tr th,.application-tab table tr td{
+    border: #cfedfe 1px solid;
+    text-align: center;
+    vertical-align: middle;
+  }
+  .application-tab .table-bordered{
+    border-top: #cfedfe 1px solid;
+  }
+  .application-tab table tr th{
+    background: #cfedfe;
+    height: 35px;
+  }
+  .application-tab table tbody tr:hover{
+    background: #e4f3fc;
+  }
+  .application-tab table tbody tr .btn{
+    border: none;
+    width: 60px;
+    height: 22px;
+    line-height: 22px;
+    color: #fff;
+    display: inline-block;
+    margin-bottom: 5px;
+    padding: 0;
+    font-size: 12px;
+    border-radius: 2px;
+  }
+  .text-left{
+    text-align: left !important;
+  }
+  .application-tab table tbody tr .btn:hover{
+    background: #219ee6 ;
+  }
+  .application-tab table thead th p i{
+    color: #219ee6;
+    /*margin-left: 4px;*/
+  }
+  .application-tab table thead th p:hover{
+    cursor: pointer;
+  }
+  .application-tab table tr td p{
+    margin-bottom: 0;
+  }
+  .application-tab table tr td .passBtn {
+    width: 42px;
+    height: 22px;
+    line-height: 22px;
+    font-size: 12px;
+    text-align: center;
+    background: #3ba9e9;
+    color: #fff;
+    border-radius: 3px;
+    display: inline-block;
+    cursor: pointer;
+  }
+  .application-tab table tr td .passBtn:hover {
+    background: #3186b7
+  }
+  .application-tab table tr td .cancelBtn {
+    display: inline-block;
+    width: 42px;
+    height: 22px;
+    line-height: 22px;
+    font-size: 12px;
+    text-align: center;
+    background: #fff;
+    color: #3ba9e9;
+    border-radius: 3px;
+    border: 1px solid #3ba9e9;
+    cursor: pointer;
+  }
+  .application-tab table tr td .cancelBtn:hover {
+    background: #f02020;
+    color: #fff;
+    border: 1px solid #f02020;
+  }
+  .application-tab table tr td .lookNoPassInfo {
+    position: relative;
+  }
+
+  .application-tab table tr td .lookNoPassInfo .infoMore {
+    display: none;
+    width: 178px;
+    min-height: 50px;
+    padding: 5px;
+    position: absolute;
+    left: -36px;
+    top: 22px;
+    border: 1px solid #219ee6;
+    box-shadow: 0 0 2px #219ee6;
+    background: #fff;
+  }
+  .application-tab table tr td .lookNoPassInfo:hover .infoMore{
+    display: block;
+  }
+</style>
+<div class="row-fluid sortable" id="store-list">
+  <div class="com-title">
+    <h2>规格书审核</h2>
+  </div>
+  <div class="menu row">
+    <div class="col-sm-8">
+      <div class="btn-group" role="group" aria-label="...">
+        <a type="button" class="btn btn-default" ui-sref="audit_component">标准器件审批</a>
+        <a type="button" class="btn btn-default btn-primary">规格书审核</a>
+        <!--<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>-->
+      </div>
+    </div>
+    <div class="col-sm-3">
+      <div class="sreach-input">
+        <input type="search" class="form-control" placeholder="请输入公司名称" ng-model="keyword" ng-search="refreshTableData()"/>
+        <button ng-click="refreshTableData()">搜索</button>
+      </div>
+    </div>
+  </div>
+  <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>
+      </div>
+    </div>
+    <div class="col-sm-3">
+    </div>
+  </div>
+  <div class="row">
+    <div class="text-rt col-sm-12">
+      <p class="record-stort">显示1-10条记录,&nbsp;&nbsp;共<em ng-bind="storeTableParams.total()">1000</em>条</p>
+    </div>
+  </div>
+  <!--表格-->
+  <div class="application-tab">
+    <table class="table table-bordered" ng-table="storeTableParams">
+      <thead>
+      <tr>
+        <th width="154">提交人</th>
+        <th width="94">提交时间</th>
+        <th width="148">品牌</th>
+        <th width="147">物料(类目名称)</th>
+        <th width="146">型号</th>
+        <th width="74">规格书</th>
+        <th width="98">审核人</th>
+        <th width="94">审核时间</th>
+        <th width="106">状态</th>
+        <th width="114">操作</th>
+      </tr>
+      </thead>
+      <tbody>
+      <tr ng-repeat="list in $data">
+        <td>
+          <div>呼哈哈</div>
+          <div>深圳市优软科技</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><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: #f02020">未通过<img src="static/img/vendor/images/nofireinfo_icon.png" width="16" height="16" /></span>
+            <div class="infoMore">
+              <span style="color:#219ee6">原因:</span>就是不想让你通过。
+            </div>
+          </div>
+        </td>
+        <td>
+          <span class="passBtn" ng-click="passBtnFn(list)">通过</span>
+          <span class="cancelBtn" ng-click="cancelBtnFn(list)">不通过</span>
+        </td>
+      </tr>
+      <tr ng-if="!$data || $data.length <= 0">
+        <td colspan="8">暂时没有待审核申请</td>
+      </tr>
+      </tbody>
+    </table>
+  </div>
+</div>

+ 2 - 1
src/main/webapp/resources/view/admin/audit_component.html

@@ -1,6 +1,7 @@
 <div class="box">
 	<div class="box-header well" data-original-title>
-		<i class="icon-user"></i> 标准器件审批
+		<span style="color: #178acc"><i class="icon-user"></i> 标准器件审批</span>
+		<span ui-sref="audit_regulplist" style="cursor: pointer;"><i class="icon-user"></i> 规格书审核</span>
 	</div>
 	<div class="box-content">
 		<!-- ng-tableStart -->

+ 63 - 0
src/main/webapp/resources/view/admin/modal/auditRegulpic_choose_modal.html

@@ -0,0 +1,63 @@
+<style type="text/css">
+  h3.modal-title {
+    font-size: 17px;
+    line-height: 1;
+    color: #fff;
+  }
+
+  #body {
+    padding-left: 10px;
+    padding-right: 10px;
+    font-size: 15px;
+  }
+
+  div.title {
+    background-color: #3ba9e9;
+  }
+
+  #body . {
+    margin-bottom: 10px;
+  }
+
+  .close {
+    font-size: 22px;
+  }
+  [class^="span"] {
+    width: auto;
+  }
+</style>
+<div class="modal-header title">
+  <button type="button" class="close" ng-click="dismiss()"><span>×</span></button>
+  <h3 class="modal-title">选择规格书</h3>
+</div>
+<form class="form-horizontal " name="myForm" novalidate>
+  <div class="modal-body" id="body">
+    <div class="form-group">
+      <div class="col-sm-12">
+        <p style="color: #ea0025">商城已存在该标准物料,请选择正确的规格书</p>
+      </div>
+    </div>
+    <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'"> 商城规格书
+        </label>
+        <div style="margin: 10px 0"><img src="static/img/vendor/images/pdf.png" style="width:31px;height:35px;" /></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'"> 用户上传规格书
+        </label>
+        <div style="margin: 10px 0"><img src="static/img/vendor/images/pdf.png" style="width:31px;height:35px;" /></div>
+      </div>
+    </div>
+    <div class="form-group">
+      <div class="col-sm-6">
+        <input class="btn btn-primary" type="button" value="确定" ng-click="saveReason()" style="float: right;"/>
+      </div>
+      <div class="col-sm-6">
+        <input class="btn btn-default" type="button" value="取消" ng-click="dismiss()"/>
+      </div>
+    </div>
+  </div>
+</form>

+ 49 - 0
src/main/webapp/resources/view/admin/modal/auditRegulpic_modal.html

@@ -0,0 +1,49 @@
+<style type="text/css">
+  h3.modal-title {
+    font-size: 17px;
+    line-height: 1;
+    color: #fff;
+  }
+
+  #body {
+    padding-left: 10px;
+    padding-right: 10px;
+    font-size: 15px;
+  }
+
+  div.title {
+    background-color: #3ba9e9;
+  }
+
+  #body . {
+    margin-bottom: 10px;
+  }
+
+  .close {
+    font-size: 22px;
+  }
+  [class^="span"] {
+    width: auto;
+  }
+</style>
+<div class="modal-header title">
+  <button type="button" class="close" ng-click="dismiss()"><span>×</span></button>
+  <h3 class="modal-title">不通过原因</h3>
+</div>
+<form class="form-horizontal " name="myForm" novalidate>
+  <div class="modal-body" id="body">
+    <div class="form-group">
+      <div class="col-sm-12">
+        <textarea class="form-control" id="reason" title="reason" rows="10" ng-model="reason" placeholder="请填写不通过原因(必填)"></textarea>
+      </div>
+    </div>
+    <div class="form-group">
+      <div class="col-sm-6">
+        <input class="btn btn-primary" type="button" value="确定" ng-click="saveReason()" style="float: right;"/>
+      </div>
+      <div class="col-sm-6">
+        <input class="btn btn-default" type="button" value="取消" ng-click="dismiss()"/>
+      </div>
+    </div>
+  </div>
+</form>

+ 135 - 0
src/main/webapp/resources/view/admin/modal/auditRegulpicpass_modal.html

@@ -0,0 +1,135 @@
+<style type="text/css">
+  h3.modal-title {
+    font-size: 17px;
+    line-height: 1;
+    color: #fff;
+  }
+
+  #body {
+    padding-left: 10px;
+    padding-right: 10px;
+    font-size: 15px;
+  }
+
+  div.title {
+    background-color: #3ba9e9;
+  }
+
+  #body . {
+    margin-bottom: 10px;
+  }
+
+  .close {
+    font-size: 22px;
+  }
+  [class^="span"] {
+    width: auto;
+  }
+  .form-horizontal .form-group {
+    line-height: 28px;
+  }
+  .form-horizontal div {
+    color: #666;
+    font-size: 14px
+  }
+  .form-horizontal .name {
+    color: #999
+  }
+  .listUl {
+    position: absolute;
+    top: 28px;
+    left: 15px;
+    width: 240px;
+    max-height: 180px;
+    overflow-y: auto;
+    background: #fff;
+    border: 1px solid #dcdcdc;
+    z-index: 10;
+  }
+  .listUl li {
+    font-size: 14px;
+    color: #666;
+    line-height: 24px;
+    text-indent: 12px;
+  }
+  .listUl li:hover {
+    background: #dcdcdc;
+    cursor: pointer;
+  }
+</style>
+<div class="modal-header title">
+  <button type="button" class="close" ng-click="dismiss()"><span>×</span></button>
+  <h3 class="modal-title">通过</h3>
+</div>
+<form class="form-horizontal " name="myForm" novalidate>
+  <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>
+    <div class="form-group">
+      <div class="col-sm-3 name">物料名称(类目):</div>
+      <div class="col-sm-9">这是物料名称</div>
+    </div>
+    <div class="form-group">
+      <div class="col-sm-3 name">型号:</div>
+      <div class="col-sm-9">这是型号名字</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>
+    <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)">
+            {{item.nameEn}}
+          </li>
+        </ul>
+      </div>
+    </div>
+    <div class="form-group">
+      <div class="col-sm-3 name"><em style="color: #ea0e0e">*</em>商城类目:</div>
+      <div class="col-sm-9" >
+        <div class="col-sm-4" style="padding: 0px;">
+          <select class="form-control"
+                  ng-model="kindPojo.first"
+                  ng-options="key as value.nameCn for (key,value) in kindInfo"
+                  ng-change="kindPojo.second='';kindPojo.third='';"
+                  style="opacity: 1;height:28px;overflow-y: scroll;line-height:28px;padding: 0 6px;">
+            <option value="">请选择一级类目</option>
+          </select>
+        </div>
+        <div class="col-sm-4" style="padding: 0px;">
+          <select class="form-control" ng-model="kindPojo.second"
+                  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>
+          </select>
+        </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-options="value as value.nameCn for value in kindInfo[kindPojo.first].children[kindPojo.second].children">
+            <option value="">请选择三级类目</option>
+          </select>
+        </div>
+      </div>
+    </div>
+    <div class="form-group">
+      <div class="col-sm-3 name">规格:</div>
+      <div class="col-sm-9">
+        <input type="text" placeholder="请输入规格(非必填)" ng-model="spec" class="form-control" style="width: 240px;height: 28px" />
+      </div>
+    </div>
+    <div class="form-group">
+      <div class="col-sm-6">
+        <input class="btn btn-primary" type="button" value="确定" ng-click="saveReason()" style="float: right;"/>
+      </div>
+      <div class="col-sm-6">
+        <input class="btn btn-default" type="button" value="取消" ng-click="dismiss()"/>
+      </div>
+    </div>
+  </div>
+</form>

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

@@ -341,7 +341,7 @@
 		color: #5078cb;
 	}
 	.pro_management .table .check-active {
-		margin-right: 15px;
+		/*margin-right: 15px;*/
 		user-select: none;
 	}
 	.pro_management .table .check-active span {
@@ -1941,6 +1941,29 @@
 		font-size: 14px;
 		color: #f60e0e;
 	}
+	.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>
 <div class="user_right fr">
 	<!--货品管理-->
@@ -2007,19 +2030,19 @@
 				<table class="public-tab standard-tab table">
 					<thead>
 					<tr>
-						<th width="65">
+						<th width="55">
 							<label class="check-active">
 								<input ng-disabled="currenctMaterial.length == 0" type="checkbox"  ng-click="chooseAllItem()" ng-checked="chooseAll || chooseAllPage" id="AllChoose"/>
 								<label for="AllChoose"></label>
 								<span>全选</span>
 							</label>
 						</th>
-						<th width="40">序号</th>
 						<th width="120">品牌</th>
-						<th width="140">物料名称(类目)</th>
-						<th width="170">型号</th>
+						<th width="130">物料名称(类目)</th>
+						<th width="150">型号</th>
 						<th width="100">规格</th>
-						<th width="80">单位</th>
+						<th width="100">规格书</th>
+						<th width="60">单位</th>
 						<!--<th width="80">封装</th>-->
 						<th width="280">操作</th>
 					</tr>
@@ -2058,10 +2081,10 @@
 							<img src="static/img/vendor/images/person-material-pc.png" ng-if="material.addProductPerson" alt="">
 							<span><input type="checkbox" ng-checked="material.isChoosed"  ng-click="chooseOne(material)"  id="{{$index+1}}"/><label for="{{$index+1}}"></label><br/></span>
 						</td>
-						<td>
+						<!--<td>-->
 							<!--<span ng-show="isBatch"><input type="checkbox" ng-checked="material.isChoosed"  ng-click="chooseOne(material)"  id="{{$index+1}}"/><label for="{{$index+1}}"></label><br/></span>-->
-							<span ng-show="!isBatch" ng-bind="(param.page - 1) * 10 + $index + 1"></span>
-						</td>
+							<!--<span ng-show="!isBatch" ng-bind="(param.page - 1) * 10 + $index + 1"></span>-->
+						<!--</td>-->
 						<td>
 							<div class="ellipsis-div" ng-if="material.pbranden" ng-bind="material.pbranden" title="{{material.pbranden}}"></div>
 							<div class="ellipsis-div" ng-if="!material.pbranden" ng-bind="material.pbrand" title="{{material.pbrand}}"></div>
@@ -2077,13 +2100,36 @@
 						<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>
 						<td ng-bind="material.unit || 'PCS'" title="{{material.unit  || 'PCS'}}"></td>
 						<!--<td>-->
 							<!--<span ng-bind="material.encapsulation || '-'" title="{{material.encapsulation || '-'}}"></span>-->
 						<!--</td>-->
 						<td class="edit">
-							<span ng-click="lookActiveIndex($index, material)"><span>查看</span></span>/<span ng-click="setActiveIndex($index,material)"><span>编辑可替代型号</span></span>
+							<span ng-click="lookActiveIndex($index, material)">
+								<span>可替代型号</span>
+								<!--<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>编辑物料</span>
+							</span>
+							<!---->
 							<span ng-show="!isBatch && !material.exPandOper && !material.addGoodsOper" ng-click="showShelfArea(material)">
 								<span ng-if="material.batchCount">添加产品</span>
 								<span ng-if="!material.batchCount">编辑上架</span>
@@ -2201,6 +2247,7 @@
                                                         </div>
                                                     </div>
                                                     <div class="content floatLeft">
+																											<div class="">
                                                         <p class="title height29">交期(天):</p>
                                                         <div class="input-list">
                                                             <p>
@@ -2213,6 +2260,9 @@
                                                                              ng-class="{'error' : goods.editMaxDeliveryinValid}"/></span>
                                                             </p>
                                                         </div>
+																												<div style="clear:both"></div>
+																											</div>
+
                                                     </div>
                                                     <div class="content margin10">
                                                         <!--<p class="title">自营 / 寄售</p>-->
@@ -2666,6 +2716,7 @@
 
 		<div class="reminfo" style="background: #fff;text-align: right;margin: 0px;padding-right: 20px;padding-top:5px;padding-bottom: 10px" ng-if="resultDatalist.length > 0">共<span style="color: #5078cb">{{resultDatalist.length}}</span>个可替代型号</div>
     <div class="operate">
+			<span ng-if="resultDatalist.length >= 0" ng-click="setActiveIndex(setShowActive, _material)">编辑</span>
       <span ng-click="lookActiveIndex(-1)" style="background: #5078cb">关闭</span>
     </div>
   </div>
@@ -2683,21 +2734,24 @@
 			</div>
 			<div class="content-line" ng-repeat="(key, mate) in replaceMaterialList" on-finish-render="ngRepeatFinished">
 				<div class="form-item form-left">
-					<span><i>{{key + 1}}</i><em>*</em>型号:</span>
-					<input type="text" class="form-control" ng-readonly="mate.editable == false" ng-model="mate.ptrCmpcode" ng-focus="onFocus($event, 'similar-list1_'+ key, 'code', key)" ng-change="onCodeChange(mate.ptrCmpcode, key, $event)" ng-blur="onCodeBlur(key)" ng-class="{'error': errorObj[key].code == 1}" placeholder="请输入型号名称">
-					<ul class="similar-list" ng-class="'similar-list1_'+ key" ng-show="mate.showSimilarCodeList && similarCode.length > 0 && mate.ptrCmpcode" ng-mouseenter="setIsInCodeList(true, key)" ng-mouseleave="setIsInCodeList(false, key)">
-						<li ng-repeat="sCode in similarCode" ng-bind="sCode.code" title="{{sCode.code}}" ng-click="setCode(key, sCode.code)"></li>
+					<span><i>{{key + 1}}</i><em>*</em>品牌:</span>
+
+					<input type="text" class="form-control" ng-readonly="mate.editable == false" ng-model="mate.ptrBranden" ng-focus="onFocus($event, 'similar-list1_'+ key, 'brand', key)" ng-change="onBrandChange(mate.ptrBranden, key)" ng-blur="onBrandBlur(key)" ng-class="{'error': errorObj[key].brand == 1}" placeholder="请输入品牌名称">
+					<ul class="similar-list" ng-class="'similar-list1_'+ key" ng-show="mate.showSimilarBrandList && similarBrand.length > 0 && mate.ptrBranden" ng-mouseenter="setIsInBrandList(true, key)" ng-mouseleave="setIsInBrandList(false, key)">
+						<li ng-repeat="sBrand in similarBrand" ng-bind="sBrand.nameEn" title="{{sBrand.nameEn}}" ng-click="setBrand(key, sBrand.nameEn)"></li>
 					</ul>
+
 				</div>
 				<div class="form-item form-right">
-					<span><em>*</em>品牌:</span>
-					<input type="text" class="form-control" ng-readonly="mate.editable == false" ng-model="mate.ptrBranden" ng-focus="onFocus($event, 'similar-list2_'+ key, 'brand', key)" ng-change="onBrandChange(mate.ptrBranden, key)" ng-blur="onBrandBlur(key)" ng-class="{'error': errorObj[key].brand == 1}" placeholder="请输入品牌名称">
-					<ul class="similar-list" ng-class="'similar-list2_'+ key" ng-show="mate.showSimilarBrandList && similarBrand.length > 0 && mate.ptrBranden" ng-mouseenter="setIsInBrandList(true, key)" ng-mouseleave="setIsInBrandList(false, key)">
-						<li ng-repeat="sBrand in similarBrand" ng-bind="sBrand.nameEn" title="{{sBrand.nameEn}}" ng-click="setBrand(key, sBrand.nameEn)"></li>
+					<span><em>*</em>型号:</span>
+					<input type="text" class="form-control" ng-readonly="mate.editable == false" ng-model="mate.ptrCmpcode" ng-focus="onFocus($event, 'similar-list2_'+ key, 'code', key)" ng-change="onCodeChange(mate.ptrCmpcode, key, $event)" ng-blur="onCodeBlur(key)" ng-class="{'error': errorObj[key].code == 1}" placeholder="请输入型号名称">
+					<ul class="similar-list" ng-class="'similar-list2_'+ key" ng-show="mate.showSimilarCodeList && similarCode.length > 0 && mate.ptrCmpcode" ng-mouseenter="setIsInCodeList(true, key)" ng-mouseleave="setIsInCodeList(false, key)">
+						<li ng-repeat="sCode in similarCode" ng-bind="sCode.code" title="{{sCode.code}}" ng-click="setCode(key, sCode.code)"></li>
 					</ul>
 					<i class="fa fa-minus-circle" ng-if="replaceMaterialList.length >= 1 && mate.editable != false" ng-click="setReplies('sub', key)"></i>
 					<i class="fa fa-plus-circle" ng-if="key == linearLength - 1 && mate.editable != false" ng-click="setReplies('add', key)"></i>
 				</div>
+
 			</div>
 		</div>
 
@@ -2925,6 +2979,13 @@
 		.edit-replace-box .content3 .no-resulte a:hover {
 			text-decoration: underline !important;
 		}
+		.device .wanted_list01 a.Regulpica:hover {
+			text-decoration: none;
+			border-bottom: 0 !important;
+		}
+		.Regulpica:hover span{
+			background: rgba(0,0,0,0) !important;
+		}
 </style>
 
 <!--

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

@@ -2528,16 +2528,16 @@
 			<div class="content-line" ng-repeat="(key, mate) in replaceMaterialList" on-finish-render="ngRepeatFinished">
 				<div class="form-item form-left">
 					<span><i>{{key + 1}}</i><em>*</em>品牌:</span>
-					<input type="text"  ng-readonly="mate.editable == false"  class="form-control" ng-model="mate.ptrBranden" ng-focus="onFocus($event, 'similar-list4_'+ key, 'brand', key)" ng-change="onBrandChange(mate.ptrBranden, key)" ng-blur="onBrandBlur(key)" ng-class="{'error': errorObj[key].brand == 1}" placeholder="请输入品牌名称">
-					<ul class="similar-list" ng-class="'similar-list4_'+ key" ng-show="mate.showSimilarBrandList && similarBrand.length > 0 && mate.ptrBranden" ng-mouseenter="setIsInBrandList(true, key)" ng-mouseleave="setIsInBrandList(false, key)">
+					<input type="text"  ng-readonly="mate.editable == false"  class="form-control" ng-model="mate.ptrBranden" ng-focus="onFocus($event, 'similar-list3_'+ key, 'brand', key)" ng-change="onBrandChange(mate.ptrBranden, key)" ng-blur="onBrandBlur(key)" ng-class="{'error': errorObj[key].brand == 1}" placeholder="请输入品牌名称">
+					<ul class="similar-list" ng-class="'similar-list3_'+ key" ng-show="mate.showSimilarBrandList && similarBrand.length > 0 && mate.ptrBranden" ng-mouseenter="setIsInBrandList(true, key)" ng-mouseleave="setIsInBrandList(false, key)">
 							<li ng-repeat="sBrand in similarBrand" ng-bind="sBrand.nameEn" title="{{sBrand.nameEn}}" ng-click="setBrand(key, sBrand.nameEn)"></li>
 					</ul>
 
 				</div>
 				<div class="form-item form-right">
 					<span><em>*</em>型号:</span>
-					<input type="text"  ng-readonly="mate.editable == false"  class="form-control" ng-model="mate.ptrCmpcode" ng-focus="onFocus($event, 'similar-list3_'+ key, 'code', key)" ng-change="onCodeChange(mate.ptrCmpcode, key)" ng-blur="onCodeBlur(key)" ng-class="{'error': errorObj[key].code == 1}" placeholder="请输入型号名称">
-					<ul class="similar-list" ng-class="'similar-list3_'+ key"  ng-show="mate.showSimilarCodeList && similarCode.length > 0 && mate.ptrCmpcode" ng-mouseenter="setIsInCodeList(true, key)" ng-mouseleave="setIsInCodeList(false, key)">
+					<input type="text"  ng-readonly="mate.editable == false"  class="form-control" ng-model="mate.ptrCmpcode" ng-focus="onFocus($event, 'similar-list4_'+ key, 'code', key)" ng-change="onCodeChange(mate.ptrCmpcode, key)" ng-blur="onCodeBlur(key)" ng-class="{'error': errorObj[key].code == 1}" placeholder="请输入型号名称">
+					<ul class="similar-list" ng-class="'similar-list4_'+ key"  ng-show="mate.showSimilarCodeList && similarCode.length > 0 && mate.ptrCmpcode" ng-mouseenter="setIsInCodeList(true, key)" ng-mouseleave="setIsInCodeList(false, key)">
 						<li ng-repeat="sCode in similarCode" ng-bind="sCode.code" title="{{sCode.code}}" ng-click="setCode(key, sCode.code)"></li>
 					</ul>
 					<i class="fa fa-minus-circle" ng-if="replaceMaterialList.length >= 1 && mate.editable != false" ng-click="setReplies('sub', key)"></i>

+ 70 - 6
src/main/webapp/resources/view/vendor/forstore/vendor_onSale.html

@@ -760,8 +760,9 @@
         transform: rotateZ(180deg);
         color: #5078cb !important;
     }
-    .modal-backdrop {
-        background-color: transparent ;
+    .modal-open {
+        overflow-y: auto;
+        overflow-x: hidden;
     }
     .device .wanted_list01 a:hover {
         border-bottom: 1px solid #ddd !important ;
@@ -951,6 +952,39 @@
     .wanted_list01 .tab table tr {
         height: 104px;
     }
+    .Regulpic img {
+        width: 24px;
+        height: 27px;
+    }
+    .edit-form td div.forAdminLook {
+        width: 70px;
+        height: 25px;
+        color: #333;
+        font-size: 14px;
+        border: 1px solid #5078cb;
+        border-radius: 3px;
+        text-align: center;
+        margin-top: 4px;
+    }
+    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>
 <div class="user_right fr">
     <!--货品管理-->
@@ -1146,15 +1180,27 @@
                                 <span title="{{price.rMBPrice | formateNumber : 6 | currencySysmbol : commodity.currencyName}}" ng-bind="price.rMBPrice | formateNumber : 6 | currencySysmbol : commodity.currencyName" class="marginL27"></span>
                             </div>
                         </td>
-                        <td>
-                            <div ng-if="onsale.currency == 'RMB'">
+                        <td style="overflow: inherit;">
+                            <div ng-if="onsale.currency == 'RMB'" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">
                                 <span ng-if="commodity.b2cMaxDelivery && (commodity.b2cMaxDelivery != commodity.b2cMinDelivery)" ng-bind=" commodity.b2cMinDelivery + '-'+ commodity.b2cMaxDelivery" class="marginL40" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;width:60px;"></span>
                                 <span ng-if="commodity.b2cMaxDelivery && (commodity.b2cMaxDelivery == commodity.b2cMinDelivery)" ng-bind=" commodity.b2cMinDelivery" class="marginL40" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;width:60px;"></span>
                             </div>
-                            <div ng-if="onsale.currency == 'USD'">
+                            <div ng-if="onsale.currency == 'USD'" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">
                                 <span ng-if="commodity.b2cMaxDelivery && (commodity.b2cMinDelivery != commodity.b2cMaxDelivery)" ng-bind=" commodity.b2cMinDelivery + '-'+ commodity.b2cMaxDelivery" class="marginL40"></span>
                                 <span ng-if="commodity.b2cMaxDelivery && (commodity.b2cMinDelivery == commodity.b2cMaxDelivery)" ng-bind=" commodity.b2cMinDelivery" class="marginL40"></span>
                             </div>
+                            <div class="Regulpic">
+                                <span>规格书:</span>
+                                <!--<span ng-if="!commodity.Regulpic">-</span>-->
+                                <div style="position: relative;display: inline-block;width: auto;margin-top: 0px" class="ToforAdminLook">
+                                    <a style="text-decoration: none;margin: 0px;border-bottom:0px" target="_blank" href="{{commodity.Regulpic}}" class="Regulpica">
+                                        <img style="width:24px;height:26px" src="static/img/vendor/images/pdf.png"/>
+                                    </a>
+                                    <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>
+                                <!--<div class="forAdminLook" style="margin-left: 35px;">待审核</div>-->
+                            </div>
                         </td>
                         <td>
                             <div>
@@ -1195,7 +1241,6 @@
                                             <a ng-click="commodity.editPic = null" class="delete-img" title="删除" ng-if="commodity.editPic"><i class="fa fa-trash"></i></a>
                                             <a ng-click="editGoodsPicture(commodity.editPic || 'static/img/store/common/default.png', commodity)" title="修改图片"><img src="static/img/icon/update-img.png" /></a>
                                         </div>
-                                        <!--<a ng-click="editRegulPicture(commodity.Regulpic || 'static/img/store/common/default.png', commodity)">规格书</a>-->
                                     </div>
                                     <div class="fr wid135">
                                         <p>品牌: <em ng-bind="commodity.brandNameEn" title="{{commodity.brandNameEn}}">NXP</em></p>
@@ -1283,6 +1328,22 @@
                                         <span>-</span>
                                         <span><input type="text" placeholder="香港最长交期" ng-class="{'error' : commodity.editMaxDeliveryinValid}" ng-blur="changeDelivery(commodity.editMinDelivery, commodity.editMaxDelivery, false, true, commodity)" ng-model="commodity.editMaxDelivery" class="wid25 form-control" oninput="if(value.length>3)value=value.slice(0,3)"/></span>
                                     </div>
+                                    <div class="Regulpic">
+                                        <span>规格书:</span>
+                                        <div style="position: relative;display: inline-block;width: auto;margin-top: 0px" class="ToforAdminLook">
+                                            <a style="text-decoration: none;margin: 0px" target="_blank" ng-click="editRegulPicture(commodity.Regulpic || 'static/img/store/common/default.png', commodity)" class="Regulpica">
+                                                <img style="width:24px;height:26px" src="static/img/vendor/images/pdf.png"/>
+                                            </a>
+                                            <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>
+                                    </div>
+                                    <!--<div class="Regulpic">-->
+                                        <!--<span>规格书:</span>-->
+                                        <!--<img style="width:24px;height:26px;cursor: pointer" src="static/img/vendor/images/pdf.png" ng-click="editRegulPicture(commodity.Regulpic || 'static/img/store/common/default.png', commodity)"/>-->
+                                        <!--<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>-->
                                 </div>
                                 <div class="content-show width70">
                                     <div>
@@ -1603,6 +1664,9 @@
         position: relative;
         top: 7px;
     }
+    .device .wanted_list01 a.Regulpica:hover{
+        border-bottom: 0 !important;
+    }
 </style>
 <script>
     $(function(){

+ 95 - 17
src/main/webapp/resources/view/vendor/modal/edit_regul_modal.html

@@ -24,6 +24,7 @@
     line-height: 256px;
     border: #e6e6e6 1px solid;
     margin-bottom: 5px;
+    position: relative;
   }
   .update-img .update-big-img .previewImage img{
     width: 256px;
@@ -136,38 +137,115 @@
     display: inline-block;
     margin-top: 5px;
   }
+  .cover {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    left: 0px;
+    top: 0px;
+    background: rgba(0,0,0,0.5);
+  }
+  .cover .fa-trash {
+    color: #fff;
+    font-size: 18px;
+    position: absolute;
+    right: 5px;
+    top: 5px;
+    cursor: pointer;
+  }
+  .cover .look {
+    position: absolute;
+    width: 120px;
+    height: 20px;
+    top: 50%;
+    margin-top: -10px;
+    margin-left: -60px;
+    left: 50%;
+    line-height: 26px;
+    text-align: center;
+    cursor: pointer;
+  }
+  .cover .look, .cover .fa-search {
+    color: #fff;
+    font-size: 14px
+  }
+  .cover .fa-search {
+    font-size: 16px;
+    margin-right: 3px;
+  }
 </style>
 <div class="modal-head"></div>
 <div class="modal-body">
   <div class="view-box">
     <div class="update-img">
       <a ng-click="cancel()" class="close">&times;</a>
-      <div class="update-big-img">
-        <p>大图预览</p>
+      <!--企业产品库 --- 这里加上品牌类目型号规格编辑 -->
+      <div ng-if="showAction">
+
+        <div>品牌类目型号</div>
+        <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>
+            <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">
+          <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>
+      </div>
+      <!--企业产品库 --- /end 这里加上品牌类目型号规格编辑 -->
+      <div class="update-big-img" ng-if="!showAction">
+        <p>规格书上传</p>
         <div class="previewImage">
-          <a href="{{Regulpic}}" target="_blank" ng-if="Regulpic != ''"><img ng-src="{{Regulpic}}" alt="商品图片"></a>
+          <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>  建议使用不小于256*256px图片,大小不超过3M</span>
+        <span class="prompt"><em style="color: #f00;">*</em>仅允许上传PDF格式文件,大小不超过20M</span>
       </div>
-      <div class="update-file-btn">
+      <div class="update-file-btn" ng-if="!showAction">
         <div class="file-text">
-          <h3>图片上传须知</h3>
-          <div>上传的商品图片若存在以下任一情形,
-            平台将会对产品进行下架,若情节影响
-            严重,平台将保留追究权:<br/>
-            1、图片与产品不相符合;<br/>
-            2、图片存在低俗信息;<br/>
-            3、图片拼接、不清晰或拉伸变形等;<br/>
-            4、带有文字、色块、图形或logo等影响<br/>
-            &nbsp;&nbsp;&nbsp;主图美观和正常查看的内容(平台会<br/>
-            &nbsp;&nbsp;&nbsp;自动生成店铺logo,无需再使用有logo<br/>
-            &nbsp;&nbsp;&nbsp;的图片).
+          <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="image/jpeg,image/jpg,image/gif,image/bmp,image/png,.pdf" on-success="onUploadSuccess($data, $file)" non-preview="true">
+                            <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>