Browse Source

Merge branch 'dev-mysql' into newAccountTest0210

suntg 8 years ago
parent
commit
afd23debf8
25 changed files with 490 additions and 97 deletions
  1. 12 0
      src/main/java/com/uas/platform/b2c/common/account/controller/UserController.java
  2. 11 0
      src/main/java/com/uas/platform/b2c/common/account/dao/UserDao.java
  3. 7 0
      src/main/java/com/uas/platform/b2c/common/account/service/UserService.java
  4. 34 0
      src/main/java/com/uas/platform/b2c/common/account/service/impl/UserServiceImpl.java
  5. 12 2
      src/main/java/com/uas/platform/b2c/prod/commodity/controller/ProductController.java
  6. 6 1
      src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductDao.java
  7. 11 0
      src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductPersonDao.java
  8. 2 0
      src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductReplaceDao.java
  9. 12 0
      src/main/java/com/uas/platform/b2c/prod/commodity/model/Product.java
  10. 8 1
      src/main/java/com/uas/platform/b2c/prod/commodity/service/ProductService.java
  11. 25 3
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java
  12. 20 0
      src/main/java/com/uas/platform/b2c/trade/seek/controller/SeekSalesmanInfoController.java
  13. 22 0
      src/main/java/com/uas/platform/b2c/trade/seek/model/SeekSalesmanInfo.java
  14. 29 0
      src/main/java/com/uas/platform/b2c/trade/seek/service/SeekSalesmanInfoService.java
  15. 28 1
      src/main/java/com/uas/platform/b2c/trade/seek/service/impl/SeekSalesmanInfoServiceImpl.java
  16. BIN
      src/main/webapp/resources/img/seekPurchase/recieved-left.png
  17. 17 3
      src/main/webapp/resources/js/admin/app.js
  18. 3 0
      src/main/webapp/resources/js/admin/controllers/SeekSalesmanCtrl.js
  19. 12 2
      src/main/webapp/resources/js/admin/controllers/SeekSalesmanDetailCtrl.js
  20. 4 0
      src/main/webapp/resources/js/common/query/enterprise.js
  21. 7 0
      src/main/webapp/resources/js/common/query/seekSalesman.js
  22. 46 0
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialCtrl.js
  23. 10 2
      src/main/webapp/resources/view/admin/seek_salesman.html
  24. 96 76
      src/main/webapp/resources/view/admin/seek_salesman_detail.html
  25. 56 6
      src/main/webapp/resources/view/vendor/forstore/vendor_material.html

+ 12 - 0
src/main/java/com/uas/platform/b2c/common/account/controller/UserController.java

@@ -606,6 +606,18 @@ public class UserController {
 		return userService.findUsersPageByEnUUAndKeyword(pageInfo,enuu,keyword);
 	}
 
+
+	/**
+	 * 通过姓名模糊查询该企业所有人员信息
+	 * @param enuu 企业uu号
+	 * @return 完整的企业人员信息
+	 */
+	@RequestMapping(value = "/enterprise/username",method = RequestMethod.GET)
+	public Page<User> findUserByUserNameLikeAndEnUU(PageParams params, Long enuu, String userName){
+		PageInfo pageInfo = new PageInfo(params);
+		return userService.findUserByUserNameLikeAndEnUU(pageInfo, enuu, userName);
+	}
+
 	/**
 	 * 新增用户
 	 *

+ 11 - 0
src/main/java/com/uas/platform/b2c/common/account/dao/UserDao.java

@@ -110,4 +110,15 @@ public interface UserDao extends JpaSpecificationExecutor<User>, JpaRepository<U
 	@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value = "true") })
 	@Query("select u.userUU from User u inner join u.enterprises as e where e.uu = :enUU and u.userUU = :userUU")
 	public List<Long> findUserByEnUUAndUserUU(@Param("enUU") long enUU, @Param("userUU") long userUU);
+
+	/**
+	 * 按名字查询当前企业的用户信息
+	 *
+	 * @param userName
+	 * @param enUU
+	 * @return
+	 */
+	@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value = "true") })
+	@Query("select u.userUU from User u inner join u.enterprises as e where e.uu = :enUU and u.userName like %:userName%")
+	public List<Long> findUserByUserNameLikeAndEnUU(@Param("userName") String userName, @Param("enUU") Long enUU);
 }

+ 7 - 0
src/main/java/com/uas/platform/b2c/common/account/service/UserService.java

@@ -54,6 +54,13 @@ public interface UserService {
 	 */
 	Page<User> findUsersPageByEnUU(PageInfo pageInfo, Long enUU);
 	Page<User> findUsersPageByEnUUAndKeyword(PageInfo pageInfo , Long enUU , String keyword);
+
+	/**
+	 * 通过姓名获取该企业所有人员信息
+	 * @return 完整的企业人员信息
+	 */
+	Page<User> findUserByUserNameLikeAndEnUU(PageInfo pageInfo , Long enUU , String userName);
+
 	/**
 	 * 按email取用户信息
 	 * 

+ 34 - 0
src/main/java/com/uas/platform/b2c/common/account/service/impl/UserServiceImpl.java

@@ -251,6 +251,40 @@ public class UserServiceImpl implements UserService {
 
 	}
 
+	@Override
+	public Page<User> findUserByUserNameLikeAndEnUU(PageInfo pageInfo, Long enUU, String userName) {
+		List<Long> usersId = new ArrayList<>();
+		if (!StringUtils.isEmpty(userName)) {
+			usersId = userDao.findUserByUserNameLikeAndEnUU(userName, enUU);
+		}
+		final List<Long> users = usersId;
+		if (users.size()>0) {
+			Page<User> pUser = userDao.findAll(new Specification<User>() {
+				public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
+					Predicate predicateId = root.get("userUU").in(users);
+					query.where(predicateId);
+					return null;
+				}
+			}, pageInfo);
+			for (User user : pUser) {
+				Set<Role> roles = user.getRoles();
+				Long enuu = SystemSession.getUser().getEnterprise().getUu();
+				if (!CollectionUtils.isEmpty(roles)) {
+					Iterator<Role> iterator = roles.iterator();
+					while (iterator.hasNext()) {
+						Role role = iterator.next();
+						if (!role.getEnUU().equals(enuu)) {
+							iterator.remove();
+						}
+					}
+				}
+			}
+			return pUser;
+		}else{
+			return null;
+		}
+	}
+
 	@Override
 	public User save(User user) {
         User userOld = userDao.findOne(user.getUserUU());

+ 12 - 2
src/main/java/com/uas/platform/b2c/prod/commodity/controller/ProductController.java

@@ -74,9 +74,9 @@ public class ProductController {
      * @return all products
      */
     @RequestMapping(method = RequestMethod.GET, params = "_status=all")
-	Page<V_ProductPrivate> getAllProducts(PageParams page, String keyword, String type) {
+	Page<V_ProductPrivate> getAllProducts(PageParams page, String keyword, String type, Long userUU) {
 		PageInfo info = new PageInfo(page);
-		return productService.getAllProducts(info, keyword, type);
+		return productService.getAllProducts(info, keyword, type, userUU);
 	}
 
 	/**
@@ -197,6 +197,16 @@ public class ProductController {
 		return productFacade.newStockByStandardProduct(id, isSelfSupport, goods);
 	}
 
+	/**
+	 * 根据物料Id获取替代物料列表
+	 * @param id
+	 * @return
+	 */
+	@RequestMapping(value = "/{id}/replaces", method = RequestMethod.GET)
+	public List<ProductReplace> getReplacesByProductId(@PathVariable("id") Long id) {
+    	return productService.getReplacesByProductId(id);
+	}
+
     /**
      * 单个匹配
      *

+ 6 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductDao.java

@@ -177,5 +177,10 @@ public interface ProductDao extends JpaSpecificationExecutor<Product>, JpaReposi
     @Query(value = "select p.id from Product p where p.enUU = :enuu and p.standard = :standard")
     List<Long> findPridsByEnuuAndStardand(@Param("enuu") Long enuu, @Param("standard") Integer standard);
 
-
+    /**
+     * 通过型号查询物料信息
+     * @param cmpCode
+     * @return
+     */
+    List<Product> findByCmpCode(String cmpCode);
 }

+ 11 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductPersonDao.java

@@ -3,6 +3,8 @@ package com.uas.platform.b2c.prod.commodity.dao;
 import com.uas.platform.b2c.prod.commodity.model.ProductPerson;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 
 import java.util.List;
 
@@ -29,4 +31,13 @@ public interface ProductPersonDao extends JpaRepository<ProductPerson, Long>, Jp
      * @return
      */
     List<ProductPerson> findByProductId(Long productId);
+
+    /**
+     * 根据enuu和userUU查询物料信息
+     * @param enuu
+     * @param userUU
+     * @return
+     */
+    @Query("select p.productId from ProductPerson p where p.enuu = :enuu and p.userUU = :userUU")
+    List<Long> findIdByEnuuAndUserUU(@Param("enuu") Long enuu, @Param("userUU") Long userUU);
 }

+ 2 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductReplaceDao.java

@@ -12,4 +12,6 @@ public interface ProductReplaceDao extends JpaRepository<ProductReplace, Long>,
 
     @Query(nativeQuery = true, value = "select * from product$replace where ptr_useruu = :userUU and ptr_prid = :prid")
     List<ProductReplace> findByUserUUAndProductId(@Param("userUU") Long userUU, @Param("prid") Long prId);
+
+    List<ProductReplace> findByProductIdOrderByDetno(Long productId);
 }

+ 12 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/model/Product.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2c.prod.commodity.model;
 
+import com.uas.platform.b2c.common.account.model.Enterprise;
 import com.uas.platform.core.persistence.EnterpriseUU;
 import com.uas.platform.core.persistence.Logger;
 import com.uas.platform.core.persistence.UserUU;
@@ -431,6 +432,17 @@ public class Product {
 	@Column(name = "pr_taxprecon")
 	private String taxPreCon;
 
+	@Transient
+	private Enterprise enterprise;
+
+	public Enterprise getEnterprise() {
+		return enterprise;
+	}
+
+	public void setEnterprise(Enterprise enterprise) {
+		this.enterprise = enterprise;
+	}
+
 	public Product() {
 	}
 

+ 8 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/service/ProductService.java

@@ -24,7 +24,7 @@ public interface ProductService {
      * @param type    the type 标准or非标准
      * @return all products
      */
-    Page<V_ProductPrivate> getAllProducts(PageInfo page, String keyword, String type);
+    Page<V_ProductPrivate> getAllProducts(PageInfo page, String keyword, String type, Long userUU);
 
     /**
      * 分页获取个人物料资料
@@ -49,6 +49,13 @@ public interface ProductService {
      */
     boolean setProductReplacesByPerson(Long productId, List<ProductReplace> productReplaceList);
 
+    /**
+     * 根据物料id获取物料的替代物料列表
+     * @param id
+     * @return
+     */
+    List<ProductReplace> getReplacesByProductId(Long id);
+
 
     /**
      * 下载产品资料

+ 25 - 3
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2c.advertise.ad.service.RecommendProductService;
+import com.uas.platform.b2c.common.account.dao.UserDao;
 import com.uas.platform.b2c.common.account.model.Enterprise;
 import com.uas.platform.b2c.common.account.service.EnterpriseService;
 import com.uas.platform.b2c.core.config.SysConf;
@@ -201,14 +202,18 @@ public class ProductServiceImpl implements ProductService {
     @Autowired
     private ProductReplaceDao productReplaceDao;
 
+    @Autowired
+    private UserDao userDao;
+
     @Value("#{sys.productServiceIp}")
     private String productServiceIp;
 
     private ConcurrentHashMap<String, Field> sortFields = new ConcurrentHashMap<String, Field>();
 
     @Override
-    public Page<V_ProductPrivate> getAllProducts(final PageInfo page, String keyword, String type) {
-        page.expression(PredicateUtils.eq("enUU", SystemSession.getUser().getEnterprise().getUu(), true));
+    public Page<V_ProductPrivate> getAllProducts(final PageInfo page, String keyword, String type, Long userUU) {
+        Long enuu = SystemSession.getUser().getEnterprise().getUu();
+        page.expression(PredicateUtils.eq("enUU", enuu, true));
         page.expression(PredicateUtils.isNotNull("pcmpcode"));
         page.expression(PredicateUtils.isNotNull("pbranden"));
         if (StringUtils.isEmpty(type)) {
@@ -241,6 +246,17 @@ public class ProductServiceImpl implements ProductService {
             page.expression(logicalExpression4);
         }
 
+        if (!StringUtils.isEmpty(userUU)) {
+            // 先查询userUU在当前企业 有哪些物料
+            List<Long> ids = productPersonDao.findIdByEnuuAndUserUU(enuu, userUU);
+
+            if (CollectionUtils.isEmpty(ids)) {
+                return null;
+            } else {
+                page.expression(PredicateUtils.in("id", ids, true));
+            }
+        }
+
         Page<V_ProductPrivate> productPage = v_productPrivateDao.findAll(new Specification<V_ProductPrivate>() {
             @Override
             public Predicate toPredicate(Root<V_ProductPrivate> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
@@ -365,7 +381,8 @@ public class ProductServiceImpl implements ProductService {
         if (productId == null) {
             return false;
         }
-        Date date = new Date(System.currentTimeMillis());
+        Date date = new Date();
+        // 删除原有的替代料数据
         List<ProductReplace> productReplacesOld = productReplaceDao.findByUserUUAndProductId(SystemSession.getUser().getUserUU(), productId);
         productReplaceDao.delete(productReplacesOld);
         for (ProductReplace productReplace : productReplaceList) {
@@ -376,6 +393,11 @@ public class ProductServiceImpl implements ProductService {
         return true;
     }
 
+    @Override
+    public List<ProductReplace> getReplacesByProductId(Long id) {
+        return productReplaceDao.findByProductIdOrderByDetno(id);
+    }
+
     @Override
     public List<Goods> getProductsGoods(String type, String keyword) {
         final PageInfo page = new PageInfo();

+ 20 - 0
src/main/java/com/uas/platform/b2c/trade/seek/controller/SeekSalesmanInfoController.java

@@ -3,6 +3,8 @@ package com.uas.platform.b2c.trade.seek.controller;
 import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
+import com.uas.platform.b2c.prod.commodity.model.Product;
+import com.uas.platform.b2c.trade.seek.model.SeekSalesman;
 import com.uas.platform.b2c.trade.seek.model.SeekSalesmanInfo;
 import com.uas.platform.b2c.trade.seek.model.SeekSalesmanMember;
 import com.uas.platform.b2c.trade.seek.service.SeekSalesmanInfoService;
@@ -71,4 +73,22 @@ public class SeekSalesmanInfoController {
         return seekSalesmanInfoService.getMembers();
     }
 
+    /**
+     * 通过型号查询物料信息
+     * @param cmpCode
+     * @return
+     */
+    @RequestMapping(value = "/findByCmpCode", method = RequestMethod.GET)
+    public List<Product> findByCmpCode(String cmpCode) {
+        logger.log("求购", "通过型号查询物料信息");
+        return seekSalesmanInfoService.findByCmpCode(cmpCode);
+    }
+
+    // 通过公共询价id判断是否有业务员跟进
+    @RequestMapping(value = "/getSalesmanByPublicId", method = RequestMethod.GET)
+    public SeekSalesman getSalesmanByPublicId(Long publicId) {
+        logger.log("求购", "通过型号查询物料信息");
+        return seekSalesmanInfoService.getSalesmanByPublicId(publicId);
+    }
+
 }

+ 22 - 0
src/main/java/com/uas/platform/b2c/trade/seek/model/SeekSalesmanInfo.java

@@ -60,6 +60,28 @@ public class SeekSalesmanInfo {
     @Column(name = "id_status")
     private Integer status;
 
+    @Column(name = "id_needquantity")
+    private Double needquantity;
+
+    @Column(name = "ss_id")
+    private Long salesmanId;
+
+    public Long getSalesmanId() {
+        return salesmanId;
+    }
+
+    public void setSalesmanId(Long salesmanId) {
+        this.salesmanId = salesmanId;
+    }
+
+    public Double getNeedquantity() {
+        return needquantity;
+    }
+
+    public void setNeedquantity(Double needquantity) {
+        this.needquantity = needquantity;
+    }
+
     public Integer getStatus() {
         return status;
     }

+ 29 - 0
src/main/java/com/uas/platform/b2c/trade/seek/service/SeekSalesmanInfoService.java

@@ -1,6 +1,8 @@
 package com.uas.platform.b2c.trade.seek.service;
 
 import com.uas.platform.b2c.common.account.model.User;
+import com.uas.platform.b2c.prod.commodity.model.Product;
+import com.uas.platform.b2c.trade.seek.model.SeekSalesman;
 import com.uas.platform.b2c.trade.seek.model.SeekSalesmanInfo;
 import com.uas.platform.b2c.trade.seek.model.SeekSalesmanMember;
 import com.uas.platform.b2c.trade.support.ResultMap;
@@ -10,9 +12,36 @@ import org.springframework.data.domain.Page;
 import java.util.List;
 
 public interface SeekSalesmanInfoService {
+    /**
+     * 获取业务员分配列表
+     * @param info
+     * @param status
+     * @param salesman
+     * @param keyword
+     * @return
+     */
     Page<SeekSalesmanInfo> getPageInfo(PageInfo info, Integer status, String salesman, String keyword);
 
+    /**
+     * 业务员接单
+     * @param id
+     * @param user
+     * @return
+     */
     ResultMap orders(Long id, User user);
 
+    /**
+     * 获取所有的业务员
+     * @return
+     */
     List<SeekSalesmanMember> getMembers();
+
+    /**
+     * 通过型号查询物料信息
+     * @param cmpCode
+     * @return
+     */
+    List<Product> findByCmpCode(String cmpCode);
+
+    SeekSalesman getSalesmanByPublicId(Long publicId);
 }

+ 28 - 1
src/main/java/com/uas/platform/b2c/trade/seek/service/impl/SeekSalesmanInfoServiceImpl.java

@@ -1,6 +1,11 @@
 package com.uas.platform.b2c.trade.seek.service.impl;
 
+import com.uas.platform.b2c.common.account.dao.EnterpriseDao;
+import com.uas.platform.b2c.common.account.model.Enterprise;
 import com.uas.platform.b2c.common.account.model.User;
+import com.uas.platform.b2c.prod.commodity.dao.ProductDao;
+import com.uas.platform.b2c.prod.commodity.model.Product;
+import com.uas.platform.b2c.prod.store.dao.StoreInDao;
 import com.uas.platform.b2c.trade.seek.dao.SeekSalesmanDao;
 import com.uas.platform.b2c.trade.seek.dao.SeekSalesmanInfoDao;
 import com.uas.platform.b2c.trade.seek.dao.SeekSalesmanMemberDao;
@@ -47,6 +52,12 @@ public class SeekSalesmanInfoServiceImpl implements SeekSalesmanInfoService {
     @Autowired
     private SeekSalesmanMemberDao seekSalesmanMemberDao;
 
+    @Autowired
+    private ProductDao productDao;
+
+    @Autowired
+    private EnterpriseDao enterpriseDao;
+
     @Override
     public Page<SeekSalesmanInfo> getPageInfo(final PageInfo info, Integer status, String salesman, String keyword) {
         info.sorting("publicDate", Direction.DESC);
@@ -106,11 +117,27 @@ public class SeekSalesmanInfoServiceImpl implements SeekSalesmanInfoService {
         seekSalesman.setPublicId(id);
         seekSalesman.setSalesmanName(user.getUserName());
         seekSalesmanDao.save(seekSalesman);
-        return new ResultMap(CodeType.OK, "接单成功!");
+        return new ResultMap(CodeType.OK.code(), "接单成功!", user);
     }
 
     @Override
     public List<SeekSalesmanMember> getMembers() {
         return seekSalesmanMemberDao.findAll();
     }
+
+    @Override
+    public List<Product> findByCmpCode(String cmpCode) {
+
+        List<Product> productList = productDao.findByCmpCode(cmpCode);
+        for (Product p : productList) {
+            Enterprise enterprise = enterpriseDao.findByUu(p.getEnUU());
+            p.setEnterprise(enterprise);
+        }
+        return productList;
+    }
+
+    @Override
+    public SeekSalesman getSalesmanByPublicId(Long publicId) {
+        return seekSalesmanDao.findByPublicId(publicId);
+    }
 }

BIN
src/main/webapp/resources/img/seekPurchase/recieved-left.png


+ 17 - 3
src/main/webapp/resources/js/admin/app.js

@@ -622,13 +622,27 @@
 			controllerUrl: 'app/controllers/LogUsageCtrl',
 			title: '用户操作日志'
 		})).state('seekQualityBuyer', angularAMD.route({
-			//用户操作日志
+			// 求购优质采购商
 			url: '/seekQualityBuyer',
 			templateUrl: 'static/view/admin/seekQualityBuyer.html',
 			controller: 'SeekQualityBuyerCtrl',
 			controllerUrl: 'app/controllers/SeekQualityBuyerCtrl',
-			title: '用户操作日志'
-    	})).state('keyWord', angularAMD.route({
+			title: '求购优质采购商'
+    	})).state('seekSalesman', angularAMD.route({
+            // 求购业务员分配
+            url: '/seekSalesman',
+            templateUrl: 'static/view/admin/seek_salesman.html',
+            controller: 'SeekSalesmanCtrl',
+            controllerUrl: 'app/controllers/SeekSalesmanCtrl',
+            title: '求购业务员分配'
+        })).state('seekSalesmanDetail', angularAMD.route({
+            // 求购业务员分配详情
+            url: '/seekSalesman/{uuid}/{name}',
+            templateUrl: 'static/view/admin/seek_salesman_detail.html',
+            controller: 'SeekSalesmanDetailCtrl',
+            controllerUrl: 'app/controllers/SeekSalesmanDetailCtrl',
+            title: '求购业务员分配详情'
+        })).state('keyWord', angularAMD.route({
 			url: '/keyWord',
 			templateUrl: 'static/view/admin/keyword.html',
 			controller: 'KeyWordCtrl',

+ 3 - 0
src/main/webapp/resources/js/admin/controllers/SeekSalesmanCtrl.js

@@ -13,6 +13,9 @@ define(['app/app'], function (app) {
           param.status = $scope.seek_status;
           param.salesman = $scope.seek_salesman;
           param.keyword = $scope.keyword;
+          if (param.status != 0 || param.salesman != 0 || param.keyword) {
+              $scope.seekSalesmanTableParams.page(1);
+          }
           seekSalesman.getPageInfo(param, function (data) {
           params.total(data.totalElements);
           $defer.resolve(data.content);

+ 12 - 2
src/main/webapp/resources/js/admin/controllers/SeekSalesmanDetailCtrl.js

@@ -1,9 +1,10 @@
 define(['app/app'], function (app) {
     'use strict';
-    app.register.controller('SeekSalesmanDetailCtrl', ['$scope', 'seekSalesman', 'toaster', 'BaseService', '$http', '$stateParams', function ($scope, seekSalesman, toaster, BaseService, $http, $stateParams) {
+    app.register.controller('SeekSalesmanDetailCtrl', ['$scope', 'seekSalesman', 'toaster', 'BaseService', '$http', '$stateParams', '$rootScope', function ($scope, seekSalesman, toaster, BaseService, $http, $stateParams, $rootScope) {
         $scope.active = 'offer';
         $scope.status = 101;
         $scope.salesman_name = $stateParams.name;
+        $scope.userInfo = $rootScope.userInfo;
         //设置状态
         $scope.setActive = function (active) {
             if($scope.active != active) {
@@ -23,6 +24,11 @@ define(['app/app'], function (app) {
                 // $scope.bankInfoTableParams.reload();
             }
         };
+
+        seekSalesman.getSalesmanByPublicId({publicId: $stateParams.uuid}, function (data) {
+            $scope.salesman_name = data.salesmanName;
+        });
+
         seekSalesman.getSeekUrl({}, function(data1) {
             var seekUrl = data1.url;
             $http({
@@ -35,6 +41,10 @@ define(['app/app'], function (app) {
                 seekSalesman.getMallGoodsList({code: data.cmpCode, brand: data.inbrand}, function (data1) {
                     $scope.goods = data1;
                 });
+                seekSalesman.findByCmpCode({cmpCode: data.cmpCode}, function (data2) {
+                    $scope.product = data2;
+                });
+
             }).error(function (response) {
 
             });
@@ -43,8 +53,8 @@ define(['app/app'], function (app) {
         $scope.orders = function(){
             seekSalesman.orders({id: $stateParams.uuid},{}, function(data) {
                 if (data.code == 1) {
+                    $scope.salesman_name = data.data.userName;
                     toaster.pop('success', '提示', '接单成功!');
-                    $scope.seekSalesmanTableParams.reload();
                 } else {
                     toaster.pop('error', '错误', data.message);
                 }

+ 4 - 0
src/main/webapp/resources/js/common/query/enterprise.js

@@ -164,6 +164,10 @@ define([ 'angular', 'ui-bootstrap', 'ngResource' ], function(angular) {
             findUsersByKeyword : {
                 url : 'basic/user/enterprise/keywordinfo',
 				method : 'GET'
+            },
+            findUserByUserNameLikeAndEnUU: {
+                url: 'basic/user/enterprise/username',
+                method: 'GET'
             },
 			saveUser : {
 				url : 'basic/user',

+ 7 - 0
src/main/webapp/resources/js/common/query/seekSalesman.js

@@ -19,6 +19,13 @@ define([ 'ngResource' ], function() {
             }, getSeekUrl: {
                 url: 'seek/accessUrl',
                 method: 'GET'
+            }, findByCmpCode: {
+                url: 'seek/salesman/findByCmpCode',
+                method: 'GET',
+                isArray: true
+            }, getSalesmanByPublicId: {
+                url: 'seek/salesman/getSalesmanByPublicId',
+                method: 'GET'
             }
         });
     }])

+ 46 - 0
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialCtrl.js

@@ -1265,7 +1265,53 @@ define([ 'app/app', 'jquery-uploadify' ], function(app) {
 			loadDataReload();
 		};
 
+		$scope.enUser = {
+			prodName:''
+		};
+		$scope.showSimilarUser = false;
+		$scope.similarUser = [];
+		$scope.similarUserObj = {
+			isInSimilarUser: false
+		};
+		$scope.onUserUUChange = function () {
+            $scope.param.userUU = null;
+		    if ($scope.enUser.prodName && $scope.enUser.prodName.length) {
+                Enterprise.findUserByUserNameLikeAndEnUU({page: 1, count: 8, userName: $scope.enUser.prodName, enuu: $rootScope.userInfo.enterprise.uu }, function (page) {
+                    if (page.content && page.content.length) {
+                        $scope.similarUser = page;
+                        $scope.showSimilarUser = true;
+                    } else {
+                        $scope.similarUser.content = [];
+                        $scope.showSimilarUser = false;
+                    }
+                })
+            } else {
+                $scope.showSimilarUser = false;
+                loadDataReload();
+			}
+
+        }
+        $scope.onUserUUBlur = function () {
+			if (!$scope.similarUserObj.isInSimilarUser) {
+				$scope.showSimilarUser = false;
+			}
+		};
+        $scope.setProdName = function (item) {
+			$scope.enUser.prodName = item.userName;
+			$scope.param.userUU = item.userUU;
+            loadDataReload();
+			$scope.showSimilarUser = false;
+        }
+
 		var loadDataReload = function () {
+            $scope.currentNull = false;
+            if ($scope.enUser.prodName != "" && $scope.param.userUU == null) {
+                toaster.pop('error', '请选择正确的人员姓名!');
+                $scope.materialAll = null;
+                $scope.currenctMaterial = null;
+                $scope.currentDataNull = true;
+                return;
+            }
 			$scope.param.page = 1;
 			loadData();
 		};

+ 10 - 2
src/main/webapp/resources/view/admin/seek_salesman.html

@@ -2,6 +2,11 @@
 .row {
 	margin-bottom: 10px;
 }
+table {
+	table-layout: fixed;
+	word-wrap:break-word;
+}
+
 </style>
 <div>
 	<div class="box-header well">
@@ -29,11 +34,12 @@
 			<thead>
 				<tr class="tr-default">
 					<th width="10%;" class="text-center">编号</th>
-					<th width="7%;" class="text-center">求购来源</th>
+					<th width="10%;" class="text-center">求购来源</th>
 					<th width="10%" class="text-center">询价单号</th>
 					<th width="10%" class="text-center">发布时间</th>
 					<th width="10%" class="text-center">买家</th>
 					<th width="10%" class="text-center">产品信息</th>
+					<th width="10%" class="text-center">采购数量</th>
 					<th width="10%" class="text-center">截止日期</th>
 					<th width="10%" class="text-center">报价条数</th>
 					<th width="10%" class="text-center"><select ng-change="onSearchStatus(seek_status)" ng-model="seek_status">
@@ -62,15 +68,17 @@
 						<p ng-bind="'品牌:'+seek.brand"></p>
 						<p ng-bind="'规格:'+seek.spec"></p>
 					</td>
+					<td><span ng-bind="seek.needquantity || '-'"></span></td>
 					<td><span ng-bind="seek.endDate | date : 'yyyy-MM-dd HH:mm:ss'"></span></td>
 					<td><span ng-bind="seek.offerAmount"></span></td>
 					<td><span ng-if="seek.status && seek.status == 1 && seek.offerAmount > 0">已采纳</span>
 						<span ng-if="(!seek.status || seek.status == 0) && seek.offerAmount > 0">已报价</span>
 						<span ng-if="!seek.offerAmount || seek.offerAmount == 0">待报价</span>
 					</td>
-					<td><span ng-bind="seek.salesman"></span></td>
+					<td><span ng-bind="seek.salesman || '暂无'"></span></td>
 					<td>
 						<button ng-if="!seek.salesman" class="btn btn-sm btn-warning" ng-click="orders(seek.id)">我来接单</button>
+						<br/>
 						<a target="_blank" ng-href="#/seekSalesman/{{seek.id}}/{{seek.salesman}}">
 							查看详情
 						</a>

+ 96 - 76
src/main/webapp/resources/view/admin/seek_salesman_detail.html

@@ -9,35 +9,35 @@
 .menu{
 	width: 100%;
 	height: 40px;
-	background: #229ee6;
+	/*background: #229ee6;*/
 	margin: 0;
 	line-height: 40px;
 	overflow: hidden;
 }
 .menu .btn{
 	border: none;
-	background: none;
-	color: #fff;
-	padding: 8px 30px;
+	/*background: none;*/
+	/*color: #fff;*/
+	/*padding: 8px 30px;*/
 	width: 100px;
 }
-.menu .btn:active{
-	background: none;
-}
+/*.menu .btn:active{*/
+	/*background: none;*/
+/*}*/
 .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%;
-}
+/*.menu .btn-primary:before{*/
+	/*!*content: "";*!*/
+	/*!*width: 20px;*!*/
+	/*!*height: 20px;*!*/
+	/*!*display: inline-block;*!*/
+	/*background: blue;*/
+	/*!*transform: rotate(-45deg);*!*/
+	/*!*position: absolute;*!*/
+	/*!*bottom: -18px;*!*/
+	/*!*left: 40%;*!*/
+/*}*/
 .menu .col-sm-3{
 	float: right;
 	margin-right: 100px;
@@ -73,8 +73,11 @@
 	color: #219ee6;
 }
 	.adopt {
-		background: red;
+		position: absolute;
+		left: 0px;
+		top: 0px;
 	}
+
 </style>
 <div>
 	<div class="box-header well">
@@ -84,65 +87,84 @@
 		<div class="fullscreen" style="padding: 10px;">
 			<div class="col-sm-3 f14">
 				<div class="form-group row">
-					<span class="col-sm-4 text-right">询价单号:</span>
-					<span class="col-sm-6" ng-bind="seek.inquiry.code"></span>
+					<p class="text-center">物料信息</p>
+					<!--<span class="col-sm-6" ng-bind="seek.inquiry.code"></span>-->
 				</div>
-				<div class="form-group row">
-					<span class="col-sm-4 text-right">规格:</span>
-					<span class="col-sm-6" ng-bind="seek.spec"></span>
+				<div class="form-group row" ng-if="seek.cmpCode">
+					<span class="col-sm-5 text-right">型号:</span>
+					<span class="col-sm-6" ng-bind="seek.cmpCode"></span>
 				</div>
-				<div class="form-group row">
-					<span class="col-sm-4 text-right">币种:</span>
-					<span class="col-sm-6" ng-bind="seek.currency"></span>
+				<div class="form-group row" ng-if="seek.inbrand">
+					<span class="col-sm-5 text-right">品牌:</span>
+					<span class="col-sm-6" ng-bind="seek.inbrand"></span>
+				</div>
+				<div class="form-group row" ng-if="seek.product.spec">
+					<span class="col-sm-5 text-right">名称:</span>
+					<span class="col-sm-6" ng-bind="seek.product.spec"></span>
 				</div>
+				<!--<div class="form-group row">-->
+					<!--<span class="col-sm-5 text-right">询价单号:</span>-->
+					<!--<span class="col-sm-6" ng-bind="seek.inquiry.code"></span>-->
+				<!--</div>-->
+				<div class="form-group row" ng-if="seek.product.spec">
+					<span class="col-sm-5 text-right">规格:</span>
+					<span class="col-sm-6" ng-bind="seek.product.spec"></span>
+				</div>
+
 			</div>
 			<div class="col-sm-3 f14">
 				<div class="form-group row">
-					<span class="col-sm-4 text-right">型号:</span>
-					<span class="col-sm-6" ng-bind="seek.cmpCode"></span>
+					<p class="text-center">求购信息</p>
+					<!--<span class="col-sm-6" ng-bind="seek.inquiry.code"></span>-->
 				</div>
 				<div class="form-group row">
-					<span class="col-sm-4 text-right">封装:</span>
-					<span class="col-sm-6" ng-bind="seek.encapsulation"></span>
+					<span class="col-sm-5 text-right">求购状态:</span>
+					<span ng-if="seek.agreed && seek.agreed == 1 && seek.offerAmount > 0" class="col-sm-5" style="color:green;">已采纳</span>
+					<span ng-if="(!seek.agreed || seek.agreed == 0) && seek.offerAmount > 0" class="col-sm-5" style="color:red;">已报价</span>
+					<span ng-if="!seek.offerAmount || seek.offerAmount == 0" class="col-sm-5">待报价</span>
+					<!--<span ng-if="seek.agreed && seek.agreed == 1" class="col-sm-5" style="color:green;">已截至</span>-->
 				</div>
-				<div class="form-group row">
-					<span class="col-sm-4 text-right">生产日期:</span>
-					<span class="col-sm-6" ng-bind="seek.produceDate"></span>
+				<div class="form-group row" ng-if="seek.date">
+					<span class="col-sm-5 text-right">发布日期:</span>
+					<span class="col-sm-6" ng-bind="seek.date | date:'yyyy-MM-dd HH:mm:dd'"></span>
 				</div>
-			</div>
-			<div class="col-sm-3 f14">
-				<div class="form-group row">
-					<span class="col-sm-4 text-right">品牌:</span>
-					<span class="col-sm-6" ng-bind="seek.inbrand"></span>
+				<div class="form-group row" ng-if="seek.endDate">
+					<span class="col-sm-5 text-right">截止日期:</span>
+					<span class="col-sm-6" ng-bind="seek.endDate | date:'yyyy-MM-dd HH:mm:dd'"></span>
 				</div>
-				<div class="form-group row">
-					<span class="col-sm-4 text-right">采购数量:</span>
+				<div class="form-group row" ng-if="seek.needquantity">
+					<span class="col-sm-5 text-right">采购数量:</span>
 					<span class="col-sm-6" ng-bind="seek.needquantity"></span>
 				</div>
-				<div class="form-group row">
-					<span class="col-sm-4 text-right">截止日期:</span>
-					<span class="col-sm-6" ng-bind="seek.endDate | date:'yyyy-MM-dd HH:mm:dd'"></span>
+				<div class="form-group row" ng-if="seek.unitPrice">
+					<span class="col-sm-5 text-right">单价预算:</span>
+					<span class="col-sm-6" ng-bind="seek.unitPrice"></span>
+				</div>
+				<div class="form-group row" ng-if="seek.encapsulation">
+					<span class="col-sm-5 text-right">封装:</span>
+					<span class="col-sm-6" ng-bind="seek.encapsulation"></span>
+				</div>
+				<div class="form-group row" ng-if="seek.produceDate">
+					<span class="col-sm-5 text-right">生产日期:</span>
+					<span class="col-sm-6" ng-bind="seek.produceDate"></span>
+				</div>
+				<div class="form-group row" ng-if="seek.currency">
+					<span class="col-sm-5 text-right">币种:</span>
+					<span class="col-sm-6" ng-bind="seek.currency"></span>
 				</div>
 			</div>
 			<div class="col-sm-3 f14">
 				<div class="form-group row">
-					<span class="col-sm-4 text-right">求购状态:</span>
-					<span ng-if="seek.agreed && seek.agreed == 1 && seek.offerAmount > 0" class="col-sm-4" style="color:green;">已采纳</span>
-					<span ng-if="(!seek.agreed || seek.agreed == 0) && seek.offerAmount > 0" class="col-sm-4" style="color:red;">已报价</span>
-					<span ng-if="!seek.offerAmount || seek.offerAmount == 0" class="col-sm-4">待报价</span>
-					<!--<span ng-if="seek.agreed && seek.agreed == 1" class="col-sm-4" style="color:green;">已截至</span>-->
-				</div>
-				<div class="form-group row">
-					<span class="col-sm-4 text-right">发布日期:</span>
-					<span class="col-sm-6" ng-bind="seek.date | date:'yyyy-MM-dd HH:mm:dd'"></span>
+					<p class="text-center">分配状态</p>
+					<!--<span class="col-sm-6" ng-bind="seek.inquiry.code"></span>-->
 				</div>
 				<div class="form-group row" ng-if="salesman_name">
-					<span class="col-sm-4 text-right">业务员:</span>
+					<span class="col-sm-5 text-right">业务员:</span>
 					<span class="col-sm-6" ng-bind="salesman_name"></span>
 				</div>
 				<div class="form-group row" ng-if="!salesman_name">
-					<span class="col-sm-4 text-right"></span>
-					<button class="btn btn-primary" ng-click="orders()">我来接单</button></p>
+					<span class="col-sm-5 text-right"></span>
+					<button class="btn btn-primary col-sm-5" ng-click="orders()">我来接单</button></p>
 				</div>
 			</div>
 		</div>
@@ -152,13 +174,13 @@
 		</div>
 			<div class="col-sm-3 f14">
 				<div class="form-group row">
-					<span class="col-sm-4 text-right">买家:</span>
-					<span class="col-sm-6" ng-bind="seek.userName + '|' + seek.inquiry.enterprise.enName"></span>
+					<span class="col-sm-5 text-right">买家:</span>
+					<span class="col-sm-6" ng-bind="seek.userName + '&nbsp;&nbsp;|&nbsp;&nbsp;' + seek.inquiry.enterprise.enName"></span>
 				</div>
 			</div>
 			<div class="col-sm-3 f14">
 				<div class="form-group row">
-					<span class="col-sm-4 text-right">电话:</span>
+					<span class="col-sm-5 text-right">电话:</span>
 					<span class="col-sm-6" ng-bind="seek.userTel"></span>
 				</div>
 			</div>
@@ -168,7 +190,7 @@
 			<div class="btn-group" role="group" aria-label="...">
 				<a type="button" class="btn btn-default" ng-class="{'btn-primary': active === 'offer'}" ng-click="setActive('offer')">当前报价({{seek.qutations.length}})</a>
 				<a type="button" class="btn btn-default" ng-class="{'btn-primary': active === 'goods'}" ng-click="setActive('goods')">商城现货({{goods.length}})</a>
-				<a type="button" class="btn btn-default" ng-class="{'btn-primary': active === 'pricing'}" ng-click="setActive('pricing')">核价信息(0)</a>
+				<a type="button" class="btn btn-default" ng-class="{'btn-primary': active === 'pricing'}" ng-click="setActive('pricing')">核价信息({{product.length}})</a>
 			</div>
 		</div>
 	</div>
@@ -184,12 +206,12 @@
 				</tr>
 			</thead>
 			<tbody ng-repeat="qutation in seek.qutations">
-				<tr class="text-center" ng-class="{'adopt':qutation.agreed == 1}">
-					<td><span ng-bind="qutation.offerTime | date:'yyyy-MM-dd HH:mm:ss'"></span></td>
+				<tr class="text-center">
+					<td style="position: relative;"><span ng-bind="qutation.offerTime | date:'yyyy-MM-dd HH:mm:ss'"></span><img ng-if="qutation.agreed == 1" class="adopt" src="static/img/seekPurchase/recieved-left.png" alt=""></td>
 					<td><p ng-bind="qutation.enterprise.enName"></p></td>
 					<td><span ng-bind="qutation.enterprise.enTel"></span></td>
 					<td><span ng-bind="qutation.leadtime"></span></td>
-					<td><p ng-repeat="re in qutation.replies"><span ng-bind="re.lapQty + '+'"></span>|<span ng-bind="qutation.currency + re.price | currencyStr"></span></p></td>
+					<td><p ng-repeat="re in qutation.replies"><span ng-bind="re.lapQty + '+'"></span>&nbsp;&nbsp;|&nbsp;&nbsp;<span ng-bind="qutation.currency + re.price | currencyStr"></span></p></td>
 				</tr>
 			</tbody>
 		</table>
@@ -209,7 +231,7 @@
 				<td><span ng-bind="go.enterpriseName"></span></td>
 				<td><p ng-bind="go.b2cMinDelivery + '-' + go.b2cMaxDelivery"></p></td>
 				<td><p ng-if="go.currencyName == 'RMB'" ng-repeat="p in go.prices">
-					<span ng-bind="p.start + '+'"></span>|<span ng-bind="go.currencyName + p.rMBPrice | currencyStr"></span>
+					<span ng-bind="p.start + '+'"></span>&nbsp;&nbsp;|&nbsp;&nbsp;<span ng-bind="go.currencyName + p.rMBPrice | currencyStr"></span>
 				</p><p ng-if="go.currencyName == 'USD'" ng-repeat="p in go.prices">
 					<span ng-bind="p.start + '+'"></span>|<span ng-bind="go.currencyName + p.uSDPrice | currencyStr"></span>
 				</p></td>
@@ -222,21 +244,19 @@
 		<table  ng-show="status == 103" class="table table-bordered table-striped table-hover" style="word-break:break-all; word-wrap:break-all;">
 			<thead>
 			<tr class="tr-default">
-				<th width="10%;" class="text-center">卖家</th>
-				<th width="20%;" class="text-center">物料编号</th>
-				<th width="10%" class="text-center">物料名称</th>
-				<th width="10%" class="text-center">标记</th>
-				<th width="50%" class="text-center">价格梯度</th>
+				<th width="30%;" class="text-center">卖家</th>
+				<th width="40%;" class="text-center">物料编号</th>
+				<th width="30%" class="text-center">物料名称</th>
+				<!--<th width="10%" class="text-center">标记</th>-->
 			</tr>
 			</thead>
-			<tbody ng-repeat="qutation in seek.qutations">
-			<!--<tr class="text-center">-->
-				<!--<td><span ng-bind="qutation.offerTime | date:'yyyy-MM-dd HH:mm:ss'"></span></td>-->
-				<!--<td><p ng-bind="qutation.enterprise.enName"></p></td>-->
-				<!--<td><span ng-bind="qutation.enterprise.enTel"></span></td>-->
+			<tbody ng-repeat="p in product">
+			<tr class="text-center">
+				<td><span ng-bind="p.enterprise.enName"></span></td>
+				<td><p ng-bind="p.prodNum"></p></td>
+				<td><span ng-bind="p.kind"></span></td>
 				<!--<td><span ng-bind="qutation.leadtime"></span></td>-->
-				<!--<td><p ng-repeat="re in qutation.replies"><span ng-bind="re.lapQty + '+'"></span>|<span ng-bind="qutation.currency + re.price | currencyStr"></span></p></td>-->
-			<!--</tr>-->
+			</tr>
 			</tbody>
 		</table>
 	</div>

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

@@ -177,8 +177,32 @@
 		margin-bottom: 16px;
 	}
 	.search-check .search{
-		width: 532px;
-		margin-left: 150px;
+		width: 628px;
+		margin-left: 52px;
+		position: relative;
+	}
+	.search-check .search .prodUserList {
+		position: absolute;
+		left: 27px;
+		top: 35px;
+		font-size: 14px;
+		width: 155px;
+		max-height: 200px;
+		color: #666;
+		-webkit-box-shadow: 0 1px 6px 1px #323232a3;
+		-moz-box-shadow: 0 1px 6px 1px #323232a3;
+		box-shadow: 0 1px 6px 1px #323232;
+        z-index: 999;
+	}
+	.search-check .search .prodUserList li {
+		height: 25px;
+		line-height: 25px;
+		text-align: center;
+		background: #fff;
+	}
+	.search-check .search .prodUserList li:hover {
+		background: #e8e8e8;
+        cursor: default;
 	}
 	.search-check .search .form-control{
 		width: 340px;
@@ -188,6 +212,22 @@
 		box-shadow: none;
 		border-right: none;
 	}
+	.search-check .search label {
+		position: absolute;
+		left: 5px;
+		font-size: 14px;
+		color: #666;
+		font-weight: normal;
+		height: 34px;
+		line-height: 34px;
+	}
+	.search-check .search .prod-name {
+		width: 183px;
+		padding: 0 5px 0 75px;
+	}
+	.search-check .search .keyword-material {
+		width: 260px;
+	}
 	.search-check .search button,.search-check .search a{
 		display: inline-block;
 		width: 94px;
@@ -1613,7 +1653,14 @@
 		<div ng-if="standard_tab == 'unstandard' || standard_tab =='standard'">
 			<div class="search-check">
 				<div class="search fl">
-					<input type="text" class="form-control" ng-model="param.keyword" ng-search="onSearch()" placeholder="类目/型号/品牌"/>
+					<label>人员选择:</label>
+					<input type="text" class="form-control prod-name" ng-model="enUser.prodName" ng-change="onUserUUChange()" ng-search="onSearch()" placeholder="姓名"/>
+					<ul ng-if="showSimilarUser" class="prodUserList" ng-mouseenter="similarUserObj.isInSimilarUser = true" ng-search="onSearch()" ng-mouseleave="similarUserObj.isInSimilarUser = false">
+						<li ng-repeat="item in similarUser.content" ng-click="setProdName(item)">
+							{{item.userName}}({{item.userUU}})
+						</li>
+					</ul>
+					<input type="text" class="form-control keyword-material" ng-model="param.keyword" ng-search="onSearch()" placeholder="类目/型号/品牌"/>
 					<button ng-click="onSearch()">搜索</button>
 					<!--<a ng-click="download()">批量导出</a>-->
 				</div>
@@ -2084,16 +2131,19 @@
 					<!--<tr class="no-hover batch-tr" ng-if="chooseAll && !chooseAllPage" ng-class="{'active': $data.length > 10}">-->
 					</tbody>
 				</table>
-				<div class="empty" ng-if="currenctMaterial.length == 0">
+				<div class="empty" ng-if="!currenctMaterial || currenctMaterial.length == 0">
 					<p class="empty-img">
 						<img src="static/img/all/empty-cart.png">
 					</p>
-					<div class="empty-info">
+					<div class="empty-info" ng-if="currentDataNull || param.userUU">
+						<p class="grey"> 该业务员暂时没有绑定产品</p>
+					</div>
+					<div class="empty-info" ng-if="!currentDataNull && !param.userUU">
 						<p class="grey"> 暂无产品信息,赶快上传让更多人看到你的产品吧 </p>
 						<a href="vendor#/vendor_upload?type=company"><i></i>马上去上传</a>
 					</div>
 				</div>
-				<div class="record-line text-right" ng-if="currenctMaterial.length != 0">
+				<div class="record-line text-right" ng-if="currenctMaterial && currenctMaterial.length != 0">
 					<!--<div class="prompt" ng-show="standard_tab == 'unstandard'">-->
 						<!--<strong class="text-inverse">*</strong>商城暂未收录的 品牌/器件,”原厂型号“将会显示为空且不可上架售卖,<br/>-->
 						<!--如需上架可先点击 【匹配】按钮,若匹配不成功,可前往<a ui-sref="vendor_brand_apply" target="_blank"> 品牌申请/</a><a ui-sref="vendor_component_apply" target="_blank">器件申请</a>,提出申请-->