chao vor 5 Jahren
Ursprung
Commit
16b057a831
34 geänderte Dateien mit 330 neuen und 279 gelöschten Zeilen
  1. 2 2
      src/main/java/com/caimei/www/controller/RedirectController.java
  2. 18 18
      src/main/java/com/caimei/www/controller/unlimited/EquipmentController.java
  3. 3 3
      src/main/java/com/caimei/www/mapper/EquipmentDao.java
  4. 7 5
      src/main/java/com/caimei/www/pojo/page/ProductList.java
  5. 5 5
      src/main/java/com/caimei/www/service/EquipmentService.java
  6. 14 14
      src/main/java/com/caimei/www/service/impl/EquipmentServiceImpl.java
  7. 1 1
      src/main/java/com/caimei/www/service/impl/HomeServiceImpl.java
  8. 5 5
      src/main/java/com/caimei/www/service/impl/ProductServiceImpl.java
  9. 1 1
      src/main/java/com/caimei/www/service/impl/SupplierServiceImpl.java
  10. 1 1
      src/main/java/com/caimei/www/utils/PriceUtil.java
  11. 5 5
      src/main/resources/mapper/EquipmentMapper.xml
  12. 7 4
      src/main/resources/mapper/HomeMapper.xml
  13. 4 4
      src/main/resources/mapper/ProductMapper.xml
  14. 1 1
      src/main/resources/mapper/SinglePageMapper.xml
  15. 2 2
      src/main/resources/mapper/SupplierMapper.xml
  16. 63 0
      src/main/resources/static/css/equipment/detail.css
  17. 40 0
      src/main/resources/static/css/equipment/list.css
  18. 0 63
      src/main/resources/static/css/instrument/detail.css
  19. 0 40
      src/main/resources/static/css/instrument/list.css
  20. 2 2
      src/main/resources/static/css/supplier/list.css
  21. 24 9
      src/main/resources/static/js/base.js
  22. 6 6
      src/main/resources/static/js/equipment/detail.js
  23. 12 4
      src/main/resources/static/js/equipment/list.js
  24. 8 1
      src/main/resources/static/js/index.js
  25. 7 11
      src/main/resources/static/js/product/list.js
  26. 10 5
      src/main/resources/static/js/supplier/index.js
  27. 18 3
      src/main/resources/static/js/supplier/list.js
  28. 13 13
      src/main/resources/templates/equipment/detail.html
  29. 9 9
      src/main/resources/templates/equipment/list.html
  30. 7 7
      src/main/resources/templates/index.html
  31. 2 2
      src/main/resources/templates/product/detail.html
  32. 6 7
      src/main/resources/templates/product/list.html
  33. 16 16
      src/main/resources/templates/supplier/index.html
  34. 11 10
      src/main/resources/templates/supplier/list.html

+ 2 - 2
src/main/java/com/caimei/www/controller/RedirectController.java

@@ -30,8 +30,8 @@ public class RedirectController {
 	 * 项目仪器详情【旧】
 	 */
 	@GetMapping("/cmpage/info-2-{id}.html")
-	public String toInstrument(@PathVariable("id") Integer instrumentId) {
-		return "redirect:/instrument/detail.html?id=" + instrumentId;
+	public String toequipment(@PathVariable("id") Integer equipmentId) {
+		return "redirect:/equipment/detail.html?id=" + equipmentId;
 	}
 	/**
 	 * 直播页面【旧】

+ 18 - 18
src/main/java/com/caimei/www/controller/unlimited/InstrumentController.java → src/main/java/com/caimei/www/controller/unlimited/EquipmentController.java

@@ -4,7 +4,7 @@ import com.caimei.www.controller.BaseController;
 import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.pojo.page.PageContent;
 import com.caimei.www.pojo.page.PageFloor;
-import com.caimei.www.service.InstrumentService;
+import com.caimei.www.service.EquipmentService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -16,49 +16,49 @@ import java.util.List;
 
 
 /**
- * 项目仪器(instrument)
+ * 项目仪器(equipment)
  *
  * @author : Charles
  * @date : 2020/7/16
  */
 @Controller
-public class InstrumentController extends BaseController {
+public class EquipmentController extends BaseController {
 
-	private static final String INSTRUMENT_LIST_PATH = "instrument/list";
-	private static final String INSTRUMENT_DETAIL_PATH = "instrument/detail";
+	private static final String equipment_LIST_PATH = "equipment/list";
+	private static final String equipment_DETAIL_PATH = "equipment/detail";
 
-    private InstrumentService instrumentService;
+    private EquipmentService EquipmentService;
     @Autowired
-    public void setInstrumentService(InstrumentService instrumentService) {
-        this.instrumentService = instrumentService;
+    public void setEquipmentService(EquipmentService EquipmentService) {
+        this.EquipmentService = EquipmentService;
     }
 
 
     /**
      * 项目仪器搜索结果页
      */
-    @GetMapping("/instrument/list.html")
+    @GetMapping("/equipment/list.html")
     public String search() {
-        return INSTRUMENT_LIST_PATH;
+        return equipment_LIST_PATH;
     }
 
     /**
      * 项目仪器详情页
      */
-    @GetMapping("/instrument/detail.html")
-    public String home(final Model model, @RequestParam("id") Integer instrumentId) {
-        PageContent detail = instrumentService.getInstrumentById(instrumentId);
-        model.addAttribute("instrument", detail);
-        return INSTRUMENT_DETAIL_PATH;
+    @GetMapping("/equipment/detail.html")
+    public String home(final Model model, @RequestParam("id") Integer equipmentId) {
+        PageContent detail = EquipmentService.getEquipmentById(equipmentId);
+        model.addAttribute("equipment", detail);
+        return equipment_DETAIL_PATH;
     }
 
     /**
      * 获取项目仪器详情页中层信息(搭配推荐,相似商品)
      */
-    @GetMapping("/instrument/recommend")
+    @GetMapping("/equipment/recommend")
     @ResponseBody
-    public JsonModel<List<PageFloor>> getInstrumentRecommendById(Integer instrumentId) {
-        return instrumentService.getInstrumentRecommendById(instrumentId);
+    public JsonModel<List<PageFloor>> getEquipmentRecommendById(Integer equipmentId) {
+        return EquipmentService.getEquipmentRecommendById(equipmentId);
     }
 
 }

+ 3 - 3
src/main/java/com/caimei/www/mapper/InstrumentDao.java → src/main/java/com/caimei/www/mapper/EquipmentDao.java

@@ -13,10 +13,10 @@ import java.util.List;
  * @date : 2020/7/16
  */
 @Mapper
-public interface InstrumentDao {
+public interface EquipmentDao {
     /** 项目仪器详情 */
-    PageContent getInstrumentById(Integer instrumentId);
+    PageContent getEquipmentById(Integer equipmentId);
     /** 项目仪器参数 */
-    List<Parameter> getParametersByInstrumentId(Integer instrumentId);
+    List<Parameter> getParametersByEquipmentId(Integer equipmentId);
 }
 

+ 7 - 5
src/main/java/com/caimei/www/pojo/page/ProductList.java

@@ -12,17 +12,19 @@ import java.io.Serializable;
  */
 @Data
 public class ProductList implements Serializable {
-	private Integer pid;
+	private Integer id;
 	private String name;
 	private String image;
 	private Double price;
 	private String unit;
+	/** 品牌名称 */
+	private String brand;
 	/** 价格可见度:0公开价格 1不公开价格 2仅对会员机构公开 */
-	private Integer priceflag;
+	private Integer priceFlag;
 	/** 价格等级 */
-	private Integer pricegrade;
-	/** 活动图标 */
-	private Integer acttype;
+	private Integer priceGrade;
+	/** 首页活动角标标识类型:1推荐热销、2推荐上新*/
+	private Integer actType;
 
     private static final long serialVersionUID = 1L;
 }

+ 5 - 5
src/main/java/com/caimei/www/service/InstrumentService.java → src/main/java/com/caimei/www/service/EquipmentService.java

@@ -12,19 +12,19 @@ import java.util.List;
  * @author : Charles
  * @date : 2020/7/16
  */
-public interface InstrumentService {
+public interface EquipmentService {
 
     /**
      * 项目仪器详情
-     * @param instrumentId
+     * @param equipmentId
      * @return
      */
-    PageContent getInstrumentById(Integer instrumentId);
+    PageContent getEquipmentById(Integer equipmentId);
 
     /**
      * 获取项目仪器详情页中层信息(搭配推荐,相似商品)
-     * @param instrumentId
+     * @param equipmentId
      * @return
      */
-    JsonModel<List<PageFloor>> getInstrumentRecommendById(Integer instrumentId);
+    JsonModel<List<PageFloor>> getEquipmentRecommendById(Integer equipmentId);
 }

+ 14 - 14
src/main/java/com/caimei/www/service/impl/InstrumentServiceImpl.java → src/main/java/com/caimei/www/service/impl/EquipmentServiceImpl.java

@@ -1,13 +1,13 @@
 package com.caimei.www.service.impl;
 
-import com.caimei.www.mapper.InstrumentDao;
+import com.caimei.www.mapper.EquipmentDao;
 import com.caimei.www.mapper.SinglePageDao;
 import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.pojo.page.ImageLink;
 import com.caimei.www.pojo.page.PageContent;
 import com.caimei.www.pojo.page.PageFloor;
 import com.caimei.www.pojo.page.Parameter;
-import com.caimei.www.service.InstrumentService;
+import com.caimei.www.service.EquipmentService;
 import com.caimei.www.utils.ImageUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
@@ -25,9 +25,9 @@ import java.util.List;
  */
 @Slf4j
 @Service
-public class InstrumentServiceImpl implements InstrumentService {
+public class EquipmentServiceImpl implements EquipmentService {
     @Resource
-    private InstrumentDao instrumentDao;
+    private EquipmentDao equipmentDao;
     @Resource
     SinglePageDao singlePageDao;
 
@@ -37,27 +37,27 @@ public class InstrumentServiceImpl implements InstrumentService {
     /**
      * 项目仪器详情
      *
-     * @param instrumentId
+     * @param equipmentId
      * @return
      */
     @Override
-    public PageContent getInstrumentById(Integer instrumentId) {
-        PageContent instrument = instrumentDao.getInstrumentById(instrumentId);
-        List<Parameter> contents = instrumentDao.getParametersByInstrumentId(instrumentId);
-        instrument.setPageContents(contents);
-        return instrument;
+    public PageContent getEquipmentById(Integer equipmentId) {
+        PageContent equipment = equipmentDao.getEquipmentById(equipmentId);
+        List<Parameter> contents = equipmentDao.getParametersByEquipmentId(equipmentId);
+        equipment.setPageContents(contents);
+        return equipment;
     }
 
     /**
      * 获取项目仪器详情页中层信息(搭配推荐,相似商品)
      *
-     * @param instrumentId
+     * @param equipmentId
      * @return
      */
     @Override
-    public JsonModel<List<PageFloor>> getInstrumentRecommendById(Integer instrumentId) {
-        if (instrumentId == null) { return JsonModel.error("参数异常", null);}
-        List<PageFloor> floorList = singlePageDao.getFloorByPageId(instrumentId);
+    public JsonModel<List<PageFloor>> getEquipmentRecommendById(Integer equipmentId) {
+        if (equipmentId == null) { return JsonModel.error("参数异常", null);}
+        List<PageFloor> floorList = singlePageDao.getFloorByPageId(equipmentId);
         if (floorList.size() > 0) {
             List<PageFloor> tempList = new ArrayList<>();
             floorList.forEach(floor -> {

+ 1 - 1
src/main/java/com/caimei/www/service/impl/HomeServiceImpl.java

@@ -70,7 +70,7 @@ public class HomeServiceImpl implements HomeService {
         if (list.size() > 0) {
             // 设置价格等级 及 老图片路径
             list.forEach(product -> {
-                 product.setPricegrade(PriceUtil.getPriceGrade(product.getPrice()));
+                 product.setPriceGrade(PriceUtil.getpriceGrade(product.getPrice()));
                  product.setPrice(0d);
                  product.setImage(ImageUtil.getImageURL("product", product.getImage(), 0, domain));
             });

+ 5 - 5
src/main/java/com/caimei/www/service/impl/ProductServiceImpl.java

@@ -46,15 +46,15 @@ public class ProductServiceImpl implements ProductService {
         }
         // 价格等级
         if (product.getPrice() > 50 * 5000) {
-            product.setPricegrade(5);
+            product.setPriceGrade(5);
         } else if (product.getPrice() > 25 * 5000) {
-            product.setPricegrade(4);
+            product.setPriceGrade(4);
         } else if (product.getPrice() > 10 * 5000) {
-            product.setPricegrade(3);
+            product.setPriceGrade(3);
         } else if (product.getPrice() > 2.5 * 5000) {
-            product.setPricegrade(2);
+            product.setPriceGrade(2);
         } else {
-            product.setPricegrade(1);
+            product.setPriceGrade(1);
         }
         return product;
     }

+ 1 - 1
src/main/java/com/caimei/www/service/impl/SupplierServiceImpl.java

@@ -67,7 +67,7 @@ public class SupplierServiceImpl implements SupplierService {
         List<ProductList> list = supplierDao.getSupplierMainProducts(supplierId);
         // 设置价格等级 及 老图片路径
         list.forEach(product -> {
-             product.setPricegrade(PriceUtil.getPriceGrade(product.getPrice()));
+             product.setPriceGrade(PriceUtil.getpriceGrade(product.getPrice()));
              product.setPrice(0d);
              product.setImage(ImageUtil.getImageURL("product", product.getImage(), 0, domain));
         });

+ 1 - 1
src/main/java/com/caimei/www/utils/PriceUtil.java

@@ -121,7 +121,7 @@ public class PriceUtil {
      * @param price 价格
      * @return priceGrade 价格等级
      */
-    public static Integer getPriceGrade(Double price){
+    public static Integer getpriceGrade(Double price){
         int grade = 1;
         if (price > 50 * 10000) {
             grade = 5;

+ 5 - 5
src/main/resources/mapper/InstrumentMapper.xml → src/main/resources/mapper/EquipmentMapper.xml

@@ -1,18 +1,18 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.caimei.www.mapper.InstrumentDao">
-    <select id="getInstrumentById" resultType="com.caimei.www.pojo.page.PageContent">
+<mapper namespace="com.caimei.www.mapper.EquipmentDao">
+    <select id="getEquipmentById" resultType="com.caimei.www.pojo.page.PageContent">
         select id, type, title, keywords, description, headImage as image
 		from cm_page
-		where id = #{instrumentId} and type='2' and enabledStatus=1
+		where id = #{equipmentId} and type='2' and enabledStatus=1
     </select>
-    <select id="getParametersByInstrumentId" resultType="com.caimei.www.pojo.page.Parameter">
+    <select id="getParametersByEquipmentId" resultType="com.caimei.www.pojo.page.Parameter">
         select id,
                pageId as parentId,
                name,
                content,
                type
         from cm_page_name_content
-        where pageId=#{instrumentId}
+        where pageId=#{equipmentId}
     </select>
 </mapper>

+ 7 - 4
src/main/resources/mapper/HomeMapper.xml

@@ -27,14 +27,16 @@
 	</select>
 	<select id="getRecommendeds" resultType="com.caimei.www.pojo.page.ProductList">
 		select
-			p.productID as pid,
+			p.productID as id,
 			p.`name` as `name`,
+			br.name as brand,
 			p.mainImage as image,
 			p.price1 as price,
 			p.unit as unit,
-			p.price1TextFlag as priceflag,
-			p.actType as acttype
+			p.price1TextFlag as priceFlag,
+			p.actType as actType
 		from product p
+		left join brand as br on p.brandID = br.brandID
 		where p.validFlag != 0
 		and p.actFlag = 1
 		and (p.actType = 1 or p.actType = 2)
@@ -69,7 +71,8 @@
 		where wwwEnabledStatus = 1
 		and <![CDATA[ endTime > sysdate() ]]>
 		and <![CDATA[ beginTime < sysdate() ]]>
-		order by sort limit 0,3
+		order by sort
+		limit 0,3
     </select>
 	<select id="getSmallTopicData" resultType="com.caimei.www.pojo.page.ImageLink">
 		select

+ 4 - 4
src/main/resources/mapper/ProductMapper.xml

@@ -3,12 +3,12 @@
 <mapper namespace="com.caimei.www.mapper.ProductDao">
 	<select id="getProductDetailById" resultType="com.caimei.www.pojo.page.ProductDetail">
 		select
-			p.productID as pid,
+			p.productID as id,
 			p.`name` as `name`,
 			p.mainImage as image,
 			p.price1 as price,
 			p.unit as unit,
-			p.price1TextFlag as priceflag,
+			p.price1TextFlag as priceFlag,
 
 			p.tags as tags,
 			p.productRemarks as remarks,
@@ -56,7 +56,7 @@
 	</select>
 	<select id="getProductRecommendsById" resultType="com.caimei.www.pojo.page.ProductList">
         select
-			p.productID as pid,
+			p.productID as id,
 			p.`name` as `name`,
 			p.mainImage as image
         from product as p
@@ -67,7 +67,7 @@
 	</select>
 	<select id="getAutoProductRecommends" resultType="com.caimei.www.pojo.page.ProductList">
         select
-			p.productID as pid,
+			p.productID as id,
 			p.`name` as `name`,
 			p.mainImage as image
         from product as p

+ 1 - 1
src/main/resources/mapper/SinglePageMapper.xml

@@ -34,7 +34,7 @@
         from cm_page_image a
         right join cm_page_centre_image b on b.imageId=a.id
         left join cm_page_image_activity c on c.imageId=a.id
-        left join acttype d on d.acttypeId=c.acttypeId
+        left join actType d on d.actTypeId=c.actTypeId
         where b.centreId=#{floorId} and  a.enabledStatus=1
         order  by a.sort desc,a.createDate desc
     </select>

+ 2 - 2
src/main/resources/mapper/SupplierMapper.xml

@@ -26,12 +26,12 @@
     </select>
     <select id="getSupplierMainProducts" resultType="com.caimei.www.pojo.page.ProductList">
 		select
-			p.productID as pid,
+			p.productID as id,
 			p.`name` as `name`,
 			p.mainImage as image,
 			p.price1 as price,
 			p.unit as unit,
-			p.price1TextFlag as priceflag
+			p.price1TextFlag as priceFlag
 		from product p
         where p.shopID = #{supplierId}
         and p.validFlag = 2 and p.featuredFlag=1

+ 63 - 0
src/main/resources/static/css/equipment/detail.css

@@ -0,0 +1,63 @@
+@charset "utf-8";
+li{list-style:none}
+/**
+ * PC端
+ */
+@media screen and (min-width:768px){
+.equipmentBox{width:100%;margin:16px 0;background:#FFF;box-sizing:border-box;padding:15px}
+.equipmentBox .imageBox{float:left;width:452px;height:300px;background:#F3F7FE;}
+.equipmentBox img{width:100%;height:100%;display:block}
+.equipmentBox .infoBox{float:right;width:686px;color:#93979F;background:#F3F7FE;box-sizing:border-box;padding:10px 20px;font-size:14px;border-radius:2px;position:relative;}
+.equipmentBox .infoBox hr{border:none;border-top:1px dashed #BEC2C9;margin:5px 0}
+.equipmentBox .infoBox .row{position:relative;padding:3px 0 3px 70px;line-height:24px}
+.equipmentBox .infoBox .row .l{display:inline-block;min-width:56px;height:24px;text-align:justify;vertical-align:top;margin-left:-70px;}
+.equipmentBox .infoBox .row .l:after{content:'';display:inline-block;width:100%}
+.equipmentBox .infoBox .row>i{font-style:normal;}
+.equipmentBox .infoBox .row em{font-style:normal;color:#4A4F58}
+.equipmentBox .infoBox .tit{color:#E15616;padding:3px 0;line-height:24px;}
+.equipmentBox .infoBox .share{position:absolute;right:20px;top:10px}
+.equipmentBox .infoBox .share .icon{vertical-align:middle;display:inline-block;height:30px}
+.equipmentBox .infoBox .share .icon:before{width:32px;height:30px;background-position:-96px -293px}
+.equipmentBox .infoBox .buy{position:absolute;right:20px;bottom:20px;width:208px;height:50px;line-height:50px;background:#E15616;color:#FFF;font-size:18px;text-align:center;border-radius:2px}
+.equipmentBox .infoBox .buy:hover{opacity:.8}
+
+.detailInfo{box-sizing:border-box;padding:0 16px;width:1184px;background:#FFF}
+.detailInfo .tabTit{height:40px;line-height:40px;border-bottom:1px solid #E15621;font-size:16px;color:#93979F}
+.detailInfo .tabTit span{display:inline-block;box-sizing:border-box;min-width:130px;text-align:center;height:100%;padding:0 32px;cursor:pointer}
+.detailInfo .tabTit span:hover{color:#E15621}
+.detailInfo .tabTit span.on,.detailInfo .tabTit span.on:hover{background:#E15621;color:#FFF}
+.detailInfo .tabCon{padding:16px 0;text-align:center}
+.detailInfo .tabCon img{max-width:100%;}
+.detailInfo .tabCon table{width:100%;text-align:left}
+
+
+}
+
+/**
+* 移动端
+*/
+@media screen and (max-width:768px){
+.equipmentBox{width:100%;background:#FFF;padding-bottom:2.7vw;margin-bottom: 2.7vw;}
+.equipmentBox .imageBox{width:100%;height:66.6vw;}
+.equipmentBox img{width:100%;height:100%;display:block}
+.equipmentBox .infoBox{width:93.4vw;margin:2.7vw auto 0;color:#93979F;background:#F3F7FE;box-sizing:border-box;padding:2.7vw;font-size:3.4vw;border-radius:2px;position:relative;}
+.equipmentBox .infoBox hr{border:none;border-top:1px dashed #BEC2C9;margin:1vw 0}
+.equipmentBox .infoBox .row{position:relative;padding:1.3vw 0 1.3vw 16vw;line-height:4.7vw}
+.equipmentBox .infoBox .row .l{display:inline-block;min-width:14.2vw;height:7.4vw;text-align:justify;vertical-align:top;margin-left:-16vw;}
+.equipmentBox .infoBox .row .l:after{content:'';display:inline-block;width:100%}
+.equipmentBox .infoBox .row>i{font-style:normal;}
+.equipmentBox .infoBox .row em{font-style:normal;color:#4A4F58}
+.equipmentBox .infoBox .tit{color:#E15616;padding:1.3vw 0;line-height:4.7vw;}
+.equipmentBox .infoBox .share,.equipmentBox .infoBox .buy{display:none;}
+
+.detailInfo{background:#FFF;margin-bottom:2.6vw;}
+.detailInfo .tabTit{padding:1.5vw 3.3vw;}
+.detailInfo .tabTit span{display:inline-block;height:7.5vw;line-height:7.5vw;border-bottom:2px solid transparent;color:#93979F;font-size:3.4vw;margin-left:8vw;}
+.detailInfo .tabTit span.on{color:#E15621;border-color:#E15621}
+.detailInfo .tabTit span:first-child{margin-left:0;}
+.detailInfo .tabCon{padding:1.2vw 3.3vw 3.3vw;text-align:center;font-size:3.4vw;}
+.detailInfo .tabCon img{max-width:100%;height:auto!important;}
+.detailInfo .tabCon table{width:100%;text-align:left}
+
+}
+

+ 40 - 0
src/main/resources/static/css/equipment/list.css

@@ -0,0 +1,40 @@
+@charset "utf-8";
+li{list-style:none}
+/**
+ * PC端
+ */
+@media screen and (min-width:768px){
+    .loading{box-sizing:border-box;padding:200px 0;text-align:center;}
+    .empty{box-sizing:border-box;padding:100px 0;text-align:center;color:#4A4F58;line-height:30px;font-size:16px;}
+    .empty img{width:180px;height:180px;}
+    .empty a{color:#E15616;}
+    .equipmentList{width:1184px;margin:16px auto;}
+    .equipmentList>ul{width:1216px;}
+    .equipmentItem{float:left;width:284px;height:242px;background:#FFF;border-radius:2px;margin:0 16px 16px 0}
+    .equipmentItem a{display:block;width:100%;height:100%;overflow:hidden}
+    .equipmentItem a:hover{box-shadow:0 2px 6px #dedede}
+    .equipmentItem img{width:100%;height:190px}
+    .equipmentItem span{display:block;line-height:52px;height:52px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:16px;color:#93979F;text-align:center;padding:0 10px}
+    .equipmentItem span em,.equipmentItem span:hover{font-style:normal;color:#E15616}
+
+}
+
+/**
+* 移动端
+*/
+@media screen and (max-width:768px){
+    /*footer{display:none!important}*/
+    .loading{box-sizing:border-box;padding:20vw 0;text-align:center}
+    .empty{box-sizing:border-box;padding:15vw 0;text-align:center;color:#4A4F58;line-height:8vw;font-size:3.4vw}
+    .empty img{width:40vw;height:40vw}
+    .empty a{color:#E15616}
+    .equipmentList{width:96vw;margin:2.6vw auto 0;overflow: hidden;}
+    .equipmentList>ul{width:100vw;}
+    .equipmentItem{width:45.4vw;height:40vw;background:#FFF;border-radius:2px;margin:0 1.3vw 2.6vw 1.3vw;}
+    .equipmentItem a{display:block;width:100%;height:100%;overflow:hidden}
+    .equipmentItem img{width:100%;height:30.3vw}
+    .equipmentItem span{display:block;line-height:9.7vw;height:9.7vw;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:3.1vw;color:#93979F;text-align:center;padding:0 .5vw;}
+    .equipmentItem span em{font-style:normal;color:#E15616}
+
+}
+

+ 0 - 63
src/main/resources/static/css/instrument/detail.css

@@ -1,63 +0,0 @@
-@charset "utf-8";
-li{list-style:none}
-/**
- * PC端
- */
-@media screen and (min-width:768px){
-.instrumentBox{width:100%;margin:16px 0;background:#FFF;box-sizing:border-box;padding:15px}
-.instrumentBox .imageBox{float:left;width:452px;height:300px;background:#F3F7FE;}
-.instrumentBox img{width:100%;height:100%;display:block}
-.instrumentBox .infoBox{float:right;width:686px;color:#93979F;background:#F3F7FE;box-sizing:border-box;padding:10px 20px;font-size:14px;border-radius:2px;position:relative;}
-.instrumentBox .infoBox hr{border:none;border-top:1px dashed #BEC2C9;margin:5px 0}
-.instrumentBox .infoBox .row{position:relative;padding:3px 0 3px 70px;line-height:24px}
-.instrumentBox .infoBox .row .l{display:inline-block;min-width:56px;height:24px;text-align:justify;vertical-align:top;margin-left:-70px;}
-.instrumentBox .infoBox .row .l:after{content:'';display:inline-block;width:100%}
-.instrumentBox .infoBox .row>i{font-style:normal;}
-.instrumentBox .infoBox .row em{font-style:normal;color:#4A4F58}
-.instrumentBox .infoBox .tit{color:#E15616;padding:3px 0;line-height:24px;}
-.instrumentBox .infoBox .share{position:absolute;right:20px;top:10px}
-.instrumentBox .infoBox .share .icon{vertical-align:middle;display:inline-block;height:30px}
-.instrumentBox .infoBox .share .icon:before{width:32px;height:30px;background-position:-96px -293px}
-.instrumentBox .infoBox .buy{position:absolute;right:20px;bottom:20px;width:208px;height:50px;line-height:50px;background:#E15616;color:#FFF;font-size:18px;text-align:center;border-radius:2px}
-.instrumentBox .infoBox .buy:hover{opacity:.8}
-
-.detailInfo{box-sizing:border-box;padding:0 16px;width:1184px;background:#FFF}
-.detailInfo .tabTit{height:40px;line-height:40px;border-bottom:1px solid #E15621;font-size:16px;color:#93979F}
-.detailInfo .tabTit span{display:inline-block;box-sizing:border-box;min-width:130px;text-align:center;height:100%;padding:0 32px;cursor:pointer}
-.detailInfo .tabTit span:hover{color:#E15621}
-.detailInfo .tabTit span.on,.detailInfo .tabTit span.on:hover{background:#E15621;color:#FFF}
-.detailInfo .tabCon{padding:16px 0;text-align:center}
-.detailInfo .tabCon img{max-width:100%;}
-.detailInfo .tabCon table{width:100%;text-align:left}
-
-
-}
-
-/**
-* 移动端
-*/
-@media screen and (max-width:768px){
-.instrumentBox{width:100%;background:#FFF;padding-bottom:2.7vw;margin-bottom: 2.7vw;}
-.instrumentBox .imageBox{width:100%;height:66.6vw;}
-.instrumentBox img{width:100%;height:100%;display:block}
-.instrumentBox .infoBox{width:93.4vw;margin:2.7vw auto 0;color:#93979F;background:#F3F7FE;box-sizing:border-box;padding:2.7vw;font-size:3.4vw;border-radius:2px;position:relative;}
-.instrumentBox .infoBox hr{border:none;border-top:1px dashed #BEC2C9;margin:1vw 0}
-.instrumentBox .infoBox .row{position:relative;padding:1.3vw 0 1.3vw 16vw;line-height:4.7vw}
-.instrumentBox .infoBox .row .l{display:inline-block;min-width:14.2vw;height:7.4vw;text-align:justify;vertical-align:top;margin-left:-16vw;}
-.instrumentBox .infoBox .row .l:after{content:'';display:inline-block;width:100%}
-.instrumentBox .infoBox .row>i{font-style:normal;}
-.instrumentBox .infoBox .row em{font-style:normal;color:#4A4F58}
-.instrumentBox .infoBox .tit{color:#E15616;padding:1.3vw 0;line-height:4.7vw;}
-.instrumentBox .infoBox .share,.instrumentBox .infoBox .buy{display:none;}
-
-.detailInfo{background:#FFF;margin-bottom:2.6vw;}
-.detailInfo .tabTit{padding:1.5vw 3.3vw;}
-.detailInfo .tabTit span{display:inline-block;height:7.5vw;line-height:7.5vw;border-bottom:2px solid transparent;color:#93979F;font-size:3.4vw;margin-left:8vw;}
-.detailInfo .tabTit span.on{color:#E15621;border-color:#E15621}
-.detailInfo .tabTit span:first-child{margin-left:0;}
-.detailInfo .tabCon{padding:1.2vw 3.3vw 3.3vw;text-align:center;font-size:3.4vw;}
-.detailInfo .tabCon img{max-width:100%;height:auto!important;}
-.detailInfo .tabCon table{width:100%;text-align:left}
-
-}
-

+ 0 - 40
src/main/resources/static/css/instrument/list.css

@@ -1,40 +0,0 @@
-@charset "utf-8";
-li{list-style:none}
-/**
- * PC端
- */
-@media screen and (min-width:768px){
-    .loading{box-sizing:border-box;padding:200px 0;text-align:center;}
-    .empty{box-sizing:border-box;padding:100px 0;text-align:center;color:#4A4F58;line-height:30px;font-size:16px;}
-    .empty img{width:180px;height:180px;}
-    .empty a{color:#E15616;}
-    .instrumentList{width:1184px;margin:16px auto;}
-    .instrumentList>ul{width:1216px;}
-    .instrumentItem{float:left;width:284px;height:242px;background:#FFF;border-radius:2px;margin:0 16px 16px 0}
-    .instrumentItem a{display:block;width:100%;height:100%;overflow:hidden}
-    .instrumentItem a:hover{box-shadow:0 2px 6px #dedede}
-    .instrumentItem img{width:100%;height:190px}
-    .instrumentItem span{display:block;line-height:52px;height:52px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:16px;color:#93979F;text-align:center;padding:0 10px}
-    .instrumentItem span em,.instrumentItem span:hover{font-style:normal;color:#E15616}
-
-}
-
-/**
-* 移动端
-*/
-@media screen and (max-width:768px){
-    /*footer{display:none!important}*/
-    .loading{box-sizing:border-box;padding:20vw 0;text-align:center}
-    .empty{box-sizing:border-box;padding:15vw 0;text-align:center;color:#4A4F58;line-height:8vw;font-size:3.4vw}
-    .empty img{width:40vw;height:40vw}
-    .empty a{color:#E15616}
-    .instrumentList{width:96vw;margin:2.6vw auto 0;overflow: hidden;}
-    .instrumentList>ul{width:100vw;}
-    .instrumentItem{width:45.4vw;height:40vw;background:#FFF;border-radius:2px;margin:0 1.3vw 2.6vw 1.3vw;}
-    .instrumentItem a{display:block;width:100%;height:100%;overflow:hidden}
-    .instrumentItem img{width:100%;height:30.3vw}
-    .instrumentItem span{display:block;line-height:9.7vw;height:9.7vw;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:3.1vw;color:#93979F;text-align:center;padding:0 .5vw;}
-    .instrumentItem span em{font-style:normal;color:#E15616}
-
-}
-

+ 2 - 2
src/main/resources/static/css/supplier/list.css

@@ -13,7 +13,7 @@ li{list-style:none}
     .supplierItem:first-child{border:none}
     .supplierItem .right{float:right;width:576px;position:relative}
     .supplierItem .left{float:left;width:560px;box-sizing:border-box;padding-left:152px;position:relative}
-    .supplierItem .left .logo{position:absolute;left:0;top:0;width:136px;height:124px}
+    .supplierItem .left .logo{position:absolute;left:0;top:0;width:136px;height:124px;background: url(/img/base/placeholder.png) no-repeat center center;background-size: 80%;}
     .supplierItem .left .logo img{width:100%;max-height:100%}
     .supplierItem .left h5{line-height:32px;font-weight:bold;font-size:20px;}
     .supplierItem .left h5 span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:inline-block;vertical-align: middle;max-width:84%;}
@@ -40,7 +40,7 @@ li{list-style:none}
     .empty a{color:#E15616}
     .supplierItem{width:100vw;margin:2.8vw auto 0;box-sizing:border-box;padding:2.6vw 3.3vw;background:#FFF;overflow:hidden}
     .supplierItem .left{padding-left:13.6vw;position:relative}
-    .supplierItem .left .logo{position:absolute;left:0;top:0;width:12.2vw;height:12.2vw}
+    .supplierItem .left .logo{position:absolute;left:0;top:0;width:12.2vw;height:12.2vw;background:url(/img/base/placeholder.png) no-repeat center center;background-size:80%;}
     .supplierItem .left .logo img{width:100%;max-height:100%}
     .supplierItem .left h5{line-height:6vw;font-weight:bold;font-size:3.7vw;position:relative}
     .supplierItem .left h5 span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:inline-block;vertical-align:middle;max-width:84%}

+ 24 - 9
src/main/resources/static/js/base.js

@@ -188,7 +188,7 @@ $(function(){
         }
         if (type === 2) {
             // 项目仪器
-            window.location.href = '/instrument/list.html?keyword='+encodeURIComponent(keyword);
+            window.location.href = '/equipment/list.html?keyword='+encodeURIComponent(keyword);
         } else if(type === 1) {
             // 供应商
             window.location.href = '/supplier/list.html?keyword='+encodeURIComponent(keyword);
@@ -334,16 +334,31 @@ function updateUrlParam(params) {
         return url;
     }
 }
-function setProductPrice(productList, userId, callback){
+function setSearchProductList(list, userId) {
     var productIdArr = [];
-    productList.map(function(product){
-        product.priceLoading = true;
+    var resultData = [];
+    list.map(function (item) {
+        resultData.push({
+            id: item.p_id,
+            name: item.p_name,
+            image: item.p_image,
+            unit: item.p_unit,
+            brand: item.p_brand_name,
+            priceFlag: item.p_price_flag,
+            priceGrade: item.p_price_flag,
+            priceLoaded: false
+        });
         // 0公开价格 1不公开价格 2仅对会员机构公开
-        if (product.priceflag != 1){
-             productIdArr.push(product.pid)
+        if (item.p_price_flag !== 1) {
+            productIdArr.push(item.id)
         }
     });
-    var productIds = productIdArr.join(",");
+    if (userId && userId > 0) {
+        setProductPrice(resultData, productIdArr.join(","), userId, function () {});
+    }
+    return resultData;
+}
+function setProductPrice(productList, productIds, userId, callback){
     $.getJSON(spiServer+"/product/listPrice",{
         userId: userId,
         productIds: productIds
@@ -352,10 +367,10 @@ function setProductPrice(productList, userId, callback){
             var priceList = r.data;
             productList.map(function(product){
                 priceList.map(function(item){
-                    if(product.pid == item.productId){
+                    if(product.id === item.productId){
                         product.userIdentity = item.userIdentity;
                         product.price = item.price;
-                        product.priceLoading = false;
+                        product.priceLoaded = true;
                     }
                 });
             });

+ 6 - 6
src/main/resources/static/js/instrument/detail.js → src/main/resources/static/js/equipment/detail.js

@@ -1,7 +1,7 @@
-var instrumentDetail = new Vue({
-    el: "#instrumentDetail",
+var equipmentDetail = new Vue({
+    el: "#equipmentDetail",
     data: {
-        instrumentId: 0,
+        equipmentId: 0,
         userId: 6,
         userIdentity: '',
         recommends: []
@@ -10,8 +10,8 @@ var instrumentDetail = new Vue({
     methods: {
         getRecommendById: function(){
             var _self = this;
-            if(this.instrumentId ===0){return;}
-            $.getJSON("/instrument/recommend",{instrumentId: this.instrumentId}).done(function (r) {
+            if(this.equipmentId ===0){return;}
+            $.getJSON("/equipment/recommend",{equipmentId: this.equipmentId}).done(function (r) {
                 if (r.code === 0 && r.data) {
                     _self.recommends = r.data;
                 }
@@ -19,7 +19,7 @@ var instrumentDetail = new Vue({
         }
     },
     created: function () {
-        this.instrumentId = getUrlParam("id") ? getUrlParam("id")*1 : 0;
+        this.equipmentId = getUrlParam("id") ? getUrlParam("id")*1 : 0;
         var userInfo = localStorage.getItem('userInfo');
         if(userInfo){
             this.userId = JSON.parse(userInfo).userId*1;

+ 12 - 4
src/main/resources/static/js/instrument/list.js → src/main/resources/static/js/equipment/list.js

@@ -1,5 +1,5 @@
-var instrumentList = new Vue({
-    el: "#instrumentList",
+var equipmentList = new Vue({
+    el: "#equipmentList",
     data: {
         searchFlag: false,
         listLoading: true,
@@ -58,10 +58,18 @@ var instrumentList = new Vue({
                 if (r.code === 0 && r.data) {
                     var result = JSON.parse(r.data);
                     _self.listRecord = result.total;
+                    var resultData = [];
+                    result.items.map(function (su) {
+                        resultData.push({
+                            id: su.e_id,
+                            name: su.e_name,
+                            image: su.e_image
+                        });
+                    });
                     if(isPC){
-                        _self.listData = result.items;
+                        _self.listData = resultData;
                     }else{
-                        _self.listData = _self.listData.concat(result.items);
+                        _self.listData = _self.listData.concat(resultData);
                     }
                 }
                 _self.listLoading = false;

+ 8 - 1
src/main/resources/static/js/index.js

@@ -88,7 +88,14 @@ var homeData = new Vue({
                     },500);
                     // 获取价格
                     if(_self.userId && _self.userId>0){
-                        setProductPrice(_self.recommends, _self.userId, function(){});
+                        var productIdArr = [];
+                        _self.recommends.map(function (item) {
+                            // 0公开价格 1不公开价格 2仅对会员机构公开
+                            if (item.priceFlag !== 1) {
+                                productIdArr.push(item.id)
+                            }
+                        });
+                        setProductPrice(_self.recommends, productIdArr.join(","), _self.userId, function () {});
                     }
                 }
             });

+ 7 - 11
src/main/resources/static/js/product/list.js

@@ -70,7 +70,7 @@ var productList = new Vue({
         getListByKeyword: function () {
             var _self = this;
             $.getJSON(spiServer+"/search/query/product", {
-                keyword: encodeURI(this.params.keyword),
+                keyword: this.params.keyword,
                 pageSize: this.params.size,
                 pageNum: this.params.num,
                 sortField: this.params.sortField,
@@ -79,13 +79,11 @@ var productList = new Vue({
                 if (r.code === 0 && r.data) {
                     var result = JSON.parse(r.data);
                     _self.listRecord = result.total;
-                    if(_self.userId && _self.userId>0){
-                        setProductPrice(result.items, _self.userId, function(){});
-                    }
+                    var resultData = setSearchProductList(result.items, _self.userId);
                     if(isPC){
-                        _self.listData = result.items;
+                        _self.listData = resultData;
                     }else{
-                        _self.listData = _self.listData.concat(result.items);
+                        _self.listData = _self.listData.concat(resultData);
                     }
                 }
                 _self.listLoading = false;
@@ -140,13 +138,11 @@ var productList = new Vue({
                 if (r.code === 0 && r.data) {
                     var result = JSON.parse(r.data);
                     _self.listRecord = result.total;
-                    if(_self.userId && _self.userId>0){
-                        setProductPrice(result.items, _self.userId, function(){});
-                    }
+                    var resultData = setSearchProductList(result.items, _self.userId);
                     if(isPC){
-                        _self.listData = result.items;
+                        _self.listData = resultData;
                     }else{
-                        _self.listData = _self.listData.concat(result.items);
+                        _self.listData = _self.listData.concat(resultData);
                     }
                 }
                 _self.listLoading = false;

+ 10 - 5
src/main/resources/static/js/supplier/index.js

@@ -55,7 +55,14 @@ var supplierHome = new Vue({
             $.getJSON("/supplier/products",{supplierId: this.supplierId}).done(function (r) {
                 if (r.code === 0 && r.data) {
                     if(_self.userId && _self.userId>0){
-                        setProductPrice(r.data, _self.userId, function(){});
+                        var productIdArr = [];
+                        r.data.map(function (item) {
+                            // 0公开价格 1不公开价格 2仅对会员机构公开
+                            if (item.priceFlag !== 1) {
+                                productIdArr.push(item.id)
+                            }
+                        });
+                        setProductPrice(r.data, productIdArr.join(","), _self.userId, function () {});
                     }
                     _self.mainProducts = r.data;
                 }
@@ -71,10 +78,8 @@ var supplierHome = new Vue({
                 if (r.code === 0 && r.data) {
                     var result = JSON.parse(r.data);
                     _self.listRecord = result.total;
-                    if(_self.userId && _self.userId>0){
-                        setProductPrice(result.items, _self.userId, function(){});
-                    }
-                    _self.productLists = _self.productLists.concat(result.items);
+                    var resultData = setSearchProductList(result.items, _self.userId);
+                    _self.productLists = _self.productLists.concat(resultData);
                 }
             })
         }

+ 18 - 3
src/main/resources/static/js/supplier/list.js

@@ -50,7 +50,7 @@ var supplierList = new Vue({
         },
         getListByKeyword: function () {
             var _self = this;
-            $.getJSON(spiServer+"/search/query/shop", {
+            $.getJSON(spiServer+"/search/query/supplier", {
                 keyword: this.params.keyword,
                 pageSize: this.params.size,
                 pageNum: this.params.num
@@ -58,10 +58,25 @@ var supplierList = new Vue({
                 if (r.code === 0 && r.data) {
                     var result = JSON.parse(r.data);
                     _self.listRecord = result.total;
+                    var resultData = [];
+                    result.items.map(function (su) {
+                        if(su.products && su.products.length>0) {
+                            var productList = setSearchProductList(su.products, 0);
+                        }
+                        resultData.push({
+                            id: su.s_id,
+                            name: su.s_name,
+                            license: su.s_license,
+                            logo: su.s_logo,
+                            businessScope: su.s_business,
+                            address: su.s_address,
+                            productList: productList
+                        });
+                    });
                     if(isPC){
-                        _self.listData = result.items;
+                        _self.listData = resultData;
                     }else{
-                        _self.listData = _self.listData.concat(result.items);
+                        _self.listData = _self.listData.concat(resultData);
                     }
                 }
                 _self.listLoading = false;

+ 13 - 13
src/main/resources/templates/instrument/detail.html → src/main/resources/templates/equipment/detail.html

@@ -2,11 +2,11 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title th:text="'采美365网-'+${instrument.title}"></title>
-    <meta http-equiv="keywords" th:content="${instrument.keywords}">
-    <meta http-equiv="description" th:content="${instrument.description}">
+    <title th:text="'采美365网-'+${equipment.title}"></title>
+    <meta http-equiv="keywords" th:content="${equipment.keywords}">
+    <meta http-equiv="description" th:content="${equipment.description}">
     <template th:replace="components/head-link"></template>
-    <link th:href="@{/css/instrument/detail.css(v=${version})}" rel="stylesheet" type="text/css">
+    <link th:href="@{/css/equipment/detail.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/single-page/topic.css(v=${version})}" rel="stylesheet" type="text/css">
 </head>
 <body>
@@ -14,19 +14,19 @@
 <template th:replace="components/header"></template>
 
 <!-- 项目仪器详情 -->
-<div id="instrumentDetail">
+<div id="equipmentDetail">
     <div class="wrap">
-        <div class="instrumentBox clear">
-            <div class="imageBox"><img th:src="${instrument.image}"></div>
+        <div class="equipmentBox clear">
+            <div class="imageBox"><img th:src="${equipment.image}"></div>
             <div class="infoBox">
-                <p class="row" th:each="item: ${instrument.pageContents}" th:if="${item.type}==1">
+                <p class="row" th:each="item: ${equipment.pageContents}" th:if="${item.type}==1">
                     <span class="l" th:text="${item.name}"></span><i>:</i><em th:text="${item.content}"></em>
                 </p>
                 <hr>
-                <p class="tit" th:each="item,status : ${instrument.pageContents}" th:if="${item.type}==2 and ${status.index}==4">
+                <p class="tit" th:each="item,status : ${equipment.pageContents}" th:if="${item.type}==2 and ${status.index}==4">
                     <span th:text="${item.name}"></span>
                 </p>
-                <p class="row" th:each="item,status : ${instrument.pageContents}" th:if="${item.type}==2 and ${status.index}>4">
+                <p class="row" th:each="item,status : ${equipment.pageContents}" th:if="${item.type}==2 and ${status.index}>4">
                     <span class="l" th:text="${item.name}"></span><i>:</i><em th:text="${item.content}"></em>
                 </p>
                 <a href="javascript:void(0);" class="share">分享<i class="icon"></i></a>
@@ -38,12 +38,12 @@
         <div class="detailInfo">
             <div class="tabTit">
                 <!--<span class="on">项目详情</span>-->
-                <span th:each="item,status : ${instrument.pageContents}"
+                <span th:each="item,status : ${equipment.pageContents}"
                       th:if="${item.type}==3 and (${status.index}==10 or ${status.index}==11 or ${status.index}==12)"
                       th:text="${item.name}"></span>
             </div>
             <div class="tabCon">
-                <div th:each="item,status : ${instrument.pageContents}"
+                <div th:each="item,status : ${equipment.pageContents}"
                      th:if="${item.type}==3 and (${status.index}==10 or ${status.index}==11 or ${status.index}==12)"
                      th:utext="${item.content}" class="item">
                 </div>
@@ -76,6 +76,6 @@
 <template th:replace="components/footer"></template>
 <template th:replace="components/foot-link"></template>
 <script charset="utf-8" type="text/javascript" src="/lib/magnifier.js"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/instrument/detail.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/equipment/detail.js(v=${version})}"></script>
 </body>
 </html>

+ 9 - 9
src/main/resources/templates/instrument/list.html → src/main/resources/templates/equipment/list.html

@@ -4,14 +4,14 @@
 <head>
     <title>采美365网-项目仪器列表</title>
     <template th:replace="components/head-link"></template>
-    <link th:href="@{/css/instrument/list.css(v=${version})}" rel="stylesheet" type="text/css">
+    <link th:href="@{/css/equipment/list.css(v=${version})}" rel="stylesheet" type="text/css">
 </head>
 <body>
 <!-- 引用头部 -->
 <template th:replace="components/header"></template>
 
 <!-- 项目仪器搜索列表 -->
-<div id="instrumentList">
+<div id="equipmentList">
     <!--loading-->
     <div v-if="listLoading" class="loading">
         <img src="/img/base/loading.gif">
@@ -20,16 +20,16 @@
     <div v-else-if="!listLoading && (!listData || listData.length==0)" class="empty">
         <img src="/img/common/empty.png">
         <div class="msg">
-            <p>暂未找到你搜索的项目仪器,快去<a href="/instrument/list.html">项目仪器列表</a>看看吧~</p>
+            <p>暂未找到你搜索的项目仪器,快去<a href="/equipment/list.html">项目仪器列表</a>看看吧~</p>
         </div>
     </div>
     <!--列表-->
-    <div v-else class="instrumentList">
+    <div v-else class="equipmentList">
         <ul class="clear mfw">
-            <li class="instrumentItem" v-for="ins in listData">
-                <a :href="'/instrument/detail.html?id='+ins.eid" target="_blank">
-                    <img :src="ins.equipmentimage">
-                    <span class="name" v-html="ins.equipmenttitle"></span>
+            <li class="equipmentItem" v-for="ins in listData">
+                <a :href="'/equipment/detail.html?id='+ins.id" target="_blank">
+                    <img :src="ins.image">
+                    <span class="name" v-html="ins.name"></span>
                 </a>
             </li>
         </ul>
@@ -53,6 +53,6 @@
 <!-- 引入底部 -->
 <template th:replace="components/footer"></template>
 <template th:replace="components/foot-link"></template>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/instrument/cart.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/equipment/list.js(v=${version})}"></script>
 </body>
 </html>

+ 7 - 7
src/main/resources/templates/index.html

@@ -57,19 +57,19 @@
                         <ul class="swiper-wrapper" v-cloak>
                             <li class="swiper-slide productItem mfc" v-for="p in recommends">
                                 <div class="item">
-                                    <a class="image" :href="'/product/detail.html?id='+p.pid" target="_blank">
+                                    <a class="image" :href="'/product/detail.html?id='+p.id" target="_blank">
                                         <img :src="p.image" :alt="p.name">
-                                        <span v-if="p.acttype==1||p.acttype==2" :class="p.acttype==1?'icon mIcon hot':'icon mIcon new'"></span>
+                                        <span v-if="p.actType==1||p.actType==2" :class="p.actType==1?'icon mIcon hot':'icon mIcon new'"></span>
                                     </a>
-                                    <a class="name" :href="'/product/detail.html?id='+p.pid" target="_blank">
+                                    <a class="name" :href="'/product/detail.html?id='+p.id" target="_blank">
                                         <span v-html="p.name"></span>
                                     </a>
                                     <div class="price mfhc">
                                         <template v-if="userId && userId>0">
-                                            <em v-if="p.priceflag==1">未公开价格</em>
+                                            <em v-if="p.priceFlag==1">未公开价格</em>
                                             <template v-else>
-                                                <em v-if="p.priceLoading">正在获取价格...</em>
-                                                <template v-else-if="p.priceflag==2 && p.userIdentity!=2">
+                                                <em v-if="!p.priceLoaded">正在获取价格...</em>
+                                                <template v-else-if="p.priceFlag==2 && p.userIdentity!=2">
                                                     <em>价格仅会员可见</em>
                                                     <div class="btnBox">
                                                         <a href="javascript:void(0)" class="btn">升级成为会员</a>
@@ -80,7 +80,7 @@
                                         </template>
                                         <template v-else>
                                             <em>价格:<i class="icon mIcon" v-for="i in 5">
-                                                    <i v-if="i==1||p.pricegrade>=i" class="icon mIcon on"></i>
+                                                    <i v-if="i==1||p.priceGrade>=i" class="icon mIcon on"></i>
                                             </i></em>
                                             <div class="btnBox"><a href="javascript:void(0)" class="btn add toLogin">加入购物车</a></div>
                                         </template>

+ 2 - 2
src/main/resources/templates/product/detail.html

@@ -61,7 +61,7 @@
                     </template>
                     <template v-else>
                         <em class="price"><i class="icon mIcon" th:each="i:${#numbers.sequence(1,5)}">
-                                <i th:if="*{pricegrade}>=${i} or ${i}==1" class="icon mIcon on"></i>
+                                <i th:if="*{priceGrade}>=${i} or ${i}==1" class="icon mIcon on"></i>
                         </i></em>
                     </template>
                     </p>
@@ -103,7 +103,7 @@
                 <ul class="swiper-wrapper" v-cloak>
                     <li class="swiper-slide" v-for="p in recommends">
                         <div class="item">
-                            <a class="image" :href="'/product/detail.html?id='+p.pid" target="_blank">
+                            <a class="image" :href="'/product/detail.html?id='+p.id" target="_blank">
                                 <img :src="p.image" :alt="p.name">
                                 <span v-html="p.name"></span>
                             </a>

+ 6 - 7
src/main/resources/templates/product/list.html

@@ -102,19 +102,18 @@
         <ul class="productList clear mfw">
             <li class="productItem mfc" v-for="p in listData">
                 <div class="item">
-                    <a class="image" :href="'/product/detail.html?id='+p.pid" target="_blank">
+                    <a class="image" :href="'/product/detail.html?id='+p.id" target="_blank">
                         <img :src="p.image" :alt="p.name">
-                        <span v-if="p.acttype==1||p.acttype==2" :class="p.acttype==1?'icon mIcon hot':'icon mIcon new'"></span>
                     </a>
-                    <a class="name" :href="'/product/detail.html?id='+p.pid" target="_blank">
+                    <a class="name" :href="'/product/detail.html?id='+p.id" target="_blank">
                         <span v-html="p.name"></span>
                     </a>
                     <div class="price mfhc">
                         <template v-if="userId && userId>0">
-                            <em v-if="p.priceflag==1">未公开价格</em>
+                            <em v-if="p.priceFlag==1">未公开价格</em>
                             <template v-else>
-                                <em v-if="p.priceLoading">正在获取价格...</em>
-                                <template v-else-if="p.priceflag==2 && p.userIdentity!=2">
+                                <em v-if="!p.priceLoaded">正在获取价格...</em>
+                                <template v-else-if="p.priceFlag==2 && p.userIdentity!=2">
                                     <em>价格仅会员可见</em>
                                     <div class="btnBox">
                                         <a href="javascript:void(0)" class="btn">升级成为会员</a>
@@ -125,7 +124,7 @@
                         </template>
                         <template v-else>
                             <em>价格:<i class="icon mIcon" v-for="i in 5">
-                                    <i v-if="i==1||p.pricegrade>=i" class="icon mIcon on"></i>
+                                    <i v-if="i==1||p.priceGrade>=i" class="icon mIcon on"></i>
                             </i></em>
                             <div class="btnBox"><a href="javascript:void(0)" class="btn add toLogin">加入购物车</a></div>
                         </template>

+ 16 - 16
src/main/resources/templates/supplier/index.html

@@ -49,29 +49,29 @@
                     <ul class="productList clear mfw">
                         <li class="productItem mfc" v-for="p in mainProducts">
                             <div class="item">
-                                <a class="image" :href="'/product/detail.html?id='+p.pid" target="_blank">
+                                <a class="image" :href="'/product/detail.html?id='+p.id" target="_blank">
                                     <img :src="p.image" :alt="p.name">
-                                    <span v-if="p.acttype==1||p.acttype==2" :class="p.acttype==1?'icon mIcon hot':'icon mIcon new'"></span>
+                                    <span v-if="p.actType==1||p.actType==2" :class="p.actType==1?'icon mIcon hot':'icon mIcon new'"></span>
                                 </a>
-                                <a class="name" :href="'/product/detail.html?id='+p.pid" target="_blank">
+                                <a class="name" :href="'/product/detail.html?id='+p.id" target="_blank">
                                     <span v-html="p.name"></span>
                                 </a>
                                 <div class="price mfhc">
                                     <template v-if="userId && userId>0">
-                                        <em v-if="p.priceflag==1">未公开价格</em>
+                                        <em v-if="p.priceFlag==1">未公开价格</em>
                                         <template v-else>
-                                            <em v-if="p.priceLoading">正在获取价格...</em>
-                                            <em v-else-if="p.priceflag==2 && p.userIdentity!=2">价格仅会员可见</em>
+                                            <em v-if="!p.priceLoaded">正在获取价格...</em>
+                                            <em v-else-if="p.priceFlag==2 && p.userIdentity!=2">价格仅会员可见</em>
                                             <em v-else class="p" v-text="'¥'+parseFloat(p.price).toFixed(2)"></em>
                                             <div class="btnBox">
-                                                <a v-if="p.priceflag==2 && p.userIdentity!=2" href="javascript:void(0)" class="btn">升级成为会员</a>
+                                                <a v-if="p.priceFlag==2 && p.userIdentity!=2" href="javascript:void(0)" class="btn">升级成为会员</a>
                                                 <a v-else href="javascript:void(0)" class="btn add">加入购物车</a>
                                             </div>
                                         </template>
                                     </template>
                                     <template v-else>
                                         <em>价格:<i class="icon mIcon" v-for="i in 5">
-                                                <i v-if="i==1||p.pricegrade>=i" class="icon mIcon on"></i>
+                                                <i v-if="i==1||p.priceGrade>=i" class="icon mIcon on"></i>
                                         </i></em>
                                         <div class="btnBox"><a href="javascript:void(0)" class="btn add toLogin">加入购物车</a></div>
                                     </template>
@@ -86,29 +86,29 @@
                     <ul class="productList clear mfw">
                         <li class="productItem mfc" v-for="p in productLists">
                             <div class="item">
-                                <a class="image" :href="'/product/detail.html?id='+p.pid" target="_blank">
+                                <a class="image" :href="'/product/detail.html?id='+p.id" target="_blank">
                                     <img :src="p.image" :alt="p.name">
-                                    <span v-if="p.acttype==1||p.acttype==2" :class="p.acttype==1?'icon mIcon hot':'icon mIcon new'"></span>
+                                    <span v-if="p.actType==1||p.actType==2" :class="p.actType==1?'icon mIcon hot':'icon mIcon new'"></span>
                                 </a>
-                                <a class="name" :href="'/product/detail.html?id='+p.pid" target="_blank">
+                                <a class="name" :href="'/product/detail.html?id='+p.id" target="_blank">
                                     <span v-html="p.name"></span>
                                 </a>
                                 <div class="price mfhc">
                                     <template v-if="userId && userId>0">
-                                        <em v-if="p.priceflag==1">未公开价格</em>
+                                        <em v-if="p.priceFlag==1">未公开价格</em>
                                         <template v-else>
-                                            <em v-if="p.priceLoading">正在获取价格...</em>
-                                            <em v-else-if="p.priceflag==2 && p.userIdentity!=2">价格仅会员可见</em>
+                                            <em v-if="!p.priceLoaded">正在获取价格...</em>
+                                            <em v-else-if="p.priceFlag==2 && p.userIdentity!=2">价格仅会员可见</em>
                                             <em v-else class="p" v-text="'¥'+parseFloat(p.price).toFixed(2)"></em>
                                             <div class="btnBox">
-                                                <a v-if="p.priceflag==2 && p.userIdentity!=2" href="javascript:void(0)" class="btn">升级成为会员</a>
+                                                <a v-if="p.priceFlag==2 && p.userIdentity!=2" href="javascript:void(0)" class="btn">升级成为会员</a>
                                                 <a v-else href="javascript:void(0)" class="btn add">加入购物车</a>
                                             </div>
                                         </template>
                                     </template>
                                     <template v-else>
                                         <em>价格:<i class="icon mIcon" v-for="i in 5">
-                                                <i v-if="i==1||p.pricegrade>=i" class="icon mIcon on"></i>
+                                                <i v-if="i==1||p.priceGrade>=i" class="icon mIcon on"></i>
                                         </i></em>
                                         <div class="btnBox"><a href="javascript:void(0)" class="btn add toLogin">加入购物车</a></div>
                                     </template>

+ 11 - 10
src/main/resources/templates/supplier/list.html

@@ -27,27 +27,28 @@
     <ul v-else class="supplierList">
         <li class="supplierItem clear" v-for="shop in listData">
             <div class="left">
-                <a :href="'/supplier/prolist-'+shop.sid+'.html'" target="_blank" class="logo">
-                    <img :src="shop.shoplogo">
+                <a :href="'/supplier/prolist-'+shop.id+'.html'" target="_blank" class="logo">
+                    <img :src="shop.logo">
                 </a>
-                <h5><a :href="'/supplier/prolist-'+shop.sid+'.html'" :title="shop.shoptitle" target="_blank">
-                    <span v-html="shop.shoptitle"></span><i class="icon mIcon shop"></i>
+                <h5><a :href="'/supplier/prolist-'+shop.id+'.html'" :title="shop.name" target="_blank">
+                    <span v-html="shop.name"></span>
                 </a>
+                <a v-if="shop.license" :href="shop.license" target="_blank" class="icon mIcon shop"></a>
                 </h5>
                 <p>满意度:<span><i v-for="i in 5" class="icon mIcon heart"></i></span></p>
                 <p>所在地区:<span v-text="shop.address"></span></p>
-                <p>经营范围:<span v-if="shop.businessscope"><em v-for="scop in shop.businessscope.split('/')" class="tag" v-text="scop"></em></span></p>
+                <p>经营范围:<span v-if="shop.businessScope"><em v-for="scop in shop.businessScope.split('/')" class="tag" v-text="scop"></em></span></p>
             </div>
             <div class="right">
                 <ul class="products clear mfc">
-                    <template v-if="shop.products && shop.products.length>0">
-                        <li v-for="product in shop.products">
-                            <a :href="'/product-'+product.pid+'.html'" target="_blank">
+                    <template v-if="shop.productList && shop.productList.length>0">
+                        <li v-for="product in shop.productList">
+                            <a :href="'/product-'+product.id+'.html'" target="_blank">
                                 <img :src="product.image">
                                 <span v-html="product.name"></span>
                             </a>
                         </li>
-                        <li v-if="shop.products.length<3" v-for="i in (3-shop.products.length)"></li>
+                        <li v-if="shop.productList.length<3" v-for="i in (3-shop.productList.length)"></li>
                     </template>
                     <li v-else-if="isPC" v-for="i in 3"></li>
                 </ul>
@@ -74,6 +75,6 @@
 <!-- 引入底部 -->
 <template th:replace="components/footer"></template>
 <template th:replace="components/foot-link"></template>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/supplier/cart.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/supplier/list.js(v=${version})}"></script>
 </body>
 </html>