Parcourir la source

Merge remote-tracking branch 'remotes/origin/developer' into developerA

# Conflicts:
#	src/main/resources/static/js/index.js
#	target/www-0.0.1-SNAPSHOT.jar
Aslee il y a 4 ans
Parent
commit
a2c4bb7e3a
100 fichiers modifiés avec 1871 ajouts et 2426 suppressions
  1. 8 1
      pom.xml
  2. 30 0
      src/main/java/com/caimei/www/config/MyCommandLineRunner.java
  3. 4 0
      src/main/java/com/caimei/www/controller/BaseController.java
  4. 37 0
      src/main/java/com/caimei/www/controller/GenerateApi.java
  5. 17 30
      src/main/java/com/caimei/www/controller/unlimited/HomeController.java
  6. 1 0
      src/main/java/com/caimei/www/mapper/BaseDao.java
  7. 31 26
      src/main/java/com/caimei/www/mapper/HomeDao.java
  8. 17 1
      src/main/java/com/caimei/www/pojo/page/TopMenu.java
  9. 26 0
      src/main/java/com/caimei/www/service/generate/GenerateHtml.java
  10. 227 0
      src/main/java/com/caimei/www/service/generate/impl/GenerateHtmlImpl.java
  11. 7 0
      src/main/java/com/caimei/www/service/page/BaseService.java
  12. 10 4
      src/main/java/com/caimei/www/service/page/HomeService.java
  13. 41 9
      src/main/java/com/caimei/www/service/page/impl/BaseServiceImpl.java
  14. 40 41
      src/main/java/com/caimei/www/service/page/impl/HomeServiceImpl.java
  15. 238 0
      src/main/java/com/caimei/www/utils/AppletsLinkUtil.java
  16. 116 0
      src/main/java/com/caimei/www/utils/RequestUtil.java
  17. 4 3
      src/main/resources/application.yml
  18. 1 0
      src/main/resources/config/beta/application-beta.yml
  19. 2 4
      src/main/resources/config/dev/application-dev.yml
  20. 1 0
      src/main/resources/config/prod/application-prod.yml
  21. 3 2
      src/main/resources/mapper/BaseMapper.xml
  22. 89 83
      src/main/resources/mapper/HomeMapper.xml
  23. 2 1
      src/main/resources/static/css/activity/activityTopic.css
  24. 1 0
      src/main/resources/static/css/base/base.h5.css
  25. 1 0
      src/main/resources/static/css/base/base.pc.css
  26. 72 356
      src/main/resources/static/css/index/index_new.h5.css
  27. 95 507
      src/main/resources/static/css/index/index_new.pc.css
  28. 5 0
      src/main/resources/static/js/account/register-supplier.js
  29. 1 1
      src/main/resources/static/js/activity/activityTopic.js
  30. 55 78
      src/main/resources/static/js/base.js
  31. 14 4
      src/main/resources/static/js/common/serviceapi/utils.service.js
  32. 3 0
      src/main/resources/static/js/flea-market/list.js
  33. 6 4
      src/main/resources/static/js/flea-market/secondDetail.js
  34. 170 178
      src/main/resources/static/js/index.js
  35. 44 20
      src/main/resources/static/js/pay/caimei-weisapay.js
  36. 15 15
      src/main/resources/static/js/supplier-center/setting/information.js
  37. 44 47
      src/main/resources/static/js/user-center/setting/upgrade.js
  38. 2 1
      src/main/resources/templates/account/bind.html
  39. 1 1
      src/main/resources/templates/account/components/header.html
  40. 2 1
      src/main/resources/templates/account/forget.html
  41. 4 3
      src/main/resources/templates/account/login.html
  42. 2 1
      src/main/resources/templates/account/register-club.html
  43. 9 6
      src/main/resources/templates/account/register-supplier.html
  44. 2 1
      src/main/resources/templates/account/register.html
  45. 3 3
      src/main/resources/templates/account/supplier-information.html
  46. 2 1
      src/main/resources/templates/account/upgrade.html
  47. 6 5
      src/main/resources/templates/activity/activityTopic.html
  48. 0 3
      src/main/resources/templates/article/components/article-link.html
  49. 4 3
      src/main/resources/templates/article/detail.html
  50. 2 3
      src/main/resources/templates/article/list.html
  51. 4 0
      src/main/resources/templates/components/analysis.html
  52. 5 5
      src/main/resources/templates/components/footer.html
  53. 0 5
      src/main/resources/templates/components/head-link.html
  54. 52 53
      src/main/resources/templates/components/header.html
  55. 1 0
      src/main/resources/templates/document/details.html
  56. 1 0
      src/main/resources/templates/document/list.html
  57. 1 0
      src/main/resources/templates/document/login.html
  58. 1 0
      src/main/resources/templates/document/more-content.html
  59. 1 0
      src/main/resources/templates/document/pdfdetails.html
  60. 3 2
      src/main/resources/templates/equipment/detail.html
  61. 1 0
      src/main/resources/templates/equipment/list.html
  62. 1 1
      src/main/resources/templates/error/404.html
  63. 9 8
      src/main/resources/templates/flea-market/detail.html
  64. 2 1
      src/main/resources/templates/flea-market/form.html
  65. 2 1
      src/main/resources/templates/flea-market/intro.html
  66. 3 2
      src/main/resources/templates/flea-market/list.html
  67. 2 1
      src/main/resources/templates/help/help.html
  68. 2 2
      src/main/resources/templates/help/select.html
  69. 208 867
      src/main/resources/templates/index.html
  70. 1 0
      src/main/resources/templates/pay/caimei-pay.html
  71. 2 1
      src/main/resources/templates/pay/caimei-paycash.html
  72. 1 0
      src/main/resources/templates/pay/caimei-paymobile.html
  73. 1 0
      src/main/resources/templates/pay/caimei-starspay.html
  74. 2 1
      src/main/resources/templates/pay/caimei-success.html
  75. 2 1
      src/main/resources/templates/pay/caimei-wechatpay.html
  76. 1 0
      src/main/resources/templates/pay/caimei-wisapay.html
  77. 1 6
      src/main/resources/templates/pay/components/pay-link.html
  78. 2 1
      src/main/resources/templates/product/beautytopic.html
  79. 1 0
      src/main/resources/templates/product/detail.html
  80. 6 6
      src/main/resources/templates/product/instruelist.html
  81. 1 0
      src/main/resources/templates/product/instrument.html
  82. 1 0
      src/main/resources/templates/product/list.html
  83. 1 0
      src/main/resources/templates/product/promotions.html
  84. 1 0
      src/main/resources/templates/product/qualityauthorize.html
  85. 1 0
      src/main/resources/templates/product/temporary.html
  86. 2 1
      src/main/resources/templates/shopping/cart.html
  87. 2 1
      src/main/resources/templates/shopping/confirm.html
  88. 1 0
      src/main/resources/templates/single-page/investment.html
  89. 3 2
      src/main/resources/templates/single-page/live.html
  90. 3 2
      src/main/resources/templates/single-page/page.html
  91. 1 0
      src/main/resources/templates/single-page/promotions.html
  92. 1 0
      src/main/resources/templates/single-page/repair.html
  93. 3 2
      src/main/resources/templates/single-page/topic.html
  94. 2 1
      src/main/resources/templates/supplier-center/dashboard.html
  95. 2 1
      src/main/resources/templates/supplier-center/message/list.html
  96. 2 1
      src/main/resources/templates/supplier-center/operation/form.html
  97. 2 1
      src/main/resources/templates/supplier-center/operation/list.html
  98. 2 1
      src/main/resources/templates/supplier-center/order/delivery-record.html
  99. 2 1
      src/main/resources/templates/supplier-center/order/delivery.html
  100. 2 1
      src/main/resources/templates/supplier-center/order/detail.html

+ 8 - 1
pom.xml

@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>2.3.4.RELEASE</version>
+        <version>2.4.3</version>
         <relativePath/> <!-- lookup parent from repository -->
     </parent>
     <groupId>com.caimei</groupId>
@@ -126,6 +126,13 @@
             <version>3.10.2</version>
         </dependency>
 
+        <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.8.0</version>
+        </dependency>
+
     </dependencies>
 
 

+ 30 - 0
src/main/java/com/caimei/www/config/MyCommandLineRunner.java

@@ -0,0 +1,30 @@
+package com.caimei.www.config;
+
+import com.caimei.www.service.generate.GenerateHtml;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/5/11
+ */
+@Slf4j
+@Component
+@Order(value = 10)
+public class MyCommandLineRunner implements CommandLineRunner {
+    @Resource
+    private GenerateHtml generateHtml;
+
+	@Override
+	public void run(String... args) throws Exception {
+		log.info("执行MyCommandLineRunner:拷贝静态文件!");
+		// 拷贝静态资源文件
+        generateHtml.generateStaticFiles();
+    }
+}

+ 4 - 0
src/main/java/com/caimei/www/controller/BaseController.java

@@ -1,5 +1,6 @@
 package com.caimei.www.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.caimei.www.pojo.page.BaseLink;
 import com.caimei.www.pojo.page.TopMenu;
 import com.caimei.www.service.page.BaseService;
@@ -64,6 +65,9 @@ public class BaseController {
 		// 头部菜单
 		List<TopMenu> menuList = baseService.getNavMenu();
 		model.addAttribute("topMenuList", menuList);
+		// 分类菜单
+		List<JSONObject> classifyList = baseService.getClassifyJson();
+		model.addAttribute("classifyJson", classifyList);
 		// 底部帮助页
 		List<BaseLink> helpPages = baseService.getHelpPages();
 		model.addAttribute("helpPages", helpPages);

+ 37 - 0
src/main/java/com/caimei/www/controller/GenerateApi.java

@@ -0,0 +1,37 @@
+package com.caimei.www.controller;
+
+import com.caimei.www.service.generate.GenerateHtml;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.server.ServerWebExchange;
+
+import javax.annotation.Resource;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/5/7
+ */
+@RestController
+public class GenerateApi {
+    @Resource
+    private GenerateHtml generateHtml;
+
+    /**
+     * 生成静态首页
+     */
+    @PostMapping("/generate/home")
+    public  String generateStaticHome(ServerWebExchange exchange) {
+        return generateHtml.generateStaticHome(exchange);
+    }
+
+    /**
+     * 拷贝静态资源文件
+     */
+    @PostMapping("/generate/static")
+    public  String generateStaticFiles() {
+        return generateHtml.generateStaticFiles();
+    }
+
+}

+ 17 - 30
src/main/java/com/caimei/www/controller/unlimited/HomeController.java

@@ -3,16 +3,17 @@ package com.caimei.www.controller.unlimited;
 import com.caimei.www.controller.BaseController;
 import com.caimei.www.pojo.page.ImageLink;
 import com.caimei.www.pojo.JsonModel;
-import com.caimei.www.pojo.page.PageFloor;
-import com.caimei.www.pojo.page.ProductList;
+import com.caimei.www.service.page.BaseService;
 import com.caimei.www.service.page.HomeService;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Description(接口已搬至spi)
@@ -20,6 +21,7 @@ import java.util.List;
  * @author : Charles
  * @date : 2020/6/15
  */
+@Slf4j
 @Controller
 public class HomeController extends BaseController {
 
@@ -28,12 +30,10 @@ public class HomeController extends BaseController {
 	private static final String ERROR_PATH = "error/404";
 	private static final String SEARCH_CHILDREN = "error/search_children";
 
-
+    @Resource
+    private BaseService baseService;
+    @Resource
     private HomeService homeService;
-    @Autowired
-    public void setHomeService(HomeService homeService) {
-        this.homeService = homeService;
-    }
 
     /**
      * 首页页面路径
@@ -42,6 +42,15 @@ public class HomeController extends BaseController {
      */
     @GetMapping("/index.html")
     public String home(final Model model) {
+		// 获取banner图
+		List<ImageLink> bannerList = homeService.getHomeBanners();
+		// 首页楼层
+		Map<String, Object> floorMap = homeService.getHomeFloors();
+		// 右侧侧边栏数据
+        Map<String, Object> sideMap = homeService.getHomeSideJson();
+        model.addAttribute("bannerList", bannerList);
+		model.addAttribute("floorJson", floorMap);
+		model.addAttribute("sideJson", sideMap);
         model.addAttribute("msg", "首页");
         return HOME_PATH;
     }
@@ -64,28 +73,6 @@ public class HomeController extends BaseController {
         return SEARCH_CHILDREN;
     }
 
-    /**
-     * 首页推荐专区
-     * @return
-     */
-/*
-    @GetMapping("/home/recommend")
-    @ResponseBody
-    public JsonModel<List<ProductList>> getRecommendProducts() {
-        return homeService.getRecommendProducts();
-    }
-*/
-
-    /**
-     * 首页楼层专题数据
-     * @return
-     */
-    @GetMapping("/home/floor")
-    @ResponseBody
-    public JsonModel<List<PageFloor>> getHomePageFloorData() {
-        return homeService.getHomePageFloorData();
-    }
-
     /**
      * 首页左侧广告图
      * @return

+ 1 - 0
src/main/java/com/caimei/www/mapper/BaseDao.java

@@ -41,4 +41,5 @@ public interface BaseDao {
      * 获取友情链接
      */
     List<BaseLink> getFriendLinks();
+
 }

+ 31 - 26
src/main/java/com/caimei/www/mapper/HomeDao.java

@@ -17,36 +17,41 @@ import java.util.List;
 @Mapper
 public interface HomeDao {
     /**
-     * 首页楼层
+     * 首页轮播
      */
-    List<PageFloor> getHomePageFloor();
-    /**
-     * 大专题二级楼层
-     */
-    List<PageFloor> getHomeBigTopicFloor();
+    List<ImageLink> getHomeBanners();
     /**
      * 首页左侧广告图
      */
     List<ImageLink> getAdvertising();
-    /**
-     * 首页推荐专区
-     */
-    List<ProductList> getRecommendeds();
-    /**
-     * type6大专题数据列表
-     */
-    List<ImageLink> getBigTopicData(@Param("topId") Integer topId);
-    /**
-     * type4商品专题
-     */
-    List<ImageLink> getCommodityTopicData();
-    /**
-     * type5小专题
-     */
-    List<ImageLink> getSmallTopicData();
-    /**
-     * type3优质供应商
-     */
-    List<ImageLink> getSuppliersTopData();
+
+//    /**
+//     * 首页楼层
+//     */
+//    List<PageFloor> getHomePageFloor();
+//    /**
+//     * 大专题二级楼层
+//     */
+//    List<PageFloor> getHomeBigTopicFloor();
+//    /**
+//     * 首页推荐专区
+//     */
+//    List<ProductList> getRecommendeds();
+//    /**
+//     * type6大专题数据列表
+//     */
+//    List<ImageLink> getBigTopicData(@Param("topId") Integer topId);
+//    /**
+//     * type4商品专题
+//     */
+//    List<ImageLink> getCommodityTopicData();
+//    /**
+//     * type5小专题
+//     */
+//    List<ImageLink> getSmallTopicData();
+//    /**
+//     * type3优质供应商
+//     */
+//    List<ImageLink> getSuppliersTopData();
 
 }

+ 17 - 1
src/main/java/com/caimei/www/pojo/page/TopMenu.java

@@ -4,6 +4,7 @@ import lombok.Data;
 
 import java.io.Serializable;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 一级导航栏
@@ -20,10 +21,25 @@ public class TopMenu implements Serializable {
 	private String type;
 	/** 一级导航链接 */
 	private String link;
+    /**
+     * 图标
+     */
+    private String icon;
 	/** 排序 */
 	private String sort;
 	/** 二级导航列表 */
-	private List<SubMenu> subMenus;
+	// private List<SubMenu> subMenus;
+    /**
+     * 链接类型 -1未知类型 1二级页面 2项目仪器 3直播页面 4自由页面 5商品详情 6项目仪器详情
+     * 7供应商主页 8专题活动页 9二手市场介绍 10二手商品列表 11二手商品发布 12商品搜索 13信息详情
+     * 14品牌招商介绍页 15维修保养介绍页 16首页 17注册页 18信息中心 19供应商列表
+     */
+    private Integer linkType;
+
+    /**
+     * 链接包含的参数
+     */
+    private Map<String, Object> linkParam;
 
 	private static final long serialVersionUID = 1L;
 }

+ 26 - 0
src/main/java/com/caimei/www/service/generate/GenerateHtml.java

@@ -0,0 +1,26 @@
+package com.caimei.www.service.generate;
+
+import org.springframework.web.server.ServerWebExchange;
+
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/5/7
+ */
+public interface GenerateHtml {
+    /**
+     * 生成静态首页
+     */
+    String generateStaticHome(ServerWebExchange exchange);
+
+    /**
+     * 删除静态首页
+     */
+    String deleteStaticHome(String pageName);
+    /**
+     * 拷贝静态资源文件
+     */
+    String generateStaticFiles();
+}

+ 227 - 0
src/main/java/com/caimei/www/service/generate/impl/GenerateHtmlImpl.java

@@ -0,0 +1,227 @@
+package com.caimei.www.service.generate.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.caimei.www.pojo.page.BaseLink;
+import com.caimei.www.pojo.page.ImageLink;
+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 lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.FileUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.core.io.support.ResourcePatternResolver;
+import org.springframework.stereotype.Service;
+import org.springframework.web.server.ServerWebExchange;
+import org.thymeleaf.TemplateEngine;
+import org.thymeleaf.spring5.context.webflux.SpringWebFluxContext;
+import org.thymeleaf.util.StringUtils;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/5/7
+ */
+@Slf4j
+@Service
+public class GenerateHtmlImpl implements GenerateHtml {
+    @Value("${caimei.destPath}")
+    private String destPath;
+	@Value("${caimei.coreServer}")
+	private String coreServer;
+	@Value("${caimei.spiServer}")
+    private String spiServer;
+    /** 打包时间 */
+    @Value("${caimei.siteEnv}")
+    private String siteEnv;
+    /** 打包时间 */
+    @Value("${spring.application.build-time}")
+    private String buildTime;
+
+    @Resource
+    private TemplateEngine templateEngine;
+    @Resource
+    private BaseService baseService;
+    @Resource
+    private HomeService homeService;
+    /**
+     * 生成静态首页
+     */
+    @Override
+    public String generateStaticHome(ServerWebExchange exchange) {
+        // 上下文
+        SpringWebFluxContext context = new SpringWebFluxContext(exchange);
+        // 设置页面数据
+        context.setVariables(setStaticHomeData());
+        // 输出流
+        File dest = new File(destPath, "index.html");
+        if (dest.exists()) {
+            boolean delete = dest.delete();
+        }
+        try (PrintWriter writer = new PrintWriter(dest, "UTF-8")) {
+            // 生成html
+            templateEngine.process("index", context, writer);
+            log.info("[静态页服务]:生成静态首页成功! ^_^");
+            return "[静态页服务]:生成静态首页成功! ^_^";
+        } catch (Exception e) {
+            boolean delete = dest.delete();
+            log.error("[静态页服务]:生成静态首页异常!", e);
+            return "[静态页服务]:生成静态首页异常!"+e.toString();
+        }
+    }
+
+    /**
+     * 删除静态页
+     */
+    @Override
+    public String deleteStaticHome(String pageName) {
+        // 输出流
+        File dest = new File(destPath, pageName + ".html");
+        if (dest.exists()) {
+            boolean delete = dest.delete();
+            if (delete) {
+                return "[静态页服务]:删除静态页成功! ^_^";
+            }
+        }
+        return "[静态页服务]:删除静态页失败!";
+    }
+
+    /**
+     * 拷贝静态资源文件
+     */
+    @Override
+    public String generateStaticFiles() {
+        // 拷贝静态资源文件
+        try {
+            copyResourceToFile();
+            log.info("[静态页服务]:拷贝静态资源文件成功! ^_^");
+            return "[静态页服务]:拷贝静态资源文件成功! ^_^";
+        } catch (Exception e) {
+            log.error("[静态页服务]:拷贝静态资源文件异常!", e);
+            return "[静态页服务]:拷贝静态资源文件异常!"+e.toString();
+        }
+    }
+
+    /**
+     * 设置静态首页数据
+     */
+    private Map<String, Object> setStaticHomeData() {
+        // 这里加载的数据是从数据库查询出来的,demo就写固定了
+        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);
+		// 获取banner图
+		List<ImageLink> bannerList = homeService.getHomeBanners();
+		map.put("bannerList", bannerList);
+		// 首页楼层
+		Map<String, Object> floorMap = homeService.getHomeFloors();
+		map.put("floorJson", floorMap);
+		// 右侧侧边栏数据
+        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 void copyResourceToFile() throws IOException {
+        // 资源清单获取
+        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
+        org.springframework.core.io.Resource[] resources = resolver.getResources("static/**");
+        for (org.springframework.core.io.Resource resource : resources) {
+            String fileName = resource.getFilename();
+            assert fileName != null;
+            if (fileName.indexOf(".") > 0) {
+                InputStream inputStream = null;
+                try {
+                    inputStream = resource.getInputStream();
+                } catch (Exception e) {
+                    log.warn(String.format("[%s]获取输入流发生异常!", resource.getURL()));
+                    throw new RuntimeException(String.format("[%s]获取输入流发生异常!", resource.getURL()));
+                }
+                //分析相对目录
+                String tempPath = "";
+                String[] urls = resource.getURL().toString().split("/static/");
+                if (urls.length >= 2 ){
+                    tempPath = urls[urls.length-1];
+                } else {
+                    throw new RuntimeException("relativeRootPath有误:无法分析相对目录");
+                }
+                tempPath = tempPath.substring(0, tempPath.length() - fileName.length());
+                if (StringUtils.isEmpty(tempPath)) {
+                    tempPath = File.separator;
+                }
+                String filePath = destPath + File.separator + tempPath;
+                if (createDir(filePath)) {
+                    String destName = filePath + fileName;
+                    // 输出流
+                    File dest = new File(destName);
+                    if (dest.exists()) {
+                        boolean delete = dest.delete();
+                    }
+                    FileUtils.copyInputStreamToFile(inputStream, dest);
+                } else {
+                    throw new RuntimeException(String.format("创建本地目录[%s]失败!", resource.getURL()));
+                }
+            }
+        }
+    }
+
+    /**
+     * 创建目录
+     */
+    private static boolean createDir(String dirName) {
+        File dir = new File(dirName);
+        if (dir.exists()) {
+            return true;
+        }
+        if (!dirName.endsWith(File.separator)) {
+            dirName = dirName + File.separator;
+        }
+        if (dir.mkdirs()) {
+            log.warn("创建目录" + dirName + "成功!");
+            return true;
+        } else {
+            log.warn("创建目录" + dirName + "失败!");
+            return false;
+        }
+    }
+
+}

+ 7 - 0
src/main/java/com/caimei/www/service/page/BaseService.java

@@ -1,9 +1,12 @@
 package com.caimei.www.service.page;
 
+import com.alibaba.fastjson.JSONObject;
 import com.caimei.www.pojo.page.BaseLink;
+import com.caimei.www.pojo.page.ImageLink;
 import com.caimei.www.pojo.page.TopMenu;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * Description
@@ -33,4 +36,8 @@ public interface BaseService {
      */
     List<BaseLink> getFriendLinks();
 
+    /**
+     * 分类菜单
+     */
+    List<JSONObject> getClassifyJson();
 }

+ 10 - 4
src/main/java/com/caimei/www/service/page/HomeService.java

@@ -15,17 +15,23 @@ import java.util.Map;
  * @date : 2020/6/22
  */
 public interface HomeService {
+
     /**
-     * 首页推荐专区
+     * 首页轮播
      */
-    JsonModel<List<ProductList>> getRecommendProducts();
+    List<ImageLink> getHomeBanners();
+
     /**
-     * 首页楼层专题数据
+     * 首页楼层
      */
-    JsonModel<List<PageFloor>> getHomePageFloorData();
+    Map<String, Object> getHomeFloors();
     /**
      * 首页左侧广告图
      */
     JsonModel<List<ImageLink>> getAdvertising();
 
+    /**
+     * 右侧侧边栏数据
+     */
+    Map<String, Object> getHomeSideJson();
 }

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

@@ -1,19 +1,22 @@
 package com.caimei.www.service.page.impl;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.caimei.www.mapper.BaseDao;
 import com.caimei.www.pojo.page.*;
 import com.caimei.www.service.page.BaseService;
-import com.caimei.www.utils.ImageUtil;
+import com.caimei.www.utils.AppletsLinkUtil;
+import com.caimei.www.utils.RequestUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
+import org.thymeleaf.util.StringUtils;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -29,6 +32,8 @@ public class BaseServiceImpl implements BaseService {
     private BaseDao baseDao;
     @Value("${caimei.wwwDomain}")
     private String domain;
+	@Value("${caimei.coreServer}")
+	private String coreServer;
     /**
      * 获取搜索热门关键字
      */
@@ -53,14 +58,25 @@ public class BaseServiceImpl implements BaseService {
     public List<TopMenu> getNavMenu() {
         List<TopMenu> menuList = baseDao.getTopMenus();
         menuList.forEach(item -> {
-            List<SubMenu> subList = baseDao.getSubMenus(item.getId());
-            if (subList.size() > 0) {
-                // 设置老图片路径
-                subList.forEach(sub -> {
-                     sub.setImage(ImageUtil.getImageURL("", sub.getImage(), 0, domain));
-                });
+            String link = item.getLink();
+            if (!StringUtils.isEmpty(link)) {
+                if (link.contains("?")) {
+                    link = link + "&name=" + item.getName();
+                } else {
+                    link = link + "?name=" + item.getName();
+                }
+                item.setLinkType(AppletsLinkUtil.getLinkType(link));
+                item.setLinkParam(AppletsLinkUtil.getLinkParam(item.getLinkType(), link));
+                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;
     }
@@ -88,4 +104,20 @@ public class BaseServiceImpl implements BaseService {
         return baseDao.getFriendLinks();
     }
 
+    /**
+     * 分类菜单
+     */
+    @Override
+    public List<JSONObject> getClassifyJson() {
+        try {
+            String floorResult = RequestUtil.sendGet(coreServer+"/commodity/classify?typeSort=0&source=www");
+            log.debug(floorResult);
+            Map<String, Object> floorMap = JSONObject.parseObject(floorResult, Map.class);
+            return JSONObject.parseObject(String.valueOf(floorMap.get("data")), List.class);
+        } catch (Exception e) {
+            log.error("try-catch:",e);
+            return null;
+        }
+    }
+
 }

+ 40 - 41
src/main/java/com/caimei/www/service/page/impl/HomeServiceImpl.java

@@ -1,5 +1,7 @@
 package com.caimei.www.service.page.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.caimei.www.mapper.BaseDao;
 import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.mapper.HomeDao;
 import com.caimei.www.pojo.page.PageFloor;
@@ -8,6 +10,7 @@ import com.caimei.www.pojo.page.ProductList;
 import com.caimei.www.service.page.HomeService;
 import com.caimei.www.utils.ImageUtil;
 import com.caimei.www.utils.PriceUtil;
+import com.caimei.www.utils.RequestUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cache.annotation.Cacheable;
@@ -15,6 +18,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Description
@@ -26,59 +30,54 @@ import java.util.List;
 @Service
 public class HomeServiceImpl implements HomeService {
     @Resource
-    private HomeDao homeDao;
+    private BaseDao baseDao;
     @Value("${caimei.wwwDomain}")
+    @Resource
+    private HomeDao homeDao;
     private String domain;
+	@Value("${caimei.coreServer}")
+	private String coreServer;
+	@Value("${caimei.spiServer}")
+	private String spiServer;
+
+    /**
+     * 首页轮播
+     */
+    @Override
+    public List<ImageLink> getHomeBanners() {
+        return homeDao.getHomeBanners();
+    }
 
     /**
-     * 首页推荐专区商品
+     * 首页楼层
      */
     @Override
-    @Cacheable(value = "getRecommendProducts", key="'www'", unless="#result == null")
-    public JsonModel<List<ProductList>> getRecommendProducts() {
-        List<ProductList> list = homeDao.getRecommendeds();
-        if (list.size() > 0) {
-            // 设置价格等级 及 老图片路径
-            list.forEach(product -> {
-                 product.setPriceGrade(PriceUtil.getpriceGrade(product.getPrice()));
-                 product.setPrice(0d);
-                 product.setImage(ImageUtil.getImageURL("product", product.getImage(), 0, domain));
-            });
+    public Map<String, Object> getHomeFloors() {
+        try {
+            String floorResult = RequestUtil.sendGet(coreServer+"/commodity/home/floor?userId=0&source=1");
+            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;
         }
-        return JsonModel.success(list);
     }
 
     /**
-     * 首页楼层专题数据
+     * 右侧侧边栏数据
      */
     @Override
-    public JsonModel<List<PageFloor>> getHomePageFloorData() {
-        // 大专题:6,小专题:5,商品专题:4,优质供应商:3
-        List<PageFloor> floorList = homeDao.getHomePageFloor();
-        floorList.forEach(floor -> {
-            if(floor.getType() == 6){
-                // 6大专题二级楼层
-                List<PageFloor> bigTopicFloors = homeDao.getHomeBigTopicFloor();
-                bigTopicFloors.forEach(bigTopic -> {
-                    List<ImageLink>  topicData = homeDao.getBigTopicData(bigTopic.getId());
-                    bigTopic.setFloorData(topicData);
-                });
-                floor.setSubFloors(bigTopicFloors);
-            } else if (floor.getType() == 5){
-                // 5小专题
-                List<ImageLink>  topicData5 = homeDao.getSmallTopicData();
-                floor.setFloorData(topicData5);
-            } else if (floor.getType() == 4){
-                // 4商品专题
-                List<ImageLink>  topicData4 = homeDao.getCommodityTopicData();
-                floor.setFloorData(topicData4);
-            } else if (floor.getType() == 3){
-                // 3优质供应商
-                List<ImageLink>  topicData3 = homeDao.getSuppliersTopData();
-                floor.setFloorData(topicData3);
-            }
-        });
-        return JsonModel.success(floorList);
+    public Map<String, Object> getHomeSideJson() {
+        try {
+            String sideResult = RequestUtil.sendGet(spiServer+"/home/top/data?source=1");
+            log.debug(sideResult);
+            Map<String, Object> sideMap = JSONObject.parseObject(sideResult, Map.class);
+            return JSONObject.parseObject(String.valueOf(sideMap.get("data")), Map.class);
+        } catch (Exception e) {
+            log.error("try-catch:",e);
+            return null;
+        }
     }
 
     /**

+ 238 - 0
src/main/java/com/caimei/www/utils/AppletsLinkUtil.java

@@ -0,0 +1,238 @@
+package com.caimei.www.utils;
+
+import lombok.extern.slf4j.Slf4j;
+import org.thymeleaf.util.StringUtils;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.regex.Pattern;
+
+/**
+ * 小程序链接工具类
+ *
+ * @author : Charles
+ * @date : 2021/4/9
+ */
+@Slf4j
+public class AppletsLinkUtil {
+    /**
+     * 1二级页面
+     */
+    public static final Pattern pattern1 = Pattern.compile("/cmpage/info-1");
+    public static final Pattern pattern34 = Pattern.compile("/topic.html");
+    /**
+     * 2项目仪器详情
+     */
+    public static final Pattern pattern2 = Pattern.compile("/cmpage/info-2");
+    public static final Pattern pattern6 = Pattern.compile("equipment/detail");
+    /**
+     * 3直播页面
+     */
+    public static final Pattern pattern3 = Pattern.compile("/cmpage/info-3");
+    public static final Pattern pattern36 = Pattern.compile("wx.vzan.com");
+    /**
+     * 4自由页面
+     */
+    public static final Pattern pattern4 = Pattern.compile("/cmpage/info-4");
+    public static final Pattern pattern33 = Pattern.compile("page.html");
+    /**
+     * 5商品详情
+     */
+    public static final Pattern pattern5 = Pattern.compile("/product-");
+
+    /**
+     * 7供应商主页
+     */
+    public static final Pattern pattern7 = Pattern.compile("supplier/prolist");
+    public static final Pattern pattern8 = Pattern.compile("supplier/index.html");
+    public static final Pattern pattern9 = Pattern.compile("view/supplierHomePage.jsp");
+    public static final Pattern pattern10 = Pattern.compile("supplier/productlist-");
+    /**
+     * 8专题活动页
+     */
+    public static final Pattern pattern11 = Pattern.compile("promotions.html");
+    public static final Pattern pattern12 = Pattern.compile("cmpage/area.html");
+    /**
+     * 9二手市场介绍
+     */
+    public static final Pattern pattern13 = Pattern.compile("html/secondHand/introduction.jsp");
+    public static final Pattern pattern14 = Pattern.compile("flea-market/intro.html");
+    /**
+     * 10二手商品列表
+     */
+    public static final Pattern pattern15 = Pattern.compile("html/secondHand/secondList.jsp");
+    public static final Pattern pattern16 = Pattern.compile("flea-market/list.html");
+    /**
+     * 11二手商品发布
+     */
+    public static final Pattern pattern17 = Pattern.compile("html/maintenance/view/secondtransactions.jsp");
+    public static final Pattern pattern18 = Pattern.compile("flea-market/form.html");
+    /**
+     * 12商品搜索
+     */
+    public static final Pattern pattern19 = Pattern.compile("product/search.shtml");
+    public static final Pattern pattern20 = Pattern.compile("product/search/list");
+    public static final Pattern pattern21 = Pattern.compile("product/list.html");
+    /**
+     * 13信息详情
+     */
+    public static final Pattern pattern22 = Pattern.compile("info/detail");
+    /**
+     * 14品牌招商介绍页
+     */
+    public static final Pattern pattern23 = Pattern.compile("html/InvestmentCaiMei/investmentpage.jsp");
+    public static final Pattern pattern24 = Pattern.compile("investment.html");
+    /**
+     * 15维修保养介绍页
+     */
+    public static final Pattern pattern25 = Pattern.compile("html/maintenance/view/mt-entry-index.jsp");
+    public static final Pattern pattern26 = Pattern.compile("repair.html");
+    /**
+     * 16首页
+     */
+    public static final Pattern pattern27 = Pattern.compile("index.action");
+    public static final Pattern pattern28 = Pattern.compile("index.html");
+    /**
+     * 17注册页
+     */
+    public static final Pattern pattern29 = Pattern.compile("web/login/view/register_new_vip.jsp");
+    public static final Pattern pattern30 = Pattern.compile("register.html");
+    /**
+     * 18信息中心
+     */
+    public static final Pattern pattern31 = Pattern.compile("info/center");
+    /**
+     * 19供应商列表
+     */
+    public static final Pattern pattern32 = Pattern.compile("supplier/list.html");
+    /**
+     * 20分类详情
+     */
+    public static final Pattern pattern35 = Pattern.compile("/cmpage/info-5");
+    /**
+     * 21美博会专题页
+     */
+    public static final Pattern pattern37 = Pattern.compile("/beautytopic");
+    /**
+     * 22美体会专题页
+     */
+    public static final Pattern pattern38 = Pattern.compile("/cmpage/info-5-301");
+
+    /**
+     * 根据链接判断链接类型
+     *
+     * @param link
+     * @return
+     */
+    public static Integer getLinkType(String link) {
+        if (!StringUtils.isEmpty(link)) {
+            if (pattern1.matcher(link).find() || pattern34.matcher(link).find()) {
+                return 1;
+            } else if (pattern2.matcher(link).find() || pattern6.matcher(link).find()) {
+                return 2;
+            } else if (pattern3.matcher(link).find() || pattern36.matcher(link).find()) {
+                return 3;
+            } else if (pattern4.matcher(link).find() || pattern33.matcher(link).find()) {
+                return 4;
+            } else if (pattern5.matcher(link).find()) {
+                return 5;
+            } else if (pattern7.matcher(link).find() || pattern8.matcher(link).find() || pattern9.matcher(link).find() || pattern10.matcher(link).find()) {
+                return 7;
+            } else if (pattern11.matcher(link).find() || pattern12.matcher(link).find()) {
+                return 8;
+            } else if (pattern13.matcher(link).find() || pattern14.matcher(link).find()) {
+                return 9;
+            } else if (pattern15.matcher(link).find() || pattern16.matcher(link).find()) {
+                return 10;
+            } else if (pattern17.matcher(link).find() || pattern18.matcher(link).find()) {
+                return 11;
+            } else if (pattern19.matcher(link).find() || pattern20.matcher(link).find() || pattern21.matcher(link).find()) {
+                return 12;
+            } else if (pattern22.matcher(link).find()) {
+                return 13;
+            } else if (pattern23.matcher(link).find() || pattern24.matcher(link).find()) {
+                return 14;
+            } else if (pattern25.matcher(link).find() || pattern26.matcher(link).find()) {
+                return 15;
+            } else if (pattern27.matcher(link).find() || pattern28.matcher(link).find()) {
+                return 16;
+            } else if (pattern29.matcher(link).find() || pattern30.matcher(link).find()) {
+                return 17;
+            } else if (pattern31.matcher(link).find()) {
+                return 18;
+            } else if (pattern32.matcher(link).find()) {
+                return 19;
+            } else if (pattern35.matcher(link).find()) {
+                if (pattern38.matcher(link).find()) {
+                    return 22;
+                }
+                return 20;
+            } else if (pattern37.matcher(link).find()) {
+                return 21;
+            } else {
+                return -1;
+            }
+        } else {
+            return -1;
+        }
+    }
+
+    /**
+     * 根据链接获取链接中携带的参数
+     *
+     * @param linkType
+     * @param link
+     * @return
+     */
+    public static Map<String, Object> getLinkParam(Integer linkType, String link) {
+        HashMap<String, Object> map = new HashMap<>();
+        String[] idArr = link.split("/");
+        String[] split1 = null;
+        String[] split2 = null;
+        String[] split3 = null;
+        if (idArr.length > 0) {
+            split1 = idArr[idArr.length - 1].split("-");
+            split2 = idArr[idArr.length - 1].split("=");
+            if (split1.length > 0) {
+                split3 = split1[split1.length - 1].split("\\.");
+            }
+        }
+        if (linkType == 3 || linkType == 5 || linkType == 20 || linkType == 22) {
+            //-{id}.html
+            if (split3 != null && split3.length == 2) {
+                map.put("id", split3[0]);
+            }
+        } else if (linkType == 1 || linkType == 2 || linkType == 4 || linkType == 7) {
+            if (pattern1.matcher(link).find() || pattern2.matcher(link).find() || pattern4.matcher(link).find() || pattern7.matcher(link).find() || pattern10.matcher(link).find()) {
+                //-{id}.html
+                if (split3 != null && split3.length == 2) {
+                    map.put("id", split3[0]);
+                }
+            } else if (pattern6.matcher(link).find() || pattern33.matcher(link).find() || pattern8.matcher(link).find() || pattern9.matcher(link).find() || pattern34.matcher(link).find()) {
+                //id={id}
+                if (split2 != null && split2.length == 2) {
+                    map.put("id", split2[1]);
+                }
+            }
+        } else if (linkType == 13 || linkType == 18) {
+            //a-{id}-b
+            if (split1 != null && split1.length == 3) {
+                map.put("id", split1[1]);
+            }
+        } else if (linkType == 12 || linkType == 19) {
+            //keyword=
+            if (split2 != null && split2.length == 2) {
+                String keyword = split2[1];
+                try {
+                    keyword = URLDecoder.decode(keyword, "UTF-8");
+                } catch (UnsupportedEncodingException e) {
+                    log.error("try-catch:",e);
+                }
+                map.put("keyword", keyword);
+            }
+        }
+        return map;
+    }
+}

+ 116 - 0
src/main/java/com/caimei/www/utils/RequestUtil.java

@@ -0,0 +1,116 @@
+package com.caimei.www.utils;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 请求工具类
+ *
+ * @author : Charles
+ * @date : 2021/3/8
+ */
+public class RequestUtil {
+
+    /**
+     * 向指定URL发送GET方法的请求
+     *
+     * @param url   发送请求的URL,请求参数应该是 name1=value1&name2=value2 的形式。
+     * @return 远程资源的响应结果
+     */
+    public static String sendGet(String url) throws Exception {
+        StringBuilder result = new StringBuilder();
+        BufferedReader in = null;
+        try {
+
+            URL realUrl = new URL(url);
+            // 打开和URL之间的连接
+            URLConnection connection = realUrl.openConnection();
+            // 设置通用的请求属性
+            connection.setRequestProperty("accept", "*/*");
+            connection.setRequestProperty("connection", "Keep-Alive");
+            connection.setRequestProperty("Accept-Charset", "utf-8");
+            connection.setRequestProperty("contentType", "utf-8");
+            connection.setConnectTimeout(5000);
+            // 建立实际的连接
+            connection.connect();
+            // 获取所有响应头字段
+            Map<String, List<String>> map = connection.getHeaderFields();
+            // 定义 BufferedReader输入流来读取URL的响应
+            in = new BufferedReader(new InputStreamReader(
+                    connection.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null) {
+                result.append(line);
+            }
+        }
+        // 使用finally块来关闭输入流
+        finally {
+            if (in != null) {
+                in.close();
+            }
+        }
+        return result.toString();
+    }
+
+    /**
+     * 向指定 URL 发送POST方法的请求
+     *
+     * @param url 发送请求的 URL
+     * @param paramMap 请求参数
+     * @return 所代表远程资源的响应结果
+     */
+    public static String sendPost(String url, Map<String, ?> paramMap) throws Exception{
+        PrintWriter out = null;
+        BufferedReader in = null;
+        StringBuilder result = new StringBuilder();
+
+        StringBuilder param = new StringBuilder();
+
+        for (String key : paramMap.keySet()) {
+            param.append(key).append("=").append(paramMap.get(key)).append("&");
+        }
+
+        try {
+            URL realUrl = new URL(url);
+            // 打开和URL之间的连接
+            URLConnection conn = realUrl.openConnection();
+            // 设置通用的请求属性
+            conn.setRequestProperty("accept", "*/*");
+            conn.setRequestProperty("connection", "Keep-Alive");
+            conn.setRequestProperty("Accept-Charset", "utf-8");
+            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            // 发送POST请求必须设置如下两行
+            conn.setDoOutput(true);
+            conn.setDoInput(true);
+            // 获取URLConnection对象对应的输出流
+            out = new PrintWriter(conn.getOutputStream());
+            // 发送请求参数
+            out.print(param);
+            // flush输出流的缓冲
+            out.flush();
+            // 定义BufferedReader输入流来读取URL的响应
+            in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
+            String line;
+            while ((line = in.readLine()) != null) {
+                result.append(line);
+            }
+        }
+        //使用finally块来关闭输出流、输入流
+        finally{
+            if(out!=null){
+                out.close();
+            }
+            if(in!=null){
+                in.close();
+            }
+        }
+        return result.toString();
+    }
+
+}

+ 4 - 3
src/main/resources/application.yml

@@ -1,5 +1,9 @@
 server:
   port: 8009
+  compression:
+    enabled: true
+    mime-types: application/json,application/xml,text/xml,text/plain,text/html,text/javascript,text/css
+
 spring:
   application:
     # 指定服务名
@@ -22,6 +26,3 @@ mybatis:
   mapper-locations:
     - classpath:mapper/*.xml
     - classpath:com-caimei-module-product/*Mapper.xml
-
-
-

+ 1 - 0
src/main/resources/config/beta/application-beta.yml

@@ -53,6 +53,7 @@ caimei:
   coreServer: https://core-b.caimei365.com
   imageDomain: https://img-b.caimei365.com
   wwwDomain: https://www-b.caimei365.com
+  destPath: /mnt/newdatadrive/data/runtime/h5-instance/static/www
 
 #DFS配置
 fdfs:

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

@@ -58,11 +58,9 @@ caimei:
   coreServer: https://core-b.caimei365.com
 #  coreServer: http://192.168.2.68:18002
   imageDomain: https://img-b.caimei365.com
-  wwwDomain: https://www-b.caimei365.com
+  wwwDomain: http:localhost:8009
+  destPath: D:/_PLAN_WORKSPACE/test/static
 
-#    spiServer: https://spi.caimei365.com
-#    imageDomain: https://img.caimei365.com
-#    wwwDomain: https://www.caimei365.com
 
 #DFS配置
 fdfs:

+ 1 - 0
src/main/resources/config/prod/application-prod.yml

@@ -53,6 +53,7 @@ caimei:
   coreServer: https://core.caimei365.com
   imageDomain: https://img.caimei365.com
   wwwDomain: https://www.caimei365.com
+  destPath: /mnt/newdatadrive/data/runtime/h5-instance/static/www
 
 
 #DFS配置

+ 3 - 2
src/main/resources/mapper/BaseMapper.xml

@@ -12,11 +12,12 @@
             navigationName as name,
             type,
             link,
+            icon,
             sort
 		from new_page_first_navigation
 		where wwwEnabledStatus='1' and delFlag = 0
-		order by sort desc,createDate desc
-		limit 7
+		order by sort asc,createDate desc
+		limit 8
     </select>
     <select id="getSubMenus" resultType="com.caimei.www.pojo.page.SubMenu">
 		select

+ 89 - 83
src/main/resources/mapper/HomeMapper.xml

@@ -1,94 +1,100 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei.www.mapper.HomeDao">
-	<select id="getHomePageFloor" resultType="com.caimei.www.pojo.page.PageFloor">
-		select id, type, floorTitle as title, floorDetail as detail
-		from new_page_floor
-		where delFlag = 0 and wwwEnabledStatus = '1'
-		order by sort
-	</select>
-	<select id="getHomeBigTopicFloor" resultType="com.caimei.www.pojo.page.PageFloor">
-		select id, title, description as detail
-		from cm_page_big_topic
-		where delFlag = 0 and enabledStatus = '1'
-		order by sort
-	</select>
+    <select id="getHomeBanners" resultType="com.caimei.www.pojo.page.ImageLink">
+		select id, title, link, image
+		from new_page_homeimage
+		where wwwEnabledStatus = 1
+		order by sort desc, createDate desc
+    </select>
+
 	<select id="getAdvertising" resultType="com.caimei.www.pojo.page.ImageLink">
 		select id, adTitle as title, link, adImage as image
 		from new_page_advertising
 		where delFlag = 0
 		order by sort, createDate desc
 	</select>
-	<select id="getRecommendeds" resultType="com.caimei.www.pojo.page.ProductList">
-		select
-			p.productID as id,
-			p.`name` as `name`,
-			br.name as brand,
-			p.mainImage as image,
-			p.price1 as price,
-			p.unit as unit,
-			p.price1TextFlag as priceFlag,
-			p.actType as actType
-		from product p
-		left join cm_brand as br on p.brandID = br.id
-		where p.validFlag != 0
-		and p.actFlag = 1
-		and (p.actType = 1 or p.actType = 2)
-		and p.shopID not in (SELECT s.`value` FROM `sys_dict` s WHERE s.type='heheShopID')
-		order by p.actSort
-	</select>
-	<select id="getBigTopicData" resultType="com.caimei.www.pojo.page.ImageLink">
-		select
-            id,
-            title,
-            link,
-            image
-		from cm_page_big_topic_floor
-		<where>
-			delFlag = 0 and enabledStatus = '1'
-			<if test = "topId != null and topId != ''">
-				and bigTopicId = #{topId}
-			</if>
-		</where>
-		order by sort ,enabledStatus ,createDate
-		limit 0,5
-	</select>
-    <select id="getCommodityTopicData" resultType="com.caimei.www.pojo.page.ImageLink">
-		select
-            id,
-            title,
-            link,
-            image,
-            beginTime,
-            endTime
-		from new_page_commodity_topic
-		where wwwEnabledStatus = 1
-		and <![CDATA[ endTime > sysdate() ]]>
-		and <![CDATA[ beginTime < sysdate() ]]>
-		order by sort
-		limit 0,3
-    </select>
-	<select id="getSmallTopicData" resultType="com.caimei.www.pojo.page.ImageLink">
-		select
-            id,
-            title,
-            link,
-            image
-		from new_page_small_topic
-		where wwwEnabledStatus = 1
-		order by sort
-		limit 0,4
-	</select>
-	<select id="getSuppliersTopData" resultType="com.caimei.www.pojo.page.ImageLink">
-		select
-            id,
-            supplierName as title,
-            link,
-            image
-		from new_page_quality_supplier
-		where delFlag = 0 and wwwEnabledStatus = 1
-		order by sort
-	</select>
-
 
+	<!--	<select id="getHomePageFloor" resultType="com.caimei.www.pojo.page.PageFloor">-->
+<!--		select id, type, floorTitle as title, floorDetail as detail-->
+<!--		from new_page_floor-->
+<!--		where delFlag = 0 and wwwEnabledStatus = '1'-->
+<!--		order by sort-->
+<!--	</select>-->
+<!--	<select id="getHomeBigTopicFloor" resultType="com.caimei.www.pojo.page.PageFloor">-->
+<!--		select id, title, description as detail-->
+<!--		from cm_page_big_topic-->
+<!--		where delFlag = 0 and enabledStatus = '1'-->
+<!--		order by sort-->
+<!--	</select>-->
+<!--	<select id="getRecommendeds" resultType="com.caimei.www.pojo.page.ProductList">-->
+<!--		select-->
+<!--			p.productID as id,-->
+<!--			p.`name` as `name`,-->
+<!--			br.name as brand,-->
+<!--			p.mainImage as image,-->
+<!--			p.price1 as price,-->
+<!--			p.unit as unit,-->
+<!--			p.price1TextFlag as priceFlag,-->
+<!--			p.actType as actType-->
+<!--		from product p-->
+<!--		left join cm_brand as br on p.brandID = br.id-->
+<!--		where p.validFlag != 0-->
+<!--		and p.actFlag = 1-->
+<!--		and (p.actType = 1 or p.actType = 2)-->
+<!--		and p.shopID not in (SELECT s.`value` FROM `sys_dict` s WHERE s.type='heheShopID')-->
+<!--		order by p.actSort-->
+<!--	</select>-->
+<!--	<select id="getBigTopicData" resultType="com.caimei.www.pojo.page.ImageLink">-->
+<!--		select-->
+<!--            id,-->
+<!--            title,-->
+<!--            link,-->
+<!--            image-->
+<!--		from cm_page_big_topic_floor-->
+<!--		<where>-->
+<!--			delFlag = 0 and enabledStatus = '1'-->
+<!--			<if test = "topId != null and topId != ''">-->
+<!--				and bigTopicId = #{topId}-->
+<!--			</if>-->
+<!--		</where>-->
+<!--		order by sort ,enabledStatus ,createDate-->
+<!--		limit 0,5-->
+<!--	</select>-->
+<!--    <select id="getCommodityTopicData" resultType="com.caimei.www.pojo.page.ImageLink">-->
+<!--		select-->
+<!--            id,-->
+<!--            title,-->
+<!--            link,-->
+<!--            image,-->
+<!--            beginTime,-->
+<!--            endTime-->
+<!--		from new_page_commodity_topic-->
+<!--		where wwwEnabledStatus = 1-->
+<!--		and <![CDATA[ endTime > sysdate() ]]>-->
+<!--		and <![CDATA[ beginTime < sysdate() ]]>-->
+<!--		order by sort-->
+<!--		limit 0,3-->
+<!--    </select>-->
+<!--	<select id="getSmallTopicData" resultType="com.caimei.www.pojo.page.ImageLink">-->
+<!--		select-->
+<!--            id,-->
+<!--            title,-->
+<!--            link,-->
+<!--            image-->
+<!--		from new_page_small_topic-->
+<!--		where wwwEnabledStatus = 1-->
+<!--		order by sort-->
+<!--		limit 0,4-->
+<!--	</select>-->
+<!--	<select id="getSuppliersTopData" resultType="com.caimei.www.pojo.page.ImageLink">-->
+<!--		select-->
+<!--            id,-->
+<!--            supplierName as title,-->
+<!--            link,-->
+<!--            image-->
+<!--		from new_page_quality_supplier-->
+<!--		where delFlag = 0 and wwwEnabledStatus = 1-->
+<!--		order by sort-->
+<!--	</select>-->
 </mapper>

+ 2 - 1
src/main/resources/static/css/activity/activityTopic.css

@@ -1,5 +1,6 @@
 a:hover{color:#333}
 .clearfix::after{content:'';display:block;clear:both}
+.mg-bottom{padding-bottom: 6vw;}
 @-webkit-keyframes my-fade-ease{0%{opacity:0}
 100%{opacity:0.8}
 }@keyframes my-fade-ease{0%{opacity:0}
@@ -103,7 +104,7 @@ a:hover{color:#333}
 .product-template .floor-item .floor-item-text .pro-title .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:-webkit-gradient(linear,right top,left top,from(#f9c023),to(#f83600));background-image:-o-linear-gradient(right,#f9c023 0%,#f83600 100%);background-image:linear-gradient(270deg,#f9c023 0%,#f83600 100%);border-radius:0px 10px 0px 0px;margin-top:2px}
 .product-template .floor-item .floor-item-text .pro-price{bottom:0;line-height:22px}
 .product-template .floor-item .floor-item-text .pro-price span{vertical-align:middle}
-.product-template .floor-item .floor-item-text .pro-price .price-tag{height:22px;margin:4px 0 ;}
+.product-template .floor-item .floor-item-text .pro-price .price-tag{height:22px;margin:2px 0 ;}
 .product-template .floor-item .floor-item-text .pro-price .price-tag .tag{display:inline-block;height:20px;line-height:20px;border:1px solid #ffe6dc;border-radius:2px;font-size:12px;color:#e15616;cursor:pointer;background:#fff;padding:0 4px;position:relative;font-style:normal}
 .product-template.floor-grid-1 .floor-main{height:604.42857px;overflow:hidden}
 .product-template.floor-grid-1 .floor-item-ad.ad1{width:100%;height:117.14286px;margin-right:0}

+ 1 - 0
src/main/resources/static/css/base/base.h5.css

@@ -217,6 +217,7 @@
 .priceTag .promotion .more{color:#f55c5c;text-decoration:underline;float:right;}
 /* loading */
 .loading{box-sizing:border-box;padding:20vw 0;text-align:center;}
+.loading.home{position:fixed;z-index:9999;width:100%;height:100%;background:#FFF;}
 .empty{box-sizing:border-box;padding:15vw 0;text-align:center;color:#4A4F58;line-height:8vw;font-size:3.4vw;}
 .empty img{width:40vw;height:40vw;}
 .empty a{color:#E15616;}

+ 1 - 0
src/main/resources/static/css/base/base.pc.css

@@ -343,6 +343,7 @@ iframe{width:320px !important;height: 280px !important}
 .priceTag .promotion .more{color:#f55c5c;text-decoration:underline;float:right;}
 /* 加载  */
 .loading{box-sizing:border-box;padding:200px 0;text-align:center;}
+.loading.home{position:fixed;z-index:9999;width:100%;height:100%;background:#FFF;}
 .empty{box-sizing:border-box;padding:100px 0;text-align:center;color:#4A4F58;line-height:30px;font-size:16px;}
 .empty img{width:180px;height:180px;}
 .empty a{color:#E15616;}

+ 72 - 356
src/main/resources/static/css/index/index_new.h5.css

@@ -19,359 +19,75 @@
 #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_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 .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 .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{
-        display: block;
-        height: 7vw;
-        line-height: 7vw;
-        color: #4A4F58;
-        font-style: normal;
-        float: left;
-    }
-    .section_page .page_main_price .price_grade .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;
-    }
-.price_grade .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;
-}
-.Popup{position: fixed;background: rgba(34,39,46, 0.3);top: 0;left: 0;width: 100%;height: 100%;z-index: 99999;opacity: 0;}
-.Popup.show{opacity: 1;}
-.Popup .show_popup{width: 77vw;height: 85vw;position: absolute;top: 0;right: 0;left: 0;bottom: 0;margin: auto;}
-.bg_img img{width: 100%;height: 100%;}
-.bg_icon{text-align: right;padding-right: 10vw}
-.bg_icon .mIcon{width: 10vw;height: 10vw;display: inline-block;}
-.bg_icon .mIcon:before{width: 10vw;height: 10vw;background-position: -33.3vw -77.3vw;cursor: pointer;}
+/* 楼层 */
+ .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}
+.Popup{position:fixed;background:rgba(34,39,46,0.5);top:0;left:0;width:100%;height:100%;z-index:99999;opacity:0}
+.Popup.show{opacity:1}
+.Popup .show_popup{width:97vw;height:73.6vw;position:absolute;top:0;right:0;left:0;bottom:0;margin:auto}
+.bg_img img{width:100%;height:100%}
+.bg_icon{text-align:right;position:absolute;right:10vw}
+.bg_icon .mIcon{width:10vw;height:10vw;display:inline-block}
+.bg_icon .mIcon:before{width:10vw;height:10vw;background-position:-33.3vw -77.3vw;cursor:pointer}

+ 95 - 507
src/main/resources/static/css/index/index_new.pc.css

@@ -2,9 +2,7 @@
 /**
  * PC端
  */
-#container{
-    min-height: 500px;
-}
+#container{min-height: 500px;}
 li{list-style:none;}
 /* 轮播 */
 #swiper-container{width:100%;height:510px;min-width:1184px;overflow:hidden;position:relative;float: left;}
@@ -22,508 +20,99 @@ li{list-style:none;}
 #swiper-container .swiper-pagination span{display:inline-block;border:5px solid transparent;cursor:pointer}
 #swiper-container .swiper-pagination span:before{content:"";display:inline-block;width:14px;height:4px;background:rgba(255,255,255,.4);border-radius:2px}
 #swiper-container .swiper-pagination span.on:before{width:28px;background:#fff}
-
-.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 .section_page_main.max{
-    height:auto;
-}
-.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 .page_main_item.ad_01{
-    width: 884px;
-    height: 120px;
-}
-.section_page .page_main_item.ad_02{
-    width: 524px;
-}
-.section_page .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 .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{
-    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{
-    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;
-}
-.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_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: 100%;
-    height: auto;
-    background-color: #FFFFFF;
-    float: left;
-    margin-bottom: 16px;
-    padding: 16px;
-    box-sizing: border-box;
-    border-radius: 2px;
-}
-.section_right .right_item_title{
-    width: 100%;
-    height: 22px;
-    line-height: 22px;
-    float: left;
-    margin-bottom: 8px;
-}
-.section_right .right_item_title p{
-    float: left;
-    font-size: 16px;
-    font-weight: bold;
-    color: #4a4f58;
-    text-align: left;
-}
-.section_right .right_item_title a{
-    display: inline-block;
-    float: right;
-    font-size: 12px;
-    color: #909090;
-    text-align: right;
-}
-.section_right .right_item_title a:hover{
-    color: #E15616;
-    text-decoration: underline;
-}
-.section_right .right_item_main{
-    width: 100%;
-    height: auto;
-}
-.section_right .item_banner{
-    width: 252px;
-    height: 252px;
-    display: block;
-    float: left;
-    position: relative;
-    margin-bottom: 10px;
-}
-.section_right .item_banner img{
-    width: 252px;
-    height: 252px;
-    display: block;
-}
-.section_right .item_banner .name{
-    width: 100%;
-    height: 32px;
-    position: absolute;
-    bottom: 0;
-    background: rgba(0,0,0,0.4);
-    line-height: 32px;
-    font-size: 16px;
-    color: #ffffff;
-    text-align: left;
-    white-space:nowrap;
-    overflow:hidden;
-    text-overflow:ellipsis;
-    padding: 0 10px;
-    box-sizing: border-box;
-}
-.section_right .item_banner .statu{
-    width: 72px;
-    height: 22px;
-    border-radius: 11px;
-    background: rgba(0,0,0,0.4);
-    position: absolute;
-    left: 8px;
-    top: 8px;
-}
-.section_right .item_banner .statu i{
-    display: block;
-    width: 12px;
-    height: 12px;
-    float: left;
-    margin: 6px 0 0 6px;
-}
-.section_right .item_banner .statu .icon-wart{
-    background: url("/img/live/icon-live.png");
-    background-size: cover;
-}
-.section_right .item_banner .statu .icon-live{
-    background: url("/img/live/icon-liveing.gif");
-    background-size: cover;
-}
-.section_right .item_banner .statu .icon-end{
-    width: 11px;
-    height: 12px;
-    margin: 5px 0 0 5px;
-    background: url("/img/live/icon-lives.png");
-    background-size: cover;
-}
-.section_right .item_banner .statu p{
-    float: left;
-    width: 50px;
-    text-align: center;
-    font-size: 12px;
-    line-height: 22px;
-    color: #FFF;
-}
-.section_right  .item_text{
-    display: block;
-    width: 100%;
-    height:26px;
-    line-height: 26px;
-    font-size: 14px;
-    color: #4a4f58;
-    margin: 3px 0;
-}
-.section_right  .item_text .item_text_name{
-    width: 164px;
-    text-align: left;
-    white-space:nowrap;
-    overflow:hidden;
-    text-overflow:ellipsis;
-    padding-left: 12px;
-    box-sizing: border-box;
-    float: left;
-    position: relative;
-}
-.section_right  .item_text .item_text_name.info{
-    width: 100%;
-}
-.section_right  .item_text .item_text_name:before{
-    content: '';
-    width: 4px;
-    height: 4px;
-    border-radius: 50%;
-    background-color: #cccccc;
-    position: absolute;
-    left: 0;
-    top: 11px;
-}
-.section_right  .item_text .item_text_time{
-    float: right;
-}
-.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;
-}
+.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}
+.section_right .section_right_item.fixed{position:fixed;top:200px;width:284px;}
+.section_right .right_item_title{width:100%;height:22px;line-height:22px;float:left;margin-bottom:8px}
+.section_right .right_item_title p{float:left;font-size:16px;font-weight:bold;color:#4a4f58;text-align:left}
+.section_right .right_item_title a{display:inline-block;float:right;font-size:12px;color:#909090;text-align:right}
+.section_right .right_item_title a:hover{color:#E15616;text-decoration:underline}
+.section_right .right_item_main{width:100%;height:auto}
+.section_right .item_banner{width:252px;height:252px;display:block;float:left;position:relative;margin-bottom:10px}
+.section_right .item_banner img{width:252px;height:252px;display:block}
+.section_right .item_banner .name{width:100%;height:32px;position:absolute;bottom:0;background:rgba(0,0,0,0.4);line-height:32px;font-size:16px;color:#ffffff;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 10px;box-sizing:border-box}
+.section_right .item_banner .statu{width:72px;height:22px;border-radius:11px;background:rgba(0,0,0,0.4);position:absolute;left:8px;top:8px}
+.section_right .item_banner .statu i{display:block;width:12px;height:12px;float:left;margin:6px 0 0 6px}
+.section_right .item_banner .statu .icon-wart{background:url("/img/live/icon-live.png");background-size:cover}
+.section_right .item_banner .statu .icon-live{background:url("/img/live/icon-liveing.gif");background-size:cover}
+.section_right .item_banner .statu .icon-end{width:11px;height:12px;margin:5px 0 0 5px;background:url("/img/live/icon-lives.png");background-size:cover}
+.section_right .item_banner .statu p{float:left;width:50px;text-align:center;font-size:12px;line-height:22px;color:#FFF}
+.section_right  .item_text{display:block;width:100%;height:26px;line-height:26px;font-size:14px;color:#4a4f58;margin:3px 0}
+.section_right  .item_text .item_text_name{width:100%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:12px;box-sizing:border-box;float:left;position:relative}
+.section_right  .item_text .item_text_name:before{content:'';width:4px;height:4px;border-radius:50%;background-color:#cccccc;position:absolute;left:0;top:11px}
+.section_right  .item_text .item_text_time{float:right}
+.section_right .item_text .item_text_name.info{width:164px;}
+.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}
 
 /* 首页右侧导航 */
 #sideNav{display:none;position:fixed;right:0;margin-right:0;width:88px;z-index:9999;bottom:180px;}
@@ -533,7 +122,6 @@ footer{
 #sideNav .item>a:first-child:before{display:none}
 #sideNav .item>a.on{background:#FEF6F3;color:#E15616}
 
-
 /* 中屏导航与广告显示 */
 @media screen and (max-width:1420px){
     #sideNav,#scrollTop{right:10px;margin-right:0;opacity:.9;}
@@ -541,10 +129,10 @@ footer{
 }
 /*美博会*/
 .section_page .page_main_text .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;}
-.Popup{position: fixed;background: rgba(34,39,46, 0.3);top: 0;left: 0;width: 100%;height: 100%;z-index: 99999;opacity: 0;}
+.Popup{position: fixed;background: rgba(34,39,46, 0.5);top: 0;left: 0;width: 100%;height: 100%;z-index: 99999;opacity: 0;}
 .Popup.show{opacity: 1;}
-.Popup .show_popup{width: 408px;height: 346px;position: absolute;top: 0;right: 0;left: 0;bottom: 0;margin: auto;cursor: pointer}
+.Popup .show_popup{width: 655px;height: 460px;position: absolute;top: 0;right: 0;left: 0;bottom: 0;margin: auto;cursor: pointer}
 .bg_img img{width: 100%;height: 100%;}
-.bg_icon{text-align: right}
+.bg_icon{text-align: right;position: absolute;right: 70px; top: 50px;}
 .bg_icon .icon{width: 50px;height: 50px;display: inline-block;}
 .bg_icon .icon:before{width: 50px;height: 50px;background-position: -187px -545px;cursor: pointer;}

+ 5 - 0
src/main/resources/static/js/account/register-supplier.js

@@ -81,6 +81,11 @@ var registerPage = new Vue({
                     CAIMEI.dialog('两次密码输入不一致',false,function () {});
                     return;
                 }
+                if(_self.supplierUser.townId == ''){
+                    $('#cProvince').parent().addClass("error");
+                    $('#cProvince').siblings('.errTips').text('请选择省市区').addClass("show");
+                    return;
+                }
                 if(!_self.supplierUser.businessLicense){
                     $('#formbusinessLicenseImage').parent().addClass("error").find('.checked').removeClass("show");
                     $('#formbusinessLicenseImage').siblings('.errTips').text('请上传营业执照图片').addClass("show");

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

@@ -404,7 +404,7 @@ var activity = new Vue({
                     }
                 });
                 $('img[data-original]').lazyload();
-
+                $('title').html(_that.pageInfo.title);
             })
         },
 

+ 55 - 78
src/main/resources/static/js/base.js

@@ -49,82 +49,57 @@ var globalHead = new Vue({
         shopId:'',
         userIdentity:'',
         articleType: '',
-        topMenuList:[],
         isFiexd:false,
-        TabList:[
-            {name:'产品',link:'/product/instrument.html',value:'1'},
-            {name:'仪器',link:'/product/instrument.html',value:'2'}
-        ],
-        NavsList:[],
-        currenIndex:1,
+        classifyIndex:1,
         nav_linkName:''
     },
     methods: {
-        changeline:function(tab){
-            this.currenIndex=tab.value;
+        changeClassify: function(value){
+            this.classifyIndex=value;
         },
-        GetNavigationMenu :function(){//获取顶部导航分类
-            var _self = this;
-            PublicApi.GetNavigationMenu({source:1},function(response){
-                if(response.code == 0){
-                    _self.topMenuList = response.data.topMenuList;
-                }else{
-                    CAIMEI.Alert(response.msg, '确定');
-                }
-            });
-        },
-        GetProductClassify: function(index) { // 导航分类菜单
-            var _self = this;
-            PublicApi.GetProductClassify({typeSort:index,source :'www'},function(response){
-                if(response.code == 0){
-                    if(index == 1){
-                        var navObject = {
-                            name:'产品',
-                            list:response.data
-                        };
-                        _self.NavsList.push(navObject)
-                    }else{
-                        var navObject = {
-                            name:'仪器',
-                            list:response.data
-                        };
-                        _self.NavsList.push(navObject)
-                    }
-                    if(isPC){
-                        setTimeout(function(){
-                            $('#mainClassify').slide({
-                                mainCell:".clsCon",
-                                titCell:".clsTab a",
-                                trigger: "mouseover"
-                            });
-                        },500);
-                        setTimeout(function(){
-                            $('#mainClassify').slide({
-                                mainCell:".tabItem_right",
-                                titCell:".tabItem_lift a",
-                                trigger: "mouseover"
-                            });
-                        },500);
-                    }else{
-                        setTimeout(function(){
-                            $('#mainClassify').slide({
-                                mainCell:".clsCon",
-                                titCell:".clsTab a",
-                                trigger: "click"
-                            });
-                        },500);
-                        setTimeout(function(){
-                            $('#mainClassify').slide({
-                                mainCell:".tabItem_right",
-                                titCell:".tabItem_lift a",
-                                trigger: "click"
-                            });
-                        },500);
-                    }
-                }else{
-                    CAIMEI.Alert(response.msg, '确定');
-                }
-            });
+        // 初始化分类菜单效果
+        initClassufyTab: function(){
+            if(isPC){
+                setTimeout(function(){
+                    $('#mainClassify').slide({
+                        mainCell:".clsCon",
+                        titCell:".clsTab a",
+                        trigger: "mouseover"
+                    });
+                    $('#mainClassify_1').slide({
+                        mainCell:".tabItem_right",
+                        titCell:".tabItem_lift a",
+                        trigger: "mouseover"
+                    });
+                    $('#mainClassify_2').slide({
+                        mainCell:".tabItem_right",
+                        titCell:".tabItem_lift a",
+                        trigger: "mouseover"
+                    });
+                    $("#mainClassify_2 .tabItem_lift a").eq(0).trigger("mouseover");
+                    $("#mainClassify_1 .tabItem_lift a").eq(0).trigger("mouseover");
+                },500);
+            }else{
+                setTimeout(function(){
+                    $('#mainClassify').slide({
+                        mainCell:".clsCon",
+                        titCell:".clsTab a",
+                        trigger: "click"
+                    });
+                    $('#mainClassify_1').slide({
+                        mainCell:".tabItem_right",
+                        titCell:".tabItem_lift a",
+                        trigger: "click"
+                    });
+                    $('#mainClassify_2').slide({
+                        mainCell:".tabItem_right",
+                        titCell:".tabItem_lift a",
+                        trigger: "click"
+                    });
+                    $("#mainClassify_2 .tabItem_lift a").eq(0).trigger("click");
+                    $("#mainClassify_1 .tabItem_lift a").eq(0).trigger("click");
+                },500);
+            }
         },
         // 头部购物车数据
         getHeadCart: function(userId) {
@@ -185,17 +160,17 @@ var globalHead = new Vue({
         }
     },
     created: function () {
-        // 导航分类数据
-        this.GetProductClassify(1);
-        this.GetProductClassify(2);
-        this.GetNavigationMenu();
         // 判断登录状态
         if (globalUserData.token) {
             this.loginStatus = true;
             this.userData = globalUserData;
-            if(this.userData.userId){
+            var userId = this.userData.userId;
+            if(userId){
+                var _self = this;
                 // 获取头部购物车数据
-                this.getHeadCart(this.userData.userId);
+                setTimeout(function(){
+                    _self.getHeadCart(userId);
+                }, 1000);
             }
         }
         // 信息中心
@@ -203,8 +178,10 @@ var globalHead = new Vue({
     },
     mounted:function(){
         var _self = this;
+        // 初始化分类菜单效果
+        this.initClassufyTab();
         var userData = JSON.parse(window.localStorage.getItem('userInfo'));
-        if(userData!=null){
+        if(userData!=null) {
             this.userIdentity = userData.userIdentity;
             this.shopId = userData.shopId;
         }

+ 14 - 4
src/main/resources/static/js/common/serviceapi/utils.service.js

@@ -8,10 +8,20 @@ var PublicApi = {
             Http.uploadImage({ url:'/formData/MultiPictareaddData',data:params},callback)
         },
         GetHomeData:function(params,callback){ //首页数据
-            Http.AjaxService({ url:'/home/data', type:'get', data:params, json:false})
-                .then(function(res){
-                    callback(res)
-                });
+            // Http.AjaxService({ url:'/home/data', type:'get', data:params, json:false})
+            //     .then(function(res){
+            //         callback(res)
+            //     });
+            Http.AjaxService({
+                url:'/commodity/home/floor',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res)
+            });
         },
         GetHomeBanner:function(params,callback){ //首页bnner
             Http.AjaxService({ url:'/home/banner', type:'get', data:params, json:false})

+ 3 - 0
src/main/resources/static/js/flea-market/list.js

@@ -160,6 +160,9 @@ var fleaMarketList = new Vue({
      mounted:function () {
           var _this = this;
           _this.gettabList();
+         setTimeout(function(){  // 图片懒加载
+             $("img[data-original]").lazyload();
+         },500);
           if(!isPC){
             $('footer').addClass("noneImportant");
             //移动端上垃加载更多

+ 6 - 4
src/main/resources/static/js/flea-market/secondDetail.js

@@ -63,10 +63,12 @@ var fleaMarket = new Vue({
            }else {
                 _this.isRequest =false;
            }
-             _this.detail = res.data;
-             _this.previewThumb =  res.data.imageList;
-             _this.previewBigimage =res.data.imageList[0];
-
+                _this.detail = res.data;
+                _this.previewThumb =  res.data.imageList;
+                _this.previewBigimage =res.data.imageList[0];
+                setTimeout(function(){  // 图片懒加载
+                      $("img[data-original]").lazyload();
+                },500);
               if(_this.userID!=null){
                 if(res.data.secondHandType ==2){ //临期产品显示
                    _this.HandType =true;

+ 170 - 178
src/main/resources/static/js/index.js

@@ -1,80 +1,44 @@
+var isFormal = window.location.href.indexOf('www.caimei365.com') !== -1;
+if(isFormal){var _czc = _czc || [];_czc.push(["_setAccount", "1279558759"]);}
 var homeData = new Vue({
     el: '#container',
     data: {
         userId:0,
-        images: [],
-        listLoading:true,
-        advertising: [],
         asideNav: [],
-        productIdArr:[],
         liveList:[],//右侧直播模块
         cmImageList:[],//右侧活动模块
         infoList:[],//右侧文章模块
-        pageList:[],//左侧楼层
-        supplierImage:'',//供应商banner
-        supplierWwwLink:'',//供应商banner 链接
-        supplierList:[],//供应商列表
-        topMenuList:[],
-        showflag:false,
+        popupFlag:false
     },
     filters: {
-        statusType:function(value) {
-            switch (value) {
-                case 1:
-                    return  '未开始';
-                    break;
-                case 2:
-                    return  '直播中';
-                    break;
-                case 3:
-                    return  '看回放';
-                    break;
-            }
-        },
-        statusTypeClass:function(value) {
-            switch (value) {
-                case 1:
-                    return  'icon-wart';
-                    break;
-                case 2:
-                    return  'icon-live';
-                    break;
-                case 3:
-                    return  'icon-end';
-                    break;
-            }
-        },
-        NumFormat:function(value) {//处理金额
+        NumFormat: function(value) {//处理金额
             return Number(value).toFixed(2);
         },
     },
     methods: {
-
-        zhuanti:function(){
-            this.showflag=false;
-            window.location.href='/product/beautytopic.html';
+        // 美博会弹窗链接
+        popupPage:function(){
+            this.popupFlag=false;
+            window.location.href='/activity/activityTopic.html?id=306&name=美博会';
             localStorage.setItem('lockTime',Date.now());
             window.localStorage.setItem('isActivityStatus',true);
         },
-        closepopup:function(){
-              this.showflag=false;
+        // 关闭美博会弹窗
+        closePopup:function(){
+              this.popupFlag=false;
               $('.Popup').slideUp(100);
               localStorage.setItem('lockTime',Date.now());
               localStorage.setItem('isActivityStatus',true);
         },
-        GetBanners: function(){
-            var _self = this;
-            PublicApi.GetHomeBanner({},function(response){
-                if(response.code == 0){
-                    _self.images = response.data;
-                    _self.listLoading =false;
-                    _self.SwiperBanner();
-                }else{
-                    CAIMEI.Alert(response.msg, '确定');
-                }
-            });
+        diffTime:function(time){
+            var date = Date.now();
+            console.log('缓存时间戳',time);
+            console.log('当前时间戳',date);
+            console.log('计算时间戳',(date-time));
+            return (date -time) < 2*60*1000 ? false : true
         },
-        SwiperBanner: function(){
+        // 页面主图轮播
+        swiperBanner: function(){
             setTimeout(function(){
                 if (isPC) {
                     $('#swiper-container').slide({
@@ -107,73 +71,6 @@ var homeData = new Vue({
                 }
             },300);
         },
-        GetNavigationMenu :function(){//获取顶部导航分类
-            var _self = this;
-            PublicApi.GetNavigationMenu({source:1},function(response){
-                if(response.code == 0){
-                    _self.topMenuList = response.data.topMenuList;
-                }else{
-                    CAIMEI.Alert(response.msg, '确定');
-                }
-            });
-        },
-        GetHomeFloorData: function(){
-            var _self = this;
-            PublicApi.GetHomeData({userId:GLOBAL_USER_ID,source:1},function(response){
-                if(response.code == 0){
-                    var data = response.data;
-                    // var floorList = [];
-                    _self.pageList = data.homePageFloor;
-                    _self.liveList = data.liveList;
-                    _self.supplierList = data.supplierImage.qualitySupplierList;
-                    _self.supplierImage = data.supplierImage.wwwImage;
-                    _self.supplierWwwLink = data.supplierImage.wwwLink;
-                    _self.pageList.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;
-                                    }
-                                }
-                            }
-                        }
-                    });
-                    console.log(_self.pageList)
-                    _self.GetHomeRightData();
-                    setTimeout(function() {
-                        // 设置侧边导航数据
-                        _self.SetAsideNav();
-                        _self.SwiperFloor();
-                    },500);
-                }else{
-                    CAIMEI.Alert(response.msg, '确定');
-                }
-            });
-        },
         GetHomeRightData: function(){
             var _self = this;
             PublicApi.GetHomeRightData({ source: 1 },function(response){
@@ -187,43 +84,31 @@ var homeData = new Vue({
                 }
             });
         },
-        PromotionsFormat:function(promo){//促销活动类型数据处理
-            if(promo!=null){
-                if(promo.type == 1 && promo.mode == 1){
-                    return true
-                }else{
-                    return false
-                }
-            }
-            return false
-        },
-        showMorePageFn:function(page){
-            page.isPageMore = !page.isPageMore;
-        },
-        getAdvertising: function(){
+        setAsideNav: function(){
             var _self = this;
-            $.getJSON("/home/advertising").done(function (r) {
-                if (r.code === 0 && r.data) {
-                    _self.advertising = r.data;
+            if (isPC) {
+                var titArr = $('.section_page_title').find('h1');
+                _self.asideNav = [];
+                for (var i=0; i<titArr.length; i++){
+                    _self.asideNav.push({
+                        id: $(titArr[i]).attr("data-id"),
+                        value: $(titArr[i]).text()
+                    })
                 }
-            });
-        },
-        SetAsideNav: function(){
-            var _self = this;
-            var titArr = $('.section_page_title').find('h1');
-            for (var i=0; i<titArr.length; i++){
-                _self.asideNav.push({
-                    id: $(titArr[i]).attr("data-id"),
-                    value: $(titArr[i]).text()
-                })
             }
         },
-        SwiperFloor: function(){
-            setTimeout(function(){  // 图片懒加载
-                $("img[data-original]").lazyload();
-            },500);
+        // 商品楼层轮播
+        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",
@@ -246,8 +131,11 @@ var homeData = new Vue({
                             el: '.swiper-pagination'
                         }
                     });
-
                 }
+                // 图片懒加载
+                setTimeout(function(){
+                    $("#recommendBox img[data-original]").lazyload();
+                },0)
             },500);
         },
         showSubNav: function(event){
@@ -267,55 +155,159 @@ var homeData = new Vue({
                 }
             }
         },
-        diffTime:function(time){
-            var date = Date.now();
-            console.log('缓存时间戳',time);
-            console.log('当前时间戳',date);
-            console.log('计算时间戳',(date-time));
-            return (date -time) < 2*60*1000 ? false : true
+        // 设置页面查看更多按钮显示
+        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) {
+                    if([1,3].indexOf(id) !== -1 && size>7) {
+                        readMore = true;
+                    }
+                    if([2,4,7].indexOf(id) !== -1 && size>5) {
+                        readMore = true;
+                    }
+                    if(5 === id && size>10) {
+                        readMore = true;
+                    }
+                } else {
+                    if([1,3].indexOf(id) !== -1 && size>3) {
+                        readMore = true;
+                    }
+                    if([2,4].indexOf(id) !== -1 && size>2) {
+                        readMore = true;
+                    }
+                    if(5 === id && size>4) {
+                        readMore = true;
+                    }
+                }
+                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){
+                        // 用户身份 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 (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();
+                            }
+                        } 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();
+                        }
+                        // 二手商品供应商显示等级
+                        // if (priceFlag === 3 && userIdentity===3) {
+                        //     parent.find(".main_price_show").hide();
+                        //     parent.find(".price_grade_shop").show();
+                        // }
+                    });
+                }
+            });
         }
     },
     created: function() {
-        var userInfo = localStorage.getItem('userInfo');
-        if(userInfo){
-            this.userId = JSON.parse(userInfo).userId;
+        if(GLOBAL_TOKEN){
+            this.userId = GLOBAL_USER_ID;
         }
-        this.GetBanners();
-        this.GetNavigationMenu();
-        this.GetHomeFloorData();
     },
     mounted: function() {
         var _this = this;
-
-        // this.getAdvertising();
+        // 页面主图轮播
+        this.swiperBanner();
+        // 设置页面查看更多
+        this.setReadeMore();
+        // 推荐专区商品轮播
+        this.swiperFloor();
+        // 设置右侧导航
+        this.setAsideNav();
+        // 获取设置商品价格
+        if (GLOBAL_USER_ID) {
+            this.setPriceShown();
+        }
+        // Dom加载后
+        this.$nextTick(function(){
+            // 图片懒加载
+            $("img[data-original]").lazyload();
+        });
         // 侧边栏滚动判断
         var distance = 0;
         $(window).scroll(function () {
             if($('body').attr("style") && $('body').attr("style").indexOf('fixed')>0){
                 return false;
             }
-            var scoll = Math.max($('html').scrollTop(), $('body').scrollTop());
-            if(scoll >300){
+            var scrollSize = Math.max($('html').scrollTop(), $('body').scrollTop());
+            if(scrollSize >300){
                 $('#sideNav').show();
                 if(isPC){
-                    $('#advertising').show();
+                    // $('#advertising').show();
                     // 鼠标滚动楼层
                     setTimeout(function () {
-                        distance = scoll;
+                        distance = scrollSize;
                     },0);
+                    // 侧边导航栏高亮
                     $('.section_page_title').each(function (i,e) {
                         //每个元素距离顶部的距离
                         var top = $(e).offset().top;
-                        if(scoll > distance){
-                            if(scoll >= (top-300)){
+                        if(scrollSize > distance){
+                            if(scrollSize >= (top-300)){
                                 $('#sideNav').find('a').eq(i).addClass('on').siblings().removeClass("on");
                             }
                         }else {
-                            if(scoll >= (top-600)){
+                            if(scrollSize >= (top-600)){
                                 $('#sideNav').find('a').eq(i).addClass('on').siblings().removeClass("on");
                             }
                         }
                     });
+                    // 侧边模块固定 fixed
+                    if($('#fixed-wrap').length>0 && $(window).width()>1400) {
+                        var tocWrap = $('#fixed-wrap'),
+                            changeSize = $("#globalHead").outerHeight() + $("#swiper-container").outerHeight() + $("#sidebar").outerHeight();
+                            //changeSize = document.getElementById("header").offsetHeight + document.getElementById("sidebar").offsetHeight;
+                        scrollSize >= changeSize ? tocWrap.addClass("fixed") : tocWrap.removeClass("fixed");
+                    }
                 }
             }else {
                 $('#sideNav').hide();
@@ -331,9 +323,9 @@ var homeData = new Vue({
             });
         },2000);
         //关闭广告图
-        // $('#advertising').on('click','.close',function () {
-        //     $(this).parents('.item').hide();
-        // });
+        $('#advertising').on('click','.close',function () {
+            $(this).parents('.item').hide();
+        });
         // var isActivityStatus =  localStorage.getItem('isActivityStatus');
         // //新加优惠券弹窗
         // if(isActivityStatus){

+ 44 - 20
src/main/resources/static/js/pay/caimei-weisapay.js

@@ -1,6 +1,9 @@
 /**
  *Created by ZHJY on 2020/7/14.
  */
+// var _WS_SERVICE = 'http://192.168.2.67:8010'; //维沙网银支付本地联调
+// var _WS_SERVICE = 'https://mall2b-b.caimei365.com';//维沙网银支付测试联调
+var _WS_SERVICE = 'https://mall2b.caimei365.com';//维沙网银支付正式联调
 var payContainer = new Vue({
     el:"#payContainer",
     data: {
@@ -114,8 +117,7 @@ var payContainer = new Vue({
     methods: {
         LinkInfoOrderBank:function(linkLogo){//初始化支付订单加密数据
             var _self = this;
-            PayApi.PayOrderLinkData({linkLogo:linkLogo},function(response){
-                console.log(response);
+            $.getJSON(_WS_SERVICE+"/PayOrder/linkData",{ linkLogo: linkLogo }).done(function (response) {
                 if(response.code === 0){
                     var _data = response.data;
                     _self.payInfo.PAY_ORDERID = _data.orderPayLink.orderId;
@@ -132,18 +134,18 @@ var payContainer = new Vue({
                     }else{
                         _self.isErrorShow = true;
                         _self.isRequest = true;
-                        switch (_self.payInfo.PAY_CODE) {
-                            case '-2':
+                        switch (_data.code) {
+                            case -2:
                                 _self.iconErrorClass = 'offline';
                                 _self.iconErrorText = '订单已通过线下转账方式付款';
                                 _self.iconErrorMsgnone = '不能再使用企业网银支付';
                                 break;
-                            case '-3':
+                            case -3:
                                 _self.iconErrorClass = 'fail';
                                 _self.iconErrorText = '链接超过24小时未完成支付,已失效';
                                 _self.iconErrorMsgnone = '请重新生成支付链接,继续支付';
                                 break;
-                            case '5':
+                            case 5:
                                 _self.iconErrorClass = 'paid';
                                 _self.iconErrorText = '款项已支付完成,无需重复支付';
                                 _self.iconErrorMsgnone = '';
@@ -160,10 +162,13 @@ var payContainer = new Vue({
                     CAIMEI.Alert(response.msg,'确定',false);
                 }
             });
+            // PayApi.PayOrderLinkData({linkLogo:linkLogo},function(response){
+
+            // });
         },
         infoPayOrderCheckoutCounter:function(){//初始化订单数据
             var _self = this;
-            PayApi.PayOrderCheckoutCounter({orderId:_self.payInfo.PAY_ORDERID},function(response){
+            $.getJSON(_WS_SERVICE+"/PayOrder/checkoutCounter",{ orderId:_self.payInfo.PAY_ORDERID }).done(function (response) {
                 if(response.code === 0){
                     var data = response.data;
                     _self.discernReceiptList = data.discernReceipt;
@@ -185,7 +190,10 @@ var payContainer = new Vue({
                 }else{
                     CAIMEI.Alert(response.msg,'确定',false);
                 }
-            })
+            });
+            // PayApi.PayOrderCheckoutCounter({orderId:_self.payInfo.PAY_ORDERID},function(response){
+
+            // })
         },
         PaySubmitFn:function(){//立即支付
             var _self = this;
@@ -206,22 +214,39 @@ var payContainer = new Vue({
         PayOrderPcMallPay:function(params){//网银支付请求
             var _self = this;
             _self.isSubMitStatus=true;
-            PayApi.PayOrderPcMallPay(params,function(response){
-                if(response.code == 0){
-                    _self.isPayAlert = true;
-                    _self.mbOrderId = response.data.data.mbOrderId;
-                    window.open(response.data.data.payUrl);
-                    _self.isSubMitStatus=false;
-                }else{
-                    CAIMEI.Alert(response.msg,'确定',false);
-                    _self.isSubMitStatus=false;
+            $.ajax({
+                type: 'post',
+                url: _WS_SERVICE+'/PayOrder/pcMallPay',
+                xhrFields: {
+                    withCredentials: true
+                },
+                data: JSON.stringify(params),
+                headers:{
+                    'Content-Type':'application/json;charset=UTF-8',
+                },
+                success : function (response) {
+                    if(response.code == 0){
+                        _self.isPayAlert = true;
+                        _self.mbOrderId = response.data.data.mbOrderId;
+                        window.open(response.data.data.payUrl);
+                        _self.isSubMitStatus=false;
+                    }else{
+                        CAIMEI.Alert(response.msg,'确定',false);
+                        _self.isSubMitStatus=false;
+                    }
+                },
+                error : function (res) {
+
                 }
-            })
+            });
+            // PayApi.PayOrderPcMallPay(params,function(response){
+
+            // })
         },
         RefreshBody:function(){//刷新弹窗
             var _self = this;
             _self.isPayAlert = false;
-            PayApi.PayOrderFindOrderStatus({mbOrderId:_self.mbOrderId},function(response){
+            $.getJSON(_WS_SERVICE+"/PayOrder/findOrderStatus",{ mbOrderId:_self.mbOrderId }).done(function (response) {
                 _self.isPayAlert = false;
                 var data = response.data.data;
                 if(data.status === '1'){
@@ -306,6 +331,5 @@ var payContainer = new Vue({
         var _self = this;
         _self.payInfo.PAY_LINKLOGO= CAIMEI.getUrlParam('linkLogo');
         _self.LinkInfoOrderBank(_self.payInfo.PAY_LINKLOGO);
-
     }
 });

+ 15 - 15
src/main/resources/static/js/supplier-center/setting/information.js

@@ -17,10 +17,10 @@
             linkMan:'',//联系人
             contractEmail:'',//
             contractPhone:'',//固定电话
-            fax:'',//传真
+            faxNumber:'',//传真
             legalPerson:'',//法人代表
             registeredCapital:'',//注册资本
-            nature:'',//公司性质
+            companyNature:'',//公司性质
             turnover:'',//年营业额
         },
         form:{
@@ -46,7 +46,7 @@
             socialCreditCode:'',//营业执照编号
             businessLicense:'',//营业执照
             logo:'',//公司logo
-            productionLicence:'',//生产
+            operationLicence:'',//生产
             hygienicLicense:'',//卫生
             taxLicense:'',//税务
             honorCertification:'',//荣誉
@@ -121,25 +121,25 @@
     },
          shopInfo:function(){
             var _this = this;
-            console.log()
              SupplierApi.shopInfo({userId:_this.params.userId},function(res){
                 if(res.code==0){
+                    console.log('asda-=======',res.data);
                     _this.isRequset=false;
                     var shop = res.data.shop;
                     var user = res.data.user;
                     _this.params.name = shop.name;
                     _this.params.shortName = shop.shortName;
                     _this.params.linkMan = shop.linkMan;
-                    _this.params.contractEmail = user.contractEmail;
+                    _this.params.contractEmail = shop.contractEmail;
                     _this.params.address = shop.provincialAddress;
                     _this.params.provinceId = shop.provinceId;
                     _this.params.cityId = shop.cityId;
                     _this.params.townId = shop.townId;
                     _this.params.contractPhone = shop.contractPhone;
-                    _this.params.fax = shop.fax;
+                    _this.params.faxNumber = shop.faxNumber;
                     _this.params.legalPerson = shop.legalPerson;
                     _this.params.registeredCapital = shop.registeredCapital;
-                    _this.params.nature = shop.nature;
+                    _this.params.companyNature = shop.companyNature;
                     _this.params.turnover = shop.turnover;
                     // _this.shopMainPros = _this.setNewMainpro(shop.mainpro);
                     // _this.shopScope = _this.setNewScope(shop.businessScope);
@@ -154,7 +154,7 @@
                     _this.params3.socialCreditCode = shop.socialCreditCode;
                     _this.params3.businessLicense = shop.businessLicense;
                     _this.params3.logo = shop.logo;
-                    _this.params3.productionLicence = shop.productionLicence;
+                    _this.params3.operationLicence = shop.operationLicence;
                     _this.params3.hygienicLicense = shop.hygienicLicense;
                     _this.params3.taxLicense = shop.taxLicense;
                     _this.params3.honorCertification = shop.honorCertification;
@@ -228,17 +228,17 @@
                         return false;
                     }
                 }
-              SupplierApi.modifiedData(params,function (res) {
-                     console.log(res)
-                      if(res.code === 0){
+            params = Object.assign(_self.params,_self.params2,_self.params3);
+            SupplierApi.modifiedData(params,function (res) {
+                  if(res.code === 0){
                         CAIMEI.dialog('修改成功',true,function () {
                             window.location.href='/supplier/dashboard.html';
                             _self.loginLoading = false;
                         });
-                    } else {
+                  } else {
                         CAIMEI.Alert(res.msg,'确定',false);
                         _self.loginLoading = false;
-                    }
+                  }
                 })
             })
          },
@@ -308,7 +308,7 @@
             var file = inputDOM.files;
             _this.formData.append('file', file[0]);
             PublicApi.uploadimg(_this.formData,function(response){
-                _this.params3.productionLicence = response.data;
+                _this.params3.operationLicence = response.data;
                 event.target.value = '';
             });
         },
@@ -361,7 +361,7 @@
             this.params3.hygienicLicense = '';
         },
         deleteproducImage:function(){//删除生产
-            this.params3.productionLicence = '';
+            this.params3.operationLicence = '';
         },
          deletelogoImage:function(){//删除logo图片
             this.params3.logo = '';

+ 44 - 47
src/main/resources/static/js/user-center/setting/upgrade.js

@@ -92,15 +92,13 @@ var upgradePage = new Vue({
                         if(data.club.mainProduct){
                             _self.userMainPros = _self.setNewMainpro(data.club.mainProduct);
                             _self.medicaCampNullList = _self.setNewMainProduct(_self.userMainPros);
-                            console.log(_self.userMainPros)
                         }else{
                             _self.userMainPros = _self.medicaCampNullList;
                         }
-                    }else{
+                    }else if(_self.clubUpgradeUser.firstClubType == 2){
                         if(data.club.mainProduct){
                             _self.userMainPros = _self.setNewMainpro(data.club.mainProduct);
                             _self.mentuzCampNullList = _self.setNewMainProduct(_self.userMainPros);
-                            console.log(_self.userMainPros)
                         }else{
                             _self.userMainPros = _self.mentuzCampNullList;
                         }
@@ -123,7 +121,6 @@ var upgradePage = new Vue({
                     }else {
                          _self.clubUpgradeUser.townId = 0
                     }
-
                 }else{
                     CAIMEI.Alert(response.msg,'确定',false);
                 }
@@ -160,61 +157,61 @@ var upgradePage = new Vue({
                     setTimeout(function () {
                     _self.secondtypeflag = false;
                 },2000)
-                return;
+                    return;
                 }
                 if(_self.userMainPros==''){
-                          _self.mproflag = true;
-                         setTimeout(function () {
-                            _self.mproflag = false;
-                        },2000)
-                         return;
-                    }
+                      _self.mproflag = true;
+                     setTimeout(function () {
+                        _self.mproflag = false;
+                    },2000)
+                    return;
+                }
             }
             if(_self.clubUpgradeUser.firstClubType==2){
                 if(_self.userMainPros ==''){
                     _self.userMainProflag = true;
                  setTimeout(function () {
                     _self.userMainProflag = false;
-                },2000)
-                  return;
+                },2000);
+                    return;
                 }
             }
-                if (_self.loginLoading) { return false; }
-                this.$nextTick(function() {
-                    _self.clubUpgradeUser.mainProduct = _self.userMainPros.join("/");
-                var  params= {
-                        userId:_self.clubUpgradeUser.userId,
-                        clubId:_self.clubUpgradeUser.clubId,				//会所Id
-                        name:_self.clubUpgradeUser.name,
-                        linkMan:_self.clubUpgradeUser.linkMan,
-                        shortName:_self.clubUpgradeUser.shortName,
-                        contractEmail:_self.clubUpgradeUser.contractEmail,
-                        provinceId:_self.clubUpgradeUser.provinceId,
-                        cityId:_self.clubUpgradeUser.cityId,
-                        townId:_self.clubUpgradeUser.townId,
-                        address:_self.clubUpgradeUser.address,
-                        socialCreditCode:_self.clubUpgradeUser.socialCreditCode,
-                        businessLicense:_self.clubUpgradeUser.businessLicense,
-                        shopPhoto:_self.clubUpgradeUser.shopPhoto,
-                        firstClubType:Number(_self.clubUpgradeUser.firstClubType), //机构类型分类 医美:0和生美:1
-                        secondClubType:Number(_self.clubUpgradeUser.secondClubType),	//机构类型二级分类 诊所:1,门诊:2,医院:3
-                        department:_self.clubUpgradeUser.department,				//科室
-                        medicalPracticeLicense:_self.clubUpgradeUser.medicalPracticeLicense,//资质图片
-                        mainProduct:_self.clubUpgradeUser.mainProduct,
-                    };
-                    _self.loginLoading = true;
-                    UserApi.ClubUpgrade(params,function (response) {
-                        if(response.code === 0){
-                            CAIMEI.Alert('您的升级申请已提交审核','确定',true,function () {
-                                _self.clubLoginIndex();
-                                _self.loginLoading = false;
-                            });
-                        } else {
-                            CAIMEI.Alert(response.msg,'确定',false);
+            _self.clubUpgradeUser.mainProduct = _self.userMainPros.join("/");
+            if (_self.loginLoading) { return false; }
+            this.$nextTick(function() {
+            var  params= {
+                    userId:_self.clubUpgradeUser.userId,
+                    clubId:_self.clubUpgradeUser.clubId,				//会所Id
+                    name:_self.clubUpgradeUser.name,
+                    linkMan:_self.clubUpgradeUser.linkMan,
+                    shortName:_self.clubUpgradeUser.shortName,
+                    contractEmail:_self.clubUpgradeUser.contractEmail,
+                    provinceId:_self.clubUpgradeUser.provinceId,
+                    cityId:_self.clubUpgradeUser.cityId,
+                    townId:_self.clubUpgradeUser.townId,
+                    address:_self.clubUpgradeUser.address,
+                    socialCreditCode:_self.clubUpgradeUser.socialCreditCode,
+                    businessLicense:_self.clubUpgradeUser.businessLicense,
+                    shopPhoto:_self.clubUpgradeUser.shopPhoto,
+                    firstClubType:Number(_self.clubUpgradeUser.firstClubType), //机构类型分类 医美:0和生美:1
+                    secondClubType:Number(_self.clubUpgradeUser.secondClubType),	//机构类型二级分类 诊所:1,门诊:2,医院:3
+                    department:_self.clubUpgradeUser.department,				//科室
+                    medicalPracticeLicense:_self.clubUpgradeUser.medicalPracticeLicense,//资质图片
+                    mainProduct:_self.clubUpgradeUser.mainProduct,
+                };
+                _self.loginLoading = true;
+                UserApi.ClubUpgrade(params,function (response) {
+                    if(response.code === 0){
+                        CAIMEI.Alert('您的升级申请已提交审核','确定',true,function () {
+                            _self.clubLoginIndex();
                             _self.loginLoading = false;
-                        }
-                    });
+                        });
+                    } else {
+                        CAIMEI.Alert(response.msg,'确定',false);
+                        _self.loginLoading = false;
+                    }
                 });
+            });
         },
         clubLoginIndex:function(){// 跳过升级直接去个人中心
             window.location.href = '/user/dashboard.html';

+ 2 - 1
src/main/resources/templates/account/bind.html

@@ -2,10 +2,11 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/account/bind.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 1 - 1
src/main/resources/templates/account/components/header.html

@@ -7,7 +7,7 @@
                 <img class="h5Only" src="/img/base/logo_m.png" alt="采美 生美/医美采购服务平台"/>
             </a>
             <a href="javascript:void(0);" title="关闭" class="h5Only closeAccount" onclick="toBeforePath()"></a>
-            <p class="accountLogin">已有账号?请直接<a href="/login.html">登录</a></p>
+            <p class="accountLogin">已有账号?请直接<a href="/login.html" rel="nofollow">登录</a></p>
         </div>
     </div>
     <input type="hidden" th:value="${spiServer}" id="spiServer"><input type="hidden" th:value="${coreServer}" id="coreServer">

+ 2 - 1
src/main/resources/templates/account/forget.html

@@ -2,10 +2,11 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/account/forget.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 4 - 3
src/main/resources/templates/account/login.html

@@ -2,10 +2,11 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/account/login.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->
@@ -35,9 +36,9 @@
                     <a href="/forget.html">忘记密码?</a>
                 </div>
                 <div class="submit clear">
-                    <a v-if="isPC" class="btn" href="/register.html">免费注册</a>
+                    <a v-if="isPC" class="btn" href="/register.html" rel="nofollow">免费注册</a>
                     <button class="btn" type="button" @click="loginSubmit()">登录</button>
-                    <a v-if="!isPC" class="btn" href="/register.html">免费注册</a>
+                    <a v-if="!isPC" class="btn" href="/register.html" rel="nofollow">免费注册</a>
                     <a v-if="!isPC && isWeChat" class="weChat" @click="weChatLogin()" href="javascript:void(0);">
                         <span>微信授权登录</span><i class="mIcon"></i>
                     </a>

+ 2 - 1
src/main/resources/templates/account/register-club.html

@@ -2,10 +2,11 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/account/register.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 9 - 6
src/main/resources/templates/account/register-supplier.html

@@ -2,10 +2,11 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/account/register.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->
@@ -100,9 +101,12 @@
                             <option value="">请选择</option>
                             <option v-for="(item ,index) in townArray" :key="index" :value="item.townID"  >{{item.name}}</option>
                         </select>
-                        <textarea placeholder="请输入您的详细联系地址"  v-model="supplierUser.address" @blur="blurHandle($event)" needverify></textarea>
+                        <span class="errTips icon mIcon"></span>
+                    </div>
+                    <div class="formLine">
+                        <textarea placeholder="请输入您的详细联系地址"  v-model="supplierUser.address" @blur="blurHandle($event)" style="margin-top: 0;" needverify></textarea>
                         <i class="checked icon mIcon"></i>
-                        <span class="errTips icon mIcon" tips="请输入正确的联系地址"></span>
+                        <span class="errTips icon mIcon" tips="请输入的联系地址"></span>
                     </div>
                     <div class="formLine">
                         <p><em>*</em>营业执照编号:</p>
@@ -153,9 +157,8 @@
                     </div>
                     <div class="formLine">
                         <p>官网地址:</p>
-                        <input type="text" v-model="supplierUser.website" placeholder="请输入网址" maxlength="100" id="website"  @blur="blurHandle($event)">
-                        <i class="checked icon mIcon"></i>
-                        <span class="errTips icon mIcon" tips="请输入正确的公司名称"></span>
+                        <input type="text" v-model="supplierUser.website" placeholder="请输入网址" maxlength="100" id="website">
+                        <span class="errTips icon mIcon"></span>
                     </div>
                     <div class="formLine">
                         <p>微信公众号:</p>

+ 2 - 1
src/main/resources/templates/account/register.html

@@ -2,10 +2,11 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/account/register.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 3 - 3
src/main/resources/templates/account/supplier-information.html

@@ -2,10 +2,11 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/account/register.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body class="bgNO">
 <!-- 引用头部 -->
@@ -109,8 +110,7 @@
                     </div>
                     <div class="formLine">
                         <p>官网地址:</p>
-                        <input type="text" v-model="supplierUser.website" placeholder="请输入网址" maxlength="100" id="website" @blur="blurHandle($event)">
-                        <i class="checked icon mIcon"></i>
+                        <input type="text" v-model="supplierUser.website" placeholder="请输入网址" maxlength="100" id="website">
                         <span class="errTips icon mIcon" tips="请输入网址"></span>
                     </div>
                     <div class="formLine">

+ 2 - 1
src/main/resources/templates/account/upgrade.html

@@ -2,10 +2,11 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/account/upgrade.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 6 - 5
src/main/resources/templates/activity/activityTopic.html

@@ -4,17 +4,18 @@
 <html>
 
 <head>
-  <template th:replace="components/head-link"></template>
-  <link href="/lib/swiper.min.css" media="screen and (min-width:768px)" rel="stylesheet" type="text/css">
-  <link th:href="@{/css/activity/activityTopic.css(v=${version})}" rel="stylesheet" type="text/css">
-  <title>活动专题页面</title>
+    <template th:replace="components/head-link"></template>
+    <link href="/lib/swiper.min.css" media="screen and (min-width:768px)" rel="stylesheet" type="text/css">
+    <link th:href="@{/css/activity/activityTopic.css(v=${version})}" rel="stylesheet" type="text/css">
+    <title>活动专题页面</title>
+    <template th:replace="components/analysis"></template>
 </head>
 
 <body>
   <!-- 引用头部 -->
   <template th:replace="components/header"></template>
 
-  <div id="activity" class="activity" v-cloak>
+  <div id="activity" class="activity" v-cloak :class="isPC ? '' : 'mg-bottom' ">
     <!--  loading  -->
     <div v-if="listLoading" class="loading">
         <img src="/img/base/loading.gif">

+ 0 - 3
src/main/resources/templates/article/components/article-link.html

@@ -13,6 +13,3 @@
     <link href="/lib/jquery-confirm.min.css" rel="stylesheet" type="text/css">
     <link th:href="@{/css/base/init.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/article/article.css(v=${version})}" rel="stylesheet" type="text/css">
-    <!--百度统计 start-->
-    <script th:if="${siteEnv}==2">var _hmt=_hmt||[];(function(){var hm=document.createElement("script");hm.src = "https://hm.baidu.com/hm.js?ccdb07ae255aa2a1d68c7c725a40d99c";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm,s);})();</script>
-    <!--百度统计 end-->

+ 4 - 3
src/main/resources/templates/article/detail.html

@@ -3,10 +3,11 @@
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
     <title th:text="${article!=null?article.title:''}+'_采美365网'"></title>
-    <meta http-equiv="keywords" th:content="${article?.keyword}">
-    <meta http-equiv="description" th:content="${article?.recommendContent}">
+    <meta name="keywords" th:content="${article?.keyword}">
+    <meta name="description" th:content="${article?.recommendContent}">
     <template th:replace="article/components/article-link"></template>
- </head>
+    <template th:replace="components/analysis"></template>
+</head>
 <body class="home detailData">
 <input type="hidden" th:value="${articleId}" id="articleId">
 <input type="hidden" th:value="${article?.label}" id="articleLabels">

+ 2 - 3
src/main/resources/templates/article/list.html

@@ -2,10 +2,9 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
-    <meta http-equiv="keywords" content="采美平台业务包括采美采购商城,采美正品联盟,美业供应链合作,美业平台综合运营,三方项目服务合作,美业信息咨询服务,美业二手市场,医美直播,品牌招商等。其中采购商城包括热门小气泡仪器,皮肤检测,水光仪器,中胚层治疗仪器,激光仪器,射频仪器,超声仪器,微针射频仪器,脱毛仪器,红蓝光,身体塑形溶脂仪器等。产品包括:医美术后修复产品,高端SPA产品,高端院线产品,医美家居护理产品,玻尿酸,动能素,精纯液,填充针剂,线材,消耗品等。">
-    <meta http-equiv="description" content="采美365网,生美医美正品采购服务平台,国内首家美容行业的B2B平台,具有一,二,三类医疗器械销售资质和进出口资质。聚集全球100多个高品质供应商资源,包括医疗、非医疗美容产品和仪器设备,能一站式满足医疗美容机构、生活美容机构、新兴皮肤管理中心等多样化采购需求。同时提供供应链合作,整合上下游资源,为美容产业的持续前进和发展提出新的解决方案。">
+    <title>采美365网</title>
     <template th:replace="article/components/article-link"></template>
+    <template th:replace="components/analysis"></template>
 </head>
 <body class="home listData">
 <div class="cm-modal"></div>

+ 4 - 0
src/main/resources/templates/components/analysis.html

@@ -0,0 +1,4 @@
+<!--百度统计 start-->
+    <script th:if="${siteEnv}==2">var _hmt=_hmt||[];(function(){var hm=document.createElement("script");hm.src = "https://hm.baidu.com/hm.js?ccdb07ae255aa2a1d68c7c725a40d99c";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm,s);})();</script>
+    <!--百度统计 end-->
+

+ 5 - 5
src/main/resources/templates/components/footer.html

@@ -13,7 +13,7 @@
             <div class="list" th:each="type: ${helpPages}">
                 <span class="tab" th:text="${type.name}"></span>
                 <div class="con">
-                    <a th:each="page: ${type.linkList}" th:href="'/help/'+${page.id}+'.html'" th:text="${page.name}"></a>
+                    <a th:each="page: ${type.linkList}" th:href="'/help/'+${page.id}+'.html'" th:text="${page.name}" rel="nofollow"></a>
                 </div>
             </div>
             <div class="list">
@@ -30,28 +30,28 @@
                     <div class="foot-icon kefu">
                         <i class="icon mIcon icon-kefu"></i>
                     </div>
-                    <div class="foot-code"><img src="/img/common/qr_code_kefu.png"/></div>
+                    <div class="foot-code"><img src="/img/common/qr_code_kefu.png" alt="采美客服"></div>
                     <P>采美客服</P>
                 </div>
                 <div class="item">
                     <div class="foot-icon hehe">
                         <i class="icon mIcon icon-hehe"></i>
                     </div>
-                    <div class="foot-code"><img src="/img/common/qr_code_hehe.png"/></div>
+                    <div class="foot-code"><img src="/img/common/qr_code_hehe.png" alt="采美商城"></div>
                     <P>呵呵商城</P>
                 </div>
                 <div class="item">
                     <div class="foot-icon caimei">
                         <i class="icon mIcon icon-caimei"></i>
                     </div>
-                    <div class="foot-code"><img src="/img/common/qr_code_caimei.png"/></div>
+                    <div class="foot-code"><img src="/img/common/qr_code_caimei.png" alt="采美商城"></div>
                     <P>采美商城</P>
                 </div>
                <div class="item">
                     <div class="foot-icon mini">
                         <i class="icon mIcon icon-mini"></i>
                     </div>
-                    <div class="foot-code"><img src="/img/common/qr_code_mini.jpg"/></div>
+                    <div class="foot-code"><img src="/img/common/qr_code_mini.jpg" alt="采美小程序"></div>
                     <P>采美小程序</P>
                 </div>
             </div>

+ 0 - 5
src/main/resources/templates/components/head-link.html

@@ -3,8 +3,6 @@
     <meta name="apple-mobile-web-app-capable" content="yes">
     <meta name="apple-mobile-web-app-status-bar-style" content="black">
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
-    <meta http-equiv="keywords" content="采美平台业务包括采美采购商城,采美正品联盟,美业供应链合作,美业平台综合运营,三方项目服务合作,美业信息咨询服务,美业二手市场,医美直播,品牌招商等。其中采购商城包括热门小气泡仪器,皮肤检测,水光仪器,中胚层治疗仪器,激光仪器,射频仪器,超声仪器,微针射频仪器,脱毛仪器,红蓝光,身体塑形溶脂仪器等。产品包括:医美术后修复产品,高端SPA产品,高端院线产品,医美家居护理产品,玻尿酸,动能素,精纯液,填充针剂,线材,消耗品等。">
-    <meta http-equiv="description" content="采美365网,生美医美正品采购服务平台,国内首家美容行业的B2B平台,具有一,二,三类医疗器械销售资质和进出口资质。聚集全球100多个高品质供应商资源,包括医疗、非医疗美容产品和仪器设备,能一站式满足医疗美容机构、生活美容机构、新兴皮肤管理中心等多样化采购需求。同时提供供应链合作,整合上下游资源,为美容产业的持续前进和发展提出新的解决方案。">
     <link rel="shortcut icon" th:href="@{/favicon.png}" type="image/x-icon"/>
     <link rel="bookmark" th:href="@{/favicon.png}" type="image/x-icon"/>
     <link href="/lib/swiper.min.css" media="screen and (max-width:768px)" rel="stylesheet" type="text/css">
@@ -13,6 +11,3 @@
     <link th:href="@{/css/base/init.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/base/base.h5.css(v=${version})}" media="screen and (max-width:768px)" rel="stylesheet" type="text/css">
     <link th:href="@{/css/base/base.pc.css(v=${version})}" media="screen and (min-width:768px)" rel="stylesheet" type="text/css">
-    <!--百度统计 start-->
-    <script th:if="${siteEnv}==2">var _hmt=_hmt||[];(function(){var hm=document.createElement("script");hm.src = "https://hm.baidu.com/hm.js?ccdb07ae255aa2a1d68c7c725a40d99c";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm,s);})();</script>
-    <!--百度统计 end-->

+ 52 - 53
src/main/resources/templates/components/header.html

@@ -23,13 +23,13 @@
                             <div class="cartBtm">
                                 <span>共计:<em v-text="headCart.productCount"></em> 件</span>
                                 <span>合计:<em v-text="parseFloat(headCart.priceTotal).toFixed(2)"></em> 元</span>
-                                <a class="btn" href="/shopping/cart.html">去购物车结算</a>
+                                <a class="btn" href="/shopping/cart.html" rel="nofollow">去购物车结算</a>
                             </div>
                         </div>
                         <div v-else class="empty">
-                            <img src="/img/common/empty_cart.png">
+                            <img src="/img/common/empty_cart.png" alt="空购物车">
                             <p>购物车暂无商品</p>
-                            <p v-if="!loginStatus">请先<a href="/login.html">登录</a>添加商品到购物车</p>
+                            <p v-if="!loginStatus">请先<a href="/login.html" rel="nofollow">登录</a>添加商品到购物车</p>
                         </div>
                     </div>
                 </li>
@@ -48,8 +48,8 @@
                     </div>
                 </li>
                 <template v-else>
-                    <li><a href="/register.html">注册</a></li>
-                    <li><a href="/login.html">登录</a></li>
+                    <li><a href="/register.html" rel="nofollow">注册</a></li>
+                    <li><a href="/login.html" rel="nofollow">登录</a></li>
                 </template>
             </ul>
         </div>
@@ -93,13 +93,13 @@
             </div>
             <div class="wechat_qrcode">
                 <div class="q_item">
-                    <div class="q_item_icon"><img src="/img/common/qr_code_caimei.png" alt=""></div>
-                    <div class="q_item_code"><img src="/img/common/qr_code_caimei.png" alt=""></div>
+                    <div class="q_item_icon"><img src="/img/common/qr_code_caimei.png" alt="采美公众号"></div>
+                    <div class="q_item_code"><img src="/img/common/qr_code_caimei.png" alt="采美公众号"></div>
                     <p>采美公众号</p>
                 </div>
                 <div class="q_item">
-                    <div class="q_item_icon"><img src="/img/common/qr_code_mini.jpg" alt=""></div>
-                    <div class="q_item_code"><img src="/img/common/qr_code_mini.jpg" alt=""></div>
+                    <div class="q_item_icon"><img src="/img/common/qr_code_mini.jpg" alt="采美小程序"></div>
+                    <div class="q_item_code"><img src="/img/common/qr_code_mini.jpg" alt="采美小程序"></div>
                     <p>采美小程序</p>
                 </div>
             </div>
@@ -114,8 +114,8 @@
                 <div class="navBox">
                     <ul class="clear">
                         <!--导航菜单-->
-                        <li v-for="(menu,index) in topMenuList">
-                            <a class="nav" :href="menu.link" v-text="menu.name" target="_blank"></a>
+                        <li th:each="menu: ${topMenuList}">
+                            <a class="nav" th:href="${menu.link}" th:text="${menu.name}" th:attr="rel=${#strings.contains(menu.link,'caimei365.com')} ? '' : 'nofollow'" target="_blank"></a>
                         </li>
                     </ul>
                 </div>
@@ -130,67 +130,66 @@
                 </div>
                 <div class="clsTab">
                     <div class="clsTab-main">
-                        <template v-for="(tab,i) in TabList" :key="i">
-                            <a :class="{'on':i==0}" href="javascript:void(0);" @click="changeline(tab)">
-                                {{tab.name}}
-                                <p :class="tab.value==currenIndex?'line':''"></p>
-                            </a>
-                        </template>
+                        <a href="javascript:void(0);" @click="changeClassify(1)" class="on">产品<p :class="1==classifyIndex?'line':''"></p></a>
+                        <a href="javascript:void(0);" @click="changeClassify(2)">仪器<p :class="2==classifyIndex?'line':''"></p></a>
                     </div>
                 </div>
                 <div class="clsCon">
-                    <div class="tabItem" v-for="big in NavsList" style="display: none;">
+                    <th:block th:each="type:${#numbers.sequence(1,2)}">
+                    <div class="tabItem" style="display:none;" th:id="'mainClassify_'+${type}">
                         <div class="tabItem_lift">
-                            <template v-for="(nav,index) in big.list" :key="index" >
-                                <a :class="{'on':index==0}"  href="javascript:void(0);">
-                                    <img class="tabItem_lift_icon" v-if="isPC" :src="nav.wwwIcon ? nav.wwwIcon : ''" alt="">
-                                    {{ nav.name }}
-                                </a>
-                            </template>
+                            <th:block th:each="big,stat : ${classifyJson}" th:if="${big.get('typeSort')}*1==${type}" th:object="${big}">
+                            <a th:class="${stat.index}==0? 'on':''"  href="javascript:void(0);">
+                                <img class="tabItem_lift_icon" v-if="isPC" th:src="*{wwwIcon}" th:alt="*{name}"><th:block th:text="*{name}"></th:block>
+                            </a>
+                            </th:block>
                         </div>
                         <div class="tabItem_right">
-                            <div class="tabItem_right_content" v-for="(nav,i) in big.list" :class="{'on':i==0}">
-                                <div class="line"  v-if="nav.smalltypeList!==null&&nav.smalltypeList!==''" v-for="small in nav.smalltypeList">
+                            <th:block th:each="big,stat : ${classifyJson}" th:if="${big.get('typeSort')}*1==${type}" th:object="${big}">
+                            <div class="tabItem_right_content" th:class="${stat.index}==0? 'on':''">
+                                <th:block th:if="${big.containsKey('smallTypeList')} and ${big.get('smallTypeList')!=null}">
+                                <div class="line" th:each="small : *{smallTypeList}" th:object="${small}">
                                     <div class="lft show">
-                                        <a :href="'/product/instruelist.html?bigTypeID='+nav.bigTypeID+'&smallTypeID='+small.smallTypeID+'&typeSort='+nav.typeSort+''" target="_blank">
+                                        <a th:href="'/product/instruelist.html?bigTypeId=' + *{bigTypeId} +'&smallTypeId='+*{smallTypeId} + '&typeSort=' + ${big.getString('typeSort')}" target="_blank">
                                             <span v-if="isPC"> > </span>
-                                            <p>{{ small.name }}</p>
+                                            <p th:text="*{name}"></p>
                                         </a>
                                     </div>
                                     <div class="rgt mfw" >
-                                        <template v-if="small.tinytypeList!='' && small.tinytypeList!=null"  v-for="tiny in small.tinytypeList">
-                                            <a class="3" :href="'/product/instruelist.html?bigTypeID='+nav.bigTypeID+'&smallTypeID='+small.smallTypeID+'&tinyTypeID='+tiny.tinyTypeID+'&typeSort='+nav.typeSort+''" target="_blank">
-                                                <img v-if="!isPC" :src="tiny.crmIcon" alt="tiny.name">
-                                                <span v-text="tiny.name"></span>
+                                        <th:block th:if="${small.containsKey('tinyTypeList')} and ${small.get('smallTypeList')!=null}">
+                                            <th:block th:each="tiny : *{tinyTypeList}" th:object="${tiny}">
+                                            <a th:href="'/product/instruelist.html?bigTypeId=' + ${big.getString('bigTypeId')} +'&smallTypeId='+*{smallTypeId} + '&tinyTypeID=' + *{tinyTypeId} + '&typeSort=' + ${big.getString('typeSort')}" target="_blank">
+                                                <img v-if="!isPC" th:src="*{crmIcon}" alt="*{name}">
+                                                <p th:text="*{name}"></p>
                                             </a>
-                                        </template>
-                                        <template v-if="!small.tinytypeList">
-                                            <a class="none" :href="'/product/instruelist.html?bigTypeID='+nav.bigTypeID+'&smallTypeID='+small.smallTypeID+'&typeSort='+nav.typeSort+''" target="_blank">
-                                                <img v-if="!isPC" :src="small.crmIcon" alt="全部商品">
-                                                <p>全部商品</p>
+                                            </th:block>
+                                        </th:block>
+                                        <th:block th:unless="${small.containsKey('tinyTypeList')} and ${small.get('smallTypeList')!=null}">
+                                            <a th:href="'/product/instruelist.html?bigTypeId=' + *{bigTypeId} +'&smallTypeId='+*{smallTypeId} + '&typeSort=' + ${big.getString('typeSort')}" target="_blank">
+                                                <img v-if="!isPC" th:src="*{crmIcon}" alt="全部商品"><p>全部商品</p>
                                             </a>
-                                        </template>
+                                        </th:block>
                                     </div>
                                 </div>
-                                <template v-if="!nav.smalltypeList">
-                                    <div class="line">
-                                        <div class="lft none">
-                                            <a :href="'/product/instruelist.html?bigTypeID='+nav.bigTypeID+'&typeSort='+nav.typeSort+''" target="_blank">
-                                                <span v-if="isPC"> > </span>
-                                                <p>{{ nav.name }}</p>
-                                            </a>
-                                        </div>
-                                        <div class="rgt mfw" >
-                                            <a :href="'/product/instruelist.html?bigTypeID='+nav.bigTypeID+'&typeSort='+nav.typeSort+''" target="_blank">
-                                                <img v-if="!isPC" :src="nav.crmIcon" alt="全部商品">
-                                                <p>全部商品</p>
-                                            </a>
-                                        </div>
+                                </th:block>
+                                <div class="line" th:unless="${big.containsKey('smallTypeList')} and ${big.get('smallTypeList')!=null}">
+                                    <div class="lft none">
+                                        <a th:href="'/product/instruelist.html?bigTypeId=' + *{bigTypeId} + '&typeSort=' + ${big.getString('typeSort')}" target="_blank">
+                                            <span v-if="isPC"> > </span>
+                                            <p th:text="*{name}"></p>
+                                        </a>
                                     </div>
-                                </template>
+                                    <div class="rgt mfw" >
+                                        <a th:href="'/product/instruelist.html?bigTypeId=' + *{bigTypeId} + '&typeSort=' + ${big.getString('typeSort')}" target="_blank">
+                                            <img v-if="!isPC" th:src="*{crmIcon}" alt="全部商品"><p>全部商品</p>
+                                        </a>
+                                    </div>
+                                </div>
                             </div>
+                            </th:block>
                         </div>
                     </div>
+                    </th:block>
                 </div>
             </div>
         </div>

+ 1 - 0
src/main/resources/templates/document/details.html

@@ -6,6 +6,7 @@
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/document/details.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/lib/css/pdfh5.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 二级页面 -->

+ 1 - 0
src/main/resources/templates/document/list.html

@@ -5,6 +5,7 @@
     <title>采美资料库-资料列表</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/document/list.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 二级页面 -->

+ 1 - 0
src/main/resources/templates/document/login.html

@@ -6,6 +6,7 @@
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/document/login.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 二级页面 -->

+ 1 - 0
src/main/resources/templates/document/more-content.html

@@ -5,6 +5,7 @@
     <title>采美资料库-更多资料</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/document/more-content.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 二级页面 -->

+ 1 - 0
src/main/resources/templates/document/pdfdetails.html

@@ -6,6 +6,7 @@
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/document/details.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/lib/css/pdfh5.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 二级页面 -->

+ 3 - 2
src/main/resources/templates/equipment/detail.html

@@ -3,11 +3,12 @@
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
     <title th:text="'采美365网-'+${equipment.title}"></title>
-    <meta http-equiv="keywords" th:content="${equipment.keywords}">
-    <meta http-equiv="description" th:content="${equipment.description}">
+    <meta name="keywords" th:content="${equipment.keywords}">
+    <meta name="description" th:content="${equipment.description}">
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/equipment/detail.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/single-page/topic.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 1 - 0
src/main/resources/templates/equipment/list.html

@@ -5,6 +5,7 @@
     <title>采美365网-项目仪器列表</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/equipment/list.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 1 - 1
src/main/resources/templates/error/404.html

@@ -2,7 +2,7 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <style>
         body {

+ 9 - 8
src/main/resources/templates/flea-market/detail.html

@@ -2,9 +2,10 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
      <link th:href="@{/css/flea-market/secondDetail.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->
@@ -17,13 +18,13 @@
         <div class="preview-header clearfix">
             <div class="preview-banner clearfix" id="imgShown" >
                 <div class="preview-banner-big bigImage" v-if="isPC">
-                    <img class="preview-img" :src="previewBigimage" >
+                    <img class="preview-img" src="/img/base/placeholder.png" :data-original="previewBigimage" >
                     <span class="mask"></span>
                 </div>
                 <div class="preview-banner-small" id="CM____pic_thumb" v-if="isPC">
                     <ul class="preview-thumb-ul">
                         <li class="item" v-for="(item, index) in previewThumb"  :class="current==index?'addImg':''" :key="index" :data-src="item" @click="ImgList(item,index)">
-                            <img :src="item">
+                            <img src="/img/base/placeholder.png" :data-original ="item">
                         </li>
                     </ul>
                 </div>
@@ -80,11 +81,11 @@
                     </div>
                     <div class="info " v-if="HandType">
                        <span class="label" style="width: 84px">产品到期日:</span>
-                        <p>{{detail.maturityYears}}</p>
+                        <p>{{ detail.maturityYears ? detail.maturityYears : '暂无' }}</p>
                     </div>
                     <div class="info bind">
                        <span class="label">分&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;类:</span>
-                        <p>{{detail.typeStr}}</p>
+                        <p>{{ detail.typeStr ? detail.typeStr : '暂无' }}</p>
                     </div>
                     <div class="info ">
                        <span class="label">所&nbsp;&nbsp;在&nbsp;&nbsp;地:</span>
@@ -96,15 +97,15 @@
                     </div>
                      <div class="info " v-if="detail.showContactFlag==2">
                        <span class="label">联&nbsp;&nbsp;系&nbsp;&nbsp;人:</span>
-                        <p>{{detail.contactName}}</p>
+                        <p>{{ detail.contactName ? detail.contactName : '暂无' }}</p>
                     </div>
                     <div class="info unit" v-if="detail.fixedYears!='' && detail.fixedYears!=null">
                         <span class="label">出厂日期:</span>
-                        <p>{{detail.fixedYears}}</p>
+                        <p>{{detail.fixedYears == 'null' ? '暂无' : detail.fixedYears }}</p>
                     </div>
                     <div class="info unit" v-if="detail.showContactFlag==2">
                         <span class="label">联系方式:</span>
-                        <p>{{detail.contactMobile}}</p>
+                        <p>{{ detail.contactMobile ? detail.contactMobile : '暂无' }}</p>
                     </div>
                     <div class="info price" style="width: 100%" v-if="HandType">
                         <span class="label">库&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;存:</span>

+ 2 - 1
src/main/resources/templates/flea-market/form.html

@@ -2,9 +2,10 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/flea-market/form.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 2 - 1
src/main/resources/templates/flea-market/intro.html

@@ -2,9 +2,10 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网-二手市场</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/flea-market/intro.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 3 - 2
src/main/resources/templates/flea-market/list.html

@@ -2,9 +2,10 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网-二手商品列表</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/flea-market/list.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->
@@ -55,7 +56,7 @@
             <div class="shopList">
                 <div class="Listitem" v-if="isShow" v-for="(item, index) in tabchildList">
                     <a class="itemImg onhref" :href="'/flea-market-'+item.productID+'.html'">
-                        <img :src="item.imageList[0]" :class="item.sold==1?'activeImg':''" class="bigImg">
+                        <img src="/img/base/placeholder.png" :class="item.sold==1?'activeImg':''" :data-original="item.imageList[0]" class="bigImg">
                     </a>
                     <div class="ItemInfo">
                         <div class="tag">

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

@@ -2,10 +2,11 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:if="${pageId==1026}" th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/help/help.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 2 - 2
src/main/resources/templates/help/select.html

@@ -2,10 +2,10 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
-
     <link th:href="@{/css/help/select.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 	<body>
 	<!-- 引用头部 -->

+ 208 - 867
src/main/resources/templates/index.html

@@ -2,905 +2,246 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网-医美采购平台-生美采购平台-美业一站式正品采购平台</title>
+    <meta name="keywords" content="美业采购商城,美业信息平台,美业采购顾问,美业采购咨询,美容产品,美容仪器,医美产品,医美器械,二手仪器,美业正品联盟">
+    <meta name="description" content="采美365网是一家专注于医美生美的B2B采购平台,拥有各类医疗器械资质和进出口资质,聚集全球众多知名供应商,上架丰富的医美生美产品和仪器,一站式解决美容机构的采购需求">
     <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/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>
 </head>
 <body>
 <!-- 引用头部 -->
 <template th:replace="components/header"></template>
 <!-- 首页 -->
 <div id="container">
-    <!--loading-->
-    <div v-if="listLoading" class="loading">
-        <img src="/img/base/loading.gif">
+    <!--首页图片轮播-->
+    <div id="swiper-container" class="swiper-container">
+        <ul class="swiper-wrapper swiper-wrapper-banner">
+            <li class="swiper-slide mfc" th:each="img: ${bannerList}">
+                <a th:href="${img.link}"><img th:src="${img.image}" th:alt="${img.title}"></a>
+            </li>
+        </ul>
+        <div class="swiper-pagination swiper-pagination-banner mfc"><span v-if="isPC" th:each="img: ${bannerList}"></span></div>
+        <a class="swiper-button-prev" href="javascript:void(0)"></a>
+        <a class="swiper-button-next" href="javascript:void(0)"></a>
     </div>
-    <template v-else>
-        <!--首页图片轮播-->
-        <div id="swiper-container" class="swiper-container">
-            <ul class="swiper-wrapper swiper-wrapper-banner">
-                <li class="swiper-slide mfc" v-for="img in images">
-                    <a :href="img.link"><img :src="img.image" :alt="img.title"></a>
-                </li>
-            </ul>
-            <div class="swiper-pagination swiper-pagination-banner mfc"><span v-if="isPC" v-for="i in images.length"></span></div>
-            <a class="swiper-button-prev" href="javascript:void(0)"></a>
-            <a class="swiper-button-next" href="javascript:void(0)"></a>
-        </div>
-        <div class="mNavBox h5Only clear">
-            <!--导航菜单-->
-            <a class="nav" :href="menu.link" v-for="(menu,index) in topMenuList">
-                <img class="nav-icon" :src="menu.icon" :alt="menu.name">
-                <p v-text="menu.name"></p>
-            </a>
-        </div>
-        <!--首页楼层主体数据-->
-        <div class="section_container">
-            <div class="inner">
-                <div class="section_right">
-                    <div class="box swiper-wrapper" >
-                        <div class="section_right_item" v-if="liveList && liveList.length>0">
-                            <div class="right_item_title">
-                                <p>精彩直播</p>
-                                <a href="https://wx.vzan.com/plug-ins/?v=637429463853329710#/FixupIndex/399803126?shareuid=0" target="_blank" v-if="isPC">更多></a>
-                                <a href="https://wx.vzan.com/plug-ins/?v=637429463853329710#/FixupIndex/399803126?shareuid=0" target="_blank" v-if="!isPC">></a>
-                            </div>
-                            <div class="right_item_main" v-for="(live,index) in liveList">
-                                <a :href="live.link" class="item_banner" v-if="index === 0" target="_blank" :title="live.liveTitle">
-                                    <img src="/img/base/placeholder.png" :data-original="live.homePageImage" :alt="live.liveTitle">
-                                    <div class="name" v-text="live.liveTitle"></div>
-                                    <div class="statu">
-                                        <i :class="live.liveStatus | statusTypeClass" class="mIcon"></i>
-                                        <p>{{ live.liveStatus | statusType }}</p>
-                                    </div>
-                                </a>
-                                <a :href="live.link" class="item_text" v-if="index > 0" target="_blank" :title="live.liveTitle">
-                                    <p class="item_text_name info" v-text="live.liveTitle"></p>
-                                </a>
-                            </div>
+    <div class="mNavBox h5Only clear">
+        <!--导航菜单-->
+        <a th:each="menu: ${topMenuList}" class="nav" th:href="${menu.link}">
+            <img class="nav-icon" th:src="${menu.icon}" th:alt="${menu.name}">
+            <p th:text="${menu.name}"></p>
+        </a>
+    </div>
+    <!--首页楼层主体数据-->
+    <div class="section_container">
+        <div class="inner">
+            <div id="sidebar" class="section_right">
+                <div class="box swiper-wrapper" >
+                    <div class="section_right_item" th:if="${sideJson.get('liveList')}!=null and ${sideJson.get('liveList').size}>0">
+                        <div class="right_item_title">
+                            <p>精彩直播</p>
+                            <a href="https://wx.vzan.com/plug-ins/?v=637429463853329710#/FixupIndex/399803126?shareuid=0" target="_blank"  rel="nofollow">
+                                <template v-if="isPC">更多&gt;</template><template v-else>&gt;</template>
+                            </a>
                         </div>
-                        <div class="section_right_item" v-if="cmImageList && cmImageList.length>0">
-                            <div class="right_item_title">
-                                <p>最新活动</p>
-                                <a href="/promotions.html" target="_blank" v-if="isPC">更多></a>
-                                <a href="/promotions.html" target="_blank" v-if="!isPC">></a>
-                            </div>
-                            <div class="right_item_main" v-for="(cmImage,index) in cmImageList">
-                                <a :href="cmImage.link" class="item_banner" v-if="index === 0" target="_blank" :title="cmImage.title">
-                                    <img src="/img/base/placeholder.png" :data-original="cmImage.homePageImage" :alt="cmImage.title">
-                                    <div class="name" v-text="cmImage.title"></div>
-                                </a>
-                                <a :href="cmImage.link" class="item_text" v-if="index > 0" target="_blank" :title="cmImage.title">
-                                    <p class="item_text_name info" v-text="cmImage.title"></p>
-                                </a>
-                            </div>
+                        <div class="right_item_main" th:each="live,stat : ${sideJson.get('liveList')}" th:object="${live}">
+                            <a th:if="${stat.index}==0" th:href="*{link}" th:title="*{liveTitle}" class="item_banner" target="_blank" rel="nofollow">
+                                <img src="/img/base/placeholder.png" th:attr="data-original=*{homePageImage}" th:alt="*{liveTitle}">
+                                <div class="name" th:text="*{liveTitle}"></div>
+                                <div class="statu">
+                                    <template th:if="*{liveStatus}==1"><i class="mIcon icon-wart"></i><p>未开始</p></template>
+                                    <template th:if="*{liveStatus}==2"><i class="mIcon icon-live"></i><p>直播中</p></template>
+                                    <template th:if="*{liveStatus}==3"><i class="mIcon icon-end"></i><p>看回放</p></template>
+                                </div>
+                            </a>
+                            <a th:if="${stat.index}>0" th:href="*{link}" th:title="*{liveTitle}" class="item_text" target="_blank" rel="nofollow">
+                                <p class="item_text_name" th:text="*{liveTitle}"></p>
+                            </a>
                         </div>
-                        <div class="section_right_item" v-if="infoList && infoList.length>0">
-                            <div class="right_item_title">
-                                <p>热门文章</p>
-                                <a href="https://www.caimei365.com/info/center-3-1.html" target="_blank" v-if="isPC">更多></a>
-                                <a href="https://www.caimei365.com/info/center-3-1.html" target="_blank" v-if="!isPC">></a>
-                            </div>
-                            <div class="right_item_main" v-for="(info,index) in infoList">
-                                <a :href="info.link" class="item_banner" v-if="index === 0" target="_blank" :title="info.title">
-                                    <img src="/img/base/placeholder.png" :data-original="info.homePageImage" :alt="info.title">
-                                    <div class="name" v-text="info.title"></div>
-                                </a>
-                                <a :href="info.link" class="item_text" v-if="index > 0" target="_blank" :title="info.title">
-                                    <p class="item_text_name " v-text="info.title"></p>
-                                    <p class="item_text_time" v-if="isPC" v-text="info.createDate"></p>
-                                </a>
-                            </div>
+                    </div>
+                    <div id="fixed-wrap" class="section_right_item" th:if="${sideJson.get('cmImageList')}!=null and ${sideJson.get('cmImageList').size}>0">
+                        <div class="right_item_title">
+                            <p>最新活动</p>
+                            <a href="https://www.caimei365.com/promotions.html" target="_blank">
+                                <template v-if="isPC">更多&gt;</template><template v-else>&gt;</template>
+                            </a>
+                        </div>
+                        <div class="right_item_main" th:each="image,stat : ${sideJson.get('cmImageList')}" th:object="${image}">
+                            <a th:if="${stat.index}==0" th:href="*{link}" th:title="*{title}" class="item_banner" target="_blank">
+                                <img src="/img/base/placeholder.png" th:attr="data-original=*{homePageImage}" th:alt="*{title}">
+                                <div class="name" th:text="*{title}"></div>
+                            </a>
+                            <a th:if="${stat.index}>0" th:href="*{link}" th:title="*{title}" class="item_text" target="_blank">
+                                <p class="item_text_name" th:text="*{title}"></p>
+                            </a>
+                        </div>
+                    </div>
+                    <div class="section_right_item" th:if="${sideJson.get('infoList')}!=null and ${sideJson.get('infoList').size}>0">
+                        <div class="right_item_title">
+                            <p>热门文章</p>
+                            <a href="https://www.caimei365.com/info/center-3-1.html" target="_blank">
+                                <template v-if="isPC">更多&gt;</template><template v-else>&gt;</template>
+                            </a>
+                        </div>
+                        <div class="right_item_main" th:each="info,stat : ${sideJson.get('infoList')}" th:object="${info}">
+                            <a th:if="${stat.index}==0" th:href="*{link}" th:title="*{title}" class="item_banner" target="_blank">
+                                <img src="/img/base/placeholder.png" th:attr="data-original=*{homePageImage}" th:alt="*{title}">
+                                <div class="name" th:text="*{title}"></div>
+                            </a>
+                            <a th:if="${stat.index}>0" th:href="*{link}" th:title="*{title}" class="item_text" target="_blank">
+                                <p class="item_text_name info" th:text="*{title}"></p>
+                                <p class="item_text_time" v-if="isPC" th:text="*{createDate}"></p>
+                            </a>
                         </div>
                     </div>
                 </div>
-                <div class="section_left ">
-                    <div class="section_page" v-for="(page,index) in pageList">
-                        <div class="section_page_title" v-if="page.floorContent">
-                            <h1 v-text="page.title" :data-id="index+1"></h1>
-                            <p v-text="page.detail"></p>
+            </div>
+            <div class="section_left ">
+                <div class="section_page" th:each="floor,stat : ${floorJson.get('homePageFloor')}">
+                    <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>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '1'">
-                            <div class="section_page_main clear mfw" :class="page.isPageMore ? '' : 'max'">
-                                <a :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)' "
-                                   class="page_main_item ad_02" :class="page.floorContent.adsLink1!='' ? '' : 'default' "
-                                   :target="page.floorContent.adsLink1!='' ? '_blank' : ''">
-                                    <img v-if="isPC" :src="page.floorContent.pcAdsImage1" alt="" class="page_main_item_adv">
-                                    <img v-else :src="page.floorContent.appletsAdsImage1" alt="" class="page_main_item_adv">
-                                </a>
-                                <a :href="pros.link" class="page_main_item ad_04" v-for="(pros,index) in page.floorImageList" target="_blank">
-                                    <img class="page_main_image" src="/img/base/placeholder.png" :data-original="pros.image" :alt="pros.name">
-                                    <div class="page_main_tag" v-if="pros.listType == 2"><p>{{ pros.label }}</p></div>
-                                    <div class="page_main_text"><sapn class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</sapn>{{ pros.name }}</div>
-                                    <div class="page_main_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.price1TextFlag==1">
-                                                    <!--价格未公开-->
-                                                    <div class="main_price_text">
-                                                        <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>
-                                                    </div>
-                                                </template>
-                                                <template v-else>
-                                                    <!--可见价格-->
-                                                    <template v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                        <div class="main_price_text" v-if="pros.product.productCategory == 1">
-                                                            <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.retailPrice | NumFormat}}</span>
-                                                                </p>
-                                                            </div>
-                                                            <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.price1 : pros.product.retailPrice ) | NumFormat  }}
-                                                            </div>
-                                                        </div>
-                                                    </template>
-                                                    <!--仅会员机构可见-->
-                                                    <template v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
-                                                        <div class="main_price_text">
-                                                            <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>
-                                                        </div>
-                                                    </template>
-                                                    <template v-else>
-                                                        <div class="price_text_tag right-box">
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                        <div class="main_price_none">
-                                                            <em class="price_grade"><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                            <p class="listTag" v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                    </template>
-                                                </template>
-                                            </template>
-                                            <template v-else>
-                                                <div class="main_price_text" v-if="pros.product.detailTalkFlag == '2'">
-                                                    <div class="price_text_tag"></div>
-                                                    <div class="main_price_show">¥价格祥聊</div>
-                                                </div>
-                                                <div class="main_price_text" v-else>
-                                                    <div class="price_text_tag"></div>
-                                                    <div class="main_price_show">¥{{ pros.product.retailPrice | NumFormat  }}</div>
-                                                </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="main_price_none">
-                                                    <em class="price_grade"><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                    <p class="listTag " v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                </div>
-                                            </template>
-                                            <template v-else>
-                                                <div class="main_price_none sec">
-                                                    <em class="price_grade"><span>¥</span>登录可见</em>
-                                                </div>
-                                            </template>
-                                        </template>
-                                    </div>
-                                </a>
-                            </div>
-                            <div class="section_page_more" v-if="page.isPageMore">
-                                <div class="more" @click="showMorePageFn(page)"> <i class="icon mIcon"></i>查看更多</div>
-                            </div>
-                        </template>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '2'">
-                            <div class="section_page_main clear mfw" :class="page.isPageMore ? '' : 'max'">
-                                <a  :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)' "
-                                    class="page_main_item ad_02" :class="page.floorContent.adsLink1!='' ? '' : 'default' "
-                                    :target="page.floorContent.adsLink1!='' ? '_blank' : ''">
-                                    <img v-if="isPC" :src="page.floorContent.pcAdsImage1" alt="" class="page_main_item_adv">
-                                    <img v-else :src="page.floorContent.appletsAdsImage1" alt="" class="page_main_item_adv">
-                                </a>
-                                <a  :href="page.floorContent.adsLink2!='' ? page.floorContent.adsLink2 : 'javascript:void(0)'"
-                                    class="page_main_item ad_03" :class="page.floorContent.adsLink2!='' ? '' : 'default' "
-                                    :target="page.floorContent.adsLink2!='' ? '_blank' : ''">
-                                    <img v-if="isPC" :src="page.floorContent.pcAdsImage2" alt="" class="page_main_item_adv">
-                                    <img v-else :src="page.floorContent.appletsAdsImage2" alt="" class="page_main_item_adv">
-                                </a>
-                                <a :href="pros.link" class="page_main_item ad_04" v-for="(pros,index) in page.floorImageList" target="_blank">
-                                    <img class="page_main_image" src="/img/base/placeholder.png" :data-original="pros.image" :alt="pros.name">
-                                    <div class="page_main_tag" v-if="pros.listType == 2"><p>{{ pros.label }}</p></div>
-                                    <div class="page_main_text"><sapn class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</sapn>{{ pros.name }}</div>
-                                    <div class="page_main_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.price1TextFlag==1">
-                                                    <!--价格未公开-->
-                                                    <div class="main_price_text">
-                                                        <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>
-                                                    </div>
-                                                </template>
-                                                <template v-else>
-                                                    <!--可见价格-->
-                                                    <template v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                        <div class="main_price_text" v-if="pros.product.productCategory == 1">
-                                                            <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.retailPrice | NumFormat}}</span>
-                                                                </p>
-                                                            </div>
-                                                            <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.price1 : pros.product.retailPrice ) | NumFormat  }}
-                                                            </div>
-                                                        </div>
-                                                    </template>
-                                                    <!--仅会员机构可见-->
-                                                    <template v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
-                                                        <div class="main_price_text">
-                                                            <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>
-                                                        </div>
-                                                    </template>
-                                                    <template v-else>
-                                                        <div class="price_text_tag right-box">
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                        <div class="main_price_none">
-                                                            <em class="price_grade"><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                            <p class="listTag" v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                    </template>
-                                                </template>
-                                            </template>
-                                            <template v-else>
-                                                <div class="main_price_text" v-if="pros.product.detailTalkFlag == '2'">
-                                                    <div class="price_text_tag"></div>
-                                                    <div class="main_price_show">¥价格祥聊</div>
-                                                </div>
-                                                <div class="main_price_text" v-else>
-                                                    <div class="price_text_tag"></div>
-                                                    <div class="main_price_show">¥{{ pros.product.retailPrice | NumFormat  }}</div>
-                                                </div>
-                                            </template>
-                                        </template>
-                                        <template v-else>
-                                            <template v-if="pros.product.productCategory == 1">
-                                                <div class="price_text_tag right-box">
-                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                </div>
-                                                <div class="main_price_none">
-                                                    <em class="price_grade"><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                    <p class="listTag " v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                </div>
-                                            </template>
-                                            <template v-else>
-                                                <div class="main_price_none sec">
-                                                    <em class="price_grade"><span>¥</span>登录可见</em>
-                                                </div>
-                                            </template>
-                                        </template>
-                                    </div>
-                                </a>
-                            </div>
-                            <div class="section_page_more" v-if="page.isPageMore">
-                                <div class="more" @click="showMorePageFn(page)"> <i class="icon mIcon"></i>查看更多</div>
-                            </div>
-                        </template>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '3'">
-                            <div class="section_page_main type_03 clear mfw" :class="page.isPageMore ? '' : 'max'">
-                                <a  :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)' "
-                                    class="page_main_item ad_01" :class="page.floorContent.adsLink1!='' ? '' : 'default' "
-                                    :target="page.floorContent.adsLink1!='' ? '_blank' : ''">
-                                    <img v-if="isPC" :src="page.floorContent.pcAdsImage1" alt="" class="page_main_item_adv">
-                                    <img v-else :src="page.floorContent.appletsAdsImage1" alt="" class="page_main_item_adv">
-                                </a>
-                                <a  :href="page.floorContent.adsLink2!='' ? page.floorContent.adsLink2 : 'javascript:void(0)' "
-                                    class="page_main_item ad_02" :class="page.floorContent.adsLink2!='' ? '' : 'default' "
-                                    :target="page.floorContent.adsLink2!='' ? '_blank' : ''">
-                                    <img v-if="isPC" :src="page.floorContent.pcAdsImage2" alt="" class="page_main_item_adv">
-                                    <img v-else :src="page.floorContent.appletsAdsImage2" alt="" class="page_main_item_adv">
-                                </a>
-                                <a :href="pros.link" class="page_main_item ad_04" v-for="(pros,index) in page.floorImageList" target="_blank">
-                                    <img class="page_main_image" src="/img/base/placeholder.png" :data-original="pros.image" :alt="pros.name">
-                                    <div class="page_main_tag" v-if="pros.listType == 2"><p>{{ pros.label }}</p></div>
-                                    <div class="page_main_text"><sapn class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</sapn>{{ pros.name }}</div>
-                                    <div class="page_main_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.price1TextFlag==1">
-                                                    <!--价格未公开-->
-                                                    <div class="main_price_text">
-                                                        <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>
-                                                    </div>
-                                                </template>
-                                                <template v-else>
-                                                    <!--可见价格-->
-                                                    <template v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                        <div class="main_price_text" v-if="pros.product.productCategory == 1">
-                                                            <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.retailPrice | NumFormat}}</span>
-                                                                </p>
-                                                            </div>
-                                                            <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.price1 : pros.product.retailPrice ) | NumFormat  }}
-                                                            </div>
-                                                        </div>
-                                                    </template>
-                                                    <!--仅会员机构可见-->
-                                                    <template v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
-                                                        <div class="main_price_text">
-                                                            <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>
-                                                        </div>
-                                                    </template>
-                                                    <template v-else>
-                                                        <div class="price_text_tag right-box">
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                        <div class="main_price_none">
-                                                            <em class="price_grade"><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                            <p class="listTag " v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                    </template>
-                                                </template>
-                                            </template>
-                                            <template v-else>
-                                                <div class="main_price_text" v-if="pros.product.detailTalkFlag == '2'">
-                                                    <div class="price_text_tag"></div>
-                                                    <div class="main_price_show">¥价格祥聊</div>
-                                                </div>
-                                                <div class="main_price_text" v-else>
-                                                    <div class="price_text_tag"></div>
-                                                    <div class="main_price_show">¥{{ pros.product.retailPrice | NumFormat  }}</div>
-                                                </div>
-                                            </template>
-                                        </template>
-                                        <template v-else>
-                                            <template v-if="pros.product.productCategory == 1">
-                                                <div class="price_text_tag right-box">
-                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                </div>
-                                                <div class="main_price_none">
-                                                    <em class="price_grade"><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                    <p class="listTag " v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                </div>
-                                            </template>
-                                            <template v-else>
-                                                <div class="main_price_none sec">
-                                                    <em class="price_grade"><span>¥</span>登录可见</em>
-                                                </div>
-                                            </template>
-                                        </template>
-                                    </div>
-                                </a>
-                            </div>
-                            <div class="section_page_more" v-if="page.isPageMore">
-                                <div class="more" @click="showMorePageFn(page)"> <i class="icon mIcon"></i>查看更多</div>
-                            </div>
-                        </template>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '4'">
-                            <div class="section_page_main type_03 clear mfw" :class="page.isPageMore ? '' : 'max'">
-                                <a  :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)' "
-                                    class="page_main_item ad_01" :class="page.floorContent.adsLink1!='' ? '' : 'default' "
-                                    :target="page.floorContent.adsLink1!='' ? '_blank' : ''">
-                                    <img v-if="isPC" :src="page.floorContent.pcAdsImage1" alt="" class="page_main_item_adv">
-                                    <img v-else :src="page.floorContent.appletsAdsImage1" alt="" class="page_main_item_adv">
-                                </a>
-                                <a  :href="page.floorContent.adsLink2!='' ? page.floorContent.adsLink2 : 'javascript:void(0)' "
-                                    class="page_main_item ad_02" :class="page.floorContent.adsLink2!='' ? '' : 'default' "
-                                    :target="page.floorContent.adsLink2!='' ? '_blank' : ''">
-                                    <img v-if="isPC" :src="page.floorContent.pcAdsImage2" alt="" class="page_main_item_adv">
-                                    <img v-else :src="page.floorContent.appletsAdsImage2" alt="" class="page_main_item_adv">
-                                </a>
-                                <a  :href="page.floorContent.adsLink3!='' ? page.floorContent.adsLink3 : 'javascript:void(0)' "
-                                    class="page_main_item ad_03" :class="page.floorContent.adsLink3!='' ? '' : 'default' "
-                                    :target="page.floorContent.adsLink3!='' ? '_blank' : ''">
-                                    <img v-if="isPC" :src="page.floorContent.pcAdsImage3" alt="" class="page_main_item_adv">
-                                    <img v-else :src="page.floorContent.appletsAdsImage3" alt="" class="page_main_item_adv">
-                                </a>
-                                <a :href="pros.link" class="page_main_item ad_04" v-for="(pros,index) in page.floorImageList" target="_blank">
-                                    <img class="page_main_image" src="/img/base/placeholder.png" :data-original="pros.image" :alt="pros.name">
-                                    <div class="page_main_tag" v-if="pros.listType == 2"><p>{{ pros.label }}</p></div>
-                                    <div class="page_main_text"><sapn class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1" >美博会</sapn>{{ pros.name }}</div>
-                                    <div class="page_main_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.price1TextFlag==1">
-                                                    <!--价格未公开-->
-                                                    <div class="main_price_text">
-                                                        <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>
-                                                    </div>
-                                                </template>
-                                                <template v-else>
-                                                    <!--可见价格-->
-                                                    <template v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                        <div class="main_price_text" v-if="pros.product.productCategory == 1">
-                                                            <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.retailPrice | NumFormat}}</span>
-                                                                </p>
-                                                            </div>
-                                                            <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.price1 : pros.product.retailPrice ) | NumFormat  }}
-                                                            </div>
-                                                        </div>
-                                                    </template>
-                                                    <!--仅会员机构可见-->
-                                                    <template v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
-                                                        <div class="main_price_text">
-                                                            <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>
-                                                        </div>
-                                                    </template>
-                                                    <template v-else>
-                                                        <div class="price_text_tag right-box">
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                        <div class="main_price_none">
-                                                            <em class="price_grade"><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                            <p class="listTag " v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                    </template>
-                                                </template>
-                                            </template>
-                                            <template v-else>
-                                                <div class="main_price_text" v-if="pros.product.detailTalkFlag == '2'">
-                                                    <div class="price_text_tag"></div>
-                                                    <div class="main_price_show">¥价格祥聊</div>
-                                                </div>
-                                                <div class="main_price_text" v-else>
-                                                    <div class="price_text_tag"></div>
-                                                    <div class="main_price_show">¥{{ pros.product.retailPrice | NumFormat  }}</div>
-                                                </div>
-                                            </template>
-                                        </template>
-                                        <template v-else>
-                                            <template v-if="pros.product.productCategory == 1">
-                                                <div class="price_text_tag right-box">
-                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                </div>
-                                                <div class="main_price_none">
-                                                    <em class="price_grade "><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                    <p class="listTag " v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                </div>
-                                            </template>
-                                            <template v-else>
-                                                <div class="main_price_none sec">
-                                                    <em class="price_grade"><span>¥</span>登录可见</em>
-                                                </div>
-                                            </template>
-                                        </template>
-                                    </div>
-                                </a>
-                            </div>
-                            <div class="section_page_more" v-if="page.isPageMore">
-                                <div class="more" @click="showMorePageFn(page)"><i class="icon mIcon"></i>查看更多</div>
-                            </div>
-                        </template>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '5'">
-                            <div class="section_page_main type_03 clear mfw" :class="page.isPageMore ? '' : 'max'">
-                                <a  :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)' "
-                                    class="page_main_item ad_01" :class="page.floorContent.adsLink1!='' ? '' : 'default' "
-                                    :target="page.floorContent.adsLink1!='' ? '_blank' : ''">
-                                    <img v-if="isPC" :src="page.floorContent.pcAdsImage1" alt="" class="page_main_item_adv">
-                                    <img v-else :src="page.floorContent.appletsAdsImage1" alt="" class="page_main_item_adv">
-                                </a>
-                                <a :href="pros.link" class="page_main_item ad_04" v-for="(pros,index) in page.floorImageList" target="_blank">
-                                    <img class="page_main_image" src="/img/base/placeholder.png" :data-original="pros.image" :alt="pros.name">
-                                    <div class="page_main_tag" v-if="pros.listType == 2"><p>{{ pros.label }}</p></div>
-                                    <div class="page_main_text"><span class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</span>{{ pros.name }}</div>
-                                    <div class="page_main_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.price1TextFlag==1">
-                                                    <!--价格未公开-->
-                                                    <div class="main_price_text">
-                                                        <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>
-                                                    </div>
-                                                </template>
-                                                <template v-else>
-                                                    <!--可见价格-->
-                                                    <template v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                        <div class="main_price_text" v-if="pros.product.productCategory == 1">
-                                                            <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.retailPrice | NumFormat}}</span>
+                        <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_num"></span>
+                                                                    </th:block>
                                                                 </p>
                                                             </div>
-                                                            <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.price1 : pros.product.retailPrice ) | NumFormat  }}
-                                                            </div>
-                                                        </div>
-                                                    </template>
-                                                    <!--仅会员机构可见-->
-                                                    <template v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
-                                                        <div class="main_price_text">
-                                                            <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>
-                                                        </div>
-                                                    </template>
-                                                    <template v-else>
-                                                        <div class="price_text_tag right-box">
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                        <div class="main_price_none">
-                                                            <em class="price_grade"><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                            <p class="listTag " v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                    </template>
-                                                </template>
-                                            </template>
-                                            <template v-else>
-                                                <div class="main_price_text" v-if="pros.product.detailTalkFlag == '2'">
-                                                    <div class="price_text_tag"></div>
-                                                    <div class="main_price_show">¥价格祥聊</div>
-                                                </div>
-                                                <div class="main_price_text" v-else>
-                                                    <div class="price_text_tag"></div>
-                                                    <div class="main_price_show">¥{{ pros.product.retailPrice | NumFormat  }}</div>
-                                                </div>
-                                            </template>
-                                        </template>
-                                        <template v-else>
-                                            <template v-if="pros.product.productCategory == 1">
-                                                <div class="price_text_tag right-box">
-                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                </div>
-                                                <div class="main_price_none">
-                                                    <em class="price_grade"><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                    <p class="listTag " v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                </div>
-                                            </template>
-                                            <template v-else>
-                                                <div class="main_price_none sec">
-                                                    <em class="price_grade"><span>¥</span>登录可见</em>
-                                                </div>
-                                            </template>
-                                        </template>
-                                    </div>
-                                </a>
-                            </div>
-                            <div class="section_page_more" v-if="page.isPageMore">
-                                <div class="more" @click="showMorePageFn(page)"> <i class="icon mIcon"></i>查看更多</div>
-                            </div>
-                        </template>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '6'">
-                            <div class="section_page_main clear mfw" :class="page.isPageMore ? '' : 'max'">
-                                <a  :href="pros.link" class="page_main_item ad_04" v-for="(pros,index) in page.floorImageList" target="_blank">
-                                    <img class="page_main_image" src="/img/base/placeholder.png" :data-original="pros.image" :alt="pros.name">
-                                    <div class="page_main_tag" v-if="pros.listType == 2"><p>{{ pros.label }}</p></div>
-                                    <div class="page_main_text"><sapn class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</sapn>{{ pros.name }}</div>
-                                    <div class="page_main_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.price1TextFlag==1">
-                                                    <!--价格未公开-->
-                                                    <div class="main_price_text">
-                                                        <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>
+                                                            <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="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>
+                                                        </th:block>
+                                                        <!-- 二手商品 -->
+                                                        <th:block th:if="*{productCategory}!=1">
+                                                            <div class="main_price_none sec">
+                                                                <em class="price_grade"><span>¥</span>登录可见</em>
+                                                            </div>
+                                                            <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>
+                                                                <!--供应商显示价格等级-->
+                                                                <em class="price_grade_shop"><span class="bold">¥</span><i th:attr="class=*{'icon mIcon price_grade_'+priceGrade}"></i></em>
+                                                            </div>
+                                                        </th:block>
                                                     </div>
-                                                </template>
-                                                <template v-else>
-                                                    <!--可见价格-->
-                                                    <template v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                        <div class="main_price_text" v-if="pros.product.productCategory == 1">
-                                                            <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.retailPrice | NumFormat}}</span>
-                                                                </p>
-                                                            </div>
-                                                            <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.price1 : pros.product.retailPrice ) | NumFormat  }}
-                                                            </div>
-                                                        </div>
-                                                    </template>
-                                                    <!--仅会员机构可见-->
-                                                    <template v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
-                                                        <div class="main_price_text">
-                                                            <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>
-                                                        </div>
-                                                    </template>
-                                                    <template v-else>
-                                                        <div class="price_text_tag right-box">
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                        <div class="main_price_none">
-                                                            <em class="price_grade"><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                            <p class="listTag " v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                    </template>
-                                                </template>
-                                            </template>
-                                            <template v-else>
-                                                <div class="main_price_text" v-if="pros.product.detailTalkFlag == '2'">
-                                                    <div class="price_text_tag"></div>
-                                                    <div class="main_price_show">¥价格祥聊</div>
-                                                </div>
-                                                <div class="main_price_text" v-else>
-                                                    <div class="price_text_tag"></div>
-                                                    <div class="main_price_show">¥{{ pros.product.retailPrice | NumFormat  }}</div>
-                                                </div>
-                                            </template>
-                                        </template>
-                                        <template v-else>
-                                            <template v-if="pros.product.productCategory == 1">
-                                                <div class="price_text_tag right-box">
-                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                </div>
-                                                <div class="main_price_none">
-                                                    <em class="price_grade"><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                    <p class="listTag " v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                </div>
-                                            </template>
-                                            <template v-else>
-                                                <div class="main_price_none sec">
-                                                    <em class="price_grade"><span>¥</span>登录可见</em>
-                                                </div>
-                                            </template>
-                                        </template>
-                                    </div>
-                                </a>
-                            </div>
-                            <a  :href="page.floorContent.adsLink1!='' ? page.floorContent.adsLink1 : 'javascript:void(0)' "
-                                class="page_main_item ad_01" :class="page.floorContent.adsLink1!='' ? '' : 'default' "
-                                :target="page.floorContent.adsLink1!='' ? '_blank' : ''">
-                                <img v-if="isPC" :src="page.floorContent.pcAdsImage1" alt="" class="page_main_item_adv">
-                                <img v-else :src="page.floorContent.appletsAdsImage1" alt="" class="page_main_item_adv">
-                            </a>
-                        </template>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '7'">
-                            <div class="section_page_main clear mfw" :class="page.isPageMore ? 'max' : ''">
-                                <a :href="pros.link" class="page_main_item ad_04" v-for="(pros,index) in page.floorImageList" target="_blank">
-                                    <img class="page_main_image" src="/img/base/placeholder.png" :data-original="pros.image" :alt="pros.name">
-                                    <div class="page_main_tag" v-if="pros.listType == 2"><p>{{ pros.label }}</p></div>
-                                    <div class="page_main_text"><span class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</span>{{ pros.name }}</div>
-                                    <div class="page_main_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.price1TextFlag==1">
-                                                    <!--价格未公开-->
-                                                    <div class="main_price_text">
-                                                        <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>
-                                                    </div>
-                                                </template>
-                                                <template v-else>
-                                                    <!--可见价格-->
-                                                    <template v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                        <div class="main_price_text" v-if="pros.product.productCategory == 1">
-                                                            <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.retailPrice | NumFormat}}</span>
-                                                                </p>
-                                                            </div>
-                                                            <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.price1 : pros.product.retailPrice ) | NumFormat  }}
-                                                            </div>
-                                                        </div>
-                                                    </template>
-                                                    <!--仅会员机构可见-->
-                                                    <template v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
-                                                        <div class="main_price_text">
-                                                            <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>
-                                                        </div>
-                                                    </template>
-                                                    <template v-else>
-                                                        <div class="price_text_tag right-box">
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                        <div class="main_price_none">
-                                                            <em class="price_grade"><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                            <p class="listTag " v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                    </template>
-                                                </template>
-                                            </template>
-                                            <template v-else>
-                                                <div class="main_price_text" v-if="pros.product.detailTalkFlag == '2'">
-                                                    <div class="price_text_tag"></div>
-                                                    <div class="main_price_show">¥价格祥聊</div>
-                                                </div>
-                                                <div class="main_price_text" v-else>
-                                                    <div class="price_text_tag"></div>
-                                                    <div class="main_price_show">¥{{ pros.product.retailPrice | NumFormat  }}</div>
-                                                </div>
-                                            </template>
-                                        </template>
-                                        <template v-else>
-                                            <template v-if="pros.product.productCategory == 1">
-                                                <div class="price_text_tag right-box">
-                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                </div>
-                                                <div class="main_price_none">
-                                                    <em class="price_grade"><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                    <p class="listTag " v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                </div>
-                                            </template>
-                                            <template v-else>
-                                                <div class="main_price_none sec">
-                                                    <em class="price_grade"><span>¥</span>登录可见</em>
-                                                </div>
-                                            </template>
-                                        </template>
-                                    </div>
-                                </a>
-                            </div>
-                        </template>
-                        <template v-if="page.floorContent && page.floorContent.templateType == '8'">
-                            <div class="floorCon">
-                                <div class="hotList swiper-container-floor" id="recommendBox">
-                                    <div class="section_page_main type_08 clear mfw swiper-wrapper recommendBox-wrapper" :class="page.isPageMore ? 'max' : ''">
-                                        <a class="page_main_item ad_04 swiper-slide" :href="pros.link"  v-for="(pros,index) in page.floorImageList" target="_blank">
-                                            <img class="page_main_image" :src="pros.image" :alt="pros.name">
-                                            <div class="page_main_tag" v-if="pros.listType == 2">{{ pros.label }}</div>
-                                            <div class="page_main_text" target="_blank"><sapn class="tag" v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</sapn>{{pros.name}}</div>
-                                            <div class="page_main_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.price1TextFlag==1">
-                                                            <!--价格未公开-->
-                                                            <div class="main_price_text">
-                                                                <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>
-                                                            </div>
-                                                        </template>
-                                                        <template v-else>
-                                                            <!--可见价格-->
-                                                            <template v-if="(pros.product.price1TextFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                                                <div class="main_price_text" v-if="pros.product.productCategory == 1">
-                                                                    <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.retailPrice | NumFormat}}</span>
-                                                                        </p>
-                                                                    </div>
-                                                                    <div class="main_price_show" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                        ¥{{ (PromotionsFormat(pros.product.promotions) ? pros.product.price1 : pros.product.retailPrice ) | NumFormat  }}
-                                                                    </div>
-                                                                </div>
-                                                            </template>
-                                                            <!--仅会员机构可见-->
-                                                            <template v-else-if="pros.product.price1TextFlag==2 && pros.product.userIdentity==4">
-                                                                <div class="main_price_text">
-                                                                    <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>
-                                                                </div>
-                                                            </template>
-                                                            <template v-else>
-                                                                <div class="price_text_tag right-box">
-                                                                    <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                                <div class="main_price_none">
-                                                                    <em class="price_grade"><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                                    <p class="listTag " v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                                </div>
-                                                            </template>
-                                                        </template>
-                                                    </template>
-                                                    <template v-else>
-                                                        <div class="main_price_text" v-if="pros.product.detailTalkFlag == '2'">
-                                                            <div class="price_text_tag"></div>
-                                                            <div class="main_price_show">¥价格祥聊</div>
-                                                        </div>
-                                                        <div class="main_price_text" v-else>
-                                                            <div class="price_text_tag"></div>
-                                                            <div class="main_price_show">¥{{ pros.product.retailPrice | NumFormat  }}</div>
-                                                        </div>
-                                                    </template>
-                                                </template>
-                                                <template v-else>
-                                                    <template v-if="pros.product.productCategory == 1">
-                                                        <div class="price_text_tag right-box">
-                                                            <p class="listTag" v-if="pros.product.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                        <div class="main_price_none">
-                                                            <em class="price_grade right-box"><span class="bold">¥</span><i :class="'icon mIcon price_grade_'+pros.product.price1Grade"></i></em>
-                                                            <p class="listTag" v-if="pros.actStatus==1">{{pros.product.promotions.name}}</p>
-                                                        </div>
-                                                    </template>
-                                                    <template v-else>
-                                                        <div class="main_price_none sec">
-                                                            <em class="price_grade"><span>¥</span>登录可见</em>
-                                                        </div>
-                                                    </template>
-                                                </template>
+                                                </th:block>
                                             </div>
                                         </a>
-                                    </div>
-                                    <div class="swiper-pagination swiper-pagination-floor mfc"><span v-if="isPC" v-for="i in  Math.ceil(page.floorImageList.length / 5)"></span></div>
+                                    </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>
-                        </template>
+                            <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 class="section_page">
+                    <div class="section_page_title">
+                        <h1 data-id="99">优质供应商</h1>
+                        <p>采美正品联盟 质量保证</p>
                     </div>
-                    <div class="section_page">
-                        <div class="section_page_title">
-                            <h1 :data-id="pageList.length+1">优质供应商</h1>
-                            <p>采美正品联盟 质量保证</p>
-                        </div>
-                        <div class="section_page_bottom">
-                            <a :href="supplierWwwLink!='' ? supplierWwwLink : 'javascript:void(0)' " class="page_main_li ad_01" :target="supplierWwwLink!='' ? '_blank' : ''"><img class="page_main_item_adv" :src="supplierImage" alt=""> </a>
-                            <a :href="shop.link" class="page_main_li ad_02" v-for="(shop,index) in supplierList" target="_blank">
-                                <img class="page_main_logo" src="/img/base/placeholder.png" :data-original="shop.image" :alt="shop.supplierName">
-                                <div class="page_main_name">{{ shop.supplierName }}</div>
+                    <div class="section_page_bottom" th:object="${floorJson.get('supplierImage')}">
+                        <a th:href="*{#strings.isEmpty(wwwLink)}? 'javascript:;' : *{wwwLink}" th:attr="target=(*{#strings.isEmpty(wwwLink)} ? '_self' : '_blank')" class="page_main_li ad_01">
+                            <img th:src="*{wwwImage}" alt="" class="page_main_item_adv">
+                        </a>
+                        <template th:each="shop : ${floorJson.get('supplierImage').get('qualitySupplierList')}"  th:object="${shop}">
+                            <a th:href="*{link}" target="_blank" class="page_main_li ad_02">
+                                <img class="page_main_logo" src="/img/base/placeholder.png" th:attr="data-original=*{image}" th:alt="*{supplierName}">
+                                <div class="page_main_name" th:text="*{supplierName}"></div>
                             </a>
-                        </div>
+                        </template>
                     </div>
                 </div>
             </div>
         </div>
-        <!--右侧边栏导航-->
-        <div id="sideNav" v-if="isPC">
-            <div class="item">
-                <a class="item-sideNav" href="javascript:void(0);" v-for="nav in asideNav" :data-id="nav.id" v-text="nav.value" ></a>
+    </div>
+    <!--右侧边栏导航-->
+    <div id="sideNav" v-if="isPC">
+        <div class="item">
+            <a class="item-sideNav" href="javascript:void(0);" v-for="nav in asideNav" :data-id="nav.id" v-text="nav.value" ></a>
+        </div>
+    </div>
+    <!--美博会弹窗-->
+    <div id="meibohui" class="Popup" v-if="popupFlag" :class="popupFlag ? 'show' :'' "
+         onclick="_czc.push(['_trackEvent','美博会','点击','用户访问','','meibohui'])">
+        <div class="show_popup">
+            <div class="bg_icon" @click="closePopup"><i class="icon mIcon"></i></div>
+            <div class="bg_img" @click="popupPage">
+                <img src="https://static.caimei365.com/app/meibohui/www/activity-pop-pc.png" v-if="isPC">
+                <img src="https://static.caimei365.com/app/meibohui/www/activity-pop-h5.png" v-else>
             </div>
         </div>
-        <!--美博会弹窗-->
-<!--        <div class="Popup" v-if="showflag" :class="showflag ? 'show' :'' ">-->
-<!--            <div class="show_popup">-->
-<!--                <div class="bg_icon" @click="closepopup"><i class="icon mIcon"></i></div>-->
-<!--                <div class="bg_img" @click="zhuanti"><img src="/img/Beautyfair/youhui-pc.png" v-if="isPC"><img src="/img/Beautyfair/youhui.h5.png" v-else></div>-->
-<!--            </div>-->
-<!--        </div>-->
-    </template>
+    </div>
 </div>
 <!-- 引入底部 -->
 <template th:replace="components/footer"></template>

+ 1 - 0
src/main/resources/templates/pay/caimei-pay.html

@@ -4,6 +4,7 @@
 <head>
     <template th:replace="pay/components/pay-link"></template>
     <link th:href="@{/css/pay/caimei-pay.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <div class="head-wrap">

+ 2 - 1
src/main/resources/templates/pay/caimei-paycash.html

@@ -2,9 +2,10 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/pay/caimei-paycash.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 1 - 0
src/main/resources/templates/pay/caimei-paymobile.html

@@ -4,6 +4,7 @@
 <head>
     <template th:replace="pay/components/pay-link"></template>
     <link th:href="@{/css/pay/caimei-paymobile.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <div class="head-wrap">

+ 1 - 0
src/main/resources/templates/pay/caimei-starspay.html

@@ -4,6 +4,7 @@
 <head>
     <template th:replace="pay/components/pay-link"></template>
     <link th:href="@{/css/pay/caimei-pay.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <div class="head-wrap">

+ 2 - 1
src/main/resources/templates/pay/caimei-success.html

@@ -2,9 +2,10 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/pay/caimei-success.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 2 - 1
src/main/resources/templates/pay/caimei-wechatpay.html

@@ -2,9 +2,10 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/pay/caimei-wechatpay.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 1 - 0
src/main/resources/templates/pay/caimei-wisapay.html

@@ -4,6 +4,7 @@
 <head>
     <template th:replace="pay/components/pay-link"></template>
     <link th:href="@{/css/pay/caimei-pay.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <div class="head-wrap">

+ 1 - 6
src/main/resources/templates/pay/components/pay-link.html

@@ -1,11 +1,9 @@
 <meta charset="UTF-8">
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <meta name="viewport" content="width=device-width,account-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0">
     <meta name="apple-mobile-web-app-capable" content="yes">
     <meta name="apple-mobile-web-app-status-bar-style" content="black">
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
-    <meta http-equiv="keywords" content="采美平台业务包括采美采购商城,采美正品联盟,美业供应链合作,美业平台综合运营,三方项目服务合作,美业信息咨询服务,美业二手市场,医美直播,品牌招商等。其中采购商城包括热门小气泡仪器,皮肤检测,水光仪器,中胚层治疗仪器,激光仪器,射频仪器,超声仪器,微针射频仪器,脱毛仪器,红蓝光,身体塑形溶脂仪器等。产品包括:医美术后修复产品,高端SPA产品,高端院线产品,医美家居护理产品,玻尿酸,动能素,精纯液,填充针剂,线材,消耗品等。">
-    <meta http-equiv="description" content="采美365网,生美医美正品采购服务平台,国内首家美容行业的B2B平台,具有一,二,三类医疗器械销售资质和进出口资质。聚集全球100多个高品质供应商资源,包括医疗、非医疗美容产品和仪器设备,能一站式满足医疗美容机构、生活美容机构、新兴皮肤管理中心等多样化采购需求。同时提供供应链合作,整合上下游资源,为美容产业的持续前进和发展提出新的解决方案。">
     <link rel="shortcut icon" th:href="@{/favicon.png}" type="image/x-icon"/>
     <link rel="bookmark" th:href="@{/favicon.png}" type="image/x-icon"/>
     <link href="/lib/swiper.min.css" media="screen and (max-width:768px)" rel="stylesheet" type="text/css">
@@ -13,6 +11,3 @@
     <link href="/lib/css/viewer.min.css" rel="stylesheet" type="text/css">
     <link th:href="@{/css/base/init.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/base/base.pc.css(v=${version})}"  rel="stylesheet" type="text/css">
-    <!--百度统计 start-->
-    <script th:if="${siteEnv}==2">var _hmt=_hmt||[];(function(){var hm=document.createElement("script");hm.src = "https://hm.baidu.com/hm.js?ccdb07ae255aa2a1d68c7c725a40d99c";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm,s);})();</script>
-    <!--百度统计 end-->

+ 2 - 1
src/main/resources/templates/product/beautytopic.html

@@ -2,9 +2,10 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--美博会震撼开启,重磅优惠等你来领</title>
+    <title>采美365网-美博会震撼开启,重磅优惠等你来领</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/product/beautytopic.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 1 - 0
src/main/resources/templates/product/detail.html

@@ -6,6 +6,7 @@
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/product/detail.h5.css(v=${version})}" media="screen and (max-width:768px)" rel="stylesheet" type="text/css">
     <link th:href="@{/css/product/detail.pc.css(v=${version})}" media="screen and (min-width:768px)" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

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

@@ -2,9 +2,10 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网-产品分类列表-医疗美容生活美容正品采购平台</title>
+    <title>采美365网-产品分类列表</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/product/instruement-list.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->
@@ -20,11 +21,10 @@
         <div class="crumbs-nav" v-if="isPC">
             <div class="crumbs-link"> 筛选条件: </div>
             <div  class="crumbs-nav-main">
-                   <div class="crumbs-nav-item" v-if="bigName !=''">{{bigName}}</div>
-                   <div class="crumbs-nav-item" v-if="tinyName!=''&& smallName!=''">{{smallName}}</div>
-                   <div class="crumbs-nav-item on" @click="removeNama(1)" v-if="smallName!=''&& tinyName==''">{{smallName}} x</div>
-                   <div class="crumbs-nav-item on" @click="removeNama(2)" v-if="tinyName!=''">{{tinyName}} x</div>
-
+               <div class="crumbs-nav-item" v-if="bigName !=''">{{bigName}}</div>
+               <div class="crumbs-nav-item" v-if="tinyName!=''&& smallName!=''">{{smallName}}</div>
+               <div class="crumbs-nav-item on" @click="removeNama(1)" v-if="smallName!=''&& tinyName==''">{{smallName}} x</div>
+               <div class="crumbs-nav-item on" @click="removeNama(2)" v-if="tinyName!=''">{{tinyName}} x</div>
             </div>
         </div>
         <div id="listClassify">

+ 1 - 0
src/main/resources/templates/product/instrument.html

@@ -5,6 +5,7 @@
     <title>采美365网-仪器</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/product/instruement.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body >
     <!-- 引用头部 -->

+ 1 - 0
src/main/resources/templates/product/list.html

@@ -5,6 +5,7 @@
     <title>采美365网-商品列表</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/product/list.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 1 - 0
src/main/resources/templates/product/promotions.html

@@ -5,6 +5,7 @@
     <title>采美365网-商品列表</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/product/list.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 1 - 0
src/main/resources/templates/product/qualityauthorize.html

@@ -4,6 +4,7 @@
 <head><title>正品联盟</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/product/qualityauthorize.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <input type="hidden" th:value="${spiServer}" id="spiServer">

+ 1 - 0
src/main/resources/templates/product/temporary.html

@@ -13,6 +13,7 @@
         .instrue-left{float:unset;margin:0 auto}
         .pc-banner{width:100%;height:510px;background:url(https://static.caimei365.com/www/mt_pc.jpg) no-repeat center}
     </style>
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 2 - 1
src/main/resources/templates/shopping/cart.html

@@ -5,6 +5,7 @@
     <title>采美365网-我的购物车</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/shopping/shopping.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->
@@ -97,7 +98,7 @@
                                 <del v-text="'¥'+toFloat(cart.originalPrice)"></del>
                             </template>
                             <template v-else>
-                                <em v-text="'¥'+toFloat(cart.price)"></em>
+                                <em> {{ cart.price | NumFormat }} </em>
                             </template>
                             <!-- 促销活动 -->
                             <div v-if="cart.actStatus==1 && cart.promotions" class="priceTag">

+ 2 - 1
src/main/resources/templates/shopping/confirm.html

@@ -6,6 +6,7 @@
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/shopping/shopping.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->
@@ -352,4 +353,4 @@
 <script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/order.service.js(v=${version})}"></script>
 <script charset="utf-8" type="text/javascript" th:src="@{/js/shopping/confirm.js(v=${version})}"></script>
 </body>
-</html>
+</html>

+ 1 - 0
src/main/resources/templates/single-page/investment.html

@@ -24,6 +24,7 @@
             #investment .bank{background:url(/img/investment/h5_bank.png) no-repeat center center;}
         }
     </style>
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 3 - 2
src/main/resources/templates/single-page/live.html

@@ -3,10 +3,11 @@
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
     <title th:text="'采美365网-'+${pageData.title}"></title>
-    <meta http-equiv="keywords" th:content="${pageData.keywords}">
-    <meta http-equiv="description" th:content="${pageData.description}">
+    <meta name="keywords" th:content="${pageData.keywords}">
+    <meta name="description" th:content="${pageData.description}">
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/single-page/live.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 3 - 2
src/main/resources/templates/single-page/page.html

@@ -3,8 +3,8 @@
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
     <title th:text="'采美365网-'+${pageData.title}"></title>
-    <meta http-equiv="keywords" th:content="${pageData.keywords}">
-    <meta http-equiv="description" th:content="${pageData.description}">
+    <meta name="keywords" th:content="${pageData.keywords}">
+    <meta name="description" th:content="${pageData.description}">
     <template th:replace="components/head-link"></template>
     <style type="text/css">
         #freePage{position:relative;}
@@ -22,6 +22,7 @@
             .freePage table{width:100%;text-align:left}
         }
     </style>
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 1 - 0
src/main/resources/templates/single-page/promotions.html

@@ -5,6 +5,7 @@
     <title>采美365网-商品专题</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/single-page/promotions.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 1 - 0
src/main/resources/templates/single-page/repair.html

@@ -5,6 +5,7 @@
     <title>采美365网-采美仪器维修保养介绍</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/single-page/repair.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 3 - 2
src/main/resources/templates/single-page/topic.html

@@ -3,10 +3,11 @@
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
     <title th:text="'采美365网-'+${pageData.title}"></title>
-    <meta http-equiv="keywords" th:content="${pageData.keywords}">
-    <meta http-equiv="description" th:content="${pageData.description}">
+    <meta name="keywords" th:content="${pageData.keywords}">
+    <meta name="description" th:content="${pageData.description}">
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/single-page/topic.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 2 - 1
src/main/resources/templates/supplier-center/dashboard.html

@@ -2,11 +2,12 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:if="${pageId==1026}" th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/supplier-center/dashboard.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 2 - 1
src/main/resources/templates/supplier-center/message/list.html

@@ -2,10 +2,11 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网-消息列表-中国美业全方位线上交易服务互动平台,做美业,上采美</title>
+    <title>采美365网-消息列表</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/supplier-center/message.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 2 - 1
src/main/resources/templates/supplier-center/operation/form.html

@@ -2,11 +2,12 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网-运营人员管理-中国美业全方位线上交易服务互动平台,做美业,上采美</title>
+    <title>采美365网-运营人员管理</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/user-center/operation/form.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 2 - 1
src/main/resources/templates/supplier-center/operation/list.html

@@ -2,10 +2,11 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网-运营人员管理-中国美业全方位线上交易服务互动平台,做美业,上采美</title>
+    <title>采美365网-运营人员管理</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/supplier-center/operation/list.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 2 - 1
src/main/resources/templates/supplier-center/order/delivery-record.html

@@ -2,10 +2,11 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/supplier-center/order/record.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 2 - 1
src/main/resources/templates/supplier-center/order/delivery.html

@@ -2,10 +2,11 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/supplier-center/order/delivery.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

+ 2 - 1
src/main/resources/templates/supplier-center/order/detail.html

@@ -2,10 +2,11 @@
 <html lang="zh-CN" xmlns:th="https://www.thymeleaf.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
-    <title>采美365网--医疗美容生活美容正品采购平台</title>
+    <title>采美365网</title>
     <template th:replace="components/head-link"></template>
     <link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
     <link th:href="@{/css/supplier-center/order/detail.css(v=${version})}" rel="stylesheet" type="text/css">
+    <template th:replace="components/analysis"></template>
 </head>
 <body>
 <!-- 引用头部 -->

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff