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

Merge branch 'dev-mysql' into feature_fix_shenjj

# Conflicts:
#	src/main/webapp/resources/js/vendor/controllers/forstore/vendor_materialCtrl.js
shenjj 8 лет назад
Родитель
Сommit
2fd86355b7
48 измененных файлов с 825 добавлено и 171 удалено
  1. 103 0
      src/main/java/com/uas/platform/b2c/b2b/controller/ManageController.java
  2. 15 0
      src/main/java/com/uas/platform/b2c/b2b/dao/EnterpriseBaseInfoDao.java
  3. 105 0
      src/main/java/com/uas/platform/b2c/b2b/model/EnterpriseBaseInfo.java
  4. 22 0
      src/main/java/com/uas/platform/b2c/b2b/service/EnterpriseBaseInfoService.java
  5. 63 0
      src/main/java/com/uas/platform/b2c/b2b/service/impl/EnterpriseBaseInfoServiceImpl.java
  6. 7 1
      src/main/java/com/uas/platform/b2c/common/account/controller/EnterpriseController.java
  7. 1 3
      src/main/java/com/uas/platform/b2c/common/account/controller/SecurityController.java
  8. 15 0
      src/main/java/com/uas/platform/b2c/common/account/model/Enterprise.java
  9. 10 0
      src/main/java/com/uas/platform/b2c/common/account/model/UserInfo.java
  10. 3 0
      src/main/java/com/uas/platform/b2c/common/account/service/EnterpriseService.java
  11. 17 2
      src/main/java/com/uas/platform/b2c/common/account/service/impl/EnterpriseServiceImpl.java
  12. 2 1
      src/main/java/com/uas/platform/b2c/common/account/v2/service/impl/EnterpriseServiceImpl.java
  13. 28 0
      src/main/java/com/uas/platform/b2c/core/config/SysConf.java
  14. 1 1
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ReleaseProductByBatchServiceImpl.java
  15. 17 0
      src/main/java/com/uas/platform/b2c/prod/product/component/controller/ComponentSubmitController.java
  16. 13 1
      src/main/java/com/uas/platform/b2c/prod/product/component/service/ComponentSubmitService.java
  17. 13 0
      src/main/java/com/uas/platform/b2c/prod/product/component/service/impl/ComponentSubmitServiceImpl.java
  18. 1 0
      src/main/java/com/uas/platform/b2c/prod/store/service/impl/QualificationServiceImpl.java
  19. 1 0
      src/main/java/com/uas/platform/b2c/prod/store/service/impl/StoreApplyServiceImpl.java
  20. 1 1
      src/main/resources/dev/account.properties
  21. 5 1
      src/main/resources/dev/sys.properties
  22. 1 1
      src/main/resources/prod/account.properties
  23. 6 1
      src/main/resources/prod/sys.properties
  24. 1 1
      src/main/resources/test/account.properties
  25. 5 1
      src/main/resources/test/sys.properties
  26. 3 1
      src/main/webapp/WEB-INF/views/normal/adminWithNav.html
  27. 3 3
      src/main/webapp/resources/css/vendor/sell.css
  28. 10 3
      src/main/webapp/resources/js/admin/app.js
  29. 37 0
      src/main/webapp/resources/js/admin/controllers/b2b/b2bManageCtrl.js
  30. 38 18
      src/main/webapp/resources/js/common/controllers/commonCtrls.js
  31. 13 0
      src/main/webapp/resources/js/common/query/b2bManage.js
  32. 53 23
      src/main/webapp/resources/js/prod/controllers/ComponentEditCtrl.js
  33. 6 2
      src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_home_ctrl.js
  34. 56 50
      src/main/webapp/resources/js/vendor/app.js
  35. 50 19
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_component_apply_ctrl.js
  36. 4 4
      src/main/webapp/resources/js/vendor/controllers/forstore/vendor_store_maintain_ctrl.js
  37. 53 0
      src/main/webapp/resources/view/admin/b2b/manage.html
  38. 5 0
      src/main/webapp/resources/view/admin/index.html
  39. 1 1
      src/main/webapp/resources/view/prod/product_component_edit_detail.html
  40. 2 2
      src/main/webapp/resources/view/usercenter/forstore/account_manager.html
  41. 1 1
      src/main/webapp/resources/view/usercenter/modal/homeCenter_modal.html
  42. 2 2
      src/main/webapp/resources/view/vendor/forstore/vendor_account_management.html
  43. 16 16
      src/main/webapp/resources/view/vendor/forstore/vendor_component_apply.html
  44. 3 3
      src/main/webapp/resources/view/vendor/forstore/vendor_store.html
  45. 8 3
      src/main/webapp/resources/view/vendor/forstore/vendor_store_apply.html
  46. 1 1
      src/main/webapp/resources/view/vendor/forstore/vendor_store_info.html
  47. 3 3
      src/main/webapp/resources/view/vendor/forstore/vendor_store_maintain.html
  48. 1 1
      src/main/webapp/resources/view/vendor/forstore/vendor_upload.html

+ 103 - 0
src/main/java/com/uas/platform/b2c/b2b/controller/ManageController.java

@@ -0,0 +1,103 @@
+package com.uas.platform.b2c.b2b.controller;
+
+import com.uas.platform.b2c.b2b.model.EnterpriseBaseInfo;
+import com.uas.platform.b2c.b2b.service.EnterpriseBaseInfoService;
+import com.uas.platform.b2c.common.base.model.AccessToken;
+import com.uas.platform.b2c.common.base.service.AccessTokenService;
+import com.uas.platform.b2c.core.config.SysConf;
+import com.uas.platform.b2c.core.support.SystemSession;
+import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
+import com.uas.platform.core.logging.BufferedLoggerManager;
+import com.uas.platform.core.model.PageInfo;
+import com.uas.platform.core.model.PageParams;
+import com.wordnik.swagger.annotations.ApiOperation;
+import com.wordnik.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.rmi.AccessException;
+import java.util.Arrays;
+
+/**
+ * b2b操作
+ *
+ * Created by hejq on 2018-04-20.
+ */
+@RequestMapping("/b2b/manage")
+@RestController
+public class ManageController {
+
+    @Autowired
+    private AccessTokenService accessTokenService;
+
+    @Autowired
+    private SysConf sysConf;
+
+    @Autowired
+    private EnterpriseBaseInfoService baseInfoService;
+
+    /**
+     * 操作日志
+     */
+    private UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
+
+    /**
+     * 定义可以访问的公司
+     */
+    private static final Long[] ACCESS_ENUU = {1000001L, 10044948L, 10042291L, 10042875L, 10043923L, 10041166L};
+
+    /**
+     * 通过UU号进行跳转到平台
+     *
+     * @param response HttpServletResponse
+     * @param enUU uu号
+     * @throws IOException
+     */
+    @RequestMapping("/authed/redirect/{enUU}")
+    public void redirect(HttpServletResponse response, HttpServletRequest request, @PathVariable("enUU") long enUU)
+            throws IOException {
+        Object bindObj = enUU;
+        if (null == SystemSession.getUser() || null == SystemSession.getUser().getEnterprise()) {
+            throw new AccessException("请先登录");
+        }
+        if (!Arrays.asList(ACCESS_ENUU).contains(SystemSession.getUser().getEnterprise().getUu())) {
+            throw new AccessException("没有访问权限");
+        }
+        AccessToken token = accessTokenService.createNew(bindObj);
+        request.getSession().setAttribute("user", SystemSession.getUser());
+        StringBuffer redirectUrl = new StringBuffer();
+        String domain = sysConf.getB2bDomain();
+        if (StringUtils.hasText(domain)) {
+            // 防止使用同一个www.ubtob.com造成session冲突
+            redirectUrl.append("http://").append(enUU).append(".").append(domain);
+        } else {
+            redirectUrl.append(sysConf.getB2bUrl());
+        }
+        redirectUrl.append("?client_type=manage&access_token=").append(token.getId());
+        logger.log("管理员访问B2B", "通过商务平台后台访问B2B");
+        response.sendRedirect(redirectUrl.toString());
+    }
+
+    /**
+     * 分页查询B2B注册信息
+     *
+     * @param params 分页参数
+     * @param keyword 关键词
+     * @return
+     */
+    @RequestMapping(value = "/enterpriseList", method = RequestMethod.GET)
+    @ApiOperation(value = "分页获取平台所有注册企业信息", httpMethod = "GET")
+    public Page<EnterpriseBaseInfo> findEnterPageByStatus(@ApiParam(required = true, value = "分页参数") PageParams params, @ApiParam(required = true, value = "搜索字符串") String keyword) {
+        PageInfo info = new PageInfo(params);
+        logger.log("管理平台获取企业列表", "通过[" + keyword + "]获取企业信息");
+        return baseInfoService.findEnterPageByKeyword(info, keyword);
+    }
+}

+ 15 - 0
src/main/java/com/uas/platform/b2c/b2b/dao/EnterpriseBaseInfoDao.java

@@ -0,0 +1,15 @@
+package com.uas.platform.b2c.b2b.dao;
+
+import com.uas.platform.b2c.b2b.model.EnterpriseBaseInfo;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 企业基本信息
+ *
+ * Created by hejq on 2018-04-20.
+ */
+@Repository
+public interface EnterpriseBaseInfoDao extends JpaRepository<EnterpriseBaseInfo, Long>, JpaSpecificationExecutor<EnterpriseBaseInfo> {
+}

+ 105 - 0
src/main/java/com/uas/platform/b2c/b2b/model/EnterpriseBaseInfo.java

@@ -0,0 +1,105 @@
+package com.uas.platform.b2c.b2b.model;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 企业信息基本信息
+ *
+ * Created by hejq on 2018-04-20.
+ */
+@Entity
+@Table(name = "sec$enterprises")
+public class EnterpriseBaseInfo implements Serializable {
+
+    /**
+     * 序列号
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 企业UU号
+     */
+    @Id
+    @Column(name = "en_uu")
+    private Long uu;
+
+    /**
+     * 公司名称
+     */
+    @Column(name = "en_name")
+    private String enName;
+
+    /**
+     * 注册地址
+     */
+    @Column(name = "en_address")
+    private String enAddress;
+
+    /**
+     * 商业登记证号
+     */
+    @Column(name = "en_businesscode")
+    private String enBussinessCode;
+
+    /**
+     * 注册时间
+     */
+    @Column(name = "en_time")
+    private Date enDate;
+
+    public Long getUu() {
+        return uu;
+    }
+
+    public void setUu(Long uu) {
+        this.uu = uu;
+    }
+
+    public String getEnName() {
+        return enName;
+    }
+
+    public void setEnName(String enName) {
+        this.enName = enName;
+    }
+
+    public String getEnAddress() {
+        return enAddress;
+    }
+
+    public void setEnAddress(String enAddress) {
+        this.enAddress = enAddress;
+    }
+
+    public String getEnBussinessCode() {
+        return enBussinessCode;
+    }
+
+    public void setEnBussinessCode(String enBussinessCode) {
+        this.enBussinessCode = enBussinessCode;
+    }
+
+    public Date getEnDate() {
+        return enDate;
+    }
+
+    public void setEnDate(Date enDate) {
+        this.enDate = enDate;
+    }
+
+    @Override
+    public String toString() {
+        return "EnterpriseBaseInfo{" +
+                "uu=" + uu +
+                ", enName='" + enName + '\'' +
+                ", enAddress='" + enAddress + '\'' +
+                ", enBussinessCode='" + enBussinessCode + '\'' +
+                ", enDate=" + enDate +
+                '}';
+    }
+}

+ 22 - 0
src/main/java/com/uas/platform/b2c/b2b/service/EnterpriseBaseInfoService.java

@@ -0,0 +1,22 @@
+package com.uas.platform.b2c.b2b.service;
+
+import com.uas.platform.b2c.b2b.model.EnterpriseBaseInfo;
+import com.uas.platform.core.model.PageInfo;
+import org.springframework.data.domain.Page;
+
+/**
+ * 企业基本信息操作接口
+ *
+ * Created by hejq on 2018-04-20.
+ */
+public interface EnterpriseBaseInfoService {
+
+    /**
+     * 分页查询企业信息
+     *
+     * @param info 分页参数
+     * @param keyword 关键字
+     * @return
+     */
+    Page<EnterpriseBaseInfo> findEnterPageByKeyword(PageInfo info, String keyword);
+}

+ 63 - 0
src/main/java/com/uas/platform/b2c/b2b/service/impl/EnterpriseBaseInfoServiceImpl.java

@@ -0,0 +1,63 @@
+package com.uas.platform.b2c.b2b.service.impl;
+
+import com.uas.platform.b2c.b2b.dao.EnterpriseBaseInfoDao;
+import com.uas.platform.b2c.b2b.model.EnterpriseBaseInfo;
+import com.uas.platform.b2c.b2b.service.EnterpriseBaseInfoService;
+import com.uas.platform.b2c.fa.payment.utils.StringUtils;
+import com.uas.platform.core.model.PageInfo;
+import com.uas.platform.core.persistence.criteria.PredicateUtils;
+import com.uas.platform.core.persistence.criteria.SimpleExpression;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+
+/**
+ * 企业基本信息操作实现
+ *
+ * Created by hejq on 2018-04-20.
+ */
+@Service
+public class EnterpriseBaseInfoServiceImpl implements EnterpriseBaseInfoService {
+
+    @Autowired
+    private EnterpriseBaseInfoDao baseInfoDao;
+
+    /**
+     * UU号正则表达式
+     */
+    static final String UU_REGEXP = "^\\d{4,}$";
+
+    /**
+     * 分页查询企业信息
+     *
+     * @param info    分页参数
+     * @param keyword 关键字
+     * @return
+     */
+    @Override
+    public Page<EnterpriseBaseInfo> findEnterPageByKeyword(final PageInfo info, String keyword) {
+        if (!StringUtils.isEmpty(keyword)) {
+            SimpleExpression name = PredicateUtils.like("enName", keyword, false);
+            if (keyword.matches(UU_REGEXP)) {
+                SimpleExpression enUU = PredicateUtils.eq("uu", keyword, false);
+                SimpleExpression[] expressions = new SimpleExpression[]{name, enUU};
+                info.expression(PredicateUtils.or(expressions));
+            } else {
+                SimpleExpression[] expressions = new SimpleExpression[]{name};
+                info.expression(PredicateUtils.or(expressions));
+            }
+        }
+        return baseInfoDao.findAll(new Specification<EnterpriseBaseInfo>() {
+            public Predicate toPredicate(Root<EnterpriseBaseInfo> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
+                query.where(info.getPredicates(root, query, builder));
+                return null;
+            }
+        }, info);
+    }
+}

+ 7 - 1
src/main/java/com/uas/platform/b2c/common/account/controller/EnterpriseController.java

@@ -8,7 +8,9 @@ import com.uas.platform.b2c.common.account.service.EnterpriseService;
 import com.uas.platform.b2c.common.account.service.UserService;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.fa.payment.utils.StringUtils;
+import com.uas.platform.b2c.prod.store.model.StoreIn;
 import com.uas.platform.b2c.prod.store.service.StoreInService;
+import com.uas.platform.b2c.trade.support.CodeType;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.sso.entity.ApplyUserSpaceView;
 import com.uas.sso.entity.UserSpaceDetail;
@@ -81,7 +83,11 @@ public class EnterpriseController {
 	 * @return
 	 */
 	@RequestMapping(value = "/{enuu}/info", method = RequestMethod.POST)
-	public Enterprise updateEnterprise(@PathVariable Long enuu , @RequestBody Enterprise enterprise) {
+	public Enterprise updateEnterprise(@PathVariable Long enuu, @RequestBody Enterprise enterprise) {
+		Enterprise enterpriseInfo = enterpriseService.getEnterpriseInfo(enuu);
+		if (enterpriseInfo.getEnAdminuu() == null) {
+			throw new IllegalArgumentException("企业数据异常,管理员缺失!");
+		}
 		enterprise = enterpriseService.save(enterprise);
 		SystemSession.getUser().setCurrentEnterprise(enterprise.getUu());
 		return enterprise;

+ 1 - 3
src/main/java/com/uas/platform/b2c/common/account/controller/SecurityController.java

@@ -349,11 +349,9 @@ public class SecurityController {
 	 * @param request
 	 * @param response
 	 */
-	@RequestMapping(value = "/newLogin/other")
+	@RequestMapping(value = "/newLogin/other", produces = {"application/javascript"})
 	@ResponseBody
 	public String afterCrossLogin(HttpServletRequest request, HttpServletResponse response, UserAccount userAccount, Integer maxage) {
-		String callback =request.getParameter("jsoncallback");
-		response.setContentType("text/html;charset=UTF-8");
 		if (userAccount != null && userAccount.getMobile() != null) {
 			SSOToken tk = new SSOToken();
 			tk.setUid(userAccount.getMobile());

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

@@ -156,6 +156,13 @@ public class Enterprise implements Serializable {
 	@Column(name = "en_accesssecret")
 	private String accessSecret;
 
+	/**
+	 * 企业认证状态;
+	 */
+	@Column(name = "en_validcode")
+	private Short enValidCode;
+
+
 	@Transient
 	private Integer receiptStatus;
 
@@ -345,6 +352,14 @@ public class Enterprise implements Serializable {
 		this.receiptStatus = receiptStatus;
 	}
 
+	public Short getEnValidCode() {
+		return enValidCode;
+	}
+
+	public void setEnValidCode(Short enValidCode) {
+		this.enValidCode = enValidCode;
+	}
+
 	@Override
 	public int hashCode() {
 		final int prime = 31;

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

@@ -38,6 +38,7 @@ public class UserInfo {
 			for (Enterprise enterprise : user.getEnterprises()) {
 				SimpleEnterpriseInfo simpleEnterpriseInfo= new SimpleEnterpriseInfo();
 				simpleEnterpriseInfo.setEnName(enterprise.getEnName());
+				simpleEnterpriseInfo.setEnValidCode(enterprise.getEnValidCode());
 				simpleEnterpriseInfo.setUu(enterprise.getUu());
 				simpleEnterpriseInfo.setIsVendor(enterprise.getEnMallVendorStatus());
 				simpleEnterpriseInfo.setEnBussinessCode(enterprise.getEnBussinessCode());
@@ -283,6 +284,7 @@ class SimpleEnterpriseInfo{
 	String enBussinessCode;
 	Long lastLoginTime;
 	Long enAdminuu;
+	Short enValidCode;
 
 	public SimpleEnterpriseInfo(){
 		this.setLastLoginTime(0L);
@@ -351,4 +353,12 @@ class SimpleEnterpriseInfo{
 	public void setEnAdminuu(Long enAdminuu) {
 		this.enAdminuu = enAdminuu;
 	}
+
+	public Short getEnValidCode() {
+		return enValidCode;
+	}
+
+	public void setEnValidCode(Short enValidCode) {
+		this.enValidCode = enValidCode;
+	}
 }

+ 3 - 0
src/main/java/com/uas/platform/b2c/common/account/service/EnterpriseService.java

@@ -33,6 +33,9 @@ public interface EnterpriseService {
 	 * @return
 	 */
 	public Enterprise save(Enterprise enterprise);
+
+
+
 	/**
 	 * 根据注册地址确定币别
 	 * @return

+ 17 - 2
src/main/java/com/uas/platform/b2c/common/account/service/impl/EnterpriseServiceImpl.java

@@ -12,6 +12,9 @@ import com.uas.platform.b2c.common.account.service.EnterpriseService;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.logistics.dao.ReceiptDao;
 import com.uas.platform.b2c.logistics.model.Receipt;
+import com.uas.platform.b2c.prod.store.dao.StoreInDao;
+import com.uas.platform.b2c.prod.store.model.EnterpriseSimple;
+import com.uas.platform.b2c.prod.store.model.StoreIn;
 import com.uas.platform.b2c.trade.aftersale.model.ReturnFB2c;
 import com.uas.platform.b2c.trade.support.CodeType;
 import com.uas.platform.b2c.trade.support.ResultMap;
@@ -23,6 +26,7 @@ import com.uas.sso.entity.UserView;
 import com.uas.sso.util.AccountUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.hibernate.loader.custom.Return;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.stereotype.Service;
@@ -43,11 +47,13 @@ public class EnterpriseServiceImpl implements EnterpriseService{
 
 	@Autowired
 	private UserBaseInfoDao userBaseInfoDao;
+	@Autowired
+	private StoreInDao storeInDao;
+
 
-	
 	@Override
 	public Enterprise getEnterpriseInfo(Long uu) {
-		
+
 		return enterpriseDao.findByUu(uu);
 	}
 
@@ -116,6 +122,13 @@ public class EnterpriseServiceImpl implements EnterpriseService{
 	@Override
 	public Enterprise save(Enterprise enterprise) {
 		Enterprise existEnterprise = enterpriseDao.findOne(enterprise.getUu());
+		//更新店铺中的企业信息
+		List<StoreIn> storeIns = storeInDao.findByEnUU(enterprise.getUu());
+		for (StoreIn storeIn : storeIns) {
+            EnterpriseSimple enterpriseSimple = EnterpriseSimple.translateSimple(enterprise);
+			storeIn.setEnterprise(enterpriseSimple);
+			storeInDao.save(storeIn);
+		}
 		if (existEnterprise == null)
 			throw new IllegalArgumentException();
 		try {
@@ -127,6 +140,8 @@ public class EnterpriseServiceImpl implements EnterpriseService{
 		return enterpriseDao.save(enterprise);
 	}
 
+
+
 	private void postToAccountCenter(Enterprise enterprise) throws Exception {
 	/*	UserSpaceDetail detail = new UserSpaceDetail();
 		detail.setAddress(enterprise.getEnAddress());

+ 2 - 1
src/main/java/com/uas/platform/b2c/common/account/v2/service/impl/EnterpriseServiceImpl.java

@@ -56,7 +56,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         //enterprise.setEnArea(userSpaceView.get());
         enterprise.setEnCorporation(userSpaceView.getCorporation());
         enterprise.setEnBussinessCode(userSpaceView.getBusinessCode());
-        enterprise.setEnFax(userSpaceView.getTelephone());
+       // enterprise.setEnFax(userSpaceView.);
         enterprise.setEnTel(userSpaceView.getTelephone());
         //enterprise.setEnEmail(userSpaceView.get());
         //enterprise.setEnIndustry(userSpaceView.());
@@ -65,6 +65,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         enterprise.setUu(Long.valueOf(userSpaceView.getSpaceUU()));
         //Long userUU = admins.get(0).getUserUU();
         enterprise.setEnAdminuu(userSpaceView.getAdminUU());
+        enterprise.setEnValidCode(userSpaceView.getValidCode());
         Enterprise newEn = enterpriseDao.save(enterprise);
 
         User adminUser = null;

+ 28 - 0
src/main/java/com/uas/platform/b2c/core/config/SysConf.java

@@ -154,6 +154,18 @@ public class SysConf {
 	@Value("#{sys.searchUrl}")
 	private String messageServiceIp;
 
+	/**
+	 * b2b域名
+	 */
+	@Value("#{sys.b2bDomain}")
+	private String b2bDomain;
+
+    /**
+     * b2b网址
+     */
+	@Value(("#{sys.b2b}"))
+    private String b2bUrl;
+
 	public Boolean getRebuildIndexesOnRefresh() {
 		return rebuildIndexesOnRefresh;
 	}
@@ -333,4 +345,20 @@ public class SysConf {
 	public void setYesGateway(String yesGateway) {
 		this.yesGateway = yesGateway;
 	}
+
+	public String getB2bDomain() {
+		return b2bDomain;
+	}
+
+	public void setB2bDomain(String b2bDomain) {
+		this.b2bDomain = b2bDomain;
+	}
+
+    public String getB2bUrl() {
+        return b2bUrl;
+    }
+
+    public void setB2bUrl(String b2bUrl) {
+        this.b2bUrl = b2bUrl;
+    }
 }

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

@@ -166,7 +166,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 		int rowNum = sheet.getLastRowNum();
 		if (rowNum > 2000) {
 			throw new IllegalOperatorException
-					("您上传的信息超过2000条,请拆分成2000以再上传");
+					("您上传的信息超过2000条,请拆分成2000以再上传");
 		}
 		List<ReleaseProductByBatch> releaseProductByBatchs = new ArrayList<>(rowNum);
 		String batch = createNumberService.getTimeNumber("product$goods", 8, rowNum);

+ 17 - 0
src/main/java/com/uas/platform/b2c/prod/product/component/controller/ComponentSubmitController.java

@@ -63,6 +63,23 @@ public class ComponentSubmitController {
 		return componentSubmit;
 	}
 
+	/**
+	 * 保存标准器件提交信息(来自新增品牌,修改品牌) 2018年4月20日 09:49:19 前台插件禁用flash会失效,新增上传方法 dongbw
+	 *
+	 * @param component 器件申请信息
+	 * @param uploadItem 规格书附件
+	 * @return 器件申请信息
+	 */
+	@RequestMapping(value = "/upload", method = RequestMethod.POST)
+	public ComponentSubmit saveComponentSubmitWithUploadItem(String component, FileUpload uploadItem) {
+		ComponentSubmit componentSubmit = FastjsonUtils.fromJson(component, ComponentSubmit.class);
+		componentSubmit.setId(null);
+		componentSubmit = componentSubmitService.saveComponentSubmit(componentSubmit, uploadItem);
+		operationInfoService.save(componentSubmit, ServiceCode.componentApply.value());
+		logger.log("器件维护", "保存器件申请", "保存器件申请,原厂型号:" + componentSubmit.getCode(), componentSubmit.getCode(), componentSubmit.getId());
+		return componentSubmit;
+	}
+
 	/**
 	 * 审核通过
 	 * 

+ 13 - 1
src/main/java/com/uas/platform/b2c/prod/product/component/service/ComponentSubmitService.java

@@ -1,7 +1,10 @@
 package com.uas.platform.b2c.prod.product.component.service;
 
 import com.uas.platform.b2c.common.base.model.FileUpload;
-import com.uas.platform.b2c.prod.product.component.modal.*;
+import com.uas.platform.b2c.prod.product.component.modal.Component;
+import com.uas.platform.b2c.prod.product.component.modal.ComponentCrawlSubDetail;
+import com.uas.platform.b2c.prod.product.component.modal.ComponentCrawlSubmit;
+import com.uas.platform.b2c.prod.product.component.modal.ComponentSubmit;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.model.PageInfo;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -35,6 +38,15 @@ public interface ComponentSubmitService {
 	 */
 	public ComponentSubmit saveComponentSubmit(ComponentSubmit componentSubmit);
 
+	/**
+	 * 保存标准器件版本信息(来自新增,更新)
+	 *
+	 * @param componentSubmit  器件申请信息
+	 * @param uploadItem 规格书附件
+	 * @return 器件申请信息
+	 */
+	public ComponentSubmit saveComponentSubmit(ComponentSubmit componentSubmit, FileUpload uploadItem);
+
 	/**
 	 * 根据id查找提交的标准器件信息
 	 * 

+ 13 - 0
src/main/java/com/uas/platform/b2c/prod/product/component/service/impl/ComponentSubmitServiceImpl.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2c.prod.product.component.service.impl;
 
 import com.uas.platform.b2c.common.account.dao.UserBaseInfoDao;
 import com.uas.platform.b2c.common.base.model.FileUpload;
+import com.uas.platform.b2c.common.base.service.FileService;
 import com.uas.platform.b2c.common.base.service.SendMessageService;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
@@ -108,6 +109,9 @@ public class ComponentSubmitServiceImpl implements ComponentSubmitService {
 	@Autowired
 	private KindContrastDao kindContrastDao;
 
+	@Autowired
+	private FileService fileService;
+
 	@Override
 	@Transactional
 	public Component componentSubmitAudit(ComponentSubmit componentSubmit) {
@@ -285,6 +289,15 @@ public class ComponentSubmitServiceImpl implements ComponentSubmitService {
 		return componentSubmitDao.save(componentSubmit);
 	}
 
+	@Override
+	public ComponentSubmit saveComponentSubmit(ComponentSubmit componentSubmit, FileUpload uploadItem) {
+		if ((uploadItem != null) && (uploadItem.getFile() != null)) {
+			String attachUrl = fileService.save(uploadItem);
+			componentSubmit.setAttach(attachUrl);
+		}
+		return saveComponentSubmit(componentSubmit);
+	}
+
 	@Override
 	public ComponentSubmit findComponentSubmitById(Long id) {
 		return componentSubmitDao.findOne(id);

+ 1 - 0
src/main/java/com/uas/platform/b2c/prod/store/service/impl/QualificationServiceImpl.java

@@ -102,6 +102,7 @@ public class QualificationServiceImpl implements QualificationService {
 		qualification.setUploaderUU(user.getUserUU());
 		qualification.setCreateTime(date);
 		qualification.setUpdateTime(date);
+		qualificationDao.save(qualification);
 		return qualification;
 	}
 }

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

@@ -122,6 +122,7 @@ public class StoreApplyServiceImpl implements StoreApplyService {
 		storeApply.setUserUU(user.getUserUU());
 		storeApply.setUserName(user.getUserName());
 		storeApply.setCreateTime(date);
+		//将storeApply设置为预审核状态;
 		storeApply.setStatus(StoreApply.ApplyStatus.PREPARE);
 		// 设置店铺基础信息
 		storeApply.setEnUU(user.getEnterprise().getUu());

+ 1 - 1
src/main/resources/dev/account.properties

@@ -11,7 +11,7 @@ sso.cookie.secure=false
 sso.cookie.browser=false
 sso.login.url=http://192.168.253.6:32323
 sso.logout.url=http://192.168.253.6:32323/logquit
-sso.register.url=http://192.168.253.6:32323/register/personalRegistration?appId=mall
+sso.register.url=http://192.168.253.6:32323/register/personalRegistration
 sso.updatePassword.url=http://192.168.253.6:32323/reset/changePasswordChooseStyle
 sso.updateMobile.url=http://192.168.253.6:32323/validation/phoneValidation
 sso.updateEmail.url=http://192.168.253.6:32323/validation/emailValidation

+ 5 - 1
src/main/resources/dev/sys.properties

@@ -47,4 +47,8 @@ kafka-bootstrap-servers=10.10.100.11:9292,10.10.100.12:9292,10.10.100.13:9292,10
 
 #inquiry service url
 inquiryServiceUrl=http://218.17.158.219:24000
-inquiryServiceInnerUrl=http://218.17.158.219:24000
+inquiryServiceInnerUrl=http://218.17.158.219:24000
+
+#b2b
+b2b=http://218.17.158.219/b2b_test
+b2bDomain=218.17.158.219:9000/b2b_test

+ 1 - 1
src/main/resources/prod/account.properties

@@ -10,7 +10,7 @@ sso.cookie.secure=false
 sso.cookie.browser=false
 sso.login.url=https://sso.ubtob.com
 sso.logout.url=https://sso.ubtob.com/logquit
-sso.register.url=https://sso.ubtob.com/register/personalRegistration?appId=mall
+sso.register.url=https://sso.ubtob.com/register/personalRegistration
 sso.updatePassword.url=https://sso.ubtob.com/reset/changePasswordChooseStyle
 sso.updateMobile.url=https://sso.ubtob.com/validation/phoneValidation
 sso.updateEmail.url=https://sso.ubtob.com/validation/emailValidation

+ 6 - 1
src/main/resources/prod/sys.properties

@@ -49,4 +49,9 @@ kafka-bootstrap-servers=10.10.100.11:9292,10.10.100.12:9292,10.10.100.13:9292,10
 
 #inquiry service url
 inquiryServiceUrl=https://api-inquiry.usoftmall.com
-inquiryServiceInnerUrl=http://10.10.0.254:8080
+inquiryServiceInnerUrl=http://10.10.0.254:8080
+
+#b2b
+b2b=http://uas.ubtob.com
+b2bDomain=uas.ubtob.com
+b2bInner=http://10.10.100.103:8080

+ 1 - 1
src/main/resources/test/account.properties

@@ -10,7 +10,7 @@ sso.cookie.secure=false
 sso.cookie.browser=false
 sso.login.url=http://192.168.253.6:32323
 sso.logout.url=http://192.168.253.6:32323/logquit
-sso.register.url=http://192.168.253.6:32323/register/personalRegistration?appId=mall
+sso.register.url=http://192.168.253.6:32323/register/personalRegistration
 sso.updatePassword.url=http://192.168.253.6:32323/reset/changePasswordChooseStyle
 sso.updateMobile.url=http://192.168.253.6:32323/validation/phoneValidation
 sso.updateEmail.url=http://192.168.253.6:32323/validation/emailValidation

+ 5 - 1
src/main/resources/test/sys.properties

@@ -48,4 +48,8 @@ kafka-bootstrap-servers=10.10.100.11:9292,10.10.100.12:9292,10.10.100.13:9292,10
 
 #inquiry service url
 inquiryServiceUrl=http://218.17.158.219:24000
-inquiryServiceInnerUrl=http://218.17.158.219:24000
+inquiryServiceInnerUrl=http://218.17.158.219:24000
+
+#b2b
+b2b=http://218.17.158.219/b2b_test
+b2bDomain=218.17.158.219:9000/b2b_test

+ 3 - 1
src/main/webapp/WEB-INF/views/normal/adminWithNav.html

@@ -29,7 +29,9 @@
 	<!-- main menu start -->
 	<div class="sidebar-nav main-menu">
 		<ul class="nav nav-tabs nav-stacked">
-
+			<li class="nav-header">B2B</li>
+			<li class="nav-node"><a href="#/b2b/manage"><i
+					class="fa fa-home"></i><span> b2b后台管理</span></a></li>
 			<li class="nav-header">交易管理</li>
 			<li class="nav-node"><a href="#trade/buyerOrder"><i
 					class="fa fa-home"></i><span> 买家销售单跟踪</span></a></li>

+ 3 - 3
src/main/webapp/resources/css/vendor/sell.css

@@ -5319,15 +5319,15 @@ input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:foc
 /*提示横条*/
 .result{
     width: 100%;
-    height: 30px;
-    line-height: 30px;
+    height: 35px;
+    line-height: 16px;
     text-align: center;
     background: #fef6f2;
     border: 1px solid #ec854d;
     overflow: hidden ;
 }
 .result span{
-    margin-left: 330px;
+    /*margin-left: 330px;*/
     height: 30px;
     font-size: 14px;
     color: #f15601;

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

@@ -1,4 +1,4 @@
- define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ui-form', 'ngLocal', 'ngTable', 'ngSanitize', 'ngDraggable', 'common/services', 'common/directives', 'common/query/brand', 'common/query/address', 'common/query/return' , 'common/query/change' ,'common/query/component', 'common/query/order', 'common/query/purchase', 'common/query/invoice', 'common/query/property', 'common/query/kind', 'common/query/property', 'common/query/receipt', 'common/query/logistics' ,'angular-toaster', 'ui-jquery', 'jquery-uploadify','common/query/dateParse' , 'common/query/bankTransfer' ,'common/query/bankInfo', 'common/query/urlencryption', 'common/query/bill', 'common/query/makerDemand', 'common/query/goods', 'common/query/validtime', 'file-upload','file-upload-shim', 'common/query/slideImage', 'common/query/kindAdvice', 'common/query/responseLogistics', 'common/query/search','common/directives/dynamicInput', 'common/query/auditorMail', 'common/query/tradeBasicProperties', 'common/query/exchangeRate', 'common/query/tradeDeliveryDelayTime', 'common/query/payment', 'common/query/kindContrast', 'common/query/crawlTask', 'common/query/afterSale', 'common/query/refund', 'common/query/messageBoard', 'common/query/logisticsPort', 'common/query/storeInfo', 'common/query/cms', 'common/query/help', 'common/query/commonCount', 'common/module/store_admin_violations_module', 'common/query/internalMessage','common/query/user','common/query/secQuestion','common/query/keyWord','common/query/logUsage','common/query/seekQualityBuyer','common/query/loanApply', 'common/query/supplier', 'common/query/seekSalesman'], function(angularAMD) {
+ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ui-form', 'ngLocal', 'ngTable', 'ngSanitize', 'ngDraggable', 'common/services', 'common/directives', 'common/query/brand', 'common/query/address', 'common/query/return' , 'common/query/change' ,'common/query/component', 'common/query/order', 'common/query/purchase', 'common/query/invoice', 'common/query/property', 'common/query/kind', 'common/query/property', 'common/query/receipt', 'common/query/logistics' ,'angular-toaster', 'ui-jquery', 'jquery-uploadify','common/query/dateParse' , 'common/query/bankTransfer' ,'common/query/bankInfo', 'common/query/urlencryption', 'common/query/bill', 'common/query/makerDemand', 'common/query/goods', 'common/query/validtime', 'file-upload','file-upload-shim', 'common/query/slideImage', 'common/query/kindAdvice', 'common/query/responseLogistics', 'common/query/search','common/directives/dynamicInput', 'common/query/auditorMail', 'common/query/tradeBasicProperties', 'common/query/exchangeRate', 'common/query/tradeDeliveryDelayTime', 'common/query/payment', 'common/query/kindContrast', 'common/query/crawlTask', 'common/query/afterSale', 'common/query/refund', 'common/query/messageBoard', 'common/query/logisticsPort', 'common/query/storeInfo', 'common/query/cms', 'common/query/help', 'common/query/commonCount', 'common/module/store_admin_violations_module', 'common/query/internalMessage','common/query/user','common/query/secQuestion','common/query/keyWord','common/query/logUsage','common/query/seekQualityBuyer','common/query/loanApply', 'common/query/supplier', 'common/query/seekSalesman', 'common/query/b2bManage'], function(angularAMD) {
 	'use strict';
 
 	 /**
@@ -8,7 +8,7 @@
 		 return this.length > 0 ? this[this.length - 1] : null;
 	 };
 
-	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ui.form', 'ng.local', 'ngTable', 'ngSanitize', 'ngDraggable', 'common.services', 'common.directives', 'brandServices', 'addressServices', 'returnServices', 'changeServices', 'componentServices', 'orderServices', 'purchaseServices', 'invoiceServices', 'propertyServices', 'receiptServices', 'logisticsServices', 'common.query.kind', 'toaster','ui.jquery' ,'dateparseServices', 'bankInfo' , 'bankTransfer', 'urlencryptionServices', 'billServices', 'makerDemand', 'goodsServices', 'validtimeServices', 'angularFileUpload', 'slideImageService', 'common.query.kindAdvice', 'responseLogisticsService', 'searchService', 'ngDynamicInput', 'ReviewerEmailInfoService', 'tradeBasicPropertiesServices', 'exchangeRateModule', 'tradeDeliveryDelayTimeModule', 'PaymentService', 'kindContrastServices', 'crawlTaskServices', 'afterSaleService', 'refundModule', 'messageBoardServices', 'logisticsPortService', 'storeInfoServices', 'cmsService', 'helpServices', 'commonCountServices', 'tool.directives', 'StoreAdminViolationsModule', 'internalMessageServices','common.query.user','secQuestionServices','keyWordServices','logUsageServices','seekQualityBuyerServices', 'loanApplyService', 'supplierServices', 'seekSalesmanServices']);
+	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ui.form', 'ng.local', 'ngTable', 'ngSanitize', 'ngDraggable', 'common.services', 'common.directives', 'brandServices', 'addressServices', 'returnServices', 'changeServices', 'componentServices', 'orderServices', 'purchaseServices', 'invoiceServices', 'propertyServices', 'receiptServices', 'logisticsServices', 'common.query.kind', 'toaster','ui.jquery' ,'dateparseServices', 'bankInfo' , 'bankTransfer', 'urlencryptionServices', 'billServices', 'makerDemand', 'goodsServices', 'validtimeServices', 'angularFileUpload', 'slideImageService', 'common.query.kindAdvice', 'responseLogisticsService', 'searchService', 'ngDynamicInput', 'ReviewerEmailInfoService', 'tradeBasicPropertiesServices', 'exchangeRateModule', 'tradeDeliveryDelayTimeModule', 'PaymentService', 'kindContrastServices', 'crawlTaskServices', 'afterSaleService', 'refundModule', 'messageBoardServices', 'logisticsPortService', 'storeInfoServices', 'cmsService', 'helpServices', 'commonCountServices', 'tool.directives', 'StoreAdminViolationsModule', 'internalMessageServices','common.query.user','secQuestionServices','keyWordServices','logUsageServices','seekQualityBuyerServices', 'loanApplyService', 'supplierServices', 'seekSalesmanServices', 'b2bManageService']);
 	app.init = function() {
 		angularAMD.bootstrap(app);
 	};
@@ -801,7 +801,14 @@
             controller: 'LoanApplyListCtrl',
             controllerUrl: 'app/controllers/fa/LoanApplyListCtrl',
             title: '贷款申请列表'
-        }));
+        })).state('b2bManage', angularAMD.route({
+			// b2b后台管理
+			url: '/b2b/manage',
+            templateUrl: 'static/view/admin/b2b/manage.html',
+            controller: 'b2bManageCtrl',
+            controllerUrl: 'app/controllers/b2b/b2bManageCtrl',
+            title: '贷款申请列表'
+		}));
 		
 		$httpProvider.interceptors.push(['Loading', '$q', function(Loading, $q) {
 			return {

+ 37 - 0
src/main/webapp/resources/js/admin/controllers/b2b/b2bManageCtrl.js

@@ -0,0 +1,37 @@
+define(['app/app'], function (app) {
+    'use strict';
+    app.register.controller('b2bManageCtrl', ['$scope', 'ngTableParams', 'manage', 'toaster', 'BaseService', function ($scope, ngTableParams, manage, toaster, BaseService) {
+        //table设置
+        $scope.tableParams = new ngTableParams({
+            page : 1,
+            count : 20
+        }, {
+            total : 0,
+            getData : function ($defer, params) {
+                // $scope.loading = true;
+                var param = BaseService.parseParams(params.url());
+                param.keyword = $scope.keyword;
+                manage.getEnterpriseList(param, function (data) {
+                    params.total(data.totalElements);
+                    $defer.resolve(data.content);
+                }, function (response) {
+                    toaster.pop('error', '获取企业列表失败');
+                });
+            }
+        });
+
+        // 根据关键词搜索
+        $scope.onSearch = function() {
+            $scope.tableParams.reload();
+        }
+
+        /**
+         * 点击跳转商务平台
+         *
+         * @param uu uu号
+         */
+        $scope.redirect = function(uu, url) {
+            window.open('b2b/manage/authed/redirect/' + uu + (url ? ('?url=' + encodeURI(url)) : ''));
+        }
+    }]);
+});

+ 38 - 18
src/main/webapp/resources/js/common/controllers/commonCtrls.js

@@ -1752,26 +1752,46 @@ define([ 'app/app' ], function(app) {
 		};
 	}]);
 
-  /**
-   * 左侧导航栏控制器
-   */
-	app.controller('leftNavCtrl', ["$scope", "toaster", function($scope, toaster){
+	/**
+	 * 左侧导航栏控制器
+	 */
+	app.controller('leftNavCtrl', ["$scope", "toaster", '$modal', '$rootScope', function($scope, toaster, $modal, $rootScope){
+		//安全设置提醒框
+		$scope.openHomeCenterModel = function() {
+			var modalInstance = $modal.open({
+				animation: true,
+				templateUrl: $rootScope.rootPath + '/static/view/usercenter/modal/homeCenter_modal.html',
+				controller:'homeModalCtrl'
+			});
+			modalInstance.result.then(function(){
+			}, function(){
+			});
+		};
 		$scope.promptUpdate = function() {
-			console.info($scope.userInfo.pwdEnable);
-			if (!$scope.userInfo.pwdEnable) {
-        toaster.pop("info", "请修改登录密码");
-        return;
-			}
-      if (!$scope.userInfo.emailValidCode || $scope.userInfo.emailValidCode != 2) {
-        toaster.pop("info", "请绑定邮箱");
-        return;
-      }
-      if (!$scope.userInfo.haveUserQuestion) {
-        toaster.pop("info",  "请设置密保问题 ");
-        return;
-      }
+            if (!$scope.userInfo.pwdEnable || !$scope.userInfo.haveUserQuestion||!$scope.userInfo.emailValidCode || $scope.userInfo.emailValidCode != 2) {
+                $scope.openHomeCenterModel();
+            }
+			/*if (!$scope.userInfo.pwdEnable || !$scope.userInfo.userEmail || !$scope.userInfo.haveUserQuestion) {
+				$scope.openHomeCenterModel();
+			}*/
+		};
+	}]);
+
+	app.controller('homeModalCtrl', ['$rootScope', '$scope',  '$modalInstance', 'toaster', '$http', 'ShippingAddress','$state', function($rootScope, $scope, $modalInstance, toaster, $http, ShippingAddress,$state){
+		$rootScope.$on('$stateChangeStart',
+			function(event, toState, toParams, fromState, fromParams){
+				$modalInstance.dismiss();
+			})
+		$scope.goLink = function(op) {
+			$state.go('vendor_account_management',{op:op});
+			$modalInstance.dismiss('cancel');
+		}
+
+		$scope.cancel = function () {
+			$modalInstance.dismiss('cancel');
 		}
-  }]);
+	}]);
+
 	var getOriginalData = function(data) {
 		var result = {};
 		if(data&&data.length) {

+ 13 - 0
src/main/webapp/resources/js/common/query/b2bManage.js

@@ -0,0 +1,13 @@
+define([ 'ngResource' ], function() {
+    angular.module('b2bManageService', [ 'ngResource' ]).factory('manage', ['$resource', function($resource) {
+        return $resource('b2b', {}, {
+            /**
+             * 获取企业列表
+             */
+            getEnterpriseList: {
+                url: 'b2b/manage/enterpriseList',
+                method:'GET'
+            }
+        });
+    }])
+});

+ 53 - 23
src/main/webapp/resources/js/prod/controllers/ComponentEditCtrl.js

@@ -212,22 +212,35 @@ define([ 'app/app', 'jquery-summernote', 'jquery-uploadify' ], function(app) {
 				});
 			};
 			
-			// 图片上传成功之后
-			$scope.onAttachUploadSuccess = function(data){
-				$scope.$apply(function() {
-					$scope.component.attachFile = data;
-					$scope.component.attach = data.path;
-					if($scope.component.attachFile.size >= 1024 * 1024) {
-						$scope.component.attachFile.size = $filter('number')($scope.component.attachFile.size / 1024 / 1024, 1) + 'Mb';
-					} else if($scope.component.attachFile.size >= 1024) {
-						$scope.component.attachFile.size = $filter('number')($scope.component.attachFile.size / 1024, 1) + 'Kb';
-					} else {
-						$scope.component.attachFile.size = $scope.component.attachFile.size + 'b';
-					}
-					$scope.$uploading = false;
-				});
-			};
-			
+			// // 图片上传成功之后
+			// $scope.onAttachUploadSuccess = function(data){
+			// 	$scope.$apply(function() {
+			// 		$scope.component.attachFile = data;
+			// 		$scope.component.attach = data.path;
+			// 		if($scope.component.attachFile.size >= 1024 * 1024) {
+			// 			$scope.component.attachFile.size = $filter('number')($scope.component.attachFile.size / 1024 / 1024, 1) + 'Mb';
+			// 		} else if($scope.component.attachFile.size >= 1024) {
+			// 			$scope.component.attachFile.size = $filter('number')($scope.component.attachFile.size / 1024, 1) + 'Kb';
+			// 		} else {
+			// 			$scope.component.attachFile.size = $scope.component.attachFile.size + 'b';
+			// 		}
+			// 		$scope.$uploading = false;
+			// 	});
+			// };
+
+            //上传规格书
+            $scope.onAttachUploadSuccess = function () {
+                if($scope.component.attachFile[0].size >= 1024 * 1024) {
+                    $scope.component.attachFile.size = $filter('number')($scope.component.attachFile[0].size / 1024 / 1024, 1) + 'Mb';
+                } else if($scope.component.attachFile.size >= 1024) {
+                    $scope.component.attachFile.size = $filter('number')($scope.component.attachFile[0].size / 1024, 1) + 'Kb';
+                } else {
+                    $scope.component.attachFile.size = $scope.component.attachFile[0].size + 'b';
+                }
+                $scope.component.attach = $scope.component.attachFile[0].name;
+                $scope.$uploading = false;
+            };
+
 			// 重新上传,取消重新上传
 			$scope.reUpload = function() {
 				$scope.$uploading = !$scope.$uploading;
@@ -321,13 +334,30 @@ define([ 'app/app', 'jquery-summernote', 'jquery-uploadify' ], function(app) {
 					toaster.pop('error', '提交失败', '详细描述不可为空');
 					return;
 				}
-				// 提交保存
-				ComponentSubmit.save({}, $scope.component, function(data){
-					toaster.pop('success', '提示', '提交成功,请等待审核');
-					window.location.replace('vendor#/home/componentMaintenance');
-				},function(response){
-					toaster.pop('error', '提交失败', response.data);
-				});
+				// // 提交保存
+				// ComponentSubmit.save({}, $scope.component, function(data){
+				// 	toaster.pop('success', '提示', '提交成功,请等待审核');
+				// 	window.location.replace('vendor#/home/componentMaintenance');
+				// },function(response){
+				// 	toaster.pop('error', '提交失败', response.data);
+				// });
+                var file = null;
+                if($scope.component.attachFile && $scope.component.attachFile[0]) {
+                    file = $scope.component.attachFile[0];
+                }
+                $upload.upload({
+                    url: 'produce/componentSubmit/upload',
+                    file: file,
+                    method: 'POST',
+                    data: {
+                        component: $scope.component
+                    }
+                }).success(function(data){
+                    toaster.pop('success', '提示', '提交成功,请等待审核');
+                    window.location.replace('vendor#/home/componentMaintenance');
+                }).error(function(response){
+                    toaster.pop('error', '提交失败', response.data);
+                });
 			};
 		}]);
 		

+ 6 - 2
src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_home_ctrl.js

@@ -29,10 +29,14 @@ define(['app/app', 'calendar'], function(app) {
       }
 
         //安全级别
-        if(!($scope.userInfo.pwdEnable && $scope.userInfo.haveUserQuestion && $scope.userInfo.userEmail)){
-          $scope.openHomeCenterModel();
+        if (!$scope.userInfo.pwdEnable || !$scope.userInfo.haveUserQuestion||!$scope.userInfo.emailValidCode || $scope.userInfo.emailValidCode != 2) {
+            $scope.openHomeCenterModel();
         }
 
+      /*  if(!($scope.userInfo.pwdEnable && $scope.userInfo.haveUserQuestion && $scope.userInfo.userEmail)){
+          $scope.openHomeCenterModel();
+        }*/
+
         /**
          * 获取推荐新店信息
          */

+ 56 - 50
src/main/webapp/resources/js/vendor/app.js

@@ -643,53 +643,58 @@ define([ 'angularAMD', 'ngLocal', 'common/services', 'common/directives', 'commo
 		$rootScope.rootPath = BaseService.getRootPath();
 		$rootScope.page = 'vendor';// 导航栏状态,'个人中心'状态激活
 
-		$rootScope.$on('$stateChangeStart', function (event, toState) {
+		var getToStateName = function () {
+			if ($rootScope.store && (!$rootScope.store.status || $rootScope.store.status === 'OPENED')) {
+				return 'vendor_store_maintain';
+			} else if ($rootScope.store && $rootScope.store.status && $rootScope.store.status !== 'OPENED') {
+				return 'vendor_store_close';
+			} else if ($rootScope.applyStatus === 'NONE') {
+				return 'vendor_store_apply';
+			} else if ($rootScope.applyStatus === 'PREPARE') {
+				return 'vendor_store_wait';
+			} else if ($rootScope.applyStatus === 'PASS') {
+				return 'vendor_store_info';
+			} else {
+				return 'vendor_index';
+			}
+		};
 
-			var getToStateName = function () {
-				if ($rootScope.store && (!$rootScope.store.status || $rootScope.store.status === 'OPENED')) {
-					return 'vendor_store_maintain';
-				} else if ($rootScope.store && $rootScope.store.status && $rootScope.store.status !== 'OPENED') {
-					return 'vendor_store_close';
-				} else if ($rootScope.applyStatus === 'NONE') {
-					return 'vendor_store_apply';
-				} else if ($rootScope.applyStatus === 'PREPARE') {
-					return 'vendor_store_wait';
-				} else if ($rootScope.applyStatus === 'PASS') {
-					return 'vendor_store_info';
-				} else {
-					return 'vendor_index';
-				}
-			};
+		// 创建店铺的Promise对象
+		var deferred = $q.defer();
+		StoreInfo.existStore({}, {}, function (store) {
+			deferred.resolve(store);
+		}, function (error) {
+			deferred.reject(error);
+		});
+		var storePromise = deferred.promise;
+		$rootScope.storePromise = storePromise;
 
-			// 创建店铺的Promise对象
-			var deferred = $q.defer();
-			StoreInfo.existStore({}, {}, function (store) {
-				deferred.resolve(store);
-			}, function (error) {
-				deferred.reject(error);
-			});
-			var storePromise = deferred.promise;
-			$rootScope.storePromise = storePromise;
+		// 创建开店申请的Promise对象
+		var deferred1 = $q.defer();
+		StoreInfo.findShopOwnerApplyByNormalStatus({}, {}, function (result) {
+			deferred1.resolve(result);
+		}, function (error) {
+			deferred1.reject(error);
+		});
+		var applyPromise = deferred1.promise;
 
-			// 创建开店申请的Promise对象
-			var deferred1 = $q.defer();
-			StoreInfo.findShopOwnerApplyByNormalStatus({}, {}, function (result) {
-				deferred1.resolve(result);
-			}, function (error) {
-				deferred1.reject(error);
-			});
-			var applyPromise = deferred1.promise;
+		// 合并多个Promise对象
+		$q.all([storePromise, applyPromise]).then(function (result) {
+			$rootScope.store = result[0] && result[0].uuid ? result[0] : null;
+			$rootScope.applyInfo = null;
+			if (result[1] && result[1].success) {
+				$rootScope.applyInfo = result[1].data;
+				$rootScope.applyStatus = result[1].data ? result[1].data.status : 'NONE';
+			} else {
+				$rootScope.applyStatus = 'NONE';
+			}
 
-			// 合并多个Promise对象
-			$q.all([storePromise, applyPromise]).then(function (result) {
-				$rootScope.store = result[0] && result[0].uuid ? result[0] : null;
-				$rootScope.applyInfo = null;
-				if (result[1] && result[1].success) {
-					$rootScope.applyInfo = result[1].data;
-					$rootScope.applyStatus = result[1].data ? result[1].data.status : 'NONE';
-				} else {
-					$rootScope.applyStatus = 'NONE';
-				}
+
+			if ($rootScope.applyStatus === 'NONE') {
+				$state.go('vendor_store_apply');
+			}
+
+			$rootScope.$on('$stateChangeStart', function (event, toState) {
 
 				if (toState.name === 'vendor_store_apply' && $rootScope.applyStatus !== 'NONE') {
 					event.preventDefault();
@@ -726,14 +731,15 @@ define([ 'angularAMD', 'ngLocal', 'common/services', 'common/directives', 'commo
 					return ;
 				}
 				console.log('route', toState.name);
-			})['catch'](function () {
-				$rootScope.store = null;
-				$rootScope.applyInfo = null;
-				$rootScope.applyStatus = 'NONE';
-				event.preventDefault();
-				console.log('route', toState.name, 'vendor_index');
-				$state.go('vendor_index');
+
 			});
+
+		})['catch'](function () {
+			$rootScope.store = null;
+			$rootScope.applyInfo = null;
+			$rootScope.applyStatus = 'NONE';
+			event.preventDefault();
+			$state.go('vendor_index');
 		});
 	}]);
 

+ 50 - 19
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_component_apply_ctrl.js

@@ -4,7 +4,7 @@
  */
 define(['app/app', 'jquery-uploadify'], function(app) {
     "use strict";
-    app.register.controller('vendorComponentApplyCtrl', ['$scope', '$rootScope', 'Search', 'KindAPI', 'ComponentActive', 'ComponentActiveAPI', '$filter', 'ComponentSubmit', 'toaster', 'BrandActiveAPI', '$modal', function($scope, $rootScope, Search, KindAPI, ComponentActive, ComponentActiveAPI, $filter, ComponentSubmit, toaster, BrandActiveAPI, $modal) {
+    app.register.controller('vendorComponentApplyCtrl', ['$scope', '$rootScope', 'Search', 'KindAPI', 'ComponentActive', 'ComponentActiveAPI', '$filter', 'ComponentSubmit', 'toaster', 'BrandActiveAPI', '$modal', '$upload', function($scope, $rootScope, Search, KindAPI, ComponentActive, ComponentActiveAPI, $filter, ComponentSubmit, toaster, BrandActiveAPI, $modal, $upload) {
         $rootScope.active = "vendor_component_apply";
 
         document.title = "器件申请" + "-优软商城";
@@ -239,21 +239,34 @@ define(['app/app', 'jquery-uploadify'], function(app) {
             toaster.pop('success', '上传成功');
         };
 
-        // 规格书上传成功之后
-        $scope.onAttachUploadSuccess = function(data){
-            $scope.$apply(function() {
-                $scope.component.attachFile = data;
-                $scope.component.attach = data.path;
-                if($scope.component.attachFile.size >= 1024 * 1024) {
-                    $scope.component.attachFile.size = $filter('number')($scope.component.attachFile.size / 1024 / 1024, 1) + 'Mb';
-                } else if($scope.component.attachFile.size >= 1024) {
-                    $scope.component.attachFile.size = $filter('number')($scope.component.attachFile.size / 1024, 1) + 'Kb';
-                } else {
-                    $scope.component.attachFile.size = $scope.component.attachFile.size + 'b';
-                }
-                toaster.pop('success', '上传成功');
-                $scope.$uploading = false;
-            });
+        // // 规格书上传成功之后 - 使用uploadify jQuery插件,在禁用flash时,无法正常显示,所以修改 2018年4月20日 09:20:43 dongbw
+        // $scope.onAttachUploadSuccess = function(data){
+        //     $scope.$apply(function() {
+        //         $scope.component.attachFile = data;
+        //         $scope.component.attach = data.path;
+        //         if($scope.component.attachFile.size >= 1024 * 1024) {
+        //             $scope.component.attachFile.size = $filter('number')($scope.component.attachFile.size / 1024 / 1024, 1) + 'Mb';
+        //         } else if($scope.component.attachFile.size >= 1024) {
+        //             $scope.component.attachFile.size = $filter('number')($scope.component.attachFile.size / 1024, 1) + 'Kb';
+        //         } else {
+        //             $scope.component.attachFile.size = $scope.component.attachFile.size + 'b';
+        //         }
+        //         toaster.pop('success', '上传成功');
+        //         $scope.$uploading = false;
+        //     });
+        // };
+
+        //上传规格书
+        $scope.onAttachUploadSuccess = function () {
+            if($scope.component.attachFile[0].size >= 1024 * 1024) {
+                $scope.component.attachFile.size = $filter('number')($scope.component.attachFile[0].size / 1024 / 1024, 1) + 'Mb';
+            } else if($scope.component.attachFile.size >= 1024) {
+                $scope.component.attachFile.size = $filter('number')($scope.component.attachFile[0].size / 1024, 1) + 'Kb';
+            } else {
+                $scope.component.attachFile.size = $scope.component.attachFile[0].size + 'b';
+            }
+            $scope.component.attach = $scope.component.attachFile[0].name;
+            $scope.$uploading = false;
         };
 
         // 重新上传,取消重新上传
@@ -368,11 +381,29 @@ define(['app/app', 'jquery-uploadify'], function(app) {
 
             $scope.component.properties = getProperValues();// 属性
 
-            // 提交保存
-            ComponentSubmit.save({}, $scope.component, function(data){
+            // // 提交保存
+            // ComponentSubmit.save({}, $scope.component, function(data){
+            //     toaster.pop('success', '提示', '提交成功,请等待审核');
+            //     window.location.replace('vendor#/component/applylist');
+            // },function(response){
+            //     $scope.submitEnable = true;
+            //     toaster.pop('error', '提交失败', response.data);
+            // });
+            var file = null;
+            if($scope.component.attachFile && $scope.component.attachFile[0]) {
+                file = $scope.component.attachFile[0];
+            }
+            $upload.upload({
+                url: 'produce/componentSubmit/upload',
+                file: file,
+                method: 'POST',
+                data: {
+                    component: $scope.component
+                }
+            }).success(function(data){
                 toaster.pop('success', '提示', '提交成功,请等待审核');
                 window.location.replace('vendor#/component/applylist');
-            },function(response){
+            }).error(function(response){
                 $scope.submitEnable = true;
                 toaster.pop('error', '提交失败', response.data);
             });

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

@@ -221,10 +221,10 @@ define(['app/app'], function (app) {
 				toaster.pop('error', '企业信息不能为空');
 				return false;
 			}
-			if (!$scope.sampleStore.enterprise.enUrl || $scope.sampleStore.enterprise.enUrl == '') {
+			/*if (!$scope.sampleStore.enterprise.enUrl || $scope.sampleStore.enterprise.enUrl == '') {
 				toaster.pop('error', '企业官网地址不能为空');
 				return false;
-			}
+			}*/
 			if (!$scope.sampleStore.enterprise.address || $scope.sampleStore.enterprise.address == '') {
 				toaster.pop('error', '企业地址不能为空');
 				return false;
@@ -233,10 +233,10 @@ define(['app/app'], function (app) {
 				toaster.pop('error', '请输入正确的电话号码');
 				return false;
 			}
-			if (!$scope.sampleStore.enterprise.enFax || $scope.sampleStore.enterprise.enFax == '') {
+			/*if (!$scope.sampleStore.enterprise.enFax || $scope.sampleStore.enterprise.enFax == '') {
 				toaster.pop('error', '请输入正确的企业传真');
 				return false;
-			}
+			}*/
 			var store = {};
 			store.storeShortName = $scope.sampleStore.storeShortName;
             store.storeName = $scope.sampleStore.storeName;

+ 53 - 0
src/main/webapp/resources/view/admin/b2b/manage.html

@@ -0,0 +1,53 @@
+<div class="row-fluid sortable">
+    <div class="box">
+        <div class="box-header well" data-original-title>
+            <i class="icon-user"></i> B2B商务企业列表
+        </div>
+        <div class="box-content">
+            <!-- ng-tableStart -->
+            <div class="fullscreen" style="padding: 10px;">
+                <div class="row">
+                    <div class="col-xs-2">
+                        共<span class="badge" ng-bind="tableParams.total()"></span>条
+                    </div>
+                    <div class="col-sm-4">
+                        <div class="input-group">
+                            <input placeholder="企业名称或UU号进行搜索" class="form-control"
+                                   ng-model="keyword"  ng-search="onSearch()" size="16" type="text">
+                            <span class="input-group-btn">
+								<button class="btn btn-primary" type="button" ng-click="onSearch()">搜索</button>
+							</span>
+                        </div>
+                    </div>
+                </div>
+                <table ng-table="tableParams" class="table table-bordered table-striped" style="margin-top: 10px;">
+                    <thead>
+                    <tr>
+                        <th class="text-center" width="60">序号</th>
+                        <th class="text-center" width="100">UU</th>
+                        <th class="text-center" width="200">企业名称</th>
+                        <th class="text-center" width="300">企业地址</th>
+                        <th class="text-center" width="150">营业执照</th>
+                        <th class="text-center" width="120">注册时间</th>
+                    </tr>
+                    </thead>
+                    <tbody>
+                    <tr ng-repeat="en in $data" ng-click="redirect(en.uu)">
+                        <td class="text-center" ng-bind="$index + 1"></td>
+                        <td class="text-center" ng-bind="en.uu"></td>
+                        <td class="text-center" ng-bind="en.enName"></td>
+                        <td class="text-center" ng-bind="en.enAddress"></td>
+                        <td class="text-center" ng-bind="en.enBussinessCode"></td>
+                        <td class="text-center" ng-bind="en.enDate | date: 'yyyy-MM-dd HH:mm'"></td>
+                    </tr>
+                    <tr ng-if="$data.length == 0">
+                        <td colspan="10" class="text-center" style="line-height: 40px; font-size: 20px;"><i class="fa fa-smile-o fa-lg"></i> 暂未查询到企业信息</td>
+                    </tr>
+                    </tbody>
+                </table>
+            </div>
+            <a id="bottom"></a>
+            <!-- ng-tableEnd -->
+        </div>
+    </div><!--/span-->
+</div><!--/row-->

+ 5 - 0
src/main/webapp/resources/view/admin/index.html

@@ -31,6 +31,11 @@
 					<li><a href="#/product/sailingGoods"> <span
 							class="yellow">8</span> 在售中的产品
 					</a></li>
+					<li>
+						<a href="#/b2b/manage">
+							<span class="green">9</span> b2b管理页面
+						</a>
+					</li>
 				</ul>
 			</div>
 		</div>

+ 1 - 1
src/main/webapp/resources/view/prod/product_component_edit_detail.html

@@ -218,7 +218,7 @@
 									</div>
 								</div>
 								<div class="upload-container" ng-if="!component.attachFile || $uploading">
-									<div id="attachUpload" on-success="onAttachUploadSuccess($data)" uploadify="{}"></div>
+									<input class="input-file-default" type="file" ng-file-select ng-model="component.attachFile" ng-change="onAttachUploadSuccess()" ng-multiple="false" accept="image/gif,image/jpeg,image/jpg,image/png,image/svg,application/pdf,*.pdf">
 								</div>
 								<div class="help-block">请上传器件的官方规格书文档!</div>
 							</div>

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

@@ -241,10 +241,10 @@
 					<i ng-if="userInfo.secLevel==5 || userInfo.secLevel==6">强</i>
 					<!--完成<a href="javascript:void(0)"> 密保设置</a>,提升账户安全。-->
 				</span>
-        <span class="safe-remind" ng-hide="userInfo.pwdEnable && userInfo.haveUserQuestion && userInfo.userEmail">
+        <span class="safe-remind" ng-hide="userInfo.pwdEnable && userInfo.haveUserQuestion && userInfo.emailValidCode && userInfo.emailValidCode == 2">
           你的账户的安全等级过低,请 <a ng-hide="userInfo.pwdEnable" ng-click="updatePassword()"> 修改密码 </a>
           <a ng-hide="userInfo.haveUserQuestion" ng-click="updateUserQuestion()"> 设置密保问题 </a>
-          <a  ng-hide="userInfo.userEmail" ng-click="updateUserEmail()"> 绑定邮箱 </a>
+          <a  ng-hide="userInfo.emailValidCode && userInfo.emailValidCode == 2" ng-click="updateUserEmail()"> 绑定邮箱 </a>
           来保障您的账户安全!
         </span>
 			</li>

+ 1 - 1
src/main/webapp/resources/view/usercenter/modal/homeCenter_modal.html

@@ -51,7 +51,7 @@
     <div class="modal-body">
         你的账户的安全等级过低,请 <span ng-hide="userInfo.pwdEnable" ng-click="goLink('pwd')"> 修改密码 </span>
         <span ng-hide="userInfo.haveUserQuestion" ng-click="goLink('question')"> 设置密保问题 </span>
-        <span  ng-hide="userInfo.userEmail" ng-click="goLink('email')"> 绑定邮箱 </span>
+        <span  ng-hide="userInfo.emailValidCode && userInfo.emailValidCode == 2" ng-click="goLink('email')"> 绑定邮箱 </span>
         来保障您的账户安全!
         <a class="mall-btn-default" ng-click="goLink('sec')" >立即前往</a>
     </div>

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

@@ -620,10 +620,10 @@
 					<i ng-if="userInfo.secLevel==5 || userInfo.secLevel==6">强</i>
           <!--完成<a href="javascript:void(0)"> 密保设置</a>,提升账户安全。-->
 				</span>
-          <span class="safe-remind" ng-hide="userInfo.pwdEnable && userInfo.haveUserQuestion && userInfo.userEmail">
+          <span class="safe-remind" ng-hide="userInfo.pwdEnable && userInfo.haveUserQuestion && userInfo.emailValidCode && userInfo.emailValidCode == 2">
           你的账户的安全等级过低,请 <a ng-hide="userInfo.pwdEnable" ng-click="updatePassword()"> 修改密码 </a>
           <a ng-hide="userInfo.haveUserQuestion" ng-click="updateUserQuestion()"> 设置密保问题 </a>
-          <a ng-hide="userInfo.userEmail" ng-click="updateUserEmail()"> 绑定邮箱 </a>
+          <a ng-hide="userInfo.emailValidCode && userInfo.emailValidCode == 2" ng-click="updateUserEmail()"> 绑定邮箱 </a>
           来保障您的账户安全!
         </span>
         </li>

+ 16 - 16
src/main/webapp/resources/view/vendor/forstore/vendor_component_apply.html

@@ -203,22 +203,22 @@
                         <li class="brand_logo">
                             <span class="fl">规格文档</span>
                             <div style="float: left; padding-left: 10px;">
-                                <div class="" ng-if="component.attachFile">
-                                    <div class="alert alert-success alert-sm f14">
-                                        <a href="{{component.attachFile.path}}">
-                                            <i class="fa fa-file"></i>
-                                            <strong ng-bind="component.attachFile.fileName"></strong>
-                                        </a>(<span ng-bind="component.attachFile.size"></span>)
-                                        <a class="pull-right text-muted f12" ng-click="removeAttach()">删除</a>
-                                        <span class="pull-right">&nbsp;&nbsp;&nbsp;</span>
-                                        <a ng-click="reUpload()" class="pull-right text-muted f12">
-                                            <span ng-if="!$uploading">重新上传</span>
-                                            <span ng-if="$uploading">取消重新上传</span>
-                                        </a>
-                                    </div>
-                                </div>
-                                <div class="upload-container" ng-if="!component.attachFile || $uploading">
-                                    <div id="attachUpload" on-success="onAttachUploadSuccess($data)" uploadify="{}"></div>
+                                <!--<div class="" ng-if="component.attachFile">-->
+                                    <!--<div class="alert alert-success alert-sm f14">-->
+                                        <!--<a href="{{component.attachFile.path}}">-->
+                                            <!--<i class="fa fa-file"></i>-->
+                                            <!--<strong ng-bind="component.attachFile.fileName"></strong>-->
+                                        <!--</a>(<span ng-bind="component.attachFile.size"></span>)-->
+                                        <!--<a class="pull-right text-muted f12" ng-click="removeAttach()">删除</a>-->
+                                        <!--<span class="pull-right">&nbsp;&nbsp;&nbsp;</span>-->
+                                        <!--<a ng-click="reUpload()" class="pull-right text-muted f12">-->
+                                            <!--<span ng-if="!$uploading">重新上传</span>-->
+                                            <!--<span ng-if="$uploading">取消重新上传</span>-->
+                                        <!--</a>-->
+                                    <!--</div>-->
+                                <!--</div>-->
+                                <div class="upload-container">
+                                    <input class="input-file-default" type="file" ng-file-select ng-model="component.attachFile" ng-change="onAttachUploadSuccess()" ng-multiple="false" accept="image/gif,image/jpeg,image/jpg,image/png,image/svg,application/pdf,*.pdf">
                                 </div>
                                 <div class="help-block">请上传器件的官方规格书文档!</div>
                             </div>

+ 3 - 3
src/main/webapp/resources/view/vendor/forstore/vendor_store.html

@@ -36,7 +36,7 @@
 			</div>
 			<div class="fr" style="width: 65%;">
 				<div style="text-align: left; font-size: 18px;margin-bottom: 15px;"><span>店铺名称:{{application.storeName}}</span></div>
-				<div style="text-align: left; font-size: 18px;margin-bottom: 15px;"><span>店铺简称:{{application.storeShortName}}</span></div>
+			<!--	<div style="text-align: left; font-size: 18px;margin-bottom: 15px;"><span>店铺简称:{{application.storeShortName}}</span></div>-->
 				<div style="text-align: left; font-size: 18px;margin-bottom: 15px;"><span>简介:</span></div>
 				<div style="text-align: left; font-size: 18px;margin-bottom: 15px;"><span>{{application.description}}</span></div>
 			</div>
@@ -52,10 +52,10 @@
 				<span class="fl">店铺名称<em>*</em></span>
 				<div class="fr"><input type="text" class="input01" ng-model="store.storeName" placeholder="店铺的名称"></div>
 			</li>
-			<li>
+			<!--<li>
 				<span class="fl">店铺简称</span>
 				<div class="fr"><input type="text" class="input01" ng-model="store.storeShortName" placeholder="店铺的名称"></div>
-			</li>
+			</li>-->
 			<li>
 				<span class="fl">店铺简介</span>
 				<div class="fr"><input type="text" ng-model="store.description" class="input01" placeholder="店铺的简介"></div>

+ 8 - 3
src/main/webapp/resources/view/vendor/forstore/vendor_store_apply.html

@@ -202,6 +202,11 @@
 		line-height: 30px;
 		height: 30px;
 	}
+	.brand-small-upload .brand-small-img .img-wrap {
+		width: 80px;
+		height: 80px;
+		line-height: 80px;
+	}
 	.tab-content .com_row{
 		margin:40px 0 0;
 		border-bottom: #ccc 1px dashed;
@@ -481,7 +486,7 @@
 	</div>-->
 </div>
 <div class="container vendor_store_apply user_right" style="margin-top: 15px;padding: 0;min-height: 330px; padding-top: 20px; padding-bottom: 20px;">
-	<div class="result" ng-if="resultTip"><span class="fl"><em>*</em>店铺开通后,可<a href="vendor#/vendor_upload">&nbsp;上传产品&nbsp;</a>至自己的店铺展示销售;如不想开店,可<a href="vendor#/vendor_upload">&nbsp;上传产品&nbsp;</a>在优软商城中寄售由商城代为售卖。</span><a ng-click="closeTip()" class="fr">&times;</a></div>
+	<div class="result" ng-if="resultTip"><span class="fl"><em>*</em>店铺开通后,可<a href="vendor#/vendor_upload" target="_blank">&nbsp;上传产品&nbsp;</a>至自己的店铺展示销售;如不想开店,可<a href="vendor#/vendor_upload" target="_blank">&nbsp;上传产品&nbsp;</a>在优软商城中寄售由商城代为售卖。</span><a ng-click="closeTip()" class="fr">&times;</a></div>
 	<div>
 		<!-- Nav tabs -->
 		<ul class="nav nav-tabs" role="tablist" style="height: 41px; background: none;padding: 0 40px;">
@@ -631,7 +636,7 @@
 									<a href="{{brand.url}}" target="_blank"><i class="fa fa-search"></i>查看</a>
 								</div>
 							</div>
-							<div ng-if="brand.url && !brand.isPdf">
+							<div class="img-wrap" ng-if="brand.url && !brand.isPdf">
 								<img class="previewImage" ng-if="brand.url" ng-src="{{brand.url}}"  style="max-width: 80px; max-height: 80px; vertical-align: middle;"/>
 							</div>
 							<div image-upload data-src="static/img/example/upload-apply.png" on-success="onUploadBrandImage($data, brand)" ng-if="!brand.url" non-preview="true"></div>
@@ -805,7 +810,7 @@
 									<!--<span class="delete deleteImg" ng-click="deleteBrandImage(brand)" title="删除"><i class="fa fa-trash"></i></span>-->
 								<!--</div>-->
 							</div>
-							<div ng-if="brand.url && !brand.isPdf">
+							<div class="img-wrap" ng-if="brand.url && !brand.isPdf">
 								<img class="previewImage" ng-if="brand.url" ng-src="{{brand.url}}"  style="max-width: 80px; max-height: 80px; vertical-align: middle; line-height: 40px;"/>
 							</div>
 							<div image-upload data-src="static/img/example/upload-apply.png" on-success="onUploadBrandImage($data, brand)" ng-if="!brand.url" non-preview="true"></div>

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

@@ -627,7 +627,7 @@
 					<span>店铺名称</span>
 				</div>
 				<div class="col-md-10 custom_col">
-					<input type="text" ng-change="changeInfo('STORESHORTNAME', storeShortName)" class="form-control" style="border-radius: inherit;" title="storeShortName" ng-model="storeShortName" maxlength="100"/>
+					<input type="text" ng-change="changeInfo('STORENAME', storeName)" class="form-control" style="border-radius: inherit;" title="storeName" ng-model="storeName" maxlength="100"/>
 				</div>
 			</div>
 			<div class="row com_row">

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

@@ -683,10 +683,10 @@
 			</div>
 			<div class="row com_row" >
 				<div class="col-md-2 custom_col">
-					<span>店铺称</span>
+					<span>店铺称</span>
 				</div>
 				<div class="col-md-10 custom_col">
-					<input type="text" class="form-control" style="border-radius: inherit;" title="storeShortName" ng-model="sampleStore.storeShortName" maxlength="100"/>
+					<input type="text" class="form-control" style="border-radius: inherit;" title="storeName" ng-model="sampleStore.storeName" maxlength="100"/>
 				</div>
 			</div>
 			<!--<div class="row com_row" >
@@ -731,7 +731,7 @@
 			</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>
+					<span>传&nbsp;&nbsp;&nbsp;&nbsp;真</span>
 				</div>
 				<div class="col-md-10 custom_col">
 					<input type="text" class="form-control" style="border-radius: inherit;" title="enFax" ng-pattern="/^[\d-]{0,20}$/" ng-model="sampleStore.enterprise.enFax" maxlength="20"/>

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

@@ -382,7 +382,7 @@
     .com-del-box .result {
         width: 224px;
         margin: 0 auto;
-        font-size: 12px;
+        font-size: 13px;
     }
     .com-del-box .result span {
         color: #f40d0d;