浏览代码

Merge branch 'feature-201844-wangcz' into dev

wangcz 7 年之前
父节点
当前提交
5b036e5497
共有 31 个文件被更改,包括 1124 次插入401 次删除
  1. 9 0
      src/main/java/com/uas/platform/b2c/prod/commodity/dao/GoodsHistoryDao.java
  2. 6 10
      src/main/java/com/uas/platform/b2c/prod/commodity/model/GoodsHistory.java
  3. 1 0
      src/main/java/com/uas/platform/b2c/prod/commodity/model/GoodsSimple.java
  4. 348 0
      src/main/java/com/uas/platform/b2c/prod/store/model/StoreInSimple.java
  5. 4 4
      src/main/java/com/uas/platform/b2c/trade/presale/model/Cart.java
  6. 74 9
      src/main/java/com/uas/platform/b2c/trade/presale/service/impl/CartServiceImpl.java
  7. 二进制
      src/main/webapp/resources/img/vendor/images/arrow-left-d-l.png
  8. 二进制
      src/main/webapp/resources/img/vendor/images/arrow-right-d-l.png
  9. 二进制
      src/main/webapp/resources/img/vendor/images/backIcon.png
  10. 4 1
      src/main/webapp/resources/js/admin/controllers/statsDataCtrl.js
  11. 7 10
      src/main/webapp/resources/js/common/b2bServices.js
  12. 12 12
      src/main/webapp/resources/js/common/query/seekPurchase.js
  13. 120 53
      src/main/webapp/resources/js/usercenter/controllers/b2b/Purc/PurcVendorCtrl.js
  14. 1 1
      src/main/webapp/resources/js/usercenter/controllers/b2b/fa/arCheck_detail.js
  15. 1 1
      src/main/webapp/resources/js/usercenter/controllers/forstore/seek_purchase_ctrl.js
  16. 114 16
      src/main/webapp/resources/js/vendor/controllers/b2b/apCheck.js
  17. 112 58
      src/main/webapp/resources/js/vendor/controllers/b2b/sale/saleCustomerCtrl.js
  18. 23 0
      src/main/webapp/resources/js/vendor/controllers/forstore/seek_purchase_ctrl.js
  19. 5 5
      src/main/webapp/resources/js/vendor/controllers/forstore/single_entry.js
  20. 7 0
      src/main/webapp/resources/view/admin/stats_data.html
  21. 1 1
      src/main/webapp/resources/view/common/sidebar.html
  22. 35 27
      src/main/webapp/resources/view/usercenter/b2b/fa/arCheck.html
  23. 10 68
      src/main/webapp/resources/view/usercenter/b2b/fa/arCheck_detail.html
  24. 2 0
      src/main/webapp/resources/view/usercenter/forstore/buyer_material.html
  25. 193 79
      src/main/webapp/resources/view/vendor/b2b/apCheck.html
  26. 6 6
      src/main/webapp/resources/view/vendor/b2b/apCheck_detail.html
  27. 6 16
      src/main/webapp/resources/view/vendor/b2b/modal/add_userInfo.html
  28. 10 20
      src/main/webapp/resources/view/vendor/b2b/modal/transfer_userInfo.html
  29. 6 1
      src/main/webapp/resources/view/vendor/forstore/purchaseOffer.html
  30. 5 2
      src/main/webapp/resources/view/vendor/forstore/seekPurchase.html
  31. 2 1
      src/main/webapp/resources/view/vendor/forstore/vendor_material.html

+ 9 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/GoodsHistoryDao.java

@@ -69,4 +69,13 @@ public interface GoodsHistoryDao extends JpaSpecificationExecutor<GoodsHistory>,
      */
     List<GoodsHistory> findByEnUUAndCurrencyName(Long enUU, String currencyName);
 
+    /**
+     * 获取历史库存的id的最大值
+     *
+     * @param codes 分组信息
+     * @return
+     */
+    @Query(value = "select max(g.id) from GoodsHistory g where g.batchCode in (:codes) group by g.batchCode")
+    List<Long> findMaxIdByBatchCodes(@Param("codes") List<String> codes);
+
 }

+ 6 - 10
src/main/java/com/uas/platform/b2c/prod/commodity/model/GoodsHistory.java

@@ -3,15 +3,7 @@ package com.uas.platform.b2c.prod.commodity.model;
 import com.uas.platform.b2c.common.account.model.UserBaseInfo;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.OneToOne;
-import javax.persistence.Table;
-import javax.persistence.Transient;
+import javax.persistence.*;
 import java.util.Date;
 import java.util.List;
 
@@ -22,7 +14,11 @@ import java.util.List;
  *
  */
 @Entity
-@Table(name = "trade$goods_history")
+@Table(name = "trade$goods_history", indexes = {
+		@Index(name = "goods_history_go_batchcode", columnList = "go_batchcode"),
+		@Index(name = "goods_history_log_operateuu", columnList = "log_operateuu")
+		}
+)
 public class GoodsHistory {
 
 	@Id

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

@@ -562,6 +562,7 @@ public class GoodsSimple {
 	}
 	
 	public GoodsSimple(GoodsHistory goods) {
+		this.id = goods.getId();
 		this.batchCode = goods.getBatchCode();
 		this.original = goods.getOriginal();
 		this.qtyPrice = goods.getQtyPrice();

+ 348 - 0
src/main/java/com/uas/platform/b2c/prod/store/model/StoreInSimple.java

@@ -0,0 +1,348 @@
+package com.uas.platform.b2c.prod.store.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.uas.platform.b2c.common.account.model.Enterprise;
+import com.uas.platform.b2c.prod.commodity.model.Goods;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 店铺信息类
+ *
+ * @author huxz
+ * @version 2017-08-02 14:39:53 创建文件
+ */
+@Entity
+@Table(name = "store$info")
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class StoreInSimple implements Serializable {
+
+	private static final long serialVersionUID = -2806666044917530730L;
+
+	@Id
+	@GeneratedValue
+	@Column(name = "id")
+	private Long id;
+
+	/*+************************************************************************
+	 * 店铺信息
+	 **************************************************************************/
+
+	/**
+	 * 店铺UUID
+	 */
+	@Column(name = "st_uuid", unique = true)
+	private String uuid;
+
+	/**
+	 * 店铺名称,实际为企业名称
+	 */
+	@Column(name = "st_name", unique = true)
+	private String storeName;
+
+	/**
+	 * 店铺简称,实际为店铺名称
+	 */
+	@Column(name = "st_short_name")
+	private String storeShortName;
+
+	/**
+	 * 应用领域
+	 */
+	@Column(name="st_application",length = 100)
+	private String storeApplication;
+
+	/**
+	 *	店铺LOGO URL
+	 */
+	@Column(name = "st_logo_url")
+	private String logoUrl;
+
+	/**
+	 * 店铺横幅URL
+	 */
+	@Column(name = "st_banner_url")
+	private String bannerUrl;
+
+	/**
+	 * 主营产品
+	 */
+	@Column(name = "st_description", length = 1000)
+	private String description;
+
+	/**
+	 * 店铺模板UUID
+	 */
+	@Column(name = "st_template_uuid")
+	private String templateUuid;
+
+	/**
+	 * 店铺类型
+	 */
+	@Column(name = "st_type")
+	@Enumerated(value = EnumType.STRING)
+	private StoreType type;
+
+	/**
+	 * 创建时间
+	 */
+	@Column(name = "st_create_time")
+	private Date createTime;
+
+	/**
+	 * 更新时间
+	 */
+	@Column(name = "st_update_time")
+	private Date updateTime;
+
+	/**
+	 * 上架商品总库存
+	 */
+	@Column(name = "st_total_reserve")
+	private long totalReserve;
+
+	/**
+	 * 店铺状态
+	 */
+	@Enumerated(value = EnumType.STRING)
+	@Column(name = "st_status")
+	private StoreStatus status = StoreStatus.OPENED;
+
+	/*+************************************************************************
+	 * 企业信息
+	 **************************************************************************/
+
+	/**
+	 * 店铺企业UU
+	 */
+	@Column(name = "st_enuu")
+	private Long enUU;
+
+	@OneToOne(cascade = { CascadeType.REFRESH })
+	@JoinColumn(name = "st_enuu", insertable = false, updatable = false)
+	private Enterprise enterpriseInfo;
+
+	/**
+	 * 企业信息JSON
+	 */
+	@JsonIgnore
+	@Column(name = "st_en_json", length = 2000 ,columnDefinition="TEXT")
+	private String enterpriseJson;
+
+	/**
+	 * 企业资质类型
+	 */
+	@Column(name = "st_en_type")
+	private String enType;
+
+	/**
+	 * 企业资质信息
+	 */
+	@Column(name = "st_en_qualification" ,columnDefinition="TEXT")
+	private String enQualification;
+
+	/**
+	 * 店铺标签
+	 */
+	@Column(name = "st_tags")
+	private String tags = "[]";
+
+	/**
+	 * 企业分数
+	 */
+	@Column(name = "st_score")
+	private Double score = 0d;
+
+	/*+************************************************************************
+	 * 资质信息
+	 **************************************************************************/
+
+	/**
+	 * 最低价三个批次
+	 */
+	@Transient
+	private List<Goods> goodses;
+
+	public Enterprise getEnterpriseInfo() {
+		return enterpriseInfo;
+	}
+
+	public void setEnterpriseInfo(Enterprise enterpriseInfo) {
+		this.enterpriseInfo = enterpriseInfo;
+	}
+
+	public StoreInSimple() {
+	}
+
+	public String getStoreApplication() {
+		return storeApplication;
+	}
+
+	public void setStoreApplication(String storeApplication) {
+		this.storeApplication = storeApplication;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getUuid() {
+		return uuid;
+	}
+
+	public void setUuid(String uuid) {
+		this.uuid = uuid;
+	}
+
+	public String getStoreName() {
+		return storeName;
+	}
+
+	public void setStoreName(String storeName) {
+		this.storeName = storeName;
+	}
+
+	public String getStoreShortName() {
+		return storeShortName;
+	}
+
+	public void setStoreShortName(String storeShortName) {
+		this.storeShortName = storeShortName;
+	}
+
+	public String getLogoUrl() {
+		return logoUrl;
+	}
+
+	public void setLogoUrl(String logoUrl) {
+		this.logoUrl = logoUrl;
+	}
+
+	public String getBannerUrl() {
+		return bannerUrl;
+	}
+
+	public void setBannerUrl(String bannerUrl) {
+		this.bannerUrl = bannerUrl;
+	}
+
+	public String getDescription() {
+		return description;
+	}
+
+	public void setDescription(String description) {
+		this.description = description;
+	}
+
+	public String getTemplateUuid() {
+		return templateUuid;
+	}
+
+	public void setTemplateUuid(String templateUuid) {
+		this.templateUuid = templateUuid;
+	}
+
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public Date getUpdateTime() {
+		return updateTime;
+	}
+
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = updateTime;
+	}
+
+	public long getTotalReserve() {
+		return totalReserve;
+	}
+
+	public void setTotalReserve(long totalReserve) {
+		this.totalReserve = totalReserve;
+	}
+
+	public StoreStatus getStatus() {
+		return status;
+	}
+
+	public void setStatus(StoreStatus status) {
+		this.status = status;
+	}
+
+	public Long getEnUU() {
+		return enUU;
+	}
+
+	public void setEnUU(Long enUU) {
+		this.enUU = enUU;
+	}
+
+	public String getEnterpriseJson() {
+		return enterpriseJson;
+	}
+
+	public void setEnterpriseJson(String enterpriseJson) {
+		this.enterpriseJson = enterpriseJson;
+	}
+
+	public String getEnType() {
+		return enType;
+	}
+
+	public void setEnType(String enType) {
+		this.enType = enType;
+	}
+
+	public String getEnQualification() {
+		return enQualification;
+	}
+
+	public void setEnQualification(String enQualification) {
+		this.enQualification = enQualification;
+	}
+
+	public List<Goods> getGoodses() {
+		return goodses;
+	}
+
+	public void setGoodses(List<Goods> goodses) {
+		this.goodses = goodses;
+	}
+
+	public StoreType getType() {
+		return type;
+	}
+
+	public void setType(StoreType type) {
+		this.type = type;
+	}
+
+	public String getTags() {
+		return tags;
+	}
+
+	public void setTags(String tags) {
+		this.tags = tags;
+	}
+
+	public Double getScore() {
+		return score;
+	}
+
+	public void setScore(Double score) {
+		this.score = score;
+	}
+}

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

@@ -3,7 +3,7 @@ package com.uas.platform.b2c.trade.presale.model;
 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;
-import com.uas.platform.b2c.prod.store.model.StoreIn;
+import com.uas.platform.b2c.prod.store.model.StoreInSimple;
 import com.uas.platform.b2c.prod.store.model.StoreType;
 import com.uas.platform.b2c.trade.presale.status.cartStatus;
 import com.uas.platform.core.model.Status;
@@ -166,7 +166,7 @@ public class Cart {
 	 */
 	@OneToOne(cascade = { CascadeType.REFRESH }, fetch = FetchType.EAGER)
 	@JoinColumn(name = "cart_store_uuid", referencedColumnName = "st_uuid" ,insertable = false, updatable = false)
-	private StoreIn storeEnterprise;
+	private StoreInSimple storeEnterprise;
 
 	/**
 	 * 店铺名称
@@ -569,11 +569,11 @@ public class Cart {
 		return this;
 	}
 
-	public StoreIn getStoreEnterprise() {
+	public StoreInSimple getStoreEnterprise() {
 		return storeEnterprise;
 	}
 
-	public void setStoreEnterprise(StoreIn storeEnterprise) {
+	public void setStoreEnterprise(StoreInSimple storeEnterprise) {
 		this.storeEnterprise = storeEnterprise;
 	}
 

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

@@ -5,6 +5,8 @@ import com.uas.platform.b2c.common.account.model.Enterprise;
 import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
+import com.uas.platform.b2c.prod.commodity.constant.IntegerConstant;
+import com.uas.platform.b2c.prod.commodity.controller.GoodsController;
 import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
 import com.uas.platform.b2c.prod.commodity.dao.GoodsHistoryDao;
 import com.uas.platform.b2c.prod.commodity.dao.GoodsSimpleDao;
@@ -27,15 +29,19 @@ import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.Status;
 import com.uas.platform.core.model.Type;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.domain.Specification;
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
+import javax.naming.NameParser;
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
@@ -73,6 +79,11 @@ public class CartServiceImpl implements CartService {
 	@Autowired
 	private EnterpriseDao enterpriseDao;
 
+	@Autowired
+	private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
+
+	private final Logger logger = LoggerFactory.getLogger(CartServiceImpl.class);
+
 //	@Autowired
 //	public CartServiceImpl(CartDao cartDao, GoodsService goodsService, ComponentService componentService, ComponentDao componentDao, GoodsSimpleDao goodsSimpleDao, GoodsHistoryDao goodsHistoryDao, StoreInDao storeInDao, GoodsDao goodsDao, EnterpriseDao enterpriseDao) {
 //		this.cartDao = cartDao;
@@ -410,7 +421,6 @@ public class CartServiceImpl implements CartService {
 //		info.sorting("storeUuid", Sort.Direction.DESC);
 //		info.sorting("id", Sort.Direction.DESC);
 		info.sorting(Sort.Direction.DESC, "storeUuid", "id");
-		// 获取当前页的购物车记录信息
 		Page<Cart> carts = cartDao.findAll(new Specification<Cart>() {
 			@Override
 			public Predicate toPredicate(Root<Cart> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
@@ -418,19 +428,74 @@ public class CartServiceImpl implements CartService {
 				return null;
 			}
 		}, info);
-		// 将购物车记录按店铺进行分类
 		if (!CollectionUtils.isEmpty(carts.getContent())) {
-			for (Cart cart : carts.getContent()) {
-                GoodsHistory goodsHistory = goodsHistoryDao.findNewByBatchCode(cart.getBatchCode());
-                cart.setGoods(new GoodsSimple(goodsHistory));
-                cart.setStatus();
-				Integer count = goodsDao.getSimilarProCount(cart.getCode(), cart.getBatchCode(), Status.AVAILABLE.value());
-				cart.setSimilarCount(count);
-			}
+			cartFillGoodsHistory(carts.getContent());
+			setCartSimilarCount(carts.getContent());
 		}
 		return carts;
 	}
 
+	/**
+	 * 向Cart中添加历史库存(因为担心 卖家删除库存信息,所以从历史库存中找库存信息)
+	 *
+	 * @param carts
+	 */
+	private void cartFillGoodsHistory(List<Cart> carts) {
+		if (org.apache.commons.collections.CollectionUtils.isEmpty(carts)) {
+			return ;
+		}
+		List<String> batchCodes = new ArrayList<>();
+		for (Cart cart : carts) {
+			batchCodes.add(cart.getBatchCode());
+		}
+		//从历史库存中获取上架信息
+		List<Long> historyIds = goodsHistoryDao.findMaxIdByBatchCodes(batchCodes);
+		if (org.apache.commons.collections.CollectionUtils.isNotEmpty(historyIds)) {
+			List<GoodsHistory> histories = goodsHistoryDao.findAll(historyIds);
+			for (GoodsHistory history : histories) {
+				for (Cart cart : carts) {
+					if (cart.getBatchCode().equals(history.getBatchCode())) {
+						cart.setGoods(new GoodsSimple(history));
+						cart.setStatus();
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * 从库存信息中找型号相同的库存信息,统计个数
+	 *
+	 * @param carts
+	 */
+	private void setCartSimilarCount(List<Cart> carts) {
+		if (org.apache.commons.collections.CollectionUtils.isEmpty(carts)) {
+			return ;
+		}
+		List<String> codes = new ArrayList<>();
+		for (Cart cart : carts) {
+			cart.setSimilarCount(IntegerConstant.NO_INT);
+			codes.add(cart.getCode());
+		}
+		//获取相似产品
+		String sql = "select cmp_code, go_batchcode from trade$goods where cmp_code in (:codes) and go_status = " + com.uas.platform.b2c.core.constant.Status.AVAILABLE.value();
+		Map<String, Object> codeMaps = new HashMap<>();
+		codeMaps.put("codes", codes);
+		List<Map<String, Object>> maps = namedParameterJdbcTemplate.queryForList(sql, codeMaps);
+		for (Map<String, Object> numMap : maps) {
+			Object code = numMap.get("cmp_code");
+			for (Cart cart : carts) {
+				if (cart.getCode().equals(code)) {
+					if (!cart.getBatchCode().equals(numMap.get("go_batchcode"))) {
+						Integer similarCount = cart.getSimilarCount();
+						cart.setSimilarCount(++similarCount);
+					}
+				}
+			}
+
+		}
+	}
+
 	@Override
 	public boolean addedSameGoods(String batchCode, Long enUU, Long userUU) {
 		Cart existCart = cartDao.findByUuAndBatchCodeAndEnuu(userUU, batchCode, enUU);

二进制
src/main/webapp/resources/img/vendor/images/arrow-left-d-l.png


二进制
src/main/webapp/resources/img/vendor/images/arrow-right-d-l.png


二进制
src/main/webapp/resources/img/vendor/images/backIcon.png


+ 4 - 1
src/main/webapp/resources/js/admin/controllers/statsDataCtrl.js

@@ -69,6 +69,10 @@ define([ 'app/app' ], function(app) {
             }
         };
 
+        $scope.setFiltersAll = function () {
+            initData()
+        }
+
         $scope.condition = [];
         var start = {
             open : false
@@ -107,7 +111,6 @@ define([ 'app/app' ], function(app) {
                 $scope.endDate = new Date($scope.endDate.getFullYear(), $scope.endDate.getMonth(), $scope.endDate.getDate())
                 $scope.endDate = new Date($scope.endDate.getTime() + 23 * 60 * 60 * 1000 + 59 * 60 * 1000 + 59 * 1000);
             }
-            initData();
         };
 
         $scope.detailOpenClick = function (type) {

+ 7 - 10
src/main/webapp/resources/js/common/b2bServices.js

@@ -193,21 +193,19 @@ define([ 'angular', 'common/services', 'common/utils', 'big'], function(angular,
                     method: 'GET'
                 },
                 findUsers: {
-                    url: b2bPath + '/account/user/customer/:uu',
-                    method: 'POST',
-                    isArray: true
+                    url: b2bPath + '/account/user/customer/:id',
+                    method: 'GET'
                 },
                 findSaleUsers: {
                     url: b2bPath + '/vendorDistribute/:id',
-                    method: 'POST',
-                    isArray: true
+                    method: 'GET'
                 },
                 addSaleUserToVendor: {
                     url: b2bPath + '/vendorDistribute/bindVendor/:id',
                     method: 'POST'
                 },
                 addUserToVendor: {
-                    url: b2bPath + '/account/user/bindUserToVendor/:uu',
+                    url: b2bPath + '/account/user/bindUserToVendor/:id',
                     method: 'POST'
                 },
                 transferSaleUserToVendor: {
@@ -215,7 +213,7 @@ define([ 'angular', 'common/services', 'common/utils', 'big'], function(angular,
                     method: 'POST'
                 },
                 transferUserToVendor: {
-                    url: b2bPath + '/account/user/transferUserToVendor/:uu',
+                    url: b2bPath + '/account/user/transferUserToVendor/:id',
                     method: 'POST'
                 },
                 transferMyDistribute: {
@@ -228,7 +226,7 @@ define([ 'angular', 'common/services', 'common/utils', 'big'], function(angular,
                     isArray: true
                 },
                 getDistribute: {
-                    url: b2bPath + '/account/user/getDistribute/:custUU',
+                    url: b2bPath + '/account/user/getDistribute/:id',
                     method: 'GET'
                 },
                 getEnTransfer: {
@@ -2805,8 +2803,7 @@ define([ 'angular', 'common/services', 'common/utils', 'big'], function(angular,
             },
             getAllByKeywords: {
               url:b2bUrl +  '/sale/apCheck/getAllByKeywords',
-              method: 'GET',
-              isArray: true
+              method: 'GET'
             },
             saveApCheck: {
               url : b2bUrl + '/sale/apCheck/operation/save',

+ 12 - 12
src/main/webapp/resources/js/common/query/seekPurchase.js

@@ -11,11 +11,11 @@ define([ 'ngResource' ], function() {
                 method: 'GET'
             },
             getSeekPushGoodsPageInfo: {
-                url: 'https://tinquiry-api.usoftchina.com/inquiry/public',
-                method: 'GET',
+                url: 'https://test-inquiry.uuzcc.cn/inquiry/public',
+                method: 'GET'
             },
             saveOneSeekPurchase: {
-                url: 'https://tinquiry-api.usoftchina.com/inquiry/buyer/save',
+                url: 'https://test-inquiry.uuzcc.cn/inquiry/buyer/save',
                 method: 'POST'
             },
             saveOneSeekPurchaseProd: {
@@ -23,7 +23,7 @@ define([ 'ngResource' ], function() {
                 method: 'POST'
             },
             saveOffer: {
-                url: 'https://tinquiry-api.usoftchina.com/inquiry/sale/item/saveQuote',
+                url: 'https://test-inquiry.uuzcc.cn/inquiry/sale/item/saveQuote',
                 method: 'POST'
             },
             saveOfferProd: {
@@ -31,11 +31,11 @@ define([ 'ngResource' ], function() {
                 method: 'POST'
             },
             getUserSeekPageInfo: {
-                url: 'https://tinquiry-api.usoftchina.com/inquiry/buyer/list',
+                url: 'https://test-inquiry.uuzcc.cn/inquiry/buyer/list',
                 method: 'GET'
             },
             getUserSeekPageInfoByStatus: {
-                url: 'https://tinquiry-api.usoftchina.com/inquiry/buyer/quotations',
+                url: 'https://test-inquiry.uuzcc.cn/inquiry/buyer/quotations',
                 method: 'GET'
             },
             getMallGoodsList: {
@@ -44,23 +44,23 @@ define([ 'ngResource' ], function() {
                 isArray: true
             },
             getSeekPurchaseOfferPageInfo: {
-                url: 'https://tinquiry-api.usoftchina.com/inquiry/buyer/product/detail',
+                url: 'https://test-inquiry.uuzcc.cn/inquiry/buyer/product/detail',
                 method: 'GET'
             },
             getMyOfferPageInfo: {
-                url: 'https://tinquiry-api.usoftchina.com/inquiry/public/quotation/list',
+                url: 'https://test-inquiry.uuzcc.cn/inquiry/public/quotation/list',
                 method: 'GET'
             },
             updateSeekPurchaseStatus: {
-                url: 'https://tinquiry-api.usoftchina.com/inquiry/buyer/decide',
+                url: 'https://test-inquiry.uuzcc.cn/inquiry/buyer/decide',
                 method: 'POST'
             },
             getSeekPurchaseBomListPage: {
-                url: 'https://tinquiry-api.usoftchina.com/inquiry/buyer/inquiryList',
+                url: 'https://test-inquiry.uuzcc.cn/inquiry/buyer/inquiryList',
                 method: 'GET'
             },
             findOneBom: {
-                url: 'https://tinquiry-api.usoftchina.com/inquiry/public/findInquiryById',
+                url: 'https://test-inquiry.uuzcc.cn/inquiry/public/findInquiryById',
                 method: 'GET'
             },
             saveBomName: {
@@ -68,7 +68,7 @@ define([ 'ngResource' ], function() {
                 method: 'PUT'
             },
             getBomDetail: {
-                url: 'https://tinquiry-api.usoftchina.com/inquiry/sale/publicInquiry/detail',
+                url: 'https://test-inquiry.uuzcc.cn/inquiry/sale/publicInquiry/detail',
                 method: 'GET'
             },
             // 获取BOM清单

+ 120 - 53
src/main/webapp/resources/js/usercenter/controllers/b2b/Purc/PurcVendorCtrl.js

@@ -5,6 +5,12 @@ define(['app/app'], function(app) {
     app.register.controller('PurcVendorCtrl', ['$scope', 'B2bVendor', 'BaseService', 'B2bAuthenticationService', 'ngTableParams', '$modal', 'toaster', '$rootScope', 'B2bVendorInfo', function ($scope, Vendor, BaseService, AuthenticationService, ngTableParams, $modal, toaster, $rootScope, VendorInfo) {
         BaseService.scrollBackToTop();
         $rootScope.active = 'purc_vendor';
+
+        AuthenticationService.getAuthentication().success(function (data) {
+            $scope.loading = false;
+            $scope.thisUser = data;
+        });
+
         // 搜索框回车
         $scope.onSearch = function (keyword) {
             $scope.keyword = keyword;
@@ -67,6 +73,9 @@ define(['app/app'], function(app) {
                 resolve: {
                     customer: function () {
                         return customer;
+                    },
+                    thisUser: function () {
+                        return $scope.thisUser
                     }
                 }
             });
@@ -90,6 +99,9 @@ define(['app/app'], function(app) {
                 resolve: {
                     customer: function () {
                         return customer;
+                    },
+                    thisUser: function () {
+                        return $scope.thisUser
                     }
                 }
             });
@@ -107,43 +119,71 @@ define(['app/app'], function(app) {
     }]);
 
     // 转移权限
-    app.register.controller('TransferUserInfoCtrl', ['$scope', '$rootScope', '$modalInstance', 'customer', 'B2bAccountUser', 'toaster', 'B2bAuthenticationService', function ($scope, $rootScope, $modalInstance, customer, AccountUser, toaster, AuthenticationService) {
-        AuthenticationService.getAuthentication().success(function (data) {
-            $scope.loading = false;
-            $scope.thisUser = data;
-            $scope.checkboxes = {
-                checked: false
-            };
-            $scope.loading = true;
-            $scope.transfer = [];
-            AccountUser.findSaleUsers({id : customer.id}, {}, function (data) {
-                $scope.userinfos = data;
-                var transfer = [];
-                angular.forEach($scope.userinfos, function (user, index) {
-                    // 当前用户是被管理员转移权限时,转移的是被管理员转移的权限。
-                    if ($scope.thisUser.userUU === user.userUU && user.transfer) {
-                        $scope.thisUser.transfer = true;
-                    }
-                });
-                angular.forEach($scope.userinfos, function (user, index) {
-                    if ($scope.thisUser.sys || $scope.thisUser.transfer) {
-                        if (user.transfer) {
-                            transfer.push({num: index});
-                            user.checked = true;
-                        }
-                    } else {
-                        if (user.distribute) {
-                            transfer.push({num: index});
-                            user.checked = true;
-                        }
+    app.register.controller('TransferUserInfoCtrl', ['$scope', '$rootScope', '$modalInstance', 'customer', 'B2bAccountUser', 'toaster', 'ngTableParams', 'BaseService', 'thisUser', function ($scope, $rootScope, $modalInstance, customer, AccountUser, toaster, ngTableParams, BaseService, thisUser) {
+        $scope.checkboxes = {
+            checked: false
+        };
+        $scope.thisUser = thisUser;
+
+        $scope.userParams = new ngTableParams({
+            page: 1,
+            count:10,
+            sorting:{}
+        }, {
+            total: 0,
+            counts: [5, 10, 15, 25, 50],
+            getData: function ($defer, params) {
+                $scope.loading = true;
+                $scope.transfer = [];
+                var pageParams = params.url();
+                pageParams.keyword = $scope.keyword;
+                pageParams.id = customer.id;
+                AccountUser.findSaleUsers(BaseService.parseParams(pageParams), function (data) {
+                    $scope.loading = false;
+                    if (data) {
+                        $defer.resolve(data.content);
+                        $scope.userinfos = data.content;
+                        var transfer = [];
+                        angular.forEach($scope.userinfos, function (user, index) {
+                            // 当前用户是被管理员转移权限时,转移的是被管理员转移的权限。
+                            if ($scope.thisUser.userUU === user.userUU && user.transfer) {
+                                $scope.thisUser.transfer = true;
+                            }
+                        });
+                        angular.forEach($scope.userinfos, function (user, index) {
+                            if ($scope.thisUser.sys || $scope.thisUser.transfer) {
+                                if (user.transfer) {
+                                    transfer.push({num: index});
+                                    user.checked = true;
+                                }
+                            } else {
+                                if (user.distribute) {
+                                    transfer.push({num: index});
+                                    user.checked = true;
+                                }
+                            }
+                        });
+                        $scope.transfer = transfer;
+                        $scope.havedone = angular.copy($scope.transfer);
+                        $scope.total = data.totalElement;
+                        params.total(data.totalElement);
+                        $scope.searchFilterXls = angular.copy(pageParams.searchFilter);//保存当前取值的条件
                     }
+                }, function (response) {
+                    $scope.loading = false;
+                    toaster.pop('error', '数据加载失败', response.data);
                 });
-                $scope.transfer = transfer;
-                $scope.havedone = angular.copy($scope.transfer);
-                $scope.loading = false;
-            });
+            }
         });
 
+        // 搜索框回车
+        $scope.onSearch = function () {
+            $scope.userParams.page(1);
+            $scope.userParams.reload();
+            $scope.isChanged = false;
+            $scope.isChangedAll = false;
+        };
+
         var checkStatus = function (userinfos) {
             var transfer = [];
             angular.forEach(userinfos, function (user, index) {
@@ -198,7 +238,7 @@ define(['app/app'], function(app) {
         $scope.close = function (save) {
             var chooseResult = [];
             if (save) {
-                if (customer.vendorEnterprise.uu) {
+                if (customer.id) {
                     // 当前用户是管理员时
                     angular.forEach($scope.userinfos, function (item, i) {
                         chooseResult.push(item);
@@ -227,29 +267,56 @@ define(['app/app'], function(app) {
         };
 
     }]);
-    app.register.controller('AddUserInfoCtrl', ['$scope', '$modalInstance', 'customer', 'B2bAccountUser', 'toaster', 'AuthenticationService',
-        function ($scope, $modalInstance, customer, AccountUser, toaster, AuthenticationService) {
-            AuthenticationService.getAuthentication().success(function (data) {
-                $scope.thisUser = data;
-                $scope.checkboxes = {
-                    checked: false
-                };
-                $scope.loading = true;
-                $scope.distribute = [];
-                AccountUser.findSaleUsers({id : customer.id}, null, function (data) {
-                    $scope.userinfos = data;
-                    var distribute = [];
-                    angular.forEach($scope.userinfos, function (user, index) {
-                        if (user.distribute) {
-                            distribute.push({num: index});
+    app.register.controller('AddUserInfoCtrl', ['$scope', '$modalInstance', 'customer', 'B2bAccountUser', 'toaster', 'ngTableParams', 'BaseService', 'thisUser',
+        function ($scope, $modalInstance, customer, AccountUser, toaster, ngTableParams, BaseService, thisUser) {
+            $scope.thisUser = thisUser
+            $scope.checkboxes = {
+                checked: false
+            };
+            $scope.userParams = new ngTableParams({
+                page: 1,
+                count: 10,
+                sorting: {}
+            }, {
+                total: 0,
+                counts:[5,10,15,25,50],
+                getData: function ($defer, params) {
+                    $scope.loading = true;
+                    $scope.distribute = [];
+                    var pageParams = params.url();
+                    pageParams.keyword = $scope.keyword;
+                    pageParams.id = customer.id
+                    AccountUser.findSaleUsers(BaseService.parseParams(pageParams), function (data) {
+                        $scope.loading = false;
+                        if(data) {
+                            $defer.resolve(data.content);
+                            $scope.userinfos = data.content;
+                            var distribute = [];
+                            angular.forEach($scope.userinfos, function (user, index) {
+                                if (user.distribute) {
+                                    distribute.push({num: index});
+                                }
+                            });
+                            $scope.distribute = distribute;
+                            $scope.havedone = angular.copy($scope.distribute);
+                            $scope.total = data.totalElement;
+                            params.total(data.totalElement);
+                            $scope.searchFilterXls = angular.copy(pageParams.searchFilter);//保存当前取值的条件
                         }
+                    }, function (err) {
+                        $scope.loading = false;
+                        toaster.pop('error', '数据加载失败', err.data);
                     });
-                    $scope.distribute = distribute;
-                    $scope.havedone = angular.copy($scope.distribute);
-                    $scope.loading = false;
-                });
+                }
             });
 
+            $scope.onSearch = function () {
+                $scope.userParams.page(1);
+                $scope.userParams.reload();
+                $scope.isChanged = false;
+                $scope.isChangedAll = false;
+            };
+
             var checkStatus = function (userinfos) {
                 var distribute = [];
                 angular.forEach(userinfos, function (user, index) {

+ 1 - 1
src/main/webapp/resources/js/usercenter/controllers/b2b/fa/arCheck_detail.js

@@ -5,7 +5,7 @@ define(['app/app'], function(app) {
     $rootScope.active = 'buyer_pay_center'
     var loadData = function () {
       FaArCheck.get({id: $stateParams.id}, function (data) {
-        $scope.order = data;
+        $scope.order = data.data;
         $scope.loading = false;
       });
     };

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

@@ -563,7 +563,7 @@ define(['app/app', 'clipboard', 'QRCode'], function (app, clipboard, QRCode) {
                           if ($scope.seekUrl == 'https://api-inquiry.usoftchina.com') {
                               materialUrl = 'https://api-product.usoftchina.com/';
                           } else {
-                              materialUrl = 'https://tproduct-api.usoftchina.com/'
+                              materialUrl = 'https://test-product.uuzcc.cn/'
                           }
                           $http({
                               method: 'get',

+ 114 - 16
src/main/webapp/resources/js/vendor/controllers/b2b/apCheck.js

@@ -46,6 +46,8 @@ define(['app/app'], function (app) {
                   $scope.tableParams.page(1);
               $scope.showNotCheck = false
           }
+          $scope.condition.$open = false
+          $scope.apCheckCondition.$open = false
       };
       $scope.changeDateZone = function (zone) {
           $scope.condition.dateZone = zone;
@@ -77,6 +79,17 @@ define(['app/app'], function (app) {
               };
               if ($scope.active === 'all') {
                   pageParams.keyword = $scope.keyword
+                  var _fromDate =  $scope.thisMouthOut + '-01 00:00:00'
+                  var _d = new Date(_fromDate)
+                  _d.setDate(1)
+                  _d.setMonth(_d.getMonth() + 1)
+                  _d.setDate(_d.getDate() - 1)
+                  var _endDate = _d.getFullYear() + '-' + (_d.getMonth() + 1) + '-' + _d.getDate() + ' 00:00:00'
+                  _endDate = new Date(_endDate).getTime()
+                  _fromDate = new Date(_fromDate).getTime()
+                  pageParams.searchFilter.fromDate =  _fromDate
+                  pageParams.searchFilter.endDate = _endDate
+
                   FaApCheck.customer(BaseService.parseParams(pageParams), function (page) {
                       $scope.loading = false;
                       if (page) {
@@ -240,6 +253,7 @@ define(['app/app'], function (app) {
           });
           modalInstance.result.then(function (customer) {
               $scope.suuorname = customer.myEnterprise.enName;
+              $scope.customerUU = customer.myEnterprise.uu;
           });
 
       }
@@ -249,6 +263,7 @@ define(['app/app'], function (app) {
           $scope.chooseItem = item;
           $scope.showNotCheck = true
           $scope.suuorname = item.myEnterprise.enName
+          $scope.customerUU = item.myEnterprise.uu
           this.searchOrder()
       }
 
@@ -257,6 +272,7 @@ define(['app/app'], function (app) {
       $scope.sdateTo = new Date();
       $scope.sdateFrom = new Date($scope.sdateTo.getFullYear(), $scope.sdateTo.getMonth(), 1);
       $scope.thisMouth = $scope.sdateTo.getFullYear() +'-'+ ($scope.sdateTo.getMonth())
+      $scope.thisMouthOut = $scope.sdateTo.getFullYear() +'-'+ ($scope.sdateTo.getMonth())
       $scope.condition.uuorname = '';
       // $scope.condition.dateFrom = '';
       // $scope.condition.dateTo = '';
@@ -267,6 +283,10 @@ define(['app/app'], function (app) {
 
       $scope.searchOrder = function (check) {
           $scope.data = [];
+          $scope.dataInfo = {
+              totalCount: [],
+              thisMonthCount: []
+          }
           $scope.checkboxes.checked = false;
           $scope.totalMoney = 0;
           $scope.condition.uuorname = $scope.suuorname;
@@ -283,8 +303,8 @@ define(['app/app'], function (app) {
           $scope.condition.venduuorname = $scope.vuuorname;
           if ($scope.condition.dateTo != null || $scope.keywordXls != null) {
 
-              // $scope.fromDate = $scope.condition.dateFrom ? $scope.condition.dateFrom.getTime() : null;
-              // $scope.endDate = $scope.condition.dateTo ? $scope.condition.dateTo.getTime() : null;
+              $scope.fromDate = $scope.apCheckCondition.dateFrom ? $scope.apCheckCondition.dateFrom.getTime() : null;
+              $scope.endDate = $scope.apCheckCondition.dateTo ? $scope.apCheckCondition.dateTo.getTime() : null;
               $scope.searchKeyWord = {
                   receiveName: $scope.receiveName,
                   factory: $scope.factory,
@@ -301,22 +321,53 @@ define(['app/app'], function (app) {
               //     document.getElementById('suuorname').focus();//光标默认在客户
               // } else {
               $scope.loading = true;
-              FaApCheck.getAllByKeywords({
-                  // fromDate: $scope.fromDate,
-                  // endDate: $scope.endDate,
-                  receiveName: $scope.receiveName,
-                  factory: $scope.factory,
-                  prodTitle: $scope.prodTitle,
-                  prodSpec: $scope.prodSpec,
-                  taxRate: $scope.taxRate,
-                  checkDate: $scope.thisMouth,
-                  suuorname: $scope.suuorname
-              }, function (data) {
-                  if (data.length > 0) {
-                      angular.forEach(data, function (item) {
+              var _params = {}
+              if ($scope.apCheckCondition.$open) {
+                  _params = {
+                      fromDate: $scope.fromDate,
+                      endDate: $scope.endDate,
+                      receiveName: $scope.receiveName,
+                      factory: $scope.factory,
+                      prodTitle: $scope.prodTitle,
+                      prodSpec: $scope.prodSpec,
+                      taxRate: $scope.taxRate,
+                      checkDate: $scope.thisMouth,
+                      suuorname: $scope.suuorname,
+                      customerUU: $scope.customerUU,
+                  }
+              } else {
+                  _params = {
+                      receiveName: $scope.receiveName,
+                      factory: $scope.factory,
+                      prodTitle: $scope.prodTitle,
+                      prodSpec: $scope.prodSpec,
+                      taxRate: $scope.taxRate,
+                      checkDate: $scope.thisMouth,
+                      suuorname: $scope.suuorname,
+                      customerUU: $scope.customerUU,
+                  }
+              }
+              FaApCheck.getAllByKeywords(_params, function (data) {
+                  if (data.details.length > 0) {
+                      angular.forEach(data.details, function (item) {
                           item.$selected = true;
                       });
-                      $scope.data = data;
+                      var _mouthArr = []
+                      data.thisMonthCount.forEach(function(item) {
+                          if (item.amount > 0) {
+                              _mouthArr.push(item)
+                          }
+                      })
+                      data.thisMonthCount = _mouthArr
+                      var _totalArr = []
+                      data.totalCount.forEach(function(item) {
+                          if (item.amount > 0) {
+                              _totalArr.push(item)
+                          }
+                      })
+                      data.totalCount = _totalArr
+                      $scope.dataInfo = data
+                      $scope.data = data.details;
                       $scope.checkboxes.checked = true;
                       $scope.getTotalMoney();
                   } else {
@@ -375,6 +426,7 @@ define(['app/app'], function (app) {
           $scope.filteredData = $filter('filter')($scope.data, $scope.condition.prodtitle || $scope.condition.uuorname || $scope.condition.venduuorname || $scope.condition.prodspec || $scope.condition.factory);
           // var dateFrom = $scope.condition.dateFrom;
           // var dateTo = $scope.condition.dateTo;
+
           angular.forEach($scope.filteredData, function (item) {
               // if ((item.pidate >= dateFrom || dateFrom == '') && (item.pidate < dateTo || dateTo == '')) {
               item.$selected = $scope.checkboxes.checked;
@@ -399,6 +451,7 @@ define(['app/app'], function (app) {
 
       // 点击其中一个明细的复选框
       $scope.checkOne = function (check) {
+          check.$selected = !check.$selected
           var result = true;
           angular.forEach($scope.data, function (item) {
               if (item.$selected != true) {
@@ -592,6 +645,51 @@ define(['app/app'], function (app) {
           }
       }
 
+      // 新增
+      $scope.apCheckCondition = {
+          $open: false
+      }
+      $scope.apCheckopenFilterDatePicker = function ($event, item, openParam) {
+          $event.preventDefault();
+          $event.stopPropagation();
+          item[openParam] = !item[openParam];
+          if ($scope.apCheckCondition.dateFrom && $scope.apCheckCondition.dateTo && !item[openParam]) {
+              $scope.searchOrder()
+          }
+      };
+      $scope.addMouth = function(val) {
+          var _time = new Date($scope.thisMouth)
+          _time.setMonth(_time.getMonth() + val)
+          $scope.thisMouth = _time.getFullYear() + '-' + (_time.getMonth() + 1)
+          $scope.apCheckCondition.$open = false
+          this.searchOrder()
+      }
+
+      $scope.addMouthOut = function(val) {
+          var _time = new Date($scope.thisMouthOut)
+          _time.setMonth(_time.getMonth() + val)
+          $scope.thisMouthOut = _time.getFullYear() + '-' + (_time.getMonth() + 1)
+          $scope.tableParams.page(1);
+          $scope.tableParams.reload();
+      }
+
+      $scope.hideshowNotCheck = function() {
+          $scope.showNotCheck = false
+      }
+
+      $scope.$watch('thisMouthOut', function(newVal, oldVal) {
+          if (newVal !== oldVal) {
+              $scope.tableParams.page(1);
+              $scope.tableParams.reload();
+          }
+      })
+      $scope.$watch('thisMouth', function(newVal, oldVal) {
+          if (newVal !== oldVal) {
+              $scope.searchOrder()
+          }
+      })
+
+
     /**
      * 将日期转化为整数日期
      */

+ 112 - 58
src/main/webapp/resources/js/vendor/controllers/b2b/sale/saleCustomerCtrl.js

@@ -67,8 +67,8 @@ define(['app/app'], function (app) {
                             customer: function () {
                                 return customer;
                             },
-                            type: function () {
-                                return 'purchase'
+                            thisUser: function () {
+                                return $scope.thisUser
                             }
                         }
                     });
@@ -92,7 +92,7 @@ define(['app/app'], function (app) {
         $scope.transferUserInfo = function (customer) {
             customer.enDistribute = null;
             // 获取当前用户在当前企业是否被转移权限
-            AccountUser.getDistribute ({custUU: customer.myEnterprise.uu}, function(data) {
+            AccountUser.getDistribute ({id: customer.id}, function(data) {
                 customer.enDistribute = data.result;
                 //是管理员,或者被分配时
                 if ($scope.enabled || customer.enDistribute) {
@@ -104,8 +104,8 @@ define(['app/app'], function (app) {
                             customer: function () {
                                 return customer;
                             },
-                            type: function () {
-                                return 'purchase'
+                            thisUser: function () {
+                                return $scope.thisUser
                             }
                         }
                     });
@@ -194,43 +194,70 @@ define(['app/app'], function (app) {
         }
     }]);
     // 转移权限
-    app.register.controller('TransferUserInfoCtrl', ['$scope', '$rootScope', '$modalInstance', 'customer', 'B2bAccountUser', 'toaster', 'B2bAuthenticationService', function ($scope, $rootScope, $modalInstance, customer, AccountUser, toaster, AuthenticationService) {
-        AuthenticationService.getAuthentication().success(function (data) {
-            $scope.loading = false;
-            $scope.thisUser = data;
-            $scope.checkboxes = {
-                checked: false
-            };
-            $scope.loading = true;
-            $scope.transfer = [];
-            AccountUser.findUsers({uu: customer.myEnterprise.uu}, {}, function (data) {
-                $scope.userinfos = data;
-                var transfer = [];
-                angular.forEach($scope.userinfos, function (user, index) {
-                    // 当前用户是被管理员转移权限时,转移的是被管理员转移的权限。
-                    if ($scope.thisUser.userUU === user.userUU && user.transfer) {
-                        $scope.thisUser.transfer = true;
-                    }
-                });
-                angular.forEach($scope.userinfos, function (user, index) {
-                    if ($scope.thisUser.sys || $scope.thisUser.transfer) {
-                        if (user.transfer) {
-                            transfer.push({num: index});
-                            user.checked = true;
-                        }
-                    } else {
-                        if (user.distribute) {
-                            transfer.push({num: index});
-                            user.checked = true;
-                        }
+    app.register.controller('TransferUserInfoCtrl', ['$scope', '$rootScope', '$modalInstance', 'customer', 'B2bAccountUser', 'toaster', 'ngTableParams', 'BaseService', 'thisUser', function ($scope, $rootScope, $modalInstance, customer, AccountUser, toaster, ngTableParams, BaseService, thisUser) {
+        $scope.checkboxes = {
+            checked: false
+        };
+        $scope.thisUser = thisUser;
+        $scope.userParams = new ngTableParams({
+            page: 1,
+            count:10,
+            sorting:{}
+        }, {
+            total: 0,
+            counts: [5, 10, 15, 25, 50],
+            getData: function ($defer, params) {
+                $scope.loading = true;
+                $scope.transfer = [];
+                var pageParams = params.url();
+                pageParams.keyword = $scope.keyword;
+                pageParams.id = customer.id;
+                AccountUser.findUsers(BaseService.parseParams(pageParams), function (data) {
+                    $scope.loading = false;
+                    if (data) {
+                        $defer.resolve(data.content);
+                        $scope.userinfos = data.content;
+                        var transfer = [];
+                        angular.forEach($scope.userinfos, function (user, index) {
+                            // 当前用户是被管理员转移权限时,转移的是被管理员转移的权限。
+                            if ($scope.thisUser.userUU === user.userUU && user.transfer) {
+                                $scope.thisUser.transfer = true;
+                            }
+                        });
+                        angular.forEach($scope.userinfos, function (user, index) {
+                            if ($scope.thisUser.sys || $scope.thisUser.transfer) {
+                                if (user.transfer) {
+                                    transfer.push({num: index});
+                                    user.checked = true;
+                                }
+                            } else {
+                                if (user.distribute) {
+                                    transfer.push({num: index});
+                                    user.checked = true;
+                                }
+                            }
+                        });
+                        $scope.transfer = transfer;
+                        $scope.havedone = angular.copy($scope.transfer);
+                        $scope.total = data.totalElement;
+                        params.total(data.totalElement);
+                        $scope.searchFilterXls = angular.copy(pageParams.searchFilter);//保存当前取值的条件
                     }
+                }, function (response) {
+                    $scope.loading = false;
+                    toaster.pop('error', '数据加载失败', response.data);
                 });
-                $scope.transfer = transfer;
-                $scope.havedone = angular.copy($scope.transfer);
-                $scope.loading = false;
-            });
+            }
         });
 
+        // 搜索框回车
+        $scope.onSearch = function () {
+            $scope.userParams.page(1);
+            $scope.userParams.reload();
+            $scope.isChanged = false;
+            $scope.isChangedAll = false;
+        };
+
         var checkStatus = function (userinfos) {
             var transfer = [];
             angular.forEach(userinfos, function (user, index) {
@@ -285,7 +312,7 @@ define(['app/app'], function (app) {
         $scope.close = function (save) {
             var chooseResult = [];
             if (save) {
-                if (customer.myEnterprise.uu) {
+                if (customer.id) {
                     // 当前用户是管理员时
                     if ($scope.thisUser.sys) {
                         angular.forEach($scope.userinfos, function (item, i) {
@@ -293,7 +320,7 @@ define(['app/app'], function (app) {
                         });
                         if (chooseResult.length > 0) {
                             $scope.loading = true;
-                            AccountUser.transferUserToVendor({uu: customer.myEnterprise.uu}, chooseResult, function (data) {
+                            AccountUser.transferUserToVendor({id: customer.id}, chooseResult, function (data) {
                                 $scope.loading = false;
                                 toaster.pop('success', '提示', '保存成功');
                                 $modalInstance.close(false);
@@ -336,29 +363,56 @@ define(['app/app'], function (app) {
         };
 
     }]);
-    app.register.controller('AddUserInfoCtrl', ['$scope', '$modalInstance', 'customer', 'B2bAccountUser', 'toaster', 'AuthenticationService',
-        function ($scope, $modalInstance, customer, AccountUser, toaster, AuthenticationService) {
-        AuthenticationService.getAuthentication().success(function (data) {
-            $scope.thisUser = data;
+    app.register.controller('AddUserInfoCtrl', ['$scope', '$modalInstance', 'customer', 'B2bAccountUser', 'toaster', 'ngTableParams', 'BaseService', 'thisUser',
+        function ($scope, $modalInstance, customer, AccountUser, toaster, ngTableParams, BaseService, thisUser) {
             $scope.checkboxes = {
                 checked: false
             };
-            $scope.loading = true;
-            $scope.distribute = [];
-            AccountUser.findUsers({uu: customer.myEnterprise.uu}, null, function (data) {
-                $scope.userinfos = data;
-                var distribute = [];
-                angular.forEach($scope.userinfos, function (user, index) {
-                    if (user.distribute) {
-                        distribute.push({num: index});
+            $scope.thisUser = thisUser;
+        $scope.userParams = new ngTableParams({
+            page: 1,
+            count: 10,
+            sorting: {}
+        }, {
+            total: 0,
+            counts:[5,10,15,25,50],
+            getData: function ($defer, params) {
+                $scope.loading = true;
+                $scope.distribute = [];
+                var pageParams = params.url();
+                pageParams.keyword = $scope.keyword;
+                pageParams.id = customer.id
+                AccountUser.findUsers(BaseService.parseParams(pageParams), function (data) {
+                    $scope.loading = false;
+                    if(data) {
+                        $defer.resolve(data.content);
+                        $scope.userinfos = data.content;
+                        var distribute = [];
+                        angular.forEach($scope.userinfos, function (user, index) {
+                            if (user.distribute) {
+                                distribute.push({num: index});
+                            }
+                        });
+                        $scope.distribute = distribute;
+                        $scope.havedone = angular.copy($scope.distribute);
+                        $scope.total = data.totalElement;
+                        params.total(data.totalElement);
+                        $scope.searchFilterXls = angular.copy(pageParams.searchFilter);//保存当前取值的条件
                     }
+                }, function (err) {
+                    $scope.loading = false;
+                    toaster.pop('error', '数据加载失败', err.data);
                 });
-                $scope.distribute = distribute;
-                $scope.havedone = angular.copy($scope.distribute);
-                $scope.loading = false;
-            });
+            }
         });
 
+        $scope.onSearch = function () {
+            $scope.userParams.page(1);
+            $scope.userParams.reload();
+            $scope.isChanged = false;
+            $scope.isChangedAll = false;
+        };
+
         var checkStatus = function (userinfos) {
             var distribute = [];
             angular.forEach(userinfos, function (user, index) {
@@ -395,13 +449,13 @@ define(['app/app'], function (app) {
         $scope.close = function (save) {
             var chooseResult = [];
             if (save) {
-                if (customer.myEnterprise.uu) {
+                if (customer.id) {
                     angular.forEach($scope.userinfos, function (item, i) {
                         chooseResult.push(item);
                     });
                     if (chooseResult.length > 0) {
                         $scope.loading = true;
-                        AccountUser.addUserToVendor({uu: customer.myEnterprise.uu}, chooseResult, function (data) {
+                        AccountUser.addUserToVendor({id: customer.id}, chooseResult, function (data) {
                             $scope.loading = false;
                             toaster.pop('success', '提示', '保存成功');
                             $modalInstance.close(false);

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

@@ -740,6 +740,29 @@ define(['app/app'], function (app) {
           $scope.setLinkBoxIndex = function (index) {
             $scope.linkBoxIndex = index;
           }
+
+          $scope.loadQuotationData = function (seek) {
+              if (seek.quotation) {
+                  console.log(3)
+                  return
+              }
+              var param = {
+                  id: seek.quteId,
+                  enuu: $scope.userInfo.enterprise.uu,
+                  useruu: $scope.userInfo.userUU
+              }
+              $http({
+                  method: 'get',
+                  dataType: 'json',
+                  url: seekUrl + '/inquiry/public/quotation/one',
+                  params: param
+              }).success(function (data) {
+                  seek.quotation = data
+              }).error(function (response) {
+                  toaster.pop('error', response);
+              });
+          }
+
           });
         }]);
 });

+ 5 - 5
src/main/webapp/resources/js/vendor/controllers/forstore/single_entry.js

@@ -138,7 +138,7 @@ define(['app/app', 'jquery-uploadify'], function(app) {
         if (name === '') {
           $scope.Regul.BrandList = []
         } else {
-          $scope.Regul.pbranden = $scope.Regul.BrandList && $scope.Regul.BrandList.value && $scope.Regul.BrandList.value[0].nameEn || name
+          $scope.Regul.pbranden = $scope.Regul.BrandList && $scope.Regul.BrandList.value[0] && $scope.Regul.BrandList.value[0].nameEn || name
           $scope.Regul.BrandList = []
         }
       // }, 300)
@@ -200,10 +200,10 @@ define(['app/app', 'jquery-uploadify'], function(app) {
       if (name === '') {
         $scope.Regul.CodeList = []
       } else {
-        $scope.Regul.pcmpcode = $scope.Regul.CodeList.value && $scope.Regul.CodeList.value[0].pcmpcode || name
-        $scope.Regul.pbranden = $scope.Regul.CodeList.value && $scope.Regul.CodeList.value[0].pbranden || $scope.Regul.pbranden
-        $scope.Regul.spec = $scope.Regul.CodeList.value && $scope.Regul.CodeList.value[0].pbranden || $scope.Regul.spec
-        $scope.Regul.kind = $scope.Regul.CodeList.value && $scope.Regul.CodeList.value[0].pbranden || $scope.Regul.kind
+        $scope.Regul.pcmpcode = $scope.Regul.CodeList.value && $scope.Regul.CodeList.value[0] && $scope.Regul.CodeList.value[0].pcmpcode || name
+        $scope.Regul.pbranden = $scope.Regul.CodeList.value && $scope.Regul.CodeList.value[0] && $scope.Regul.CodeList.value[0].pbranden || $scope.Regul.pbranden
+        $scope.Regul.spec = $scope.Regul.CodeList.value && $scope.Regul.CodeList.value[0] && $scope.Regul.CodeList.value[0].pbranden || $scope.Regul.spec
+        $scope.Regul.kind = $scope.Regul.CodeList.value && $scope.Regul.CodeList.value[0] && $scope.Regul.CodeList.value[0].pbranden || $scope.Regul.kind
         $scope.Regul.CodeList = []
       }
     }

+ 7 - 0
src/main/webapp/resources/view/admin/stats_data.html

@@ -44,6 +44,12 @@
         margin-right: 10px;
         cursor:pointer;
     }
+    #rootStats .screen .sreach .sreach-btn{
+        margin-left:15px;
+        text-decoration:none;
+        cursor:pointer;
+    }
+
     #rootStats .screen .sreach .date{
         margin:0 20px;
     }
@@ -353,6 +359,7 @@
                                    ng-change="onDateCondition(2, endDate)"/>
                             <button class="open" ng-click="openDatePicker($event, condition, 1)"></button>
                         </div>
+                        <a class="sreach-btn" ng-click="setFiltersAll()">确认</a>
                     </div>
                 </div>
             </div>

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

@@ -214,7 +214,7 @@
 		height: 180px;
 		padding-top: 10px;
 		width: 210px;
-		top: -76px;
+		top: 0;
 	}
 	#sidebar .sidebar-content li .contact-us p{
 		line-height: 33px;

+ 35 - 27
src/main/webapp/resources/view/usercenter/b2b/fa/arCheck.html

@@ -563,13 +563,15 @@
       <th width="180">对账总额</th>
       <th width="180">明细条目</th>
       <th width="100">商品总数</th>
-      <th width="100">对账结果</th>
-      <th width="100">操作</th>
+      <!--<th width="100">对账结果</th>-->
+      <!--<th width="100">操作</th>-->
     </tr>
     </thead>
+
+
     <tbody ng-if="$data.length === 0">
     <tr>
-      <td colspan="6">
+      <td colspan="5">
         <div id="empty">
           <div class="left_img">
             <a><img src="static/img/all/empty-cart.png"></a>
@@ -584,19 +586,25 @@
     </tbody>
     <tbody ng-repeat="check in $data">
     <tr class="order-bd order-hdt">
-      <td colspan="6" style="text-align: left">
-        <span class="text-num text-bold" style="font-weight:bold" title="录单时间">日期:{{::check.date | date:'MM月dd日 HH:mm'}}</span>
-        &nbsp;&nbsp;&nbsp;
-        <span>
-          <!--<i class="fa fa-star" ng-class="{'text-default':check.status==201}"></i>-->
-          <img src="static/img/user/images/shop_home.png" style="margin-right: 5px">{{::check.vendor.enName}}</span>
-        <span style="margin-left: 100px;">单据编号:</span>
-        <span class="text-num"><a style="color: #5078cb" ui-sref="fa_arCheck_detail({id:check.id})" title="点击查看详情">{{::check.code}}</a></span>
+      <td colspan="4" style="text-align: left">
+
+        <span class="text-num text-bold" title="录单时间">日期:{{::check.apDate | date:'MM月dd日 HH:mm'}}</span>&nbsp;&nbsp;&nbsp;
+        <span><img src="static/img/user/images/shop_home.png" style="margin-right: 5px">{{::check.vendorName}}</span>
+        <span  style="margin-left: 100px;">单据编号:</span>
+        <span class="text-num"><a  style="color: #5078cb" ui-sref="fa_arCheck_detail({id:check.id})" title="点击查看详情">{{::check.code}}</a></span>
+
+        <!--<span class="text-num text-bold" style="font-weight:bold" title="录单时间">日期:{{::check.apDate | date:'MM月dd日 HH:mm'}}</span>-->
+        <!--&nbsp;&nbsp;&nbsp;-->
+        <!--<span>-->
+          <!--&lt;!&ndash;<i class="fa fa-star" ng-class="{'text-default':check.status==201}"></i>&ndash;&gt;-->
+          <!--<img src="static/img/user/images/shop_home.png" style="margin-right: 5px">{{::check.vendor.enName}}</span>-->
+        <!--<span style="margin-left: 100px;">单据编号:</span>-->
+        <!--<span class="text-num"><a style="color: #5078cb" ui-sref="fa_arCheck_detail({id:check.id})" title="点击查看详情">{{::check.code}}</a></span>-->
       </td>
     </tr>
-    <tr>
+    <tr style="line-height: 57px">
       <td class="first info" colspan="1">
-        <p class="f14 text-num">{{::check.fromDate | date:'yyyy/MM/dd'}} - {{::check.toDate | date:'yyyy/MM/dd'}}</p>
+        <p class="f14 text-num">{{::check.beginDate | date:'yyyy/MM/dd'}} - {{::check.endDate | date:'yyyy/MM/dd'}}</p>
       </td>
       <td class="first info" colspan="1">
         <p>
@@ -614,24 +622,24 @@
           <strong class="text-num">{{getTotalProd(check) | number}}</strong> <i class="fa fa-cubes"></i><br>
         </p>
       </td>
-      <td class="status" colspan="2">
-        <div ng-if="check.status == 200" class="text-center text-muted f14"><br>还未开始对账!</div>
-        <div ng-if="check.status == 201 && check.items.length == check.agree" class="text-center text-muted f14">
-          <br> <i class="fa fa-check-square-o"></i> 已全部确认
-        </div>
-        <div ng-if="check.status == 201 && check.items.length != check.agree" class="text-center text-muted f14">
-          已开始对账,但未全部确认
-        </div>
-        <div ng-if="check.status == 201 && check.items.length != check.agree">
-          <div class="text-success text-bold"><i class="fa fa-smile-o fa-lg fa-fw"></i>已确认: {{::check.agree}}</div>
-          <div class="text-warning text-bold"><i class="fa fa-frown-o fa-lg fa-fw"></i>不同意: {{::check.disagree}}</div>
-          <div class="text-muted text-bold"><i class="fa fa-meh-o fa-lg fa-fw"></i>未对账: {{check.items.length - check.agree - check.disagree}}</div>
-        </div>
+      <!--<td class="status" colspan="2">-->
+        <!--<div ng-if="check.status == 200" class="text-center text-muted f14"><br>还未开始对账!</div>-->
+        <!--<div ng-if="check.status == 201 && check.items.length == check.agree" class="text-center text-muted f14">-->
+          <!--<br> <i class="fa fa-check-square-o"></i> 已全部确认-->
+        <!--</div>-->
+        <!--<div ng-if="check.status == 201 && check.items.length != check.agree" class="text-center text-muted f14">-->
+          <!--已开始对账,但未全部确认-->
+        <!--</div>-->
+        <!--<div ng-if="check.status == 201 && check.items.length != check.agree">-->
+          <!--<div class="text-success text-bold"><i class="fa fa-smile-o fa-lg fa-fw"></i>已确认: {{::check.agree}}</div>-->
+          <!--<div class="text-warning text-bold"><i class="fa fa-frown-o fa-lg fa-fw"></i>不同意: {{::check.disagree}}</div>-->
+          <!--<div class="text-muted text-bold"><i class="fa fa-meh-o fa-lg fa-fw"></i>未对账: {{check.items.length - check.agree - check.disagree}}</div>-->
+        <!--</div>-->
         <!-- <a ng-if="check.status == 200 || check.items.length != check.agree" class="operate operate-undo text-center"
           ui-sref="fa.arCheck_detail({id:check.id})" target="_blank">立即开始对账</a>
         <a ng-if="check.status == 201 && check.items.length == check.agree" class="operate operate-done text-center"
           ui-sref="fa.arCheck_detail({id:check.id})" target="_blank">查看详情</a> -->
-      </td>
+      <!--</td>-->
     </tr>
     </tbody>
   </table>

+ 10 - 68
src/main/webapp/resources/view/usercenter/b2b/fa/arCheck_detail.html

@@ -226,11 +226,11 @@
       <div class="row row-sm item">
         <div class="col-xs-6">
           <span class="title">供应商:</span>
-          <div class="content" ng-bind="::order.vendor.enName"></div>
+          <div class="content" ng-bind="::order.vendorName"></div>
         </div>
         <div class="col-xs-6">
           <span class="title">对账期间:</span>
-          <div class="content text-num">{{::order.fromDate | date:'yyyy/MM/dd'}} - {{::order.toDate | date:'yyyy/MM/dd'}}</div>
+          <div class="content text-num">{{::order.beginDate | date:'yyyy/MM/dd'}} - {{::order.endDate | date:'yyyy/MM/dd'}}</div>
         </div>
       </div>
       <div class="row row-sm item">
@@ -240,7 +240,7 @@
         </div>
         <div class="col-xs-6">
           <span class="title">录单日期:</span>
-          <div class="content" ng-bind="::order.date | date:'MM月dd日 HH:mm'"></div>
+          <div class="content" ng-bind="::order.recordDate | date:'MM月dd日 HH:mm'"></div>
         </div>
       </div>
       <div class="row row-sm item">
@@ -256,17 +256,17 @@
       <div class="row row-sm item">
         <div class="col-xs-6">
           <span class="title">应收日期:</span>
-          <div class="content" ng-bind="::order.arDate | date:'MM月dd日'"></div>
+          <div class="content" ng-bind="::order.apDate | date:'MM月dd日'"></div>
         </div>
         <div class="col-xs-6">
           <span class="title">对方业务员:</span>
           <div class="content" ng-bind="::order.sellerName"></div>
         </div>
       </div>
-      <div class="row row-sm item" ng-if="order.remark">
+      <div class="row row-sm item" ng-if="order.reason">
         <div class="col-xs-12">
-          <span class="title">供应商备注:</span>
-          <div class="content" ng-bind="::order.remark"></div>
+          <span class="title">备注:</span>
+          <div class="content" ng-bind="::order.reason"></div>
         </div>
       </div>
     </div>
@@ -324,7 +324,6 @@
           <th width="80">单价</th>
           <th width="120">对账数量</th>
           <th width="120">对账金额</th>
-          <th width="140">操作</th>
         </tr>
         </thead>
         <tbody>
@@ -340,12 +339,8 @@
           </td>
           <td class="text-muted text-num">
             <div>
-              <i class="fa fa-file-text-o fa-fw" title="采购订单编号"></i>
-              <span ng-bind="::item.poCode"></span>
-            </div>
-            <div>
-              <i class="fa fa-share-square-o fa-fw" title="供应商出库单号"></i>
-              <span ng-bind="::item.inoutCode"></span> 第<span ng-bind="item.sourceNumber"></span>行
+              <i class="fa fa-share-square-o fa-fw" title="出库单号"></i>
+              <span ng-bind="::item.orderCode"></span> 第<span ng-bind="item.orderDetno"></span>行
             </div>
           </td>
           <td class="text-center">
@@ -355,64 +350,11 @@
           <td class="text-center">
             <div>
               <span class="badge" ng-if="item.status==201 && !item.agreed">供</span>
-              <span class="text-num text-bold" ng-bind="::item.qty | number"></span>
-            </div>
-            <div ng-if="item.status==201 && !item.agreed">
-              <span class="badge badge-info">我</span>
-              <span class="text-num text-bold" ng-bind="::item.replyQty | number"></span>
-            </div>
-            <div ng-if="item.$editing">
-              <input ng-model="item.$replyQty" class="form-control input-xs" type="number" placeholder="确认数量">
+              <span class="text-num text-bold" ng-bind="::item.checkQty | number"></span>
             </div>
           </td>
           <td>
             <div class="text-num text-inverse text-bold" ng-bind="::item.amount | number:6"></div>
-            <div ng-if="item.$editing">
-              <input ng-model="item.$replyRemark" class="form-control input-xs" type="text" placeholder="确认备注">
-            </div>
-            <div ng-if="item.replyQty > 0" class="dropdown text-center">
-              <a href="javascript:void(0);" class="dropdown-toggle text-default"
-                 ng-mouseover="getReplies(item)">对账记录<i class="fa fa-fw fa-angle-down"></i></a>
-              <div class="dropdown-menu dropdown-menu-right pane" style="width: 270px;">
-                <div class="pane-body">
-                  <ul class="list-unstyled list-menu">
-                    <li ng-repeat="reply in ::item.replies">
-                      <div ng-if="reply.type=='v'" class="text-left">
-                        <div ng-class="{'text-inverse': $last}">
-                          <span class="pull-right text-muted" ng-bind="reply.date | date:'MM-dd HH:mm'"></span>
-                          <span class="badge">供</span> 数量:{{::reply.qty}}
-                        </div>
-                        <div class="text-muted">{{reply.remark}}</div>
-                      </div>
-                      <div ng-if="reply.type=='c'" class="text-right"
-                           ng-class="{'text-inverse': $last}">
-                        <div>
-                          <span class="pull-left text-muted" ng-bind="reply.date | date:'MM-dd HH:mm'"></span>
-                          {{::reply.qty}}:<span ng-bind="reply.recorder"></span>  <span class="badge badge-info">我</span>
-                        </div>
-                        <div class="text-muted">{{reply.remark}}</div>
-                      </div>
-                    </li>
-                  </ul>
-                </div>
-              </div>
-            </div>
-          </td>
-          <td class="text-center">
-            <div ng-if="item.status == 200 && !item.$editing">
-              <a ng-click="onReplyClick(item, true)" style="display:inline-block;width: 40px;height: 24px;line-height: 24px;color:#3c7cf5;border:1px solid #3c7cf5">确认</a>
-              <a ng-click="item.$editing = true"  style="display:inline-block;width: 48px;height: 24px;line-height: 24px;color:#3c7cf5;border:1px solid #3c7cf5">不同意</a>
-            </div>
-            <div ng-if="item.$editing">
-              <a ng-click="item.$editing = false" style="display:inline-block;width: 40px;height: 24px;line-height: 24px;color:#3c7cf5;border:1px solid #3c7cf5">取消</a>
-              <a ng-click="onReplyClick(item, false)" class="" style="display:inline-block;width: 62px;height: 24px;line-height: 24px;color:#3c7cf5;border:1px solid #3c7cf5">确认对账</a>
-            </div>
-            <div ng-if="item.status == 201 && item.agreed">
-              <span class="label label-success">已确认</span>
-            </div>
-            <div ng-if="item.waiting">
-              <span class="text-muted f12">您确认的数量正在等待供应商确认...</span>
-            </div>
           </td>
         </tr>
         <tr>

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

@@ -1112,6 +1112,8 @@
 				<div class="check" style="margin-left: 12px;color: #666; font-size: 14px;margin-top: 20px;">
 					更多操作:
 					<div class="operate-btn" ng-click="setAllInPerson($event)" ng-if="chooseTypePeople === 'all'"><span>加入我的产品库</span></div>
+					<div class="operate-btn" ui-sref="product_upload"><span>导入产品</span></div>
+					<div class="operate-btn" ui-sref="single_entry"><span>录入产品</span></div>
 					<div class="operate-btn" ng-click="sendGoodsCome()"><span>入库</span></div>
 					<!--<div class="operate-btn" ng-click="sendGoodsOut()"><span>出库</span></div>-->
 					<!--<div class="operate-btn" ng-click="download($event)"><span>导出选中</span></div>-->

+ 193 - 79
src/main/webapp/resources/view/vendor/b2b/apCheck.html

@@ -520,13 +520,14 @@
   <div class="com_tab tab_top" style="margin-bottom: 0px">
     <ul>
       <li ng-class="{'active': active=='all'}" ng-click="setActive('all')"><a> 未对账</a></li>
-      <li ng-class="{'active': active=='todo'}" ng-click="setActive('todo')"><a>待确认(<em ng-class="{'color-black': !unread.replied }" ng-bind="unread.replied || 0"></em>)</a></li>
-      <li ng-class="{'active': active=='done'}" ng-click="setActive('done')"><a>已确认</a></li>
+      <!--<li ng-class="{'active': active=='todo'}" ng-click="setActive('todo')"><a>待确认(<em ng-class="{'color-black': !unread.replied }" ng-bind="unread.replied || 0"></em>)</a></li>-->
+      <li ng-class="{'active': active=='done'}" ng-click="setActive('done')"><a>已对账</a></li>
       <li ng-class="{'active': active=='end'}" ng-click="setActive('end')"><a>已作废(<em ng-class="{'color-black': !unread.cancelled }" ng-bind="unread.cancelled || 0"></em>)</a></li>
+        <li style="float: right;font-size: 14px;cursor: pointer;" ng-hide="!showNotCheck" ng-click="hideshowNotCheck()"><img src="/static/img/vendor/images/backIcon.png" width="20"/>返回</li>
     </ul>
   </div>
-  <div class="screen check-filter">
-    <div class="radio-block date-radio" ng-if="active !== 'all'" style="width: 33%">
+  <div class="screen check-filter" ng-show="!showNotCheck">
+    <div class="radio-block date-radio" ng-show="active !== 'all'" style="width: 33%">
       时间:
       <label class="com-check-radio">
         <input type="radio" id="oneMonth" name="date" ng-click="changeDateZone(1);condition.$open=false" checked>
@@ -549,6 +550,37 @@
         自定义
       </label>
     </div>
+     <div class="fl" ng-show="active === 'all'" >
+          <label class="control-label">请选择月份:</label>
+          <span ng-click="addMouthOut(-1)" style="    display: inline-block;
+                width: 30px;
+                height: 30px;
+                border: 1px solid #ddd;
+                text-align: center;
+                line-height: 30px;
+                cursor: pointer;
+                vertical-align: middle;">
+                <img src="/static/img/vendor/images/arrow-left-d-l.png" width="24"/>
+            </span>
+          <span class="inputsIcon control-label" style="padding-right: 5px;display: inline-block">
+              <wui-date
+                      format="yyyy-mm"
+                      placeholder="请选择或输入日期"
+                      id="date3"
+                      btns="{'ok':'确定','now':'此刻'}"
+                      ng-model="thisMouthOut"
+              >
+              </wui-date>
+            </span>
+         <span  ng-click="addMouthOut(1)" style="display: inline-block;
+                width: 30px;
+                height: 30px;
+                border: 1px solid #ddd;
+                text-align: center;
+                line-height: 30px;
+                cursor: pointer;
+                vertical-align: middle;"><img src="/static/img/vendor/images/arrow-right-d-l.png" width="24"/></span>
+      </div>
     <div class="sreach fr">
       <div ng-show="condition.$open" class="date fl">
         <div class="data-input">
@@ -580,18 +612,14 @@
       </div>
       <div class="sreach-input fr">
         <input type="search" placeholder="单据编号/客户名称/物料名称" class="form-control" ng-model="keyword" ng-search="onSearch(keyword)" ng-show="active !== 'all'"/>
-        <input type="search" placeholder="客户名称" class="form-control" ng-model="keyword" ng-search="onSearch(keyword)" ng-show="active === 'all'"/>
-        <a class="seek" href="javascript:void(0)" ng-click="onSearch(keyword)">搜索</a>
+          <a class="seek" href="javascript:void(0)" ng-click="onSearch(keyword)" ng-show="active !== 'all'">搜索</a>
+          <input type="search" placeholder="客户名称" class="form-control" ng-model="keyword" ng-search="onSearch(keyword)" ng-show="active === 'all' && !showNotCheck"/>
+          <a class="seek" href="javascript:void(0)" ng-click="onSearch(keyword)" ng-show="active === 'all' && !showNotCheck">搜索</a>
       </div>
     </div>
   </div>
   <div ng-hide="showNotCheck">
 
-    <!--<div ng-show="active === 'all'">-->
-      <!--<table class="order-table block order-table2" ng-table="tableParams" width="100%" style="table-layout:fixed">-->
-
-      <!--</table>-->
-    <!--</div>-->
     <div >
       <table class="order-table block" ng-class="{'order-table2': active === 'all'}" ng-table="tableParams" ng-table="tableParams" width="100%" style="table-layout:fixed">
         <thead ng-show="active !== 'all'">
@@ -676,17 +704,27 @@
         <thead ng-show="active === 'all'">
           <tr class="header">
             <th width="313">客户名称</th>
-            <th width="250">上次对账时间</th>
-            <th width="250">未对账总额</th>
+            <th width="250">本月应收</th>
+            <th width="250">应收总额</th>
             <th width="160">操作</th>
           </tr>
         </thead>
         <tbody ng-show="active === 'all'" ng-repeat="check in ALLList">
           <tr >
             <td style="color: #3f84f6">{{::check.myEnterprise.enName}}</td>
-            <td ng-if="check.lastCheckDate">{{::check.lastCheckDate | date : 'MM月dd日 HH:mm'}}</td>
-            <td ng-if="!check.lastCheckDate">-</td>
-            <td>{{::check.uncheckedCount || '-'}}</td>
+            <td ng-if="check.thisMonthCount && check.thisMonthCount.length > 0">
+              <div ng-repeat="count in check.thisMonthCount">
+                <span>{{count.currency}}:{{count.amount | number:2}}</span>
+              </div>
+
+            </td>
+            <td ng-if="!check.thisMonthCount">-</td>
+            <td ng-if="check.totalCount && check.totalCount.length > 0">
+              <div ng-repeat="count in check.totalCount">
+                <span>{{count.currency}}:{{count.amount | number:2}}</span>
+              </div>
+            </td>
+            <td ng-if="!check.totalCount">-</td>
             <td style="color: #3f84f6;cursor: pointer" ng-click="goToMNs(check)">立即对账</td>
           </tr>
         </tbody>
@@ -702,7 +740,7 @@
               <div class="right_link">
                 <p ng-if="active != 'all'">暂无对账信息!</p>
                 <p ng-if="active == 'all'">您还未生成对账单,请立即新增对账!</p>
-                <a ng-if="active == 'all'" ui-sref="fa_apCheckList"><i class="fa fa-plus-square fa-fw"></i> 新增对账单</a>
+                <!--<a ng-if="active == 'all'" ui-sref="fa_apCheckList"><i class="fa fa-plus-square fa-fw"></i> 新增对账单</a>-->
               </div>
             </div>
           </td>
@@ -719,7 +757,7 @@
                 <div class="right_link">
                   <p ng-if="active != 'all'">暂无对账信息!</p>
                   <p ng-if="active == 'all'">您还未生成对账单,请立即新增对账!</p>
-                  <a ng-if="active == 'all'" ui-sref="fa_apCheckList"><i class="fa fa-plus-square fa-fw"></i> 新增对账单</a>
+                  <!--<a ng-if="active == 'all'" ui-sref="fa_apCheckList"><i class="fa fa-plus-square fa-fw"></i> 新增对账单</a>-->
                 </div>
               </div>
             </td>
@@ -732,20 +770,100 @@
     <form class="form-horizontal"
           style="padding-top: 10px; padding-bottom: 20px;">
       <div class="form-group form-group-sm form-group-inline">
-        <label class="col-sm-1 control-label">客&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;户:</label>
-        <div class="col-sm-7 control-label" style="text-align:left">
-          {{suuorname}}
+        <div  class="col-sm-7 control-label">
+          <div style="text-align: left">
+            <label>应收客户:</label>
+            <label style="text-align:left">
+              {{suuorname}}
+            </label>
+          </div>
+        <div style="text-align: left;margin-top: 20px">
+            <label>本期间应收:</label>
+            <label style="text-align:left;vertical-align: top;">
+               <div ng-if="dataInfo.thisMonthCount.length > 0" ng-repeat="count in dataInfo.thisMonthCount">
+                   <span>{{count.currency}}:{{count.amount | number:2}}</span>
+               </div>
+                <div ng-if="dataInfo.thisMonthCount.length === 0">
+                    0
+                </div>
+            </label>
+        </div>
+        <div style="text-align: left;margin-top: 20px">
+            <label>应收总额:</label>
+            <label style="text-align:left;vertical-align: top;">
+                <div ng-if="dataInfo.totalCount.length > 0" ng-repeat="count in dataInfo.totalCount">
+                    <span>{{count.currency}}:{{count.amount | number:2}}</span>
+                </div>
+                <div ng-if="dataInfo.totalCount.length === 0">
+                    0
+                </div>
+            </label>
         </div>
-        <label class="col-sm-2 control-label">请选择月份:</label>
-        <div class="col-sm-2" style="padding-right: 5px">
-          <wui-date
-                  format="yyyy-mm"
-                  placeholder="请选择或输入日期"
-                  id="date4"
-                  btns="{'ok':'确定','now':'此刻'}"
-                  ng-model="thisMouth"
-          >
-          </wui-date>
+        </div>
+        <div  class="col-sm-5 control-label">
+          <div>
+            <label class="control-label">请选择月份:</label>
+            <span ng-click="addMouth(-1)" style="    display: inline-block;
+                width: 30px;
+                height: 30px;
+                border: 1px solid #ddd;
+                text-align: center;
+                line-height: 30px;
+                cursor: pointer;
+                vertical-align: middle;">
+                <img src="/static/img/vendor/images/arrow-left-d-l.png" width="24"/>
+            </span>
+            <span class="control-label" style="padding-right: 5px;display: inline-block" ng-click="apCheckCondition.$open = false">
+              <wui-date
+                      format="yyyy-mm"
+                      placeholder="请选择或输入日期"
+                      id="date4"
+                      btns="{'ok':'确定','now':'此刻'}"
+                      ng-model="thisMouth"
+              >
+              </wui-date>
+            </span><span  ng-click="addMouth(1)" style="display: inline-block;
+                width: 30px;
+                height: 30px;
+                border: 1px solid #ddd;
+                text-align: center;
+                line-height: 30px;
+                cursor: pointer;
+                vertical-align: middle;"><img src="/static/img/vendor/images/arrow-right-d-l.png" width="24"/></span>
+            <label class="control-label com-check-radio" ng-click="apCheckCondition.$open = true">
+              <input type="radio" name="psa" ng-checked="apCheckCondition.$open === true"  ng-model="apCheckCondition.$open">
+              <label for="autoMonth"></label>
+              自定义
+            </label>
+          </div>
+          <div ng-hide="!apCheckCondition.$open" class="date fr" style="margin-top: 14px;">
+            <div class="data-input">
+              <input type="text" ng-model="apCheckCondition.dateFrom"
+                     class="form-control select-adder" placeholder="起始时间"
+                     datepicker-popup="yyyy-MM-dd"
+                     is-open="apCheckCondition.$fromOpened"
+                     max-date="apCheckCondition.dateTo" current-text="今天" clear-text="清除" close-text="关闭"
+                     ng-focus="apCheckopenFilterDatePicker($event, apCheckCondition, '$fromOpened')"
+                     datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+                     style="width: 130px;height: 32px"
+              />
+              <button class="open" ng-click="apCheckopenFilterDatePicker($event, apCheckCondition, '$fromOpened')"></button>
+            </div>
+
+            <em style="float:left;margin: 0 10px">–</em>
+            <div class="data-input">
+              <input type="text" ng-model="apCheckCondition.dateTo"
+                     class="form-control select-adder" placeholder="结束时间"
+                     datepicker-popup="yyyy-MM-dd"
+                     is-open="apCheckCondition.$toOpened"
+                     min-date="apCheckCondition.dateFrom" current-text="今天" clear-text="清除" close-text="关闭"
+                     ng-focus="apCheckopenFilterDatePicker($event, apCheckCondition, '$toOpened')"
+                     datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
+                     style="width: 130px;height: 32px"
+              />
+              <button class="open" ng-click="apCheckopenFilterDatePicker($event, apCheckCondition, '$toOpened')"></button>
+            </div>
+          </div>
         </div>
       </div>
       <div class="form-group form-group-sm form-group-inline">
@@ -822,68 +940,60 @@
       <div class="table-header-wrap">
         <table class="table table-bordered">
           <tr>
-            <th width="36" style="vertical-align: middle;">
-              <input type="checkbox" name="checkbox" ng-model="checkboxes.checked" ng-click="checkAll()"></th>
-            <th width="100">本次<br>对账数</th>
+            <th width="36" style="vertical-align: middle;"><input type="checkbox" name="checkbox" ng-model="checkboxes.checked" ng-click="checkAll()"></th>
             <!--<th width="70">客户<br>名称</th>-->
-            <th width="60">单据<br>编号</th>
-            <th width="60">发货<br>单号</th>
-            <th width="35">序号</th>
-            <th width="60">类型</th>
-            <th width="60">单据<br>日期</th>
-            <th width="90">应付<br>供应商</th>
-            <th width="70">客户<br>采购单</th>
-            <th width="65">客户<br>料号</th>
-            <th width="70">客户物<br>料名称</th>
-            <th width="70">客户规<br>格型号</th>
-            <th width="65">送货<br>工厂</th>
-            <th width="55">数量</th>
+            <th width="70">采购单</th>
+            <th width="70">物料名称</th>
+            <th width="70">规格型号</th>
+            <th width="60">发货单</th>
+            <th width="55">发货数量</th>
+            <th width="60">验收单</th>
+            <th width="100">验收数量</th>
             <th width="40">单价</th>
-            <th width="30">币别</th>
             <th width="40">税率</th>
-            <th width="60">金额</th>
-            <th width="70">本次对<br>账金额</th>
+            <th width="70">小计</th>
+            <!--<th width="35">序号</th>-->
+            <!--<th width="60">类型</th>-->
+            <!--<th width="60">单据<br>日期</th>-->
+            <!--<th width="90">应付<br>供应商</th>-->
+            <!--<th width="65">客户<br>料号</th>-->
+            <!--<th width="65">送货<br>工厂</th>-->
+            <!--<th width="30">币别</th>-->
+            <!--<th width="60">金额</th>-->
           </tr>
         </table>
       </div>
       <div class="table-body-wrap">
         <table class="table table-bordered">
-          <tr ng-repeat="check in data"
-              class="thAlign" style="height: 40px;">
-            <td width="36" style="text-align: center;vertical-align: middle;"><input
-                    ng-model="check.$selected" name="checkbox"
-                    ng-click="checkOne(check)" ng-change="getTotalMoney()"
-                    type="checkbox"></td>
-            <td width="100"><input ng-model="check.thischeckqty"
-                                   type="number" max="data.maxThisCheckQty"
-                                   min="data.minThisCheckQty" ng-change="getTotalMoney()"
-                                   style="width: 75px;" class=" input-sm text-center"></td>
-            <!--<td width="70" title="{{check.custname}}"><div-->
-                    <!--style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.custname}}</div></td>-->
-            <td width="60">{{::check.inoutno}}</td>
-            <td width="60">{{::check.sendcode}}</td>
-            <td width="35" align="center">{{::check.detno}}</td>
-            <td width="60">{{::check.piclass}}</td>
-            <td width="60">{{::check.pidate | date:'yyyy-MM-dd' }}</td>
-            <td width="90" title="{{check.receivename}}">
-              <div
-                      style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.receivename}}</div>
-            </td>
+          <tr ng-repeat="check in data" ng-click="checkOne(check);getTotalMoney()" class="thAlign" style="height: 40px;">
+            <td width="36" style="text-align: center;vertical-align: middle;">
+              <input ng-model="check.$selected" name="checkbox" type="checkbox" ng-checked="check.$selected"></td>
             <td width="70">{{::check.ordercode}}</td>
-            <td width="65">{{::check.prodcode}}</td>
             <td width="70" title="{{check.prodtitle}}">
-              <div
-                      style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.prodtitle}}</div>
+              <div style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.prodtitle}}</div>
             </td>
-            <td width="70" title="{{check.prodspec}}"><div
-                    style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.prodspec}}</div></td>
-            <td width="65">{{::check.factory}}</td>
+            <td width="70" title="{{check.prodspec}}">
+              <div style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.prodspec}}</div></td>
+            <td width="60">{{::check.sendcode}}</td>
             <td width="55">{{::check.qty}}</td>
+            <td width="60">{{::check.inoutno}}</td>
+            <td width="100">{{::check.thischeckqty}}</td>
             <td width="40">{{::check.orderprice}}</td>
-            <td width="30">{{::check.currency}}</td>
             <td width="40" align="center">{{::check.taxrate}}</td>
-            <td width="60">{{::(check.qty || 0)*(check.orderprice || 0) | number:2}}</td>
-            <td width="60">{{::(check.orderprice || 0)*(check.thischeckqty || 0) | number:2}}</td>
+            <td width="70">{{::(check.orderprice || 0)*(check.thischeckqty || 0) | number:2}}</td>
+            <!--<td width="70" title="{{check.custname}}"><div-->
+                    <!--style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.custname}}</div></td>-->
+            <!--<td width="35" align="center">{{::check.detno}}</td>-->
+            <!--<td width="60">{{::check.piclass}}</td>-->
+            <!--<td width="60">{{::check.pidate | date:'yyyy-MM-dd' }}</td>-->
+            <!--<td width="90" title="{{check.receivename}}">-->
+              <!--<div style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.receivename}}</div>-->
+            <!--</td>-->
+            <!--<td width="65">{{::check.prodcode}}</td>-->
+            <!--<td width="65">{{::check.factory}}</td>-->
+            <!--<td width="30">{{::check.currency}}</td>-->
+            <!--<td width="60">{{::(check.qty || 0)*(check.orderprice || 0) | number:2}}</td>-->
+
           </tr>
           <tr ng-if="!data || data.length==0">
             <td colspan="19">
@@ -1006,4 +1116,8 @@
     font-size: 14px;
     color: #666;
   }
+
+  .inputsIcon .wui-date-editor .icon1{
+      top: 11px !important;
+  }
 </style>

+ 6 - 6
src/main/webapp/resources/view/vendor/b2b/apCheck_detail.html

@@ -278,21 +278,22 @@
         <thead>
         <tr class="header">
           <th width="30" style="padding:8px 0;">行号</th>
+          <th>序号</th>
+          <th>采购单</th>
           <th width="120">商品</th>
-          <th width="100">单据编号</th>
+          <th width="100">验收单</th>
           <th width="80">单据类型</th>
-          <th>序号</th>
           <th>单价</th>
           <th>税率</th>
-          <th  width="80">对账数量</th>
-          <th  width="80">对账金额</th>
-          <th>采购单号</th>
+          <th width="80">验收数量</th>
+          <th width="80">小计</th>
           <th>采购序号</th>
         </tr>
         </thead>
         <tbody ng-repeat="item in data.items" style="text-align: center;">
         <tr>
           <td ng-bind="item.number" style="padding:8px 0;"></td>
+          <td ng-bind="item.orderCode"></td>
           <td style="max-width: 250px;" class="text-left">
             <div>编号: <span ng-bind="item.prodCode"></span></div>
             <div>规格: <span ng-bind="item.prodSpec"></span></div>
@@ -304,7 +305,6 @@
           <td ng-bind="item.taxrate"></td>
           <td ng-bind="item.checkQty"></td>
           <td ng-bind="isUser?'-':(item.amount | number:2)"></td>
-          <td ng-bind="item.orderCode"></td>
           <td ng-bind="item.orderDetno"></td>
         </tr>
         </tbody>

+ 6 - 16
src/main/webapp/resources/view/vendor/b2b/modal/add_userInfo.html

@@ -3,20 +3,10 @@
 		width: 492px;
 	}
 	#user-lists{
-		max-height: 600px;
+		max-height: 510px;
 		overflow-x: hidden;
 		overflow-y: scroll;
 	}
-	@media screen and (max-width: 1366px){
-		#user-lists{
-			max-height: 368px;
-		}
-	}
-	@media screen and (max-width: 1600px){
-		#user-lists{
-			max-height: 400px;
-		}
-	}
 </style>
 <div class="b2b-com-modal b2b-operate-modal">
 	<p class="title">
@@ -24,14 +14,14 @@
 	</p>
 	<div class="form-group" id="window-search" style="height: 36px; margin-bottom: 0; margin-top: 16px;padding-bottom: 45px;border-bottom: 1px solid #e3e3e3;">
 		<div class="col-sm-12">
-			<input type="text" class="form-control input-sm" required="" placeholder="输入用户名关键词搜索" autofocus="" ng-model="keyword" ng-search="onSearch(keyword)" />
+			<input type="text" class="form-control input-sm" required="" placeholder="输入用户电话和用户名关键词搜索" ng-model="keyword" ng-search="onSearch(keyword)" />
 			<a class="btn input-group-addon" ng-click="onSearch()">搜索</a>
 		</div>
 	</div>
 	<div class="modal-body" id="user-lists">
-		<table class="table b2b-modal-table">
+		<table class="table b2b-modal-table" ng-table="userParams">
 			<thead>
-			<th width="80px;">用户UU</th>
+			<th width="80px;">用户电话</th>
 			<th width="100px;">用户名称</th>
 			<th width="40px;" style="text-align: center">
 				<label class="com-check-box">
@@ -43,8 +33,8 @@
 			</thead>
 			<tbody>
 			<div style="overflow-y:scroll; width:100%;max-height:500px">
-				<tr ng-repeat="user in userinfos| filter: keyword track by $index">
-					<td width="80px;">{{user.userUU}}</td>
+				<tr ng-repeat="user in userinfos track by $index">
+					<td width="80px;">{{user.userTel}}</td>
 					<td width="100px;">{{user.userName}}</td>
 					<td width="40px;" style="text-align: center">
 						<label class="com-check-box">

+ 10 - 20
src/main/webapp/resources/view/vendor/b2b/modal/transfer_userInfo.html

@@ -3,20 +3,10 @@
 		width: 492px;
 	}
 	#user-lists{
-		max-height: 600px;
+		max-height: 510px;
 		overflow-x: hidden;
 		overflow-y: scroll;
 	}
-	@media screen and (max-width: 1366px){
-		#user-lists{
-			max-height: 368px;
-		}
-	}
-	@media screen and (max-width: 1600px){
-		#user-lists{
-			max-height: 400px;
-		}
-	}
 </style>
 <div class="b2b-com-modal b2b-operate-modal">
 	<p class="title">
@@ -24,21 +14,21 @@
 	</p>
 	<div class="form-group" id="window-search" style="height: 36px; margin-bottom: 0; margin-top: 16px;padding-bottom: 45px;border-bottom: 1px solid #e3e3e3;">
 		<div class="col-sm-12">
-			<input type="text" class="form-control input-sm" required="" placeholder="输入用户名关键词搜索" autofocus="" ng-model="keyword" ng-search="onSearch(keyword)" />
+			<input type="text" class="form-control input-sm" required="" placeholder="输入用户电话和用户名关键词搜索" ng-model="keyword" ng-search="onSearch(keyword)" />
 			<a class="btn input-group-addon" ng-click="onSearch()">搜索</a>
 		</div>
 	</div>
 	<div class="modal-body" id="user-lists">
-		<table class="table b2b-modal-table">
+		<table class="table b2b-modal-table" ng-table="userParams">
 			<thead>
-			<th width="80px;">用户UU</th>
+			<th width="80px;">用户电话</th>
 			<th width="100px;">用户名称</th>
 			<th width="40px;"></th>
 			</thead>
 			<tbody ng-if="thisUser.sys">
 			<!-- 当前用户是管理员时 -->
-			<tr ng-repeat="user in userinfos| filter: keyword track by $index" style="overflow-y:scroll; width:100%;max-height:500px">
-				<td width="80px;">{{user.userUU}}</td>
+			<tr ng-repeat="user in userinfos track by $index" style="overflow-y:scroll; width:100%;max-height:500px">
+				<td width="80px;">{{user.userTel}}</td>
 				<td width="100px;">{{user.userName}}</td>
 				<td width="40px;" style="text-align: center">
 					<label class="com-check-box">
@@ -50,8 +40,8 @@
 			</tbody>
 			<tbody ng-if="!thisUser.sys && thisUser.transfer">
 			<!-- 当前用户是被管理员转移权限时 -->
-			<tr ng-repeat="user in userinfos| filter: keyword track by $index">
-				<td width="80px;">{{user.userUU}}</td>
+			<tr ng-repeat="user in userinfos track by $index">
+				<td width="80px;">{{user.userTel}}</td>
 				<td width="100px;">{{user.userName}}</td>
 				<td width="40px;" style="text-align: center">
 					<label class="com-check-box">
@@ -63,8 +53,8 @@
 			</tbody>
 			<tbody ng-if="!thisUser.sys && !thisUser.transfer">
 			<!-- 当前用户是非管理员,但有查看权限时 -->
-			<tr ng-repeat="user in userinfos| filter: keyword track by $index" ng-if="!user.distribute">
-				<td width="80px;">{{user.userUU}}</td>
+			<tr ng-repeat="user in userinfos track by $index" ng-if="!user.distribute">
+				<td width="80px;">{{user.userTel}}</td>
 				<td width="100px;">{{user.userName}}</td>
 				<td width="40px;" style="text-align: center">
 					<label class="com-check-box">

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

@@ -916,7 +916,12 @@
                                     <div class="replace-param" ng-if="seek.isReplace == 1">
                                         <span>规格:</span><span ng-bind="seek.replaceSpec || '-'"></span>
                                     </div>
-                                    <span>交期:</span><span class="red-text" ng-bind="seek.leadtime + '天'">6 天</span>
+                                    <div class="replace-param">
+                                        <span>交期:</span><span class="red-text" ng-bind="seek.leadtime + '天'">6 天</span><br/>
+                                    </div>
+                                    <div class="replace-param">
+                                        <span>税率%:</span><span class="red-text" ng-bind="seek.taxrate || 0">6 天</span>
+                                    </div>
                                 </div>
                                 <!--<div>-->
                                     <!--<span>附件:</span><a href="">下载</a>-->

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

@@ -1027,7 +1027,7 @@
                         <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>-->
-                        <div class="is-say-price" ng-if="seek.quoted == 1 || seek.newId">已报价 <img src="static/img/seekPurchase/check.png" alt="">
+                        <div ng-mouseenter="loadQuotationData(seek)" class="is-say-price" ng-if="seek.quoted == 1 || seek.newId">已报价 <img src="static/img/seekPurchase/check.png">
                             <div class="say-price-history">
                                 <p class="price-title">{{seek.quotation.isReplace == 1 ? '替代型号报价' : '当前型号报价'}}</p>
                                 <div>
@@ -1038,11 +1038,14 @@
                                         <span>型号:</span><span ng-bind="seek.quotation.replaceCmpCode || '-'"></span>
                                     </div>
                                     <div class="replace-param" ng-if="seek.quotation.isReplace == 1">
-                                        <span>规格:</span><span ng-bind="seek.quotation.replaceSpec || '-'"></span>
+                                          <span>规格:</span><span ng-bind="seek.quotation.replaceSpec || '-'"></span>
                                     </div>
                                     <div class="replace-param">
                                         <span>交期:</span><span class="red-text" ng-bind="seek.quotation.leadtime + '天'"></span>
                                     </div>
+                                    <div class="replace-param">
+                                        <span>税率%:</span><span class="red-text" ng-bind="seek.quotation.taxrate || 0">6 天</span>
+                                    </div>
                                     <!--<div>-->
                                     <!--<span>附件:</span><a href="">下载</a>-->
                                     <!--</div>-->

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

@@ -1113,7 +1113,8 @@
 				<div class="check" style="margin-left: 12px;color: #666; font-size: 14px;margin-top: 20px;">
 					更多操作:
 					<div class="operate-btn" ng-click="setAllInPerson($event)" ng-if="chooseTypePeople === 'all'"><span>加入我的产品库</span></div>
-					<!--<div class="operate-btn" ng-click="sendGoodsCome()"><span>入库</span></div>-->
+					<div class="operate-btn" ui-sref="vendor_upload"><span>导入产品</span></div>
+					<div class="operate-btn" ui-sref="single_entry"><span>录入产品</span></div>
 					<div class="operate-btn" ng-click="sendGoodsOut()"><span>出库</span></div>
 					<div class="operate-btn" ng-click="download($event)"><span>导出选中</span></div>
 					<div class="operate-btn" ng-click="modifyBatch($event)"><span>批量修改</span></div>