Просмотр исходного кода

Merge remote-tracking branch 'origin/release-201827-wangcz' into release-201827-wangcz

shenjj 7 лет назад
Родитель
Сommit
ea5ca6dbcd
18 измененных файлов с 311 добавлено и 66 удалено
  1. 30 1
      src/main/java/com/uas/platform/b2c/common/lottery/controller/LotteryController.java
  2. 19 0
      src/main/java/com/uas/platform/b2c/common/lottery/service/PrizeService.java
  3. 19 0
      src/main/java/com/uas/platform/b2c/common/lottery/service/WinningHistoryService.java
  4. 3 3
      src/main/java/com/uas/platform/b2c/common/lottery/service/impl/ActivityItemServiceImpl.java
  5. 54 0
      src/main/java/com/uas/platform/b2c/common/lottery/service/impl/PrizeServiceImpl.java
  6. 51 0
      src/main/java/com/uas/platform/b2c/common/lottery/service/impl/WinningHistoryServiceImpl.java
  7. 11 1
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/CommodityInOutboundServiceImpl.java
  8. 2 2
      src/main/java/com/uas/platform/b2c/prod/store/facade/impl/StoreApplyFacadeImpl.java
  9. 14 0
      src/main/java/com/uas/platform/b2c/prod/store/model/StoreApply.java
  10. 2 3
      src/main/java/com/uas/platform/b2c/prod/store/service/impl/StoreApplyServiceImpl.java
  11. 3 4
      src/main/java/com/uas/platform/b2c/prod/store/service/impl/StoreInServiceImpl.java
  12. BIN
      src/main/resources/jxls-tpl/trade/products.xls
  13. 10 5
      src/main/webapp/resources/js/usercenter/controllers/forstore/bomListDetailCtrl.js
  14. 31 9
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_storageCtrl.js
  15. 7 0
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_store_apply_ctrl.js
  16. 28 28
      src/main/webapp/resources/view/usercenter/forstore/bomListDetail.html
  17. 15 10
      src/main/webapp/resources/view/vendor/forstore/vendor_storage.html
  18. 12 0
      src/main/webapp/resources/view/vendor/forstore/vendor_store_apply.html

+ 30 - 1
src/main/java/com/uas/platform/b2c/common/lottery/controller/LotteryController.java

@@ -1,7 +1,9 @@
 package com.uas.platform.b2c.common.lottery.controller;
 package com.uas.platform.b2c.common.lottery.controller;
 
 
 import com.uas.platform.b2c.common.lottery.service.ActivityItemService;
 import com.uas.platform.b2c.common.lottery.service.ActivityItemService;
+import com.uas.platform.b2c.common.lottery.service.PrizeService;
 import com.uas.platform.b2c.common.lottery.service.UserInfoService;
 import com.uas.platform.b2c.common.lottery.service.UserInfoService;
+import com.uas.platform.b2c.common.lottery.service.WinningHistoryService;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -22,10 +24,16 @@ public class LotteryController {
 
 
     private final ActivityItemService activityItemService;
     private final ActivityItemService activityItemService;
 
 
+    private final PrizeService prizeService;
+
+    private final WinningHistoryService winningHistoryService;
+
     @Autowired
     @Autowired
-    public LotteryController(UserInfoService userInfoService, ActivityItemService activityItemService) {
+    public LotteryController(UserInfoService userInfoService, ActivityItemService activityItemService, PrizeService prizeService, WinningHistoryService winningHistoryService) {
         this.userInfoService = userInfoService;
         this.userInfoService = userInfoService;
         this.activityItemService = activityItemService;
         this.activityItemService = activityItemService;
+        this.prizeService = prizeService;
+        this.winningHistoryService = winningHistoryService;
     }
     }
 
 
     /**
     /**
@@ -48,4 +56,25 @@ public class LotteryController {
         return activityItemService.getActivityItems(activityCode);
         return activityItemService.getActivityItems(activityCode);
     }
     }
 
 
+    /**
+     * 获取当前等级奖品
+     * @param activityCode 活动编号
+     * @param itemCode 等级编号
+     * @return
+     */
+    @RequestMapping(value = "/user/prizes", method = RequestMethod.GET, produces = "application/json")
+    public ResultMap getPrizesByUser(String activityCode, String itemCode) {
+        return prizeService.getPrizesByUser(activityCode, itemCode);
+    }
+
+    /**
+     * 获取获奖记录
+     * @param activityCode 活动编号
+     * @param size 条数
+     * @return
+     */
+    @RequestMapping(value = "/user/winninghistories", method = RequestMethod.GET, produces = "application/json")
+    public ResultMap getWinningHistories(String activityCode, Integer size) {
+        return winningHistoryService.getWinningHistories(activityCode, size);
+    }
 }
 }

+ 19 - 0
src/main/java/com/uas/platform/b2c/common/lottery/service/PrizeService.java

@@ -0,0 +1,19 @@
+package com.uas.platform.b2c.common.lottery.service;
+
+import com.uas.platform.b2c.trade.support.ResultMap;
+
+/**
+ * Created by wangyc on 2018/9/12.
+ *
+ * @version 2018/9/12 17:34 wangyc
+ */
+public interface PrizeService {
+
+    /**
+     * 获取当前等级奖品
+     * @param activityCode 活动编号
+     * @param itemCode 等级编号
+     * @return
+     */
+    ResultMap getPrizesByUser(String activityCode, String itemCode);
+}

+ 19 - 0
src/main/java/com/uas/platform/b2c/common/lottery/service/WinningHistoryService.java

@@ -0,0 +1,19 @@
+package com.uas.platform.b2c.common.lottery.service;
+
+import com.uas.platform.b2c.trade.support.ResultMap;
+
+/**
+ * Created by wangyc on 2018/9/12.
+ *
+ * @version 2018/9/12 18:45 wangyc
+ */
+public interface WinningHistoryService {
+
+    /**
+     * 获取获奖记录
+     * @param activityCode 活动编号
+     * @param size 条数
+     * @return
+     */
+    ResultMap getWinningHistories(String activityCode, Integer size);
+}

+ 3 - 3
src/main/java/com/uas/platform/b2c/common/lottery/service/impl/ActivityItemServiceImpl.java

@@ -22,8 +22,8 @@ import org.springframework.util.StringUtils;
 @Service
 @Service
 public class ActivityItemServiceImpl implements ActivityItemService {
 public class ActivityItemServiceImpl implements ActivityItemService {
 
 
-    // 获取单个用户信息路径
-    private static final String GET_USER_URL = "/activityItem/user";
+    // 获取单个用户等级信息路径
+    private static final String GET_ITEMS_USER_URL = "/activityItem/user";
 
 
     private final SysConf sysConf;
     private final SysConf sysConf;
 
 
@@ -44,7 +44,7 @@ public class ActivityItemServiceImpl implements ActivityItemService {
         params.put("activityCode", activityCode);
         params.put("activityCode", activityCode);
 
 
         try {
         try {
-            Response response = HttpUtil.sendGetRequest(sysConf.getLottery() + GET_USER_URL, params);
+            Response response = HttpUtil.sendGetRequest(sysConf.getLottery() + GET_ITEMS_USER_URL, params);
             return JSON.parseObject(response.getResponseText(), ResultMap.class);
             return JSON.parseObject(response.getResponseText(), ResultMap.class);
         } catch (Exception e) {
         } catch (Exception e) {
             return new ResultMap(CodeType.ERROR_STATE, "获取等级信息错误,请重试");
             return new ResultMap(CodeType.ERROR_STATE, "获取等级信息错误,请重试");

+ 54 - 0
src/main/java/com/uas/platform/b2c/common/lottery/service/impl/PrizeServiceImpl.java

@@ -0,0 +1,54 @@
+package com.uas.platform.b2c.common.lottery.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.uas.platform.b2c.common.lottery.service.PrizeService;
+import com.uas.platform.b2c.core.config.SysConf;
+import com.uas.platform.b2c.core.support.SystemSession;
+import com.uas.platform.b2c.trade.support.CodeType;
+import com.uas.platform.b2c.trade.support.ResultMap;
+import com.uas.platform.core.util.HttpUtil;
+import com.uas.platform.core.util.HttpUtil.Response;
+import java.util.HashMap;
+import java.util.Map;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+/**
+ * Created by wangyc on 2018/9/12.
+ *
+ * @version 2018/9/12 17:36 wangyc
+ */
+@Service
+public class PrizeServiceImpl implements PrizeService {
+
+    private final SysConf sysConf;
+
+    // 获取当前等级奖品路径
+    private static final String GET_PRIZES_USER_URL = "/prizes/user";
+
+    @Autowired
+    public PrizeServiceImpl(SysConf sysConf) {
+        this.sysConf = sysConf;
+    }
+
+    @Override
+    public ResultMap getPrizesByUser(String activityCode, String itemCode) {
+        if (StringUtils.isEmpty(activityCode)) {
+            return new ResultMap(CodeType.PARAMETER_ERROR, "活动信息不完全,请确认活动信息");
+        }
+
+        Map<String, Object> params = new HashMap<>();
+        params.put("useruu", SystemSession.getUser().getUserUU());
+        params.put("enuu", SystemSession.getUser().getEnterprise() == null ? 0 : SystemSession.getUser().getEnterprise().getUu());
+        params.put("activityCode", activityCode);
+        params.put("itemCode", itemCode == null ? "" : itemCode);
+
+        try {
+            Response response = HttpUtil.sendGetRequest(sysConf.getLottery() + GET_PRIZES_USER_URL, params);
+            return JSON.parseObject(response.getResponseText(), ResultMap.class);
+        } catch (Exception e) {
+            return new ResultMap(CodeType.ERROR_STATE, "获取奖品信息错误,请重试");
+        }
+    }
+}

+ 51 - 0
src/main/java/com/uas/platform/b2c/common/lottery/service/impl/WinningHistoryServiceImpl.java

@@ -0,0 +1,51 @@
+package com.uas.platform.b2c.common.lottery.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.uas.platform.b2c.common.lottery.service.WinningHistoryService;
+import com.uas.platform.b2c.core.config.SysConf;
+import com.uas.platform.b2c.trade.support.CodeType;
+import com.uas.platform.b2c.trade.support.ResultMap;
+import com.uas.platform.core.util.HttpUtil;
+import com.uas.platform.core.util.HttpUtil.Response;
+import java.util.HashMap;
+import java.util.Map;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+/**
+ * Created by wangyc on 2018/9/12.
+ *
+ * @version 2018/9/12 18:48 wangyc
+ */
+@Service
+public class WinningHistoryServiceImpl implements WinningHistoryService {
+
+    private final SysConf sysConf;
+
+    // 获取当前等级奖品路径
+    private static final String GET_WINNING_HOSTORIES_TOP_URL = "/winninghistorys/top";
+
+    @Autowired
+    public WinningHistoryServiceImpl(SysConf sysConf) {
+        this.sysConf = sysConf;
+    }
+
+    @Override
+    public ResultMap getWinningHistories(String activityCode, Integer size) {
+        if (StringUtils.isEmpty(activityCode)) {
+            return new ResultMap(CodeType.PARAMETER_ERROR, "活动信息不完全,请确认活动信息");
+        }
+
+        Map<String, Object> params = new HashMap<>();
+        params.put("activityCode", activityCode);
+        params.put("size", size == null ? 20 : size);
+
+        try {
+            Response response = HttpUtil.sendGetRequest(sysConf.getLottery() + GET_WINNING_HOSTORIES_TOP_URL, params);
+            return JSON.parseObject(response.getResponseText(), ResultMap.class);
+        } catch (Exception e) {
+            return new ResultMap(CodeType.ERROR_STATE, "获取中奖信息错误,请重试");
+        }
+    }
+}

+ 11 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/CommodityInOutboundServiceImpl.java

@@ -186,6 +186,7 @@ public class CommodityInOutboundServiceImpl implements CommodityInOutboundServic
             inOutbound.setInOutId(inOutboundId);
             inOutbound.setInOutId(inOutboundId);
             Short i = 1;
             Short i = 1;
             Set<InOutboundDetail> set = new HashSet<>();
             Set<InOutboundDetail> set = new HashSet<>();
+            Set<Product> productSet = new HashSet<>();
             if (CollectionUtils.isNotEmpty(prids)) {
             if (CollectionUtils.isNotEmpty(prids)) {
                 List<Product> products = productService.findByProductId(prids);
                 List<Product> products = productService.findByProductId(prids);
                 for (InOutboundDetail inOutboundDetail : detaiList) {
                 for (InOutboundDetail inOutboundDetail : detaiList) {
@@ -202,12 +203,14 @@ public class CommodityInOutboundServiceImpl implements CommodityInOutboundServic
 
 
                                 }
                                 }
                                 product.setErpReserve(NumberUtil.add(product.getErpReserve(), inOutboundDetail.getQty()));
                                 product.setErpReserve(NumberUtil.add(product.getErpReserve(), inOutboundDetail.getQty()));
+                                productSet.add(product);
                             } else {
                             } else {
                                 //出库
                                 //出库
                                 if (NumberUtil.compare(product.getErpReserve(), DoubleConstant.zero) == 0) {
                                 if (NumberUtil.compare(product.getErpReserve(), DoubleConstant.zero) == 0) {
                                     throw new IllegalOperatorException("型号:" + product.getPcmpcode() + ",品牌:" +product.getPbranden()+"的物料为0,不能做出库");
                                     throw new IllegalOperatorException("型号:" + product.getPcmpcode() + ",品牌:" +product.getPbranden()+"的物料为0,不能做出库");
                                 } else if (NumberUtil.compare(product.getErpReserve(), inOutboundDetail.getQty()) > 0) {
                                 } else if (NumberUtil.compare(product.getErpReserve(), inOutboundDetail.getQty()) > 0) {
                                     product.setErpReserve(NumberUtil.sub(product.getErpReserve(), inOutboundDetail.getQty()));
                                     product.setErpReserve(NumberUtil.sub(product.getErpReserve(), inOutboundDetail.getQty()));
+                                    productSet.add(product);
                                 } else {
                                 } else {
                                     throw new IllegalOperatorException("型号:" + product.getPcmpcode() + ",品牌:" +product.getPbranden()+"的物料库存数为"+product.getErpReserve() + "出库数是:"+inOutboundDetail.getQty()+"不能做出库");
                                     throw new IllegalOperatorException("型号:" + product.getPcmpcode() + ",品牌:" +product.getPbranden()+"的物料库存数为"+product.getErpReserve() + "出库数是:"+inOutboundDetail.getQty()+"不能做出库");
                                 }
                                 }
@@ -238,7 +241,14 @@ public class CommodityInOutboundServiceImpl implements CommodityInOutboundServic
             //重新计算成本价、在售产品的库存信息需要更新
             //重新计算成本价、在售产品的库存信息需要更新
             List<Long> pridList = new ArrayList<>();
             List<Long> pridList = new ArrayList<>();
             pridList.addAll(prids);
             pridList.addAll(prids);
-            productService.updateProductsByInBound(pridList);
+            List<Product> productList = new ArrayList<>();
+            productList.addAll(productSet);
+            if (CollectionUtils.isNotEmpty(productList)) {
+                productService.save(productList);
+            }
+            if (CollectionUtils.isNotEmpty(pridList)) {
+                productService.updateProductsByInBound(pridList);
+            }
             return ResultMap.success(commodityInOutbound);
             return ResultMap.success(commodityInOutbound);
         }
         }
     }
     }

+ 2 - 2
src/main/java/com/uas/platform/b2c/prod/store/facade/impl/StoreApplyFacadeImpl.java

@@ -44,8 +44,6 @@ public class StoreApplyFacadeImpl implements StoreApplyFacade {
 	@Override
 	@Override
 	public ResultMap handlerApply(String uuid, StoreApply.ApplyStatus status, StoreApply apply) {
 	public ResultMap handlerApply(String uuid, StoreApply.ApplyStatus status, StoreApply apply) {
 		// 通过uuid找到店铺申请信息
 		// 通过uuid找到店铺申请信息
-		Date date = new Date();
-		StoreApply storeApply = storeApplyService.findByUuid(uuid);
 		User user = SystemSession.getUser();
 		User user = SystemSession.getUser();
 		if (user == null || user.getEnterprise() == null) {
 		if (user == null || user.getEnterprise() == null) {
 			return new ResultMap(CodeType.NOT_PERMIT, "请进行用户登录操作");
 			return new ResultMap(CodeType.NOT_PERMIT, "请进行用户登录操作");
@@ -60,6 +58,7 @@ public class StoreApplyFacadeImpl implements StoreApplyFacade {
 		if (apply == null) {
 		if (apply == null) {
 			return new ResultMap(CodeType.NO_INFO, "店铺申请信息不能为空");
 			return new ResultMap(CodeType.NO_INFO, "店铺申请信息不能为空");
 		}
 		}
+		StoreApply storeApply = storeApplyService.findByUuid(uuid);
 		// 检测资质信息
 		// 检测资质信息
 		if (StoreApply.ApplyStatus.PASS == status) {
 		if (StoreApply.ApplyStatus.PASS == status) {
 			// TODO 检测企业信息以及品牌信息
 			// TODO 检测企业信息以及品牌信息
@@ -102,6 +101,7 @@ public class StoreApplyFacadeImpl implements StoreApplyFacade {
 			}
 			}
 			storeApply.setReason(apply.getReason());
 			storeApply.setReason(apply.getReason());
 		}
 		}
+		Date date = new Date();
 		// 保存审核时的审核人信息和是否通过状态
 		// 保存审核时的审核人信息和是否通过状态
 		storeApply.setAuthPerson(user.getUserName());
 		storeApply.setAuthPerson(user.getUserName());
 		storeApply.setAuthTime(date);
 		storeApply.setAuthTime(date);

+ 14 - 0
src/main/java/com/uas/platform/b2c/prod/store/model/StoreApply.java

@@ -41,6 +41,12 @@ public class StoreApply {
 	@Column(name = "apply_useruu")
 	@Column(name = "apply_useruu")
 	private Long userUU;
 	private Long userUU;
 
 
+	/**
+	 * 主营产品
+	 */
+	@Column(name = "apply_description")
+	private String applyDescription;
+
 	/**
 	/**
 	 * 申请人姓名
 	 * 申请人姓名
 	 */
 	 */
@@ -181,6 +187,14 @@ public class StoreApply {
 	public StoreApply() {
 	public StoreApply() {
 	}
 	}
 
 
+	public String getApplyDescription() {
+		return applyDescription;
+	}
+
+	public void setApplyDescription(String applyDescription) {
+		this.applyDescription = applyDescription;
+	}
+
 	public String getStoreUuid() {
 	public String getStoreUuid() {
 		return storeUuid;
 		return storeUuid;
 	}
 	}

+ 2 - 3
src/main/java/com/uas/platform/b2c/prod/store/service/impl/StoreApplyServiceImpl.java

@@ -28,7 +28,6 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import javax.persistence.criteria.Root;
-import javax.servlet.http.HttpServletRequest;
 import java.util.Date;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.Iterator;
 import java.util.List;
 import java.util.List;
@@ -103,12 +102,12 @@ public class StoreApplyServiceImpl implements StoreApplyService {
 		}
 		}
 		// 检测是否存在待处理开铺申请
 		// 检测是否存在待处理开铺申请
 		StoreApply existApply = storeApplyDao.findByEnUUAndStatus(user.getEnterprise().getUu(), StoreApply.ApplyStatus.PREPARE);
 		StoreApply existApply = storeApplyDao.findByEnUUAndStatus(user.getEnterprise().getUu(), StoreApply.ApplyStatus.PREPARE);
-		if(existApply != null) {
+		if (existApply != null) {
 			return new ResultMap(CodeType.SAVED, "AUTH_PREPARE");
 			return new ResultMap(CodeType.SAVED, "AUTH_PREPARE");
 		}
 		}
 		// 检测是否存在待处理开铺申请
 		// 检测是否存在待处理开铺申请
 		existApply = storeApplyDao.findByEnUUAndStatus(user.getEnterprise().getUu(), StoreApply.ApplyStatus.PASS);
 		existApply = storeApplyDao.findByEnUUAndStatus(user.getEnterprise().getUu(), StoreApply.ApplyStatus.PASS);
-		if(existApply != null) {
+		if (existApply != null) {
 			return new ResultMap(CodeType.SAVED, "AUTH_PASS");
 			return new ResultMap(CodeType.SAVED, "AUTH_PASS");
 		}
 		}
 
 

+ 3 - 4
src/main/java/com/uas/platform/b2c/prod/store/service/impl/StoreInServiceImpl.java

@@ -126,9 +126,6 @@ public class StoreInServiceImpl implements StoreInService {
 		if (storeApply == null || storeApply.getEnUU() == null) {
 		if (storeApply == null || storeApply.getEnUU() == null) {
 			return null;
 			return null;
 		}
 		}
-
-		StoreIn store;
-		Date date = new Date();
 		StoreIn existStore = storeDao.findByStoreName(storeApply.getStoreName());
 		StoreIn existStore = storeDao.findByStoreName(storeApply.getStoreName());
 		if (existStore != null) {
 		if (existStore != null) {
 			throw new IllegalStatusException("店铺信息已经存在");
 			throw new IllegalStatusException("店铺信息已经存在");
@@ -137,7 +134,8 @@ public class StoreInServiceImpl implements StoreInService {
 		if (existStore != null) {
 		if (existStore != null) {
 			throw new IllegalStatusException("店铺英文缩写已经存在");
 			throw new IllegalStatusException("店铺英文缩写已经存在");
 		}
 		}
-		store = new StoreIn();
+		StoreIn store = new StoreIn();
+		Date date = new Date();
 		if (StringUtils.isEmpty(storeApply.getStoreUuid())) {
 		if (StringUtils.isEmpty(storeApply.getStoreUuid())) {
 			store.setUuid(UuidUtils.generatedUuid());
 			store.setUuid(UuidUtils.generatedUuid());
 		} else {
 		} else {
@@ -151,6 +149,7 @@ public class StoreInServiceImpl implements StoreInService {
 		store.setType(storeApply.getType());
 		store.setType(storeApply.getType());
 		store.setCreateTime(date);
 		store.setCreateTime(date);
 		store.setUpdateTime(date);
 		store.setUpdateTime(date);
+		store.setDescription(storeApply.getApplyDescription());
 
 
 		store.setEnUU(storeApply.getEnUU());
 		store.setEnUU(storeApply.getEnUU());
 		store.setEnterprise(storeApply.getEnterprise());
 		store.setEnterprise(storeApply.getEnterprise());

BIN
src/main/resources/jxls-tpl/trade/products.xls


+ 10 - 5
src/main/webapp/resources/js/usercenter/controllers/forstore/bomListDetailCtrl.js

@@ -10,7 +10,8 @@ define(['app/app'], function(app) {
             seekPurchase.getBomListDetail({bomId: $stateParams.id}, function (data) {
             seekPurchase.getBomListDetail({bomId: $stateParams.id}, function (data) {
                 $scope.bomData = data;
                 $scope.bomData = data;
                 if ($scope.bomData.seekPurchaseByBatchs) {
                 if ($scope.bomData.seekPurchaseByBatchs) {
-                    angular.forEach($scope.bomData.seekPurchaseByBatchs, function (item) {
+                    angular.forEach($scope.bomData.seekPurchaseByBatchs, function (item, index) {
+                        item.$index = index;
                         item.$checked = false;
                         item.$checked = false;
                         item.showSimilarCodeList = false;
                         item.showSimilarCodeList = false;
                         item.showSimilarBrandList = false;
                         item.showSimilarBrandList = false;
@@ -23,6 +24,11 @@ define(['app/app'], function(app) {
             })
             })
         }
         }
         loadData();
         loadData();
+        var initIndex = function () {
+            angular.forEach($scope.bomData.seekPurchaseByBatchs, function (item, index) {
+                item.$index = index;
+            });
+        }
         // 获取字符长度
         // 获取字符长度
         var getRealLen = function (str) {
         var getRealLen = function (str) {
             var len = 0;
             var len = 0;
@@ -107,8 +113,8 @@ define(['app/app'], function(app) {
             if (flag) {
             if (flag) {
                 if ($scope.editBom) {
                 if ($scope.editBom) {
                     // 批量验证
                     // 批量验证
-                    for (var i = 0; i < $scope.bomData.seekPurchaseByBatchs.length; i++) {
-                        if ($scope.bomData.seekPurchaseByBatchs[i].$checked && !$scope.checkAllProduct($scope.bomData.seekPurchaseByBatchs[i])) {
+                    for (var i = 0; i < $scope.tmpEditBom.seekPurchaseByBatchs.length; i++) {
+                        if ($scope.tmpEditBom.seekPurchaseByBatchs[i].$checked && !$scope.checkAllProduct($scope.tmpEditBom.seekPurchaseByBatchs[i])) {
                             return;
                             return;
                         }
                         }
                     }
                     }
@@ -222,7 +228,6 @@ define(['app/app'], function(app) {
 
 
         // 新增单条物料信息
         // 新增单条物料信息
         $scope.addNewMateriel = function () {
         $scope.addNewMateriel = function () {
-            console.log($scope.bomData.seekPurchaseByBatchs)
             $scope.bomData.seekPurchaseByBatchs.unshift({
             $scope.bomData.seekPurchaseByBatchs.unshift({
                 bomId: $scope.bomData.id,
                 bomId: $scope.bomData.id,
                 brand: '',
                 brand: '',
@@ -236,9 +241,9 @@ define(['app/app'], function(app) {
                 isInBrandList: false,
                 isInBrandList: false,
                 amount: 0
                 amount: 0
             });
             });
+            initIndex();
             $scope.tmpEditBom = angular.copy($scope.bomData);
             $scope.tmpEditBom = angular.copy($scope.bomData);
             $scope.setAllCheck(true);
             $scope.setAllCheck(true);
-            console.log($scope.bomData.seekPurchaseByBatchs, $scope.tmpEditBom.seekPurchaseByBatchs)
         };
         };
 
 
         // 打开日期选择框
         // 打开日期选择框

+ 31 - 9
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_storageCtrl.js

@@ -300,6 +300,16 @@ define([ 'app/app' ], function(app) {
             })
             })
         }
         }
 
 
+        $scope.chickAmountBlur = function (item, num) {
+            if($scope.storage_tab === 'outBound') {
+                if(num === 0) {
+                    toaster.pop('info', '提示', '该型号在产品库中库存数量为0,不能出库!');
+                } else if(item.erpReserve && (num > item.erpReserve)) {
+                    toaster.pop('info', '提示', '出库量数量不能大于库存数!');
+                }
+            }
+        }
+
         $scope.onChange = function (type) {
         $scope.onChange = function (type) {
             angular.forEach($scope.otherData, function(val) {
             angular.forEach($scope.otherData, function(val) {
                 val.show = false;
                 val.show = false;
@@ -332,8 +342,11 @@ define([ 'app/app' ], function(app) {
             type.kind = key.kind;
             type.kind = key.kind;
             type.spec = key.spec;
             type.spec = key.spec;
             type.id = key.id;
             type.id = key.id;
-            type.qty = key.erpReserve;
+            type.qty = ($scope.storage_tab === 'outBound' ? key.erpReserve : '');
             type.price = key.price;
             type.price = key.price;
+            if((!type.erpReserve || type.erpReserve === 0) && $scope.storage_tab === 'outBound'){
+                toaster.pop('info', '提示', '该型号在产品库中库存数量为0,不能出库!');
+            }
         };
         };
 
 
         $scope.addOneTable = function (type) {
         $scope.addOneTable = function (type) {
@@ -355,19 +368,28 @@ define([ 'app/app' ], function(app) {
                 return false
                 return false
             }
             }
             $scope.othenParam.detail = [];
             $scope.othenParam.detail = [];
-            var flag = false;
+            var flag = 0;
             angular.forEach($scope.otherData, function(val) {
             angular.forEach($scope.otherData, function(val) {
                 if(val.id) {
                 if(val.id) {
-                    if(val.qty && val.price) {
+                    if(!val.erpReserve || val.erpReserve === 0 && $scope.storage_tab === 'outBound'){
+                        flag = 1
+                    } else if(val.erpReserve < val.qty) {
+                        flag = 2
+                    } else if(val.qty && val.price) {
                         $scope.othenParam.detail.push({productId: val.id, qty: Number(val.qty), price: Number(val.price)});
                         $scope.othenParam.detail.push({productId: val.id, qty: Number(val.qty), price: Number(val.price)});
-                        flag = true;
-                    }else {
-                        flag = false;
                     }
                     }
                 }
                 }
             })
             })
-            if(!flag) {
-                toaster.pop('info', '提示', '请正确填写下面的信息内容!');
+            if(flag === 1) {
+                toaster.pop('info', '提示', '产品库中库存数量为0将不能出库!');
+                return;
+            }
+            if(flag === 2) {
+                toaster.pop('info', '提示', '出库量数量不能大于库存数!');
+                return;
+            }
+            if($scope.othenParam.detail.length <= 0) {
+                toaster.pop('info', '提示', '至少填写一条数据!');
                 return;
                 return;
             }
             }
             Goods.saveOtherProductData({storage_tab: $scope.storage_tab, enName: $scope.othenParam.enName ? $scope.othenParam.enName : null}, $scope.othenParam.detail, function(data) {
             Goods.saveOtherProductData({storage_tab: $scope.storage_tab, enName: $scope.othenParam.enName ? $scope.othenParam.enName : null}, $scope.othenParam.detail, function(data) {
@@ -599,7 +621,7 @@ define([ 'app/app' ], function(app) {
                     var _id = data.purchaseDetails[i].id
                     var _id = data.purchaseDetails[i].id
                     _obj.push({
                     _obj.push({
                         id: _id,
                         id: _id,
-                        qty: data.purchaseDetails[i].sendCount
+                        qty: Number(data.purchaseDetails[i].sendCount)
                     })
                     })
                 }
                 }
             }
             }

+ 7 - 0
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_store_apply_ctrl.js

@@ -21,6 +21,8 @@ define(['app/app', 'jquery-uploadify'], function (app) {
 			taxRegistration: 'TAX_REGISTRATION',
 			taxRegistration: 'TAX_REGISTRATION',
 			businessLicense: 'BUSINESS_LICENSE'
 			businessLicense: 'BUSINESS_LICENSE'
 		};
 		};
+		// 初始化主营产品
+		$scope.description = '';
 		// 初始化品牌信息
 		// 初始化品牌信息
 		$scope.brands = [{ type: 'BRAND' }];
 		$scope.brands = [{ type: 'BRAND' }];
 		$scope.reason = null;
 		$scope.reason = null;
@@ -388,6 +390,10 @@ define(['app/app', 'jquery-uploadify'], function (app) {
 				toaster.pop('error', '请上传品牌信息');
 				toaster.pop('error', '请上传品牌信息');
 				return ;
 				return ;
 			}
 			}
+			if(!$scope.description) {
+                toaster.pop('error', '请填写主营产品信息');
+                return ;
+			}
 
 
 			// 设置店铺申请资质信息
 			// 设置店铺申请资质信息
 			$scope.storeApply.qualifications = [];
 			$scope.storeApply.qualifications = [];
@@ -441,6 +447,7 @@ define(['app/app', 'jquery-uploadify'], function (app) {
 				}
 				}
 
 
 				$scope.storeApply.brands = brands;
 				$scope.storeApply.brands = brands;
+				$scope.storeApply.applyDescription = $scope.description
 				console.log(brands);
 				console.log(brands);
 				console.log($scope.storeApply);
 				console.log($scope.storeApply);
 				submitApplyInfo();
 				submitApplyInfo();

+ 28 - 28
src/main/webapp/resources/view/usercenter/forstore/bomListDetail.html

@@ -284,11 +284,11 @@
             </tr>
             </tr>
         </thead>
         </thead>
         <tbody>
         <tbody>
-            <tr ng-repeat="detail in bomData.seekPurchaseByBatchs track by $index">
+            <tr ng-repeat="detail in bomData.seekPurchaseByBatchs track by detail.$index">
                 <td>
                 <td>
                     <label class="com-check-box">
                     <label class="com-check-box">
-                        <input type="checkbox" id="{{$index}}" ng-click="initCheckAll()" ng-model="detail.$checked">
-                        <label for="{{$index}}"></label>
+                        <input type="checkbox" id="{{detail.$index}}" ng-click="initCheckAll()" ng-model="detail.$checked">
+                        <label for="{{detail.$index}}"></label>
                     </label>
                     </label>
                 </td>
                 </td>
                 <td class="base-info">
                 <td class="base-info">
@@ -296,18 +296,18 @@
                         <div class="inline-block title">
                         <div class="inline-block title">
                             <i class="must">*</i>品牌:
                             <i class="must">*</i>品牌:
                         </div>
                         </div>
-                        <div class="inline-block" ng-class="{'similar-wrap': tmpEditBom.seekPurchaseByBatchs[$index].showSimilarBrandList}" title="{{detail.brand}}">
+                        <div class="inline-block" ng-class="{'similar-wrap': tmpEditBom.seekPurchaseByBatchs[detail.$index].showSimilarBrandList}" title="{{detail.brand}}">
                             <span ng-show="!editBom || !detail.$checked" ng-bind="detail.brand || '-'"></span>
                             <span ng-show="!editBom || !detail.$checked" ng-bind="detail.brand || '-'"></span>
                             <input ng-show="editBom && detail.$checked"
                             <input ng-show="editBom && detail.$checked"
-                                   ng-model="tmpEditBom.seekPurchaseByBatchs[$index].brand"
-                                   ng-change="onBrandChange(tmpEditBom.seekPurchaseByBatchs[$index])"
-                                   ng-blur="checkBrand(tmpEditBom.seekPurchaseByBatchs[$index])"
+                                   ng-model="tmpEditBom.seekPurchaseByBatchs[detail.$index].brand"
+                                   ng-change="onBrandChange(tmpEditBom.seekPurchaseByBatchs[detail.$index])"
+                                   ng-blur="checkBrand(tmpEditBom.seekPurchaseByBatchs[detail.$index])"
                                    type="text">
                                    type="text">
                             <ul class="similar-list"
                             <ul class="similar-list"
-                                ng-show="tmpEditBom.seekPurchaseByBatchs[$index].showSimilarBrandList"
-                                ng-mouseenter="tmpEditBom.seekPurchaseByBatchs[$index].isInBrandList = true;"
-                                ng-mouseleave="tmpEditBom.seekPurchaseByBatchs[$index].isInBrandList = false">
-                                <li ng-repeat="sBrand in similarBrand" ng-bind="sBrand.nameEn" title="{{sBrand.nameEn}}" ng-click="setBrand(tmpEditBom.seekPurchaseByBatchs[$index], sBrand.nameEn)"></li>
+                                ng-show="tmpEditBom.seekPurchaseByBatchs[detail.$index].showSimilarBrandList"
+                                ng-mouseenter="tmpEditBom.seekPurchaseByBatchs[detail.$index].isInBrandList = true;"
+                                ng-mouseleave="tmpEditBom.seekPurchaseByBatchs[detail.$index].isInBrandList = false">
+                                <li ng-repeat="sBrand in similarBrand" ng-bind="sBrand.nameEn" title="{{sBrand.nameEn}}" ng-click="setBrand(tmpEditBom.seekPurchaseByBatchs[detail.$index], sBrand.nameEn)"></li>
                             </ul>
                             </ul>
                         </div>
                         </div>
                     </div>
                     </div>
@@ -318,9 +318,9 @@
                         <div class="inline-block" title="{{detail.kind}}">
                         <div class="inline-block" title="{{detail.kind}}">
                             <span ng-show="!editBom || !detail.$checked" ng-bind="detail.kind || '-'"></span>
                             <span ng-show="!editBom || !detail.$checked" ng-bind="detail.kind || '-'"></span>
                             <input ng-show="editBom && detail.$checked"
                             <input ng-show="editBom && detail.$checked"
-                                   ng-model="tmpEditBom.seekPurchaseByBatchs[$index].kind"
-                                   ng-change="onKindChange(tmpEditBom.seekPurchaseByBatchs[$index])"
-                                   ng-blur="checkKind(tmpEditBom.seekPurchaseByBatchs[$index])"
+                                   ng-model="tmpEditBom.seekPurchaseByBatchs[detail.$index].kind"
+                                   ng-change="onKindChange(tmpEditBom.seekPurchaseByBatchs[detail.$index])"
+                                   ng-blur="checkKind(tmpEditBom.seekPurchaseByBatchs[detail.$index])"
                                    type="text">
                                    type="text">
                         </div>
                         </div>
                     </div>
                     </div>
@@ -330,18 +330,18 @@
                         <div class="inline-block title">
                         <div class="inline-block title">
                             <i class="must">*</i>型号:
                             <i class="must">*</i>型号:
                         </div>
                         </div>
-                        <div class="inline-block" ng-class="{'similar-wrap': tmpEditBom.seekPurchaseByBatchs[$index].showSimilarCodeList}" title="{{detail.code}}">
+                        <div class="inline-block" ng-class="{'similar-wrap': tmpEditBom.seekPurchaseByBatchs[detail.$index].showSimilarCodeList}" title="{{detail.code}}">
                             <span ng-show="!editBom || !detail.$checked" ng-bind="detail.code || '-'"></span>
                             <span ng-show="!editBom || !detail.$checked" ng-bind="detail.code || '-'"></span>
                             <input ng-show="editBom && detail.$checked"
                             <input ng-show="editBom && detail.$checked"
-                                   ng-model="tmpEditBom.seekPurchaseByBatchs[$index].code"
-                                   ng-change="onCodeChange(tmpEditBom.seekPurchaseByBatchs[$index])"
-                                   ng-blur="checkCode(tmpEditBom.seekPurchaseByBatchs[$index])"
+                                   ng-model="tmpEditBom.seekPurchaseByBatchs[detail.$index].code"
+                                   ng-change="onCodeChange(tmpEditBom.seekPurchaseByBatchs[detail.$index])"
+                                   ng-blur="checkCode(tmpEditBom.seekPurchaseByBatchs[detail.$index])"
                                    type="text">
                                    type="text">
                             <ul class="similar-list"
                             <ul class="similar-list"
-                                ng-show="tmpEditBom.seekPurchaseByBatchs[$index].showSimilarCodeList"
-                                ng-mouseenter="tmpEditBom.seekPurchaseByBatchs[$index].isInCodeList = true;"
-                                ng-mouseleave="tmpEditBom.seekPurchaseByBatchs[$index].isInCodeList = false">
-                                <li ng-repeat="sCode in similarCode" ng-bind="sCode.code" title="{{sCode.code}}" ng-click="setCode(tmpEditBom.seekPurchaseByBatchs[$index], sCode.code)"></li>
+                                ng-show="tmpEditBom.seekPurchaseByBatchs[detail.$index].showSimilarCodeList"
+                                ng-mouseenter="tmpEditBom.seekPurchaseByBatchs[detail.$index].isInCodeList = true;"
+                                ng-mouseleave="tmpEditBom.seekPurchaseByBatchs[detail.$index].isInCodeList = false">
+                                <li ng-repeat="sCode in similarCode" ng-bind="sCode.code" title="{{sCode.code}}" ng-click="setCode(tmpEditBom.seekPurchaseByBatchs[detail.$index], sCode.code)"></li>
                             </ul>
                             </ul>
                         </div>
                         </div>
                     </div>
                     </div>
@@ -352,15 +352,15 @@
                         <div class="inline-block" title="{{detail.spec}}">
                         <div class="inline-block" title="{{detail.spec}}">
                             <span ng-show="!editBom || !detail.$checked" ng-bind="detail.spec || '-'"></span>
                             <span ng-show="!editBom || !detail.$checked" ng-bind="detail.spec || '-'"></span>
                             <input ng-show="editBom && detail.$checked"
                             <input ng-show="editBom && detail.$checked"
-                                   ng-model="tmpEditBom.seekPurchaseByBatchs[$index].spec"
-                                   ng-change="onSpecChange(tmpEditBom.seekPurchaseByBatchs[$index])"
-                                   ng-blur="checkSpec(tmpEditBom.seekPurchaseByBatchs[$index])"
+                                   ng-model="tmpEditBom.seekPurchaseByBatchs[detail.$index].spec"
+                                   ng-change="onSpecChange(tmpEditBom.seekPurchaseByBatchs[detail.$index])"
+                                   ng-blur="checkSpec(tmpEditBom.seekPurchaseByBatchs[detail.$index])"
                                    type="text">
                                    type="text">
                         </div>
                         </div>
                     </div>
                     </div>
                 </td>
                 </td>
                 <td class="base-info pcs-line" style="position:relative;">
                 <td class="base-info pcs-line" style="position:relative;">
-                    <div class="content-clear" ng-if="!detail.id" ng-click="tmpEditBom.seekPurchaseByBatchs.splice($index, 1);bomData.seekPurchaseByBatchs.splice($index, 1)">
+                    <div class="content-clear" ng-if="!detail.id" ng-click="tmpEditBom.seekPurchaseByBatchs.splice(detail.$index, 1);bomData.seekPurchaseByBatchs.splice(detail.$index, 1)">
                         <i class="fa fa-close"></i>
                         <i class="fa fa-close"></i>
                     </div>
                     </div>
                     <div class="content-line">
                     <div class="content-line">
@@ -370,8 +370,8 @@
                         <div class="inline-block" title="{{detail.amount}}">
                         <div class="inline-block" title="{{detail.amount}}">
                             <span ng-show="!editBom || !detail.$checked" ng-bind="detail.amount || '-'"></span>
                             <span ng-show="!editBom || !detail.$checked" ng-bind="detail.amount || '-'"></span>
                             <input ng-show="editBom && detail.$checked"
                             <input ng-show="editBom && detail.$checked"
-                                   ng-model="tmpEditBom.seekPurchaseByBatchs[$index].amount"
-                                   ng-change="onAmountChange(tmpEditBom.seekPurchaseByBatchs[$index])"
+                                   ng-model="tmpEditBom.seekPurchaseByBatchs[detail.$index].amount"
+                                   ng-change="onAmountChange(tmpEditBom.seekPurchaseByBatchs[detail.$index])"
                                    type="text">
                                    type="text">
                         </div>
                         </div>
                     </div>
                     </div>

+ 15 - 10
src/main/webapp/resources/view/vendor/forstore/vendor_storage.html

@@ -1237,7 +1237,6 @@
                     <th width="120" ng-bind="storage_tab === 'inBound' ? '入库单号' : '出库单号'"></th>
                     <th width="120" ng-bind="storage_tab === 'inBound' ? '入库单号' : '出库单号'"></th>
                     <th width="180" ng-bind="storage_tab === 'inBound' ? '发货单' : '订单号'" ng-if="handleItem === 2"></th>
                     <th width="180" ng-bind="storage_tab === 'inBound' ? '发货单' : '订单号'" ng-if="handleItem === 2"></th>
                     <th width="180" ng-bind="storage_tab === 'inBound' ? '卖家名称' : '买家名称'"></th>
                     <th width="180" ng-bind="storage_tab === 'inBound' ? '卖家名称' : '买家名称'"></th>
-                    <th class="filter" width="110" ng-if="handleItem == 2">类型</th>
                     <th class="filter" width="110" ng-if="handleItem === 0">
                     <th class="filter" width="110" ng-if="handleItem === 0">
                         <a ng-bind="selfSupport">全部类型</a> <i class="fa fa-angle-down fa-angle-up"></i>
                         <a ng-bind="selfSupport">全部类型</a> <i class="fa fa-angle-down fa-angle-up"></i>
                         <div class="hover-show" ng-if="storage_tab === 'inBound'">
                         <div class="hover-show" ng-if="storage_tab === 'inBound'">
@@ -1251,7 +1250,7 @@
                             <a ng-click="changeSupportType('SELL_OUTBOUND')" ng-bind="boundType.SELL_OUTBOUND">销售出库</a>
                             <a ng-click="changeSupportType('SELL_OUTBOUND')" ng-bind="boundType.SELL_OUTBOUND">销售出库</a>
                         </div>
                         </div>
                     </th>
                     </th>
-                    <th width="90">录入人</th>
+                    <th width="90" ng-if="handleItem !== 2">录入人</th>
                     <th width="170">录入日期</th>
                     <th width="170">录入日期</th>
                     <th width="170" class="padding0">操作</th>
                     <th width="170" class="padding0">操作</th>
                 </tr>
                 </tr>
@@ -1267,13 +1266,19 @@
                     <td ng-bind="item.createTime | date : 'yyyy-MM-dd: HH:mm:ss'">2018-12-12</td>
                     <td ng-bind="item.createTime | date : 'yyyy-MM-dd: HH:mm:ss'">2018-12-12</td>
                     <td><span class="btn-toggle" ng-show="item.seleted" ng-click="item.seleted = !item.seleted">收起 <i class="fa fa-angle-up"></i></span><span ng-click="unfoldClick(storageList,item)" class="btn-toggle" ng-show="!item.seleted">展开 <i class="fa fa-angle-down"></i></span></td>
                     <td><span class="btn-toggle" ng-show="item.seleted" ng-click="item.seleted = !item.seleted">收起 <i class="fa fa-angle-up"></i></span><span ng-click="unfoldClick(storageList,item)" class="btn-toggle" ng-show="!item.seleted">展开 <i class="fa fa-angle-down"></i></span></td>
                 </tr>
                 </tr>
+                <tr ng-if="item.seleted">
+                    <td colspan="6" style="background:#f5f5f5;">
+                        <div class="logistics-info">
+                            <span style="margin-right:150px;">所属订单:<span ng-bind="item.associateOrderid || item.orid || '-'"></span></span>
+                        </div>
+                    </td>
+                </tr>
                 <tr ng-show="item.seleted">
                 <tr ng-show="item.seleted">
                     <td colspan="6">
                     <td colspan="6">
                         <div class="sub-table-head">
                         <div class="sub-table-head">
                             <table class="wanted-sub-tab table">
                             <table class="wanted-sub-tab table">
                                 <caption ng-if="item.associateOrderid">
                                 <caption ng-if="item.associateOrderid">
                                     明细列表:
                                     明细列表:
-                                    <span class="caption_title">所属订单:<span ng-bind="item.associateOrderid"></span></span>
                                 </caption>
                                 </caption>
                                 <thead>
                                 <thead>
                                 <tr>
                                 <tr>
@@ -1326,7 +1331,8 @@
                                 <th width="110"><em class="red_color">*</em>型号</th>
                                 <th width="110"><em class="red_color">*</em>型号</th>
                                 <th width="130">品牌</th>
                                 <th width="130">品牌</th>
                                 <th>物料名称</th>
                                 <th>物料名称</th>
-                                <th width="210">规格</th>
+                                <th width="180">规格</th>
+                                <th width="130">库存数(PCS)</th>
                                 <th width="130"><em class="red_color">*</em>{{storage_tab === 'inBound' ? '入库数' : '出库数'}}(PCS)</th>
                                 <th width="130"><em class="red_color">*</em>{{storage_tab === 'inBound' ? '入库数' : '出库数'}}(PCS)</th>
                                 <th width="130">单价({{currency === 'RMB' ? '¥' : '$'}})</th>
                                 <th width="130">单价({{currency === 'RMB' ? '¥' : '$'}})</th>
                             </tr>
                             </tr>
@@ -1353,7 +1359,8 @@
                                 <td><span ng-bind="item.pbranden || '-'" title="{{item.pbranden}}"></span></td>
                                 <td><span ng-bind="item.pbranden || '-'" title="{{item.pbranden}}"></span></td>
                                 <td><span ng-bind="item.kind || '-'" title="{{item.kind}}"></span></td>
                                 <td><span ng-bind="item.kind || '-'" title="{{item.kind}}"></span></td>
                                 <td><span ng-bind="item.spec || '-'" title="{{item.spec}}"></span></td>
                                 <td><span ng-bind="item.spec || '-'" title="{{item.spec}}"></span></td>
-                                <td><input type="text" class="form-control" ng-model="item.qty" ng-change="onAmountChange(item, item.qty, 'qty', 9)"></td>
+                                <td><span ng-bind="item.erpReserve || '-'" title="{{item.erpReserve}}"></span></td>
+                                <td><input type="text" class="form-control" ng-model="item.qty" ng-change="onAmountChange(item, item.qty, 'qty', 9)" ng-blur="chickAmountBlur(item, item.qty)"></td>
                                 <td><input type="text" class="form-control" ng-model="item.price" ng-change="onAmountChange(item, item.price, 'price', 4, 6)"></td>
                                 <td><input type="text" class="form-control" ng-model="item.price" ng-change="onAmountChange(item, item.price, 'price', 4, 6)"></td>
                             </tr>
                             </tr>
                             <tr>
                             <tr>
@@ -1376,14 +1383,12 @@
                     <td ng-if="storage_tab === 'outBound'"><span ng-bind="item.purchaseid || '-'" title="{{item.purchaseid}}"></span></td>
                     <td ng-if="storage_tab === 'outBound'"><span ng-bind="item.purchaseid || '-'" title="{{item.purchaseid}}"></span></td>
                     <td ng-if="storage_tab === 'inBound'"><span ng-bind="item.invoiceid || '-'" title="{{item.invoiceid}}"></span></td>
                     <td ng-if="storage_tab === 'inBound'"><span ng-bind="item.invoiceid || '-'" title="{{item.invoiceid}}"></span></td>
                     <td><span ng-bind="item.buyentername || item.buyerentername || item.buyername" title="{{item.buyentername || item.buyerentername || item.buyername}}"></span></td>
                     <td><span ng-bind="item.buyentername || item.buyerentername || item.buyername" title="{{item.buyentername || item.buyerentername || item.buyername}}"></span></td>
-                    <td ng-bind="storage_tab === 'outBound' ? '销售出库' : '采购入库'">腌肉入库</td>
-                    <td><span ng-bind="item.sellername" title="{{item.sellername}}"></span></td>
                     <td ng-bind="item.createtime | date: 'yyyy-MM-dd'"></td>
                     <td ng-bind="item.createtime | date: 'yyyy-MM-dd'"></td>
                     <td ng-if="!item.seleted"><a class="btn-click" ng-click="item.seleted = !item.seleted;unfoldClick(storageList, item)" ng-bind="storage_tab === 'inBound' ? '收货入库' : '发货出库'"></a></td>
                     <td ng-if="!item.seleted"><a class="btn-click" ng-click="item.seleted = !item.seleted;unfoldClick(storageList, item)" ng-bind="storage_tab === 'inBound' ? '收货入库' : '发货出库'"></a></td>
                     <td ng-if="item.seleted"><a class="btn-click" ng-click="saveOtherCheck(item, storage_tab)">确定</a><a class="btn-click" ng-click="item.seleted = !item.seleted">取消</a></td>
                     <td ng-if="item.seleted"><a class="btn-click" ng-click="saveOtherCheck(item, storage_tab)">确定</a><a class="btn-click" ng-click="item.seleted = !item.seleted">取消</a></td>
                 </tr>
                 </tr>
                 <tr ng-if="item.seleted && storage_tab === 'outBound'">
                 <tr ng-if="item.seleted && storage_tab === 'outBound'">
-                    <td colspan="7" style="background:#f5f5f5;">
+                    <td colspan="5" style="background:#f5f5f5;">
                         <div class="logistics-info">
                         <div class="logistics-info">
                             <span style="margin-right:150px;">所属订单:<span ng-bind="item.associateOrderid || '-'"></span></span>
                             <span style="margin-right:150px;">所属订单:<span ng-bind="item.associateOrderid || '-'"></span></span>
                             <span>物流公司 :&nbsp;</span>
                             <span>物流公司 :&nbsp;</span>
@@ -1411,7 +1416,7 @@
                     </td>
                     </td>
                 </tr>
                 </tr>
                 <tr ng-if="item.seleted && storage_tab === 'inBound' && item.logistics">
                 <tr ng-if="item.seleted && storage_tab === 'inBound' && item.logistics">
-                    <td colspan="7" style="background:#f5f5f5;">
+                    <td colspan="5" style="background:#f5f5f5;">
                         <div class="logistics-info">
                         <div class="logistics-info">
                             <span style="margin-right:150px;">所属订单:<span ng-bind="item.associateOrderid || item.orid || '-'"></span></span>
                             <span style="margin-right:150px;">所属订单:<span ng-bind="item.associateOrderid || item.orid || '-'"></span></span>
                             <span>物流公司 :&nbsp;</span>
                             <span>物流公司 :&nbsp;</span>
@@ -1423,7 +1428,7 @@
                     </td>
                     </td>
                 </tr>
                 </tr>
                 <tr ng-show="item.seleted">
                 <tr ng-show="item.seleted">
-                    <td colspan="7">
+                    <td colspan="5">
                         <div class="sub-table-head">
                         <div class="sub-table-head">
                             <table class="wanted-sub-tab table">
                             <table class="wanted-sub-tab table">
                                 <thead>
                                 <thead>

+ 12 - 0
src/main/webapp/resources/view/vendor/forstore/vendor_store_apply.html

@@ -974,6 +974,18 @@
 					原因:<span style="color: #d32526;">{{reason}}</span>
 					原因:<span style="color: #d32526;">{{reason}}</span>
 				</div>
 				</div>
 			</div>
 			</div>
+			<!--主营产品-->
+			<div class="row brand-type">
+				<div class="col-md-1" style="padding:0;">主营产品<em>*</em></div>
+				<div class="col-md-10">
+                  <textarea ng-model="description"
+							style="line-height: 20px;font-size: 14px;margin-top:25px;"
+							rows="8"
+							maxlength="500"
+							class="form-control"
+							placeholder="例:本店主营Panasonic、IT、三星等知名品牌的触控IC、显示驱动IC、液晶屏、功率模块类、电源芯片、高压熔断、被动器件等产品。"></textarea>
+				</div>
+			</div>
 		</div>
 		</div>
 		<!-- Submit button -->
 		<!-- Submit button -->
 		<div style="padding: 28px 40px;">
 		<div style="padding: 28px 40px;">