Browse Source

Merge remote-tracking branch 'origin/feature-authority-180524' into feature-authority-180524

yangc 7 years ago
parent
commit
976126d02c
54 changed files with 551 additions and 183 deletions
  1. BIN
      jpg
  2. 10 4
      src/main/java/com/uas/platform/b2c/common/account/controller/UserController.java
  3. 12 4
      src/main/java/com/uas/platform/b2c/common/account/dao/UserDao.java
  4. 1 1
      src/main/java/com/uas/platform/b2c/common/account/model/Enterprise.java
  5. 10 1
      src/main/java/com/uas/platform/b2c/common/account/model/UserInfo.java
  6. 6 0
      src/main/java/com/uas/platform/b2c/common/account/service/UserService.java
  7. 6 0
      src/main/java/com/uas/platform/b2c/common/account/service/impl/UserServiceImpl.java
  8. 1 0
      src/main/java/com/uas/platform/b2c/common/message/controller/InternalMessageController.java
  9. 5 5
      src/main/java/com/uas/platform/b2c/common/weixin/model/TemplateMessage.java
  10. 5 5
      src/main/java/com/uas/platform/b2c/common/weixin/service/impl/WeChatServiceImpl.java
  11. 8 6
      src/main/java/com/uas/platform/b2c/fa/payment/service/impl/InstallmentServiceImpl.java
  12. 16 0
      src/main/java/com/uas/platform/b2c/prod/commodity/model/GoodsSimple.java
  13. 10 2
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java
  14. 16 0
      src/main/java/com/uas/platform/b2c/prod/product/component/modal/Component.java
  15. 15 0
      src/main/java/com/uas/platform/b2c/prod/product/component/modal/ComponentInfo.java
  16. 7 5
      src/main/java/com/uas/platform/b2c/prod/store/api/CommodityController.java
  17. 4 0
      src/main/java/com/uas/platform/b2c/prod/store/facade/impl/StoreInFacadeImpl.java
  18. 15 1
      src/main/java/com/uas/platform/b2c/prod/store/model/StoreIn.java
  19. 15 0
      src/main/java/com/uas/platform/b2c/trade/order/model/OrderDetail.java
  20. 16 0
      src/main/java/com/uas/platform/b2c/trade/order/model/PurchaseDetail.java
  21. 1 0
      src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderDetailServiceImpl.java
  22. 1 0
      src/main/java/com/uas/platform/b2c/trade/presale/controller/CollectionController.java
  23. 1 1
      src/main/java/com/uas/platform/b2c/trade/presale/facade/impl/CartFacadeImpl.java
  24. 14 1
      src/main/java/com/uas/platform/b2c/trade/presale/model/Cart.java
  25. 15 0
      src/main/java/com/uas/platform/b2c/trade/presale/model/Collection.java
  26. 15 0
      src/main/java/com/uas/platform/b2c/trade/presale/model/CollectionInfo.java
  27. 1 0
      src/main/java/com/uas/platform/b2c/trade/presale/service/impl/CartServiceImpl.java
  28. 28 30
      src/main/java/com/uas/platform/b2c/trade/seek/service/impl/SeekPurchaseBomServiceImpl.java
  29. BIN
      src/main/resources/jxls-tpl/trade/seekPurchaseByBatch.xls
  30. 1 1
      src/main/webapp/resources/js/usercenter/controllers/forstore/bom_detail_ctrl.js
  31. 1 0
      src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_cart_ctrl.js
  32. 8 8
      src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_order_ctrl.js
  33. 1 1
      src/main/webapp/resources/js/usercenter/controllers/forstore/messagePersonalCtrl.js
  34. 46 37
      src/main/webapp/resources/js/usercenter/controllers/forstore/seek_purchase_ctrl.js
  35. 1 1
      src/main/webapp/resources/js/vendor/controllers/forstore/messagePersonalCtrl.js
  36. 1 1
      src/main/webapp/resources/js/vendor/controllers/forstore/purchase_detail.js
  37. 23 14
      src/main/webapp/resources/js/vendor/controllers/forstore/seek_purchase_ctrl.js
  38. 8 8
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_order_ctrl.js
  39. 7 4
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_store_maintain_ctrl.js
  40. 1 1
      src/main/webapp/resources/view/common/site-nav.html
  41. 2 1
      src/main/webapp/resources/view/usercenter/componentStore.html
  42. 2 1
      src/main/webapp/resources/view/usercenter/forstore/buyer_cart.html
  43. 5 2
      src/main/webapp/resources/view/usercenter/forstore/buyer_order.html
  44. 4 1
      src/main/webapp/resources/view/usercenter/forstore/order_detail.html
  45. 3 1
      src/main/webapp/resources/view/usercenter/forstore/order_pay.html
  46. 6 6
      src/main/webapp/resources/view/usercenter/forstore/seekPurchase.html
  47. 11 8
      src/main/webapp/resources/view/vendor/forstore/purchase_detail.html
  48. 113 5
      src/main/webapp/resources/view/vendor/forstore/seekPurchase.html
  49. 2 2
      src/main/webapp/resources/view/vendor/forstore/vendor_account_management.html
  50. 1 1
      src/main/webapp/resources/view/vendor/forstore/vendor_material.html
  51. 1 1
      src/main/webapp/resources/view/vendor/forstore/vendor_material_person.html
  52. 2 2
      src/main/webapp/resources/view/vendor/forstore/vendor_order.html
  53. 46 9
      src/main/webapp/resources/view/vendor/forstore/vendor_store_maintain.html
  54. 1 1
      src/main/webapp/resources/view/vendor/left_nav.html

BIN
jpg


+ 10 - 4
src/main/java/com/uas/platform/b2c/common/account/controller/UserController.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2c.common.account.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.uas.message.mail.service.MailService;
 import com.uas.message.sms.service.SmsService;
 import com.uas.platform.b2c.common.account.model.User;
@@ -10,6 +11,7 @@ import com.uas.platform.b2c.common.account.service.UserQuestionService;
 import com.uas.platform.b2c.common.account.service.UserService;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
+import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.PageInfo;
@@ -93,19 +95,23 @@ public class UserController {
 
 	/**
 	 * 设置头像路径
-	 * @param imageUrl
+	 * @param jsonStr
 	 * @return
 	 */
 	@RequestMapping(value = "/setImageUrl", method = RequestMethod.POST)
-	public User setUserImageUrl(@RequestBody String imageUrl) {
+	public User setUserImageUrl(@RequestBody String jsonStr) {
 		User user = SystemSession.getUser();
 		if (user == null) {
 			throw new IllegalOperatorException("您当前的账号不存在,或未登录!不能设置图像。");
 		}
-		user.setImageUrl(imageUrl);
+		if (!StringUtils.isEmpty(jsonStr)) {
+			JSONObject jsonObject = FastjsonUtils.parseObject(jsonStr);
+			user.setImageUrl(jsonObject.getString("imageUrl"));
+		}
 		assert logger != null;
 		logger.log("用户信息", "设置头像路径,UU:" + user.getUserUU());
-		return userService.save(user);
+		userService.updateImageUrl(user.getImageUrl());
+		return user;
 	}
 
 	@RequestMapping(value = "/getUserByUU", method = RequestMethod.GET)

+ 12 - 4
src/main/java/com/uas/platform/b2c/common/account/dao/UserDao.java

@@ -1,12 +1,10 @@
 package com.uas.platform.b2c.common.account.dao;
 
 import com.uas.platform.b2c.common.account.model.User;
-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.jpa.repository.QueryHints;
+import org.springframework.data.jpa.repository.*;
 import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.persistence.QueryHint;
 import java.util.List;
@@ -138,4 +136,14 @@ public interface UserDao extends JpaSpecificationExecutor<User>, JpaRepository<U
 	 * @return
 	 */
 	public User findUsersByOpenId(String openId);
+
+	/**
+	 * 修改个人的头像
+	 * @param userUU
+	 * @param imageUrl
+	 */
+	@Transactional
+	@Modifying
+	@Query("update User u set u.imageUrl = :imageUrl where u.userUU = :userUU")
+	public void updateUserImageUrl(@Param("userUU") Long userUU, @Param("imageUrl") String imageUrl);
 }

+ 1 - 1
src/main/java/com/uas/platform/b2c/common/account/model/Enterprise.java

@@ -192,7 +192,7 @@ public class Enterprise implements Serializable {
 	/**
 	 * 企业简介
 	 */
-	@Column(name = "en_description", length = 1000)
+	@Column(name = "en_description", length = 2500)
 	private String description;
 
 	public String getDescription() {

+ 10 - 1
src/main/java/com/uas/platform/b2c/common/account/model/UserInfo.java

@@ -73,7 +73,7 @@ public class UserInfo {
 		this.lastLoginTime = user.getLastLoginTime();
 		this.secLevel = countSecLevel();
 		this.emailValidCode = user.getEmailValidCode();
-
+		this.imageUrl = user.getImageUrl();
 	}
 
 	private Short countSecLevel(){
@@ -139,6 +139,8 @@ public class UserInfo {
 
 	private Set<UserLoginTime> userLoginTimeSet;
 
+	private String imageUrl;
+
 	public Integer getEmailValidCode() {
 		return emailValidCode;
 	}
@@ -270,6 +272,13 @@ public class UserInfo {
 		this.sys = sys;
 	}
 
+	public String getImageUrl() {
+		return imageUrl;
+	}
+
+	public void setImageUrl(String imageUrl) {
+		this.imageUrl = imageUrl;
+	}
 }
 
 /**

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

@@ -184,4 +184,10 @@ public interface UserService {
 	 * @return
 	 */
 	User updateUserEmail(String tel, String newEmail, Long uu);
+
+	/**
+	 * 修改个人的头像
+	 * @param imageUrl 头像图片地址
+	 */
+	public void updateImageUrl(String imageUrl);
 }

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

@@ -698,4 +698,10 @@ public class UserServiceImpl implements UserService {
 		}*/
 		throw new IllegalOperatorException("数据更新失败...");
 	}
+
+	@Override
+	public void updateImageUrl(String imageUrl) {
+		Long userUU = SystemSession.getUser().getUserUU();
+		userDao.updateUserImageUrl(userUU, imageUrl);
+	}
 }

+ 1 - 0
src/main/java/com/uas/platform/b2c/common/message/controller/InternalMessageController.java

@@ -7,6 +7,7 @@ import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.common.message.service.InternalMessageService;
 import com.uas.platform.b2c.core.config.MessageConf;
 import com.uas.platform.b2c.core.support.SystemSession;
+import com.uas.platform.b2c.fa.payment.utils.StringUtils;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.model.Status;
 import com.uas.platform.core.util.HttpUtil;

+ 5 - 5
src/main/java/com/uas/platform/b2c/common/weixin/model/TemplateMessage.java

@@ -16,7 +16,7 @@ public class TemplateMessage {
     /**
      * 模板Id
      */
-    private String templateId;
+    private String template_id;
 
     /**
      * 模板跳转地址
@@ -36,12 +36,12 @@ public class TemplateMessage {
         this.touser = touser;
     }
 
-    public String getTemplateId() {
-        return templateId;
+    public String getTemplate_id() {
+        return template_id;
     }
 
-    public void setTemplateId(String templateId) {
-        this.templateId = templateId;
+    public void setTemplate_id(String template_id) {
+        this.template_id = template_id;
     }
 
     public String getUrl() {

+ 5 - 5
src/main/java/com/uas/platform/b2c/common/weixin/service/impl/WeChatServiceImpl.java

@@ -81,11 +81,10 @@ public class WeChatServiceImpl implements WeChatService{
             HttpUtil.ResponseWrap res = HttpUtil.doGet(url);
             JSONObject jsonObject = JSON.parseObject(res.getContent());
             String access_token = jsonObject.getString("access_token");
-            String sendTemplateUrl = WeChatUtil.GET_ACCESS_TOKEN.replace("ACCESS_TOKEN", access_token);
+            String sendTemplateUrl = WeChatUtil.SEND_TEMPLATE_URL.replace("ACCESS_TOKEN", access_token);
             // 模板内容设置
             TemplateMessage templateMessage = new TemplateMessage();
-            templateMessage.setTemplateId(WeChatUtil.INQUIRY_TEMPLATE_ID);
-            templateMessage.setUrl("https://www.usoftmall.com/mobile/center/vendor/seek?seekType=wait");
+            templateMessage.setTemplate_id(WeChatUtil.INQUIRY_TEMPLATE_ID);
             TemplateDataDetail first = new TemplateDataDetail();
             TemplateDataDetail keyword1 = new TemplateDataDetail();
             TemplateDataDetail keyword2 = new TemplateDataDetail();
@@ -94,6 +93,7 @@ public class WeChatServiceImpl implements WeChatService{
             for (MessageModel messageModel : messages) {
                 User user = userDao.findOne(messageModel.getReceiverUu());
                 if (!StringUtils.isEmpty(user.getOpenId())) {
+                    templateMessage.setUrl("https://www.usoftmall.com/mobile/applyPurchase/list/businessOpportunity?enuu=" + messageModel.getReceiverEnuu());
                     Map<String, TemplateDataDetail> data = new HashMap<>();
                     templateMessage.setTouser(user.getOpenId());
                     keyword1.setValue(messageModel.getName());
@@ -104,8 +104,8 @@ public class WeChatServiceImpl implements WeChatService{
                     data.put("keyword2", keyword2);
                     keyword3.setColor("#173177");
                     keyword3.setValue("点击查看详情");
-                    data.put("keyword2", keyword2);
-                    first.setValue("尊敬的用户,您有一条新的询价单");
+                    data.put("keyword3", keyword3);
+                    first.setValue("尊敬的用户,您所在的企业(" + messageModel.getName() + ")有一条新的询价单");
                     remark.setValue(messageModel.getContent());
                     data.put("first", first);
                     data.put("remark", remark);

+ 8 - 6
src/main/java/com/uas/platform/b2c/fa/payment/service/impl/InstallmentServiceImpl.java

@@ -113,7 +113,7 @@ public class InstallmentServiceImpl implements InstallmentService{
             throw new IllegalOperatorException("此订单不存在,请重新确认信息");
 
         installment.setOrderId(order.getId());
-        installment.setPrice(purchase.getPrice());
+        installment.setPrice(purchase.getEnsurePrice());
         installment.setInstallmentDetails(installmentDetails);
 
         // 保存分期信息
@@ -171,7 +171,7 @@ public class InstallmentServiceImpl implements InstallmentService{
             throw new IllegalOperatorException("此订单不存在,请重新确认信息");
 
         installment.setOrderId(order.getId());
-        installment.setPrice(purchase.getPrice());
+        installment.setPrice(purchase.getEnsurePrice());
         installment.setInstallmentDetails(installmentDetails);
 
         oldInstallment.getInstallmentDetails().clear();
@@ -275,14 +275,16 @@ public class InstallmentServiceImpl implements InstallmentService{
 
         Installment installment = installmentDao.findByPurchaseId(purchase.getId());
 
-        Double total = purchase.getPrice();
+        Double total = purchase.getEnsurePrice();
         Double installTotal = installment.getPrice();
         Double dvalue = 0d;
 
         if (NumberUtil.compare(total, installTotal) == 1) {
             InstallmentDetail installmentDetail = installmentDetailDao.findByInstallmentIdAndDetno(installment.getId(), installment.getCount().shortValue());
-            installmentDetail.setPrice(NumberUtil.pricesScaleTwo(total - installTotal + installmentDetail.getPrice()));
-            installmentDetailDao.save(installmentDetail);
+            if (installmentDetail != null) {
+                installmentDetail.setPrice(NumberUtil.pricesScaleTwo(total - installTotal + installmentDetail.getPrice()));
+                installmentDetailDao.save(installmentDetail);
+            }
         }
 
 
@@ -316,7 +318,7 @@ public class InstallmentServiceImpl implements InstallmentService{
             }
         }
 
-        installment.setPrice(purchase.getPrice());
+        installment.setPrice(purchase.getEnsurePrice());
         installment.setCount(installment.getInstallmentDetails().size());
 
         return installmentDao.save(installment);

+ 16 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/model/GoodsSimple.java

@@ -221,6 +221,12 @@ public class GoodsSimple {
 	@Column(name = "go_isbreakup", columnDefinition = "TINYINT(1)")
 	private Boolean breakUp;
 
+	/**
+	 * 规格信息
+	 */
+	@Column(name ="go_spec")
+	private String spec;
+
 	/**
 	 * 包装
 	 */
@@ -518,6 +524,15 @@ public class GoodsSimple {
 		return this;
 	}
 
+	public String getSpec() {
+		return spec;
+	}
+
+	public GoodsSimple setSpec(String spec) {
+		this.spec = spec;
+		return this;
+	}
+
 	public GoodsSimple() {
 		
 	}
@@ -575,6 +590,7 @@ public class GoodsSimple {
 		this.status = goods.getStatus();
 		this.perQty = goods.getPerQty();
 		this.breakUp = goods.getBreakUp();
+		this.spec = goods.getSpec();
 	}
 
 	public Short getB2cDeliveryDemMaxTime() {

+ 10 - 2
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java

@@ -2548,7 +2548,14 @@ public class GoodsServiceImpl implements GoodsService {
             }
         }
         if (StringUtils.hasText(code)) {
-            pageInfo.expression(like("code", code, false));
+            CriterionExpression[] expressions = new CriterionExpression[5];
+            expressions[0] = PredicateUtils.like("code", code, true, true);
+            expressions[1] = PredicateUtils.like("brandNameCn", code, true, true);
+            expressions[2] = PredicateUtils.like("brandNameEn", code, true, true);
+            expressions[3] = PredicateUtils.like("kindNameCn", code, true, true);
+            expressions[4] = PredicateUtils.like("spec", code, true, true);
+            LogicalExpression logicalExpression = PredicateUtils.or(expressions);
+            pageInfo.expression(logicalExpression);
         }
         Page<Goods> goodsPage = goodsDao.findAll(new Specification<Goods>() {
             @Override
@@ -3049,11 +3056,12 @@ public class GoodsServiceImpl implements GoodsService {
 
         pageInfo.filter("status", 601, true);
         if (StringUtils.hasText(keyword)) {
-            CriterionExpression[] expressions = new CriterionExpression[4];
+            CriterionExpression[] expressions = new CriterionExpression[5];
             expressions[0] = PredicateUtils.like("code", keyword, true, true);
             expressions[1] = PredicateUtils.like("brandNameCn", keyword, true, true);
             expressions[2] = PredicateUtils.like("brandNameEn", keyword, true, true);
             expressions[3] = PredicateUtils.like("kindNameCn", keyword, true, true);
+            expressions[4] = PredicateUtils.like("spec", keyword, true, true);
             LogicalExpression logicalExpression = PredicateUtils.or(expressions);
             pageInfo.expression(logicalExpression);
         }

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

@@ -84,6 +84,12 @@ public class Component implements Serializable {
 	@Column(name = "cmp_encapsulation")
 	private String encapsulation;
 
+	/**
+	 * 规格信息
+	 */
+	@Column(name = "cmp_spec")
+	private String spec;
+
 	/**
 	 * 器件的标准单位
 	 */
@@ -330,6 +336,16 @@ public class Component implements Serializable {
 	// @Column(name = "cmp_wastageqty")
 	// private Double wastageQty;
 
+
+	public String getSpec() {
+		return spec;
+	}
+
+	public Component setSpec(String spec) {
+		this.spec = spec;
+		return this;
+	}
+
 	public Long getId() {
 		return id;
 	}

+ 15 - 0
src/main/java/com/uas/platform/b2c/prod/product/component/modal/ComponentInfo.java

@@ -204,6 +204,12 @@ public class ComponentInfo implements Serializable {
 	@Column(name = "cmp_description", length = 4000)
 	private String description;
 
+	/**
+	 * 规格信息
+	 */
+	@Column(name = "cmp_spec")
+	private String spec;
+
 	/**
 	 * 废料数量
 	 */
@@ -501,6 +507,15 @@ public class ComponentInfo implements Serializable {
 		return this;
 	}
 
+	public String getSpec() {
+		return spec;
+	}
+
+	public ComponentInfo setSpec(String spec) {
+		this.spec = spec;
+		return this;
+	}
+
 	/*
 	 * public ComponentInfoUas convertUas(ComponentInfo info){ ComponentInfoUas uas = new ComponentInfoUas(); uas.setAttach(info.getAttach()); uas.setBrandid(info.getBrandid()); uas.setCode(info.getCode()); uas.setExcessQty(info.getExcessQty()); uas.setId(info.getId()); uas.setImg(info.getImg()); uas.setKindid(info.getKindid()); uas.setMaxDelivery(info.getMaxDelivery()); uas.setMinBuyQty(info.getMinBuyQty()); uas.setMinDelivery(info.getMinDelivery()); uas.setMinPrice(info.getMinPrice());
 	 * uas.setOrderNumber(info.getOrderNumber()); uas.setOrderQty(info.getOrderQty()); uas.setOriginalQty(info.getOriginalQty()); uas.setPackaging(info.getPackaging()); uas.setReserve(info.getReserve()); uas.setReserveType(info.getReserveType()); uas.setSampleQty(info.getSampleQty()); uas.setSpec(info.getSpec()); uas.setUnit(info.getUnit()); uas.setUuid(info.getUuid()); uas.setWeight(info.getWeight());; return uas; }

+ 7 - 5
src/main/java/com/uas/platform/b2c/prod/store/api/CommodityController.java

@@ -1,8 +1,6 @@
 package com.uas.platform.b2c.prod.store.api;
 
 import com.alibaba.fastjson.JSON;
-import com.uas.platform.b2c.common.account.model.User;
-import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.prod.commodity.model.Goods;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
 import com.uas.platform.b2c.prod.product.component.modal.Component;
@@ -16,10 +14,14 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -105,7 +107,7 @@ public class CommodityController {
 	 *
 	 * @param storeid	店铺企业UUID
 	 * @param kindUuid	类目UUID
-	 * @param code		搜索型号
+	 * @param code		搜索型号  -- 2018年6月5日 11:44:02  扩展  作为关键词 搜索 品牌、类目、型号、规格
 	 * @param params	分页信息
 	 */
 	@RequestMapping(value = "/commodities", method = RequestMethod.GET, params = "origin=store", produces = "application/json")

+ 4 - 0
src/main/java/com/uas/platform/b2c/prod/store/facade/impl/StoreInFacadeImpl.java

@@ -80,6 +80,7 @@ public class StoreInFacadeImpl implements StoreInFacade {
 		}
 		store.setQualifications(qualifications);
         if ("BASIC_INFO".equals(kind)) {
+        	String description = newStoreInfo.getEnterprise().getDescription();
             Enterprise enter = enterpriseDao.findByUu(store.getEnUU());
             enter.setEnAddress(store.getEnterprise().getEnAddress());
             enter.setEnTel(store.getEnterprise().getEnTel());
@@ -87,6 +88,7 @@ public class StoreInFacadeImpl implements StoreInFacade {
             enter.setEnPhone(store.getEnterprise().getEnPhone());
             enter.setEnWeixin(store.getEnterprise().getEnWeixin());
             enter.setEnQQ(store.getEnterprise().getEnQQ());
+            enter.setDescription(description);
             enterpriseDao.save(enter);
         }
         store = storeInDao.save(store);
@@ -111,6 +113,7 @@ public class StoreInFacadeImpl implements StoreInFacade {
 			}
 			store.setStoreShortName(StringUtils.hasText(newStoreInfo.getStoreShortName()) ? newStoreInfo.getStoreShortName() : null);
 			store.setStoreName(StringUtils.hasText(newStoreInfo.getStoreName()) ? newStoreInfo.getStoreName() : null);
+			store.setStoreApplication(StringUtils.hasText(newStoreInfo.getStoreApplication()) ? newStoreInfo.getStoreApplication() : null);
 			store.setDescription(newStoreInfo.getDescription());
 			EnterpriseSimple enterprise = store.getEnterprise();
             EnterpriseSimple newEnterprise = newStoreInfo.getEnterprise();
@@ -121,6 +124,7 @@ public class StoreInFacadeImpl implements StoreInFacade {
             enterprise.setEnPhone(newEnterprise.getEnPhone());
             enterprise.setEnWeixin(newEnterprise.getEnWeixin());
             enterprise.setEnQQ(newEnterprise.getEnQQ());
+            enterprise.setDescription(newEnterprise.getDescription());
 			store.setEnterprise(enterprise);
 			return null;
 		}

+ 15 - 1
src/main/java/com/uas/platform/b2c/prod/store/model/StoreIn.java

@@ -55,6 +55,12 @@ public class StoreIn implements Serializable {
 	@Column(name = "st_short_name")
 	private String storeShortName;
 
+	/**
+	 * 应用领域
+	 */
+	@Column(name="st_application",length = 100)
+	private String storeApplication;
+
 	/**
 	 *	店铺LOGO URL
 	 */
@@ -68,7 +74,7 @@ public class StoreIn implements Serializable {
 	private String bannerUrl;
 
 	/**
-	 * 简介
+	 * 主营产品
 	 */
 	@Column(name = "st_description", length = 1000)
 	private String description;
@@ -191,6 +197,14 @@ public class StoreIn implements Serializable {
 	public StoreIn() {
 	}
 
+	public String getStoreApplication() {
+		return storeApplication;
+	}
+
+	public void setStoreApplication(String storeApplication) {
+		this.storeApplication = storeApplication;
+	}
+
 	public Long getId() {
 		return id;
 	}

+ 15 - 0
src/main/java/com/uas/platform/b2c/trade/order/model/OrderDetail.java

@@ -354,6 +354,12 @@ public class OrderDetail extends Document implements Serializable{
 	 */
 	@Column(name = "go_usd_tax_rate")
 	private Double usdTaxRate;
+
+	/**
+	 * 规格信息
+	 */
+	@Column(name = "go_spec")
+	private String spec;
 	
 	/**
 	 * rmb分段报价
@@ -1808,6 +1814,15 @@ public class OrderDetail extends Document implements Serializable{
 		return this;
 	}
 
+	public String getSpec() {
+		return spec;
+	}
+
+	public OrderDetail setSpec(String spec) {
+		this.spec = spec;
+		return this;
+	}
+
 	/**
 	 * 计算确认总价
 	 *

+ 16 - 0
src/main/java/com/uas/platform/b2c/trade/order/model/PurchaseDetail.java

@@ -330,6 +330,12 @@ public class PurchaseDetail extends Document {
 	@Column(name = "go_b2cmindelivery")
 	private Short b2cMinDelivery;
 
+	/**
+	 * 规格字段
+	 */
+	@Column(name = "go_spec")
+	private String spec;
+
 
 	/********************************* 非持久化字段 *********************************/
 
@@ -1131,6 +1137,7 @@ public class PurchaseDetail extends Document {
 		this.b2cMinDelivery = oDetail.getB2cMinDelivery();
 		this.remark = oDetail.getRemark();
 		this.goodsnumber = oDetail.getGoodsnumber();
+		this.spec = oDetail.getSpec();
 	}
 
 	/**
@@ -1537,6 +1544,15 @@ public class PurchaseDetail extends Document {
 		return null;
 	}
 
+	public String getSpec() {
+		return spec;
+	}
+
+	public PurchaseDetail setSpec(String spec) {
+		this.spec = spec;
+		return this;
+	}
+
 	@Override
 	public String toString() {
 		return "PurchaseDetail [id=" + id + ", detno=" + detno + ", detailid=" + detailid + ", orderdetailid=" + orderdetailid + ", batchCode=" + batchCode + ", uuid=" + uuid + ", billStatus="

+ 1 - 0
src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderDetailServiceImpl.java

@@ -201,6 +201,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
 		orderDetail.setStoreid(goods.getStoreid());
 		orderDetail.setStoreName(goods.getStoreName());
 		orderDetail.setDeliveryTime(goods);
+		orderDetail.setSpec(goods.getSpec());
 		String detailid = EncodingRulesConstant.ORDER_DETAIL.replace("_TIMESTAP_NUMBER", createNumberService.getTimeNumber("trade$order_detail", 9));
 		orderDetail.setDetailid(detailid);
 		return orderDetail;

+ 1 - 0
src/main/java/com/uas/platform/b2c/trade/presale/controller/CollectionController.java

@@ -164,6 +164,7 @@ public class CollectionController {
 			if (componentInfo != null){
 				Collection store = new Collection();
 				store.setComponentid(componentInfo.getId());
+				store.setSpec(componentInfo.getSpec());
 				store.setUseruu(SystemSession.getUser().getUserUU());
 				if (SystemSession.getUser().getEnterprise() != null){
 					store.setDissociative(Type.ENTERPRISING.value());

+ 1 - 1
src/main/java/com/uas/platform/b2c/trade/presale/facade/impl/CartFacadeImpl.java

@@ -3,7 +3,6 @@ package com.uas.platform.b2c.trade.presale.facade.impl;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.prod.commodity.model.Goods;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
-import com.uas.platform.b2c.prod.product.component.modal.Component;
 import com.uas.platform.b2c.prod.product.component.service.ComponentService;
 import com.uas.platform.b2c.trade.order.type.ResultMapType;
 import com.uas.platform.b2c.trade.presale.facade.CartFacade;
@@ -64,6 +63,7 @@ public class CartFacadeImpl implements CartFacade {
 		cart.setCode(goods.getCode());
 		cart.setKiName(goods.getKindNameCn());
 		cart.setBrName(goods.getBrandNameEn());
+		cart.setSpec(goods.getSpec());
 		cart.setUu(userUU);
 		cart.setEnuu(enUU);
 		ResultMap resultMap1 = cartService.saveCartRecord(cart);

+ 14 - 1
src/main/java/com/uas/platform/b2c/trade/presale/model/Cart.java

@@ -1,6 +1,5 @@
 package com.uas.platform.b2c.trade.presale.model;
 
-import com.uas.platform.b2c.common.account.model.Enterprise;
 import com.uas.platform.b2c.core.utils.NumberUtil;
 import com.uas.platform.b2c.prod.commodity.model.Goods;
 import com.uas.platform.b2c.prod.commodity.model.GoodsSimple;
@@ -218,6 +217,12 @@ public class Cart {
 	@Transient
 	private Integer similarCount;
 
+	/**
+	 * 规格信息
+	 */
+	@Column(name = "cart_spec")
+	private String spec;
+
 	public Long getId() {
 		return id;
 	}
@@ -581,4 +586,12 @@ public class Cart {
 				+ returnInWeek + ", tax=" + tax + ", currencyName=" + currencyName + ", goods=" + goods + "]";
 	}
 
+	public String getSpec() {
+		return spec;
+	}
+
+	public Cart setSpec(String spec) {
+		this.spec = spec;
+		return this;
+	}
 }

+ 15 - 0
src/main/java/com/uas/platform/b2c/trade/presale/model/Collection.java

@@ -81,6 +81,12 @@ public class Collection implements Serializable {
 	@Column(name = "store_dissociative")
 	private Integer dissociative;
 
+	/**
+	 * 规格信息
+	 */
+	@Column(name = "store_spec")
+	private String spec;
+
 	/**
 	 * 收藏类型
 	 */
@@ -196,4 +202,13 @@ public class Collection implements Serializable {
 	public void setDissociative(Integer dissociative) {
 		this.dissociative = dissociative;
 	}
+
+	public String getSpec() {
+		return spec;
+	}
+
+	public Collection setSpec(String spec) {
+		this.spec = spec;
+		return this;
+	}
 }

+ 15 - 0
src/main/java/com/uas/platform/b2c/trade/presale/model/CollectionInfo.java

@@ -56,6 +56,12 @@ public class CollectionInfo implements Serializable{
 	@Column(name = "store_dissociative")
 	private Integer dissociative;
 
+	/**
+	 * 规格信息
+	 */
+	@Column(name = "store_spec")
+	private String spec;
+
 	public Long getUseruu() {
 		return useruu;
 	}
@@ -111,4 +117,13 @@ public class CollectionInfo implements Serializable{
 	public void setDissociative(Integer dissociative) {
 		this.dissociative = dissociative;
 	}
+
+	public String getSpec() {
+		return spec;
+	}
+
+	public CollectionInfo setSpec(String spec) {
+		this.spec = spec;
+		return this;
+	}
 }

+ 1 - 0
src/main/java/com/uas/platform/b2c/trade/presale/service/impl/CartServiceImpl.java

@@ -158,6 +158,7 @@ public class CartServiceImpl implements CartService {
 			cart.setCode(code);
 			cart.setBrName(component.getBrand().getNameCn());
 			cart.setKiName(component.getKind().getNameCn());
+			cart.setSpec(component.getSpec());
 			cart.setImg(component.getImg());
 			// 设置商品信息
 			Goods goods = goodsService.findGoodsByBatchCode(cart.getBatchCode());

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

@@ -102,25 +102,31 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
     /**
      * 模板列
      */
-    private int mallColNum = 6;
+    private final int SEEK_TEMPLATE_COLNUM = 6;
     /**
      * 上限行数
      */
-    private int mallRowNum = 500;
+    private final int MAX_SEEK_NUM = 500;
 
     /**
      * excel列名
      */
-    public static final int CODENUM = 0;
-    public static final int BRANDNUM = 1;
-    public static final int DEADLINENUM = 2;
-    public static final int AMOUNTNUM = 3;
+    // 型号
+    public final int CODENUM = 2;
+    // 品牌
+    public final int BRANDNUM = 0;
+    // 截止日期
+    public final int DEADLINENUM = 4;
+    // 采购数量
+    public final int AMOUNTNUM = 5;
 //    public static final int CURRENCYNUM = 6;
 //    public static final int UNITPRICENUM = 7;
 //    public static final int ENCAPSULATIONNUM = 8;
 //    public static final int PRODUCEDATENUM = 9;
-    public static final int KINDNUM = 4;
-    public static final int SPECNUM = 5;
+    // 类目
+    public final int KINDNUM = 1;
+    // 规格
+    public final int SPECNUM = 3;
 
 
     /**
@@ -136,12 +142,12 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
         Sheet sheet = workbook.getSheetAt(0);
         int colNum = sheet.getRow(0).getPhysicalNumberOfCells();
 
-        if (colNum != mallColNum) {
+        if (colNum != SEEK_TEMPLATE_COLNUM) {
             return new ResultMap(CodeType.PARAMETER_ERROR, "表格模板不正确!请重新下载最新模板");
         }
         int rowNum = sheet.getLastRowNum();
-        if (rowNum > mallRowNum) {
-            return new ResultMap(CodeType.PARAMETER_ERROR, "您上传的信息超过500条,请拆分成2000以再在上传");
+        if (rowNum > MAX_SEEK_NUM) {
+            return new ResultMap(CodeType.PARAMETER_ERROR, "您上传的信息超过500条,请拆分成500以下再在上传");
         }
         // 插入Bom求购中
         SeekPurchaseBom seekPurchaseBom = new SeekPurchaseBom();
@@ -151,7 +157,6 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
         seekPurchaseBom = seekPurchaseBomDao.save(seekPurchaseBom);
         // 获取第一行的信息
         Row headerRow = sheet.getRow(0);
-        int blankNum = 0;
         if (headerRow != null) {
             // 验证是否为商城模板
             if (!vaildTemplete(headerRow)) {
@@ -165,10 +170,9 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
             for (int r = startRow; r <= rowNum; r++) {
                 Row row = sheet.getRow(r);
                 if (row != null) {
-
                     SeekPurchaseByBatch seekPurchaseByBatch = new SeekPurchaseByBatch();
-                    blankNum = convertValueToSeekPurchaseByBatch(row, seekPurchaseByBatch, r);
-                    if (blankNum >= 3) {
+                    int blankNum = convertValueToSeekPurchaseByBatch(row, seekPurchaseByBatch, r);
+                    if (blankNum >= 4) {
                         continue;
                     }
                     seekPurchaseByBatch.setBomId(seekPurchaseBom.getId());
@@ -198,9 +202,6 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
         Object brandCellObj = readWorkBookCell(row.getCell(BRANDNUM), Cell.CELL_TYPE_STRING,
                 0, BRANDNUM);
         String brandString = StringUtilB2C.getStr(brandCellObj);
-//        Object produceDateCellObj = readWorkBookCell(row.getCell(PRODUCEDATENUM), Cell.CELL_TYPE_STRING,
-//                0, PRODUCEDATENUM);
-//        String produceDateString = StringUtilB2C.getStr(produceDateCellObj);
         if ("只能填数字、英文、英文特殊符号".equals(codeString) || "请勿用中文特殊符号".equals(brandString)) {
             return true;
         }
@@ -228,11 +229,6 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
         if (!"截止时间".equals(StringUtilB2C.getStr(deadlineCellObj))) {
             return false;
         }
-//        Object produceDateCellObj = readWorkBookCell(headerRow.getCell(PRODUCEDATENUM), Cell.CELL_TYPE_STRING,
-//                0, PRODUCEDATENUM);
-//        if (!"生产日期".equals(StringUtilB2C.getStr(produceDateCellObj))) {
-//            return false;
-//        }
         return true;
     }
 
@@ -306,6 +302,15 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
             }
         }
 
+        // 类目
+        Object kindValue = readWorkBookCell(row.getCell(KINDNUM), Cell.CELL_TYPE_STRING,
+                rowNum, KINDNUM);
+        if (!StringUtils.isEmpty(kindValue)) {
+            seekPurchaseByBatch.setKind(convert(kindValue, 50));
+        } else {
+            result += 1;
+        }
+
         // 求购数量
         Object amountValue = readWorkBookCell(row.getCell(AMOUNTNUM), Cell.CELL_TYPE_STRING,
                 rowNum, AMOUNTNUM);
@@ -386,13 +391,6 @@ public class SeekPurchaseBomServiceImpl implements SeekPurchaseBomService {
         if (!StringUtils.isEmpty(specValue)) {
             seekPurchaseByBatch.setSpec(convert(specValue, 50));
         }
-
-        // 类目
-        Object kindValue = readWorkBookCell(row.getCell(KINDNUM), Cell.CELL_TYPE_STRING,
-                rowNum, KINDNUM);
-        if (!StringUtils.isEmpty(kindValue)) {
-            seekPurchaseByBatch.setKind(convert(kindValue, 50));
-        }
         return result;
     }
 

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


+ 1 - 1
src/main/webapp/resources/js/usercenter/controllers/forstore/bom_detail_ctrl.js

@@ -687,7 +687,7 @@ define(['app/app', 'clipboard', 'QRCode'], function (app, clipboard, QRCode) {
                     file: file,
                     method: 'POST'
                   }).success(function (data) {
-                    window.open("http://10.1.51.90:3000/applyPurchase/"
+                    window.open("applyPurchase/"
                         + data.data);
                   }).error(function (response) {
                   });

+ 1 - 0
src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_cart_ctrl.js

@@ -73,6 +73,7 @@ define(["app/app", 'jquery-summernote'], function(app) {
 						$scope.cartMap.push(obj);
 					}
 				});
+				console.log($scope.cartMap)
 				$scope.cartIsEmpty = !$scope.carts.length ? true : false;
 				//设置全选的复选框
 				$scope.isChooseAll = $scope.isAllSelect($scope.carts);

+ 8 - 8
src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_order_ctrl.js

@@ -285,14 +285,14 @@ define(['app/app'], function (app) {
 			606: true
 		};
 
-		var getRecommendComps = function (userUU, usedFor, pageable) {
-			Recommendation.getRecommendComps({page: pageable.page, size: pageable.size}, function (data) {
-				$scope.recommendComps = data.content;
-			}, function (error) {
-				toaster.pop('error', '获取推荐器件失败');
-			})
-		};
-		getRecommendComps(null, null, {page: 0, size: 12});
+		// var getRecommendComps = function (userUU, usedFor, pageable) {
+		// 	Recommendation.getRecommendComps({page: pageable.page, size: pageable.size}, function (data) {
+		// 		$scope.recommendComps = data.content;
+		// 	}, function (error) {
+		// 		toaster.pop('error', '获取推荐器件失败');
+		// 	})
+		// };
+		// getRecommendComps(null, null, {page: 0, size: 12});
 
 		// 重新加载数据
 		$scope.reload = function () {

+ 1 - 1
src/main/webapp/resources/js/usercenter/controllers/forstore/messagePersonalCtrl.js

@@ -377,7 +377,7 @@ define(['app/app'], function(app) {
                         angular.forEach($scope.messageCurrent, function (message) {
                             message.content = $sce.trustAsHtml(message.content);
                             if(message.type =="MALL跳转卖家待报价页面"){
-                                message.url='/vendor#/seekPurchase';
+                                message.url='/vendor#/seekPurchase?type=1';
                             }else if (message.type =="MALL公共询价"){
                                 message.url='/user#/seekPurchase';
                             }else if (message.type =="商城公共询价采纳结果"){

+ 46 - 37
src/main/webapp/resources/js/usercenter/controllers/forstore/seek_purchase_ctrl.js

@@ -98,22 +98,24 @@ define(['app/app', 'clipboard', 'QRCode'], function (app, clipboard, QRCode) {
             }
           $scope.toogleTab('waitOffer');
           $scope.applyObj = {
-            code: '',
-            brand: '',
-            unitPrice: '',
-            currency: 'RMB',
-            encapsulation: '',
-            produceDate: '',
-            amount: '',
-            deadline: ''
+              code: '',
+              brand: '',
+              unitPrice: '',
+              currency: 'RMB',
+              encapsulation: '',
+              produceDate: '',
+              amount: '',
+              deadline: '',
+              prodTitle: ''
           };
           $scope.validObj = {
-            code: true,
-            brand: true,
-            unitPrice: true,
-            amount: true,
-            deadline: true,
-            spec: true
+              code: true,
+              brand: true,
+              unitPrice: true,
+              amount: true,
+              deadline: true,
+              spec: true,
+              prodTitle: true
           };
 
           // 买家求购列表
@@ -229,6 +231,13 @@ define(['app/app', 'clipboard', 'QRCode'], function (app, clipboard, QRCode) {
             }
             return $scope.validObj.brand;
           }
+          $scope.checkProdTitle = function () {
+              $scope.validObj.prodTitle = $scope.applyObj.prodTitle && $scope.applyObj.prodTitle !== '';
+              if (!$scope.validObj.prodTitle) {
+                  toaster.pop('error', '类目不能为空');
+              }
+              return $scope.validObj.prodTitle;
+          }
           $scope.checkUnitPrice = function () {
             $scope.validObj.unitPrice = ($scope.applyObj.unitPrice === '' || !$scope.applyObj.unitPrice ) ? true
                 : $scope.applyObj.unitPrice > 0 && $scope.applyObj.unitPrice
@@ -338,8 +347,8 @@ define(['app/app', 'clipboard', 'QRCode'], function (app, clipboard, QRCode) {
             return $scope.validObj.amount;
           }
           $scope.checkAll = function () {
-            return $scope.checkCode() && $scope.checkBrand() && $scope.checkDeadline()
-                && $scope.checkUnitPrice() && $scope.checkAmount() && $scope.checkSpec();
+            return $scope.checkBrand() && $scope.checkProdTitle() && $scope.checkCode() && $scope.checkDeadline()
+                && $scope.checkSpec() && $scope.checkAmount();
           }
           $scope.checkDeadline = function () {
             $scope.validObj.deadline = $scope.applyObj.deadline
@@ -378,6 +387,7 @@ define(['app/app', 'clipboard', 'QRCode'], function (app, clipboard, QRCode) {
               inquiryItem.currency = $scope.applyObj.unitPrice ? $scope.applyObj.currency : null;
               inquiryItem.cmpCode = $scope.applyObj.code.toUpperCase();
               inquiryItem.unitPrice = $scope.applyObj.unitPrice;
+              inquiryItem.spec = $scope.applyObj.spec;
               inquiryItem.produceDate = $scope.applyObj.produceDate;
               inquiryItem.date = new Date();
               inquiryItem.endDate = $scope.applyObj.deadline;
@@ -413,24 +423,21 @@ define(['app/app', 'clipboard', 'QRCode'], function (app, clipboard, QRCode) {
           $scope.release = function () {
             // 校验
             if ($scope.checkAll()) {
-                if (!$scope.applyObj.prodTitle || $scope.applyObj.prodTitle.length === 0) {
-                    var materialUrl = seekUrl;
-                    if (seekUrl == 'https://api-inquiry.usoftmall.com') {
-                        materialUrl = 'https://api-product.usoftmall.com/';
-                    }
-                    $http({
-                        method: 'get',
-                        dataType: 'json',
-                        url: materialUrl + '/productuser/match/getKind',
-                        params: {cmpCode: $scope.applyObj.code, brand: $scope.applyObj.brand}
-                    }).success(function (data) {
-                        startRelease(data && data.length ? data : '其他');
-                    }).error(function (response) {
-                        toaster.pop('error', response || '获取关联类目失败');
-                    });
-                } else {
-                    startRelease();
+                var materialUrl = seekUrl;
+                if (seekUrl == 'https://api-inquiry.usoftmall.com') {
+                    materialUrl = 'https://api-product.usoftmall.com/';
                 }
+                $http({
+                    method: 'get',
+                    dataType: 'json',
+                    url: materialUrl + '/productuser/match/getKind',
+                    params: {cmpCode: $scope.applyObj.code, brand: $scope.applyObj.brand}
+                }).success(function (data) {
+                    startRelease(data && data.length ? data : $scope.applyObj.prodTitle);
+                }).error(function (response) {
+                    startRelease($scope.applyObj.prodTitle);
+                    toaster.pop('error', response || '获取关联类目失败');
+                });
             } else {
               if (!$scope.validObj.deadline) {
                 toaster.pop('error', '截止日期不能为空');
@@ -488,15 +495,16 @@ define(['app/app', 'clipboard', 'QRCode'], function (app, clipboard, QRCode) {
             }
           }
           // 采纳报价
-          $scope.adopt = function (id) {
+          $scope.adopt = function (of) {
             $http({
               method: 'POST',
               dataType: 'json',
               url: seekUrl + '/inquiry/buyer/adopt',
-              params: {id: id, status: 1}
+              params: {id: of.id, status: 1}
             }).success(function (data) {
               toaster.pop('success', '采纳报价成功');
-              $scope.seekPurchaseTableParams.reload();
+                of.agreed = 1;
+              // $scope.seekPurchaseTableParams.reload();
             }).error(function (response) {
               toaster.pop('error', response);
             });
@@ -528,7 +536,8 @@ define(['app/app', 'clipboard', 'QRCode'], function (app, clipboard, QRCode) {
                   }).success(function (data) {
                       toaster.pop('refuse', '已拒绝报价');
                       $scope.setShowCurrentRefuseOffer(false);
-                      $scope.seekPurchaseTableParams.reload();
+                      $scope.currentRefuseOffer.agreed = 0;
+                      // $scope.seekPurchaseTableParams.reload();
                   }).error(function (response) {
                       toaster.pop('error', response);
                   });

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

@@ -337,7 +337,7 @@ define(['app/app'], function(app) {
                         angular.forEach($scope.messageCurrent, function (message) {
                             message.content = $sce.trustAsHtml(message.content);
                             if(message.type =="MALL跳转卖家待报价页面"){
-                                message.url='/vendor#/seekPurchase';
+                                message.url='/vendor#/seekPurchase?type=1';
                             }else if (message.type =="MALL公共询价"){
                                 message.url='/user#/seekPurchase';
                             }else if (message.type =="商城公共询价采纳结果"){

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

@@ -462,7 +462,7 @@ define(['app/app'], function(app) {
 					$scope.installmentBox = false
 				}
 				$scope.purchase.purchaseHistory = angular.fromJson($scope.purchase.statushistory);
-				$scope.purchase.currentTotal = $scope.purchase.price;
+				$scope.purchase.currentTotal = $scope.purchase.price + $scope.purchase.fare;
 				if ($scope.purchase.jsonRule){
 					$scope.rule = angular.fromJson($scope.purchase.jsonRule);
 				}

+ 23 - 14
src/main/webapp/resources/js/vendor/controllers/forstore/seek_purchase_ctrl.js

@@ -1,14 +1,15 @@
 define(['app/app'], function (app) {
   app.register.controller('seekPurchaseCtrl',
-      ['$scope', '$rootScope', '$stateParams', '$state', 'toaster',
+      ['$scope', '$location', '$rootScope', '$stateParams', '$state', 'toaster',
         'seekPurchase', 'BaseService', 'ngTableParams', '$modal', '$upload', '$http',
-        function ($scope, $rootScope, $stateParams, $state, toaster,
+        function ($scope, $location, $rootScope, $stateParams, $state, toaster,
             seekPurchase, BaseService, ngTableParams, $modal, $upload, $http) {
           document.title = '求购询价-优软商城';
           $rootScope.active = 'vendor_seek_purchase';
           $scope.seekPurchaseRate = {};
           seekPurchase.getSeekUrl({}, function(data) {
             var seekUrl = data.url;
+            seekUrl = 'http://218.17.158.219:24000';
           $scope.initInquiryItem = function () {
             $scope.validSayPrice = {
               leadtime: false,
@@ -19,7 +20,12 @@ define(['app/app'], function (app) {
           $scope.initInquiryItem();
 
             //卖家待报价推送信息,self为与我相关,all为全部
-            $scope.vendorType = 'self';
+            if ($location.search().type === '1') {
+              $scope.vendorType = 'self';
+              console.log(1)
+            } else {
+              $scope.vendorType = 'all';
+            }
 
           // 获取当前卖家求购推送列表
           $scope.seekPurchaseTableParams = new ngTableParams({
@@ -44,14 +50,16 @@ define(['app/app'], function (app) {
                 $scope.isSearch = false;
               }
               var isSelf = $scope.vendorType == 'self';
-              if (!isSelf) {
-                param.enUU = $scope.userInfo.enterprise.uu;
-                param.userUU = $scope.userInfo.userUU;
-              } else {
-                param.enuu = $scope.userInfo.enterprise.uu;
-                param.useruu = $scope.userInfo.userUU;
-              }
-              var target = isSelf ? '/inquiry/sale/remind' : '/inquiry/public';
+              // if (!isSelf) {
+              //   param.enUU = $scope.userInfo.enterprise.uu;
+              //   param.userUU = $scope.userInfo.userUU;
+              // } else {
+              //   param.enuu = $scope.userInfo.enterprise.uu;
+              //   param.useruu = $scope.userInfo.userUU;
+              // }
+              param.enuu = $scope.userInfo.enterprise.uu;
+              param.useruu = $scope.userInfo.userUU;
+              var target = isSelf ? '/inquiry/sale/remind' : '/inquiry/sale/enremind';
               $http({
                 method: 'get',
                 dataType: 'json',
@@ -196,9 +204,10 @@ define(['app/app'], function (app) {
               if (!$scope.inquiryItem.currency) {
                 $scope.inquiryItem.currency = $scope.seekCurrency[0];
               }
-              if ($scope.vendorType == 'self') {
-                  $scope.inquiryItem.id = $scope.inquiryItem.itemId;
-              }
+              // if ($scope.vendorType == 'self') {
+              //     $scope.inquiryItem.id = $scope.inquiryItem.itemId;
+              // }
+              $scope.inquiryItem.id = $scope.inquiryItem.itemId;
               if (seekUrl == 'https://api-inquiry.usoftmall.com') {
                 seekPurchase.saveOfferProd($scope.inquiryItem, function (data) {
                   toaster.pop('success', '报价成功');

+ 8 - 8
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_order_ctrl.js

@@ -1106,14 +1106,14 @@ define(['app/app'], function (app) {
             });
         };
 
-        var getRecommendComps = function (userUU, usedFor, pageable) {
-            Recommendation.getRecommendComps({page: pageable.page, size: pageable.size}, function (data) {
-                $scope.recommendComps = data.content;
-            }, function (error) {
-                toaster.pop('error', '获取推荐器件失败', error);
-            })
-        };
-        getRecommendComps(null, null, {page: 0, size: 12});
+        // var getRecommendComps = function (userUU, usedFor, pageable) {
+        //     Recommendation.getRecommendComps({page: pageable.page, size: pageable.size}, function (data) {
+        //         $scope.recommendComps = data.content;
+        //     }, function (error) {
+        //         toaster.pop('error', '获取推荐器件失败', error);
+        //     })
+        // };
+        // getRecommendComps(null, null, {page: 0, size: 12});
 
 
         // 根据输入单号搜索单据

+ 7 - 4
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_store_maintain_ctrl.js

@@ -75,6 +75,7 @@ define(['app/app'], function (app) {
 			$scope.sampleStore.storeShortName = $scope.storeInfo.storeShortName;
             $scope.sampleStore.storeName = $scope.storeInfo.storeName;
 			$scope.sampleStore.description = $scope.storeInfo.description;
+			$scope.sampleStore.storeApplication = $scope.storeInfo.storeApplication;
 
             $scope.sampleStore.enPhone = '';
             $scope.sampleStore.enWeixin = '';
@@ -170,6 +171,7 @@ define(['app/app'], function (app) {
 				$scope.sampleStore.description = $scope.storeInfo.description;
 				$scope.sampleStore.enterprise = angular.copy($scope.storeInfo.enterprise);
 				$scope.sampleStore.enterprise.address = $scope.sampleStore.enterprise.address;
+				$scope.sampleStore.storeApplication = $scope.storeInfo.storeApplication;
 				return $scope.closeEdit(module);
 			}
 			if (module == 'QUALIFICATIONS') {
@@ -273,10 +275,10 @@ define(['app/app'], function (app) {
 				toaster.pop('error', '企业官网地址不能为空');
 				return false;
 			}*/
-			if (!$scope.sampleStore.enterprise.address || $scope.sampleStore.enterprise.address == '') {
-				toaster.pop('error', '店铺地址不能为空');
-				return false;
-			}
+			// if (!$scope.sampleStore.enterprise.address || $scope.sampleStore.enterprise.address == '') {
+			// 	toaster.pop('error', '店铺地址不能为空');
+			// 	return false;
+			// }
 			if (!$scope.sampleStore.enterprise.enTel || $scope.sampleStore.enterprise.enTel == '') {
 				toaster.pop('error', '请输入正确的电话号码');
 				return false;
@@ -305,6 +307,7 @@ define(['app/app'], function (app) {
             store.storeName = $scope.sampleStore.storeName;
 			store.description = $scope.sampleStore.description;
 			store.enterprise = angular.copy($scope.sampleStore.enterprise);
+			store.storeApplication = $scope.sampleStore.storeApplication;
 			saveChanges(store, 'BASIC_INFO');
 		};
 

+ 1 - 1
src/main/webapp/resources/view/common/site-nav.html

@@ -215,7 +215,7 @@
         </li>
         <li><a href=".">商城首页</a></li>
         <li ng-if="userInfo"><a href="user#/home">买家中心</a></li>
-        <li ng-if="userInfo.enterprise && userInfo.enterprise.isVendor == 313"><a href="vendor">卖家中心</a></li>
+        <li ng-if="userInfo.enterprise && userInfo.enterprise.isVendor == 313"><a href="vendor#/index">卖家中心</a></li>
         <li ng-if="userInfo && !userInfo.enterprise" ><a href="./personalMaterial">卖家中心</a></li>
         <li ng-if="userInfo && userInfo.enterprise && userInfo.enterprise.isVendor != 313" ><a href="./register-saler">卖家中心</a></li>
         <li><a href="help/home" target="_blank">帮助中心</a></li>

+ 2 - 1
src/main/webapp/resources/view/usercenter/componentStore.html

@@ -79,7 +79,7 @@ td {
 }
 .collect-item{
     width: 193px;
-    height: 210px;
+    height: 222px;
     float:left;
     margin:8px 4px;
 	border: 1px solid #d8d8d8;
@@ -276,6 +276,7 @@ td {
 												<p ng-bind="item.componentinfo.brand.nameEn">
 												<p ng-bind="item.componentinfo.kind.nameCn">
 												<p ng-bind="item.componentinfo.code"></p>
+											  <p ng-bind="item.componentinfo.spec"></p>
                     </div> 
                 </a>
                 <span class="collect-delete" ng-click="cancleStore(item.id)" ng-show="show && !isBatch"><i class="fa fa-trash fa-2x"></i></span>      

+ 2 - 1
src/main/webapp/resources/view/usercenter/forstore/buyer_cart.html

@@ -664,12 +664,13 @@
 								<div class="pro_xq">
 									<a href="store/productDetail/{{::cart.batchCode}}" target="_blank">
                                         <img ng-src="{{cart.img || 'static/img/store/common/default.png'}}" width="60" height="60"/></a>
-									<div class="car_pro_xq">
+									<div class="car_pro_xq" style="padding-top: 10px">
 											<i class="text-hidden" ng-if="!cart.uuid">品牌:<a ng-bind="::cart.goods.brandNameEn || '-'" title="{{::cart.goods.brandNameEn}}" class="unstand"></a></i>
 									   <i class="text-hidden" ng-if="cart.uuid">品牌:<a href="product/brand/{{::cart.goods.branduuid}}/" target="_blank" ng-bind="::cart.goods.brandNameEn" title="{{::cart.goods.brandNameEn}}"></a></i>
 									    <i class="text-hidden" ng-if="!cart.uuid">类目:<a ng-bind="::cart.kiName || '-'" title="{{::cart.kiName}}" class="unstand"></a></i>
 									    <i class="text-hidden" ng-if="cart.uuid">类目:<a href="product/kind/{{cart.goods.kindUuid}}" target="_blank" ng-bind="::cart.kiName" title="{{::cart.kiName}}"></a></i>
 									    <i class="text-hidden">型号:<a href="store/productDetail/{{::cart.batchCode}}" target="_blank" ng-bind="::cart.code || '-'" title="{{::cart.code}}"></a></i>
+											<i class="text-hidden">规格:<a ng-bind="::cart.goods.spec || '-'" title="{{::cart.goods.spec}}" class="unstand"></a></i>
 									   </div>
 								</div>
                         	</span>

+ 5 - 2
src/main/webapp/resources/view/usercenter/forstore/buyer_order.html

@@ -903,11 +903,14 @@
 							<div class="pro_xq">
 								<a href="store/productDetail/{{::detail.batchCode}}" target="_blank"><img ng-src="{{detail.img || 'static/img/store/common/default.png'}}" width="55" height="55"/></a>
 								<p>
-									品牌:<a href="product/brand/{{::detail.branduuid}}/" target="_blank" ng-if="detail.uuid"><em ng-bind="::detail.brName || '-'" title="{{::detail.brName}}"></em></a><br/>
+									品牌:<a href="product/brand/{{::detail.branduuid}}/" target="_blank" ng-if="detail.uuid">
+									<em ng-bind="::detail.brName || '-'" title="{{::detail.brName}}"></em></a><br ng-if="detail.uuid"/>
+									<a class="unstand" ng-if="!detail.uuid"><em ng-bind="::detail.brName || '-'" title="{{::detail.brName}}"></em></a><br ng-if="!detail.uuid"/>
 									类目:<a href="product/kind/{{::detail.kindUuid}}" target="_blank" ng-if="detail.uuid"><em ng-bind="::detail.kiName || '-'" title="{{::detail.kiName}}"></em></a><br ng-if="detail.uuid"/>
 									<a class="unstand" ng-if="!detail.uuid"><em ng-bind="detail.kiName || '-'" title="{{::detail.kiName}}"></em></a><br ng-if="!detail.uuid"/>
 									型号:<a href="store/productDetail/{{::detail.batchCode}}" target="_blank"><em ng-bind="::detail.cmpCode || '-'" title="{{::detail.cmpCode}}"></em></a>
-									<a  class="unstand" ng-if="!detail.uuid"><em ng-bind="detail.brName || '-'" title="{{::detail.brName}}"></em></a>
+									<a  class="unstand" ng-if="!detail.uuid"><em ng-bind="detail.brName || '-'" title="{{::detail.brName}}"></em></a><br/>
+									规格:<a><em ng-bind="::detail.spec || '-'" title="{{::detail.spec}}"></em></a><br/>
 								</p>
 							</div>
 						</span>

+ 4 - 1
src/main/webapp/resources/view/usercenter/forstore/order_detail.html

@@ -437,11 +437,14 @@
                             <p class="style01" ng-if="detail.uuid">类目:
 								<a ng-bind="detail.kiName || '-'" href="product/kind/{{::detail.kindUuid}}" title="{{detail.kiName}}" target="_blank"></a>
 							</p>
-							 <p class="style01" style="margin-top: 10px;" ng-if="!detail.uuid">类目:
+							 <p class="style01" ng-if="!detail.uuid">类目:
 								<a ng-bind="detail.kiName || '-'"  title="{{detail.kiName}}" class="unstand"></a>
 							</p>
 							<p class="style01">型号:
 								<a ng-bind="detail.cmpCode || '-'" href="store/productDetail/{{::detail.batchCode}}" title="{{detail.cmpCode}}" target="_blank"></a>
+							</p>
+													<p class="style01">规格:
+								<a ng-bind="detail.spec || '-'" title="{{detail.spec}}" target="_blank"></a>
 							</p>
 												</span>
 							<span class="wd01">交期:

+ 3 - 1
src/main/webapp/resources/view/usercenter/forstore/order_pay.html

@@ -278,6 +278,7 @@
 		margin-left: 4px;
 	}
 	.oder_xq_list dl .oder_l{
+		height: 104px;
 		background: #f6f9ff;
 		border-bottom: #fff 1px solid;
 	}
@@ -734,6 +735,7 @@
 								<p title="{{detail.kiName}}" ng-if="detail.uuid"><a href="product/kind/{{detail.goodsHistory.kindUuid}}" target="_blank" style="color: #323232">类目:<b ng-bind="detail.kiName || '-'"></b></a></p>
 								<p title="{{detail.kiName}}" ng-if="!detail.uuid"><a style="color: #323232" class="unstand">类目:<b ng-bind="detail.kiName || '-'"></b></a></p>
 								<p><a href="store/productDetail/{{::detail.batchCode}}" target="_blank" style="color: #323232">型号:<b ng-bind="detail.cmpCode || '-'" title="{{detail.cmpCode}}"></b></a></p>
+								<p><a style="color: #323232">规格:<b ng-bind="detail.spec || '-'" title="{{detail.spec}}"></b></a></p>
 								</div>
                         </span>
 						<span class="wd01" ng-if="order.status == 501">
@@ -772,7 +774,7 @@
 							<span ng-if="order.status != 501" ng-bind="detail.number" class="number" style="border: none;"></span>
                             </div>
                         </span>
-							<span class="price-step"  style="width: 10%" ng-class="{'none': detail.goodsHistory.prices.length > 1}">
+							<span class="price-step"  style="width: 10%;text-overflow: ellipsis;overflow: hidden;white-space: nowrap;" ng-class="{'none': detail.goodsHistory.prices.length > 1}">
 								<em ng-bind="detail.ensurePrice | formateNumber : 6 | currencySysmbol : detail.currencyName" class="red"></em>
 								<p>
 									<a name="{{detail.id}}" ng-click="togglePrice(detail)" ng-if="detail.goodsHistory.prices.length > 1" ng-blur="togglePriceBlur(detail)" style="font-size: 12px">价格梯度</a>

+ 6 - 6
src/main/webapp/resources/view/usercenter/forstore/seekPurchase.html

@@ -29,7 +29,7 @@
         position: relative;
     }
     .seek-purchase .seek-purchase-content .publish-purchase .fl .form-block >span {
-        width: 103px;
+        width: 105px;
         height: 24px;
         line-height: 24px;
         display: inline-block;
@@ -71,7 +71,7 @@
     .seek-purchase .seek-purchase-content .publish-purchase .fl .form-block ul.similar-list {
         position: absolute;
         top: 23px;
-        left: 103px;
+        left: 105px;
         background: #fff;
         border: 1px solid #b5b5b5;
         z-index: 1;
@@ -896,8 +896,8 @@
                     </ul>
                 </div>
                 <div class="form-block">
-                    <span>类目(产品名称)</span>
-                    <input type="text" class="form-group" ng-model="applyObj.prodTitle" ng-change="onProdTitleInput()">
+                    <span><i>*</i>类目(产品名称)</span>
+                    <input type="text" class="form-group" ng-model="applyObj.prodTitle" ng-class="{'error': !validObj.prodTitle}" ng-change="onProdTitleInput()" ng-blur="checkProdTitle()">
                 </div>
                 <div class="form-block">
                     <span><i>*</i>型号</span>
@@ -1209,8 +1209,8 @@
 
                                             <img ng-if="of.agreed == 1" src="static/img/seekPurchase/recieved.png" alt="" class="ng-scope">
                                             <img ng-if="of.agreed == 0" src="static/img/seekPurchase/refused.png" alt="" class="ng-scope">
-                                            <span class="seek-btn" ng-if="!seek.agreed && !of.agreed && of.agreed != 0" ng-click="adopt(of.id)">采纳</span>
-                                            <a class="seek-btn" ng-if="!of.agreed && of.agreed != 0" ng-click="setActiveRefuse(of)">拒绝</a>
+                                            <span class="seek-btn" ng-if="of.agreed != 0 && of.agreed != 1" ng-click="adopt(of)">采纳</span>
+                                            <a class="seek-btn" ng-if="of.agreed != 0 && of.agreed != 1" ng-click="setActiveRefuse(of)">拒绝</a>
                                         </td>
                                     </tr>
                                     </tbody>

+ 11 - 8
src/main/webapp/resources/view/vendor/forstore/purchase_detail.html

@@ -478,20 +478,23 @@
 						<dd class="oder_l" ng-repeat="detail in purchase.purchaseDetails">
 						<span class="wd02">
 							<a href="store/productDetail/{{::detail.batchCode}}" target="_blank"><img ng-src="{{detail.img ? detail.img : 'static/img/store/common/default.png'}}"/></a>
-							<p class="style01" style="margin-top: 10px;" ng-if="detail.uuid">类目:
+							<p class="style01" ng-if="detail.uuid" style="margin-top: 10px;">品牌:
+								<a ng-bind="detail.brName || '-'" href="product/brand/{{::detail.branduuid}}/" title="{{detail.brName}}" target="_blank"></a>
+							</p>
+							<p class="style01" ng-if="!detail.uuid" style="margin-top: 10px;">品牌:
+								<a ng-bind="detail.brName || '-'" title="{{detail.brName}}" class="unstand"></a>
+							</p>
+							<p class="style01"  ng-if="detail.uuid">类目:
 								<a ng-bind="detail.kiName || '-'" href="product/kind/{{::detail.kindUuid}}" title="{{detail.kiName}}" target="_blank"></a>
 							</p>
-							<p class="style01" style="margin-top: 10px;" ng-if="!detail.uuid">类目:
+							<p class="style01"  ng-if="!detail.uuid">类目:
 								<a ng-bind="detail.kiName || '-'" title="{{detail.kiName}}" class="unstand"></a>
 							</p>
 							<p class="style01">型号:
 								<a ng-bind="detail.cmpCode || '-'" href="store/productDetail/{{::detail.batchCode}}" title="{{detail.cmpCode}}" target="_blank"></a>
 							</p>
-							<p class="style01" ng-if="detail.uuid">品牌:
-								<a ng-bind="detail.brName || '-'" href="product/brand/{{::detail.branduuid}}/" title="{{detail.brName}}" target="_blank"></a>
-							</p>
-							<p class="style01" ng-if="!detail.uuid">品牌:
-								<a ng-bind="detail.brName || '-'" title="{{detail.brName}}" class="unstand"></a>
+							<p class="style01">型号:
+								<a ng-bind="detail.spec || '-'" title="{{detail.spec}}" target="_blank"></a>
 							</p>
 						</span>
 						<span class="wd01">交期:
@@ -973,7 +976,7 @@
 <style>
 	.com-out-box{
 		position: fixed;
-		z-index: 2;
+		z-index: 999;
 		height: 150px;
 		opacity: 1;
 		background-color: white;

+ 113 - 5
src/main/webapp/resources/view/vendor/forstore/seekPurchase.html

@@ -201,12 +201,13 @@
         color: #f62d37;
     }
     .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate {
+        position: relative;
         font-size: 12px;
     }
     .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate a{
         color: #4290f7;
     }
-    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate div {
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate > div {
         width: 64px;
         height: 24px;
         line-height: 24px;
@@ -220,7 +221,7 @@
     .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate div.disable{
         background: #cccbcb;
     }
-    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate span {
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate > span {
         color: #39ae05;
         display: block;
     }
@@ -611,6 +612,90 @@
         border: 1px solid #4290f7;
         color: #333;
     }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price {
+        color: #39ae05;
+        background: transparent;
+        width: 100%;
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price .say-price-history {
+        position: absolute;
+        top: 91px;
+        right: 11px;
+        line-height: normal;
+        width: 198px;
+        height: 0;
+        background: #fff;
+        border: 1px solid #fab89a;
+        overflow: hidden;
+        transition: height 1s;
+        -moz-transition: height 1s; /* Firefox 4 */
+        -webkit-transition: height 1s; /* Safari 和 Chrome */
+        -o-transition: height 1s; /* Opera */
+        opacity: 0;
+        z-index: 10;
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price .say-price-history p {
+        color: #020202;
+        font-weight: bold;
+        margin: 0;
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price .say-price-history p.price-title {
+        background: #fee6db;
+        height: 28px;
+        line-height: 28px;
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price .say-price-history p.price-level {
+        margin: 6px 0;
+        text-align: left;
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price .say-price-history > div {
+        padding: 9px 12px;
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price .say-price-history > div > div {
+        display: inline-block;
+        text-align: left;
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price .say-price-history > div > div:nth-child(1) {
+        /*float: left;*/
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price .say-price-history > div > div:nth-child(2) {
+        margin-left: 32px;
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price .say-price-history > div > div span {
+        color: #020202;
+        margin: 0;
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price .say-price-history > div > div span.red-text {
+        color: #f62d37;
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price .say-price-history > div > div.pre-line {
+        display: block;
+        padding: 13px 0;
+        border-bottom: 1px dashed #fee6db;
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price .say-price-history > div ul li {
+        color: #333;
+        height: 22px;
+        line-height: 22px;
+        padding: 0 6px;
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price .say-price-history > div ul li:nth-child(odd) {
+        background: #f6f5f4;
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price .say-price-history > div ul li span {
+        color: #333;
+        display: inline-block;
+        text-align: left;
+        width: 50%;
+        margin: 0;
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price .say-price-history > div ul li:last-child span {
+        color: #4290f7;
+    }
+    .seek-purchase .seek-purchase-content >table tbody tr.default-row td.operate .is-say-price:hover .say-price-history {
+        opacity: 1;
+        height: 210px;
+    }
 </style>
 <div class="user_right fr seek-purchase">
     <!--求购询价-->
@@ -659,8 +744,8 @@
             <div class="sreach fr">
                 <span>求购筛选</span>
                 <select class="form-control select-adder vendor-type" ng-model="vendorType" ng-change="onVendorTypeChange(vendorType)">
-                    <option value="self">推荐询价</option>
-                    <option value="all">全部</option>
+                    <option value="all">公司商机</option>
+                    <option value="self">我的商机</option>
                 </select>
                 <span>发布时间&nbsp;</span>
                 <div class="date fl">
@@ -751,7 +836,30 @@
                         <!--<a ng-click="setLinkBoxIndex($index)">联系买家 <img src="static/img/seekPurchase/link-buyer.png" alt=""></a>-->
                         <div ng-if="!seek.newId && userInfo.enterprise.uu != seek.inquiry.enUU && seek.quoted != 1 && seek.remainingTime > 0" ng-click="setSeekActive(seek, true, index)">我要报价</div>
                         <div class="disable" ng-if="userInfo.enterprise.uu == seek.inquiry.enUU && seek.quoted != 1 && seek.remainingTime > 0" title="此为贵公司的求购" ng-disabled="true">我要报价</div>
-                        <span ng-if="seek.quoted == 1 || seek.newId">已报价 <img src="static/img/seekPurchase/check.png" alt=""></span>
+                        <!--<span ng-if="seek.quoted == 1 || seek.newId">已报价 <img src="static/img/seekPurchase/check.png" alt=""></span>-->
+                        <div class="is-say-price" ng-if="seek.quoted == 1 || seek.newId">已报价 <img src="static/img/seekPurchase/check.png" alt="">
+                            <div class="say-price-history">
+                                <p class="price-title">历史报价</p>
+                                <div>
+                                    <div>
+                                        <span>交期:</span><span class="red-text" ng-bind="seek.quotation.leadtime + '天'">6 天</span>
+                                    </div>
+                                    <!--<div>-->
+                                    <!--<span>附件:</span><a href="">下载</a>-->
+                                    <!--</div>-->
+                                    <!--<div class="pre-line">-->
+                                    <!--<span>:</span>2016-05-21-->
+                                    <!--</div>-->
+                                    <p class="price-level">价格梯度</p>
+                                    <ul>
+                                        <li ng-repeat="re in seek.quotation.replies">
+                                            <span ng-bind="re.lapQty + '+'">1333+</span>
+                                            <span title="{{seek.quotation.currency + re.price | currencyStr}}">{{seek.quotation.currency + re.price | currencyStr}}</span>
+                                        </li>
+                                    </ul>
+                                </div>
+                            </div>
+                        </div>
                         <!--<img ng-if="seek.quoted == 1" src="static/img/seekPurchase/recieved.png" alt="">-->
                     </td>
                 </tr>

+ 2 - 2
src/main/webapp/resources/view/vendor/forstore/vendor_account_management.html

@@ -1055,14 +1055,14 @@
                   </div>
                 </div>
               </li>
-                <li>
+               <!-- <li>
                     <div class="fl">企业简介</div>
                     <div class="col-sm-10" ng-if="updateState">
                         <textarea class="form-control" style="border-radius: inherit;resize: none;height: 200px;" title="description" ng-model="enterpriseInfo.description" maxlength="500" required></textarea>
                     </div>
                     <div class="fr" ng-if="!updateState"><span
                             ng-bind="enterpriseInfo.description || '暂无信息'"></span></div>
-                </li>
+                </li>-->
             </ul>
             <!--<div class="deal-btn" ng-if="userInfo.sys">-->
             <!--<button type="button" class="edit btn btn-primary" ng-if=" !updateState"  ng-click="changeToUpdate(true)">修改</button>-->

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

@@ -1975,7 +1975,7 @@
 							{{item.userName}}({{item.userUU}})
 						</li>
 					</ul>-->
-					<input type="text" class="form-control keyword-material" ng-model="param.keyword" ng-search="onSearch()" placeholder="品牌/类目/型号"/>
+					<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>

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

@@ -1833,7 +1833,7 @@
 		<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="品牌/类目/型号"/>
+					<input type="text" class="form-control" ng-model="param.keyword" ng-search="onSearch()" placeholder="品牌/型号"/>
 					<button ng-click="onSearch()">搜索</button>
 					<!--<a ng-click="download()">批量导出</a>-->
 				</div>

+ 2 - 2
src/main/webapp/resources/view/vendor/forstore/vendor_order.html

@@ -1388,8 +1388,8 @@
                                     <a ng-if="!detail.uuid" class="unstand"><em ng-bind="detail.brName || '-'" title="{{::detail.brName}}"></em></a><br/>
                                     类目:<a href="product/kind/{{::detail.kindUuid}}" target="_blank" ng-if="detail.uuid"><em ng-bind="detail.kiName || '-'" title="{{::detail.kiName}}"></em></a><br ng-if="detail.uuid"/>
                                     <a ng-if="!detail.uuid" class="unstand"><em ng-bind="detail.kiName || '-'" title="{{::detail.kiName}}"></em></a><br ng-if="!detail.uuid"/>
-                                    型号:<a href="store/productDetail/{{::detail.batchCode}}" target="_blank"><em ng-bind="detail.cmpCode || '-'" title="{{::detail.cmpCode}}"></em></a>
-
+																	  型号:<a href="store/productDetail/{{::detail.batchCode}}" target="_blank"><em ng-bind="detail.cmpCode || '-'" title="{{::detail.cmpCode}}"></em></a><br />
+																		规格:<a><em ng-bind="detail.spec || '-'" title="{{::detail.spec}}"></em></a>
                                 </p>
                             </div>
                         </span>

+ 46 - 9
src/main/webapp/resources/view/vendor/forstore/vendor_store_maintain.html

@@ -594,7 +594,7 @@
 				</div>
 			</div>
 			<!-- 企业信息展示 start -->
-			<div class="row com_row title_row">
+		<!--	<div class="row com_row title_row">
 				<div class="col-md-12 custom_col">
 					<h2>企业信息</h2>
 				</div>
@@ -630,8 +630,8 @@
 				<div class="col-md-10 custom_col">
 					<span ng-if="enterprise">{{sampleStore.enterprise.enUrl || '暂无信息'}}</span>
 				</div>
-			</div>
-			<div class="row com_row" ng-if="enterprise.enType.length > 0">
+			</div>-->
+			<!--<div class="row com_row" ng-if="enterprise.enType.length > 0">
 				<div class="col-md-2 custom_col">
 					<span>企业类型</span>
 				</div>
@@ -662,7 +662,8 @@
 				<div class="col-md-10 custom_col">
 					<span ng-if="enterprise">暂无信息</span>
 				</div>
-			</div><!-- 企业信息展示 end -->
+			</div>-->
+			<!-- 企业信息展示 end -->
 		</div>
 		<!-- 店铺基础信息输入 start -->
 		<div style="margin-bottom: 20px;" ng-if="editBasicInfo" class="width120">
@@ -702,7 +703,23 @@
 					<span>主营产品</span>
 				</div>
 				<div class="col-md-10 custom_col">
-					<textarea class="form-control" style="border-radius: inherit;resize: none;height: 200px;" title="description" ng-model="sampleStore.description" maxlength="500"></textarea>
+					<textarea class="form-control" style="border-radius: inherit;resize: none;height: 200px;margin-top: 10px;" title="description" ng-model="sampleStore.description" maxlength="500"></textarea>
+				</div>
+			</div>
+			<div class="row com_row">
+				<div class="col-md-2 custom_col">
+					<span>应用领域</span>
+				</div>
+				<div class="col-md-10 custom_col">
+					<textarea class="form-control" style="border-radius: inherit;resize: none;height: 200px;margin-top: 10px;" title="application" ng-model="sampleStore.storeApplication" maxlength="100"></textarea>
+				</div>
+			</div>
+			<div class="row com_row">
+				<div class="col-md-2 custom_col">
+					<span>企业介绍</span>
+				</div>
+				<div class="col-md-10 custom_col">
+					<textarea class="form-control" style="border-radius: inherit;resize: none;height: 200px;margin-top: 10px;" title="description" ng-model="sampleStore.enterprise.description" maxlength="500"></textarea>
 				</div>
 			</div>
 			<!--<div class="row com_row" style="margin-top: 10px;">
@@ -713,14 +730,14 @@
 					<input type="text" class="form-control" style="border-radius: inherit;" title="enUrl" ng-model="sampleStore.enterprise.enUrl" maxlength="50"/>
 				</div>
 			</div>-->
-			<div class="row com_row" style="margin-top: 10px;">
+			<!--<div class="row com_row" style="margin-top: 10px;">
 				<div class="col-md-2 custom_col">
 					<span>店铺地址<strong class="text-inverse">*</strong></span>
 				</div>
 				<div class="col-md-10 custom_col">
 					<input type="text" class="form-control" style="border-radius: inherit;" title="address" ng-model="sampleStore.enterprise.address" maxlength="50"/>
 				</div>
-			</div>
+			</div>-->
 			<div class="row com_row" style="margin-top: 10px;">
 				<div class="col-md-2 custom_col">
 					<span>电&nbsp;&nbsp;&nbsp;&nbsp;话<strong class="text-inverse">*</strong></span>
@@ -806,6 +823,26 @@
 					</div>
 				</div>
 			</div>
+			<div class="row com_row">
+				<div class="col-md-2 custom_col">
+					<span>应用领域</span>
+				</div>
+				<div class="col-md-10 custom_col show_info">
+					<div style="word-break: break-all;">
+						{{sampleStore.storeApplication || '暂无信息'}}
+					</div>
+				</div>
+			</div>
+			<div class="row com_row">
+				<div class="col-md-2 custom_col">
+					<span>企业介绍</span>
+				</div>
+				<div class="col-md-10 custom_col show_info">
+					<div style="word-break: break-all;">
+						{{sampleStore.enterprise.description || '暂无信息'}}
+					</div>
+				</div>
+			</div>
 			<!--<div class="row com_row" style="margin-top: 10px;">
 				<div class="col-md-2 custom_col">
 					<span>官网地址</span>
@@ -816,7 +853,7 @@
 					</div>
 				</div>
 			</div>-->
-			<div class="row com_row" style="margin-top: 10px;">
+			<!--<div class="row com_row" style="margin-top: 10px;">
 				<div class="col-md-2 custom_col">
 					<span>店铺地址</span>
 				</div>
@@ -825,7 +862,7 @@
 						{{sampleStore.enterprise.address || '暂无信息'}}
 					</div>
 				</div>
-			</div>
+			</div>-->
 			<div class="row com_row" style="margin-top: 10px;">
 				<div class="col-md-2 custom_col">
 					<span>电&nbsp;&nbsp;&nbsp;&nbsp;话</span>

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

@@ -60,7 +60,7 @@
 				<!-- 我的店铺申述 store -->
 				<span  ui-sref="vendor_store_maintain" ng-if="store && store.status && store.status !== 'OPENED'">我的店铺</span>
 			</li>
-			<li ng-class="{'active' : active == 'vendor_seek_purchase'}"><span ui-sref="vendorSeekPurchase">我的商机</span></li>
+			<li ng-class="{'active' : active == 'vendor_seek_purchase'}"><span ui-sref="vendorSeekPurchase">商机管理</span></li>
 		<li ng-class="{'active' : active == 'vendor_logistics'}">
 			<span  ui-sref="vendor_logistics" ng-hide="store && (!store.status || store.status === 'OPENED')">物流管理</span>
 			<span  ui-sref="vendor_deliveryRule" ng-if="store && (!store.status || store.status === 'OPENED')">物流管理</span>