Browse Source

Merge branch 'developer' into developerB

chao 4 years ago
parent
commit
771908a451
31 changed files with 765 additions and 1121 deletions
  1. 9 3
      src/main/java/com/caimei/www/controller/GenerateApi.java
  2. 12 4
      src/main/java/com/caimei/www/controller/RedirectController.java
  3. 27 17
      src/main/java/com/caimei/www/controller/unlimited/ProductController.java
  4. 2 0
      src/main/java/com/caimei/www/mapper/SinglePageDao.java
  5. 5 2
      src/main/java/com/caimei/www/service/generate/GenerateHtml.java
  6. 80 16
      src/main/java/com/caimei/www/service/generate/impl/GenerateHtmlImpl.java
  7. 14 0
      src/main/java/com/caimei/www/service/page/ProductService.java
  8. 2 0
      src/main/java/com/caimei/www/service/page/SinglePageService.java
  9. 23 23
      src/main/java/com/caimei/www/service/page/impl/BaseServiceImpl.java
  10. 44 0
      src/main/java/com/caimei/www/service/page/impl/ProductServiceImpl.java
  11. 5 0
      src/main/java/com/caimei/www/service/page/impl/SinglePageServiceImpl.java
  12. 4 4
      src/main/resources/config/dev/application-dev.yml
  13. 0 1
      src/main/resources/mapper/ProductMapper.xml
  14. 4 0
      src/main/resources/mapper/SinglePageMapper.xml
  15. 138 0
      src/main/resources/static/css/base/floor.css
  16. 0 64
      src/main/resources/static/css/index/index_new.h5.css
  17. 1 62
      src/main/resources/static/css/index/index_new.pc.css
  18. 10 113
      src/main/resources/static/css/product/instruement.css
  19. 12 1
      src/main/resources/static/css/product/qualityauthorize.css
  20. 4 4
      src/main/resources/static/js/activity/activityTopic.js
  21. 18 29
      src/main/resources/static/js/base.js
  22. 2 1
      src/main/resources/static/js/equipment/detail.js
  23. 22 21
      src/main/resources/static/js/index.js
  24. 136 119
      src/main/resources/static/js/product/instruement.js
  25. 0 6
      src/main/resources/static/js/product/produce-list.js
  26. 10 3
      src/main/resources/static/js/product/qualityauthorize.js
  27. 4 6
      src/main/resources/static/js/product/temporary.js
  28. 2 1
      src/main/resources/templates/index.html
  29. 1 1
      src/main/resources/templates/product/instruelist.html
  30. 143 603
      src/main/resources/templates/product/instrument.html
  31. 31 17
      src/main/resources/templates/product/qualityauthorize.html

+ 9 - 3
src/main/java/com/caimei/www/controller/GenerateApi.java

@@ -1,10 +1,7 @@
 package com.caimei.www.controller;
 
 import com.caimei.www.mapper.ProductDao;
-import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.service.generate.GenerateHtml;
-import com.caimei.www.utils.GetProductImgUtil;
-import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.server.ServerWebExchange;
@@ -32,6 +29,15 @@ public class GenerateApi {
         return generateHtml.generateStaticHome(exchange);
     }
 
+    /**
+     * 生成产品仪器页面
+     * @param pageId 页面Id
+     */
+    @PostMapping("/generate/product/type")
+    public  String generateProductType(ServerWebExchange exchange, Integer pageId) {
+        return generateHtml.generateProductType(exchange, pageId);
+    }
+
     /**
      * 拷贝静态资源文件
      */

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

@@ -88,9 +88,9 @@ public class RedirectController {
     public String classificationDetails(@PathVariable("id") Integer id,String name) {
         // 美体节活动页
         if (id == 301) {
-            return "redirect:/product/temporary.html?id=" + id + "&name=" + name;
+            return "redirect:/product/activity-301.html";
         }
-        return "redirect:/product/type-"+id+".html?name="+name;
+        return "redirect:/product/type-"+id+".html";
     }
     @GetMapping("/product/instrument.html")
     public String classificationDetails2(Integer id) {
@@ -101,8 +101,16 @@ public class RedirectController {
      * 活动专题
      */
     @GetMapping("/cmpage/info-6-{id}.html")
-    public String activityTopics(@PathVariable("id") Integer id, String name) {
-        return "redirect:/activity/activityTopic.html?id=" + id + "&name=" + name;
+    public String activityTopics(@PathVariable("id") Integer id) {
+        return "redirect:/product/activity-"+id+".html";
+    }
+    @GetMapping("/activity/activityTopic.html")
+    public String activityTopics2(@RequestParam("id") Integer id) {
+        return "redirect:/product/activity-"+id+".html";
+    }
+    @GetMapping("/product/beautytopic.html")
+    public String activityTopics3() {
+        return "redirect:/product/beauty.html";
     }
 
     /**

+ 27 - 17
src/main/java/com/caimei/www/controller/unlimited/ProductController.java

@@ -1,5 +1,6 @@
 package com.caimei.www.controller.unlimited;
 
+import com.alibaba.fastjson.JSONArray;
 import com.caimei.www.controller.BaseController;
 import com.caimei.www.pojo.page.ProductDetail;
 import com.caimei.www.service.page.ProductService;
@@ -10,6 +11,8 @@ import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 
+import java.util.Map;
+
 /**
  * 商品(product)
  *
@@ -88,21 +91,17 @@ public class ProductController extends BaseController {
         String title = singlePageService.getPageTitleById(id);
         model.addAttribute("pageId", id);
         model.addAttribute("pageTitle", title);
+        Integer typeSort = singlePageService.getPageTypeSort(pageId);
+        model.addAttribute("typeSort", typeSort);
+        // 产品仪器一级分类
+        JSONArray bigTypeArr = productService.getTypeClassifyJson(typeSort);
+        // 产品仪器楼层数据
+        Map<String, Object> floorMap = productService.getTypeFloorJson(pageId);
+        model.addAttribute("bigTypeJson", bigTypeArr);
+        model.addAttribute("typeFloorJson", floorMap);
         return INSTRUMENT_PAGE_PATH;
     }
 
-    /**
-     * 美体节活动页
-     */
-    @GetMapping("/product/temporary.html")
-    public String temporary(Integer id) {
-        Integer pageId = singlePageService.getInstrumentPageIdById(id);
-        if (pageId == null) {
-            return super.errorPath();
-        }
-        return TEMPORARY_PAGE_PATH;
-    }
-
     /**
      * 商品分类列表页面
      */
@@ -114,7 +113,7 @@ public class ProductController extends BaseController {
     /**
      * 美博会专题页
      */
-    @GetMapping("/product/beautytopic.html")
+    @GetMapping("/product/beauty.html")
     public String beautytopic() {
         return BEAUTY_TOP_PATH;
     }
@@ -122,7 +121,7 @@ public class ProductController extends BaseController {
     /**
      * 正品联盟品牌授权商品详情页
      */
-    @GetMapping("product/auth/product-{id}.html")
+    @GetMapping("/product/auth/product-{id}.html")
     public String authorization(final Model model, @PathVariable("id") Integer productId) {
         model.addAttribute("productId", productId);
         return QUALITY_AUTHORRIZE_PATH;
@@ -131,13 +130,24 @@ public class ProductController extends BaseController {
     /**
      * 活动专题页
      */
-    @GetMapping("activity/activityTopic.html")
-    public String activityTopic(final Model model, Integer id) {
-        Integer pageId = singlePageService.getActivityPageIdById(id);
+    @GetMapping("/product/activity-{id}.html")
+    public String activityTopic(final Model model, @PathVariable("id") Integer id) {
+        Integer pageId = null;
+        if (id == 301) {
+            // 美体节活动页
+            pageId = singlePageService.getInstrumentPageIdById(id);
+            if (pageId == null) {
+                return super.errorPath();
+            }
+            return TEMPORARY_PAGE_PATH;
+        }
+        // 活动专题页
+        pageId = singlePageService.getActivityPageIdById(id);
         if (pageId == null) {
             return super.errorPath();
         }
         model.addAttribute("pageId", id);
         return ACTIVITY_TOP_PATH;
     }
+
 }

+ 2 - 0
src/main/java/com/caimei/www/mapper/SinglePageDao.java

@@ -99,4 +99,6 @@ public interface SinglePageDao {
      * 活动专题页
      */
     Integer getActivityPageIdById(Integer id);
+
+    Integer getPageTypeSort(Integer pageId);
 }

+ 5 - 2
src/main/java/com/caimei/www/service/generate/GenerateHtml.java

@@ -16,11 +16,14 @@ public interface GenerateHtml {
     String generateStaticHome(ServerWebExchange exchange);
 
     /**
-     * 删除静态首页
+     * 生成产品仪器页面
+     * @param pageId 页面Id
      */
-    String deleteStaticHome(String pageName);
+    String generateProductType(ServerWebExchange exchange, Integer pageId);
+
     /**
      * 拷贝静态资源文件
      */
     String generateStaticFiles();
+
 }

+ 80 - 16
src/main/java/com/caimei/www/service/generate/impl/GenerateHtmlImpl.java

@@ -1,5 +1,6 @@
 package com.caimei.www.service.generate.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.caimei.www.pojo.page.BaseLink;
 import com.caimei.www.pojo.page.ImageLink;
@@ -7,6 +8,8 @@ import com.caimei.www.pojo.page.TopMenu;
 import com.caimei.www.service.generate.GenerateHtml;
 import com.caimei.www.service.page.BaseService;
 import com.caimei.www.service.page.HomeService;
+import com.caimei.www.service.page.ProductService;
+import com.caimei.www.service.page.SinglePageService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FileUtils;
 import org.springframework.beans.factory.annotation.Value;
@@ -54,6 +57,10 @@ public class GenerateHtmlImpl implements GenerateHtml {
     private BaseService baseService;
     @Resource
     private HomeService homeService;
+    @Resource
+    private SinglePageService singlePageService;
+    @Resource
+    private ProductService productService;
     /**
      * 生成静态首页
      */
@@ -81,19 +88,33 @@ public class GenerateHtmlImpl implements GenerateHtml {
     }
 
     /**
-     * 删除静态页
+     * 生成产品仪器页面
+     * @param pageId 页面Id
      */
     @Override
-    public String deleteStaticHome(String pageName) {
-        // 输出流
-        File dest = new File(destPath, pageName + ".html");
+    public String generateProductType(ServerWebExchange exchange, Integer pageId){
+        if (pageId == null) {
+            return "pageId不能为空!";
+        }
+        // 上下文
+        SpringWebFluxContext context = new SpringWebFluxContext(exchange);
+        // 设置页面数据
+        context.setVariables(setStaticProductType(pageId));
+        // 输出流  /product/type-287.html
+        File dest = new File(destPath + "/product", "type-"+pageId+".html");
         if (dest.exists()) {
             boolean delete = dest.delete();
-            if (delete) {
-                return "[静态页服务]:删除静态页成功! ^_^";
-            }
         }
-        return "[静态页服务]:删除静态页失败!";
+        try (PrintWriter writer = new PrintWriter(dest, "UTF-8")) {
+            // 生成html
+            templateEngine.process("product/instrument", context, writer);
+            log.info("[静态页服务]:生成静态产品仪器页("+pageId+")成功! ^_^");
+            return "[静态页服务]:生成静态产品仪器页("+pageId+")成功! ^_^";
+        } catch (Exception e) {
+            boolean delete = dest.delete();
+            log.error("[静态页服务]:生成静态产品仪器页("+pageId+")异常!", e);
+            return "[静态页服务]:生成静态产品仪器页("+pageId+")异常!"+e.toString();
+        }
     }
 
     /**
@@ -116,9 +137,7 @@ public class GenerateHtmlImpl implements GenerateHtml {
      * 设置静态首页数据
      */
     private Map<String, Object> setStaticHomeData() {
-        // 这里加载的数据是从数据库查询出来的,demo就写固定了
         Map<String, Object> map = new HashMap<>();
-
 		// 环境变量,(2:正式环境,1:测试环境,0:开发环境)
 	    map.put("siteEnv", siteEnv);
 		map.put("agent", "");
@@ -136,6 +155,13 @@ public class GenerateHtmlImpl implements GenerateHtml {
 		// 分类菜单
 		List<JSONObject> classifyList = baseService.getClassifyJson();
 		map.put("classifyJson", classifyList);
+        // 底部帮助页
+        List<BaseLink> helpPages = baseService.getHelpPages();
+        map.put("helpPages", helpPages);
+        // 友情链接
+        List<BaseLink> friendLinks = baseService.getFriendLinks();
+        map.put("friendLinks", friendLinks);
+
 		// 获取banner图
 		List<ImageLink> bannerList = homeService.getHomeBanners();
 		map.put("bannerList", bannerList);
@@ -145,12 +171,50 @@ public class GenerateHtmlImpl implements GenerateHtml {
 		// 右侧侧边栏数据
         Map<String, Object> sideMap = homeService.getHomeSideJson();
 		map.put("sideJson", sideMap);
-		// 底部帮助页
-		List<BaseLink> helpPages = baseService.getHelpPages();
-		map.put("helpPages", helpPages);
-		// 友情链接
-		List<BaseLink> friendLinks = baseService.getFriendLinks();
-		map.put("friendLinks", friendLinks);
+
+        log.debug(map.toString());
+
+        return map;
+    }
+
+
+    private Map<String, Object> setStaticProductType(Integer pageId) {
+        Map<String, Object> map = new HashMap<>();
+        // 环境变量,(2:正式环境,1:测试环境,0:开发环境)
+        map.put("siteEnv", siteEnv);
+        map.put("agent", "");
+        // 静态文件版本号
+        map.put("version", buildTime);
+        // spi服务器地址
+        map.put("coreServer", coreServer);
+        map.put("spiServer", spiServer);
+        // 搜索热门关键字
+        List<String> searchHotWord = baseService.getSearchHotWord();
+        map.put("searchHotWord", searchHotWord);
+        // 头部菜单
+        List<TopMenu> menuList = baseService.getNavMenu();
+        map.put("topMenuList", menuList);
+        // 分类菜单
+        List<JSONObject> classifyList = baseService.getClassifyJson();
+        map.put("classifyJson", classifyList);
+        // 底部帮助页
+        List<BaseLink> helpPages = baseService.getHelpPages();
+        map.put("helpPages", helpPages);
+        // 友情链接
+        List<BaseLink> friendLinks = baseService.getFriendLinks();
+        map.put("friendLinks", friendLinks);
+
+        String title = singlePageService.getPageTitleById(pageId);
+        map.put("pageId", pageId);
+        map.put("pageTitle", title);
+        Integer typeSort = singlePageService.getPageTypeSort(pageId);
+        map.put("typeSort", typeSort);
+        // 产品仪器一级分类
+        JSONArray classifyArr = productService.getTypeClassifyJson(typeSort);
+        // 产品仪器楼层数据
+        Map<String, Object> floorMap = productService.getTypeFloorJson(pageId);
+        map.put("bigTypeJson", classifyArr);
+        map.put("typeFloorJson", floorMap);
 
         log.debug(map.toString());
 

+ 14 - 0
src/main/java/com/caimei/www/service/page/ProductService.java

@@ -1,7 +1,10 @@
 package com.caimei.www.service.page;
 
+import com.alibaba.fastjson.JSONArray;
 import com.caimei.www.pojo.page.ProductDetail;
 
+import java.util.Map;
+
 
 /**
  * Description
@@ -17,4 +20,15 @@ public interface ProductService {
      */
     ProductDetail getProductDetailById(Integer productId);
 
+    /**
+     * 产品仪器一级分类
+     * @param typeSort
+     */
+    JSONArray getTypeClassifyJson(Integer typeSort);
+
+    /**
+     * 产品仪器楼层数据
+     * @param pageId
+     */
+    Map<String, Object> getTypeFloorJson(Integer pageId);
 }

+ 2 - 0
src/main/java/com/caimei/www/service/page/SinglePageService.java

@@ -38,4 +38,6 @@ public interface SinglePageService {
      * 活动专题页
      */
     Integer getActivityPageIdById(Integer id);
+
+    Integer getPageTypeSort(Integer pageId);
 }

+ 23 - 23
src/main/java/com/caimei/www/service/page/impl/BaseServiceImpl.java

@@ -56,30 +56,30 @@ public class BaseServiceImpl implements BaseService {
     @Cacheable(value = "getNavMenu", key="'www'", unless="#result == null")
     public List<TopMenu> getNavMenu() {
         List<TopMenu> menuList = baseDao.getTopMenus();
-        menuList.forEach(item -> {
-            String link = item.getLink();
-            if (!StringUtils.isEmpty(link)) {
-                boolean seoFlag = link.indexOf("/product/type") >= 0 || link.indexOf("/info/center") >= 0
-                              || link.indexOf("/flea-market") >= 0 || link.indexOf("/investment") >= 0
-                              || link.indexOf("/repair") >= 0;
-                if (!seoFlag) {
-                    if (link.contains("?")) {
-                        link = link + "&name=" + item.getName();
-                    } else {
-                        link = link + "?name=" + item.getName();
-                    }
-                }
-                item.setLink(link);
-            }
-//            List<SubMenu> subList = baseDao.getSubMenus(item.getId());
-//            if (subList.size() > 0) {
-//                // 设置老图片路径
-//                subList.forEach(sub -> {
-//                     sub.setImage(ImageUtil.getImageURL("", sub.getImage(), 0, domain));
-//                });
+//        menuList.forEach(item -> {
+//            String link = item.getLink();
+//            if (!StringUtils.isEmpty(link)) {
+//                boolean seoFlag = link.indexOf("/product/type") >= 0 || link.indexOf("/info/center") >= 0
+//                              || link.indexOf("/flea-market") >= 0 || link.indexOf("/investment") >= 0
+//                              || link.indexOf("/repair") >= 0;
+//                if (!seoFlag) {
+//                    if (link.contains("?")) {
+//                        link = link + "&name=" + item.getName();
+//                    } else {
+//                        link = link + "?name=" + item.getName();
+//                    }
+//                }
+//                item.setLink(link);
 //            }
-//            item.setSubMenus(subList);
-        });
+////            List<SubMenu> subList = baseDao.getSubMenus(item.getId());
+////            if (subList.size() > 0) {
+////                // 设置老图片路径
+////                subList.forEach(sub -> {
+////                     sub.setImage(ImageUtil.getImageURL("", sub.getImage(), 0, domain));
+////                });
+////            }
+////            item.setSubMenus(subList);
+//        });
         return menuList;
     }
 

+ 44 - 0
src/main/java/com/caimei/www/service/page/impl/ProductServiceImpl.java

@@ -1,16 +1,20 @@
 package com.caimei.www.service.page.impl;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.caimei.www.mapper.ProductDao;
 import com.caimei.www.pojo.page.ProductDetail;
 import com.caimei.www.service.page.ProductService;
 import com.caimei.www.utils.ImageUtil;
 import com.caimei.www.utils.PriceUtil;
+import com.caimei.www.utils.RequestUtil;
 import io.netty.util.internal.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Map;
 
 
 /**
@@ -24,6 +28,8 @@ import javax.annotation.Resource;
 public class ProductServiceImpl implements ProductService {
     @Value("${caimei.wwwDomain}")
     private String domain;
+    @Value("${caimei.coreServer}")
+    private String coreServer;
     @Resource
     private ProductDao productDao;
 
@@ -48,4 +54,42 @@ public class ProductServiceImpl implements ProductService {
         return product;
     }
 
+    /**
+     * 产品仪器一级分类
+     *
+     * @param typeSort
+     */
+    @Override
+    public JSONArray getTypeClassifyJson(Integer typeSort) {
+        String dataUrl = coreServer+"/commodity/classify?typeSort="+typeSort+"&source=www";
+        try {
+            String classifyResult = RequestUtil.sendGet(dataUrl);
+            log.debug(classifyResult);
+            Map<String, Object> classifyMap = JSONObject.parseObject(classifyResult, Map.class);
+            return (JSONArray) classifyMap.get("data");
+        } catch (Exception e) {
+            log.error("try-catch:",e);
+            return null;
+        }
+    }
+
+    /**
+     * 产品仪器楼层数据
+     *
+     * @param pageId
+     */
+    @Override
+    public Map<String, Object> getTypeFloorJson(Integer pageId) {
+        String dataUrl = coreServer+"/commodity/classify/product?pageId="+ pageId +"&source=1";
+        try {
+            String floorResult = RequestUtil.sendGet(dataUrl);
+            log.debug(floorResult);
+            Map<String, Object> floorMap = JSONObject.parseObject(floorResult, Map.class);
+            return JSONObject.parseObject(String.valueOf(floorMap.get("data")), Map.class);
+        } catch (Exception e) {
+            log.error("try-catch:",e);
+            return null;
+        }
+    }
+
 }

+ 5 - 0
src/main/java/com/caimei/www/service/page/impl/SinglePageServiceImpl.java

@@ -127,4 +127,9 @@ public class SinglePageServiceImpl implements SinglePageService {
         return pageId;
     }
 
+    @Override
+    public Integer getPageTypeSort(Integer pageId) {
+        return singlePageDao.getPageTypeSort(pageId);
+    }
+
 }

+ 4 - 4
src/main/resources/config/dev/application-dev.yml

@@ -25,10 +25,10 @@ spring:
 
 
   redis:
-    host: 119.29.0.46
-    port: 6380
-    password: 6#xsI%b4o@5c3RoE
-    #Redis数据库索引(默认为0)
+    host: 192.168.2.100
+    port: 6379
+    # password: 6#xsI%b4o@5c3RoE
+    # Redis数据库索引(默认为0)
     database: 0
     #连接池最大连接数(使用负值表示没有限制)
     jedis:

+ 0 - 1
src/main/resources/mapper/ProductMapper.xml

@@ -121,5 +121,4 @@
         select detailinfo from productdetailinfo where detailinfo like '%img-b.caimei365.com%'
 	</select>
 
-
 </mapper>

+ 4 - 0
src/main/resources/mapper/SinglePageMapper.xml

@@ -91,5 +91,9 @@
             a.type=6 and a.enabledStatus=1
           and a.id=#{id}
     </select>
+    <select id="getPageTypeSort" resultType="java.lang.Integer">
+        select typeSort from cm_page
+        where id = #{pageId} and enabledStatus = '1'
+    </select>
 
 </mapper>

+ 138 - 0
src/main/resources/static/css/base/floor.css

@@ -0,0 +1,138 @@
+@charset "utf-8";
+/**
+ * 楼层样式,PC端
+ */
+@media screen and (min-width:768px) {
+.section_page{width:100%;height:auto;float:left}
+.section_page .section_page_title{width:100%;height:103px;box-sizing:border-box;padding:31px 0 16px 0}
+.section_page .section_page_title h1{font-size:24px;line-height:31px;text-align:left;color:#4a4f58}
+.section_page .section_page_title p{font-size:14px;line-height:19px;text-align:left;color:#93979f;margin-top:6px}
+.section_page .section_page_main{width:100%;float:left;height:568px;overflow:hidden;transition:all 0.6s}
+.section_page .floorCon{width:100%}
+.section_page .swiper-wrapper-floor{width:100%;height:268px}
+.section_page .section_page_main.type_08{height:268px}
+.section_page .section_page_main.type_03{height:704px}
+.section_page  .page_main_item{width:164px;height:268px;float:left;margin-right:16px;margin-bottom:16px;background-color:#FFFFFF;transition:all 0.4s;display:block}
+.section_page  .page_main_item.default{cursor:default}
+.section_page  .page_main_item.ad_04{border-radius:2px}
+.section_page  .page_main_item.ad_04:hover{transform:translateY(-5px);box-shadow:0 8px 8px rgba(102,102,102,0.05),0 10px 10px rgba(102,102,102,0.05),0 12px 12px rgba(102,102,102,0.05)}
+.section_page .section_page_main.section_6{height:auto}
+.section_page .section_page_main.section_6 .section_page_more{display:none}
+.section_page .section_page_main.section_3,.section_page .section_page_main.section_4,.section_page .section_page_main.section_5{height:704px}
+.section_page .section_page_main.max{height:auto}
+.section_page_main.section_3 .page_main_item.ad_01,.section_page_main.section_4 .page_main_item.ad_01,.section_page_main.section_5 .page_main_item.ad_01,.section_page_main.section_6 .page_main_item.ad_01{width:884px;height:120px}
+.section_page_main.section_1 .page_main_item.ad_01,.section_page_main.section_2 .page_main_item.ad_01,.section_page_main.section_3 .page_main_item.ad_02,.section_page_main.section_4 .page_main_item.ad_02{width:524px}
+.section_page_main.section_2 .page_main_item.ad_02,.section_page_main.section_4 .page_main_item.ad_03{width:344px}
+.section_page .page_main_item_adv{width:100%;height:100%;display:block}
+.section_page .page_main_image{width:164px;height:164px;display:block;float:left;border-radius:2px 2px 0 0}
+.section_page .page_main_text{width:100%;height:42px;float:left;box-sizing:border-box;margin-top:10px;padding:0 8px;white-space:normal;word-break:break-all;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:21px}
+.section_page .page_main_tag{width:100%;height:24px;float:left;margin-top:16px;padding:0 8px}
+.section_page .page_main_tag p{display:block;padding:0 4px;height:24px;box-sizing:border-box;border:1px solid #e3ebf7;border-radius:2px;float:left;font-size:12px;line-height:22px;text-align:center;color:#9aa5b5}
+.section_page .page_main_price{width:100%;height:54px;float:left;box-sizing:border-box;padding:0 8px}
+.section_page .page_main_price .main_price_text{width:100%;height:54px;float:left;box-sizing:border-box}
+.section_page .page_main_price .main_price_unde{width:100%;height:31px;line-height:31px;font-size:14px;color:#4a4f58;text-align:left;float:left}
+.section_page .page_main_price .main_price_show{width:100%;height:30px;line-height:30px;font-size:14px;color:#f94b4b;text-align:left;float:left}
+.section_page .page_main_price .main_price_show.none{color:#999999;text-decoration:line-through}
+.section_page .page_main_price .main_price_login,.section_page .page_main_price .main_price_show.none{display:none}
+.section_page .page_main_price .price_text_tag{width:100%;height:22px;box-sizing:border-box;float:left;margin-top:0px}
+.section_page .page_main_price .price_text_tag .listTag{margin:0;float:left}
+.section_page .page_main_price .main_price_none{width:100%;height:24px;box-sizing:border-box;float:left;margin-top:2px}
+.section_page .page_main_price .main_price_none.sec{margin-top:25px}
+.section_page .page_main_price .main_price_none .listTag{margin:0}
+.section_page .page_main_price .price_grade,.section_page .page_main_price .price_grade_shop,.section_page .page_main_price .price_grade_club{float:left;margin:0;height:22px;line-height:22px;color:#4A4F58;font-style:normal;font-size:14px}
+.section_page .page_main_price .price_grade span,.section_page .page_main_price .price_grade_shop span,.section_page .page_main_price .price_grade_club span{display:inline-block;float:left}
+.section_page .page_main_price .icon:before{width:67px;height:22px}
+.section_page .page_main_price .price_grade_1:before{background-position:0 -714px}
+.section_page .page_main_price .price_grade_2:before{background-position:0 -744px}
+.section_page .page_main_price .price_grade_3:before{background-position:0 -774px}
+.section_page .page_main_price .price_grade_4:before{background-position:0 -804px}
+.section_page .page_main_price .price_grade_5:before{background-position:0 -834px}
+.section_page .section_page_more{width:100%;height:32px;margin-top:16px;float:left;display:none}
+.section_page .section_page_more.show{display:block}
+.section_page .section_page_more .more{width:98px;height:32px;line-height:32px;font-size:14px;margin:0 auto;border-radius:2px;border:1px solid #cccccc;color:#909090;text-align:left;transition:all 0.2s;cursor:pointer;padding-left:15px;box-sizing:border-box;position:relative}
+.section_page .section_page_more .more .icon:before{background-position:-93px 7px;width:20px;height:32px;right:0;position:absolute}
+.section_page .section_page_more .more:hover{color:#E15616;border-color:#E15616}
+.section_page .section_page_more .more:hover .icon:before{background-position:-153px 7px}
+/* 底部供应商 */
+.section_page .section_page_bottom{width:100%;float:left;height:auto}
+.section_page  .page_main_li{width:134px;height:166px;float:left;margin-right:16px;margin-bottom:16px;background-color:#FFFFFF;transition:all 0.4s;display:block}
+.section_page .page_main_li.ad_01{width:884px;height:184px}
+.section_page  .page_main_li.ad_02:hover{transform:translateY(-5px);box-shadow:0 8px 8px rgba(102,102,102,0.05),0 10px 10px rgba(102,102,102,0.05),0 12px 12px rgba(102,102,102,0.05)}
+.section_page  .page_main_li.ad_02:hover .page_main_name{color:#E15616;font-weight:bold}
+.section_page  .page_main_li .page_main_logo{width:100%;height:134px;display:block;float:left}
+.section_page  .page_main_li .page_main_name{width:100%;height:32px;float:left;line-height:32px;text-align:center;font-size:14px;color:#4a4f58;background-color:#f9f9f9}
+
+#recommendBox .swiper-pagination{width:100%;padding:10px 0;z-index:1;text-align:center;font-size:0}
+#recommendBox .swiper-pagination span{display:inline-block;width:14px;height:4px;border:5px solid transparent;cursor:pointer;opacity:.2}
+#recommendBox .swiper-pagination span:before{content:"";display:inline-block;width:100%;height:4px;background:#E15616;border-radius:2px}
+#recommendBox .swiper-pagination span.on{width:28px;opacity:1}
+}
+/**
+ * 移动端
+ */
+@media screen and (max-width:768px) {
+.section_page{width:100%;height:auto}
+.section_page .section_page_title{padding:2.4vw 0 2.4vw 3.2vw;position:relative}
+.section_page .section_page_title h1{font-weight:bold;color:#4a4f58;font-size:4.8vw;line-height:9.7vw}
+.section_page .section_page_title p{font-weight:normal;color:#93979f;font-size:3.4vw;line-height:4.3vw}
+.section_page .page_main_item{width:45.6vw !important;height:68vw;overflow:hidden;margin:0 1.3vw 2.6vw 1.3vw;background:#fff;text-align:left}
+.section_page .page_main_image{width:45.6vw;height:45.6vw}
+.section_page .page_main_text{padding:0 3.2vw;height:9.3vw;line-height:5vw;font-size:3.4vw;vertical-align:middle;word-break:break-all;overflow:hidden;text-overflow:ellipsis;display:-webkit-inline-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:1vw}
+.section_page .page_main_item.ad_02 img,.section_page .page_main_item.ad_03 img,.section_page .page_main_item.ad_01 img{height:100%;width:100%}
+.section_page .page_main_price{width:100%;box-sizing:border-box;padding:0 3.2vw}
+.section_page .page_main_price .price_text_tag{width:100%;box-sizing:border-box;float:left}
+.section_page .page_main_price .main_price_show{color:#f94b4b}
+.section_page .page_main_price .main_price_login,.section_page .page_main_price .main_price_show.none{display:none}
+.section_page .page_main_price .main_price_unde{width:100%;height:6.5vw;line-height:6.5vw;font-size:3.4vw;color:#4a4f58;text-align:left;float:left}
+.section_page .page_main_price .price_text_tag .listTag{padding:0 2vw;border:.27vw solid #ffe6dc;background:none;font-size:2.8vw;float:left;height:4.2vw;line-height:4.2vw}
+.section_page .section_page_main.section_6{height:auto}
+.section_page .section_page_main.section_6 .section_page_more{display:none}
+.section_page .section_page_main.section_3,.section_page .section_page_main.section_4,.section_page .section_page_main.section_5{height:167vw}
+.section_page_main.section_3 .page_main_item.ad_01,.section_page_main.section_4 .page_main_item.ad_01,.section_page_main.section_5 .page_main_item.ad_01,.section_page_main.section_6 .page_main_item.ad_01,.section_page .page_main_li.ad_01{width:93.6vw !important;height:24vw}
+.section_page .section_page_main{margin:auto;width:97vw;height:140vw;overflow:hidden}
+.section_page .section_page_main.type_03{height:167vw}
+.section_page .section_page_more{display:none}
+.section_page .section_page_more.show{display:block}
+.section_page .section_page_more .more{width:20vw;height:6.4vw;margin:5vw auto;border:.27vw solid #cccccc;color:#909090;font-size:3vw;line-height:6.4vw;border-radius:.54vw;position:relative;text-indent:2vw}
+.section_page .section_page_more .more .icon:before{background-position:-51.5vw 0px;width:5.4vw;height:6.7vw;right:0;position:absolute}
+.section_page .page_main_li{width:21.6vw;height:26.6vw;float:left;margin-right:2.4vw;margin-bottom:2.4vw;background-color:#FFFFFF;display:block}
+.section_page .page_main_li .page_main_logo{width:100%;height:21.6vw;display:block;float:left}
+.section_page .page_main_li .page_main_name{width:100%;height:5vw;float:left;line-height:5vw;text-align:center;font-size:2.6vw;color:#4a4f58;background-color:#f9f9f9}
+.section_page_bottom{width:97vw;padding:3.2vw;overflow:hidden}
+.page_main_li.ad_01 img{width:100%;height:100%}
+.section_right{padding:3.2vw}
+.box{white-space:nowrap;overflow-x:auto}
+.section_right .section_right_item{display:inline-block;width:42.2vw;height:61.6vw;background:#fff;margin-right:2.4vw;flex-shrink:0}
+.section_right .right_item_title{overflow:hidden;padding:2.4vw}
+.section_right .right_item_title p{float:left;font-size:3.4vw;font-weight:bold;color:#4a4f58;text-align:left}
+.section_right .right_item_title a{display:inline-block;float:right;font-size:3.2vw;color:#909090;text-align:right}
+.section_right .right_item_main{height:auto;padding:.54vw 2.4vw}
+.section_right .item_banner{width:37.4vw;height:37.4vw;display:block;position:relative}
+.section_right .item_banner img{width:100%;height:100%}
+.section_right .item_banner .name{width:100%;height:6.4vw;position:absolute;bottom:0;background:rgba(0,0,0,0.4);line-height:6.4vw;font-size:3.2vw;color:#ffffff;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2.7vw;box-sizing:border-box}
+.section_right .item_banner .statu{height:5.8vw;border-radius:2.9vw;background:rgba(0,0,0,0.4);position:absolute;left:2vw;top:2vw}
+.section_right .item_banner .statu p{float:left;width:13.3vw;text-align:center;font-size:2.6vw;line-height:5.8vw;color:#FFF}
+.section_right .item_banner .statu i{display:block;width:3.7vw;height:3.7vw;float:left;margin:1.1vw .54vw 0 .54vw}
+.section_right .item_text .item_text_name{text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;position:relative;color:#4a4f58;font-size:3.2vw;padding-left:2.7vw}
+.section_right  .item_text .item_text_name:before{content:'';width:1.1vw;height:1.1vw;border-radius:50%;background-color:#cccccc;position:absolute;left:0;top:1.7vw}
+.section_page .section_page_main.max{height:auto}
+.section_page .page_main_item.ad_01.bottom{margin:2.4vw auto;display:block}
+.section_page .page_main_price .icon:before{width:15.8vw;height:5vw}
+.section_page .page_main_price .price_grade_1:before{background-position:-84vw -69.5vw}
+.section_page .page_main_price .price_grade_2:before{background-position:-84vw -76.5vw}
+.section_page .page_main_price .price_grade_3:before{background-position:-84vw -83.7vw}
+.section_page .page_main_price .price_grade_4:before{background-position:-84vw -90.7vw}
+.section_page .page_main_price .price_grade_5:before{background-position:-84vw -97.5vw}
+.section_page .page_main_price .main_price_none .listTag{padding:0 2vw;border:.27vw solid #ffe6dc;background:none;font-size:2.8vw;float:right}
+.section_page .page_main_price .price_grade,.section_page .page_main_price .price_grade_shop,.section_page .page_main_price .price_grade_club{display:block;height:7vw;line-height:7vw;color:#4A4F58;font-style:normal;float:left}
+.section_page .page_main_price .price_grade .icon,.section_page .page_main_price .price_grade_shop .icon,.section_page .page_main_price .price_grade_club .icon{display:inline-block;font-size:0;height:5vw;line-height:5vw;vertical-align:text-bottom}
+.section_page .page_main_tag{color:#9aa5b5;margin:1vw 3.2vw;border:.27vw solid #e3ebf7;display:inline-block;padding:0 1.3vw;border-radius:.54vw}
+.section_page .page_main_price .bold{font-weight:bold}
+
+#recommendBox{width: calc(100%);height:150vw;overflow:hidden;position:relative;}
+#recommendBox .swiper-pagination{width:100%;height:2.6vw;z-index:1;text-align:center;font-size:0;position:absolute;bottom:2.6vw;left:0}
+#recommendBox .swiper-pagination .swiper-pagination-bullet{display:block;width:2vw;border-width:1vw 1px;border-color:transparent;cursor:pointer;background:none;font-size:0;opacity:.2}
+#recommendBox .swiper-pagination .swiper-pagination-bullet:before{content:"";display:block;width:100%;height:.6vw;background:#E15616;border-radius:.3vw}
+#recommendBox .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active{width:3.8vw;opacity:1}
+#recommendBox .swiper-wrapper{height:inherit}
+}

+ 0 - 64
src/main/resources/static/css/index/index_new.h5.css

@@ -13,74 +13,10 @@
 #swiper-container .swiper-pagination .swiper-pagination-bullet{display:block;width:2vw;border-width:1vw 1px;border-color:transparent;cursor:pointer;background:none;font-size:0;opacity:.2}
 #swiper-container .swiper-pagination .swiper-pagination-bullet:before{content:"";display:block;width:100%;height:.6vw;background:#FFF;border-radius:.3vw}
 #swiper-container .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active{width:3.8vw;opacity:1}
-
-#recommendBox{width: calc(100%);height:150vw;overflow:hidden;position:relative;}
-#recommendBox .swiper-pagination{width:100%;height:2.6vw;z-index:1;text-align:center;font-size:0;position:absolute;bottom:2.6vw;left:0}
-#recommendBox .swiper-pagination .swiper-pagination-bullet{display:block;width:2vw;border-width:1vw 1px;border-color:transparent;cursor:pointer;background:none;font-size:0;opacity:.2}
-#recommendBox .swiper-pagination .swiper-pagination-bullet:before{content:"";display:block;width:100%;height:.6vw;background:#E15616;border-radius:.3vw}
-#recommendBox .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active{width:3.8vw;opacity:1}
 /* 楼层 */
- .section_page{width:100%;height:auto}
-.section_page .section_page_title{padding:2.4vw 0 2.4vw 3.2vw;position:relative}
-.section_page .section_page_title h1{font-weight:bold;color:#4a4f58;font-size:4.8vw;line-height:9.7vw}
-.section_page .section_page_title p{font-weight:normal;color:#93979f;font-size:3.4vw;line-height:4.3vw}
-.section_page .page_main_item{width:45.6vw !important;height:68vw;overflow:hidden;margin:0 1.3vw 2.6vw 1.3vw;background:#fff;text-align:left}
-.section_page .page_main_image{width:45.6vw;height:45.6vw}
-.section_page .page_main_text{padding:0 3.2vw;height:9.3vw;line-height:5vw;font-size:3.4vw;vertical-align:middle;word-break:break-all;overflow:hidden;text-overflow:ellipsis;display:-webkit-inline-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:1vw}
-.section_page .page_main_item.ad_02 img,.section_page .page_main_item.ad_03 img,.section_page .page_main_item.ad_01 img{height:100%;width:100%}
-.section_page .page_main_price{width:100%;box-sizing:border-box;padding:0 3.2vw}
-.section_page .page_main_price .price_text_tag{width:100%;box-sizing:border-box;float:left}
-.section_page .page_main_price .main_price_show{color:#f94b4b}
-.section_page .page_main_price .main_price_login,.section_page .page_main_price .main_price_show.none{display:none}
-.section_page .page_main_price .main_price_unde{width:100%;height:6.5vw;line-height:6.5vw;font-size:3.4vw;color:#4a4f58;text-align:left;float:left}
-.section_page .page_main_price .price_text_tag .listTag{padding:0 2vw;border:.27vw solid #ffe6dc;background:none;font-size:2.8vw;float:left;height:4.2vw;line-height:4.2vw}
-.section_page .section_page_main.section_6{height:auto}
-.section_page .section_page_main.section_6 .section_page_more{display:none}
-.section_page .section_page_main.section_3,.section_page .section_page_main.section_4,.section_page .section_page_main.section_5{height:167vw}
-.section_page_main.section_3 .page_main_item.ad_01,.section_page_main.section_4 .page_main_item.ad_01,.section_page_main.section_5 .page_main_item.ad_01,.section_page_main.section_6 .page_main_item.ad_01,.section_page .page_main_li.ad_01{width:93.6vw !important;height:24vw}
-.section_page .section_page_main{margin:auto;width:97vw;height:140vw;overflow:hidden}
-.section_page .section_page_main.type_03{height:167vw}
-.section_page .section_page_more{display:none}
-.section_page .section_page_more.show{display:block}
-.section_page .section_page_more .more{width:20vw;height:6.4vw;margin:5vw auto;border:.27vw solid #cccccc;color:#909090;font-size:3vw;line-height:6.4vw;border-radius:.54vw;position:relative;text-indent:2vw}
-.section_page .section_page_more .more .icon:before{background-position:-51.5vw 0px;width:5.4vw;height:6.7vw;right:0;position:absolute}
-.section_page .page_main_li{width:21.6vw;height:26.6vw;float:left;margin-right:2.4vw;margin-bottom:2.4vw;background-color:#FFFFFF;display:block}
-.section_page .page_main_li .page_main_logo{width:100%;height:21.6vw;display:block;float:left}
-.section_page .page_main_li .page_main_name{width:100%;height:5vw;float:left;line-height:5vw;text-align:center;font-size:2.6vw;color:#4a4f58;background-color:#f9f9f9}
-.section_page_bottom{width:97vw;padding:3.2vw;overflow:hidden}
-.page_main_li.ad_01 img{width:100%;height:100%}
-.section_right{padding:3.2vw}
-.box{white-space:nowrap;overflow-x:auto}
-.section_right .section_right_item{display:inline-block;width:42.2vw;height:61.6vw;background:#fff;margin-right:2.4vw;flex-shrink:0}
-.section_right .right_item_title{overflow:hidden;padding:2.4vw}
-.section_right .right_item_title p{float:left;font-size:3.4vw;font-weight:bold;color:#4a4f58;text-align:left}
-.section_right .right_item_title a{display:inline-block;float:right;font-size:3.2vw;color:#909090;text-align:right}
-.section_right .right_item_main{height:auto;padding:.54vw 2.4vw}
-.section_right .item_banner{width:37.4vw;height:37.4vw;display:block;position:relative}
-.section_right .item_banner img{width:100%;height:100%}
-.section_right .item_banner .name{width:100%;height:6.4vw;position:absolute;bottom:0;background:rgba(0,0,0,0.4);line-height:6.4vw;font-size:3.2vw;color:#ffffff;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2.7vw;box-sizing:border-box}
-.section_right .item_banner .statu{height:5.8vw;border-radius:2.9vw;background:rgba(0,0,0,0.4);position:absolute;left:2vw;top:2vw}
-.section_right .item_banner .statu p{float:left;width:13.3vw;text-align:center;font-size:2.6vw;line-height:5.8vw;color:#FFF}
-.section_right .item_banner .statu i{display:block;width:3.7vw;height:3.7vw;float:left;margin:1.1vw .54vw 0 .54vw}
-.section_right .item_text .item_text_name{text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;position:relative;color:#4a4f58;font-size:3.2vw;padding-left:2.7vw}
-.section_right  .item_text .item_text_name:before{content:'';width:1.1vw;height:1.1vw;border-radius:50%;background-color:#cccccc;position:absolute;left:0;top:1.7vw}
-.section_page .section_page_main.max{height:auto}
-.section_page .page_main_item.ad_01.bottom{margin:2.4vw auto;display:block}
-.section_page .page_main_price .icon:before{width:15.8vw;height:5vw}
-.section_page .page_main_price .price_grade_1:before{background-position:-84vw -69.5vw}
-.section_page .page_main_price .price_grade_2:before{background-position:-84vw -76.5vw}
-.section_page .page_main_price .price_grade_3:before{background-position:-84vw -83.7vw}
-.section_page .page_main_price .price_grade_4:before{background-position:-84vw -90.7vw}
-.section_page .page_main_price .price_grade_5:before{background-position:-84vw -97.5vw}
-.section_page .page_main_price .main_price_none .listTag{padding:0 2vw;border:.27vw solid #ffe6dc;background:none;font-size:2.8vw;float:right}
-.section_page .page_main_price .price_grade,.section_page .page_main_price .price_grade_shop,.section_page .page_main_price .price_grade_club{display:block;height:7vw;line-height:7vw;color:#4A4F58;font-style:normal;float:left}
-.section_page .page_main_price .price_grade .icon,.section_page .page_main_price .price_grade_shop .icon,.section_page .page_main_price .price_grade_club .icon{display:inline-block;font-size:0;height:5vw;line-height:5vw;vertical-align:text-bottom}
-.section_page .page_main_tag{color:#9aa5b5;margin:1vw 3.2vw;border:.27vw solid #e3ebf7;display:inline-block;padding:0 1.3vw;border-radius:.54vw}
-.section_page .page_main_price .bold{font-weight:bold}
 .section_right .item_banner .statu .icon-live{display:block;width:3vw;height:3vw;float:left;margin:1.6vw 0 0 1.6vw;background:url("/img/live/icon-live.h5.gif");background-size:cover}
 .section_right .item_banner .statu .mIcon.icon-end:before{width:5.3vw;height:4vw;background-position:-63.8vw -69vw}
 .section_right .item_banner .statu .mIcon.icon-wart:before{width:5.3vw;height:4vw;background-position:-59vw -69vw}
-.hotList .section_page_main.swiper-wrapper{height:inherit}
 .floorCon{width:97vw;margin:auto}
 .section_page .page_main_price .price_text_tag.right-box{float:right;width:auto;margin-top:1vw}
 .section_page .page_main_text .tag{width:11.3vw;height:4.3vw;line-height:4.3vw;font-size:2.8vw;display:inline-block;margin-right:1.3vw;text-align:center;color:#FFFFFF !important;background-image:linear-gradient(270deg,#f9c023 0%,#f83600 100%);border-radius:0px 10px 0px 0px;margin-top:.5vw}

+ 1 - 62
src/main/resources/static/css/index/index_new.pc.css

@@ -24,64 +24,7 @@ li{list-style:none;}
 .section_container{width:100%;height:auto;float:left}
 .section_container .inner{width:1184px;margin:0 auto}
 .section_left{width:900px;float:left}
-.section_page{width:100%;height:auto;float:left}
-.section_page .section_page_title{width:100%;height:103px;box-sizing:border-box;padding:31px 0 16px 0}
-.section_page .section_page_title h1{font-size:24px;line-height:31px;text-align:left;color:#4a4f58}
-.section_page .section_page_title p{font-size:14px;line-height:19px;text-align:left;color:#93979f;margin-top:6px}
-.section_page .section_page_main{width:100%;float:left;height:568px;overflow:hidden;transition:all 0.6s}
-.section_page .floorCon{width:100%}
-.section_page .swiper-wrapper-floor{width:100%;height:268px}
-.section_page .section_page_main.type_08{height:268px}
-.section_page .section_page_main.type_03{height:704px}
-.section_page  .page_main_item{width:164px;height:268px;float:left;margin-right:16px;margin-bottom:16px;background-color:#FFFFFF;transition:all 0.4s;display:block}
-.section_page  .page_main_item.default{cursor:default}
-.section_page  .page_main_item.ad_04{border-radius:2px}
-.section_page  .page_main_item.ad_04:hover{transform:translateY(-5px);box-shadow:0 8px 8px rgba(102,102,102,0.05),0 10px 10px rgba(102,102,102,0.05),0 12px 12px rgba(102,102,102,0.05)}
-.section_page .section_page_main.section_6{height:auto}
-.section_page .section_page_main.section_6 .section_page_more{display:none}
-.section_page .section_page_main.section_3,.section_page .section_page_main.section_4,.section_page .section_page_main.section_5{height:704px}
-.section_page .section_page_main.max{height:auto}
-.section_page_main.section_3 .page_main_item.ad_01,.section_page_main.section_4 .page_main_item.ad_01,.section_page_main.section_5 .page_main_item.ad_01,.section_page_main.section_6 .page_main_item.ad_01{width:884px;height:120px}
-.section_page_main.section_1 .page_main_item.ad_01,.section_page_main.section_2 .page_main_item.ad_01,.section_page_main.section_3 .page_main_item.ad_02,.section_page_main.section_4 .page_main_item.ad_02{width:524px}
-.section_page_main.section_2 .page_main_item.ad_02,.section_page_main.section_4 .page_main_item.ad_03{width:344px}
-.section_page .page_main_item_adv{width:100%;height:100%;display:block}
-.section_page .page_main_image{width:164px;height:164px;display:block;float:left;border-radius:2px 2px 0 0}
-.section_page .page_main_text{width:100%;height:42px;float:left;box-sizing:border-box;margin-top:10px;padding:0 8px;white-space:normal;word-break:break-all;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:21px}
-.section_page .page_main_tag{width:100%;height:24px;float:left;margin-top:16px;padding:0 8px}
-.section_page .page_main_tag p{display:block;padding:0 4px;height:24px;box-sizing:border-box;border:1px solid #e3ebf7;border-radius:2px;float:left;font-size:12px;line-height:22px;text-align:center;color:#9aa5b5}
-.section_page .page_main_price{width:100%;height:54px;float:left;box-sizing:border-box;padding:0 8px}
-.section_page .page_main_price .main_price_text{width:100%;height:54px;float:left;box-sizing:border-box}
-.section_page .page_main_price .main_price_unde{width:100%;height:31px;line-height:31px;font-size:14px;color:#4a4f58;text-align:left;float:left}
-.section_page .page_main_price .main_price_show{width:100%;height:30px;line-height:30px;font-size:14px;color:#f94b4b;text-align:left;float:left}
-.section_page .page_main_price .main_price_show.none{color:#999999;text-decoration:line-through}
-.section_page .page_main_price .main_price_login,.section_page .page_main_price .main_price_show.none{display:none}
-.section_page .page_main_price .price_text_tag{width:100%;height:22px;box-sizing:border-box;float:left;margin-top:0px}
-.section_page .page_main_price .price_text_tag .listTag{margin:0;float:left}
-.section_page .page_main_price .main_price_none{width:100%;height:24px;box-sizing:border-box;float:left;margin-top:2px}
-.section_page .page_main_price .main_price_none.sec{margin-top:25px}
-.section_page .page_main_price .main_price_none .listTag{margin:0}
-.section_page .page_main_price .price_grade,.section_page .page_main_price .price_grade_shop,.section_page .page_main_price .price_grade_club{float:left;margin:0;height:22px;line-height:22px;color:#4A4F58;font-style:normal;font-size:14px}
-.section_page .page_main_price .price_grade span,.section_page .page_main_price .price_grade_shop span,.section_page .page_main_price .price_grade_club span{display:inline-block;float:left}
-.section_page .page_main_price .icon:before{width:67px;height:22px}
-.section_page .page_main_price .price_grade_1:before{background-position:0 -714px}
-.section_page .page_main_price .price_grade_2:before{background-position:0 -744px}
-.section_page .page_main_price .price_grade_3:before{background-position:0 -774px}
-.section_page .page_main_price .price_grade_4:before{background-position:0 -804px}
-.section_page .page_main_price .price_grade_5:before{background-position:0 -834px}
-.section_page .section_page_more{width:100%;height:32px;margin-top:16px;float:left;display:none}
-.section_page .section_page_more.show{display:block}
-.section_page .section_page_more .more{width:98px;height:32px;line-height:32px;font-size:14px;margin:0 auto;border-radius:2px;border:1px solid #cccccc;color:#909090;text-align:left;transition:all 0.2s;cursor:pointer;padding-left:15px;box-sizing:border-box;position:relative}
-.section_page .section_page_more .more .icon:before{background-position:-93px 7px;width:20px;height:32px;right:0;position:absolute}
-.section_page .section_page_more .more:hover{color:#E15616;border-color:#E15616}
-.section_page .section_page_more .more:hover .icon:before{background-position:-153px 7px}
-/* 底部供应商 */
-.section_page .section_page_bottom{width:100%;float:left;height:auto}
-.section_page  .page_main_li{width:134px;height:166px;float:left;margin-right:16px;margin-bottom:16px;background-color:#FFFFFF;transition:all 0.4s;display:block}
-.section_page .page_main_li.ad_01{width:884px;height:184px}
-.section_page  .page_main_li.ad_02:hover{transform:translateY(-5px);box-shadow:0 8px 8px rgba(102,102,102,0.05),0 10px 10px rgba(102,102,102,0.05),0 12px 12px rgba(102,102,102,0.05)}
-.section_page  .page_main_li.ad_02:hover .page_main_name{color:#E15616;font-weight:bold}
-.section_page  .page_main_li .page_main_logo{width:100%;height:134px;display:block;float:left}
-.section_page  .page_main_li .page_main_name{width:100%;height:32px;float:left;line-height:32px;text-align:center;font-size:14px;color:#4a4f58;background-color:#f9f9f9}
+
 /*右边区域*/
 .section_right{width:284px;float:right;box-sizing:border-box;padding-top:103px}
 .section_right .section_right_item{width:284px;height:auto;background-color:#FFFFFF;float:left;margin-bottom:16px;padding:16px;box-sizing:border-box;border-radius:2px}
@@ -108,10 +51,6 @@ li{list-style:none;}
 .section_right  .item_text:hover{color:#E15616;text-decoration:underline}
 .section_right  .item_text:hover .item_text_name:before{background-color:#E15616}
 
-#recommendBox .swiper-pagination{width:100%;padding:10px 0;z-index:1;text-align:center;font-size:0}
-#recommendBox .swiper-pagination span{display:inline-block;width:14px;height:4px;border:5px solid transparent;cursor:pointer;opacity:.2}
-#recommendBox .swiper-pagination span:before{content:"";display:inline-block;width:100%;height:4px;background:#E15616;border-radius:2px}
-#recommendBox .swiper-pagination span.on{width:28px;opacity:1}
 footer{width:100%;height:auto;float:left}
 
 /* 首页右侧导航 */

+ 10 - 113
src/main/resources/static/css/product/instruement.css

@@ -1,9 +1,5 @@
 @media screen and (min-width:768px) {
     #container {width: 1184px;margin: 32px auto;overflow: hidden;}
-    #recommendBox .swiper-pagination{width:100%;padding:10px 0;z-index:1;text-align:center;font-size:0;}
-    #recommendBox .swiper-pagination span{display:inline-block;width:14px;height:4px;border:5px solid transparent;cursor:pointer;opacity:.2;}
-    #recommendBox .swiper-pagination span:before{content:"";display:inline-block;width:100%;height:4px;background:#E15616;border-radius:2px}
-    #recommendBox .swiper-pagination span.on{width:28px;opacity:1;}
     .instrue-left {width: 900px;float: left;}
     .normal-nav{margin-top: 10px}
     .top-category{overflow: hidden;}
@@ -13,130 +9,31 @@
     .instrue-left .top-category .normal-nav .nav-list.active {border: 1px solid #e15616;color: #e15616;}
     .instrue-right {float: right;width: 252px;background: #fff;padding: 16px;margin-top: 10px;min-height: 343px;overflow: auto;}
     .instrue-right .wrap_tittle{padding-bottom: 10px;color: #4a4f58;font-size: 16px;font-weight: bold;border-bottom: 1px solid #f5f5f5;position: relative;}
+    .instrue-right .wrap_tittle .line{height: 2px;width: 16px;background: #e15616;display: block;position: absolute;bottom: 0}
     .instrue-right .hot-search{padding:24px 0px 0px 0px;}
     .instrue-right .hot-search .hot-list{display: inline-block;height: 32px;line-height: 32px;background: #f7f7f7;margin: 0 12px 12px 0;padding: 0 13px;color: #4a4f58;cursor: pointer;position: relative}
     .instrue-right .hot-search .hot-list:hover{background:#fef6f3;color: #e15616 }
-    .productItem:hover .name{color: #e15616;}
-    .productItem:hover{transform:translateY(-5px);box-shadow: 0 8px 8px rgba(102,102,102,0.05), 0 10px 10px rgba(102,102,102,0.05), 0 12px 12px rgba(102,102,102,0.05);}
-    .instrue-right .wrap_tittle .line{height: 2px;width: 16px;background: #e15616;display: block;position: absolute;bottom: 0}
-    .floorTit {padding: 24px 0 16px 0;position: relative;}
-    .floorTit h2, .floorTit h3 {font-weight: bold;color: #4a4f58;font-size: 24px;line-height: 40px;}
-    .floorTit h5 {font-weight: normal;color:#93979f;font-size: 14px;line-height: 16px;}
-    .hotList  .section_page_main a.img01 {width: 524px;}
-    .hotList  .section_page_main a.img02{width: 344px;}
-    .hotList  .section_page_main .imgbaner,.hotList .imgbaner{width: 884px;height: 120px;display: block}
-    .hotList a img {width: 100%;height: 100%;}
-    .hotList .section_page_main{height: 568px;overflow: hidden;}
-    .hotList .section_page_main.type{height: 704px;}
-    .hotList .section_page_main.max{height: auto;}
-    .hotList .section_page_main a {width: 164px;height: 268px;float: left;background: #fff;position: relative;margin: 0 16px 16px 0;overflow: hidden;float: left;transition: all 0.4s;}
-    .swiper-container a{margin-right: 16px;}
-    .swiper-container .section_page_main{height: auto;}
-    .hotList .section_page_main a>a{display: block;}
-    .hotList .section_page_main .productItem img{width: 100%;height: 164px;display: block;}
-    .productItem .name {margin-top: 8px;display: block;padding: 0 8px;height: 40px;line-height: 21px;vertical-align: middle;word-break: break-all;overflow: hidden;text-overflow: ellipsis;display: -webkit-inline-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical}
-    .productItem .price{border: 0;box-sizing: border-box;padding: 0 8px;height: 54px;width: 100%;}
-    .productItem .price .price_text_tag{width: 100%;height: 22px;box-sizing: border-box;float: left;margin-top: 3px;}
-    .productItem .price .price_text_tag .listTag{margin: 0;float: left}
-    .productItem .price  .main_price_show{width: 100%;height: 30px;line-height: 30px;font-size: 14px;color: #f94b4b;text-align: left;float: left;}
-    .productItem .price .icon:before{width: 63px;height: 32px;}
-    .productItem .price .main_price_unde { width: 100%;height: 31px;line-height: 31px;font-size: 14px;color: #4a4f58;text-align: left;float: left;}
-    .productItem .price .icon.i5:before {
-        background-position: -2px -832px;
-    }
-    .productItem .price .icon.i1:before {
-        background-position: -2px -712px;
-    }
-    .productItem .price .icon.i2:before {
-        background-position: -2px -742px;
-    }
-    .productItem .price .icon.i3:before {
-        background-position: -2px -772px;
-    }
-    .productItem .price .icon.i4:before {
-        background-position: -2px -802px;
-    }
-    .hotList div.unfold{width: 83px;height: 32px;border: 1px solid #cccccc;line-height: 32px;margin: 10px auto;border-radius: 2px;color: #909090;padding-left: 13px;cursor: pointer;position: relative;}
-    .icon.more:before{background-position: -93px 7px;width: 20px;height: 32px;right: 0;position: absolute}
-    .hotList div.unfold:hover{color: #E15616;border-color: #E15616;}
-    .productItem .price em.p{color:#f94b4b;}
-    .icon.hot:before{width: 25px;height: 20px;background-position: -120px -550px;position: absolute;top: -10px;right: -10px}
-    .brand{color: #9aa5b5;margin: 10px 8px;border: 1px solid #e3ebf7;display: inline-block;padding: 0 10px;border-radius: 2px}
     .item_icon{ width: 100%;height: 36px;padding: 12px 0 8px 0;}
     .item_icon img{width: 36px;height: 36px;display: block;margin: 0 auto;}
-    .productItem .price .price_grade{font-weight: normal;margin-top: 2px; width: 100%;height: 24px;box-sizing: border-box;float: left;}
-    .productItem .price .price_grade .bold{margin: 0}
-    .price .right-box{margin:12px 0 0 0}
-    .productItem .price .price_grade.sec{display: block;margin-top: 15px;margin-left: 0}
-    .section_page_main .page_main_item.default{cursor: default}
-    .productItem .name .tag{width: 44px;height: 18px;line-height: 18px;font-size: 12px;display:inline-block ;margin-right: 5px;text-align: center;color: #FFFFFF !important;background-image: linear-gradient(270deg, #f9c023 0%, #f83600 100%);border-radius: 0px 10px 0px 0px;margin-top: 2px;}
-
+    .icon.hot:before{width: 25px;height: 20px;background-position: -120px -550px;position: absolute;top: -10px;right: -10px}
+    .brand{color: #9aa5b5;margin: 10px 8px;border: 1px solid #e3ebf7;display: inline-block;padding: 0 10px;border-radius: 2px}
 }
 
 
 @media screen and (max-width:768px) {
-    .instrue-right{width: 100%;background: #fff;padding: 3.2vw 0;}
+    .instrue-right{width: 100%;background: #fff;padding-top:3.2vw;position:relative;}
     .instrue-right .wrap_tittle{padding: 0 3.2vw;color: #909090; font-size: 3.4vw;}
-    .instrue-right .hot-search{padding: 2.7vw;overflow: hidden;height: 3vw;background: #fff;border-radius: 0 0 1.6vw 1.6vw;}
+    .instrue-right .hot-search{padding: 2.7vw;overflow: hidden;height: 7vw;background: #fff;border-radius: 0 0 1.6vw 1.6vw;}
     .instrue-right .hot-search .hot-list{display: inline-block;background: #f7f7f7;color: #4a4f58;font-size: 3.2vw;padding: .7vw 2vw;margin: 0 2.4vw 3.1vw 0;position: relative;}
     .instrue-left{margin-top: 3vw;}
     .top-category{background: #fff;}
-    .top-category .nav-list{display: inline-block;width: 25%;height: 21vw;text-align: center;}
-    .floorTit {padding: 4.8vw 0 2.4vw 3.2vw;position: relative;}
-    .floorTit h2, .floorTit h3 {font-weight: bold;color: #4a4f58;font-size:4.8vw;line-height: 9.7vw}
-    .floorTit h5 {font-weight: normal;color:#93979f;font-size: 3.4vw;line-height: 4.3vw;}
-    .floorCon{margin: auto;width: 97vw;}
-    .floorCon .hotList div a{width: 45.6vw !important;height: 68vw;overflow: hidden;margin: 0 1.3vw 2.6vw 1.3vw;background: #fff;text-align: left;}
-    .hotList div a.img01 img,.hotList div a.img02 img{height: 100%}
-    .hotList div a img {width: 45.6vw;height: 45.6vw}
-    .productItem .name{margin:1vw 0;display: block;padding: 0 3.2vw;height:9.3vw;line-height: 4.8vw;font-size: 3.4vw;vertical-align: middle;word-break: break-all;overflow: hidden;text-overflow: ellipsis;display: -webkit-inline-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;}
-    .productItem .price em{display: block;height: 7vw;line-height: 7vw;color: #4A4F58;font-style: normal;float: left;}
-    .productItem .price .main_price_unde {width: 100%;height: 6.5vw;line-height: 6.5vw;font-size: 3.4vw;color: #4a4f58;text-align: left;float: left;}
-    .productItem .price .price_text_tag {width: 100%;box-sizing: border-box;}
-    .productItem .price .main_price_show{color: #f94b4b}
-    .hotList div.unfold{width: 20vw;height: 6.4vw;margin: 5vw auto;border: .27vw solid #cccccc;color: #909090;font-size: 3vw;line-height: 6.4vw;text-align: center;border-radius: .54vw}
-    .productItem .price .mIcon:before{width:15.8vw;height: 5vw}
-    .productItem .price .mIcon.i5:before {background-position: -84vw -97.5vw;}
-    .productItem .price .mIcon.i1:before {background-position: -84vw -69.5vw;}
-    .productItem .price .mIcon.i2:before {background-position: -84vw -76.5vw;}
-    .productItem .price .mIcon.i3:before {background-position: -84vw -83.7vw;}
-    .productItem .price .mIcon.i4:before {background-position: -84vw -90.7vw;}
-    #recommendBox{width: calc(100%);height:150vw;overflow:hidden;position:relative;}
-    #recommendBox .swiper-pagination{width:100%;height:2.6vw;z-index:1;text-align:center;font-size:0;position:absolute;bottom:2.6vw;left:0}
-    #recommendBox .swiper-pagination .swiper-pagination-bullet{display:block;width:2vw;border-width:1vw 1px;border-color:transparent;cursor:pointer;background:none;font-size:0;opacity:.2}
-    #recommendBox .swiper-pagination .swiper-pagination-bullet:before{content:"";display:block;width:100%;height:.6vw;background:#E15616;border-radius:.3vw}
-    #recommendBox .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active{width:3.8vw;opacity:1}
-    .price {overflow: hidden;    width: 100%;box-sizing: border-box;padding: 0 3.2vw;}
-    .productItem  .price .mIcon {display: inline-block;font-size: 0;height: 5vw;line-height: 5vw;vertical-align: text-bottom;}
-    .mIcon.hot:before{width: 5.3vw;height:4.5vw;background-position: -53.9vw -69.3vw;position: absolute;top: -2.7vw;right: -2.7vw;}
-    .priceTag .tag, .listTag{padding: .5vw 2vw;border: .27vw solid #ffe6dc;background: none;font-size: 2.8vw;float: left;height: 4.2vw;line-height: 4.2vw;}
-    .brand{color: #9aa5b5;margin: 1vw 3.2vw;border: .27vw solid #e3ebf7;display: inline-block;padding: 0 1.3vw;border-radius: .54vw}
-    .floorCon .hotList .imgbaner{width: 93.6vw !important;height: 24vw;margin:1.3vw auto 2.6vw;display: block}
-    .floorCon .hotList .imgbaner img{width: 100%;height: 100%;}
-    .hotList .section_page_main {height: 140vw;overflow: hidden;}
-    .hotList .section_page_main.type{height: 167vw}
-
-    .instrue-ri .open.mIcon:before{width: 5.4vw;height: 5.4vw;background-position: -51vw 0px;transition:none}
-    .close.mIcon:before{width: 5.4vw;height: 5.4vw;background-position: -42vw 0px;transition:none}ght .hot-search .left-box{width: 90%;float: left}
-    .instrue-right .hot-search .right-box{float: right;width: 10%;text-align: center}
+    .top-category .nav-list{display: inline-block;width: 24%;height: 21vw;text-align: center;}
     .item_icon{height: 8.8vw;padding: 2.7vw 0;width: 100%}
     .item_icon img{width: 8.8vw;height: 8.8vw;display: block;margin: 0 auto}
+    .instrue-right .hot-search .right-box{position:absolute;right: 2.7vw;top:3vw;width:10%;text-align:center}
+    .close.mIcon:before{width: 5.4vw;height: 5.4vw;background-position: -42vw 0px;transition:none}ght .hot-search .left-box{width: 90%;float: left}
     .bg{position: fixed;background: rgba(34,39,46, 0.3);left: 0;width: 100%;height: 100%;z-index: 1000;transition: 0.5s;}
+    .mIcon.hot:before{width: 5.3vw;height:4.5vw;background-position: -53.9vw -69.3vw;position: absolute;top: -2.7vw;right: -2.7vw;}
+    .open.mIcon:before{width: 5.4vw;height: 5.4vw;background-position: -51vw 0px;transition:none}
     .noclick{pointer-events: none}
-    .hotList .section_page_main.swiper-wrapper{height: inherit ;}
-    .productItem .name .tag{
-        width: 11.3vw;
-        height: 4.3vw;
-        line-height: 4.3vw;
-        font-size: 2.8vw;
-       display: inline-block;
-        margin-right: 1.3vw;
-        text-align: center;
-        color: #FFFFFF !important;
-        background-image: linear-gradient(270deg,
-                #f9c023 0%,
-                #f83600 100%);
-        border-radius: 0px 10px 0px 0px;
-        margin-top: .25vw;
-    }
 }

+ 12 - 1
src/main/resources/static/css/product/qualityauthorize.css

@@ -66,7 +66,13 @@ ul{margin:0;padding:0;list-style-type:none}
 .sq-book-modal{width:100%;height:100vh;position:fixed;z-index:997;top:0;left:0;background:rgba(0,0,0,.7);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}
 .sq-book-img{width:622px;/*height:467px;*/-webkit-box-shadow:0 10px 28px rgba(255,199,30,.26);box-shadow:0 10px 28px rgba(255,199,30,.26);position:fixed;left:0;right:0;margin:0 auto;top:20%;z-index:998}
 .sq-book-img img{width:100%;height:auto}
-}@media screen and (max-width:768px){body{background:#fff}
+
+.not-found {height: calc(100vh - 80px); display: flex;justify-content: center;align-items: center;flex-direction: column;}
+.not-found img{}
+.not-found p{font-size: 20px;color: #a8a8a8;padding: 60px;text-align: center;}
+}
+
+@media screen and (max-width:768px){body{background:#fff}
 .container{font-size:3.6vw;color:#101010}
 .container-header{display:none}
 .container-content{width:100%}
@@ -108,6 +114,11 @@ ul{margin:0;padding:0;list-style-type:none}
 .sq-book-modal{width:100%;height:100vh;position:fixed;z-index:997;top:0;left:0;background:rgba(0,0,0,.7)}
 .sq-book-img{z-index:998;display:block;width:92vw;/*height:69vw;*/position:fixed;top:41.2vw;left:0;right:0;margin:0 auto;-webkit-box-shadow:0 10px 28px rgba(255,199,30,.26);box-shadow:0 10px 28px rgba(255,199,30,.26)}
 .sq-book-img img{width:100%}
+.not-found{width:100vw;padding-top: 40vw;text-align: center}
+.not-found img{width: 30vw}
+.not-found p{font-size: 4vw;margin-top: 6vw;color: #a8a8a8}
+
+
 }.myZoomIn{-webkit-animation:zoomIn 1s ease;animation:zoomIn 1s ease}
 .myZoomOut{-webkit-animation:zoomOut 1s ease;animation:zoomOut 1s ease}
 @-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}

+ 4 - 4
src/main/resources/static/js/activity/activityTopic.js

@@ -14,7 +14,6 @@ var activity = new Vue({
             userId: '',
             source: 1
         },
-        nav_linkName: '',   //导航名
         isPc: window.isPC
     },
     filters: {
@@ -57,7 +56,7 @@ var activity = new Vue({
             }
         },
         toserch: function (item) {
-            window.location.href = '/product/classify-'+this.typeSort+'-'+item.bigTypeID+'.html?name='+this.nav_linkName
+            window.location.href = '/product/classify-'+this.typeSort+'-'+item.bigTypeID+'.html'
         },
         //查看更多
         showMore: function (page) {
@@ -65,14 +64,15 @@ var activity = new Vue({
         },
         //初始化数据
         init: function () {
-            this.nav_linkName = decodeURI(CAIMEI.getUrlParam('name'));
             //判断用户是否登录
             var userInfo = localStorage.getItem('userInfo');
             if (userInfo) {
                 this.params.userId = JSON.parse(userInfo).userId;
             }
             //获取页面id
-            this.params.pageId = getUrlParam('id');
+            var paramsArr = window.location.pathname.split(".")[0].split("-");
+            var pageId =  paramsArr.length>=1 ? paramsArr[1] : '';
+            this.params.pageId = pageId;
             this.getFloorData()
         },
         //处理商品状态

+ 18 - 29
src/main/resources/static/js/base.js

@@ -50,8 +50,7 @@ var globalHead = new Vue({
         userIdentity:'',
         articleType: '',
         isFiexd:false,
-        classifyIndex:1,
-        nav_linkName:''
+        classifyIndex:1
     },
     methods: {
         changeClassify: function(value){
@@ -199,34 +198,24 @@ var globalHead = new Vue({
             })
         }
         console.log('hello')
-        _self.nav_linkName = decodeURI(CAIMEI.getUrlParam('name'));
-        if(!_self.nav_linkName || _self.nav_linkName.length === 0 || _self.nav_linkName == "undefined") {
-             var paramsArr = window.location.pathname.split(".")[0].split("-");
-             if (paramsArr[0].indexOf('/product/type') >= 0) {
-                 var pageId =  paramsArr.length>=1 ? paramsArr[1] : '';
-                 if (pageId*1 === 287) {
-                    _self.nav_linkName = "产品";
-                 } else if (pageId*1 === 286) {
-                    _self.nav_linkName = "仪器";
-                 }
-             } else if (paramsArr[0].indexOf('/info/center') >= 0){
-                _self.nav_linkName = "信息平台";
-             } else if (paramsArr[0].indexOf('/flea-market') >= 0 && (paramsArr.length>=1 && paramsArr[1].indexOf('market') >= 0)){
-                _self.nav_linkName = "二手市场";
-             } else if (paramsArr[0].indexOf('/investment') >= 0){
-                _self.nav_linkName = "品牌招商";
-             } else if (paramsArr[0].indexOf('/repair') >= 0){
-                _self.nav_linkName = "维修";
-             }
-        }
-        // _self.nav_linkName = window.localStorage.getItem('name');
+        // 判断导航菜单高亮-对比url
         setTimeout(function(){
-            $('.navBox li').each(function () {
-                var _thisName = $(this).find('a').text();
-                if(_self.nav_linkName == _thisName){
-                    $(this).find('a').addClass('on')
-                }
-            });
+            var path = window.location.pathname;
+            var paramsArr = path.split(".")[0].split("-");
+            var key = paramsArr[0].split("/")[1];
+            var pageId =  paramsArr.length>=1 ? paramsArr[1] : '';
+            if(key && key.length>0) {
+                $('.navBox li').each(function () {
+                    var href = $(this).find('a').attr("href");
+                    if (href.indexOf(path)>=0){
+                        $(this).find('a').addClass('on');
+                        return false;
+                    } else if (key != 'product' && key != 'info' && href.indexOf('/'+key)>=0) {
+                        $(this).find('a').addClass('on');
+                        return false;
+                    }
+                });
+            }
         },500);
     }
 });

+ 2 - 1
src/main/resources/static/js/equipment/detail.js

@@ -19,7 +19,8 @@ var equipmentDetail = new Vue({
         }
     },
     created: function () {
-        this.equipmentId = getUrlParam("id") ? getUrlParam("id")*1 : 0;
+        var paramsArr = window.location.pathname.split(".")[0].split("-");
+        this.equipmentId =  paramsArr.length>=1 ? paramsArr[1] : '';
         var userInfo = localStorage.getItem('userInfo');
         if(userInfo){
             this.userId = JSON.parse(userInfo).userId*1;

+ 22 - 21
src/main/resources/static/js/index.js

@@ -19,7 +19,7 @@ var homeData = new Vue({
         // 美博会弹窗链接
         popupPage:function(){
             this.popupFlag=false;
-            window.location.href='/activity/activityTopic.html?id=306&name=美博会';
+            window.location.href='/product/activity-306.html';
             localStorage.setItem('lockTime',Date.now());
             window.localStorage.setItem('isActivityStatus',true);
         },
@@ -138,23 +138,23 @@ var homeData = new Vue({
                 },0)
             },500);
         },
-        showSubNav: function(event){
-            var el = event.currentTarget;
-            var parent = $(el).parent();
-            parent.siblings().removeAttr("style").removeClass("on").find(".navItem").hide();
-            if (parent.hasClass("on")) {
-                parent.removeAttr("style").removeClass("on").find(".navItem").slideUp(200);
-            } else {
-                var height = parent.height();
-                parent.addClass("on").find(".navItem").slideDown(200);
-                if (parent.find(".navItem").length>0) {
-                    setTimeout(function(){
-                        height += parent.find(".navItem").height();
-                        parent.css("height",height);
-                    },200);
-                }
-            }
-        },
+//        showSubNav: function(event){
+//            var el = event.currentTarget;
+//            var parent = $(el).parent();
+//            parent.siblings().removeAttr("style").removeClass("on").find(".navItem").hide();
+//            if (parent.hasClass("on")) {
+//                parent.removeAttr("style").removeClass("on").find(".navItem").slideUp(200);
+//            } else {
+//                var height = parent.height();
+//                parent.addClass("on").find(".navItem").slideDown(200);
+//                if (parent.find(".navItem").length>0) {
+//                    setTimeout(function(){
+//                        height += parent.find(".navItem").height();
+//                        parent.css("height",height);
+//                    },200);
+//                }
+//            }
+//        },
         // 设置页面查看更多按钮显示
         setReadeMore: function(){
             $(".section_page_more").each(function(){
@@ -166,10 +166,10 @@ var homeData = new Vue({
                     if([1,3].indexOf(id) !== -1 && size>7) {
                         readMore = true;
                     }
-                    if([2,4,7].indexOf(id) !== -1 && size>5) {
+                    if([2,4].indexOf(id) !== -1 && size>5) {
                         readMore = true;
                     }
-                    if(5 === id && size>10) {
+                    if([5,6,7].indexOf(id) !== -1 && size>10) {
                         readMore = true;
                     }
                 } else {
@@ -179,7 +179,7 @@ var homeData = new Vue({
                     if([2,4].indexOf(id) !== -1 && size>2) {
                         readMore = true;
                     }
-                    if(5 === id && size>4) {
+                    if([5,6,7].indexOf(id) !== -1 && size>4) {
                         readMore = true;
                     }
                 }
@@ -230,6 +230,7 @@ var homeData = new Vue({
                             if(price.promotions && price.promotions.type*1===1 && price.promotions.mode*1===1){
                                 parent.find(".main_price_show").hide();
                                 parent.find(".main_price_show.none").show();
+                                parent.find(".price_unit").show();
                             }
                         } else if (userIdentity===4 && priceFlag === 2){
                             parent.find(".main_price_show").hide();

+ 136 - 119
src/main/resources/static/js/product/instruement.js

@@ -14,144 +14,154 @@
             userId:'',
             source:1
          },
-         nav_linkName:'',
          isPC:window.isPC
     },
-    filters:{
-         NumFormat:function(value) {//处理金额
-            return Number(value).toFixed(2);
-        },
-    },
-     created: function() {
-
-     },
      methods:{
-         PromotionsFormat:function(promo){//促销活动类型数据处理
-            if(promo!=null){
-                if(promo.type == 1 && promo.mode == 1){
-                    return true
-                }else{
-                    return false
-                }
-            }
-            return false
-        },
         closeup:function(){
             this.showflag = false;
             document.body.style.overflow='';
         },
         showNav:function(){
-        var _this = this;
-        _this.showflag = !_this.showflag;
+            var _this = this;
+            _this.showflag = !_this.showflag;
             if (_this.showflag){
                  document.body.style.overflow='hidden';
             }else {
                 document.body.style.overflow='';
             }
         },
-        toserch:function(item){
-            window.location.href='/product/classify-'+this.typeSort+'-'+item.bigTypeId+'.html?name='+this.nav_linkName
-        },
-        seeMore:function(page){
-             page.isPageMore = !page.isPageMore;
-        },
-        GetHomeFloorData: function(){
-            var _self = this;
-            ProductApi.GethomeData(_self.params,function (res) {
-                 if (res.code == 0 ) {
-                     var data = res.data;
-                     _self.hotlist = data.hotSearchList;
-                     _self.floorList = data.floorList;
-                     _self.typeSort = data.typeSort;
-                     _self.listLoading =false;
-                     _self.floorList.forEach(function(page){
-                         if(page.floorContent) {
-                             if(isPC){
-                                 if(page.floorContent.templateType == '1' || page.floorContent.templateType == '3'){
-                                     if (page.floorImageList.length>7){
-                                         page.isPageMore = true;
-                                     }
-                                 }else if(page.floorContent.templateType == '2' || page.floorContent.templateType == '4' || page.floorContent.templateType == '7'){
-                                     if (page.floorImageList.length>5){
-                                         page.isPageMore = true;
-                                     }
-                                 }else if(page.floorContent.templateType == '5'){
-                                     if (page.floorImageList.length>10){
-                                         page.isPageMore = true;
-                                     }
-                                 }
-                             }else {
-                                 if(page.floorContent.templateType == '1' || page.floorContent.templateType == '3'){
-                                     if (page.floorImageList.length>3){
-                                         page.isPageMore = true;
-                                     }
-                                 }else if(page.floorContent.templateType == '2' || page.floorContent.templateType == '4'){
-                                     if (page.floorImageList.length>2){
-                                         page.isPageMore = true;
-                                     }
-                                 }else if(page.floorContent.templateType == '5'){
-                                     if (page.floorImageList.length>4){
-                                         page.isPageMore = true;
-                                     }
-                                 }
-                             }
-                         }
+        // 商品楼层轮播
+        swiperFloor: function(){
+            setTimeout(function(){
+                // 商品轮播
+                if (isPC) {
+                    var cell = $(".swiper-pagination-floor");
+                    var size = Math.ceil(cell.attr("data-id")/5);
+                    var span = '';
+                    for (var i = 0; i < size; i++) {
+                        span += '<span></span>';
+                    }
+                    cell.html(span);
+                    $('#recommendBox').slide({
+                        mainCell:".recommendBox-wrapper",
+                        titCell:".swiper-pagination-floor span",
+                        effect: "leftLoop",
+                        autoPlay: false,
+                        scroll:5,
+                        vis:5
                     });
-                     _self.SwiperNanner();
-                     _self.getClassify();
-                 }else {
-                     CAIMEI.Alert(res.msg, '确定');
-                 }
-           })
-        },
-         getClassify: function() {
-            var _self = this;
-            PublicApi.GetProductClassify({typeSort:_self.typeSort, source: 'www'}, function (res) {
-                if (res.code == 0) {
-                    _self.categorylist = res.data;
                 } else {
-                    CAIMEI.Alert(res.msg, '确定', false);
+                    var swiper = new Swiper('#recommendBox', {
+                        slidesPerView: 2,
+                        slidesPerColumn: 2,
+                        spaceBetween:0,
+                        slidesPerGroup: 2,
+                        autoplay: {
+                            delay: 3000,
+                            disableOnInteraction: false
+                        },
+                        pagination: {
+                            el: '.swiper-pagination'
+                        }
+                    });
                 }
-            })
-        },
-          SwiperNanner: function(){
-           setTimeout(function(){
                 // 图片懒加载
-                $("img[data-original]").lazyload();
+                setTimeout(function(){
+                    $("#recommendBox img[data-original]").lazyload();
+                },0)
             },500);
-            setTimeout(function(){
+        },
+        // 设置页面查看更多按钮显示
+        setReadeMore: function(){
+            $(".section_page_more").each(function(){
+                var id = $(this).attr('data-id')*1;
+                var size = $(this).attr('data-size')*1;
+                var el = $(this);
+                var readMore = false;
                 if (isPC) {
-                    $('.swiper-container').slide({
-                        mainCell:".swiper-wrapper"
-                        ,titCell:".swiper-pagination span"
-                        ,effect: "leftLoop"
-                        ,interTime: 3000
-                        ,autoPlay: true
-                        ,scroll:5
-                        ,vis:5
-                    });
+                    if([1,3].indexOf(id) !== -1 && size>7) {
+                        readMore = true;
+                    }
+                    if([2,4].indexOf(id) !== -1 && size>5) {
+                        readMore = true;
+                    }
+                    if([5,6,7].indexOf(id) !== -1 && size>10) {
+                        readMore = true;
+                    }
                 } else {
-                     var swiper = new Swiper('.swiper-container', {
-                                slidesPerView: 2,
-                                slidesPerColumn: 2,
-                                spaceBetween:0,
-                                slidesPerGroup: 2,
-                                autoplay: {
-                                    delay: 3000,
-                                    disableOnInteraction: false
-                                },
-                                pagination: {
-                                    el: '.swiper-pagination'
-                                }
-                            });
-
+                    if([1,3].indexOf(id) !== -1 && size>3) {
+                        readMore = true;
+                    }
+                    if([2,4].indexOf(id) !== -1 && size>2) {
+                        readMore = true;
+                    }
+                    if([5,6,7].indexOf(id) !== -1 && size>4) {
+                        readMore = true;
+                    }
                 }
-            },500);
+                if (readMore) {
+                    el.addClass("show");
+                } else {
+                    el.parents(".section_page").find(".section_page_main").addClass("max");
+                }
+            });
+        },
+        // 点击查看更多
+        showMoreItem: function(e){
+            var el = e.currentTarget;
+            $(el).parents(".section_page").find(".section_page_main").addClass("max");
+            $(el).parents(".section_page_more").hide();
+        },
+        // 设置页面商品价格
+        setPriceShown: function(){
+            var productIds = [];
+            var userId = GLOBAL_USER_ID;
+            var shopId = GLOBAL_SHOP_ID;
+            var userIdentity = GLOBAL_USER_IDENTITY;
+            $(".main_price_text").each(function(){
+                var id = $(this).attr('data-id');
+                if (productIds.indexOf(id) === -1) {
+                    productIds .push(id);
+                }
+            });
+            // 获取商品价格列表
+            $.getJSON(coreServer+"/commodity/price/list",{
+                userId: GLOBAL_USER_ID,
+                productIds: productIds.join(',')
+            }).done(function (res) {
+                if (res.code === 0 && res.data) {
+                    var priceList = res.data;
+                    $(".main_price_none").hide();
+                    $(".price_grade_club").hide();
+                    $(".price_grade_shop").hide();
+                    $(".main_price_login").show();
+                    priceList.map(function(price){
+                        // userIdentity用户身份: 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构
+                        // priceFlag: 0公开价格 1不公开价格 2仅对会员机构公开
+                        var parent = $(".main_price_text.product_"+ price.productId);
+                        var priceFlag = parent.find(".main_price_login").attr('data-id')*1;
+                        if (priceFlag===3 || userIdentity===2 || (priceFlag === 0 && userIdentity===4 ) || (userIdentity===3 && shopId === price.shopId*1)) {
+                            parent.find(".price_o_num").text(Number(price.originalPrice).toFixed(2));
+                            parent.find(".price_num").text(Number(price.price).toFixed(2));
+                            if(price.promotions && price.promotions.type*1===1 && price.promotions.mode*1===1){
+                                parent.find(".main_price_show").hide();
+                                parent.find(".main_price_show.none").show();
+                                parent.find(".price_unit").show();
+                            }
+                        } else if (userIdentity===4 && priceFlag === 2){
+                            parent.find(".main_price_show").hide();
+                            parent.find(".price_grade_club").show();
+                        } else {
+                            parent.find(".main_price_show").hide();
+                            parent.find(".price_grade_shop").show();
+                        }
+                    });
+                }
+            });
         }
     },
     mounted: function(){
         var _self = this;
-         //_self.nav_linkName = decodeURI(CAIMEI.getUrlParam('name'));
          var userInfo = localStorage.getItem('userInfo');
          if(userInfo){
              this.params.userId = JSON.parse(userInfo).userId;
@@ -159,12 +169,19 @@
          //this.params.pageId = getUrlParam('id');
          var paramsArr = window.location.pathname.split(".")[0].split("-");
          this.params.pageId =  paramsArr.length>=1 ? paramsArr[1] : '';
-         if (this.params.pageId*1 === 287) {
-            _self.nav_linkName = "产品";
-         } else if (this.params.pageId*1 === 286) {
-            _self.nav_linkName = "仪器";
-         }
-         console.log(_self.nav_linkName);
-         this.GetHomeFloorData();
+        // 设置页面查看更多
+        this.setReadeMore();
+        // 推荐专区商品轮播
+        this.swiperFloor();
+        // 获取设置商品价格
+        if (GLOBAL_USER_ID) {
+            this.setPriceShown();
+        }
+        // Dom加载后
+        this.$nextTick(function(){
+            // 图片懒加载
+            $("img[data-original]").lazyload();
+        });
+
     }
  })

+ 0 - 6
src/main/resources/static/js/product/produce-list.js

@@ -28,7 +28,6 @@ var productList = new Vue({
             pageNum: 1,
             idType:1
         },
-        nav_linkName:'',
         addhtml:'<span class="tag">美博会</span>'
     },
      filters:{
@@ -184,11 +183,6 @@ var productList = new Vue({
     },
     mounted:function () {
         var _self = this;
-        this.nav_linkName = decodeURI(CAIMEI.getUrlParam('name'));
-        // this.bigTypeId = getUrlParam('bigTypeId');
-        // this.smallTypeId = getUrlParam('smallTypeId');
-        // this.tinyTypeId = getUrlParam('tinyTypeId');
-        // var typeSort =  getUrlParam('typeSort');
         var paramsArr = window.location.pathname.split(".")[0].split("-");
         var typeSort =  paramsArr.length>=1 ? paramsArr[1] : '';
         this.bigTypeId = paramsArr.length>=2 ? paramsArr[2] : '';

+ 10 - 3
src/main/resources/static/js/product/qualityauthorize.js

@@ -18,7 +18,9 @@ var qualityAuthorize = new Vue({
         isShowSqBookModal:false,
         sqBookModal:'',
         cmContent:'',
-        isCmComtent:false
+        isCmComtent:false,
+        message:'',
+        isLoading:false
     },
     filters:{
         snCode:function (code) {
@@ -41,10 +43,15 @@ var qualityAuthorize = new Vue({
                 if(res.code === 0){
                     _that.parameters = res.data;
                     console.log(_that.parameters)
+                    _that.isLoading = true;
                 }else{
-                    //如果该产品不存在,跳转到404页面
-                    window.location.href = '/404.html'
+                    _that.message = res.msg;
+                    _that.isLoading = true;
                 }
+                // else{
+                //     //如果该产品不存在,跳转到404页面
+                //     window.location.href = '/404.html'
+                // }
            });
         },
         // 代理声明弹出框

+ 4 - 6
src/main/resources/static/js/product/temporary.js

@@ -13,8 +13,7 @@
             pageId:'',
             userId:'',
             source:1
-         },
-         nav_linkName:''
+         }
     },
     filters:{
          NumFormat:function(value) {//处理金额
@@ -49,7 +48,7 @@
             }
         },
         toserch:function(item){
-            window.location.href='/product/classify-'+this.typeSort+'-'+item.bigTypeID+'.html?name='+this.nav_linkName
+            window.location.href='/product/classify-'+this.typeSort+'-'+item.bigTypeID+'.html';
         },
         seeMore:function(page){
              page.isPageMore = !page.isPageMore;
@@ -149,13 +148,12 @@
     },
     mounted: function(){
         var _self = this;
-         _self.nav_linkName = decodeURI(CAIMEI.getUrlParam('name'));
-         console.log(_self.nav_linkName);
          var userInfo = localStorage.getItem('userInfo');
          if(userInfo){
              this.params.userId = JSON.parse(userInfo).userId;
          }
-         this.params.pageId = getUrlParam('id');
+         var paramsArr = window.location.pathname.split(".")[0].split("-");
+         this.params.pageId =  paramsArr.length>=1 ? paramsArr[1] : '';
          this.GetHomeFloorData();
     }
  })

+ 2 - 1
src/main/resources/templates/index.html

@@ -8,6 +8,7 @@
     <meta name="baidu-site-verification" content="KbkRJg9357"/>
     <link rel="canonical" href="https://www.caimei365.com/"/>
     <template th:replace="components/head-link"></template>
+    <link th:href="@{/css/base/floor.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/index/index_new.h5.css(v=${version})}" media="screen and (max-width:768px)" rel="stylesheet" type="text/css">
     <link th:href="@{/css/index/index_new.pc.css(v=${version})}" media="screen and (min-width:768px)" rel="stylesheet" type="text/css">
     <template th:replace="components/analysis"></template>
@@ -150,7 +151,7 @@
                                                                     <template th:text="*{promotions.name}"></template>
                                                                     <th:block th:if="*{promotions.type}==1 and *{promotions.mode}==1">
                                                                         <!--单品优惠:优惠价-->
-                                                                        :¥<span class="price_num"></span>
+                                                                        <span class="price_unit" style="display:none;">:¥</span><span class="price_num"></span>
                                                                     </th:block>
                                                                 </p>
                                                             </div>

+ 1 - 1
src/main/resources/templates/product/instruelist.html

@@ -79,7 +79,7 @@
             <div class="list-container">
                 <ul class="clear mfw">
                     <li class="productItem " v-for="p in listData">
-                        <a class="image" :href="'/product-'+p.productId+'.html'+'?name='+ nav_linkName">
+                        <a class="image" :href="'/product-'+p.productId+'.html'">
                             <img src="/img/base/placeholder.png" :data-original="p.image" :alt="p.name">
                             <p class="name" v-html="addhtml + p.name" v-if="p.beautyActFlag==1"></p>
                             <p class="name" v-html="p.name" v-else></p>

+ 143 - 603
src/main/resources/templates/product/instrument.html

@@ -4,623 +4,163 @@
 <head>
     <title th:text="'采美365网-'+${pageTitle}">采美365网-产品/仪器</title>
     <template th:replace="components/head-link"></template>
+    <link th:href="@{/css/base/floor.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/product/instruement.css(v=${version})}" rel="stylesheet" type="text/css">
     <template th:replace="components/analysis"></template>
 </head>
 <body>
-    <!-- 引用头部 -->
-    <template th:replace="components/header"></template>
-    <div id="container">
-     <!--loading-->
-        <div id="instrueMent" >
-            <div v-if="listLoading" class="loading">
-                <img src="/img/base/loading.gif">
+<!-- 引用头部 -->
+<template th:replace="components/header"></template>
+<div id="container">
+    <div id="instrueMent" >
+        <div class="instrue-right" th:if="${typeFloorJson.get('hotSearchList')}!=null and ${typeFloorJson.get('hotSearchList').size}>0">
+            <div class="wrap_tittle"> 大家都在搜<span class="line"></span></div>
+            <div v-if="isPC" class="hot-search">
+                <th:block th:each="hotSearch,stat : ${typeFloorJson.get('hotSearchList')}" th:object="${hotSearch}">
+                    <a class="hot-list" th:href="*{link}">
+                        <i th:class="*{isHot}=='1'?'icon hot':'icon'"></i>
+                        <template th:text="*{name}"></template>
+                    </a>
+                </th:block>
             </div>
-            <template v-else>
-                <div class="instrue-right">
-                    <div class="wrap_tittle"> 大家都在搜<span class="line"></span></div>
-                    <template v-if="isPC">
-                        <div class="hot-search">
-                             <a class="hot-list" v-for="(item,index) in hotlist" :href="item.link"><i class="icon"  :class="item.isHot==1?'hot':''"></i>{{item.name}}</a>
-                        </div>
-                    </template>
-                    <template  v-else>
-                        <div class="hot-search" :style="showflag?'height:auto':''">
-                           <div class="left-box">
-                               <a class="hot-list" v-for="(item,index) in hotlist"  :href="item.link"><i class="mIcon" :class="item.isHot==1?'hot':''"></i>{{item.name}}</a>
-                           </div>
-                           <div class="right-box" @click="showNav">
-                              <span class="mIcon" :class="showflag?'close':'open'"></span>
-                           </div>
-                        </div>
-                    </template>
-                    <div :class="showflag?'bg':''" @click="closeup"></div>
-               </div>
-                <div class="instrue-left">
-                    <div class="top-category">
-                        <ul class="normal-nav clearfix">
-                            <li class="nav-list" v-for="(item,index) in categorylist" @click="toserch(item)"><div class="item_icon"><img :src="item.crmIcon"/></div><a>{{item.name}}</a></li>
-                        </ul>
-                    </div>
-                    <div class="page-list" v-for="(page,index) in floorList" >
-                        <div class="floorTit" v-if="page.floorContent">
-                            <h2 :data-id="index+1" v-text="page.title"></h2>
-                            <h5 v-text="page.detail"></h5>
-                        </div>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '1'">
-                             <div class="floorCon">
-                                 <div class="hotList recommend">
-                                    <div class="section_page_main clear mfw" :class="page.isPageMore ? '' : 'max'">
-                                        <a  class="img01 page_main_item" :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
-                                        :class="page.floorContent.adsLink1!='' ? '' : 'default' " >
-                                        <img :src="isPC?page.floorContent.pcAdsImage1:page.floorContent.appletsAdsImage1"/></a>
-                                        <a class="productItem" :href="pros.link" v-for="(pros,index) in page.floorImageList" >
-                                            <img :src="pros.image ? pros.image : '/img/base/placeholder.png'" :data-original="pros.image" :alt="pros.name">
-                                            <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
-                                            <div class="name" target="_blank"><sapn class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</sapn>{{pros.name}}</div>
-                                             <div class="price" v-if="pros.listType == 1">
-                                                <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
-                                                    <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
-                                                    <template v-if="pros.product.productCategory==1">
-                                                        <template v-if="pros.product.priceFlag==1">
-                                                            <div class="price_text_tag">
-                                                                <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                            </div>
-                                                            <div class="main_price_unde">¥价格未公开</div>
-                                                        </template>
-                                                        <template v-else>
-                                                            <template v-if="(pros.product.priceFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                               <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">
-                                                                        {{pros.product.promotions.name}}
-                                                                        <span v-if="pros.priceFlag != 1">:¥{{pros.product.price | NumFormat}}</span>
-                                                                    </p>
-                                                                </div>
-                                                                <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.originalPrice : pros.product.price ) | NumFormat  }}
-                                                            </div>
-                                                            </template>
-                                                            <template v-else-if="pros.product.priceFlag==2 && pros.product.userIdentity==4">
-                                                                <div class="price_text_tag">
-                                                                    <p class="listTag"  v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                                <div class="main_price_unde">¥会员可见</div>
-                                                            </template>
-                                                            <template v-else>
-                                                                <div class="price_text_tag" >
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                                <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                            </template>
-                                                        </template>
-                                                    </template>
-                                                    <template v-else>
-                                                          <div class="price_text_tag"></div>
-                                                          <div class="main_price_show" v-if="pros.product.detailTalkFlag == '2'">¥价格详聊</div>
-                                                          <div class="main_price_show" v-else>¥{{ pros.product.price | NumFormat  }}</div>
-                                                    </template>
-                                                </template>
-                                                <template v-else>
-                                                    <template v-if="pros.product.productCategory == 1">
-                                                        <div class="price_text_tag" >
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                        <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                    </template>
-                                                    <template v-else>
-                                                            <em class="price_grade sec">¥登录可见</em>
-                                                    </template>
-                                                </template>
-                                             </div>
-                                        </a>
-                                    </div>
-                                    <div class="unfold" @click="seeMore(page)" v-if="page.isPageMore">查看更多 ∨</div>
-                                 </div>
-                             </div>
-                       </template>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '2'">
-                             <div class="floorCon">
-                                 <div class="hotList">
-                                    <div class="section_page_main clear mfw" :class="page.isPageMore ? '' : 'max'">
-                                        <a :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
-                                        class="img01 page_main_item" :class="page.floorContent.adsLink1!='' ? '' : 'default' ">
-                                        <img  :src="isPC?page.floorContent.pcAdsImage1:page.floorContent.appletsAdsImage1" alt=""> </a>
-                                        <a :href="page.floorContent.adsLink2" class="img02 page_main_item"><img  :src="isPC?page.floorContent.pcAdsImage2:page.floorContent.appletsAdsImage2" alt=""> </a>
-                                        <a class="productItem" :href="pros.link"  v-for="(pros,index) in page.floorImageList">
-                                            <img src="/img/base/placeholder.png" :data-original="pros.image" :alt="pros.name">
-                                            <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
-                                            <div class="name" target="_blank"><sapn class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</sapn>{{pros.name}}</div>
-                                             <div class="price" v-if="pros.listType == 1">
-                                                <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
-                                                    <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
-                                                     <template v-if="pros.product.productCategory==1">
-                                                        <template v-if="pros.product.priceFlag==1">
-                                                            <div class="price_text_tag">
-                                                                <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                            </div>
-                                                            <div class="main_price_unde">¥价格未公开</div>
-                                                        </template>
-                                                        <template v-else>
-                                                            <template v-if="(pros.product.priceFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                               <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">
-                                                                        {{pros.product.promotions.name}}
-                                                                        <span v-if="pros.priceFlag != 1">:¥{{pros.product.price | NumFormat}}</span>
-                                                                    </p>
-                                                                </div>
-                                                                <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.originalPrice : pros.product.price ) | NumFormat  }}
-                                                            </div>
-                                                            </template>
-                                                            <template v-else-if="pros.product.priceFlag==2 && pros.product.userIdentity==4">
-                                                                <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1" >{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                                <div class="main_price_unde">¥会员可见</div>
-                                                            </template>
-                                                            <template v-else>
-                                                                <div class="price_text_tag">
-                                                                    <p class="listTag"  v-if="pros.product.actStatus==1" >{{pros.product.promotions.name}}</p>
-                                                                 </div>
-                                                                <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                            </template>
-                                                        </template>
-                                                    </template>
-                                                    <template v-else>
-                                                          <div class="price_text_tag"></div>
-                                                          <div class="main_price_show" v-if="pros.product.detailTalkFlag == '2'">¥价格详聊</div>
-                                                          <div class="main_price_show"  v-else>¥{{ pros.product.price | NumFormat  }}</div>
-                                                    </template>
-                                                </template>
-                                                <template v-else>
-                                                    <template v-if="pros.product.productCategory == 1">
-                                                        <div class="price_text_tag">
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                        <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                    </template>
-                                                    <template v-else>
-                                                            <em class="price_grade sec">¥登录可见</em>
-                                                    </template>
-                                                </template>
-                                             </div>
-                                        </a>
-                                    </div>
-                                    <div class="unfold" @click="seeMore(page)" v-if="page.isPageMore">查看更多 ∨</div>
-                                 </div>
-                            </div>
-                        </template>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '3'">
-                            <div class="floorCon">
-                                <div class="hotList">
-                                    <div class="section_page_main type clear mfw" :class="page.isPageMore ? '' : 'max'">
-                                        <a class='imgbaner page_main_item' :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
-                                         :class="page.floorContent.adsLink1!='' ? '' : 'default' "><img :src="isPC?page.floorContent.pcAdsImage1:page.floorContent.appletsAdsImage1"></a>
-                                        <a class="img01 page_main_item" :href="page.floorContent.adsLink2!='' ? page.floorContent.adsLink2 : 'javascript:void(0)'"
-                                        :class="page.floorContent.adsLink2!='' ? '' : 'default' "><img :src="isPC?page.floorContent.pcAdsImage2:page.floorContent.appletsAdsImage2"/></a>
-                                        <a class="productItem" :href="pros.link"  v-for="(pros,index) in page.floorImageList">
-                                            <img src="/img/base/placeholder.png" :data-original="pros.image" :alt="pros.name">
-                                            <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
-                                            <div class="name" target="_blank"><sapn class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</sapn>{{pros.name}}</div>
-                                            <div class="price" v-if="pros.listType == 1">
-                                                <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
-                                                    <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
-                                                     <template v-if="pros.product.productCategory==1">
-                                                        <template v-if="pros.product.priceFlag==1">
-                                                            <div class="price_text_tag">
-                                                                <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                            </div>
-                                                            <div class="main_price_unde">¥价格未公开</div>
-                                                        </template>
-                                                        <template v-else>
-                                                            <template v-if="(pros.product.priceFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                               <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">
-                                                                        {{pros.product.promotions.name}}
-                                                                        <span v-if="pros.priceFlag != 1">:¥{{pros.product.price | NumFormat}}</span>
-                                                                    </p>
-                                                                </div>
-                                                                <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.originalPrice : pros.product.price ) | NumFormat  }}
-                                                            </div>
-                                                            </template>
-                                                            <template v-else-if="pros.product.priceFlag==2 && pros.product.userIdentity==4">
-                                                                <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                                <div class="main_price_unde">¥会员可见</div>
-                                                            </template>
-                                                            <template v-else>
-                                                                <div class="price_text_tag ">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                              <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                            </template>
-                                                        </template>
-                                                    </template>
-                                                    <template v-else>
-                                                          <div class="price_text_tag"></div>
-                                                          <div class="main_price_show" v-if="pros.product.detailTalkFlag == '2'">¥价格详聊</div>
-                                                          <div class="main_price_show" v-else>¥{{ pros.product.price | NumFormat  }}</div>
-                                                    </template>
-                                                </template>
-                                                <template v-else>
-                                                    <template v-if="pros.product.productCategory == 1">
-                                                        <div class="price_text_tag ">
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                       <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                    </template>
-                                                    <template v-else>
-                                                            <em class="price_grade sec">¥登录可见</em>
-                                                    </template>
-                                                </template>
-                                             </div>
-                                        </a>
-                                    </div>
-                                    <div class="unfold" @click="seeMore(page)" v-if="page.isPageMore">查看更多 ∨</div>
+            <div v-else class="hot-search" :style="showflag?'height:auto':''">
+                <div class="left-box">
+                    <th:block th:each="hotSearch,stat : ${typeFloorJson.get('hotSearchList')}" th:object="${hotSearch}">
+                        <a class="hot-list" th:href="*{link}">
+                        <i th:class="*{isHot}=='1'?'mIcon hot':'mIcon'"></i>
+                        <template th:text="*{name}"></template>
+                        </a>
+                    </th:block>
+                </div>
+                <div class="right-box" @click="showNav">
+                    <span class="mIcon" :class="showflag?'close':'open'"></span>
+                </div>
+            </div>
+            <div :class="showflag?'bg':''" @click="closeup"></div>
+        </div>
+        <div class="instrue-left">
+            <div class="top-category">
+                <ul class="normal-nav clearfix" th:if="${bigTypeJson}!=null and ${bigTypeJson.size}>0">
+                    <th:block th:each="bigType,stat : ${bigTypeJson}" th:object="${bigType}">
+                        <li class="nav-list">
+                            <a th:href="'/product/classify-'+${typeSort}+'-'+*{bigTypeId}+'.html'">
+                                <div class="item_icon">
+                                    <img th:src="*{crmIcon}"/>
                                 </div>
-                             </div>
-                        </template>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '4'">
-                            <div class="floorCon">
-                                <div class="hotList">
-                                    <div class="section_page_main type clear mfw"  :class="page.isPageMore ? '' : 'max'">
-                                        <a class='imgbaner page_main_item' :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
-                                         :class="page.floorContent.adsLink1!='' ? '' : 'default' ">
-                                         <img :src="isPC?page.floorContent.pcAdsImage1:page.floorContent.appletsAdsImage1"></a>
-                                        <a class="img01 page_main_item" :href="page.floorContent.adsLink2!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
-                                        :class="page.floorContent.adsLink2!='' ? '' : 'default' ">
-                                        <img :src="isPC?page.floorContent.pcAdsImage2:page.floorContent.appletsAdsImage2"/></a>
-                                        <a class="img02 page_main_item" :href="page.floorContent.adsLink3!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
-                                        :class="page.floorContent.adsLink3!='' ? '' : 'default' ">
-                                        <img :src="isPC?page.floorContent.pcAdsImage3:page.floorContent.appletsAdsImage3"/></a>
-                                        <a class="productItem" :href="pros.link"  v-for="(pros,index) in page.floorImageList">
-                                            <img src="/img/base/placeholder.png" :data-original="pros.image" :alt="pros.name">
-                                            <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
-                                            <div class="name" target="_blank"><sapn class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</sapn>{{pros.name}}</div>
-                                            <div class="price" v-if="pros.listType == 1">
-                                                <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
-                                                    <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
-                                                     <template v-if="pros.product.productCategory==1">
-                                                        <template v-if="pros.product.priceFlag==1">
-                                                            <div class="price_text_tag">
-                                                                <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                            </div>
-                                                            <div class="main_price_unde">¥价格未公开</div>
-                                                        </template>
-                                                        <template v-else>
-                                                            <template v-if="(pros.product.priceFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                               <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">
-                                                                        {{pros.product.promotions.name}}
-                                                                        <span v-if="pros.priceFlag != 1">:¥{{pros.product.price | NumFormat}}</span>
-                                                                    </p>
-                                                                </div>
-                                                                <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.originalPrice : pros.product.price ) | NumFormat  }}
-                                                            </div>
-                                                            </template>
-                                                            <template v-else-if="pros.product.priceFlag==2 && pros.product.userIdentity==4">
-                                                                <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                                <div class="main_price_unde">¥会员可见</div>
-                                                            </template>
-                                                            <template v-else>
-                                                                <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                                <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                            </template>
-                                                        </template>
-                                                    </template>
-                                                    <template v-else>
-                                                          <div class="price_text_tag"></div>
-                                                          <div class="main_price_show" v-if="pros.product.detailTalkFlag == '2'">¥价格详聊</div>
-                                                          <div class="main_price_show" v-else>¥{{ pros.product.price | NumFormat  }}</div>
-                                                    </template>
-                                                </template>
-                                                <template v-else>
-                                                    <template v-if="pros.product.productCategory == 1">
-                                                        <div class="price_text_tag ">
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
+                                <template th:text="*{name}"></template>
+                            </a>
+                        </li>
+                    </th:block>
+                </ul>
+            </div>
+            <div class="section_page" th:each="floor,stat : ${typeFloorJson.get('floorList')}">
+                <th:block th:if="${floor.get('floorContent')}!=null">
+                    <div class="section_page_title">
+                        <h1 th:text="${floor.get('title')}" th:attr="data-id=${stat.index+1}"></h1>
+                        <p th:text="${floor.get('detail')}"></p>
+                    </div>
+                    <th:block th:object="${floor.get('floorContent')}">
+                        <div th:class="*{templateType}==8? 'hotList swiper-container-floor' : ''" th:id="*{templateType}==8? 'recommendBox' : ''">
+                            <div th:class="*{templateType}==8? *{'section_page_main type_08 swiper-wrapper recommendBox-wrapper clear mfw section_'+templateType} : *{'section_page_main clear mfw section_'+templateType}">
+                                <!-- 广告图 -->
+                                <th:block th:if="*{templateType}==1 or *{templateType}==2 or *{templateType}==3 or *{templateType}==4 or *{templateType}==5">
+                                    <a th:href="*{#strings.isEmpty(adsLink1)}? 'javascript:;' : *{adsLink1}" th:attr="target=(*{#strings.isEmpty(adsLink1)} ? '_self' : '_blank')" class="page_main_item ad_01">
+                                        <img v-if="isPC" th:src="*{pcAdsImage1}" alt="" class="page_main_item_adv">
+                                        <img v-else th:src="*{appletsAdsImage1}" alt="" class="page_main_item_adv">
+                                    </a>
+                                </th:block>
+                                <th:block th:if="*{templateType}==2 or *{templateType}==3 or *{templateType}==4">
+                                    <a th:href="*{#strings.isEmpty(adsLink2)}? 'javascript:;' : *{adsLink2}" th:attr="target=(*{#strings.isEmpty(adsLink2)} ? '_self' : '_blank')" class="page_main_item ad_02">
+                                        <img v-if="isPC" th:src="*{pcAdsImage2}" alt="" class="page_main_item_adv">
+                                        <img v-else th:src="*{appletsAdsImage2}" alt="" class="page_main_item_adv">
+                                    </a>
+                                </th:block>
+                                <th:block th:if="*{templateType}==4">
+                                    <a th:href="*{#strings.isEmpty(adsLink3)}? 'javascript:;' : *{adsLink3}" th:attr="target=(*{#strings.isEmpty(adsLink3)} ? '_self' : '_blank')" class="page_main_item ad_03">
+                                        <img v-if="isPC" th:src="*{pcAdsImage3}" alt="" class="page_main_item_adv">
+                                        <img v-else th:src="*{appletsAdsImage3}" alt="" class="page_main_item_adv">
+                                    </a>
+                                </th:block>
+                                <!-- 商品/图片 列表 -->
+                                <th:block th:each="pros : ${floor.get('floorImageList')}"  th:object="${pros}">
+                                    <a th:href="*{link}" class="page_main_item ad_04 swiper-slide" target="_blank">
+                                        <img class="page_main_image" src="/img/base/placeholder.png" th:attr="data-original=*{image}" th:alt="*{name}">
+                                        <div class="page_main_tag" th:if="*{listType}==2"><p th:text="*{label}"></p></div>
+                                        <div class="page_main_text">
+                                            <th:block th:if="${pros.containsKey('product')}">
+                                                <span class="tag" th:if="${pros.get('product').containsKey('beautyActFlag')} and ${pros.get('product').get('beautyActFlag')}==1">美博会</span>
+                                            </th:block>
+                                            <span th:text="${pros.get('name')}"></span>
+                                        </div>
+                                        <div class="page_main_price" th:if="*{listType}==1">
+                                            <th:block th:if="${pros.get('product')}!=null" th:object="${pros.get('product')}">
+                                                <!-- 商品价格 -->
+                                                <div th:attr="class=*{'main_price_text product_'+productId}, data-id=*{productId}">
+                                                    <!-- 正常商品 -->
+                                                    <th:block th:if="*{productCategory}==1">
+                                                        <div class="price_text_tag" th:if="${pros.get('product').containsKey('actStatus')}">
+                                                            <p class="listTag" th:if="*{actStatus}==1 and ${pros.get('product').get('promotions')}!=null">
+                                                                <template th:text="*{promotions.name}"></template>
+                                                                <th:block th:if="*{promotions.type}==1 and *{promotions.mode}==1">
+                                                                    <!--单品优惠:优惠价-->
+                                                                    <span class="price_unit" style="display:none;">:¥</span><span class="price_num"></span>
+                                                                </th:block>
+                                                            </p>
                                                         </div>
-                                                        <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                    </template>
-                                                    <template v-else>
-                                                            <em class="price_grade sec">¥登录可见</em>
-                                                    </template>
-                                                </template>
-                                             </div>
-                                        </a>
-                                    </div>
-                                    <div class="unfold"@click="seeMore(page)" v-if="page.isPageMore" >查看更多 ∨</div>
-                                </div>
-                            </div>
-                        </template>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '5'">
-                            <div class="floorCon">
-                                <div class="hotList">
-                                    <div class="section_page_main type clear mfw" :class="page.isPageMore ? '' : 'max'">
-                                        <a class='imgbaner page_main_item' :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
-                                        :class="page.floorContent.adsLink1!='' ? '' : 'default' "><img :src="isPC?page.floorContent.pcAdsImage1:page.floorContent.appletsAdsImage1"></a>
-                                        <a class="productItem" :href="pros.link"  v-for="(pros,index) in page.floorImageList">
-                                            <img src="/img/base/placeholder.png" :data-original="pros.image" :alt="pros.name">
-                                            <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
-                                            <div class="name" target="_blank"><span class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</span>{{pros.name}}</div>
-                                            <div class="price" v-if="pros.listType == 1">
-                                                <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
-                                                    <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
-                                                     <template v-if="pros.product.productCategory==1">
-                                                        <template v-if="pros.product.priceFlag==1">
-                                                            <div class="price_text_tag">
-                                                                <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                            </div>
-                                                            <div class="main_price_unde">¥价格未公开</div>
-                                                        </template>
-                                                        <template v-else>
-                                                            <template v-if="(pros.product.priceFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                               <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">
-                                                                        {{pros.product.promotions.name}}
-                                                                        <span v-if="pros.priceFlag != 1">:¥{{pros.product.price | NumFormat}}</span>
-                                                                    </p>
-                                                                </div>
-                                                                <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.originalPrice : pros.product.price ) | NumFormat  }}
-                                                            </div>
-                                                            </template>
-                                                            <template v-else-if="pros.product.priceFlag==2 && pros.product.userIdentity==4">
-                                                                <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                                <div class="main_price_unde">¥会员可见</div>
-                                                            </template>
-                                                            <template v-else>
-                                                                <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                                <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                            </template>
-                                                        </template>
-                                                    </template>
-                                                    <template v-else>
-                                                          <div class="price_text_tag"></div>
-                                                          <div class="main_price_show" v-if="pros.product.detailTalkFlag == '2'">¥价格详聊</div>
-                                                          <div class="main_price_show" v-else>¥{{ pros.product.price | NumFormat  }}</div>
-                                                    </template>
-                                                </template>
-                                                <template v-else>
-                                                    <template v-if="pros.product.productCategory == 1">
-                                                        <div class="price_text_tag">
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
+                                                        <div class="main_price_none">
+                                                            <em class="price_grade"><span class="bold">¥</span><i th:attr="class=*{'icon mIcon price_grade_'+priceGrade}"></i></em>
                                                         </div>
-                                                       <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                    </template>
-                                                    <template v-else>
-                                                            <em class="price_grade sec">¥登录可见</em>
-                                                    </template>
-                                                </template>
-                                             </div>
-                                        </a>
-                                    </div>
-                                    <div class="unfold" @click="seeMore(page)" v-if="page.isPageMore">查看更多 ∨</div>
-                                </div>
-                             </div>
-                        </template>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '6'">
-                            <div class="floorCon">
-                                <div class="hotList">
-                                    <div class="section_page_main clear mfw" :class="page.isPageMore ? '' : 'max'">
-                                        <a class="productItem" :href="pros.link"  v-for="(pros,index) in page.floorImageList">
-                                            <img src="/img/base/placeholder.png" :data-original="pros.image" :alt="pros.name">
-                                            <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
-                                            <div class="name" target="_blank"><sapn class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</sapn>{{pros.name}}</div>
-                                            <div class="price" v-if="pros.listType == 1">
-                                                <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
-                                                    <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
-                                                     <template v-if="pros.product.productCategory==1">
-                                                        <template v-if="pros.product.priceFlag==1">
-                                                            <div class="price_text_tag">
-                                                                <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                            </div>
-                                                            <div class="main_price_unde">¥价格未公开</div>
-                                                        </template>
-                                                        <template v-else>
-                                                            <template v-if="(pros.product.priceFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                               <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">
-                                                                        {{pros.product.promotions.name}}
-                                                                        <span v-if="pros.priceFlag != 1">:¥{{pros.product.price | NumFormat}}</span>
-                                                                    </p>
-                                                                </div>
-                                                                <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.originalPrice : pros.product.price ) | NumFormat  }}
-                                                            </div>
-                                                            </template>
-                                                            <template v-else-if="pros.product.priceFlag==2 && pros.product.userIdentity==4">
-                                                                <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                                <div class="main_price_unde">¥会员可见</div>
-                                                            </template>
-                                                            <template v-else>
-                                                                <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                               <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                            </template>
-                                                        </template>
-                                                    </template>
-                                                    <template v-else>
-                                                          <div class="price_text_tag"></div>
-                                                          <div class="main_price_show" v-if="pros.product.detailTalkFlag == '2'">¥价格详聊</div>
-                                                          <div class="main_price_show" v-else>¥{{ pros.product.price | NumFormat  }}</div>
-                                                    </template>
-                                                </template>
-                                                <template v-else>
-                                                    <template v-if="pros.product.productCategory == 1">
-                                                        <div class="price_text_tag">
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
+                                                        <div class="main_price_login" th:attr="data-id=*{priceFlag}">
+                                                            <!--0公开价格 1不公开价格 2仅对会员机构公开-->
+                                                            <em th:if="*{priceFlag}==1" class="price_grade"><span>¥</span>价格未公开</em>
+                                                            <th:block th:unless="*{priceFlag}==1">
+                                                                <em class="price_grade_club"><span>¥</span>会员可见</em>
+                                                                <!--机构价-->
+                                                                <div class="main_price_show">¥<span class="price_num"></span></div>
+                                                                <!--单品优惠时的划线价-->
+                                                                <div class="main_price_show none">¥<span class="price_o_num"></span></div>
+                                                                <!--供应商除自己的商品外,也显示价格等级-->
+                                                                <em class="price_grade_shop"><span class="bold">¥</span><i th:attr="class=*{'icon mIcon price_grade_'+priceGrade}"></i></em>
+                                                            </th:block>
                                                         </div>
-                                                        <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                    </template>
-                                                    <template v-else>
-                                                            <em class="price_grade sec">¥登录可见</em>
-                                                    </template>
-                                                </template>
-                                             </div>
-                                        </a>
-                                    </div>
-                                     <a class='imgbaner page_main_item' :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)'"
-                                     :class="page.floorContent.adsLink1!='' ? '' : 'default' "><img :src="isPC?page.floorContent.pcAdsImage1:page.floorContent.appletsAdsImage1"></a>
-                                    <div class="unfold" @click="seeMore(page)" v-if="page.isPageMore">查看更多 ∨</div>
-                                </div>
-                             </div>
-                        </template>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '7'">
-                            <div class="floorCon">
-                                <div class="hotList">
-                                    <div class="section_page_main clear mfw" :class="page.isPageMore ? '' : 'max'">
-                                        <a class="productItem" :href="pros.link"  v-for="(pros,index) in page.floorImageList">
-                                            <img src="/img/base/placeholder.png" :data-original="pros.image" :alt="pros.name">
-                                            <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
-                                            <div class="name" target="_blank"><span class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</span>{{pros.name}}</div>
-                                            <div class="price" v-if="pros.listType == 1">
-                                                <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
-                                                    <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
-                                                     <template v-if="pros.product.productCategory==1">
-                                                        <template v-if="pros.product.priceFlag==1">
-                                                            <div class="price_text_tag">
-                                                                <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                            </div>
-                                                            <div class="main_price_unde">¥价格未公开</div>
-                                                        </template>
-                                                        <template v-else>
-                                                            <template v-if="(pros.product.priceFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                               <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">
-                                                                        {{pros.product.promotions.name}}
-                                                                        <span v-if="pros.priceFlag != 1">:¥{{pros.product.price | NumFormat}}</span>
-                                                                    </p>
-                                                                </div>
-                                                                <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.originalPrice : pros.product.price ) | NumFormat  }}
-                                                            </div>
-                                                            </template>
-                                                            <template v-else-if="pros.product.priceFlag==2 && pros.product.userIdentity==4">
-                                                                <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                                <div class="main_price_unde">¥会员可见</div>
-                                                            </template>
-                                                            <template v-else>
-                                                                <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                               <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                            </template>
-                                                        </template>
-                                                    </template>
-                                                    <template v-else>
-                                                          <div class="price_text_tag"></div>
-                                                          <div class="main_price_show" v-if="pros.product.detailTalkFlag == '2'">¥价格详聊</div>
-                                                          <div class="main_price_show" v-else>¥{{ pros.product.price | NumFormat  }}</div>
-                                                    </template>
-                                                </template>
-                                                <template v-else>
-                                                    <template v-if="pros.product.productCategory == 1">
-                                                        <div class="price_text_tag">
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
+                                                    </th:block>
+                                                    <!-- 二手商品 -->
+                                                    <th:block th:if="*{productCategory}!=1">
+                                                        <div class="main_price_none sec">
+                                                            <em class="price_grade"><span>¥</span>登录可见</em>
                                                         </div>
-                                                        <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                    </template>
-                                                    <template v-else>
-                                                            <em class="price_grade sec">¥登录可见</em>
-                                                    </template>
-                                                </template>
-                                             </div>
-                                        </a>
-                                    </div>
-                                </div>
-                             </div>
-                        </template>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '8'">
-                            <div class="floorCon">
-                                <div class="hotList swiper-container" id="recommendBox">
-                                    <div class="section_page_main clear mfw swiper-wrapper" :class="page.isPageMore ? '' : 'max'">
-                                        <a class="productItem swiper-slide" :href="pros.link"  v-for="(pros,index) in page.floorImageList">
-                                            <img :src="pros.image" :alt="pros.name">
-                                            <span class="brand" v-if="pros.listType == 2">{{ pros.label }}</span>
-                                            <div class="name" target="_blank"><sapn class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</sapn>{{pros.name}}</div>
-                                            <div class="price" v-if="pros.listType == 1">
-                                                <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
-                                                    <!--用户身份 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构-->
-                                                     <template v-if="pros.product.productCategory==1">
-                                                        <template v-if="pros.product.priceFlag==1">
-                                                            <div class="price_text_tag">
-                                                                <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                            </div>
-                                                            <div class="main_price_unde">¥价格未公开</div>
-                                                        </template>
-                                                        <template v-else>
-                                                            <template v-if="(pros.product.priceFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                               <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">
-                                                                        {{pros.product.promotions.name}}
-                                                                        <span v-if="pros.priceFlag != 1">:¥{{pros.product.price | NumFormat}}</span>
-                                                                    </p>
-                                                                </div>
-                                                                <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.originalPrice : pros.product.price ) | NumFormat  }}
-                                                            </div>
-                                                            </template>
-                                                            <template v-else-if="pros.product.priceFlag==2 && pros.product.userIdentity==4">
-                                                                <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                                <div class="main_price_unde">¥会员可见</div>
-                                                            </template>
-                                                            <template v-else>
-                                                                <div class="price_text_tag">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                                <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                            </template>
-                                                        </template>
-                                                    </template>
-                                                    <template v-else>
-                                                          <div class="price_text_tag"></div>
-                                                          <div class="main_price_show" v-if="pros.product.detailTalkFlag == '2'">¥价格详聊</div>
-                                                          <div class="main_price_show" v-else>¥{{ pros.product.price | NumFormat  }}</div>
-                                                    </template>
-                                                </template>
-                                                <template v-else>
-                                                    <template v-if="pros.product.productCategory == 1">
-                                                        <div class="price_text_tag" >
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
+                                                        <div class="main_price_login" data-id="3">
+                                                            <div class="price_text_tag"></div>
+                                                            <div th:if="*{detailTalkFlag}==2" class="main_price_show">¥价格祥聊</div>
+                                                            <div th:if="*{detailTalkFlag}!=2" class="main_price_show">¥<span class="price_num"></span></div>
                                                         </div>
-                                                        <div class=" price_grade"><span class="bold">¥</span><i :class="'icon mIcon i'+pros.product.priceGrade"></i></div>
-                                                    </template>
-                                                    <template v-else>
-                                                            <em class="price_grade sec">¥登录可见</em>
-                                                    </template>
-                                                </template>
-                                             </div>
-                                        </a>
-                                    </div>
-                                   <div class="swiper-pagination mfc"> <span v-if="isPC" v-for="i in  Math.ceil(page.floorImageList.length / 5)"></span></div>
-                                </div>
-                             </div>
-                        </template>
-                    </div>
-                </div>
-            </template>
+                                                    </th:block>
+                                                </div>
+                                            </th:block>
+                                        </div>
+                                    </a>
+                                </th:block>
+                                <!-- 广告图 -->
+                                <th:block th:if="*{templateType}==6">
+                                    <a th:href="*{#strings.isEmpty(adsLink1)}? 'javascript:;' : *{adsLink1}" th:attr="target=(*{#strings.isEmpty(adsLink1)} ? '_self' : '_blank')" class="page_main_item ad_01">
+                                        <img v-if="isPC" th:src="*{pcAdsImage1}" alt="" class="page_main_item_adv">
+                                        <img v-else th:src="*{appletsAdsImage1}" alt="" class="page_main_item_adv">
+                                    </a>
+                                </th:block>
+                            </div>
+                            <div th:if="*{templateType}==8" class="swiper-pagination swiper-pagination-floor mfc" th:attr="data-id=${floor.get('floorImageList').size}"></div>
+                        </div>
+                        <div class="section_page_more" th:attr="data-id=*{templateType}, data-size=${floor.get('floorImageList').size}">
+                            <div class="more" @click="showMoreItem($event)"> <i class="icon mIcon"></i>查看更多</div>
+                        </div>
+                    </th:block>
+                </th:block>
+            </div>
         </div>
     </div>
+</div>
 
-    <!-- 引入底部 -->
+<!-- 引入底部 -->
 <template th:replace="components/footer"></template>
 <template th:replace="components/foot-link"></template>
 <script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/product.service.js(v=${version})}"></script>

+ 31 - 17
src/main/resources/templates/product/qualityauthorize.html

@@ -10,16 +10,16 @@
 <input type="hidden" th:value="${spiServer}" id="spiServer">
 <input type="hidden" th:value="${agent}" id="userAgent">
 <div class="container" id="qualityAuthorize">
-    <template v-if="parameters">
-        <!-- 顶部logo区域 -->
-        <div class="container-header clear">
-            <div class="header-top">
-                <div class="inner">
-                    <div class="logo"><img src="/img/quality/icon-logo.png" alt=""></div>
-                </div>
+    <!-- 顶部logo区域 -->
+    <div class="container-header clear">
+        <div class="header-top">
+            <div class="inner">
+                <div class="logo"><img src="/img/quality/icon-logo.png" alt=""></div>
             </div>
         </div>
-        <!-- 顶部logo区域end-->
+    </div>
+    <!-- 顶部logo区域end-->
+    <template v-if="parameters">
         <!-- 主体内容区域 -->
         <div class="container-content">
             <div class="container-main fl-clear">
@@ -28,7 +28,8 @@
                     <img class="product-img" :src="isPC?parameters.pcImage:parameters.appletsImage">
                     <div class="origin-logo-box"><img class="product-brand" :src="parameters.authLogo"></div>
                     <img class="product-authorize" src="/img/quality/pro-authorization.png">
-                    <img class="sq-book" @click="showSqBookModal" v-show="!isShowSqBookModal" :src="isPC?parameters.appletsCertificateImage:parameters.appletsCertificateImage">
+                    <img class="sq-book" @click="showSqBookModal" v-show="!isShowSqBookModal"
+                         :src="isPC?parameters.appletsCertificateImage:parameters.appletsCertificateImage">
                 </div>
                 <!-- 商品介绍区域 -->
                 <div class="product-desc">
@@ -38,7 +39,8 @@
                         <div class="item-row"><span>品牌:{{parameters.brandName}}</span></div>
                         <div class="fl-clear">
                             <span class="fl-left">产地:{{parameters.productionPlace}}</span>
-                            <a class="fl-right" target="_blank" :href="parameters.securityLink" v-if="parameters.securityLink">官网认证>></a></div>
+                            <a class="fl-right" target="_blank" :href="parameters.securityLink"
+                               v-if="parameters.securityLink">官网认证>></a></div>
                     </div>
                     <!-- 代理声明区域-->
                     <div class="default-box" v-if="parameters.shopType === 2">
@@ -51,10 +53,13 @@
                             <!-- 图片 -->
                             <a :href="parameters.statementImage" target="_blank" v-if="parameters.statementType === 3">代理声明>></a>
                             <!-- 文件 -->
-                            <a :href="parameters.statementFile.url" target="_blank" v-if="parameters.statementType === 4" :download="parameters.statementFile.name">代理声明>></a>
+                            <a :href="parameters.statementFile.url" target="_blank"
+                               v-if="parameters.statementType === 4"
+                               :download="parameters.statementFile.name">代理声明>></a>
                         </div>
                     </div>
-                    <p>该仪器由{{parameters.agentFlag !== 0 ? parameters.shopName : parameters.brandName}}授予{{parameters.authParty}}正品拥有</p>
+                    <p>该仪器由{{parameters.agentFlag !== 0 ? parameters.shopName :
+                        parameters.brandName}}授予{{parameters.authParty}}正品拥有</p>
                     <div class="pink-box sn-number">
                         <div class="item-row"><span>SN码:{{parameters.snCode | snCode}}</span></div>
                     </div>
@@ -98,19 +103,28 @@
                 <div class="content" v-html="cmContent" else></div>
             </div>
         </div>
-        <div class="float-zplm"><a target="_blank" href="https://www-b.caimei365.com/topic-6.html?name=%E6%AD%A3%E5%93%81%E8%81%94%E7%9B%9F"><img src="/img/quality/float-img.png"></a></div>
+        <div class="float-zplm"><a target="_blank"
+                                   href="https://www-b.caimei365.com/topic-6.html?name=%E6%AD%A3%E5%93%81%E8%81%94%E7%9B%9F"><img
+                src="/img/quality/float-img.png"></a></div>
 
         <!--授权图模态框-->
         <div class="sq-book-modal" @click="hideSqBookModal" v-show="isShowSqBookModal" id="sq-book-modal"></div>
         <transition enter-active-class="myZoomIn" leave-active-class="myZoomOut">
-            <div class="sq-book-img myZoomIn"  v-show="isShowSqBookModal">
-                    <i class="close" @click="hideSqBookModal"></i>
-                    <img :src="isPC?parameters.appletsCertificateImage:parameters.appletsCertificateImage">
+            <div class="sq-book-img myZoomIn" v-show="isShowSqBookModal">
+                <i class="close" @click="hideSqBookModal"></i>
+                <img :src="isPC?parameters.appletsCertificateImage:parameters.appletsCertificateImage">
             </div>
         </transition>
     </template>
+    <template v-else>
+        <div class="not-found" v-if="isLoading">
+            <img src="https://static.caimei365.com/www/not-found.png">
+            <p>该商品授权信息不存在!</p>
+        </div>
+    </template>
 </div><!-- 引入底部 -->
 <template th:replace="components/foot-link"></template>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/product.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript"
+        th:src="@{/js/common/serviceapi/product.service.js(v=${version})}"></script>
 <script charset="utf-8" type="text/javascript" th:src="@{/js/product/qualityauthorize.js(v=${version})}"></script>
 </body>