Bladeren bron

信息平台小需求优化

xiebaomin 1 jaar geleden
bovenliggende
commit
bd1715402f
23 gewijzigde bestanden met toevoegingen van 3516 en 2931 verwijderingen
  1. 149 148
      src/main/java/com/caimei/www/controller/unlimited/EncyclopediaController.java
  2. 14 0
      src/main/resources/static/css/activity/beautyTopic.css
  3. 1 0
      src/main/resources/static/css/article/article.css
  4. 1 1
      src/main/resources/static/css/article/drawer-footer.css
  5. 16 1
      src/main/resources/static/css/quickOperation/index.css
  6. 348 314
      src/main/resources/static/js/activity/beautyTopic.js
  7. 124 124
      src/main/resources/static/js/activity/beautyTopic/utils.js
  8. 12 0
      src/main/resources/static/js/article/common.js
  9. 11 0
      src/main/resources/static/js/common/serviceapi/product.service.js
  10. 1002 993
      src/main/resources/static/js/common/serviceapi/supplier.service.js
  11. 293 260
      src/main/resources/static/js/quickOpreation/index.js
  12. 3 0
      src/main/resources/static/js/supplier-center/encyclopedia/edit.js
  13. 10 9
      src/main/resources/static/js/supplier-login/more.js
  14. 272 41
      src/main/resources/templates/activity/beautyTopic.html
  15. 3 2
      src/main/resources/templates/article/components/article-drawer.html
  16. 2 2
      src/main/resources/templates/article/components/article-sidebar.html
  17. 11 25
      src/main/resources/templates/article/list.html
  18. 3 2
      src/main/resources/templates/encyclopedia/detail.html
  19. 1 1
      src/main/resources/templates/product/detail.html
  20. 1057 826
      src/main/resources/templates/quickOperation/index.html
  21. 179 178
      src/main/resources/templates/supplier-center/encyclopedia/preview.html
  22. 2 2
      src/main/resources/templates/supplier_login/index.html
  23. 2 2
      src/main/resources/templates/supplier_login/more.html

+ 149 - 148
src/main/java/com/caimei/www/controller/unlimited/EncyclopediaController.java

@@ -1,148 +1,149 @@
-package com.caimei.www.controller.unlimited;
-
-import com.caimei.www.controller.BaseController;
-import com.caimei.www.pojo.baike.BaikeHotSearch;
-import com.caimei.www.pojo.baike.BaikeProductVo;
-import com.caimei.www.pojo.baike.BaikeTypeVo;
-import com.caimei.www.service.page.ProductService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 采美百科
- *
- * @author : yuwenjun1997
- * @date : 2022/12/28
- */
-
-@Controller
-@RequestMapping("encyclopedia")
-public class EncyclopediaController extends BaseController {
-    private static final String ENCYCLOPEDIA_LIST = "encyclopedia/list";
-    private static final String ENCYCLOPEDIA_DETAIL = "encyclopedia/detail";
-    private static final String ENCYCLOPEDIA_SEARCH = "encyclopedia/search";
-    private static final String ENCYCLOPEDIA_ABOUT = "encyclopedia/about";
-    private ProductService productService;
-
-    @Autowired
-    public void setProductService(ProductService productService) {
-        this.productService = productService;
-    }
-
-    @GetMapping("/list.html")
-    public String getEncyclopediaHome(){
-        //分类集合
-        List<BaikeTypeVo> typeList = productService.geTypeList();
-        Integer typeId = null;
-        if(null != typeList && typeList.size() > 0){
-            typeId = typeList.get(0).getTypeId();
-        }
-        return "redirect:/encyclopedia/list-"+ typeId +".html";
-    }
-
-    /*
-     * 百科首页
-     * */
-    @GetMapping("/list-{typeId}.html")
-    public String getEncyclopediaList(final Model model,@PathVariable("typeId") Integer typeId) {
-        //词条信息
-        SimpleDateFormat sl=new SimpleDateFormat("yyyy-MM-dd");
-        List<BaikeProductVo> authUserList = productService.getAuthUserList(typeId);
-        if(null!=authUserList&&authUserList.size()>0){
-            for(BaikeProductVo baikeProductVo:authUserList){
-                //初始化基础浏览量(防止报错)
-                if(null!=baikeProductVo&&null==baikeProductVo.getPv()){
-                    //如果浏览量为空 则设置为0
-                    productService.initializationPV(baikeProductVo.getProductId());
-                }
-            }
-        for (BaikeProductVo baikeProductVo:authUserList) {
-                if(null!=baikeProductVo.getPublishTime()){
-                    baikeProductVo.setPublishTimeStr(sl.format(baikeProductVo.getPublishTime()));
-                }
-            if(null!=baikeProductVo&&null!=baikeProductVo.getPublishSource()&&baikeProductVo.getPublishSource()==1){
-                //供应商发布的词条取实际浏览量,管理员发布的取基础浏览量加实际浏览量
-                baikeProductVo.setPv(baikeProductVo.getPv()+baikeProductVo.getBasePv());
-            }
-        }
-        }
-        //分类集合
-        List<BaikeTypeVo> typeList = productService.geTypeList();
-        //根据id查询分类信息
-        BaikeTypeVo typeData = productService.geTypeListByid(typeId);
-        //热搜词
-        List<BaikeHotSearch> hotSeracherWords=productService.getHotWords();
-        model.addAttribute("authUserList", authUserList);
-        model.addAttribute("TypeList", typeList);
-        model.addAttribute("Typedata", typeData);
-        model.addAttribute("hotSeracherWords", hotSeracherWords);
-        return ENCYCLOPEDIA_LIST;
-    }
-
-    /*
-     * 百科详情
-     * */
-    @GetMapping("/detail-{id}.html")
-    public String getEncyclopediaDetail(final Model model, @PathVariable("id") Integer id) {
-        SimpleDateFormat sl=new SimpleDateFormat("yyyy-MM-dd");
-            //初始化基础浏览量(防止报错)
-            //如果浏览量为空 则设置为0
-            productService.initializationPV(id);
-        BaikeProductVo baikeproduct = productService.getEncyclopediaDetail(id);
-        if(null!=baikeproduct){
-            if(null!=baikeproduct.getPublishTime()){
-                baikeproduct.setPublishTimeStr(sl.format(baikeproduct.getPublishTime()));
-            }
-        }
-        if(null!=baikeproduct&&null!=baikeproduct.getPublishSource()&&baikeproduct.getPublishSource()==1){
-            //供应商发布的词条取实际浏览量,管理员发布的取基础浏览量加实际浏览量
-            baikeproduct.setPv(baikeproduct.getPv()+baikeproduct.getBasePv());
-        }
-        //热搜词
-        List<BaikeHotSearch> hotSeracherWords=productService.getHotWords();
-        model.addAttribute("hotSeracherWords", hotSeracherWords);
-        model.addAttribute("baikeproduct", baikeproduct);
-        //分类集合
-        List<BaikeTypeVo> typeList = productService.geTypeList();
-        model.addAttribute("TypeList", typeList);
-        //增加浏览量
-        productService.encyclopediaPv(id);
-        return ENCYCLOPEDIA_DETAIL;
-    }
-
-    /*
-     * 百科搜索页面
-     * */
-    @GetMapping("/search.html")
-    public String getEncyclopediaSearch(final Model model) {
-        //热搜词
-        List<BaikeHotSearch> hotSeracherWords=productService.getHotWords();
-        //分类集合
-        List<BaikeTypeVo> typeList = productService.geTypeList();
-        model.addAttribute("TypeList", typeList);
-        model.addAttribute("hotSeracherWords", hotSeracherWords);
-        return ENCYCLOPEDIA_SEARCH;
-    }
-
-    /*
-     * 关于百科
-     * */
-    @GetMapping("/about.html")
-    public String getEncyclopediaAbout(final Model model) {
-        //热搜词
-        List<BaikeHotSearch> hotSeracherWords=productService.getHotWords();
-        //分类集合
-        List<BaikeTypeVo> typeList = productService.geTypeList();
-        model.addAttribute("TypeList", typeList);
-        model.addAttribute("hotSeracherWords", hotSeracherWords);
-        return ENCYCLOPEDIA_ABOUT;
-    }
-}
+package com.caimei.www.controller.unlimited;
+
+import com.caimei.www.controller.BaseController;
+import com.caimei.www.pojo.baike.BaikeHotSearch;
+import com.caimei.www.pojo.baike.BaikeProductVo;
+import com.caimei.www.pojo.baike.BaikeTypeVo;
+import com.caimei.www.service.page.ProductService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 采美百科
+ *
+ * @author : yuwenjun1997
+ * @date : 2022/12/28
+ */
+
+@Controller
+@RequestMapping("encyclopedia")
+public class EncyclopediaController extends BaseController {
+    private static final String ENCYCLOPEDIA_LIST = "encyclopedia/list";
+    private static final String ENCYCLOPEDIA_DETAIL = "encyclopedia/detail";
+    private static final String ENCYCLOPEDIA_SEARCH = "encyclopedia/search";
+    private static final String ENCYCLOPEDIA_ABOUT = "encyclopedia/about";
+    private ProductService productService;
+
+    @Autowired
+    public void setProductService(ProductService productService) {
+        this.productService = productService;
+    }
+
+    @GetMapping("/list.html")
+    public String getEncyclopediaHome(){
+        //分类集合
+        List<BaikeTypeVo> typeList = productService.geTypeList();
+        Integer typeId = null;
+        if(null != typeList && typeList.size() > 0){
+            typeId = typeList.get(0).getTypeId();
+        }
+        return "redirect:/encyclopedia/list-"+ typeId +".html";
+    }
+
+    /*
+     * 百科首页
+     * */
+    @GetMapping("/list-{typeId}.html")
+    public String getEncyclopediaList(final Model model,@PathVariable("typeId") Integer typeId) {
+        //词条信息
+        SimpleDateFormat sl=new SimpleDateFormat("yyyy-MM-dd");
+        List<BaikeProductVo> authUserList = productService.getAuthUserList(typeId);
+        if(null!=authUserList&&authUserList.size()>0){
+            for(BaikeProductVo baikeProductVo:authUserList){
+                //初始化基础浏览量(防止报错)
+                if(null!=baikeProductVo&&null==baikeProductVo.getPv()){
+                    //如果浏览量为空 则设置为0
+                    productService.initializationPV(baikeProductVo.getProductId());
+                }
+            }
+        for (BaikeProductVo baikeProductVo:authUserList) {
+                if(null!=baikeProductVo.getPublishTime()){
+                    baikeProductVo.setPublishTimeStr(sl.format(baikeProductVo.getPublishTime()));
+                }
+            if(null!=baikeProductVo&&null!=baikeProductVo.getPublishSource()&&baikeProductVo.getPublishSource()==1){
+                //供应商发布的词条取实际浏览量,管理员发布的取基础浏览量加实际浏览量
+                baikeProductVo.setPv(baikeProductVo.getPv()+baikeProductVo.getBasePv());
+            }
+        }
+        }
+        //分类集合
+        List<BaikeTypeVo> typeList = productService.geTypeList();
+        //根据id查询分类信息
+        BaikeTypeVo typeData = productService.geTypeListByid(typeId);
+        //热搜词
+        List<BaikeHotSearch> hotSeracherWords=productService.getHotWords();
+        model.addAttribute("authUserList", authUserList);
+        model.addAttribute("TypeList", typeList);
+        model.addAttribute("Typedata", typeData);
+        model.addAttribute("hotSeracherWords", hotSeracherWords);
+        return ENCYCLOPEDIA_LIST;
+    }
+
+    /*
+     * 百科详情
+     * */
+    @GetMapping("/detail-{id}.html")
+    public String getEncyclopediaDetail(final Model model, @PathVariable("id") Integer id) {
+        SimpleDateFormat sl=new SimpleDateFormat("yyyy-MM-dd");
+            //初始化基础浏览量(防止报错)
+            //如果浏览量为空 则设置为0
+            productService.initializationPV(id);
+        BaikeProductVo baikeproduct = productService.getEncyclopediaDetail(id);
+        if(null!=baikeproduct){
+            if(null!=baikeproduct.getPublishTime()){
+                baikeproduct.setPublishTimeStr(sl.format(baikeproduct.getPublishTime()));
+            }
+        }
+        if(null!=baikeproduct&&null!=baikeproduct.getPublishSource()&&baikeproduct.getPublishSource()==1){
+            //供应商发布的词条取实际浏览量,管理员发布的取基础浏览量加实际浏览量
+            baikeproduct.setPv(baikeproduct.getPv()+baikeproduct.getBasePv());
+        }
+        //热搜词
+        List<BaikeHotSearch> hotSeracherWords=productService.getHotWords();
+        model.addAttribute("hotSeracherWords", hotSeracherWords);
+        model.addAttribute("baikeproduct", baikeproduct);
+        System.out.println("baikeproduct" + baikeproduct);
+        //分类集合
+        List<BaikeTypeVo> typeList = productService.geTypeList();
+        model.addAttribute("TypeList", typeList);
+        //增加浏览量
+        productService.encyclopediaPv(id);
+        return ENCYCLOPEDIA_DETAIL;
+    }
+
+    /*
+     * 百科搜索页面
+     * */
+    @GetMapping("/search.html")
+    public String getEncyclopediaSearch(final Model model) {
+        //热搜词
+        List<BaikeHotSearch> hotSeracherWords=productService.getHotWords();
+        //分类集合
+        List<BaikeTypeVo> typeList = productService.geTypeList();
+        model.addAttribute("TypeList", typeList);
+        model.addAttribute("hotSeracherWords", hotSeracherWords);
+        return ENCYCLOPEDIA_SEARCH;
+    }
+
+    /*
+     * 关于百科
+     * */
+    @GetMapping("/about.html")
+    public String getEncyclopediaAbout(final Model model) {
+        //热搜词
+        List<BaikeHotSearch> hotSeracherWords=productService.getHotWords();
+        //分类集合
+        List<BaikeTypeVo> typeList = productService.geTypeList();
+        model.addAttribute("TypeList", typeList);
+        model.addAttribute("hotSeracherWords", hotSeracherWords);
+        return ENCYCLOPEDIA_ABOUT;
+    }
+}

+ 14 - 0
src/main/resources/static/css/activity/beautyTopic.css

@@ -375,6 +375,12 @@ a{color:#333;text-decoration:none}
 .cm-to-top .cm-icon-bar:nth-child(1){width:6vw;height:1vw;background:#999999;margin-top:4vw;}
 .cm-to-top .cm-icon-bar:nth-child(2){width:0;height:0;border-left:3vw solid transparent;border-right:3vw solid transparent;border-bottom:2vw solid #999999}
 .cm-to-top .cm-icon-bar:nth-child(3){width:10px;height:10px;background:#999999}
+.swiper-slide .slide-template-2, .swiper-slide .slide-template-26 {height: 45vw;}
+.swiper-slide .slide-template-1 {height: 35vw;}
+.swiper-slide .slide-template-2 img {height: 20vw; width: 100%;}
+.swiper-slide .slide-template-1 img {height: 16vw; width: 100%;}
+.swiper-slide .slide-template-26 img {height: 100%;position: absolute;}
+.slide-template-2-img {position: relative;background: #fff;}
 }
 @media (max-width:992px){
 .cm-swiper-button-prev,.cm-swiper-button-next{display:none}
@@ -727,6 +733,14 @@ a{color:#333;text-decoration:none}
 .cm-to-top:hover{background:#ff5c00}
 .cm-to-top:hover .cm-icon-bar:nth-child(1),.cm-to-top:hover .cm-icon-bar:nth-child(3){background:#fff !important}
 .cm-to-top:hover .cm-icon-bar:nth-child(2){border-bottom-color:#fff}
+.swiper-slide .slide-template-2 {height: 370px;}
+.swiper-slide .template-rows-2 {cursor: pointer}
+.swiper-slide .slide-template-3 {height: 446px;}
+.swiper-slide .slide-template-6 {height: 668px;}
+.swiper-slide .slide-template-9 {height: 738px;}
+.swiper-slide .slide-template-9 img,.swiper-slide .slide-template-28 img,.swiper-slide .slide-template-30 img,.swiper-slide .slide-template-32 img,.swiper-slide .slide-template-26 img {position: absolute;height: 100%}
+.swiper-slide .slide-template-22,.swiper-slide .slide-template-26,.swiper-slide .slide-template-28, .swiper-slide .slide-template-30, .swiper-slide .slide-template-32 {height: 562px;}
+.slide-template-2-img {position: relative;}
 }
 @media (min-width:1200px){
 .cm-container{width:1140px}

+ 1 - 0
src/main/resources/static/css/article/article.css

@@ -187,6 +187,7 @@ dl,dd,dt{zoom:1}
 	.info-banner .sider-banner {width: 360px;display: flex;flex-direction: column;}
 	.info-banner .sider-banner div {height: 187px;}
 	.info-banner .sider-banner div:nth-child(2) {margin-top: 8px;}
+	.info-banner img {width: 100%;height:100%;object-fit: cover}
 	.info-Notice {width: 284px;background: #fff;float: right;height: 384px;margin-bottom: 16px;}
 	.info-Notice .notice-title {display: flex;justify-content: space-between;box-sizing: border-box;height: 48px;padding: 14px 16px;}
 	.info-Notice .notice-title div:nth-child(1) {font-size: 16px;font-weight: bold;color: #333333;}

+ 1 - 1
src/main/resources/static/css/article/drawer-footer.css

@@ -97,7 +97,7 @@
 .advertisement .advertisement-link img {
     width: 100%;
     height: 100%;
-    /*object-fit: contain;*/
+    object-fit: cover;
 }
 .bg-filter {
     width: 100%;

+ 16 - 1
src/main/resources/static/css/quickOperation/index.css

@@ -384,6 +384,12 @@ a{color:#333;text-decoration:none}
     .cm-to-top .cm-icon-bar:nth-child(1){width:6vw;height:1vw;background:#999999;margin-top:4vw;}
     .cm-to-top .cm-icon-bar:nth-child(2){width:0;height:0;border-left:3vw solid transparent;border-right:3vw solid transparent;border-bottom:2vw solid #999999}
     .cm-to-top .cm-icon-bar:nth-child(3){width:10px;height:10px;background:#999999}
+    .swiper-slide .slide-template-2, .swiper-slide .slide-template-26 {height: 45vw;}
+    .swiper-slide .slide-template-1 {height: 35vw;}
+    .swiper-slide .slide-template-2 img {height: 20vw; width: 100%;}
+    .swiper-slide .slide-template-1 img {height: 16vw; width: 100%;}
+    .swiper-slide .slide-template-26 img {height: 100%;position: absolute;}
+    .slide-template-2-img {position: relative;background: #fff;}
 }
 @media (max-width:992px){
     .cm-swiper-button-prev,.cm-swiper-button-next{display:none}
@@ -736,6 +742,14 @@ a{color:#333;text-decoration:none}
     .cm-to-top:hover{background:#ff5c00}
     .cm-to-top:hover .cm-icon-bar:nth-child(1),.cm-to-top:hover .cm-icon-bar:nth-child(3){background:#fff !important}
     .cm-to-top:hover .cm-icon-bar:nth-child(2){border-bottom-color:#fff}
+    .swiper-slide .slide-template-2 {height: 370px;}
+    .swiper-slide .template-rows-2 {cursor: pointer}
+    .swiper-slide .slide-template-3 {height: 446px;}
+    .swiper-slide .slide-template-6 {height: 668px;}
+    .swiper-slide .slide-template-9 {height: 738px;}
+    .swiper-slide .slide-template-9 img,.swiper-slide .slide-template-28 img,.swiper-slide .slide-template-30 img,.swiper-slide .slide-template-32 img,.swiper-slide .slide-template-26 img {position: absolute;height: 100%}
+    .swiper-slide .slide-template-22,.swiper-slide .slide-template-26,.swiper-slide .slide-template-28, .swiper-slide .slide-template-30, .swiper-slide .slide-template-32 {height: 562px;}
+    .slide-template-2-img {position: relative;}
 }
 @media (min-width:1200px){
     .cm-container{width:1140px}
@@ -750,7 +764,8 @@ a{color:#333;text-decoration:none}
 .cm-swiper .cm-swiper-button-prev{background-image:url(/img/activity/prev-icon.png);left:-60px}
 .cm-swiper .cm-swiper-button-next{background-image:url(/img/activity/next-icon.png);right:-60px}
 .cm-swiper:hover .cm-swiper-button-prev,.cm-swiper:hover .cm-swiper-button-next{opacity:1;visibility:visible}
-.swiper-container .swiper-pagination-bullet-active{width:28px !important;background:#ff5c00 !important;}
+.swiper-pagination .swiper-pagination-bullet {background: #666666 !important;}
+.swiper-container .swiper-pagination-bullet-active{width:28px !important;background: #ff5c00 !important;}
 .swiper-container .swiper-pagination-bullet{width:14px;height:4px;display:inline-block;border-radius:2px}
 .cm-scroll-container{overflow-x:scroll;overflow-y:hidden;white-space:nowrap}
 .cm-scroll-container .cm-scroll-item{max-width:41vw;display:inline-block;margin-right:2vw}

+ 348 - 314
src/main/resources/static/js/activity/beautyTopic.js

@@ -1,314 +1,348 @@
-'use strict';
-
-
-
-var activeApp = (function () {
-    return new Vue({
-        el: '#app',
-        mixins: [swiperMixin, showMoreMixin,cmSysVitaMixins],
-        data: {
-            isMobile: window.innerWidth < 992,
-            showCouponEntry: false,
-            isActive: true,
-            isRequest: true,
-            isLoading: true,
-            showPhoneNum: false,
-            showWechat: false,
-            // showScrollTop: false,
-            activityEntryVisiable: false,
-            contactVisiable: false,
-            scrollTopSize: 0,
-            msg: 'hello world',
-            src: './img/test.jpg',
-            // 显示个数
-            countMap: {},
-            size: 10,
-            swiperList: {},
-            needReload: false,
-            floorList: [],
-            pageInfo: null,
-            params: {
-                //请求参数
-                pageId: '293',
-                userId: '',
-                source: 1
-            },
-            selectVideoTabMap: {},
-            //用户权限
-            globalUserData: '',
-            GLOBAL_USER_ID: 0,
-            GLOBAL_USER_IDENTITY: 0,//2-会员机构;3-供应商;4-普通机构
-            GLOBAL_SHOP_ID: 0,
-        },
-        mounted: function mounted() {
-            this.pageLoaded();
-            // this.showCouponEntry = true 优惠券弹窗入口2
-            // 关闭视频播放
-            this.$nextTick(function(){
-                $('#video-popup .close').on('click', function(){
-                    $(this).parents('#video-popup').hide();
-                });
-            })
-        }
-        ,
-        created: function created() {
-            this.cmSysParams.pageType = 13;
-            this.initUserInfo();
-            this.getFloorData();
-        }
-        ,
-        computed: {
-            showScrollTop: function () {
-                return this.scrollTopSize > 600
-            }
-        }
-        ,
-        watch: {
-            isMobile: function isMobile() {
-                // if (this.needReload) window.location.reload()
-                this.isLoading = true;
-                window.location.reload();
-            }
-        }
-        ,
-        filters: {
-            NumFormat: function NumFormat(value) {//处理金额
-                return Number(value).toFixed(2);
-            }
-            ,
-            tabTime: function tabTime(val) {
-                // 2021-08-16 00:00:00
-                var first = val.split(' ')[0];
-                var second = first.split('-');
-                return second[1] + '-' + second[2];
-            }
-        }
-        ,
-        methods: {
-            //促销活动类型数据处理
-            PromotionsFormat: function (promo) {
-                if (promo !== null) {
-                    if (promo.type === 1 && promo.mode === 1) {
-                        return true;
-                    } else {
-                        return false;
-                    }
-                }
-                return false;
-            }
-            ,
-            // 创建tab与轮播图的对应关系
-            makeVideoFetchMap: function makeVideoFetchMap() {
-                var videoList = [22, 23, 24, 25];
-                var videoMap = {};
-                this.floorList.forEach(function (item, index) {
-                    if (videoList.indexOf(parseInt(item.floorContent.templateType)) !== -1) {
-                        videoMap[item.floorContent.templateType + '-' + index] = 0;
-                    }
-                });
-                this.selectVideoTabMap = videoMap;
-            }
-            ,
-
-            // tab点击事件
-            handleTabClick: function handleTabClick(type, index, val) {
-                var that = this;
-                var swiperId = 'swiper-template-' + index + '-' + type + '-' + val;
-                this.selectVideoTabMap[type + '-' + index] = val;
-                if (this.swiperList[swiperId]) this.swiperList[swiperId].destroy();
-                setTimeout(function () {
-                    that.swiperList[swiperId] = utils.createSwiperId(swiperId, swiperConfig);
-                    utils.responsive('.aspect', 'scalc');
-                    console.log('轮播图切换');
-                });
-            }
-            ,
-
-            // 当前选中的轮播图
-            currentVideoSwiper: function currentVideoSwiper(type, index) {
-                return this.selectVideoTabMap[type + '-' + index];
-            }
-            ,
-            getFloorImageListType: function getFloorImageListType(index) {
-                return index === 0 ? 'floorImageList' : 'floorImageList' + (index + 1);
-            }
-            ,
-
-            // 获取楼层信息
-            getFloorData: function getFloorData() {
-                var that = this;
-                var paramsArr = window.location.pathname.split(".")[0].split("-");
-                var pageId = paramsArr.length >= 1 ? paramsArr[1] : '';
-                this.params.pageId = pageId;
-                ProductApi.getActivityData(that.params, function (res) {
-                    if (res.code === 0) {
-                        that.floorList = res.data.floorList;
-                        that.pageInfo = res.data.page;
-                        that.cmSysParams.pageLabel = that.pageInfo.contentLabel;
-                        that.isRequest = false;
-                        that.makeVideoFetchMap();
-                        that.activityEntryVisiable = that.initActivityEntry(res.data.page.redPacketBeginTime, res.data.page.redPacketEndTime);
-                        that.contactVisiable = res.data.page.infoBarStatus === 1;
-                    }
-                })
-            }
-            ,
-            // 初始化红包入口状态
-            initActivityEntry: function initActivityEntry(begin, end) {
-                const nowTime = new Date().getTime();
-                const beginTime = new Date(begin.replace(/-/g, '/')).getTime();
-                const endTime = new Date(end.replace(/-/g, '/')).getTime();
-                return nowTime >= beginTime && nowTime <= endTime
-            }
-            ,
-            fetchTemplate: function fetchTemplate(list, type) {
-                return list.indexOf(parseInt(type)) !== -1;
-            }
-            ,
-
-            // 获取直播状态
-            makeVideoStatus: function makeVideoStatus(floorData, index) {
-                var displayDate = new Date(floorData.floorContent['displayDate' + index].replace(/-/g, '/')).getTime();
-                var nowDate = new Date().getTime();
-                // 一天的时间戳
-                var oneDay = 60 * 60 * 24 * 1000;
-                // 直播开始时间:displayDate
-                // 直播结束时间:displayDate + oneDay
-                if (nowDate < displayDate) {
-                    return 0; // 未开始
-                }
-                if (nowDate >= displayDate && nowDate <= displayDate + oneDay) {
-                    return 1; // 已开始
-                }
-                if (nowDate - oneDay > displayDate) {
-                    return 2; // 已结束
-                }
-            }
-            ,
-
-            // 使用产品楼层的布局
-            getProductScalcMap: function getProductScalcMap(templateId) {
-                var current = this.isMobile ? 'mobile' : 'pc';
-                var scalcLayout = layoutMapping.productScalcMap['template-' + templateId];
-                return {
-                    scalc: scalcLayout[current].scalc,
-                    col: scalcLayout[current].col
-                };
-            }
-            ,
-            // 使用文章楼层的布局
-            getArticleScalcMap: function getArticleScalcMap(templateId) {
-                var current = this.isMobile ? 'mobile' : 'pc';
-                var scalcLayout = layoutMapping.articleScalcMap['template-' + templateId];
-                return {
-                    scalc: scalcLayout[current],
-                    swiper: scalcLayout['swiper']
-                };
-            }
-            ,
-            // 使用图片楼层的布局
-            getImageScalcMap: function getImageScalcMap(templateId) {
-                var current = this.isMobile ? 'mobile' : 'pc';
-                var scalcLayout = layoutMapping.imageScalcMap['template-' + templateId];
-                return {
-                    scalc: scalcLayout[current],
-                    swiper: scalcLayout['swiper']
-                };
-            }
-            ,
-            // 使用直播楼层的布局
-            getVideoScalcMap: function getVideoScalcMap(templateId) {
-                var current = this.isMobile ? 'mobile' : 'pc';
-                var scalcLayout = layoutMapping.videoScalcMap['template-' + templateId];
-                return {
-                    scalc: scalcLayout[current],
-                    swiper: scalcLayout['swiper']
-                };
-            }
-            ,
-            // 播放视频
-            onPlayVideo(link){
-                $('#video-popup video').attr('src', link);
-                $('#video-popup').show();
-            },
-            // 处理link
-            reallink: function reallink(link) {
-                if(!link) return 'javascript:void(0)';
-                return link;
-            }
-            ,
-            handleToggleActive: function handleToggleActive(flag) {
-                console.log(flag);
-                this.isActive = flag;
-            }
-            ,
-            // 页面挂载完毕
-            pageLoaded: function pageLoaded() {
-                // 轮播图配置
-                var options = {
-                    el: '.swiper-container',
-                    split: '-',
-                    config: swiperConfig,
-                    protertyFix: 'swiper-template-'
-                };
-                var resizeTimer = null;
-                // 延迟处理
-                var that = this;
-                var timer = setInterval(function () {
-                    if (!that.isRequest) {
-                        that.swiperList = utils.createSwiper(options);
-                        // console.log(that.swiperList);
-                        console.log('轮播图创建完毕...');
-                        that.initCountMap(countMapping);
-                        // console.log(that.countMap);
-                        console.log('商品列表处理完毕...');
-                        utils.responsive('.aspect', 'scalc');
-                        that.isLoading = false;
-                        clearInterval(timer);
-                        that.$nextTick(()=>{
-                            $('img[data-original]').lazyload();
-                        });
-                        console.log('页面图片初始化完成...');
-                    }
-                }, 500);
-                // 监听window窗口大小
-                window.addEventListener('resize', function () {
-                    clearTimeout(resizeTimer);
-                    resizeTimer = setTimeout(function () {
-                        utils.responsive('.aspect', 'scalc');
-                        console.log('图片大小已刷新...');
-                    }, 200);
-                    activeApp.$set(activeApp.$data, 'isMobile', window.innerWidth < 560);
-                });
-                window.addEventListener('scroll', function (event) {
-                    that.scrollTopSize = $('body').scrollTop();
-                });
-                console.log('窗口resize事件注册完毕...');
-            }
-            ,
-            // 优惠券入口
-            handleToggleCoupon: function handleToggleCoupon(flag){
-                // this.showCouponEntry = flag;
-                this.isActive = false;
-            },
-            //    初始化用户信息
-            initUserInfo: function initUserInfo() {
-                var userInfo = localStorage.getItem('userInfo');
-                if (!userInfo) {
-                    console.log('用户未登录...');
-                    return false
-                }
-                this.globalUserData = JSON.parse(localStorage.getItem('userInfo'));
-                this.GLOBAL_USER_ID = this.globalUserData.userId * 1;
-                this.GLOBAL_USER_IDENTITY = this.globalUserData.userIdentity * 1;
-                this.GLOBAL_SHOP_ID = this.globalUserData.shopId * 1;
-                this.params.userId = this.globalUserData.userId;
-                if (this.GLOBAL_USER_ID === 5261 || this.GLOBAL_USER_ID === 10947 || this.GLOBAL_USER_ID === 11579) {
-                    this.GLOBAL_USER_IDENTITY = 1;
-                }
-                console.log('已获取用户登录信息')
-            }
-        }
-    })
-        ;
-})();
+'use strict';
+
+
+var activeApp = (function () {
+    return new Vue({
+        el: '#app',
+        mixins: [swiperMixin, showMoreMixin,cmSysVitaMixins],
+        data: {
+            isMobile: window.innerWidth < 992,
+            showCouponEntry: false,
+            isActive: true,
+            isRequest: true,
+            isLoading: true,
+            showPhoneNum: false,
+            showWechat: false,
+            // showScrollTop: false,
+            activityEntryVisiable: false,
+            contactVisiable: false,
+            scrollTopSize: 0,
+            msg: 'hello world',
+            src: './img/test.jpg',
+            // 显示个数
+            countMap: {},
+            size: 10,
+            swiperList: {},
+            needReload: false,
+            floorList: [],
+            pageInfo: null,
+            params: {
+                //请求参数
+                pageId: '293',
+                userId: '',
+                source: 1
+            },
+            selectVideoTabMap: {},
+            //用户权限
+            globalUserData: '',
+            GLOBAL_USER_ID: 0,
+            GLOBAL_USER_IDENTITY: 0,//2-会员机构;3-供应商;4-普通机构
+            GLOBAL_SHOP_ID: 0,
+            gridTemplateColumns: { // 两行式模板配置
+                '2': 3,
+                '1': 5,
+                '3': 2,
+                '6': 3,
+                '9': 2,
+                '14': 6,
+                '22': 3,
+                '23': 2,
+                '24': 2,
+                '26': 3,
+                '28': 2,
+                '30': 3,
+                '32': 2
+            }
+        },
+        mounted: function mounted() {
+            this.pageLoaded();
+            // this.showCouponEntry = true 优惠券弹窗入口2
+            // 关闭视频播放
+            this.$nextTick(function(){
+                $('#video-popup .close').on('click', function(){
+                    $(this).parents('#video-popup').hide();
+                });
+            })
+        }
+        ,
+        created: function created() {
+            this.cmSysParams.pageType = 13;
+            this.initUserInfo();
+            this.getFloorData();
+        }
+        ,
+        computed: {
+            showScrollTop: function () {
+                return this.scrollTopSize > 600
+            }
+        }
+        ,
+        watch: {
+            isMobile: function isMobile() {
+                // if (this.needReload) window.location.reload()
+                this.isLoading = true;
+                window.location.reload();
+            }
+        }
+        ,
+        filters: {
+            NumFormat: function NumFormat(value) {//处理金额
+                return Number(value).toFixed(2);
+            }
+            ,
+            tabTime: function tabTime(val) {
+                // 2021-08-16 00:00:00
+                var first = val.split(' ')[0];
+                var second = first.split('-');
+                return second[1] + '-' + second[2];
+            }
+        }
+        ,
+        methods: {
+            // 偏展会模板重写
+            getGroupMenu (list, num) {
+                const newArr = (l) => list.reduce((prev, curr, index) => {
+                    const i = Math.floor(index / l)
+                    prev[i] = [...prev[i]||[], curr]
+                    return prev
+                }, [])
+                const group = {}
+                for (const key in this.gridTemplateColumns) {
+                    group[key] = () => newArr(this.gridTemplateColumns[num] * 2)
+                }
+                console.log(num)
+                return group[num]()
+            },
+            // 偏展会模板点击
+            handleClick (e) {
+                if (e.link) {
+                    window.open(e.link)
+                }
+            },
+            //促销活动类型数据处理
+            PromotionsFormat: function (promo) {
+                if (promo !== null) {
+                    if (promo.type === 1 && promo.mode === 1) {
+                        return true;
+                    } else {
+                        return false;
+                    }
+                }
+                return false;
+            }
+            ,
+            // 创建tab与轮播图的对应关系
+            makeVideoFetchMap: function makeVideoFetchMap() {
+                var videoList = [22, 23, 24, 25];
+                var videoMap = {};
+                this.floorList.forEach(function (item, index) {
+                    if (videoList.indexOf(parseInt(item.floorContent.templateType)) !== -1) {
+                        videoMap[item.floorContent.templateType + '-' + index] = 0;
+                    }
+                });
+                this.selectVideoTabMap = videoMap;
+            }
+            ,
+
+            // tab点击事件
+            handleTabClick: function handleTabClick(type, index, val) {
+                var that = this;
+                var swiperId = 'swiper-template-' + index + '-' + type + '-' + val;
+                this.selectVideoTabMap[type + '-' + index] = val;
+                if (this.swiperList[swiperId]) this.swiperList[swiperId].destroy();
+                setTimeout(function () {
+                    that.swiperList[swiperId] = utils.createSwiperId(swiperId, swiperConfig);
+                    utils.responsive('.aspect', 'scalc');
+                    console.log('轮播图切换');
+                });
+            }
+            ,
+
+            // 当前选中的轮播图
+            currentVideoSwiper: function currentVideoSwiper(type, index) {
+                return this.selectVideoTabMap[type + '-' + index];
+            }
+            ,
+            getFloorImageListType: function getFloorImageListType(index) {
+                return index === 0 ? 'floorImageList' : 'floorImageList' + (index + 1);
+            }
+            ,
+
+            // 获取楼层信息
+            getFloorData: function getFloorData() {
+                var that = this;
+                var paramsArr = window.location.pathname.split(".")[0].split("-");
+                var pageId = paramsArr.length >= 1 ? paramsArr[1] : '';
+                this.params.pageId = pageId;
+                ProductApi.getActivityData(that.params, function (res) {
+                    if (res.code === 0) {
+                        that.floorList = res.data.floorList;
+                        that.pageInfo = res.data.page;
+                        that.cmSysParams.pageLabel = that.pageInfo.contentLabel;
+                        that.isRequest = false;
+                        that.makeVideoFetchMap();
+                        that.activityEntryVisiable = that.initActivityEntry(res.data.page.redPacketBeginTime, res.data.page.redPacketEndTime);
+                        that.contactVisiable = res.data.page.infoBarStatus === 1;
+                    }
+                })
+            }
+            ,
+            // 初始化红包入口状态
+            initActivityEntry: function initActivityEntry(begin, end) {
+                const nowTime = new Date().getTime();
+                const beginTime = new Date(begin.replace(/-/g, '/')).getTime();
+                const endTime = new Date(end.replace(/-/g, '/')).getTime();
+                return nowTime >= beginTime && nowTime <= endTime
+            }
+            ,
+            fetchTemplate: function fetchTemplate(list, type) {
+                return list.indexOf(parseInt(type)) !== -1;
+            }
+            ,
+
+            // 获取直播状态
+            makeVideoStatus: function makeVideoStatus(floorData, index) {
+                var displayDate = new Date(floorData.floorContent['displayDate' + index].replace(/-/g, '/')).getTime();
+                var nowDate = new Date().getTime();
+                // 一天的时间戳
+                var oneDay = 60 * 60 * 24 * 1000;
+                // 直播开始时间:displayDate
+                // 直播结束时间:displayDate + oneDay
+                if (nowDate < displayDate) {
+                    return 0; // 未开始
+                }
+                if (nowDate >= displayDate && nowDate <= displayDate + oneDay) {
+                    return 1; // 已开始
+                }
+                if (nowDate - oneDay > displayDate) {
+                    return 2; // 已结束
+                }
+            }
+            ,
+
+            // 使用产品楼层的布局
+            getProductScalcMap: function getProductScalcMap(templateId) {
+                var current = this.isMobile ? 'mobile' : 'pc';
+                var scalcLayout = layoutMapping.productScalcMap['template-' + templateId];
+                return {
+                    scalc: scalcLayout[current].scalc,
+                    col: scalcLayout[current].col
+                };
+            }
+            ,
+            // 使用文章楼层的布局
+            getArticleScalcMap: function getArticleScalcMap(templateId) {
+                var current = this.isMobile ? 'mobile' : 'pc';
+                var scalcLayout = layoutMapping.articleScalcMap['template-' + templateId];
+                return {
+                    scalc: scalcLayout[current],
+                    swiper: scalcLayout['swiper']
+                };
+            }
+            ,
+            // 使用图片楼层的布局
+            getImageScalcMap: function getImageScalcMap(templateId) {
+                var current = this.isMobile ? 'mobile' : 'pc';
+                var scalcLayout = layoutMapping.imageScalcMap['template-' + templateId];
+                return {
+                    scalc: scalcLayout[current],
+                    swiper: scalcLayout['swiper']
+                };
+            }
+            ,
+            // 使用直播楼层的布局
+            getVideoScalcMap: function getVideoScalcMap(templateId) {
+                var current = this.isMobile ? 'mobile' : 'pc';
+                var scalcLayout = layoutMapping.videoScalcMap['template-' + templateId];
+                return {
+                    scalc: scalcLayout[current],
+                    swiper: scalcLayout['swiper']
+                };
+            }
+            ,
+            // 播放视频
+            onPlayVideo(link){
+                $('#video-popup video').attr('src', link);
+                $('#video-popup').show();
+            },
+            // 处理link
+            reallink: function reallink(link) {
+                if(!link) return 'javascript:void(0)';
+                return link;
+            }
+            ,
+            handleToggleActive: function handleToggleActive(flag) {
+                console.log(flag);
+                this.isActive = flag;
+            }
+            ,
+            // 页面挂载完毕
+            pageLoaded: function pageLoaded() {
+                // 轮播图配置
+                var options = {
+                    el: '.swiper-container',
+                    split: '-',
+                    config: swiperConfig,
+                    protertyFix: 'swiper-template-'
+                };
+                var resizeTimer = null;
+                // 延迟处理
+                var that = this;
+                var timer = setInterval(function () {
+                    if (!that.isRequest) {
+                        that.swiperList = utils.createSwiper(options);
+                        // console.log(that.swiperList);
+                        console.log('轮播图创建完毕...');
+                        that.initCountMap(countMapping);
+                        // console.log(that.countMap);
+                        console.log('商品列表处理完毕...');
+                        utils.responsive('.aspect', 'scalc');
+                        that.isLoading = false;
+                        clearInterval(timer);
+                        that.$nextTick(()=>{
+                            $('img[data-original]').lazyload();
+                        });
+                        console.log('页面图片初始化完成...');
+                    }
+                }, 500);
+                // 监听window窗口大小
+                window.addEventListener('resize', function () {
+                    clearTimeout(resizeTimer);
+                    resizeTimer = setTimeout(function () {
+                        utils.responsive('.aspect', 'scalc');
+                        console.log('图片大小已刷新...');
+                    }, 200);
+                    activeApp.$set(activeApp.$data, 'isMobile', window.innerWidth < 560);
+                });
+                window.addEventListener('scroll', function (event) {
+                    that.scrollTopSize = $('body').scrollTop();
+                });
+                console.log('窗口resize事件注册完毕...');
+            }
+            ,
+            // 优惠券入口
+            handleToggleCoupon: function handleToggleCoupon(flag){
+                // this.showCouponEntry = flag;
+                this.isActive = false;
+            },
+            //    初始化用户信息
+            initUserInfo: function initUserInfo() {
+                var userInfo = localStorage.getItem('userInfo');
+                if (!userInfo) {
+                    console.log('用户未登录...');
+                    return false
+                }
+                this.globalUserData = JSON.parse(localStorage.getItem('userInfo'));
+                this.GLOBAL_USER_ID = this.globalUserData.userId * 1;
+                this.GLOBAL_USER_IDENTITY = this.globalUserData.userIdentity * 1;
+                this.GLOBAL_SHOP_ID = this.globalUserData.shopId * 1;
+                this.params.userId = this.globalUserData.userId;
+                if (this.GLOBAL_USER_ID === 5261 || this.GLOBAL_USER_ID === 10947 || this.GLOBAL_USER_ID === 11579) {
+                    this.GLOBAL_USER_IDENTITY = 1;
+                }
+                console.log('已获取用户登录信息')
+            }
+        }
+    })
+        ;
+})();

+ 124 - 124
src/main/resources/static/js/activity/beautyTopic/utils.js

@@ -1,124 +1,124 @@
-'use strict';
-
-var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
-    return typeof obj;
-} : function (obj) {
-    return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj;
-};
-
-var _typeof = typeof Symbol === 'function' && _typeof2(Symbol.iterator) === 'symbol' ? function (obj) {
-    return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);
-} : function (obj) {
-    return obj && typeof Symbol === 'function' && obj.constructor === Symbol ? 'symbol' : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);
-};
-
-// 工具库
-var utils = function () {
-    /**
-     * 固定宽高比
-     * @param {String} bind 绑定元素
-     * @param {String} attr 定义从元素的那个data-attr字段中获取长宽比,其值为一个数值,number 或者 float,默认为 1
-     */
-    function responsive(bind, attr) {
-        try {
-            var list = document.querySelectorAll(bind);
-            list.forEach(function (item) {
-                var scalc = parseFloat(item.getAttribute('data-' + attr)) || 1;
-                item.style.height = item.offsetWidth * scalc + 'px';
-            });
-        } catch (error) {
-            throw new Error(error);
-        }
-    }
-
-    /**
-     * 批量创建轮播图
-     * @param {Object} [options={}] 配置对象
-     * el: 轮播图最外层容器的class, 默认为 .swiper-container
-     * split: 轮播图id的拼接方式,默认为 - ,为了获取轮播图唯一id值,如swiper-template-1, 解析后的id就为1
-     * config:轮播图的相关配置,由键值对构成,例如:{'swiper-template-1':{ swiper相关配置,详见swiper官网 }}
-     * protertyFix:将和attr中的值一起构成config中的key 默认值为swiper-template-
-     * attr: 将和protertyFix的值一起构成config中的key 默认值为floor-type
-     * @return {Object} 所有轮播图的实例,{key:swiper,...},key的值为swiper最外层容器的id
-     */
-    function createSwiper() {
-        var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
-
-        // 默认配置
-        var o = {
-            el: 'swiper-container',
-            split: '-',
-            config: {},
-            protertyFix: 'swiper-template-',
-            attr: 'swiper-type'
-        };
-        if (options) {
-            Object.assign(o, options);
-        }
-        // 保存轮播图实例对象
-        var swipers = {};
-        var list = document.querySelectorAll(o.el);
-        list.forEach(function (item) {
-            var id = item.getAttribute('data-' + o.attr);
-            if (!item.id || !id) return;
-            // 模板id
-            // var id = item.id.split(options.split)[2]
-            swipers[item.id] = new Swiper('#' + item.id, o.config[o.protertyFix + id]);
-        });
-        return swipers;
-    }
-
-    // 创建轮播图
-    function createSwiperId(el, options) {
-        var list = document.querySelector('#' + el);
-        var swiperType = list.getAttribute('data-swiper-type');
-        return new Swiper('#' + el, options['swiper-template-' + swiperType]);
-    }
-
-    // 判断arr是否为一个数组,返回一个bool值
-    function isArray(arr) {
-        return Object.prototype.toString.call(arr) === '[object Array]';
-    }
-
-    // 深度克隆
-    function deepClone(obj) {
-        if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object' && typeof obj !== 'function') {
-            return obj; //原始类型直接返回
-        }
-        var o = isArray(obj) ? [] : {};
-        for (var i in obj) {
-            if (obj.hasOwnProperty(i)) {
-                o[i] = _typeof(obj[i]) === 'object' ? deepClone(obj[i]) : obj[i];
-            }
-        }
-        return o;
-    }
-
-    //从cokie中获取用户信息
-    function getBaseCookie(cname) {
-        if (document.cookie) {
-            var name = cname + "=";
-            var ca = document.cookie.split(';');
-            for (var i = 0; i < ca.length; i++) {
-                var c = ca[i].trim();
-                if (c && c.indexOf(name) === 0) {
-                    return c.substring(name.length, c.length);
-                }
-            }
-        }
-        return "";
-    }
-
-
-    return {
-        responsive: responsive,
-        createSwiper: createSwiper,
-        deepClone: deepClone,
-        createSwiperId: createSwiperId,
-        getBaseCookie: getBaseCookie
-    };
-}();
-
-
-
-
+'use strict';
+
+var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
+    return typeof obj;
+} : function (obj) {
+    return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj;
+};
+
+var _typeof = typeof Symbol === 'function' && _typeof2(Symbol.iterator) === 'symbol' ? function (obj) {
+    return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);
+} : function (obj) {
+    return obj && typeof Symbol === 'function' && obj.constructor === Symbol ? 'symbol' : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj);
+};
+
+// 工具库
+var utils = function () {
+    /**
+     * 固定宽高比
+     * @param {String} bind 绑定元素
+     * @param {String} attr 定义从元素的那个data-attr字段中获取长宽比,其值为一个数值,number 或者 float,默认为 1
+     */
+    function responsive(bind, attr) {
+        try {
+            var list = document.querySelectorAll(bind);
+            list.forEach(function (item) {
+                var scalc = parseFloat(item.getAttribute('data-' + attr)) || 1;
+                item.style.height = item.offsetWidth * scalc + 'px';
+            });
+        } catch (error) {
+            throw new Error(error);
+        }
+    }
+
+    /**
+     * 批量创建轮播图
+     * @param {Object} [options={}] 配置对象
+     * el: 轮播图最外层容器的class, 默认为 .swiper-container
+     * split: 轮播图id的拼接方式,默认为 - ,为了获取轮播图唯一id值,如swiper-template-1, 解析后的id就为1
+     * config:轮播图的相关配置,由键值对构成,例如:{'swiper-template-1':{ swiper相关配置,详见swiper官网 }}
+     * protertyFix:将和attr中的值一起构成config中的key 默认值为swiper-template-
+     * attr: 将和protertyFix的值一起构成config中的key 默认值为floor-type
+     * @return {Object} 所有轮播图的实例,{key:swiper,...},key的值为swiper最外层容器的id
+     */
+    function createSwiper() {
+        var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
+
+        // 默认配置
+        var o = {
+            el: 'swiper-container',
+            split: '-',
+            config: {},
+            protertyFix: 'swiper-template-',
+            attr: 'swiper-type'
+        };
+        if (options) {
+            Object.assign(o, options);
+        }
+        // 保存轮播图实例对象
+        var swipers = {};
+        var list = document.querySelectorAll(o.el);
+        list.forEach(function (item) {
+            var id = item.getAttribute('data-' + o.attr);
+            if (!item.id || !id) return;
+            // 模板id
+            // var id = item.id.split(options.split)[2]
+            swipers[item.id] = new Swiper('#' + item.id, o.config[o.protertyFix + id]);
+        });
+        return swipers;
+    }
+
+    // 创建轮播图
+    function createSwiperId(el, options) {
+        var list = document.querySelector('#' + el);
+        var swiperType = list.getAttribute('data-swiper-type');
+        return new Swiper('#' + el, options['swiper-template-' + swiperType]);
+    }
+
+    // 判断arr是否为一个数组,返回一个bool值
+    function isArray(arr) {
+        return Object.prototype.toString.call(arr) === '[object Array]';
+    }
+
+    // 深度克隆
+    function deepClone(obj) {
+        if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object' && typeof obj !== 'function') {
+            return obj; //原始类型直接返回
+        }
+        var o = isArray(obj) ? [] : {};
+        for (var i in obj) {
+            if (obj.hasOwnProperty(i)) {
+                o[i] = _typeof(obj[i]) === 'object' ? deepClone(obj[i]) : obj[i];
+            }
+        }
+        return o;
+    }
+
+    //从cokie中获取用户信息
+    function getBaseCookie(cname) {
+        if (document.cookie) {
+            var name = cname + "=";
+            var ca = document.cookie.split(';');
+            for (var i = 0; i < ca.length; i++) {
+                var c = ca[i].trim();
+                if (c && c.indexOf(name) === 0) {
+                    return c.substring(name.length, c.length);
+                }
+            }
+        }
+        return "";
+    }
+
+
+    return {
+        responsive: responsive,
+        createSwiper: createSwiper,
+        deepClone: deepClone,
+        createSwiperId: createSwiperId,
+        getBaseCookie: getBaseCookie
+    };
+}();
+
+
+
+

+ 12 - 0
src/main/resources/static/js/article/common.js

@@ -10,6 +10,18 @@ const handleFileUrl = (id) => {
     //     window.open(fileUrl, '_blank')
     // }
 }
+// 轮播点击量统计
+const handleSwiperHits = ($event) => {
+    ProductApi.userSwiperHits({ id: $event.id, type: 2 }, (res) => {
+        console.log(res)
+    })
+}
+// 广告点击量统计
+const handleAdvHits = ($event) => {
+    $.get("/article/ad/click", { id: $event.id }, function (res) {
+        console.log(res);
+    });
+}
 const articleSide = new Vue({
     el: '#articleSide',
     data: {

+ 11 - 0
src/main/resources/static/js/common/serviceapi/product.service.js

@@ -502,4 +502,15 @@ var ProductApi = {
                     callback(res);
                 });
         },
+        // 轮播点击量
+        userSwiperHits: function (params, callback) {
+            Http.AjaxService({
+                url: '/commodity/statistics/addPv',
+                type:'get',
+                data:params,
+                json:false,
+            }).then(function (res) {
+                callback(res);
+            });
+        }
 };

+ 1002 - 993
src/main/resources/static/js/common/serviceapi/supplier.service.js

@@ -1,993 +1,1002 @@
-/* HTTP API 供应商业务模块
- * Copyright 2020, CAIMEI365
- * Date   2020/06/16
- * auther ZHJY
- */
-var SupplierApi = {
-        ShopBaikeRecommendTypeChange: function(params, callback){ // 百科商品/相关推荐 保存
-            Http.AjaxService({
-                url:'/user/shop/baike/recommend/type/save',
-                type:'post',
-                data:params,
-                json:false,
-            })
-                .then(function(res){
-                    callback(res);
-                });
-        },
-
-        ShopBaikeRecommendSort: function(params, callback){ // 百科商品/相关推荐 保存
-            Http.AjaxService({
-                url:'/user/shop/baike/recommend/sort/save',
-                type:'post',
-                data:params,
-                json:false,
-            })
-                .then(function(res){
-                    callback(res);
-                });
-        },
-
-        ShopBaikeRecommendRemove: function(params, callback){ // 百科商品/相关推荐 保存
-            Http.AjaxService({
-                url:'/user/shop/baike/recommend/delete',
-                type:'post',
-                data:params,
-                json:false,
-            })
-                .then(function(res){
-                    callback(res);
-                });
-        },
-
-        ShopBaikeRecommendAdd: function(params, callback){ // 百科商品/相关推荐 保存
-            Http.AjaxService({
-                url:'/user/shop/baike/recommend/add',
-                type:'post',
-                data:params,
-                json:false,
-            })
-                .then(function(res){
-                    callback(res);
-                });
-        },
-
-        ShopBaikeRecommendAddList: function(params, callback){ // 百科商品/相关推荐选择列表
-            Http.AjaxService({
-                url:'/user/shop/baike/recommend/add/list',
-                type:'get',
-                data:params,
-                json:false,
-            })
-                .then(function(res){
-                    callback(res);
-                });
-        },
-
-        ShopBaikeRecommendForm: function(params, callback){ // 百科商品/相关推荐回显
-            Http.AjaxService({
-                url:'/user/shop/baike/recommend/form',
-                type:'get',
-                data:params,
-                json:false,
-            })
-                .then(function(res){
-                    callback(res);
-                });
-        },
-
-        ShopBaikeProductDelete: function(params, callback){ // 百科商品/仪器 删除
-            Http.AjaxService({
-                url:'/user/shop/baike/product/delete',
-                type:'post',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-
-
-        ShopBaikeProductTypeList: function(params, callback){ // 百科商品/仪器分类列表
-            Http.AjaxService({
-                url:'/user/shop/baike/product/type/list',
-                type:'get',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-
-        ShopBaikeProductStatusUpdate: function(params, callback){ // 供应商百科商品/仪器状态更新
-            Http.AjaxService({
-                url:'/user/shop/baike/product/status/update',
-                type:'post',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-
-        ShopBaikeProductWordsValidate: function (params, callback) { // 供应商百科商品/仪器信息敏感词校验
-            Http.AjaxService({
-                url: '/user/shop/sensitive/words',
-                type: 'get',
-                data: params,
-                json: false,
-            })
-            .then(function (res) {
-                callback(res);
-            });
-        },
-
-        ShopBaikeProductSave: function(params, callback){ // 供应商百科商品/仪器信息保存
-            Http.AjaxService({
-                url:'/user/shop/baike/product/save',
-                type:'post',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-
-        GetShopBaikeProductList: function(params, callback){ // 供应商百科商品/仪器列表
-            Http.AjaxService({
-                url:'/user/shop/baike/product/list',
-                type:'get',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-
-        GetShopBaikeProductForm: function(params, callback){ // 供应商百科商品表单数据(回显数据)
-            Http.AjaxService({
-                url:'/user/shop/baike/product/form',
-                type:'get',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-
-        UploadFile: function(params, callback){ // 供应商文章上传图片
-            Http.AjaxService({
-                url:'/tools/image/upload/ckeditor',
-                type:'post',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        GetArticleList: function(params, callback){ //供应商文章列表
-            Http.AjaxService({
-                url:'/user/shop/article/list',
-                type:'get',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        GetArticleForm: function(params, callback){ //供应商文章信息回显
-            Http.AjaxService({
-                url:'/user/shop/article/form',
-                type:'get',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        ArticleSubmitSave: function(params, callback){ //供应商文章保存
-            Http.AjaxService({
-                url:'/user/shop/article/save',
-                type:'post',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        ArticleStatusChange: function(params, callback){ //供应商文章状态修改
-            Http.AjaxService({
-                url:'/user/shop/article/status/update',
-                type:'post',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        ArticleRemove: function(params, callback){ //供应商文章状态修改
-            Http.AjaxService({
-                url:'/user/shop/article/delete',
-                type:'post',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        ArticleCategory: function(params, callback){
-            Http.AjaxService({
-                url:'/user/shop/article/type/list',
-                type:'get',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        GetSearchShopList:function (params, callback) {//搜索供应商列表查询
-            Http.AjaxService({
-                url:'/commodity/search/query/shop',
-                type:'get',
-                data:params,
-                json:true,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        ShipmentsInfo: function (params, callback) {//发货商品初始化
-            Http.AjaxService({
-                url:'/order/shop/ship/info',
-                type:'GET',
-                data:params,
-                json:true,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        shopOrderList: function (params, callback) {//供应商订单列表
-            Http.AjaxService({
-                url:'/order/shop/list',
-                type:'GET',
-                data:params,
-                json:true,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        uploadimg: function (params, callback) {//供应商添加物流上传图片
-            Http.uploadImage({
-                url:'/tools/image/upload/multi',
-                data:params},callback)
-        },
-        GetMyProductList: function (params, callback) {//供应商商品列表
-            Http.AjaxService({
-                url:'/commodity/shop/product/list',
-                type:'GET',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        SwitchFeatured: function (params, callback) {//供应商商品增加删除 主推商品标志
-            Http.AjaxService({
-                url:'/commodity/shop/featured/switch',
-                type:'POST',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        SupplierSoldOut: function (params, callback) {//供应商商品下架(批量下架,单个商品下架)
-            Http.AjaxService({
-                url:'/commodity/shop/product/offline',
-                type:'POST',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        brandList: function (params, callback) {//品牌管理列表
-            Http.AjaxService({
-                url:'/commodity/shop/brand/list',
-                type:'GET',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        addLogistics: function (params, callback) {//发货/添加物流页 确定提交订单列表
-            Http.AjaxService({
-                url:'/order/shop/ship/delivery',
-                type:'post',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        shipmentsRecord: function (params, callback) {//发货/添加物流页 确定提交订单列表
-            Http.AjaxService({
-                url:'/order/shop/ship/delivery/record',
-                type:'GET',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        GetBrandAssociation: function (params, callback) {//发布商品品牌联想
-            Http.AjaxService({
-                url:'/commodity/shop/brand/select',
-                type:'GET',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        logisticsInfo: function (params, callback) {//记录的查看物流
-            Http.AjaxService({
-                url:'/order/shop/ship/logistics/info',
-                type:'GET',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        AddSupplierBrand: function (params, callback) {//发布商品提交新品牌
-            Http.AjaxService({
-                url:'/commodity/shop/brand/add',
-                type:'post',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        CheckSupplierBrandDetection: function (params, callback) {//发布商品检查是否品牌
-            Http.AjaxService({
-                url:'/commodity/shop/brand/check',
-                type:'get',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        AddSupplierReleaseProduct: function (params, callback) {//提交发布商品
-            Http.AjaxService({
-                url:'/commodity/shop/product/release',
-                type:'post',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        UpdateSearchManageProduct: function (params, callback) {//编辑商品更新搜索索引
-            Http.AjaxService({
-                url:'/commodity/search/index/update/product',
-                type:'post',
-                data:params,
-                json:false,
-                isHost:true
-            })
-                .then(function(res){
-                    callback(res);
-                });
-        },
-        UpdateDelProductSku: function (params, callback) {//编辑商品更新搜索索引
-            Http.AjaxService({
-                url:'/commodity/del/sku',
-                type:'get',
-                data:params,
-                json:false,
-                isHost:true
-            })
-                .then(function(res){
-                    callback(res);
-                });
-        },
-        SupplierViewShop: function (params, callback) {//查看店铺
-            Http.AjaxService({
-                url:'/supplier/viewShop',
-                type:'get',
-                data:params,
-                json:false
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        SupplierViewShopProduct: function (params, callback) {//查看店铺供应商产品
-            Http.AjaxService({
-                url:'/supplier/product',
-                type:'get',
-                data:params,
-                json:false
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        SupplierViewShopInfo: function (params, callback) {//获取登录供应商信息
-            Http.AjaxService({
-                url:'/user/shop/info',
-                type:'get',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        EditReleaseProductInfo: function (params, callback) {//编辑我的商品回显数据
-            Http.AjaxService({
-                url:'/commodity/shop/product/form',
-                type:'get',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        GetSupplierLogisticsRecord: function (params, callback) {//发货-添加商品资质初始化查询商品
-            Http.AjaxService({
-                url:'/order/shop/ship/logistics/record',
-                type:'get',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        GetSupplierQualificationData: function (params, callback) {//发货-商品资质回显
-            Http.AjaxService({
-                url:'/order/shop/qualification/list',
-                type:'get',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        GetSupplierQualificationUpdata: function (params, callback) {//发货-保存商品资质
-            Http.AjaxService({
-                url:'/order/shop/qualification/save',
-                type:'post',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        shopInfo: function (params, callback) {//资料信息 回显数据
-            Http.AjaxService({
-                url:'/user/shop/info',
-                type:'GET',
-                data:params,
-                json:false ,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        kdList: function ( callback) {//快递公司
-            Http.AjaxService({
-                url:'/order/shop/ship/company',
-                type:'GET',
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        addLogisticsInfo: function (params, callback) {//追加物流
-            Http.AjaxService({
-                url:'/order/shop/ship/logistics/add',
-                type:'post',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        cancelShipment: function (params, callback) {//查看物流/撤销发货
-            Http.AjaxService({
-                url:'/order/shop/ship/delivery/cancel',
-                type:'post',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        shopOrderDetails: function (params, callback) {//我的订单/查看详情
-            Http.AjaxService({
-                url:'/order/shop/detail',
-                type:'GET',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-         modifiedData: function (params, callback) {//资料信息提交
-            Http.AjaxService({
-                url:'/user/shop/info/update',
-                type:'post',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        homePageData: function (params, callback) {//供应商 首页个人中心
-            Http.AjaxService({
-                url:'/user/shop/personal/data',
-                type:'get',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-         uploadAvatar: function (params, callback) {//供应商 首页上传头像成功后调用
-            Http.AjaxService({
-                url:'/user/center/avatar/save',
-                type:'post',
-                data:params,
-                json:false
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        dressUpList : function(params,callback) {//装扮主页列表
-            Http.AjaxService({
-                url:'/user/shop/home/images',
-                type:'get',
-                data:params,
-                json:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-         ShopBanner : function(params,callback) {//装扮主页修改与添加
-            Http.AjaxService({
-                url:'/user/shop/home/images/update',
-                type:'POST',
-                data:params,
-                json:false
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        deleteShopBanner : function(params,callback) {//装扮主页删除广告 Integer shopBannerId
-            Http.AjaxService({
-                url:'/user/shop/home/images/delete',
-                type:'POST',
-                data:params,
-                json:false
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        settlementList : function(params,callback) {//结算管理列表
-            Http.AjaxService({
-                url:'/order/shop/settlement/list',
-                type:'get',
-                data:params,
-                json:true,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-         GetMymessageList : function(params,callback) {//个人中心消息列表
-            Http.AjaxService({
-                url:'/user/center/messages',
-                type:'get',
-                data:params,
-                json:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        salesList : function(params,callback) {//售货清单
-            Http.AjaxService({
-                url:'/order/shop/sales/list',
-                type:'get',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        GetShopProductMain : function(params,callback) {//售货清单
-            Http.AjaxService({
-                url:'/commodity/shop/product/main',
-                type:'get',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        GetSearchQueryProductSupplier : function(params,callback) {//售货清单
-            Http.AjaxService({
-                url:'/commodity/search/query/product/shop',
-                type:'get',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        getAuthShopMessageCount: function (params, callback) {//供应商消息通知中心未读消息数量
-            Http.AjaxService({
-                url: '/user/login/auth/shopMessageCount',
-                type:'get',
-                data:params,
-                json:false,
-                isHost:true
-            }).then(function (res) {
-                callback(res);
-            });
-        },
-        getAuthShopMessageList: function (params, callback) {//供应商消息通知列表
-            Http.AjaxService({
-                url: '/user/login/auth/shopMessageList',
-                type:'get',
-                data:params,
-                json:false,
-                isHost:true
-            }).then(function (res) {
-                callback(res);
-            });
-        },
-        authDeleteMessage: function (params, callback) {//删除通知消息
-            Http.AjaxService({
-                url: '/user/login/auth/deleteMessage',
-                type:'post',
-                data:params,
-                json:false,
-                isHost:true
-            }).then(function (res) {
-                callback(res);
-            });
-        },
-        authUpdateRead: function (params, callback) {//标记通知消息
-            Http.AjaxService({
-                url: '/user/login/auth/updateRead',
-                type:'post',
-                data:params,
-                json:false,
-                isHost:true
-            }).then(function (res) {
-                callback(res);
-            });
-        },
-        // 供应商落地页
-        supplierLoading: function (params, callback) {//标记通知消息
-            Http.AjaxService({
-                url: '/user/landing/info',
-                type:'get',
-                data:params,
-                json:false,
-            }).then(function (res) {
-                callback(res);
-            });
-        },
-        // 供应商表单提交
-        supplierSearchUpdate: function (params, callback) {//标记通知消息
-            Http.AjaxService({
-                url: '/user/landing/cmQuestionnaire/save',
-                type:'post',
-                data:params,
-                json:false,
-            }).then(function (res) {
-                callback(res);
-            });
-        },
-        /**
-         * @订单保存支付凭证
-         * @param:ID 用户ID(必填)
-         * @param:shopOrderId 子订单ID
-         * @param:remarks 上传凭证备注
-         * @param:voucherImgs 凭证图片
-         */
-        orderInsertVoucher: function (params, callback) {
-            Http.AjaxService({
-                url:'/order/club/insertVoucher',
-                type:'POST',
-                data:params,
-                json:false,
-            })
-                .then(function(res){
-                    callback(res);
-                });
-        },
-        /**
-         * @订单备注详情
-         * @param:shopOrderId 子订单ID
-         */
-        remarksView: function (params, callback) {
-            Http.AjaxService({
-                url:'/order/shop/remarksView',
-                type:'GET',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        /**
-         * @添加订单备注的
-         * @param:images 图片
-         * @param:remarks 备注文字
-         * @param:ossFiles 文件列表
-         * @param:shopOrderId 子订单ID
-         */
-        addRemark : function (params, callback) {
-            Http.AjaxService({
-                url:'/order/shop/add/remark',
-                type:'post',
-                data:params,
-                json:true,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        /**
-         * @下载备注文件
-         * @param:fileId 文件ID
-         */
-        downloadRemark : function (params, callback) {
-            Http.AjaxService({
-                url:'/order/shop/download/remark',
-                type:'GET',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        /**
-         * @供应商退款
-         * @param:shopOrderId 文件ID
-         */
-        returnShopOrder : function (params, callback) {
-            Http.AjaxService({
-                url:'/order/refund/shopOrder',
-                type:'GET',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        /**
-         * @供应商确认收款
-         * @param:shopOrderId 文件ID
-         */
-        checkeReceipt : function (params, callback) {
-            Http.AjaxService({
-                url:'/order/shop/check/receipt',
-                type:'GET',
-                data:params,
-                json:false,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        /**
-         * @供应商修改订单
-         * @param:orderProducts 商品列表
-         */
-        orderUpdate : function (params, callback) {
-            Http.AjaxService({
-                url:'/order/submit/update',
-                type:'POST',
-                data:params,
-                json:true,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        /**
-         * @供应商运费模板列表
-         * @param:shopId 供应商Id
-         * @param:pageNum 页码
-         * @param:pageSize 条数
-         */
-        getFreightTemp : function (params, callback) {
-            Http.AjaxService({
-                url:'/commodity/shop/product/getFreightTemplate',
-                type:'GET',
-                data:params,
-                json:true,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        /**
-         * @删除运费模板
-         * @param:id  运费模板Id
-         */
-        delFreight : function (params, callback) {
-            Http.AjaxService({
-                url:'/commodity/shop/product/delFreight',
-                type:'GET',
-                data:params,
-                json:true,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        /**
-         * @运费模板详情
-         * @param:id  运费模板Id
-         */
-        freightTemplateDetail : function (params, callback) {
-            Http.AjaxService({
-                url:'/commodity/shop/product/templateDetail',
-                type:'GET',
-                data:params,
-                json:true,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        /**
-         * @发布商品获取所有运费模板
-         * @param:shopId  运费模板Id
-         */
-        getFreightAll : function (params, callback) {
-            Http.AjaxService({
-                url:'/commodity/shop/product/getFreight',
-                type:'GET',
-                data:params,
-                json:true,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        /**
-         * @复制运费模板
-         * @param:id  运费模板Id
-         */
-        getFreightTemplateById : function (params, callback) {
-            Http.AjaxService({
-                url:'/commodity/shop/product/getFreightTemplateById',
-                type:'GET',
-                data:params,
-                json:true,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        /**
-         * @供应商运费模板(获取地区)
-         * @param:freightId 运费模板Id
-         * @param:ruleId 运费规则Id
-         */
-        getFreightArea : function (params, callback) {
-            Http.AjaxService({
-                url:'/commodity/shop/getArea',
-                type:'GET',
-                data:params,
-                json:true,
-            })
-            .then(function(res){
-                callback(res);
-            });
-        },
-        /**
-         * @保存运费模板
-         */
-        saveFreightTemplate : function (params, callback) {
-            Http.AjaxService({
-                url:'/commodity/shop/product/saveFreightTemplate',
-                type:'post',
-                data:params,
-                json:false,
-                isHost:true
-            })
-            .then(function(res){
-                callback(res);
-            });
-        }
-
-
-};
+/* HTTP API 供应商业务模块
+ * Copyright 2020, CAIMEI365
+ * Date   2020/06/16
+ * auther ZHJY
+ */
+var SupplierApi = {
+        ShopBaikeRecommendTypeChange: function(params, callback){ // 百科商品/相关推荐 保存
+            Http.AjaxService({
+                url:'/user/shop/baike/recommend/type/save',
+                type:'post',
+                data:params,
+                json:false,
+            })
+                .then(function(res){
+                    callback(res);
+                });
+        },
+
+        ShopBaikeRecommendSort: function(params, callback){ // 百科商品/相关推荐 保存
+            Http.AjaxService({
+                url:'/user/shop/baike/recommend/sort/save',
+                type:'post',
+                data:params,
+                json:false,
+            })
+                .then(function(res){
+                    callback(res);
+                });
+        },
+
+        ShopBaikeRecommendRemove: function(params, callback){ // 百科商品/相关推荐 保存
+            Http.AjaxService({
+                url:'/user/shop/baike/recommend/delete',
+                type:'post',
+                data:params,
+                json:false,
+            })
+                .then(function(res){
+                    callback(res);
+                });
+        },
+
+        ShopBaikeRecommendAdd: function(params, callback){ // 百科商品/相关推荐 保存
+            Http.AjaxService({
+                url:'/user/shop/baike/recommend/add',
+                type:'post',
+                data:params,
+                json:false,
+            })
+                .then(function(res){
+                    callback(res);
+                });
+        },
+
+        ShopBaikeRecommendAddList: function(params, callback){ // 百科商品/相关推荐选择列表
+            Http.AjaxService({
+                url:'/user/shop/baike/recommend/add/list',
+                type:'get',
+                data:params,
+                json:false,
+            })
+                .then(function(res){
+                    callback(res);
+                });
+        },
+
+        ShopBaikeRecommendForm: function(params, callback){ // 百科商品/相关推荐回显
+            Http.AjaxService({
+                url:'/user/shop/baike/recommend/form',
+                type:'get',
+                data:params,
+                json:false,
+            })
+                .then(function(res){
+                    callback(res);
+                });
+        },
+
+        ShopBaikeProductDelete: function(params, callback){ // 百科商品/仪器 删除
+            Http.AjaxService({
+                url:'/user/shop/baike/product/delete',
+                type:'post',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+
+
+        ShopBaikeProductTypeList: function(params, callback){ // 百科商品/仪器分类列表
+            Http.AjaxService({
+                url:'/user/shop/baike/product/type/list',
+                type:'get',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+
+        ShopBaikeProductStatusUpdate: function(params, callback){ // 供应商百科商品/仪器状态更新
+            Http.AjaxService({
+                url:'/user/shop/baike/product/status/update',
+                type:'post',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+
+        ShopBaikeProductWordsValidate: function (params, callback) { // 供应商百科商品/仪器信息敏感词校验
+            Http.AjaxService({
+                url: '/user/shop/sensitive/words',
+                type: 'get',
+                data: params,
+                json: false,
+            })
+            .then(function (res) {
+                callback(res);
+            });
+        },
+
+        ShopBaikeProductSave: function(params, callback){ // 供应商百科商品/仪器信息保存
+            Http.AjaxService({
+                url:'/user/shop/baike/product/save',
+                type:'post',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+
+        GetShopBaikeProductList: function(params, callback){ // 供应商百科商品/仪器列表
+            Http.AjaxService({
+                url:'/user/shop/baike/product/list',
+                type:'get',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+
+        GetShopBaikeProductForm: function(params, callback){ // 供应商百科商品表单数据(回显数据)
+            Http.AjaxService({
+                url:'/user/shop/baike/product/form',
+                type:'get',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+
+        UploadFile: function(params, callback){ // 供应商文章上传图片
+            Http.AjaxService({
+                url:'/tools/image/upload/ckeditor',
+                type:'post',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        GetArticleList: function(params, callback){ //供应商文章列表
+            Http.AjaxService({
+                url:'/user/shop/article/list',
+                type:'get',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        GetArticleForm: function(params, callback){ //供应商文章信息回显
+            Http.AjaxService({
+                url:'/user/shop/article/form',
+                type:'get',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        ArticleSubmitSave: function(params, callback){ //供应商文章保存
+            Http.AjaxService({
+                url:'/user/shop/article/save',
+                type:'post',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        ArticleStatusChange: function(params, callback){ //供应商文章状态修改
+            Http.AjaxService({
+                url:'/user/shop/article/status/update',
+                type:'post',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        ArticleRemove: function(params, callback){ //供应商文章状态修改
+            Http.AjaxService({
+                url:'/user/shop/article/delete',
+                type:'post',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        ArticleCategory: function(params, callback){
+            Http.AjaxService({
+                url:'/user/shop/article/type/list',
+                type:'get',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        GetSearchShopList:function (params, callback) {//搜索供应商列表查询
+            Http.AjaxService({
+                url:'/commodity/search/query/shop',
+                type:'get',
+                data:params,
+                json:true,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        ShipmentsInfo: function (params, callback) {//发货商品初始化
+            Http.AjaxService({
+                url:'/order/shop/ship/info',
+                type:'GET',
+                data:params,
+                json:true,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        shopOrderList: function (params, callback) {//供应商订单列表
+            Http.AjaxService({
+                url:'/order/shop/list',
+                type:'GET',
+                data:params,
+                json:true,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        uploadimg: function (params, callback) {//供应商添加物流上传图片
+            Http.uploadImage({
+                url:'/tools/image/upload/multi',
+                data:params},callback)
+        },
+        GetMyProductList: function (params, callback) {//供应商商品列表
+            Http.AjaxService({
+                url:'/commodity/shop/product/list',
+                type:'GET',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        SwitchFeatured: function (params, callback) {//供应商商品增加删除 主推商品标志
+            Http.AjaxService({
+                url:'/commodity/shop/featured/switch',
+                type:'POST',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        SupplierSoldOut: function (params, callback) {//供应商商品下架(批量下架,单个商品下架)
+            Http.AjaxService({
+                url:'/commodity/shop/product/offline',
+                type:'POST',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        brandList: function (params, callback) {//品牌管理列表
+            Http.AjaxService({
+                url:'/commodity/shop/brand/list',
+                type:'GET',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        addLogistics: function (params, callback) {//发货/添加物流页 确定提交订单列表
+            Http.AjaxService({
+                url:'/order/shop/ship/delivery',
+                type:'post',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        shipmentsRecord: function (params, callback) {//发货/添加物流页 确定提交订单列表
+            Http.AjaxService({
+                url:'/order/shop/ship/delivery/record',
+                type:'GET',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        GetBrandAssociation: function (params, callback) {//发布商品品牌联想
+            Http.AjaxService({
+                url:'/commodity/shop/brand/select',
+                type:'GET',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        logisticsInfo: function (params, callback) {//记录的查看物流
+            Http.AjaxService({
+                url:'/order/shop/ship/logistics/info',
+                type:'GET',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        AddSupplierBrand: function (params, callback) {//发布商品提交新品牌
+            Http.AjaxService({
+                url:'/commodity/shop/brand/add',
+                type:'post',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        CheckSupplierBrandDetection: function (params, callback) {//发布商品检查是否品牌
+            Http.AjaxService({
+                url:'/commodity/shop/brand/check',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        AddSupplierReleaseProduct: function (params, callback) {//提交发布商品
+            Http.AjaxService({
+                url:'/commodity/shop/product/release',
+                type:'post',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        UpdateSearchManageProduct: function (params, callback) {//编辑商品更新搜索索引
+            Http.AjaxService({
+                url:'/commodity/search/index/update/product',
+                type:'post',
+                data:params,
+                json:false,
+                isHost:true
+            })
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        UpdateDelProductSku: function (params, callback) {//编辑商品更新搜索索引
+            Http.AjaxService({
+                url:'/commodity/del/sku',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            })
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        SupplierViewShop: function (params, callback) {//查看店铺
+            Http.AjaxService({
+                url:'/supplier/viewShop',
+                type:'get',
+                data:params,
+                json:false
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        SupplierViewShopProduct: function (params, callback) {//查看店铺供应商产品
+            Http.AjaxService({
+                url:'/supplier/product',
+                type:'get',
+                data:params,
+                json:false
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        SupplierViewShopInfo: function (params, callback) {//获取登录供应商信息
+            Http.AjaxService({
+                url:'/user/shop/info',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        EditReleaseProductInfo: function (params, callback) {//编辑我的商品回显数据
+            Http.AjaxService({
+                url:'/commodity/shop/product/form',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        GetSupplierLogisticsRecord: function (params, callback) {//发货-添加商品资质初始化查询商品
+            Http.AjaxService({
+                url:'/order/shop/ship/logistics/record',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        GetSupplierQualificationData: function (params, callback) {//发货-商品资质回显
+            Http.AjaxService({
+                url:'/order/shop/qualification/list',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        GetSupplierQualificationUpdata: function (params, callback) {//发货-保存商品资质
+            Http.AjaxService({
+                url:'/order/shop/qualification/save',
+                type:'post',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        shopInfo: function (params, callback) {//资料信息 回显数据
+            Http.AjaxService({
+                url:'/user/shop/info',
+                type:'GET',
+                data:params,
+                json:false ,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        kdList: function ( callback) {//快递公司
+            Http.AjaxService({
+                url:'/order/shop/ship/company',
+                type:'GET',
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        addLogisticsInfo: function (params, callback) {//追加物流
+            Http.AjaxService({
+                url:'/order/shop/ship/logistics/add',
+                type:'post',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        cancelShipment: function (params, callback) {//查看物流/撤销发货
+            Http.AjaxService({
+                url:'/order/shop/ship/delivery/cancel',
+                type:'post',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        shopOrderDetails: function (params, callback) {//我的订单/查看详情
+            Http.AjaxService({
+                url:'/order/shop/detail',
+                type:'GET',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+         modifiedData: function (params, callback) {//资料信息提交
+            Http.AjaxService({
+                url:'/user/shop/info/update',
+                type:'post',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        homePageData: function (params, callback) {//供应商 首页个人中心
+            Http.AjaxService({
+                url:'/user/shop/personal/data',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+         uploadAvatar: function (params, callback) {//供应商 首页上传头像成功后调用
+            Http.AjaxService({
+                url:'/user/center/avatar/save',
+                type:'post',
+                data:params,
+                json:false
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        dressUpList : function(params,callback) {//装扮主页列表
+            Http.AjaxService({
+                url:'/user/shop/home/images',
+                type:'get',
+                data:params,
+                json:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+         ShopBanner : function(params,callback) {//装扮主页修改与添加
+            Http.AjaxService({
+                url:'/user/shop/home/images/update',
+                type:'POST',
+                data:params,
+                json:false
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        deleteShopBanner : function(params,callback) {//装扮主页删除广告 Integer shopBannerId
+            Http.AjaxService({
+                url:'/user/shop/home/images/delete',
+                type:'POST',
+                data:params,
+                json:false
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        settlementList : function(params,callback) {//结算管理列表
+            Http.AjaxService({
+                url:'/order/shop/settlement/list',
+                type:'get',
+                data:params,
+                json:true,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+         GetMymessageList : function(params,callback) {//个人中心消息列表
+            Http.AjaxService({
+                url:'/user/center/messages',
+                type:'get',
+                data:params,
+                json:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        salesList : function(params,callback) {//售货清单
+            Http.AjaxService({
+                url:'/order/shop/sales/list',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        GetShopProductMain : function(params,callback) {//售货清单
+            Http.AjaxService({
+                url:'/commodity/shop/product/main',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        GetSearchQueryProductSupplier : function(params,callback) {//售货清单
+            Http.AjaxService({
+                url:'/commodity/search/query/product/shop',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        getAuthShopMessageCount: function (params, callback) {//供应商消息通知中心未读消息数量
+            Http.AjaxService({
+                url: '/user/login/auth/shopMessageCount',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            }).then(function (res) {
+                callback(res);
+            });
+        },
+        getAuthShopMessageList: function (params, callback) {//供应商消息通知列表
+            Http.AjaxService({
+                url: '/user/login/auth/shopMessageList',
+                type:'get',
+                data:params,
+                json:false,
+                isHost:true
+            }).then(function (res) {
+                callback(res);
+            });
+        },
+        authDeleteMessage: function (params, callback) {//删除通知消息
+            Http.AjaxService({
+                url: '/user/login/auth/deleteMessage',
+                type:'post',
+                data:params,
+                json:false,
+                isHost:true
+            }).then(function (res) {
+                callback(res);
+            });
+        },
+        authUpdateRead: function (params, callback) {//标记通知消息
+            Http.AjaxService({
+                url: '/user/login/auth/updateRead',
+                type:'post',
+                data:params,
+                json:false,
+                isHost:true
+            }).then(function (res) {
+                callback(res);
+            });
+        },
+        // 供应商落地页
+        supplierLoading: function (params, callback) {//标记通知消息
+            Http.AjaxService({
+                url: '/user/landing/info',
+                type:'get',
+                data:params,
+                json:false,
+            }).then(function (res) {
+                callback(res);
+            });
+        },
+        // 供应商表单提交
+        supplierSearchUpdate: function (params, callback) {//标记通知消息
+            Http.AjaxService({
+                url: '/user/landing/cmQuestionnaire/save',
+                type:'post',
+                data:params,
+                json:false,
+            }).then(function (res) {
+                callback(res);
+            });
+        },
+        /**
+         * @订单保存支付凭证
+         * @param:ID 用户ID(必填)
+         * @param:shopOrderId 子订单ID
+         * @param:remarks 上传凭证备注
+         * @param:voucherImgs 凭证图片
+         */
+        orderInsertVoucher: function (params, callback) {
+            Http.AjaxService({
+                url:'/order/club/insertVoucher',
+                type:'POST',
+                data:params,
+                json:false,
+            })
+                .then(function(res){
+                    callback(res);
+                });
+        },
+        /**
+         * @订单备注详情
+         * @param:shopOrderId 子订单ID
+         */
+        remarksView: function (params, callback) {
+            Http.AjaxService({
+                url:'/order/shop/remarksView',
+                type:'GET',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @添加订单备注的
+         * @param:images 图片
+         * @param:remarks 备注文字
+         * @param:ossFiles 文件列表
+         * @param:shopOrderId 子订单ID
+         */
+        addRemark : function (params, callback) {
+            Http.AjaxService({
+                url:'/order/shop/add/remark',
+                type:'post',
+                data:params,
+                json:true,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @下载备注文件
+         * @param:fileId 文件ID
+         */
+        downloadRemark : function (params, callback) {
+            Http.AjaxService({
+                url:'/order/shop/download/remark',
+                type:'GET',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @供应商退款
+         * @param:shopOrderId 文件ID
+         */
+        returnShopOrder : function (params, callback) {
+            Http.AjaxService({
+                url:'/order/refund/shopOrder',
+                type:'GET',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @供应商确认收款
+         * @param:shopOrderId 文件ID
+         */
+        checkeReceipt : function (params, callback) {
+            Http.AjaxService({
+                url:'/order/shop/check/receipt',
+                type:'GET',
+                data:params,
+                json:false,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @供应商修改订单
+         * @param:orderProducts 商品列表
+         */
+        orderUpdate : function (params, callback) {
+            Http.AjaxService({
+                url:'/order/submit/update',
+                type:'POST',
+                data:params,
+                json:true,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @供应商运费模板列表
+         * @param:shopId 供应商Id
+         * @param:pageNum 页码
+         * @param:pageSize 条数
+         */
+        getFreightTemp : function (params, callback) {
+            Http.AjaxService({
+                url:'/commodity/shop/product/getFreightTemplate',
+                type:'GET',
+                data:params,
+                json:true,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @删除运费模板
+         * @param:id  运费模板Id
+         */
+        delFreight : function (params, callback) {
+            Http.AjaxService({
+                url:'/commodity/shop/product/delFreight',
+                type:'GET',
+                data:params,
+                json:true,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @运费模板详情
+         * @param:id  运费模板Id
+         */
+        freightTemplateDetail : function (params, callback) {
+            Http.AjaxService({
+                url:'/commodity/shop/product/templateDetail',
+                type:'GET',
+                data:params,
+                json:true,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @发布商品获取所有运费模板
+         * @param:shopId  运费模板Id
+         */
+        getFreightAll : function (params, callback) {
+            Http.AjaxService({
+                url:'/commodity/shop/product/getFreight',
+                type:'GET',
+                data:params,
+                json:true,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @复制运费模板
+         * @param:id  运费模板Id
+         */
+        getFreightTemplateById : function (params, callback) {
+            Http.AjaxService({
+                url:'/commodity/shop/product/getFreightTemplateById',
+                type:'GET',
+                data:params,
+                json:true,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @供应商运费模板(获取地区)
+         * @param:freightId 运费模板Id
+         * @param:ruleId 运费规则Id
+         */
+        getFreightArea : function (params, callback) {
+            Http.AjaxService({
+                url:'/commodity/shop/getArea',
+                type:'GET',
+                data:params,
+                json:true,
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        /**
+         * @保存运费模板
+         */
+        saveFreightTemplate : function (params, callback) {
+            Http.AjaxService({
+                url:'/commodity/shop/product/saveFreightTemplate',
+                type:'post',
+                data:params,
+                json:false,
+                isHost:true
+            })
+            .then(function(res){
+                callback(res);
+            });
+        },
+        // 供应商落地页增长社区分页
+        supplierLoadingCommunity: function (params, callback) {
+            Http.AjaxService({
+                url: '/user/landing/shopTypeInfo',
+                type:'get',
+                data:params,
+                json:false,
+            }).then(function (res) {
+                callback(res);
+            });
+        }
+};

+ 293 - 260
src/main/resources/static/js/quickOpreation/index.js

@@ -1,260 +1,293 @@
-let quickOpreationMain = new Vue({
-    el: '#app',
-    mixins: [swiperMixin, showMoreMixin, cmSysVitaMixins],
-    data: {
-        isMobile: window.innerWidth < 992,
-        showCouponEntry: false,
-        isActive: true,
-        isRequest: true,
-        isLoading: true,
-        showPhoneNum: false,
-        showWechat: false,
-        // showScrollTop: false,
-        activityEntryVisiable: false,
-        contactVisiable: false,
-        scrollTopSize: 0,
-        msg: 'hello world',
-        src: './img/test.jpg',
-        // 显示个数
-        countMap: {},
-        size: 10,
-        swiperList: {},
-        needReload: false,
-        floorList: [],
-        pageInfo: null,
-        params: {
-            //请求参数
-            pageId: '293',
-            userId: '',
-            source: 1
-        },
-        selectVideoTabMap: {},
-        //用户权限
-        globalUserData: '',
-        GLOBAL_USER_ID: 0,
-        GLOBAL_USER_IDENTITY: 0,//2-会员机构;3-供应商;4-普通机构
-        GLOBAL_SHOP_ID: 0,
-    },
-    filters: {
-        NumFormat: function NumFormat(value) {//处理金额
-            return Number(value).toFixed(2);
-        }
-        ,
-        tabTime: function tabTime(val) { // 处理时间
-            // 2021-08-16 00:00:00
-            const first = val.split(' ')[0];
-            const second = first.split('-');
-            return second[1] + '-' + second[2];
-        }
-    },
-    watch: {
-        isMobile: function isMobile() {
-            // if (this.needReload) window.location.reload()
-            this.isLoading = true;
-            window.location.reload();
-        }
-    },
-    computed: {
-        showScrollTop: function () {
-            return this.scrollTopSize > 600
-        }
-    },
-    created() {
-        this.cmSysParams.pageType = 13;
-        this.initUserInfo();
-        this.getQuickOpreationList();
-    },
-    mounted() {
-        // this.getQuickOpreationList() // 快捷运营信息
-        this.pageLoaded();
-        // this.showCouponEntry = true 优惠券弹窗入口2
-        // 关闭视频播放
-        this.$nextTick(function(){
-            $('#video-popup .close').on('click', function(){
-                $(this).parents('#video-popup').hide();
-            });
-        })
-    },
-    methods: {
-        // 获取快捷运营信息
-        getQuickOpreationList() {
-            const paramsArr = window.location.pathname.split(".")[0].split("-");
-            this.params.pageId = paramsArr.length >= 1 ? paramsArr[1] : '';
-            ProductApi.getActivityData(this.params, (res) => {
-                if (res.code === 0) {
-                    this.floorList = res.data.floorList;
-                    window.document.title = res.data.page.title;
-                    this.pageInfo = res.data.page;
-                    this.cmSysParams.pageLabel = this.pageInfo.contentLabel;
-                    this.isRequest = false;
-                    this.makeVideoFetchMap();
-                    this.contactVisiable = res.data.page.infoBarStatus === 1;
-                }
-            })
-        },
-        //    初始化用户信息
-        initUserInfo () {
-            const userInfo = localStorage.getItem('userInfo');
-            if (!userInfo) {
-                console.log('用户未登录...');
-                return false
-            }
-            this.globalUserData = JSON.parse(localStorage.getItem('userInfo'));
-            this.GLOBAL_USER_ID = this.globalUserData.userId * 1;
-            this.GLOBAL_USER_IDENTITY = this.globalUserData.userIdentity * 1;
-            this.GLOBAL_SHOP_ID = this.globalUserData.shopId * 1;
-            this.params.userId = this.globalUserData.userId;
-            if (this.GLOBAL_USER_ID === 5261 || this.GLOBAL_USER_ID === 10947 || this.GLOBAL_USER_ID === 11579) {
-                this.GLOBAL_USER_IDENTITY = 1;
-            }
-            console.log('已获取用户登录信息')
-        },
-        fetchTemplate: function fetchTemplate(list, type) {
-            return list.indexOf(parseInt(type)) !== -1;
-        },
-        //促销活动类型数据处理
-        PromotionsFormat: function (promo) {
-            if (promo !== null) {
-                if (promo.type === 1 && promo.mode === 1) {
-                    return true;
-                } else {
-                    return false;
-                }
-            }
-            return false;
-        },
-        // 创建tab与轮播图的对应关系
-        makeVideoFetchMap: function makeVideoFetchMap() {
-            const videoList = [22, 23, 24, 25];
-            const videoMap = {};
-            this.floorList.forEach((item, index) => {
-                if (videoList.indexOf(parseInt(item["floorContent"]["templateType"])) !== -1) {
-                    videoMap[item["floorContent"]["templateType"] + '-' + index] = 0;
-                }
-            });
-            this.selectVideoTabMap = videoMap;
-        },
-        // tab点击事件
-        handleTabClick(type, index, val) {
-            const swiperId = 'swiper-template-' + index + '-' + type + '-' + val;
-            this.selectVideoTabMap[type + '-' + index] = val;
-            if (this.swiperList[swiperId]) this.swiperList[swiperId].destroy();
-            setTimeout(() => {
-                this.swiperList[swiperId] = utils.createSwiperId(swiperId, swiperConfig);
-                utils.responsive('.aspect', 'scalc');
-                console.log('轮播图切换');
-            });
-        },
-        // 当前选中的轮播图
-        currentVideoSwiper(type, index) {
-            return this.selectVideoTabMap[type + '-' + index];
-        },
-        getFloorImageListType(index) {
-            return index === 0 ? 'floorImageList' : 'floorImageList' + (index + 1);
-        },
-        // 获取直播状态
-        makeVideoStatus(floorData, index) {
-            const displayDate = new Date(floorData.floorContent['displayDate' + index].replace(/-/g, '/')).getTime();
-            const nowDate = new Date().getTime();
-            // 一天的时间戳
-            const oneDay = 60 * 60 * 24 * 1000;
-            // 直播开始时间:displayDate
-            // 直播结束时间:displayDate + oneDay
-            if (nowDate < displayDate) return 0; // 未开始
-            if (nowDate >= displayDate && nowDate <= displayDate + oneDay) return 1; // 已开始
-            if (nowDate - oneDay > displayDate) return 2; // 已结束
-        },
-        // 使用产品楼层的布局
-        getProductScalcMap(templateId) {
-            const current = this.isMobile ? 'mobile' : 'pc';
-            const scalcLayout = layoutMapping.productScalcMap['template-' + templateId];
-            return {
-                scalc: scalcLayout[current].scalc,
-                col: scalcLayout[current].col
-            };
-        },
-        // 使用文章楼层的布局
-        getArticleScalcMap(templateId) {
-            const current = this.isMobile ? 'mobile' : 'pc';
-            const scalcLayout = layoutMapping.articleScalcMap['template-' + templateId];
-            return {
-                scalc: scalcLayout[current],
-                swiper: scalcLayout['swiper']
-            };
-        },
-        // 使用图片楼层的布局
-        getImageScalcMap(templateId) {
-            const current = this.isMobile ? 'mobile' : 'pc';
-            const scalcLayout = layoutMapping.imageScalcMap['template-' + templateId];
-            return {
-                scalc: scalcLayout[current],
-                swiper: scalcLayout['swiper']
-            };
-        },
-        // 使用直播楼层的布局
-        getVideoScalcMap(templateId) {
-            const current = this.isMobile ? 'mobile' : 'pc';
-            const scalcLayout = layoutMapping.videoScalcMap['template-' + templateId];
-            return {
-                scalc: scalcLayout[current],
-                swiper: scalcLayout['swiper']
-            };
-        },
-        // 播放视频
-        onPlayVideo(link) {
-            $('#video-popup video').attr('src', link);
-            $('#video-popup').show();
-        },
-        // 处理link
-        reallink(link) {
-            if(!link) return 'javascript:void(0)';
-            return link;
-        },
-        handleToggleActive(flag) {
-            this.isActive = flag;
-        },
-        // 页面挂载完毕
-        pageLoaded() {
-            // 轮播图配置
-            const options = {
-                el: '.swiper-container',
-                split: '-',
-                config: swiperConfig,
-                protertyFix: 'swiper-template-'
-            };
-            let resizeTimer = null;
-            // 延迟处理
-            let timer;
-            timer = setInterval(() => {
-                if (!this.isRequest) {
-                    this.swiperList = utils.createSwiper(options);
-                    // console.log(that.swiperList);
-                    console.log('轮播图创建完毕...');
-                    this.initCountMap(countMapping);
-                    // console.log(that.countMap);
-                    console.log('商品列表处理完毕...');
-                    utils.responsive('.aspect', 'scalc');
-                    this.isLoading = false;
-                    clearInterval(timer);
-                    this.$nextTick(() => {
-                        $('img[data-original]').lazyload();
-                    });
-                    console.log('页面图片初始化完成...');
-                }
-            }, 500);
-            // 监听window窗口大小
-            window.addEventListener('resize', () => {
-                clearTimeout(resizeTimer);
-                resizeTimer = setTimeout(() => {
-                    utils.responsive('.aspect', 'scalc');
-                    console.log('图片大小已刷新...');
-                }, 200);
-                quickOpreationMain.$set(quickOpreationMain.$data, 'isMobile', window.innerWidth < 560);
-            });
-            window.addEventListener('scroll', (event) => {
-                this.scrollTopSize = $('body').scrollTop();
-            });
-            console.log('窗口resize事件注册完毕...');
-        },
-    }
-})
+let quickOpreationMain = new Vue({
+    el: '#app',
+    mixins: [swiperMixin, showMoreMixin, cmSysVitaMixins],
+    data: {
+        isMobile: window.innerWidth < 992,
+        showCouponEntry: false,
+        isActive: true,
+        isRequest: true,
+        isLoading: true,
+        showPhoneNum: false,
+        showWechat: false,
+        // showScrollTop: false,
+        activityEntryVisiable: false,
+        contactVisiable: false,
+        scrollTopSize: 0,
+        msg: 'hello world',
+        src: './img/test.jpg',
+        // 显示个数
+        countMap: {},
+        size: 10,
+        swiperList: {},
+        needReload: false,
+        floorList: [],
+        pageInfo: null,
+        params: {
+            //请求参数
+            pageId: '293',
+            userId: '',
+            source: 1
+        },
+        selectVideoTabMap: {},
+        //用户权限
+        globalUserData: '',
+        GLOBAL_USER_ID: 0,
+        GLOBAL_USER_IDENTITY: 0,//2-会员机构;3-供应商;4-普通机构
+        GLOBAL_SHOP_ID: 0,
+        gridTemplateColumns: { // 两行式模板配置
+            '2': 3,
+            '1': 5,
+            '3': 2,
+            '6': 3,
+            '9': 2,
+            '14': 6,
+            '22': 3,
+            '24': 2,
+            '26': 3,
+            '28': 2,
+            '30': 3,
+            '32': 2
+        }
+    },
+    filters: {
+        NumFormat: function NumFormat(value) {//处理金额
+            return Number(value).toFixed(2);
+        }
+        ,
+        tabTime: function tabTime(val) { // 处理时间
+            // 2021-08-16 00:00:00
+            const first = val.split(' ')[0];
+            const second = first.split('-');
+            return second[1] + '-' + second[2];
+        }
+    },
+    watch: {
+        isMobile: function isMobile() {
+            // if (this.needReload) window.location.reload()
+            this.isLoading = true;
+            window.location.reload();
+        }
+    },
+    computed: {
+        showScrollTop: function () {
+            return this.scrollTopSize > 600
+        }
+    },
+    created() {
+        this.cmSysParams.pageType = 13;
+        this.initUserInfo();
+        this.getQuickOpreationList();
+    },
+    mounted() {
+        // this.getQuickOpreationList() // 快捷运营信息
+        this.pageLoaded();
+        // this.showCouponEntry = true 优惠券弹窗入口2
+        // 关闭视频播放
+        this.$nextTick(function(){
+            $('#video-popup .close').on('click', function(){
+                $(this).parents('#video-popup').hide();
+            });
+        })
+    },
+    methods: {
+        // 偏展会模板重写
+        getGroupMenu (list, num) {
+            const newArr = (l) => list.reduce((prev, curr, index) => {
+                const i = Math.floor(index / l)
+                prev[i] = [...prev[i]||[], curr]
+                return prev
+            }, [])
+            const group = {}
+            for (const key in this.gridTemplateColumns) {
+                group[key] = () => newArr(this.gridTemplateColumns[num] * 2)
+            }
+            return group[num]()
+        },
+        // 偏展会模板点击
+        handleClick (e) {
+            if (e.link) {
+                window.open(e.link)
+            }
+        },
+        // 获取快捷运营信息
+        getQuickOpreationList() {
+            const paramsArr = window.location.pathname.split(".")[0].split("-");
+            this.params.pageId = paramsArr.length >= 1 ? paramsArr[1] : '';
+            ProductApi.getActivityData(this.params, (res) => {
+                if (res.code === 0) {
+                    this.floorList = res.data.floorList;
+                    window.document.title = res.data.page.title;
+                    this.pageInfo = res.data.page;
+                    this.cmSysParams.pageLabel = this.pageInfo.contentLabel;
+                    this.isRequest = false;
+                    this.makeVideoFetchMap();
+                    this.contactVisiable = res.data.page.infoBarStatus === 1;
+                }
+            })
+        },
+        //    初始化用户信息
+        initUserInfo () {
+            const userInfo = localStorage.getItem('userInfo');
+            if (!userInfo) {
+                console.log('用户未登录...');
+                return false
+            }
+            this.globalUserData = JSON.parse(localStorage.getItem('userInfo'));
+            this.GLOBAL_USER_ID = this.globalUserData.userId * 1;
+            this.GLOBAL_USER_IDENTITY = this.globalUserData.userIdentity * 1;
+            this.GLOBAL_SHOP_ID = this.globalUserData.shopId * 1;
+            this.params.userId = this.globalUserData.userId;
+            if (this.GLOBAL_USER_ID === 5261 || this.GLOBAL_USER_ID === 10947 || this.GLOBAL_USER_ID === 11579) {
+                this.GLOBAL_USER_IDENTITY = 1;
+            }
+            console.log('已获取用户登录信息')
+        },
+        fetchTemplate: function fetchTemplate(list, type) {
+            return list.indexOf(parseInt(type)) !== -1;
+        },
+        //促销活动类型数据处理
+        PromotionsFormat: function (promo) {
+            if (promo !== null) {
+                if (promo.type === 1 && promo.mode === 1) {
+                    return true;
+                } else {
+                    return false;
+                }
+            }
+            return false;
+        },
+        // 创建tab与轮播图的对应关系
+        makeVideoFetchMap: function makeVideoFetchMap() {
+            const videoList = [22, 23, 24, 25];
+            const videoMap = {};
+            this.floorList.forEach((item, index) => {
+                if (videoList.indexOf(parseInt(item["floorContent"]["templateType"])) !== -1) {
+                    videoMap[item["floorContent"]["templateType"] + '-' + index] = 0;
+                }
+            });
+            this.selectVideoTabMap = videoMap;
+        },
+        // tab点击事件
+        handleTabClick(type, index, val) {
+            const swiperId = 'swiper-template-' + index + '-' + type + '-' + val;
+            this.selectVideoTabMap[type + '-' + index] = val;
+            if (this.swiperList[swiperId]) this.swiperList[swiperId].destroy();
+            setTimeout(() => {
+                this.swiperList[swiperId] = utils.createSwiperId(swiperId, swiperConfig);
+                utils.responsive('.aspect', 'scalc');
+                console.log('轮播图切换');
+            });
+        },
+        // 当前选中的轮播图
+        currentVideoSwiper(type, index) {
+            return this.selectVideoTabMap[type + '-' + index];
+        },
+        getFloorImageListType(index) {
+            return index === 0 ? 'floorImageList' : 'floorImageList' + (index + 1);
+        },
+        // 获取直播状态
+        makeVideoStatus(floorData, index) {
+            const displayDate = new Date(floorData.floorContent['displayDate' + index].replace(/-/g, '/')).getTime();
+            const nowDate = new Date().getTime();
+            // 一天的时间戳
+            const oneDay = 60 * 60 * 24 * 1000;
+            // 直播开始时间:displayDate
+            // 直播结束时间:displayDate + oneDay
+            if (nowDate < displayDate) return 0; // 未开始
+            if (nowDate >= displayDate && nowDate <= displayDate + oneDay) return 1; // 已开始
+            if (nowDate - oneDay > displayDate) return 2; // 已结束
+        },
+        // 使用产品楼层的布局
+        getProductScalcMap(templateId) {
+            const current = this.isMobile ? 'mobile' : 'pc';
+            const scalcLayout = layoutMapping.productScalcMap['template-' + templateId];
+            return {
+                scalc: scalcLayout[current].scalc,
+                col: scalcLayout[current].col
+            };
+        },
+        // 使用文章楼层的布局
+        getArticleScalcMap(templateId) {
+            const current = this.isMobile ? 'mobile' : 'pc';
+            const scalcLayout = layoutMapping.articleScalcMap['template-' + templateId];
+            return {
+                scalc: scalcLayout[current],
+                swiper: scalcLayout['swiper']
+            };
+        },
+        // 使用图片楼层的布局
+        getImageScalcMap(templateId) {
+            const current = this.isMobile ? 'mobile' : 'pc';
+            const scalcLayout = layoutMapping.imageScalcMap['template-' + templateId];
+            return {
+                scalc: scalcLayout[current],
+                swiper: scalcLayout['swiper']
+            };
+        },
+        // 使用直播楼层的布局
+        getVideoScalcMap(templateId) {
+            const current = this.isMobile ? 'mobile' : 'pc';
+            const scalcLayout = layoutMapping.videoScalcMap['template-' + templateId];
+            return {
+                scalc: scalcLayout[current],
+                swiper: scalcLayout['swiper']
+            };
+        },
+        // 播放视频
+        onPlayVideo(link) {
+            $('#video-popup video').attr('src', link);
+            $('#video-popup').show();
+        },
+        // 处理link
+        reallink(link) {
+            if(!link) return 'javascript:void(0)';
+            return link;
+        },
+        handleToggleActive(flag) {
+            this.isActive = flag;
+        },
+        // 页面挂载完毕
+        pageLoaded() {
+            // 轮播图配置
+            const options = {
+                el: '.swiper-container',
+                split: '-',
+                config: swiperConfig,
+                protertyFix: 'swiper-template-'
+            };
+            let resizeTimer = null;
+            // 延迟处理
+            let timer;
+            timer = setInterval(() => {
+                if (!this.isRequest) {
+                    this.swiperList = utils.createSwiper(options);
+                    // console.log(that.swiperList);
+                    console.log('轮播图创建完毕...');
+                    this.initCountMap(countMapping);
+                    // console.log(that.countMap);
+                    console.log('商品列表处理完毕...');
+                    utils.responsive('.aspect', 'scalc');
+                    this.isLoading = false;
+                    clearInterval(timer);
+                    this.$nextTick(() => {
+                        $('img[data-original]').lazyload();
+                    });
+                    console.log('页面图片初始化完成...');
+                }
+            }, 500);
+            // 监听window窗口大小
+            window.addEventListener('resize', () => {
+                clearTimeout(resizeTimer);
+                resizeTimer = setTimeout(() => {
+                    utils.responsive('.aspect', 'scalc');
+                    console.log('图片大小已刷新...');
+                }, 200);
+                quickOpreationMain.$set(quickOpreationMain.$data, 'isMobile', window.innerWidth < 560);
+            });
+            window.addEventListener('scroll', (event) => {
+                this.scrollTopSize = $('body').scrollTop();
+            });
+            console.log('窗口resize事件注册完毕...');
+        },
+    }
+})

+ 3 - 0
src/main/resources/static/js/supplier-center/encyclopedia/edit.js

@@ -402,6 +402,7 @@ const edit = new Vue({
                     shopId: this.formData.shopId,
                     id: this.formData.id, // 词条id
                     name: this.formData.name, // 词条名称
+                    banner: this.formData.banner, // banner图
                     alias: this.formData.alias, // 义项名
                     discription: this.formData.discription, // 词条概述
                     image: this.formData.image, // 头图地址
@@ -436,6 +437,7 @@ const edit = new Vue({
                     shopId: this.formData.shopId,
                     id: this.formData.id, // 词条id
                     name: this.formData.name, // 词条名称
+                    banner: this.formData.banner, // banner图
                     alias: this.formData.alias, // 义项名
                     discription: this.formData.discription, // 词条概述
                     image: this.formData.image, // 头图地址
@@ -481,6 +483,7 @@ const edit = new Vue({
                     shopId: this.formData.shopId,
                     id: this.formData.id, // 词条id
                     name: this.formData.name, // 词条名称
+                    banner: this.formData.banner, // banner图
                     alias: this.formData.alias, // 义项名
                     discription: this.formData.discription, // 词条概述
                     image: this.formData.image, // 头图地址

+ 10 - 9
src/main/resources/static/js/supplier-login/more.js

@@ -7,19 +7,19 @@ new Vue({
     data: {
         contentList: [
             {
-                id: 0,
+                id: 2,
                 title: '美业企谈'
             },
             {
-                id: 1,
+                id: 3,
                 title: '干货知识'
             }
         ],
-        active: 0,
         dataList: [],
         params: {
             pageSize: 10,
-            pageNum: 1
+            pageNum: 1,
+            type: 2
         },
         total: 1,
         pageInput: ''
@@ -58,23 +58,24 @@ new Vue({
     methods: {
         handlerDataList () {
             const source = this.isPC ? 1 : 2
-            SupplierApi.supplierLoading(Object.assign(this.params, { source }),({ data }) => {
-                this.dataList = this.active === 0 ? data.landing.filter(e => e.type === '2') : data.landing.filter(e => e.type === '3')
+            SupplierApi.supplierLoadingCommunity(Object.assign(this.params, { source }),({ data }) => {
+                this.dataList = data.list
+                this.total = data.total
             })
         },
         handlerActiveTab ($event) {
-            this.active = $event.id
+            this.params.type = $event.id
             this.handlerDataList()
         },
         handlerVideo ($event) {
             const src = $event.cmBrandFiles[0].ossUrl
-            if (src) {
+            if (src && src.length > 10) {
                 this.playerOn(src)
             }
         },
         handlerActiveData () {
             const query = window.location.search.split('?')[1].split('=')
-            this[query[0]] = Number(query[1])
+            this.params.type = Number(query[1])
         },
         handlerArticle ($event) {
             this.textInfo($event.id)

+ 272 - 41
src/main/resources/templates/activity/beautyTopic.html

@@ -13,7 +13,7 @@
 </head>
 <body ontouchstart>
 <input type="hidden" th:value="${coreServer}" id="coreServer">
-<div id="app">
+<div id="app" :style="{backgroundColor:pageInfo.backgroundColour || '',backgroundImage:'url('+pageInfo.backgroundImage+')'}">
     <!-- 大图 -->
     <div class="banner-container">
         <a :href="pageInfo && pageInfo.headLink" class="banner">
@@ -164,7 +164,7 @@
                                     </div>
                                 </div>
                                 <!-- Add Pagination -->
-                                <div class="swiper-pagination" v-if="floorList.length > 1"></div>
+                                <div class="swiper-pagination" v-show="floorData.floorImageList.length > 6"></div>
                                 <!-- Add Navigation -->
                                 <div class="swiper-button-prev swiper-button-white cm-none"></div>
                                 <div class="swiper-button-next swiper-button-white cm-none"></div>
@@ -191,14 +191,14 @@
                                                     height="100%"
                                                     :src="floorData.floorContent['appletsAdsImage' + (index + 1)]"
                                                     alt="/banner.jpg"
-                                                    v-if="isMobile"
+                                                    v-if="isMobile && floorData.floorContent['appletsAdsImage' + (index + 1)]"
                                             />
                                             <img
                                                     width="100%"
                                                     height="100%"
                                                     :src="floorData.floorContent['pcAdsImage' + (index + 1)]"
                                                     alt="/banner.jpg"
-                                                    v-else
+                                                    v-if="!isMobile && floorData.floorContent['pcAdsImage' + (index + 1)]"
                                             />
                                         </a>
                                     </div>
@@ -313,14 +313,14 @@
                                                     height="100%"
                                                     :src="floorData.floorContent['appletsAdsImage' + (index + 1)]"
                                                     alt="/banner.jpg"
-                                                    v-if="isMobile"
+                                                    v-if="isMobile && floorData.floorContent['appletsAdsImage' + (index + 1)]"
                                             />
                                             <img
                                                     width="100%"
                                                     height="100%"
                                                     :src="floorData.floorContent['pcAdsImage' + (index + 1)]"
                                                     alt="/banner.jpg"
-                                                    v-else
+                                                    v-if="!isMobile && floorData.floorContent['appletsAdsImage' + (index + 1)]"
                                             />
                                         </a>
                                     </div>
@@ -338,9 +338,9 @@
                         </div>
                     </div>
                 </template>
-                <!-- 文章楼层3-6 -->
-                <!-- fetchTemplate([3,4,5,6],floorData.floorContent.templateType) -->
-                <template v-if="fetchTemplate([3,4,5,6],floorData.floorContent.templateType)">
+                <!-- 文章楼层4,5 -->
+                <!-- fetchTemplate([4,5],floorData.floorContent.templateType) -->
+                <template v-if="fetchTemplate([4,5],floorData.floorContent.templateType)">
                     <!-- 轮播式 pc -->
                     <div class="cm-row cm-relative cm-swiper" v-show="!isMobile">
                         <div class="cm-p-a-4">
@@ -360,29 +360,8 @@
                                     <div class="swiper-slide" v-for="(item, item_index) in floorData.floorImageList"
                                          :key="item_index">
                                         <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
-                                            <!-- 模板3 -->
-                                            <div
-                                                    class="cm-article-item h200 bg-white cm-p-a-8 cm-flex-j-between"
-                                                    v-if="floorData.floorContent.templateType == 3"
-                                            >
-                                                <div class="cm-left cm-article-cover cover-168-168">
-                                                    <img width="100%" height="100%" :src="item.appletsImage"
-                                                         :alt="item.name" v-if="isMobile"/>
-                                                    <img width="100%" height="100%" :src="item.image" :alt="item.name"
-                                                         v-else/>
-                                                </div>
-                                                <div class="cm-right cm-article-content cm-p-l-8 cm-flex-1">
-                                                    <div class="cm-article-title cm-m-b-10 cm-text-ellipsis-1">
-                                                        {{item.name}}
-                                                    </div>
-                                                    <div class="cm-line"></div>
-                                                    <div class="cm-article-desc cm-m-t-10 cm-text-ellipsis-4">
-                                                        {{item.content}}
-                                                    </div>
-                                                </div>
-                                            </div>
                                             <!-- 模板4 5 6 -->
-                                            <div class="cm-article-item bg-white" v-else>
+                                            <div class="cm-article-item bg-white">
                                                 <div class="cm-article-cover aspect"
                                                      :data-scalc="getArticleScalcMap(floorData.floorContent.templateType).scalc">
                                                     <img width="100%" height="100%" :src="item.appletsImage"
@@ -404,7 +383,7 @@
                                 </div>
                                 <!-- Add Pagination -->
                                 <div class="swiper-pagination"
-                                     v-show="(isMobile || !fetchTemplate([4,5],floorData.floorContent.templateType)) && (floorList.length > 1)"></div>
+                                     v-show="isMobile || !fetchTemplate([4,5],floorData.floorContent.templateType)"></div>
                                 <!-- Add Navigation -->
                                 <div class="swiper-button-prev swiper-button-white cm-none"></div>
                                 <div class="swiper-button-next swiper-button-white cm-none"></div>
@@ -506,16 +485,211 @@
                         </div>
                     </div>
                 </template>
-                <!-- 图片楼层1 2 7 8 9 10  -->
-                <!-- fetchTemplate([1,2,7,8,9,10],floorData.floorContent.templateType) -->
-                <template v-if="fetchTemplate([1,2,7,8,9,10,26,27,28,29,30,31,32,33],floorData.floorContent.templateType)">
+                <!-- 图片楼层1 2 3 6,9 -->
+                <template v-if="fetchTemplate([1,2,3,6,9,26,28,30,32],floorData.floorContent.templateType)">
+                    <div class="cm-row cm-relative cm-swiper" v-if="!isMobile || !fetchTemplate([3,4,6,10],floorData.floorContent.templateType)">
+                        <div class="cm-p-a-4">
+                            <template v-if="!isMobile">
+                                <div class="cm-swiper-button-prev cm-absolute" @click="handlePrevClick(index)"></div>
+                                <div class="cm-swiper-button-next cm-absolute" @click="handleNextClick(index)"></div>
+                            </template>
+                            <div
+                                    class="swiper-container"
+                                    :id="'swiper-template-' + index"
+                                    :data-swiper-type="getImageScalcMap('10').swiper"
+                            >
+                                <div class="swiper-wrapper">
+                                    <div class="swiper-slide" v-for="(item, item_index) in getGroupMenu(floorData.floorImageList, floorData.floorContent.templateType)"
+                                         :key="item_index">
+                                        <div :class="'slide-template-' + floorData.floorContent.templateType" class="template-rows-2" :style="{display: 'grid', gridTemplateRows: 'repeat(2, 1fr)', gridTemplateColumns: `repeat(${gridTemplateColumns[floorData.floorContent.templateType]}, 1fr)`, gridGap: '16px'}">
+                                            <template v-for="i in item" :key="i.id" v-if="fetchTemplate([1,2,9,26,28],floorData.floorContent.templateType)">
+                                                <div class="slide-template-2-img" @click="handleClick(i)">
+                                                    <img :src="isMobile ? i.appletsImage : i.image" width="100%" height="150px"/>
+                                                    <div class="has-player"
+                                                         v-if="floorData.floorContent.templateClassify == 4"></div>
+                                                </div>
+                                            </template>
+                                            <template v-for="i in item" :key="i.id" v-if="fetchTemplate([30,32],floorData.floorContent.templateType)" @click="onPlayVideo(i.link)">
+                                                <div class="slide-template-2-img" @click="handleClick(i)">
+                                                    <img :src="isMobile ? i.appletsImage : i.image" width="100%" height="150px"/>
+                                                    <div class="has-player"
+                                                         v-if="floorData.floorContent.templateClassify == 4"></div>
+                                                </div>
+                                            </template>
+                                            <template v-if="fetchTemplate([3],floorData.floorContent.templateType)" v-for="i in item" :key="i.id">
+                                                <div class="cm-article-item h200 bg-white cm-p-a-8 cm-flex-j-between" @click="handleClick(i)">
+                                                    <div class="cm-left cm-article-cover cover-168-168">
+                                                        <img width="100%" height="100%" :src="isMobile ? i.appletsImage : i.image"
+                                                             :alt="i.name"/>
+                                                    </div>
+                                                    <div class="cm-right cm-article-content cm-p-l-8 cm-flex-1">
+                                                        <div class="cm-article-title cm-m-b-10 cm-text-ellipsis-1">
+                                                            {{i.name}}
+                                                        </div>
+                                                        <div class="cm-line"></div>
+                                                        <div class="cm-article-desc cm-m-t-10 cm-text-ellipsis-4">
+                                                            {{i.content}}
+                                                        </div>
+                                                    </div>
+                                                </div>
+                                            </template>
+                                            <template v-if="fetchTemplate([6],floorData.floorContent.templateType)" v-for="i in item" :key="i.id">
+                                                <div class="cm-article-item bg-white">
+                                                    <div class="cm-article-cover aspect"
+                                                         :data-scalc="getArticleScalcMap(floorData.floorContent.templateType).scalc">
+                                                        <img :src="isMobile ? i.appletsImage : i.image" width="100%" height="100%"/>
+                                                    </div>
+                                                    <div class="cm-article-title has-border cm-m-t-8 cm-m-r-8 cm-m-b-8 cm-p-l-6 cm-text-ellipsis-1">
+                                                        {{i.name}}
+                                                    </div>
+                                                    <div class="cm-m-a-8">
+                                                        <div class="cm-article-desc cm-text-ellipsis-2 h56">
+                                                            {{i.content}}
+                                                        </div>
+                                                    </div>
+                                                </div>
+                                            </template>
+                                        </div>
+                                    </div>
+                                </div>
+                                <!-- Add Pagination -->
+                                <div class="swiper-pagination" v-show="getGroupMenu(floorData.floorImageList, floorData.floorContent.templateType).length > 1"></div>
+                                <!-- Add Navigation -->
+                                <div class="swiper-button-prev swiper-button-white cm-none"></div>
+                                <div class="swiper-button-next swiper-button-white cm-none"></div>
+                            </div>
+                        </div>
+                    </div>
+                    <!--          模板346-->
+                    <div class="cm-row"
+                         v-show="isMobile && fetchTemplate([3,4,6],floorData.floorContent.templateType)">
+                        <div class="fold-box cm-clearfix"
+                             :data-floor-type="floorData.floorContent.templateType + '-' + index">
+                            <div
+                                    class="cm-col-md-30"
+                                    :class="floorData.floorContent.templateType == 6 ? 'cm-col-xs-30' : 'cm-col-xs-60'"
+                                    v-for="(item, item_index) in makeList(floorData,index)"
+                                    :key="item_index"
+                            >
+                                <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
+                                    <div class="cm-p-a-4">
+                                        <!-- 3 -->
+                                        <div
+                                                class="cm-article-item h200 bg-white cm-p-a-8 cm-flex-j-between"
+                                                v-if="floorData.floorContent.templateType == 3"
+                                        >
+                                            <div class="cm-left cm-article-cover cover-168-168">
+                                                <img width="100%" height="100%" :src="item.appletsImage"
+                                                     :alt="item.name" v-if="isMobile"/>
+                                                <img width="100%" height="100%" :src="item.image" :alt="item.name"
+                                                     v-else/>
+                                            </div>
+                                            <div class="cm-right cm-article-content cm-p-l-8 cm-flex-1">
+                                                <div class="cm-article-title cm-m-b-10 cm-text-ellipsis-1">
+                                                    {{item.name}}
+                                                </div>
+                                                <div class="cm-line"></div>
+                                                <div class="cm-article-desc cm-m-t-10 cm-text-ellipsis-4">
+                                                    {{item.content}}
+                                                </div>
+                                            </div>
+                                        </div>
+                                        <!-- 4 6  -->
+                                        <div class="cm-article-item bg-white" v-else>
+                                            <div class="cm-article-cover aspect">
+                                                <img width="100%" height="100%" :src="item.appletsImage"
+                                                     :alt="item.name" v-if="isMobile"/>
+                                                <img width="100%" height="100%" :src="item.image" :alt="item.name"
+                                                     v-else/>
+                                            </div>
+                                            <div class="cm-article-title has-border cm-m-t-8 cm-m-r-8 cm-m-b-8 cm-p-l-6 cm-text-ellipsis-1">
+                                                {{item.name}}
+                                            </div>
+                                            <div class="cm-m-a-8">
+                                                <div class="cm-article-desc cm-text-ellipsis-2 h56">{{item.content}}
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </a>
+                            </div>
+                        </div>
+                        <!-- 查看更多 v-if="showToggleBtn(floorData,index)"-->
+                        <div class="cm-btn-box cm-p-t-12" v-if="showToggleBtn(floorData,index)">
+                            <div
+                                    class="cm-toggle-btn"
+                                    :class="toggleState(floorData.floorContent.templateType, index) ? 'up':'down'"
+                                    @click="toggleMore(floorData.floorContent.templateType, index)"
+                            >
+                                查看更多
+                            </div>
+                        </div>
+                    </div>
+                    <!-- 列表式 mobile 8 10 -->
+                    <div class="cm-row" v-show="fetchTemplate([8,10],floorData.floorContent.templateType) && isMobile">
+                        <div class="fold-box cm-clearfix"
+                             :data-floor-type="floorData.floorContent.templateType + '-' + index">
+                            <div class="cm-col-md-30 cm-col-xs-60">
+                                <div class="cm-p-a-4" v-for="(item, item_index) in makeList(floorData,index)"
+                                     :key="item_index">
+                                    <div class="bg-white aspect"
+                                         :data-scalc="getImageScalcMap('10').scalc">
+                                        <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
+                                            <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
+                                                 v-if="isMobile"/>
+                                            <img width="100%" height="100%" :src="item.image" alt="" v-else/>
+                                        </a>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                        <!-- 查看更多 v-if="showToggleBtn(floorData,index)"-->
+                        <div class="cm-btn-box cm-p-t-12" v-if="showToggleBtn(floorData,index)">
+                            <div
+                                    class="cm-toggle-btn"
+                                    :class="toggleState(floorData.floorContent.templateType, index) ? 'up':'down'"
+                                    @click="toggleMore(floorData.floorContent.templateType, index)"
+                            >
+                                查看更多
+                            </div>
+                        </div>
+                    </div>
+                    <!-- 左右滑动式 mobile 7 27 31-->
+                    <div class="cm-row" v-show="fetchTemplate([7,27,31],floorData.floorContent.templateType) && isMobile">
+                        <div class="cm-p-a-4">
+                            <div class="cm-scroll-container">
+                                <div class="cm-scroll-item" v-for="(item, item_index) in floorData.floorImageList"
+                                     :key="item_index">
+                                    <div class="bg-white aspect cm-relative"
+                                         :data-scalc="getImageScalcMap('10').scalc">
+                                        <div v-if="fetchTemplate([31],floorData.floorContent.templateType)" @click="onPlayVideo(item.link)">
+                                            <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
+                                                 v-if="isMobile"/>
+                                            <img width="100%" height="100%" :src="item.image" alt="" v-else/>
+                                            <div class="has-player"
+                                                 v-if="floorData.floorContent.templateClassify == 4"></div>
+                                        </div>
+                                        <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)" v-else>
+                                            <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
+                                                 v-if="isMobile"/>
+                                            <img width="100%" height="100%" :src="item.image" alt="" v-else/>
+                                            <div class="has-player"
+                                                 v-if="floorData.floorContent.templateClassify == 4"></div>
+                                        </a>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </template>
+                <template v-if="fetchTemplate([7,8,10,27,29,31,33],floorData.floorContent.templateType)">
                     <!-- 轮播式 mobile(1 2 9) pc(全部)-->
                     <div
                             class="cm-row cm-relative cm-swiper"
-                            v-show="!isMobile || (fetchTemplate([1,2,9,26,28,29,30,32,33],floorData.floorContent.templateType) && isMobile)"
+                            v-show="!isMobile || (fetchTemplate([7,8,27,29,31,33],floorData.floorContent.templateType) && isMobile)"
                     >
                         <div class="cm-p-a-4">
-                            <template v-if="fetchTemplate([7,8,10],floorData.floorContent.templateType) && (floorList.length > 1)">
+                            <template v-if="fetchTemplate([7,8,10],floorData.floorContent.templateType)">
                                 <div class="cm-swiper-button-prev cm-absolute" @click="handlePrevClick(index)"></div>
                                 <div class="cm-swiper-button-next cm-absolute" @click="handleNextClick(index)"></div>
                             </template>
@@ -532,7 +706,7 @@
                                                 class="bg-white hover-class aspect cm-relative"
                                                 :data-scalc="getImageScalcMap(floorData.floorContent.templateType).scalc"
                                         >
-                                            <div v-if="fetchTemplate([30,31,32,33],floorData.floorContent.templateType)" @click="onPlayVideo(item.link)">
+                                            <div v-if="fetchTemplate([31,33],floorData.floorContent.templateType)" @click="onPlayVideo(item.link)">
                                                 <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
                                                      v-if="isMobile"/>
                                                 <img width="100%" height="100%" :src="item.image" alt="" v-else/>
@@ -551,7 +725,7 @@
                                 </div>
                                 <!-- Add Pagination -->
                                 <div class="swiper-pagination"
-                                     v-show="(isMobile || !fetchTemplate([7,8,10],floorData.floorContent.templateType)) && (floorList.length > 1)"></div>
+                                     v-show="(isMobile || !fetchTemplate([7,8,10],floorData.floorContent.templateType)) && floorData.floorImageList.length > 4"></div>
                                 <!-- Add Navigation -->
                                 <div class="swiper-button-prev swiper-button-white cm-none"></div>
                                 <div class="swiper-button-next swiper-button-white cm-none"></div>
@@ -621,7 +795,64 @@
                     <!-- 轮播式 && tab切换 22 24 25 -->
                     <!-- 选项卡 -->
                     <div class="cm-row"
-                         v-show="!isMobile || (fetchTemplate([22,24,25],floorData.floorContent.templateType) && isMobile)">
+                         v-if="fetchTemplate([22,24,25],floorData.floorContent.templateType)">
+                        <div class="cm-p-a-4">
+                            <div class="cm-relative cm-swiper">
+                                <template v-for="(i,i_index) in 3">
+                                    <div v-show="currentVideoSwiper(floorData.floorContent.templateType,index) === i_index">
+                                        <div
+                                                class="swiper-container"
+                                                :id="'swiper-template-' + index + '-' + floorData.floorContent.templateType + '-' + i_index"
+                                                :data-swiper-type="getImageScalcMap('10').swiper"
+                                        >
+                                            <div class="swiper-wrapper">
+                                                <div
+                                                        class="swiper-slide"
+                                                        v-for="(item, item_index) in getGroupMenu(floorData[getFloorImageListType(i_index)], floorData.floorContent.templateType)"
+                                                        :key="item_index"
+                                                >
+                                                    <div :class="'slide-template-' + floorData.floorContent.templateType" class="template-rows-2" :style="{display: 'grid', gridTemplateRows: 'repeat(2, 1fr)', gridTemplateColumns: `repeat(${gridTemplateColumns[floorData.floorContent.templateType]}, 1fr)`, gridGap: '16px'}">
+                                                        <template v-for="i in item" :key="i.id">
+                                                            <div
+                                                                    class="bg-white aspect cm-relative"
+                                                                    :data-scalc="getVideoScalcMap(floorData.floorContent.templateType).scalc"
+                                                            >
+                                                                <a :target="i.link ? '_blank' : ''" :href="reallink(i.link)">
+                                  <span
+                                          class="cm-cover-tag color1 cm-absolute cm-top-right"
+                                          v-if="makeVideoStatus(floorData,i_index + 1) === 2"
+                                  >已结束</span
+                                  >
+                                                                    <span
+                                                                            class="cm-cover-tag color2 cm-absolute cm-top-right"
+                                                                            v-if="makeVideoStatus(floorData,i_index + 1) === 0"
+                                                                    >未开始</span
+                                                                    >
+                                                                    <span
+                                                                            class="cm-cover-tag color3 cm-absolute cm-top-right"
+                                                                            v-if="makeVideoStatus(floorData,i_index + 1) === 1"
+                                                                    >已开始</span
+                                                                    >
+                                                                    <img :src="isMobile ? i.appletsImage : i.image" width="100%" height="100%"  @click="handleClick(i)"/>
+                                                                </a>
+                                                            </div>
+                                                        </template>
+                                                    </div>
+                                                </div>
+                                            </div>
+                                            <!-- Add Pagination -->
+                                            <div class="swiper-pagination" v-if="getGroupMenu(floorData[getFloorImageListType(i_index)], floorData.floorContent.templateType).length > 1"></div>
+                                            <!-- Add Navigation -->
+                                            <div class="swiper-button-prev swiper-button-white cm-none"></div>
+                                            <div class="swiper-button-next swiper-button-white cm-none"></div>
+                                        </div>
+                                    </div>
+                                </template>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="cm-row"
+                         v-if="!isMobile && floorData.floorContent.templateType == 23">
                         <div class="cm-p-a-4">
                             <div class="cm-relative cm-swiper">
                                 <template v-for="(i,i_index) in 3">
@@ -666,7 +897,7 @@
                                                 </div>
                                             </div>
                                             <!-- Add Pagination -->
-                                            <div class="swiper-pagination"></div>
+                                            <div class="swiper-pagination" v-show="floorData[getFloorImageListType(i_index)].length > 4"></div>
                                             <!-- Add Navigation -->
                                             <div class="swiper-button-prev swiper-button-white cm-none"></div>
                                             <div class="swiper-button-next swiper-button-white cm-none"></div>

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

@@ -76,8 +76,8 @@
   <div class="advertisement" th:if="${#arrays.length(ads)} > 0 and ${isSelectInfo}">
     <van-swipe class="my-swipe" :autoplay="3000" indicator-color="white">
       <van-swipe-item class="advertisement-link" th:each="ad : ${ads}">
-        <a th:href="${ad.link}">
-          <img th:src="${ad.image}" th:alt="${ad.title}" class="advertisement-img"/>
+        <a th:href="${ad.link}" target="_blank">
+          <img th:src="${ad.image}" th:alt="${ad.title}" class="advertisement-img" th:onclick="handleAdvHits([[${ad}]])"/>
         </a>
       </van-swipe-item>
     </van-swipe>
@@ -110,5 +110,6 @@
     </div>
   </div>
 </div>
+
 </body>
 </html>

+ 2 - 2
src/main/resources/templates/article/components/article-sidebar.html

@@ -75,8 +75,8 @@
 <div v-if="isPC" class="other" th:if="${isSelectInfo}">
     <el-carousel :autoplay="true" :height="isPC ? '343px' : '61.6vw'" :interval="3000">
         <el-carousel-item th:each="ad : ${ads}" class="tui-img">
-            <a class="tui-img" th:href="${ad.link}" @click="clickAD(ad.id,ad.link)">
-                <img th:src="${ad.image}" th:alt="${ad.title}">
+            <a class="tui-img" th:href="${ad.link}" @click="clickAD(ad.id,ad.link)" target="_blank">
+                <img th:src="${ad.image}" th:alt="${ad.title}" th:onclick="handleAdvHits([[${ad}]])"/>
             </a>
         </el-carousel-item>
     </el-carousel>

+ 11 - 25
src/main/resources/templates/article/list.html

@@ -31,7 +31,7 @@
             <van-swipe class="my-swipe" :autoplay="3000" indicator-color="white">
                 <van-swipe-item th:each="type: ${articleImages}" th:if="${type.levelType} == 1 and ${type.headAppBanner} and ${type.appStatus} == 1">
                     <a target="_blank" th:href="${type.jumpLink}">
-                        <img th:src="${type.headAppBanner}" />
+                        <img th:src="${type.headAppBanner}" th:onclick="handleSwiperHits([[${type}]])" />
                     </a>
                 </van-swipe-item>
             </van-swipe>
@@ -41,7 +41,7 @@
                 <van-swipe class="my-swipe" :autoplay="3000" indicator-color="white">
                     <van-swipe-item th:each="type: ${articleImages}" th:if="${type.levelType} == 2 and ${type.headAppBanner} and ${type.appStatus} == 1">
                         <a target="_blank" th:href="${type.jumpLink}">
-                            <img th:src="${type.headAppBanner}" />
+                            <img th:src="${type.headAppBanner}" th:onclick="handleSwiperHits([[${type}]])"/>
                         </a>
                     </van-swipe-item>
                 </van-swipe>
@@ -50,7 +50,7 @@
                 <van-swipe class="my-swipe" :autoplay="3000" indicator-color="white">
                     <van-swipe-item th:each="type: ${articleImages}" th:if="${type.levelType} == 3 and ${type.headAppBanner} and ${type.appStatus} == 1">
                         <a target="_blank" th:href="${type.jumpLink}">
-                            <img th:src="${type.headAppBanner}" />
+                            <img th:src="${type.headAppBanner}" th:onclick="handleSwiperHits([[${type}]])"/>
                         </a>
                     </van-swipe-item>
                 </van-swipe>
@@ -73,9 +73,9 @@
             <div class="info-banner PcBanner" th:if="${isSearch} and ${articleImages}">
                 <div class="banner">
                     <el-carousel :autoplay="true" show-indicators="false">
-                        <el-carousel-item th:each="type: ${articleImages}" th:if="${type.levelType} == 1 and ${type.headPcBanner} and ${type.appStatus} == 1">
+                        <el-carousel-item th:each="type: ${articleImages}" th:if="${type.levelType} == 1 and ${type.headPcBanner} and ${type.pcStatus} == 1">
                             <a target="_blank" th:href="${type.jumpLink}">
-                                <img th:src="${type.headPcBanner}" />
+                                <img th:src="${type.headPcBanner}" th:onclick="handleSwiperHits([[${type}]])"/>
                             </a>
                         </el-carousel-item>
                     </el-carousel>
@@ -83,37 +83,23 @@
                 <div class="sider-banner">
                     <div>
                         <el-carousel :autoplay="true" show-indicators="false">
-                            <el-carousel-item v-for="(item, index) in 5" :key="index">
-                                <a target="_blank">
-                                    {{item}}
+                            <el-carousel-item th:each="type: ${articleImages}" th:if="${type.levelType} == 2 and ${type.headPcBanner} and ${type.pcStatus} == 1">
+                                <a target="_blank" th:href="${type.jumpLink}">
+                                    <img th:src="${type.headPcBanner}" th:onclick="handleSwiperHits([[${type}]])"/>
                                 </a>
                             </el-carousel-item>
                         </el-carousel>
                     </div>
                     <div>
                         <el-carousel :autoplay="true" show-indicators="false">
-                            <el-carousel-item v-for="(item, index) in 5" :key="index">
-                                <a target="_blank">
-                                    {{item}}
+                            <el-carousel-item th:each="type: ${articleImages}" th:if="${type.levelType} == 3 and ${type.headPcBanner} and ${type.pcStatus} == 1">
+                                <a target="_blank" th:href="${type.jumpLink}">
+                                    <img th:src="${type.headPcBanner}" th:onclick="handleSwiperHits([[${type}]])"/>
                                 </a>
                             </el-carousel-item>
                         </el-carousel>
                     </div>
                 </div>
-<!--                <div class="banner" th:each="type: ${articleImages}" th:if="${type.levelType} == 1 and ${type.headPcBanner}" >-->
-<!--                    <a th:href="${type.jumpLink}" th:if="${type.jumpStatus} == 2">-->
-<!--                        <img th:src="${type.headPcBanner}" style="width: 100%;height: 100%;" />-->
-<!--                    </a>-->
-<!--                    <img th:src="${type.headPcBanner}" style="width: 100%;height: 100%;" th:if="${type.jumpStatus} == 0"/>-->
-<!--                </div>-->
-<!--                <div class="sider-banner">-->
-<!--                    <div th:each="type: ${articleImages}" th:if="${type.levelType} == 2 and ${type.headPcBanner}">-->
-<!--                        <a th:href="${type.jumpLink}" th:if="${type.jumpStatus} == 2">-->
-<!--                            <img th:src="${type.headPcBanner}" style="width: 100%;height: 100%;" />-->
-<!--                        </a>-->
-<!--                        <img th:src="${type.headPcBanner}" style="width: 100%;height: 100%;" th:if="${type.jumpStatus} == 0"/>-->
-<!--                    </div>-->
-<!--                </div>-->
             </div>
             <!--    精选文章推荐-->
             <div class="featured-Articles" id="featured-Articles" th:if="${isSearch} and ${#arrays.length(infoSelected)} > 0">

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

@@ -3,6 +3,7 @@
       xsi:schemaLocation="https://www.thymeleaf.org ">
 <head>
     <meta charset="UTF-8"/>
+    <meta name="referrer" content="never">
     <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
     <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=0"/>
     <title>采美百科-百科详情</title>
@@ -21,8 +22,8 @@
 
 <main id="bk-page-container">
     <div class="bk-banner">
-        <img src="/img/encyclopedia/assets/pc-banner-detail.png" alt="采美百科" class="only-pc"/>
-        <img src="/img/encyclopedia/assets/h5-banner-detail.png" alt="采美百科" class="only-mobile"/>
+        <img th:src="${baikeproduct.banner}" alt="采美百科" class="only-pc"/> //  || '/img/encyclopedia/assets/pc-banner-detail.png'
+        <img th:src="${baikeproduct.banner}" alt="采美百科" class="only-mobile"/> //  || '/img/encyclopedia/assets/h5-banner-detail.png'
         <div class="bk-container only-pc">
             <div class="bk-name" th:text="${baikeproduct.name}"></div>
         </div>

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

@@ -602,7 +602,7 @@
                 <span :class="tabsIndex == 1 ? 'on' : ''" th:if="${null!=params && params.size()>0}" v-if="!isNoneDisabled" @click="detailsClicktab(1)">相关参数</span>
                 <span :class="tabsIndex == 2 ? 'on' : ''" v-if="isServiceInfo && !isNoneDisabled" @click="detailsClicktab(2)">服务项目</span>
                 <span :class="tabsIndex == 3 ? 'on' : ''" v-if="isTrainingMethod" @click="detailsClicktab(3)">培训方案</span>
-                <span v-if="archiveId !== 0" :class="tabsIndex == 4 ? 'on' : ''" @click="detailsClicktab(4)">相关资料</span>
+                <span v-if="archiveId !== 0 && GLOBAL_USER_IDENTITY !== 3" :class="tabsIndex == 4 ? 'on' : ''" @click="detailsClicktab(4)">相关资料</span>
                 <span :class="tabsIndex == 5 ? 'on' : ''" v-if="isQualificationImg" @click="detailsClicktab(5)">商品资质</span>
                 <!--<span>评价</span>-->
             </div>

+ 1057 - 826
src/main/resources/templates/quickOperation/index.html

@@ -1,826 +1,1057 @@
-<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></title>
-  <meta charset="utf-8"/>
-  <meta name="referrer" content="never">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
-  <template th:replace="components/head-link"></template>
-  <link href="/css/activity/normalize.css" rel="stylesheet" type="text/css">
-  <link rel="stylesheet" href="/css/activity/swiper.min.css"/>
-  <link th:href="@{/css/quickOperation/index.css(v=${version})}" rel="stylesheet" type="text/css">
-  <template th:replace="components/analysis"></template>
-  <link th:href="@{/css/base/floor.css(v=${version})}" rel="stylesheet" type="text/css">
-</head>
-<body>
-<input type="hidden" th:value="${coreServer}" id="coreServer">
-<input type="hidden" th:value="${agent}" id="userAgent">
-<!-- 引用头部 -->
-<template th:replace="components/header"></template>
-<div id="app">
-  <!-- 大图 -->
-  <div class="banner-container">
-    <a :href="pageInfo && pageInfo.headLink" class="banner">
-      <img :src="pageInfo && pageInfo.crmHeadImage" alt="" v-if="isMobile"/>
-      <img :src="pageInfo && pageInfo.headImage" alt="" v-else/>
-    </a>
-  </div>
-  <template v-for="(floorData,index) in floorList">
-    <div class="cm-floor">
-      <div class="cm-container">
-        <!-- 楼层标题 -->
-        <div
-                class="cm-row cm-floor-title cm-p-l-4 cm-m-b-4"
-                :class="fetchTemplate([22,23,24,25],floorData.floorContent.templateType)?['cm-p-r-4','cm-relative']:''"
-        >
-          <div :class="fetchTemplate([22,23,24,25],floorData.floorContent.templateType)?['cm-col-md-40', 'cm-col-xs-36']:''">
-            <div class="cm-title cm-text-ellipsis-1">{{floorData.title}}</div>
-            <div class="cm-subtitle cm-text-ellipsis-1">{{floorData.detail}}</div>
-          </div>
-          <div
-                  class="cm-tabs cm-p-t-12 cm-absolute cm-bottom-right"
-                  v-if="fetchTemplate([22,23,24,25],floorData.floorContent.templateType)"
-          >
-            <div class="cm-tab-content cm-p-r-4">
-              <div
-                      class="cm-tab"
-                      :class="{on:currentVideoSwiper(floorData.floorContent.templateType,index) === 0}"
-                      @click="handleTabClick(floorData.floorContent.templateType,index,0)"
-              >
-                <span>{{floorData.floorContent.displayDate1 | tabTime}}</span>
-              </div>
-              <div
-                      class="cm-tab"
-                      :class="{on:currentVideoSwiper(floorData.floorContent.templateType,index) === 1}"
-                      @click="handleTabClick(floorData.floorContent.templateType,index, 1)"
-              >
-                <span>{{floorData.floorContent.displayDate2 | tabTime}}</span>
-              </div>
-              <div    v-if="floorData.floorContent.templateType !== '25'"
-                      class="cm-tab"
-                      :class="{on:currentVideoSwiper(floorData.floorContent.templateType,index) === 2}"
-                      @click="handleTabClick(floorData.floorContent.templateType,index, 2)"
-              >
-                <span>{{floorData.floorContent.displayDate3 | tabTime}}</span>
-              </div>
-            </div>
-          </div>
-        </div>
-        <!-- 商品楼层11-21 -->
-        <template v-if="fetchTemplate([11,12,13,14,15,16,17,18,19,20,21],floorData.floorContent.templateType)">
-          <!-- 轮播图 -->
-          <div class="cm-row cm-relative cm-swiper" v-if="floorData.floorContent.templateType == 21">
-            <div class="cm-p-a-4">
-              <div class="swiper-container" :id="'swiper-template-' + index" data-swiper-type="1-6-2-2">
-                <div class="swiper-wrapper">
-                  <div class="swiper-slide" v-for="(pros , index) in floorData.floorImageList">
-                    <a :target="pros.link ? '_blank' : ''" :href="reallink(pros.link)">
-                      <div class="cm-product-item hover-class bg-white">
-                        <div class="aspect">
-                          <img width="100%" height="100%" src="/img/activity/placeholder.png"
-                               :data-original="pros.image" alt=""/>
-                        </div>
-                        <div class="cm-p-l-8 cm-p-r-8 cm-p-t-8 cm-p-b-4">
-                          <div class="cm-tags cm-p-b-2">
-                            <span class="cm-tag color1" v-if="pros.listType == 2">{{ pros.label }}</span>
-                          </div>
-                          <div class="cm-product-title cm-text-ellipsis-2 h44">
-                                                        <span class="cm-meibohui-tag"
-                                                              v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</span>
-                            {{pros.name}}
-                          </div>
-                          <div class="cm-tags cm-p-t-2 cm-p-b-2 h20">
-                            <!--                                                        <span class="cm-tag color2" v-if="pros.product.couponsLogo">优惠券</span>-->
-                            <span class="cm-tag color3" v-if="pros.listType == 2">{{ pros.label }}</span>
-                            <template v-if="(pros.product.productCategory == 1 && params.userId>0) || GLOBAL_USER_ID && GLOBAL_USER_ID>0">
-                                                            <span class="cm-tag color3" v-if="pros.product.actStatus==1">
-                                                              {{pros.product.promotions.name}}
-                                                              <span class="red" v-if="pros.priceFlag != 1 && PromotionsFormat(pros.product.promotions)">:¥{{pros.product.price | NumFormat}}</span>
-                                                            </span>
-                            </template>
-                          </div>
-                          <div class="cm-prodcut-price h24">
-                            <div class="pro-price" v-if="pros.listType == 1">
-                              <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
-                                <template v-if="pros.product.productCategory==1">
-                                  <!-- 样式1 价格未公开-->
-                                  <template v-if="pros.product.priceFlag==1">
-                                    <div class="price-tag cm-left"></div>
-                                    <div class="price cm-left">¥价格未公开</div>
-                                  </template>
-                                  <template v-else>
-                                    <!-- 样式2-->
-                                    <template  v-if="(pros.product.priceFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                      <div class="price-tag cm-left"></div>
-                                      <div class="price cm-left"
-                                           :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                                <span class="red">
-                                                                                  ¥{{(PromotionsFormat(pros.product.promotions) ? pros.product.originalPrice
-                                                                                  : pros.product.price) | NumFormat }}
-                                                                                </span>
-                                      </div>
-                                    </template>
-                                    <!-- 样式3 -->
-                                    <template v-else-if="pros.product.priceFlag==2 && pros.product.userIdentity==4 && GLOBAL_VIP_FLAG!=1">
-                                      <div class="price-tag cm-left"></div>
-                                      <div class="price cm-left">
-                                        <span>¥会员可见</span></div>
-                                    </template>
-                                    <!-- 样式4 -->
-                                    <template v-else>
-                                      <div class="price-tag cm-left"></div>
-                                      <div class="price cm-left">
-                                        <span>¥</span>
-                                        <span class="p-icon" :class="'i'+pros.product.priceGrade"></span>
-                                      </div>
-                                    </template>
-                                  </template>
-                                </template>
-                                <!-- 样式5 -->
-                                <template v-else>
-                                  <div class="price-tag cm-left"></div>
-                                  <div class="price"  v-if="pros.product.detailTalkFlag == '2'">¥价格详聊</div>
-                                  <div class="price cm-left" v-else>
-                                    <span class="red">¥{{ pros.product.price | NumFormat }}</span>
-                                  </div>
-                                </template>
-                              </template>
-                              <template v-else>
-                                <!-- 样式6 -->
-                                <template v-if="pros.product.productCategory == 1">
-                                  <div class="price-tag cm-left" v-if="params.userId>0"></div>
-                                  <div class="price cm-left ">
-                                    <span>¥</span>
-                                    <span class="p-icon" :class="'i'+pros.product.priceGrade"></span>
-                                  </div>
-                                </template>
-                                <!-- 样式7 -->
-                                <template v-else>
-                                  <div class="price-tag cm-left"></div>
-                                  <div class="price  cm-left"><span>¥登录可见</span></div>
-                                </template>
-                              </template>
-                            </div>
-                          </div>
-                        </div>
-                      </div>
-                    </a>
-                  </div>
-                </div>
-                <!-- Add Pagination -->
-                <div class="swiper-pagination"></div>
-                <!-- Add Navigation -->
-                <div class="swiper-button-prev swiper-button-white cm-none"></div>
-                <div class="swiper-button-next swiper-button-white cm-none"></div>
-              </div>
-            </div>
-          </div>
-          <!-- 普通列表 -->
-          <div class="cm-row" v-else>
-            <div class="fold-box cm-clearfix"
-                 :data-floor-type="floorData.floorContent.templateType + '-' + index">
-              <!-- banner -->
-              <template v-for="(i,index) in 5">
-                <div
-                        class="cm-p-a-4"
-                        :class="[ 'cm-col-md-'+ getProductScalcMap(floorData.floorContent.templateType).col[index],  'cm-col-xs-'+ getProductScalcMap(floorData.floorContent.templateType).col[index]]"
-                        v-if="floorData.floorContent['pcAdsImage' + (index + 1)] && floorData.floorContent.templateType != 20"
-                >
-                  <div class="aspect"
-                       :data-scalc="getProductScalcMap(floorData.floorContent.templateType).scalc[index]">
-                    <a :target="floorData.floorContent['adsLink' + (index + 1)] ? '_blank' : ''"
-                       :href="reallink(floorData.floorContent['adsLink' + (index + 1)])">
-                      <img
-                              width="100%"
-                              height="100%"
-                              :src="floorData.floorContent['appletsAdsImage' + (index + 1)]"
-                              alt="/banner.jpg"
-                              v-if="isMobile && floorData.floorContent['appletsAdsImage' + (index + 1)]"
-                      />
-                      <img
-                              width="100%"
-                              height="100%"
-                              :src="floorData.floorContent['pcAdsImage' + (index + 1)]"
-                              alt="/banner.jpg"
-                              v-if="!isMobile && floorData.floorContent['pcAdsImage' + (index + 1)]"
-                      />
-                    </a>
-                  </div>
-                </div>
-              </template>
-              <!-- banner END -->
-              <div class="cm-col-md-10 cm-col-xs-30" v-for="(pros , index) in makeList(floorData,index)">
-                <div class="cm-p-a-4">
-                  <a :target="pros.link ? '_blank' : ''" :href="pros.link">
-                    <div class="cm-product-item hover-class bg-white">
-                      <div class="aspect">
-                        <img width="100%" height="100%" src="/img/activity/placeholder.png"
-                             :data-original="pros.image" alt=""/>
-                      </div>
-                      <div class="cm-p-l-8 cm-p-r-8 cm-p-t-8 cm-p-b-4">
-                        <div class="cm-tags cm-p-b-2">
-                          <span class="cm-tag color1" v-if="pros.listType == 2">{{ pros.label }}</span>
-                        </div>
-                        <div class="cm-product-title cm-text-ellipsis-2 h44">
-                                                    <span class="cm-meibohui-tag"
-                                                          v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</span>
-                          {{pros.name}}
-                        </div>
-                        <div class="cm-tags cm-p-t-2 cm-p-b-2 h20">
-                          <!--                                                     <span class="cm-tag color3" v-if="pros.product.couponsLogo">优惠券</span>-->
-                          <span class="cm-tag color2" v-if="pros.listType == 2">{{ pros.label }}</span>
-                          <template v-if="(pros.product.productCategory == 1 && params.userId>0) || GLOBAL_USER_ID && GLOBAL_USER_ID>0">
-                                                        <span class="cm-tag color3" v-if="pros.product.actStatus==1">
-                                                          {{pros.product.promotions.name}}
-                                                          <span class="red" v-if="pros.priceFlag != 1 && PromotionsFormat(pros.product.promotions)">:¥{{pros.product.price | NumFormat}}</span>
-                                                        </span>
-                          </template>
-                        </div>
-                        <div class="cm-prodcut-price h24">
-                          <div class="pro-price cm-clearfix" v-if="pros.listType == 1">
-                            <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
-                              <template v-if="pros.product.productCategory == 1">
-                                <!-- 样式1 价格未公开-->
-                                <template v-if="pros.product.priceFlag == 1">
-                                  <div class="price-tag cm-left"></div>
-                                  <div class="price cm-left">¥价格未公开</div>
-                                </template>
-                                <template v-else>
-                                  <!-- 样式2-->
-                                  <template v-if="(pros.product.priceFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
-                                    <div class="price-tag  cm-left"></div>
-                                    <div class="price  cm-left" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
-                                                                                <span class="red">
-                                                                                  ¥{{(PromotionsFormat(pros.product.promotions) ? pros.product.originalPrice
-                                                                                  : pros.product.price) | NumFormat }}
-                                                                                </span>
-                                    </div>
-                                  </template>
-                                  <!-- 样式3 -->
-                                  <template v-else-if="pros.product.priceFlag==2 && pros.product.userIdentity==4 && GLOBAL_VIP_FLAG!=1">
-                                    <div class="price-tag cm-left" v-if="pros.product.actStatus==1"></div>
-                                    <div class="price cm-left"><span>¥会员可见</span></div>
-                                  </template>
-                                  <!-- 样式4 -->
-                                  <template v-else>
-                                    <div class="price-tag cm-left" v-if="pros.product.actStatus==1"></div>
-                                    <div class="price cm-left"><span>¥</span>
-                                      <span class="p-icon" :class="'i'+pros.product.priceGrade"></span>
-                                    </div>
-                                  </template>
-                                </template>
-                              </template>
-                              <!-- 样式5 -->
-                              <template v-else>
-                                <div class="price-tag cm-left"></div>
-                                <div class="price"  v-if="pros.product.detailTalkFlag == '2'">¥价格详聊</div>
-                                <div class="price cm-left" v-else>
-                                  <span class="red">¥{{ pros.product.price | NumFormat }}</span>
-                                </div>
-                              </template>
-                            </template>
-                            <template v-else>
-                              <!-- 样式6 -->
-                              <template v-if="pros.product.productCategory == 1">
-                                <div class="price-tag cm-left" v-if="params.userId>0"></div>
-                                <div class="price cm-left ">
-                                  <span>¥</span>
-                                  <span class="p-icon" :class="'i'+pros.product.priceGrade"></span>
-                                </div>
-                              </template>
-                              <!-- 样式7 -->
-                              <template v-else>
-                                <div class="price-tag cm-left"></div>
-                                <div class="price  cm-left"><span>¥登录可见</span></div>
-                              </template>
-                            </template>
-                          </div>
-
-                        </div>
-                      </div>
-                    </div>
-                  </a>
-                </div>
-              </div>
-              <template v-for="(i,index) in 5">
-                <div
-                        class="cm-p-a-4"
-                        :class="[ 'cm-col-md-'+ getProductScalcMap(floorData.floorContent.templateType).col[index],  'cm-col-xs-'+ getProductScalcMap(floorData.floorContent.templateType).col[index]]"
-                        v-if="floorData.floorContent.templateType == 20"
-                >
-                  <div class="aspect"
-                       :data-scalc="getProductScalcMap(floorData.floorContent.templateType).scalc[index]">
-                    <a :target="floorData.floorContent['adsLink' + (index + 1)] ? '_blank' : ''"
-                       :href="reallink(floorData.floorContent['adsLink' + (index + 1)])">
-                      <img
-                              width="100%"
-                              height="100%"
-                              :src="floorData.floorContent['appletsAdsImage' + (index + 1)]"
-                              alt="/banner.jpg"
-                              v-if="isMobile && floorData.floorContent['appletsAdsImage' + (index + 1)]"
-                      />
-                      <img
-                              width="100%"
-                              height="100%"
-                              :src="floorData.floorContent['pcAdsImage' + (index + 1)]"
-                              alt="/banner.jpg"
-                              v-if="!isMobile && floorData.floorContent['appletsAdsImage' + (index + 1)]"
-                      />
-                    </a>
-                  </div>
-                </div>
-              </template>
-            </div>
-            <div class="cm-btn-box cm-p-t-12" v-if="showToggleBtn(floorData,index)">
-              <div
-                      class="cm-toggle-btn"
-                      :class="toggleState(floorData.floorContent.templateType, index) ? 'up':'down'"
-                      @click="toggleMore(floorData.floorContent.templateType, index)"
-              >
-                查看更多
-              </div>
-            </div>
-          </div>
-        </template>
-        <!-- 文章楼层3-6 -->
-        <!-- fetchTemplate([3,4,5,6],floorData.floorContent.templateType) -->
-        <template v-if="fetchTemplate([3,4,5,6],floorData.floorContent.templateType)">
-          <!-- 轮播式 pc -->
-          <div class="cm-row cm-relative cm-swiper" v-show="!isMobile">
-            <div class="cm-p-a-4">
-              <template v-if="fetchTemplate([4,5],floorData.floorContent.templateType)">
-                <div class="cm-swiper-button-prev cm-absolute cm-pc-only"
-                     @click="handlePrevClick(index)"></div>
-                <div class="cm-swiper-button-next cm-absolute cm-pc-only"
-                     @click="handleNextClick(index)"></div>
-              </template>
-              <div
-                      class="swiper-container"
-                      :class="{'no-bottom':fetchTemplate([4,5],floorData.floorContent.templateType)}"
-                      :id="'swiper-template-' + index"
-                      :data-swiper-type="getArticleScalcMap(floorData.floorContent.templateType).swiper"
-              >
-                <div class="swiper-wrapper">
-                  <div class="swiper-slide" v-for="(item, item_index) in floorData.floorImageList"
-                       :key="item_index">
-                    <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
-                      <!-- 模板3 -->
-                      <div
-                              class="cm-article-item h200 bg-white cm-p-a-8 cm-flex-j-between"
-                              v-if="floorData.floorContent.templateType == 3"
-                      >
-                        <div class="cm-left cm-article-cover cover-168-168">
-                          <img width="100%" height="100%" :src="item.appletsImage"
-                               :alt="item.name" v-if="isMobile"/>
-                          <img width="100%" height="100%" :src="item.image" :alt="item.name"
-                               v-else/>
-                        </div>
-                        <div class="cm-right cm-article-content cm-p-l-8 cm-flex-1">
-                          <div class="cm-article-title cm-m-b-10 cm-text-ellipsis-1">
-                            {{item.name}}
-                          </div>
-                          <div class="cm-line"></div>
-                          <div class="cm-article-desc cm-m-t-10 cm-text-ellipsis-4">
-                            {{item.content}}
-                          </div>
-                        </div>
-                      </div>
-                      <!-- 模板4 5 6 -->
-                      <div class="cm-article-item bg-white" v-else>
-                        <div class="cm-article-cover aspect"
-                             :data-scalc="getArticleScalcMap(floorData.floorContent.templateType).scalc">
-                          <img width="100%" height="100%" :src="item.appletsImage"
-                               :alt="item.name" v-if="isMobile"/>
-                          <img width="100%" height="100%" :src="item.image" :alt="item.name"
-                               v-else/>
-                        </div>
-                        <div class="cm-article-title has-border cm-m-t-8 cm-m-r-8 cm-m-b-8 cm-p-l-6 cm-text-ellipsis-1">
-                          {{item.name}}
-                        </div>
-                        <div class="cm-m-a-8">
-                          <div class="cm-article-desc cm-text-ellipsis-2 h56">
-                            {{item.content}}
-                          </div>
-                        </div>
-                      </div>
-                    </a>
-                  </div>
-                </div>
-                <!-- Add Pagination -->
-                <div class="swiper-pagination"
-                     v-show="isMobile || !fetchTemplate([4,5],floorData.floorContent.templateType)"></div>
-                <!-- Add Navigation -->
-                <div class="swiper-button-prev swiper-button-white cm-none"></div>
-                <div class="swiper-button-next swiper-button-white cm-none"></div>
-              </div>
-            </div>
-          </div>
-          <!-- 列表式 mobile 3 4 6 -->
-          <div class="cm-row"
-               v-show="isMobile && fetchTemplate([3,4,6],floorData.floorContent.templateType)">
-            <div class="fold-box cm-clearfix"
-                 :data-floor-type="floorData.floorContent.templateType + '-' + index">
-              <div
-                      class="cm-col-md-30"
-                      :class="floorData.floorContent.templateType == 6 ? 'cm-col-xs-30' : 'cm-col-xs-60'"
-                      v-for="(item, item_index) in makeList(floorData,index)"
-                      :key="item_index"
-              >
-                <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
-                  <div class="cm-p-a-4">
-                    <!-- 3 -->
-                    <div
-                            class="cm-article-item h200 bg-white cm-p-a-8 cm-flex-j-between"
-                            v-if="floorData.floorContent.templateType == 3"
-                    >
-                      <div class="cm-left cm-article-cover cover-168-168">
-                        <img width="100%" height="100%" :src="item.appletsImage"
-                             :alt="item.name" v-if="isMobile"/>
-                        <img width="100%" height="100%" :src="item.image" :alt="item.name"
-                             v-else/>
-                      </div>
-                      <div class="cm-right cm-article-content cm-p-l-8 cm-flex-1">
-                        <div class="cm-article-title cm-m-b-10 cm-text-ellipsis-1">
-                          {{item.name}}
-                        </div>
-                        <div class="cm-line"></div>
-                        <div class="cm-article-desc cm-m-t-10 cm-text-ellipsis-4">
-                          {{item.content}}
-                        </div>
-                      </div>
-                    </div>
-                    <!-- 4 6  -->
-                    <div class="cm-article-item bg-white" v-else>
-                      <div class="cm-article-cover aspect"
-                           :data-scalc="getArticleScalcMap(floorData.floorContent.templateType).scalc">
-                        <img width="100%" height="100%" :src="item.appletsImage"
-                             :alt="item.name" v-if="isMobile"/>
-                        <img width="100%" height="100%" :src="item.image" :alt="item.name"
-                             v-else/>
-                      </div>
-                      <div class="cm-article-title has-border cm-m-t-8 cm-m-r-8 cm-m-b-8 cm-p-l-6 cm-text-ellipsis-1">
-                        {{item.name}}
-                      </div>
-                      <div class="cm-m-a-8">
-                        <div class="cm-article-desc cm-text-ellipsis-2 h56">{{item.content}}
-                        </div>
-                      </div>
-                    </div>
-                  </div>
-                </a>
-              </div>
-            </div>
-            <!-- 查看更多 v-if="showToggleBtn(floorData,index)"-->
-            <div class="cm-btn-box cm-p-t-12" v-if="showToggleBtn(floorData,index)">
-              <div
-                      class="cm-toggle-btn"
-                      :class="toggleState(floorData.floorContent.templateType, index) ? 'up':'down'"
-                      @click="toggleMore(floorData.floorContent.templateType, index)"
-              >
-                查看更多
-              </div>
-            </div>
-          </div>
-          <!-- 左右滑动式 mobile 5-->
-          <div class="cm-row" v-show="isMobile && floorData.floorContent.templateType == 5">
-            <div class="cm-p-a-4">
-              <div class="cm-scroll-container">
-                <div class="cm-scroll-item" v-for="(item, item_index) in floorData.floorImageList"
-                     :key="item_index">
-                  <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
-                    <div class="cm-article-item bg-white">
-                      <div class="cm-article-cover aspect"
-                           :data-scalc="getArticleScalcMap(floorData.floorContent.templateType).scalc">
-                        <img width="100%" height="100%" :src="item.appletsImage"
-                             :alt="item.name" v-if="isMobile"/>
-                        <img width="100%" height="100%" :src="item.image" :alt="item.name"
-                             v-else/>
-                      </div>
-                      <div class="cm-article-title has-border cm-m-t-8 cm-m-r-8 cm-m-b-8 cm-p-l-6 cm-text-ellipsis-1">
-                        {{item.name}}
-                      </div>
-                      <div class="cm-m-a-8">
-                        <div class="cm-article-desc cm-text-ellipsis-2 h56">{{item.content}}
-                        </div>
-                      </div>
-                    </div>
-                  </a>
-                </div>
-              </div>
-            </div>
-          </div>
-        </template>
-        <!-- 图片楼层1 2 7 8 9 10  -->
-        <!-- fetchTemplate([1,2,7,8,9,10],floorData.floorContent.templateType) -->
-        <template v-if="fetchTemplate([1,2,7,8,9,10,26,27,28,29,30,31,32,33],floorData.floorContent.templateType)">
-          <!-- 轮播式 mobile(1 2 9) pc(全部)-->
-          <div
-                  class="cm-row cm-relative cm-swiper"
-                  v-show="!isMobile || (fetchTemplate([1,2,9,26,28,29,30,32,33],floorData.floorContent.templateType) && isMobile)"
-          >
-            <div class="cm-p-a-4">
-              <template v-if="fetchTemplate([7,8,10],floorData.floorContent.templateType)">
-                <div class="cm-swiper-button-prev cm-absolute" @click="handlePrevClick(index)"></div>
-                <div class="cm-swiper-button-next cm-absolute" @click="handleNextClick(index)"></div>
-              </template>
-              <div
-                      class="swiper-container"
-                      :id="'swiper-template-' + index"
-                      :class="{'no-bottom':fetchTemplate([7,8,10],floorData.floorContent.templateType)}"
-                      :data-swiper-type="getImageScalcMap(floorData.floorContent.templateType).swiper"
-              >
-                <div class="swiper-wrapper">
-                  <div class="swiper-slide" v-for="(item, item_index) in floorData.floorImageList"
-                       :key="item_index">
-                    <div
-                            class="bg-white hover-class aspect cm-relative"
-                            :data-scalc="getImageScalcMap(floorData.floorContent.templateType).scalc"
-                    >
-                      <div v-if="fetchTemplate([30,31,32,33],floorData.floorContent.templateType)" @click="onPlayVideo(item.link)">
-                        <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
-                             v-if="isMobile"/>
-                        <img width="100%" height="100%" :src="item.image" alt="" v-else/>
-                        <div class="has-player"
-                             v-if="floorData.floorContent.templateClassify == 4"></div>
-                      </div>
-                      <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)" v-else>
-                        <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
-                             v-if="isMobile"/>
-                        <img width="100%" height="100%" :src="item.image" alt="" v-else/>
-                        <div class="has-player"
-                             v-if="floorData.floorContent.templateClassify == 4"></div>
-                      </a>
-                    </div>
-                  </div>
-                </div>
-                <!-- Add Pagination -->
-                <div class="swiper-pagination"
-                     v-show="isMobile || !fetchTemplate([7,8,10],floorData.floorContent.templateType)"></div>
-                <!-- Add Navigation -->
-                <div class="swiper-button-prev swiper-button-white cm-none"></div>
-                <div class="swiper-button-next swiper-button-white cm-none"></div>
-              </div>
-            </div>
-          </div>
-          <!-- 列表式 mobile 8 10 -->
-          <div class="cm-row" v-show="fetchTemplate([8,10],floorData.floorContent.templateType) && isMobile">
-            <div class="fold-box cm-clearfix"
-                 :data-floor-type="floorData.floorContent.templateType + '-' + index">
-              <div class="cm-col-md-30 cm-col-xs-60">
-                <div class="cm-p-a-4" v-for="(item, item_index) in makeList(floorData,index)"
-                     :key="item_index">
-                  <div class="bg-white aspect"
-                       :data-scalc="getImageScalcMap(floorData.floorContent.templateType).scalc">
-                    <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
-                      <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
-                           v-if="isMobile"/>
-                      <img width="100%" height="100%" :src="item.image" alt="" v-else/>
-                    </a>
-                  </div>
-                </div>
-              </div>
-            </div>
-            <!-- 查看更多 v-if="showToggleBtn(floorData,index)"-->
-            <div class="cm-btn-box cm-p-t-12" v-if="showToggleBtn(floorData,index)">
-              <div
-                      class="cm-toggle-btn"
-                      :class="toggleState(floorData.floorContent.templateType, index) ? 'up':'down'"
-                      @click="toggleMore(floorData.floorContent.templateType, index)"
-              >
-                查看更多
-              </div>
-            </div>
-          </div>
-          <!-- 左右滑动式 mobile 7 27 31-->
-          <div class="cm-row" v-show="fetchTemplate([7,27,31],floorData.floorContent.templateType) && isMobile">
-            <div class="cm-p-a-4">
-              <div class="cm-scroll-container">
-                <div class="cm-scroll-item" v-for="(item, item_index) in floorData.floorImageList"
-                     :key="item_index">
-                  <div class="bg-white aspect cm-relative"
-                       :data-scalc="getImageScalcMap(floorData.floorContent.templateType).scalc">
-                    <div v-if="fetchTemplate([31],floorData.floorContent.templateType)" @click="onPlayVideo(item.link)">
-                      <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
-                           v-if="isMobile"/>
-                      <img width="100%" height="100%" :src="item.image" alt="" v-else/>
-                      <div class="has-player"
-                           v-if="floorData.floorContent.templateClassify == 4"></div>
-                    </div>
-                    <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)" v-else>
-                      <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
-                           v-if="isMobile"/>
-                      <img width="100%" height="100%" :src="item.image" alt="" v-else/>
-                      <div class="has-player"
-                           v-if="floorData.floorContent.templateClassify == 4"></div>
-                    </a>
-                  </div>
-                </div>
-              </div>
-            </div>
-          </div>
-        </template>
-        <!-- 直播楼层22 23 24 25 -->
-        <!-- v-if="fetchTemplate([22,23,24,25],floorData.floorContent.templateType)" -->
-        <template v-if="fetchTemplate([22,23,24,25],floorData.floorContent.templateType)">
-          <!-- 轮播式 && tab切换 22 24 25 -->
-          <!-- 选项卡 -->
-          <div class="cm-row"
-               v-show="!isMobile || (fetchTemplate([22,24,25],floorData.floorContent.templateType) && isMobile)">
-            <div class="cm-p-a-4">
-              <div class="cm-relative cm-swiper">
-                <template v-for="(i,i_index) in 3">
-                  <div v-show="currentVideoSwiper(floorData.floorContent.templateType,index) === i_index">
-                    <div
-                            class="swiper-container"
-                            :id="'swiper-template-' + index + '-' + floorData.floorContent.templateType + '-' + i_index"
-                            :data-swiper-type="getVideoScalcMap(floorData.floorContent.templateType).swiper"
-                    >
-                      <div class="swiper-wrapper">
-                        <div
-                                class="swiper-slide"
-                                v-for="(item, item_index) in floorData[getFloorImageListType(i_index)]"
-                                :key="item_index"
-                        >
-                          <div
-                                  class="bg-white aspect cm-relative"
-                                  :data-scalc="getVideoScalcMap(floorData.floorContent.templateType).scalc"
-                          >
-                            <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
-																<span
-                                                                        class="cm-cover-tag color1 cm-absolute cm-top-right"
-                                                                        v-if="makeVideoStatus(floorData,i_index + 1) === 2"
-                                                                >已结束</span
-                                                                >
-                              <span
-                                      class="cm-cover-tag color2 cm-absolute cm-top-right"
-                                      v-if="makeVideoStatus(floorData,i_index + 1) === 0"
-                              >未开始</span
-                              >
-                              <span
-                                      class="cm-cover-tag color3 cm-absolute cm-top-right"
-                                      v-if="makeVideoStatus(floorData,i_index + 1) === 1"
-                              >已开始</span
-                              >
-                              <img width="100%" height="100%" :src="item.appletsImage"
-                                   alt="" v-if="isMobile"/>
-                              <img width="100%" height="100%" :src="item.image" alt=""
-                                   v-else/>
-                            </a>
-                          </div>
-                        </div>
-                      </div>
-                      <!-- Add Pagination -->
-                      <div class="swiper-pagination"></div>
-                      <!-- Add Navigation -->
-                      <div class="swiper-button-prev swiper-button-white cm-none"></div>
-                      <div class="swiper-button-next swiper-button-white cm-none"></div>
-                    </div>
-                  </div>
-                </template>
-              </div>
-            </div>
-          </div>
-          <!-- 左右滑动式 mobile 23-->
-          <div class="cm-row" v-show="isMobile && floorData.floorContent.templateType == 23">
-            <div class="cm-p-a-4">
-              <template v-for="(i,i_index) in 3">
-                <div class="cm-scroll-container"
-                     v-if="currentVideoSwiper(floorData.floorContent.templateType,index) === i_index">
-                  <div class="cm-scroll-item"
-                       v-for="(item, item_index) in floorData[getFloorImageListType(i_index)]">
-                    <div
-                            class="bg-white aspect cm-relative cm-radius-4"
-                            :data-scalc="getVideoScalcMap(floorData.floorContent.templateType).scalc"
-                    >
-                      <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
-                        <span class="cm-cover-tag color2 cm-absolute cm-top-right">已开始</span>
-                        <img width="100%" height="100%" :src="item.appletsImage" alt=""
-                             v-if="isMobile"/>
-                        <img width="100%" height="100%" :src="item.image" alt="" v-else/>
-                      </a>
-                    </div>
-                  </div>
-                </div>
-              </template>
-            </div>
-          </div>
-        </template>
-      </div>
-    </div>
-  </template>
-<!--   侧边浮窗-->
-  <div class="cm-float-container" v-if="activityEntryVisiable || contactVisiable">
-<!--    <a class="cm-regexp" href="/help/1038.html" target="_blank">优惠券<br />规则</a>-->
-    <div>
-      <div class="cm-slide" v-show="activityEntryVisiable">
-        <div class="cm-toggle-btn" @click="handleToggleActive(true)"></div>
-      </div>
-      <template v-if="contactVisiable">
-        <div class="cm-slide">
-          <div class="cm-toggle-btn"></div>
-          <div class="cm-tooltop">
-            <div class="cm-tooltop-content cm-tooltop-1">
-              <div class="cm-item">展会咨询电话:15338897365</div>
-              <i></i>
-              <div class="cm-item">客服咨询电话:15338851365</div>
-            </div>
-          </div>
-        </div>
-        <div class="cm-slide">
-          <div class="cm-toggle-btn"></div>
-          <div class="cm-tooltop cm-mobile-tooltop">
-            <div class="cm-tooltop-content cm-tooltop-2 cm-clearfix">
-              <div class="cm-item cm-left">
-                <img width="108" height="108"
-                     src="https://static.caimei365.com/app/img/icon2/cm_wechat_02.png" alt=""/>
-                <span>展会咨询微信</span>
-              </div>
-              <div class="cm-left line"></div>
-              <div class="cm-item cm-left">
-                <img width="108" height="108"
-                     src="https://static.caimei365.com/app/img/icon2/cm_wechat_01.png" alt=""/>
-                <span>客服咨询微信</span>
-              </div>
-            </div>
-          </div>
-        </div>
-      </template>
-    </div>
-  </div>
-<!--   活动弹窗入口1-->
-<!--  <div class="cm-entry" v-show="activityEntryVisiable && isActive">-->
-<!--    <div id="cm-icon-content" class="cm-icon-content" onclick="_czc.push(['_trackEvent','云上美博会','红包弹窗点击','红包弹窗点击',1,'cm-icon-content'])">-->
-<!--      <span class="cm-close" @click="handleToggleActive(false)"></span>-->
-<!--      <div @click="handleToggleCoupon(false)" style="cursor: pointer">-->
-<!--        <a href="/info/detail-7657-1.html" target="_blank">-->
-<!--          <img src="https://static.caimei365.com/app/img/icon2/coupon-entry-h5.png" alt="" v-if="!isMobile"/>-->
-<!--          <img src="https://static.caimei365.com/app/img/icon2/coupon-entry-pc.png" alt="" v-else/>-->
-<!--        </a>-->
-<!--        &lt;!&ndash;                <img src="/img/activity/pc_entry.png" alt="" v-if="!isMobile"/>&ndash;&gt;-->
-<!--        &lt;!&ndash;                <img src="/img/activity/h5_entry.png" alt="" v-else/>&ndash;&gt;-->
-<!--      </div>-->
-<!--    </div>-->
-<!--  </div>-->
-
-<!--   活动弹窗入口2-->
-<!--  <div class="cm-entry" v-show="showCouponEntry">-->
-<!--    <div class="cm-icon-content" @click="handleToggleCoupon(false)" style="cursor: pointer">-->
-<!--      &lt;!&ndash;            <a href="/product-6898.html" id="conpun" target="_blank" onclick="_czc.push(['_trackEvent','云上美博会','优惠券弹窗点击','优惠券弹窗点击',1,'conpun'])"><span class="btn btn1"></span></a>&ndash;&gt;-->
-<!--      &lt;!&ndash;            <a href="/product/couponExp.html" id="conpunDetail" target="_blank" onclick="_czc.push(['_trackEvent','云上美博会','优惠券说明弹窗点击','优惠券说明弹窗点击',1,'conpunDetail'])"><span class="btn btn2"></span></a>&ndash;&gt;-->
-<!--      <span class="cm-close" @click.stop="handleToggleCoupon(false)"></span>-->
-<!--      &lt;!&ndash;            <img src="https://static.caimei365.com/app/img/icon2/coupon-entry-h5.png" alt="" v-if="!isMobile"/>&ndash;&gt;-->
-<!--      &lt;!&ndash;            <img src="https://static.caimei365.com/app/img/icon2/coupon-entry-pc.png" alt="" v-else/>&ndash;&gt;-->
-<!--      <a href="/info/detail-7657-1.html" target="_blank">-->
-<!--        <img src="https://static.caimei365.com/app/img/icon2/coupon-entry-h5.png" alt="" v-if="!isMobile"/>-->
-<!--        <img src="https://static.caimei365.com/app/img/icon2/coupon-entry-pc.png" alt="" v-else/>-->
-<!--      </a>-->
-<!--    </div>-->
-<!--  </div>-->
-
-  <!-- 视频播放弹窗 -->
-  <div class="video-popup" style="display: none;" id="video-popup">
-    <div class="mask"></div>
-    <span class="close"></span>
-    <div class="content">
-      <video src="https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4" controls></video>
-    </div>
-  </div>
-
-  <!-- 返回顶部 -->
-  <div class="cm-to-top" id="cm-to-top" v-show="showScrollTop">
-    <span class="cm-icon-bar"></span>
-    <span class="cm-icon-bar"></span>
-    <span class="cm-icon-bar"></span>
-  </div>
-  <!-- loading动画 -->
-  <div class="cm-loading" v-if="isLoading"></div>
-</div>
-<!-- 底部区域 end -->
-<template th:replace="components/footer"></template>
-<template th:replace="components/foot-link"></template>
-
-<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/beautyTopic/swiper.min.js}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/beautyTopic/base.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/beautyTopic/utils.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/beautyTopic/layout.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/beautyTopic/mixin.js(v=${version})}"></script>
-
-<script charset="utf-8" type="text/javascript" th:src="@{/js/common/ajax.service.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/utils.service.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/product.service.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/js/quickOpreation/index.js(v=${version})}"></script>
-<script charset="utf-8" type="text/javascript" th:src="@{/lib/element-ui/element-ui.min.js}"></script>
-
-<script>
-  var isFormal = window.location.href.indexOf('www.caimei365.com') !== -1;
-  if (isFormal) {
-    document.write(unescape("%3Cspan id='cnzz_stat_icon_1279558759'%3E%3C/span%3E%3Cscript src='https://s9.cnzz.com/z_stat.php%3Fid%3D1279558759%26show%3Dpic' type='text/javascript'%3E%3C/script%3E"));
-    var _czc = _czc || [];
-    _czc.push(["_setAccount", "1279558759"]);
-  }
-  $('#cm-to-top').on("click", function () {
-    $("html,body").animate({scrollTop: 0}, 500);
-  });
-</script>
-</body>
-</html>
+<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></title>
+  <meta charset="utf-8"/>
+  <meta name="referrer" content="never">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+  <template th:replace="components/head-link"></template>
+  <link href="/css/activity/normalize.css" rel="stylesheet" type="text/css">
+  <link rel="stylesheet" href="/css/activity/swiper.min.css"/>
+  <link th:href="@{/css/quickOperation/index.css(v=${version})}" rel="stylesheet" type="text/css">
+  <template th:replace="components/analysis"></template>
+  <link th:href="@{/css/base/floor.css(v=${version})}" rel="stylesheet" type="text/css">
+</head>
+<body>
+<input type="hidden" th:value="${coreServer}" id="coreServer">
+<input type="hidden" th:value="${agent}" id="userAgent">
+<!-- 引用头部 -->
+<template th:replace="components/header"></template>
+<div id="app" :style="{backgroundColor:pageInfo.backgroundColour || '',backgroundImage:'url('+pageInfo.backgroundImage+')'}">
+  <!-- 大图 -->
+  <div class="banner-container">
+    <a :href="pageInfo && pageInfo.headLink" class="banner">
+      <img :src="pageInfo && pageInfo.crmHeadImage" alt="" v-if="isMobile"/>
+      <img :src="pageInfo && pageInfo.headImage" alt="" v-else/>
+    </a>
+  </div>
+  <template v-for="(floorData,index) in floorList">
+    <div class="cm-floor">
+      <div class="cm-container">
+        <!-- 楼层标题 -->
+        <div
+                class="cm-row cm-floor-title cm-p-l-4 cm-m-b-4"
+                :class="fetchTemplate([22,23,24,25],floorData.floorContent.templateType)?['cm-p-r-4','cm-relative']:''"
+        >
+          <div :class="fetchTemplate([22,23,24,25],floorData.floorContent.templateType)?['cm-col-md-40', 'cm-col-xs-36']:''">
+            <div class="cm-title cm-text-ellipsis-1">{{floorData.title}}</div>
+            <div class="cm-subtitle cm-text-ellipsis-1">{{floorData.detail}}</div>
+          </div>
+          <div
+                  class="cm-tabs cm-p-t-12 cm-absolute cm-bottom-right"
+                  v-if="fetchTemplate([22,23,24,25],floorData.floorContent.templateType)"
+          >
+            <div class="cm-tab-content cm-p-r-4">
+              <div
+                      class="cm-tab"
+                      :class="{on:currentVideoSwiper(floorData.floorContent.templateType,index) === 0}"
+                      @click="handleTabClick(floorData.floorContent.templateType,index,0)"
+              >
+                <span>{{floorData.floorContent.displayDate1 | tabTime}}</span>
+              </div>
+              <div
+                      class="cm-tab"
+                      :class="{on:currentVideoSwiper(floorData.floorContent.templateType,index) === 1}"
+                      @click="handleTabClick(floorData.floorContent.templateType,index, 1)"
+              >
+                <span>{{floorData.floorContent.displayDate2 | tabTime}}</span>
+              </div>
+              <div    v-if="floorData.floorContent.templateType !== '25'"
+                      class="cm-tab"
+                      :class="{on:currentVideoSwiper(floorData.floorContent.templateType,index) === 2}"
+                      @click="handleTabClick(floorData.floorContent.templateType,index, 2)"
+              >
+                <span>{{floorData.floorContent.displayDate3 | tabTime}}</span>
+              </div>
+            </div>
+          </div>
+        </div>
+        <!-- 商品楼层11-21 -->
+        <template v-if="fetchTemplate([11,12,13,14,15,16,17,18,19,20,21],floorData.floorContent.templateType)">
+          <!-- 轮播图 -->
+          <div class="cm-row cm-relative cm-swiper" v-if="floorData.floorContent.templateType == 21">
+            <div class="cm-p-a-4">
+              <div class="swiper-container" :id="'swiper-template-' + index" data-swiper-type="1-6-2-2">
+                <div class="swiper-wrapper">
+                  <div class="swiper-slide" v-for="(pros , index) in floorData.floorImageList">
+                    <a :target="pros.link ? '_blank' : ''" :href="reallink(pros.link)">
+                      <div class="cm-product-item hover-class bg-white">
+                        <div class="aspect">
+                          <img width="100%" height="100%" src="/img/activity/placeholder.png"
+                               :data-original="pros.image" alt=""/>
+                        </div>
+                        <div class="cm-p-l-8 cm-p-r-8 cm-p-t-8 cm-p-b-4">
+                          <div class="cm-tags cm-p-b-2">
+                            <span class="cm-tag color1" v-if="pros.listType == 2">{{ pros.label }}</span>
+                          </div>
+                          <div class="cm-product-title cm-text-ellipsis-2 h44">
+                                                        <span class="cm-meibohui-tag"
+                                                              v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</span>
+                            {{pros.name}}
+                          </div>
+                          <div class="cm-tags cm-p-t-2 cm-p-b-2 h20">
+                            <!--                                                        <span class="cm-tag color2" v-if="pros.product.couponsLogo">优惠券</span>-->
+                            <span class="cm-tag color3" v-if="pros.listType == 2">{{ pros.label }}</span>
+                            <template v-if="(pros.product.productCategory == 1 && params.userId>0) || GLOBAL_USER_ID && GLOBAL_USER_ID>0">
+                                                            <span class="cm-tag color3" v-if="pros.product.actStatus==1">
+                                                              {{pros.product.promotions.name}}
+                                                              <span class="red" v-if="pros.priceFlag != 1 && PromotionsFormat(pros.product.promotions)">:¥{{pros.product.price | NumFormat}}</span>
+                                                            </span>
+                            </template>
+                          </div>
+                          <div class="cm-prodcut-price h24">
+                            <div class="pro-price" v-if="pros.listType == 1">
+                              <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
+                                <template v-if="pros.product.productCategory==1">
+                                  <!-- 样式1 价格未公开-->
+                                  <template v-if="pros.product.priceFlag==1">
+                                    <div class="price-tag cm-left"></div>
+                                    <div class="price cm-left">¥价格未公开</div>
+                                  </template>
+                                  <template v-else>
+                                    <!-- 样式2-->
+                                    <template  v-if="(pros.product.priceFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
+                                      <div class="price-tag cm-left"></div>
+                                      <div class="price cm-left"
+                                           :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
+                                                                                <span class="red">
+                                                                                  ¥{{(PromotionsFormat(pros.product.promotions) ? pros.product.originalPrice
+                                                                                  : pros.product.price) | NumFormat }}
+                                                                                </span>
+                                      </div>
+                                    </template>
+                                    <!-- 样式3 -->
+                                    <template v-else-if="pros.product.priceFlag==2 && pros.product.userIdentity==4 && GLOBAL_VIP_FLAG!=1">
+                                      <div class="price-tag cm-left"></div>
+                                      <div class="price cm-left">
+                                        <span>¥会员可见</span></div>
+                                    </template>
+                                    <!-- 样式4 -->
+                                    <template v-else>
+                                      <div class="price-tag cm-left"></div>
+                                      <div class="price cm-left">
+                                        <span>¥</span>
+                                        <span class="p-icon" :class="'i'+pros.product.priceGrade"></span>
+                                      </div>
+                                    </template>
+                                  </template>
+                                </template>
+                                <!-- 样式5 -->
+                                <template v-else>
+                                  <div class="price-tag cm-left"></div>
+                                  <div class="price"  v-if="pros.product.detailTalkFlag == '2'">¥价格详聊</div>
+                                  <div class="price cm-left" v-else>
+                                    <span class="red">¥{{ pros.product.price | NumFormat }}</span>
+                                  </div>
+                                </template>
+                              </template>
+                              <template v-else>
+                                <!-- 样式6 -->
+                                <template v-if="pros.product.productCategory == 1">
+                                  <div class="price-tag cm-left" v-if="params.userId>0"></div>
+                                  <div class="price cm-left ">
+                                    <span>¥</span>
+                                    <span class="p-icon" :class="'i'+pros.product.priceGrade"></span>
+                                  </div>
+                                </template>
+                                <!-- 样式7 -->
+                                <template v-else>
+                                  <div class="price-tag cm-left"></div>
+                                  <div class="price  cm-left"><span>¥登录可见</span></div>
+                                </template>
+                              </template>
+                            </div>
+                          </div>
+                        </div>
+                      </div>
+                    </a>
+                  </div>
+                </div>
+                <!-- Add Pagination -->
+                <div class="swiper-pagination" v-show="floorData.floorImageList.length > 6"></div>
+                <!-- Add Navigation -->
+                <div class="swiper-button-prev swiper-button-white cm-none"></div>
+                <div class="swiper-button-next swiper-button-white cm-none"></div>
+              </div>
+            </div>
+          </div>
+          <!-- 普通列表 -->
+          <div class="cm-row" v-else>
+            <div class="fold-box cm-clearfix"
+                 :data-floor-type="floorData.floorContent.templateType + '-' + index">
+              <!-- banner -->
+              <template v-for="(i,index) in 5">
+                <div
+                        class="cm-p-a-4"
+                        :class="[ 'cm-col-md-'+ getProductScalcMap(floorData.floorContent.templateType).col[index],  'cm-col-xs-'+ getProductScalcMap(floorData.floorContent.templateType).col[index]]"
+                        v-if="floorData.floorContent['pcAdsImage' + (index + 1)] && floorData.floorContent.templateType != 20"
+                >
+                  <div class="aspect"
+                       :data-scalc="getProductScalcMap(floorData.floorContent.templateType).scalc[index]">
+                    <a :target="floorData.floorContent['adsLink' + (index + 1)] ? '_blank' : ''"
+                       :href="reallink(floorData.floorContent['adsLink' + (index + 1)])">
+                      <img
+                              width="100%"
+                              height="100%"
+                              :src="floorData.floorContent['appletsAdsImage' + (index + 1)]"
+                              alt="/banner.jpg"
+                              v-if="isMobile && floorData.floorContent['appletsAdsImage' + (index + 1)]"
+                      />
+                      <img
+                              width="100%"
+                              height="100%"
+                              :src="floorData.floorContent['pcAdsImage' + (index + 1)]"
+                              alt="/banner.jpg"
+                              v-if="!isMobile && floorData.floorContent['pcAdsImage' + (index + 1)]"
+                      />
+                    </a>
+                  </div>
+                </div>
+              </template>
+              <!-- banner END -->
+              <div class="cm-col-md-10 cm-col-xs-30" v-for="(pros , index) in makeList(floorData,index)">
+                <div class="cm-p-a-4">
+                  <a :target="pros.link ? '_blank' : ''" :href="pros.link">
+                    <div class="cm-product-item hover-class bg-white">
+                      <div class="aspect">
+                        <img width="100%" height="100%" src="/img/activity/placeholder.png"
+                             :data-original="pros.image" alt=""/>
+                      </div>
+                      <div class="cm-p-l-8 cm-p-r-8 cm-p-t-8 cm-p-b-4">
+                        <div class="cm-tags cm-p-b-2">
+                          <span class="cm-tag color1" v-if="pros.listType == 2">{{ pros.label }}</span>
+                        </div>
+                        <div class="cm-product-title cm-text-ellipsis-2 h44">
+                                                    <span class="cm-meibohui-tag"
+                                                          v-if="pros.product!=null && pros.product.beautyActFlag==1">美博会</span>
+                          {{pros.name}}
+                        </div>
+                        <div class="cm-tags cm-p-t-2 cm-p-b-2 h20">
+                          <!--                                                     <span class="cm-tag color3" v-if="pros.product.couponsLogo">优惠券</span>-->
+                          <span class="cm-tag color2" v-if="pros.listType == 2">{{ pros.label }}</span>
+                          <template v-if="(pros.product.productCategory == 1 && params.userId>0) || GLOBAL_USER_ID && GLOBAL_USER_ID>0">
+                                                        <span class="cm-tag color3" v-if="pros.product.actStatus==1">
+                                                          {{pros.product.promotions.name}}
+                                                          <span class="red" v-if="pros.priceFlag != 1 && PromotionsFormat(pros.product.promotions)">:¥{{pros.product.price | NumFormat}}</span>
+                                                        </span>
+                          </template>
+                        </div>
+                        <div class="cm-prodcut-price h24">
+                          <div class="pro-price cm-clearfix" v-if="pros.listType == 1">
+                            <template v-if="GLOBAL_USER_ID && GLOBAL_USER_ID>0">
+                              <template v-if="pros.product.productCategory == 1">
+                                <!-- 样式1 价格未公开-->
+                                <template v-if="pros.product.priceFlag == 1">
+                                  <div class="price-tag cm-left"></div>
+                                  <div class="price cm-left">¥价格未公开</div>
+                                </template>
+                                <template v-else>
+                                  <!-- 样式2-->
+                                  <template v-if="(pros.product.priceFlag==0 && pros.product.userIdentity!=3) || pros.product.userIdentity==2 || (pros.product.userIdentity==3 && pros.product.shopID==GLOBAL_SHOP_ID)">
+                                    <div class="price-tag  cm-left"></div>
+                                    <div class="price  cm-left" :class="PromotionsFormat(pros.product.promotions) ? 'none' : ''">
+                                                                                <span class="red">
+                                                                                  ¥{{(PromotionsFormat(pros.product.promotions) ? pros.product.originalPrice
+                                                                                  : pros.product.price) | NumFormat }}
+                                                                                </span>
+                                    </div>
+                                  </template>
+                                  <!-- 样式3 -->
+                                  <template v-else-if="pros.product.priceFlag==2 && pros.product.userIdentity==4 && GLOBAL_VIP_FLAG!=1">
+                                    <div class="price-tag cm-left" v-if="pros.product.actStatus==1"></div>
+                                    <div class="price cm-left"><span>¥会员可见</span></div>
+                                  </template>
+                                  <!-- 样式4 -->
+                                  <template v-else>
+                                    <div class="price-tag cm-left" v-if="pros.product.actStatus==1"></div>
+                                    <div class="price cm-left"><span>¥</span>
+                                      <span class="p-icon" :class="'i'+pros.product.priceGrade"></span>
+                                    </div>
+                                  </template>
+                                </template>
+                              </template>
+                              <!-- 样式5 -->
+                              <template v-else>
+                                <div class="price-tag cm-left"></div>
+                                <div class="price"  v-if="pros.product.detailTalkFlag == '2'">¥价格详聊</div>
+                                <div class="price cm-left" v-else>
+                                  <span class="red">¥{{ pros.product.price | NumFormat }}</span>
+                                </div>
+                              </template>
+                            </template>
+                            <template v-else>
+                              <!-- 样式6 -->
+                              <template v-if="pros.product.productCategory == 1">
+                                <div class="price-tag cm-left" v-if="params.userId>0"></div>
+                                <div class="price cm-left ">
+                                  <span>¥</span>
+                                  <span class="p-icon" :class="'i'+pros.product.priceGrade"></span>
+                                </div>
+                              </template>
+                              <!-- 样式7 -->
+                              <template v-else>
+                                <div class="price-tag cm-left"></div>
+                                <div class="price  cm-left"><span>¥登录可见</span></div>
+                              </template>
+                            </template>
+                          </div>
+
+                        </div>
+                      </div>
+                    </div>
+                  </a>
+                </div>
+              </div>
+              <template v-for="(i,index) in 5">
+                <div
+                        class="cm-p-a-4"
+                        :class="[ 'cm-col-md-'+ getProductScalcMap(floorData.floorContent.templateType).col[index],  'cm-col-xs-'+ getProductScalcMap(floorData.floorContent.templateType).col[index]]"
+                        v-if="floorData.floorContent.templateType == 20"
+                >
+                  <div class="aspect"
+                       :data-scalc="getProductScalcMap(floorData.floorContent.templateType).scalc[index]">
+                    <a :target="floorData.floorContent['adsLink' + (index + 1)] ? '_blank' : ''"
+                       :href="reallink(floorData.floorContent['adsLink' + (index + 1)])">
+                      <img
+                              width="100%"
+                              height="100%"
+                              :src="floorData.floorContent['appletsAdsImage' + (index + 1)]"
+                              alt="/banner.jpg"
+                              v-if="isMobile && floorData.floorContent['appletsAdsImage' + (index + 1)]"
+                      />
+                      <img
+                              width="100%"
+                              height="100%"
+                              :src="floorData.floorContent['pcAdsImage' + (index + 1)]"
+                              alt="/banner.jpg"
+                              v-if="!isMobile && floorData.floorContent['appletsAdsImage' + (index + 1)]"
+                      />
+                    </a>
+                  </div>
+                </div>
+              </template>
+            </div>
+            <div class="cm-btn-box cm-p-t-12" v-if="showToggleBtn(floorData,index)">
+              <div
+                      class="cm-toggle-btn"
+                      :class="toggleState(floorData.floorContent.templateType, index) ? 'up':'down'"
+                      @click="toggleMore(floorData.floorContent.templateType, index)"
+              >
+                查看更多
+              </div>
+            </div>
+          </div>
+        </template>
+        <!-- 文章楼层4,5 -->
+        <!-- fetchTemplate([4,5],floorData.floorContent.templateType) -->
+        <template v-if="fetchTemplate([4,5],floorData.floorContent.templateType)">
+          <!-- 轮播式 pc -->
+          <div class="cm-row cm-relative cm-swiper" v-show="!isMobile">
+            <div class="cm-p-a-4">
+              <template v-if="fetchTemplate([4,5],floorData.floorContent.templateType)">
+                <div class="cm-swiper-button-prev cm-absolute cm-pc-only"
+                     @click="handlePrevClick(index)"></div>
+                <div class="cm-swiper-button-next cm-absolute cm-pc-only"
+                     @click="handleNextClick(index)"></div>
+              </template>
+              <div
+                      class="swiper-container"
+                      :class="{'no-bottom':fetchTemplate([4,5],floorData.floorContent.templateType)}"
+                      :id="'swiper-template-' + index"
+                      :data-swiper-type="getArticleScalcMap(floorData.floorContent.templateType).swiper"
+              >
+                <div class="swiper-wrapper">
+                  <div class="swiper-slide" v-for="(item, item_index) in floorData.floorImageList"
+                       :key="item_index">
+                    <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
+                      <!-- 模板4 5 6 -->
+                      <div class="cm-article-item bg-white">
+                        <div class="cm-article-cover aspect"
+                             :data-scalc="getArticleScalcMap(floorData.floorContent.templateType).scalc">
+                          <img width="100%" height="100%" :src="item.appletsImage"
+                               :alt="item.name" v-if="isMobile"/>
+                          <img width="100%" height="100%" :src="item.image" :alt="item.name"
+                               v-else/>
+                        </div>
+                        <div class="cm-article-title has-border cm-m-t-8 cm-m-r-8 cm-m-b-8 cm-p-l-6 cm-text-ellipsis-1">
+                          {{item.name}}
+                        </div>
+                        <div class="cm-m-a-8">
+                          <div class="cm-article-desc cm-text-ellipsis-2 h56">
+                            {{item.content}}
+                          </div>
+                        </div>
+                      </div>
+                    </a>
+                  </div>
+                </div>
+                <!-- Add Pagination -->
+                <div class="swiper-pagination"
+                     v-show="isMobile || !fetchTemplate([4,5],floorData.floorContent.templateType)"></div>
+                <!-- Add Navigation -->
+                <div class="swiper-button-prev swiper-button-white cm-none"></div>
+                <div class="swiper-button-next swiper-button-white cm-none"></div>
+              </div>
+            </div>
+          </div>
+          <!-- 列表式 mobile 3 4 6 -->
+          <div class="cm-row"
+               v-show="isMobile && fetchTemplate([3,4,6],floorData.floorContent.templateType)">
+            <div class="fold-box cm-clearfix"
+                 :data-floor-type="floorData.floorContent.templateType + '-' + index">
+              <div
+                      class="cm-col-md-30"
+                      :class="floorData.floorContent.templateType == 6 ? 'cm-col-xs-30' : 'cm-col-xs-60'"
+                      v-for="(item, item_index) in makeList(floorData,index)"
+                      :key="item_index"
+              >
+                <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
+                  <div class="cm-p-a-4">
+                    <!-- 3 -->
+                    <div
+                            class="cm-article-item h200 bg-white cm-p-a-8 cm-flex-j-between"
+                            v-if="floorData.floorContent.templateType == 3"
+                    >
+                      <div class="cm-left cm-article-cover cover-168-168">
+                        <img width="100%" height="100%" :src="item.appletsImage"
+                             :alt="item.name" v-if="isMobile"/>
+                        <img width="100%" height="100%" :src="item.image" :alt="item.name"
+                             v-else/>
+                      </div>
+                      <div class="cm-right cm-article-content cm-p-l-8 cm-flex-1">
+                        <div class="cm-article-title cm-m-b-10 cm-text-ellipsis-1">
+                          {{item.name}}
+                        </div>
+                        <div class="cm-line"></div>
+                        <div class="cm-article-desc cm-m-t-10 cm-text-ellipsis-4">
+                          {{item.content}}
+                        </div>
+                      </div>
+                    </div>
+                    <!-- 4 6  -->
+                    <div class="cm-article-item bg-white" v-else>
+                      <div class="cm-article-cover aspect"
+                           :data-scalc="getArticleScalcMap(floorData.floorContent.templateType).scalc">
+                        <img width="100%" height="100%" :src="item.appletsImage"
+                             :alt="item.name" v-if="isMobile"/>
+                        <img width="100%" height="100%" :src="item.image" :alt="item.name"
+                             v-else/>
+                      </div>
+                      <div class="cm-article-title has-border cm-m-t-8 cm-m-r-8 cm-m-b-8 cm-p-l-6 cm-text-ellipsis-1">
+                        {{item.name}}
+                      </div>
+                      <div class="cm-m-a-8">
+                        <div class="cm-article-desc cm-text-ellipsis-2 h56">{{item.content}}
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </a>
+              </div>
+            </div>
+            <!-- 查看更多 v-if="showToggleBtn(floorData,index)"-->
+            <div class="cm-btn-box cm-p-t-12" v-if="showToggleBtn(floorData,index)">
+              <div
+                      class="cm-toggle-btn"
+                      :class="toggleState(floorData.floorContent.templateType, index) ? 'up':'down'"
+                      @click="toggleMore(floorData.floorContent.templateType, index)"
+              >
+                查看更多
+              </div>
+            </div>
+          </div>
+          <!-- 左右滑动式 mobile 5-->
+          <div class="cm-row" v-show="isMobile && floorData.floorContent.templateType == 5">
+            <div class="cm-p-a-4">
+              <div class="cm-scroll-container">
+                <div class="cm-scroll-item" v-for="(item, item_index) in floorData.floorImageList"
+                     :key="item_index">
+                  <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
+                    <div class="cm-article-item bg-white">
+                      <div class="cm-article-cover aspect"
+                           :data-scalc="getArticleScalcMap(floorData.floorContent.templateType).scalc">
+                        <img width="100%" height="100%" :src="item.appletsImage"
+                             :alt="item.name" v-if="isMobile"/>
+                        <img width="100%" height="100%" :src="item.image" :alt="item.name"
+                             v-else/>
+                      </div>
+                      <div class="cm-article-title has-border cm-m-t-8 cm-m-r-8 cm-m-b-8 cm-p-l-6 cm-text-ellipsis-1">
+                        {{item.name}}
+                      </div>
+                      <div class="cm-m-a-8">
+                        <div class="cm-article-desc cm-text-ellipsis-2 h56">{{item.content}}
+                        </div>
+                      </div>
+                    </div>
+                  </a>
+                </div>
+              </div>
+            </div>
+          </div>
+        </template>
+        <!-- 图片楼层1 2 3 6,9 -->
+        <template v-if="fetchTemplate([1,2,3,6,9,26,28,30,32],floorData.floorContent.templateType)">
+          <div class="cm-row cm-relative cm-swiper" v-if="!isMobile || !fetchTemplate([3,4,6,10],floorData.floorContent.templateType)">
+            <div class="cm-p-a-4">
+              <template v-if="!isMobile">
+                <div class="cm-swiper-button-prev cm-absolute" @click="handlePrevClick(index)"></div>
+                <div class="cm-swiper-button-next cm-absolute" @click="handleNextClick(index)"></div>
+              </template>
+              <div
+                      class="swiper-container"
+                      :id="'swiper-template-' + index"
+                      :data-swiper-type="getImageScalcMap('10').swiper"
+              >
+                <div class="swiper-wrapper">
+                  <div class="swiper-slide" v-for="(item, item_index) in getGroupMenu(floorData.floorImageList, floorData.floorContent.templateType)"
+                       :key="item_index">
+                    <div :class="'slide-template-' + floorData.floorContent.templateType" class="template-rows-2" :style="{display: 'grid', gridTemplateRows: 'repeat(2, 1fr)', gridTemplateColumns: `repeat(${gridTemplateColumns[floorData.floorContent.templateType]}, 1fr)`, gridGap: '16px'}">
+                      <template v-for="i in item" :key="i.id" v-if="fetchTemplate([1,2,9,26,28],floorData.floorContent.templateType)">
+                        <div class="slide-template-2-img" @click="handleClick(i)">
+                          <img :src="isMobile ? i.appletsImage : i.image" width="100%" height="150px"/>
+                          <div class="has-player"
+                               v-if="floorData.floorContent.templateClassify == 4"></div>
+                        </div>
+                      </template>
+                      <template v-for="i in item" :key="i.id" v-if="fetchTemplate([30,32],floorData.floorContent.templateType)" @click="onPlayVideo(i.link)">
+                        <div class="slide-template-2-img" @click="handleClick(i)">
+                          <img :src="isMobile ? i.appletsImage : i.image" width="100%" height="150px"/>
+                          <div class="has-player"
+                               v-if="floorData.floorContent.templateClassify == 4"></div>
+                        </div>
+                      </template>
+                      <template v-if="fetchTemplate([3],floorData.floorContent.templateType)" v-for="i in item" :key="i.id">
+                        <div class="cm-article-item h200 bg-white cm-p-a-8 cm-flex-j-between" @click="handleClick(i)">
+                          <div class="cm-left cm-article-cover cover-168-168">
+                            <img width="100%" height="100%" :src="isMobile ? i.appletsImage : i.image"
+                                 :alt="i.name"/>
+                          </div>
+                          <div class="cm-right cm-article-content cm-p-l-8 cm-flex-1">
+                            <div class="cm-article-title cm-m-b-10 cm-text-ellipsis-1">
+                              {{i.name}}
+                            </div>
+                            <div class="cm-line"></div>
+                            <div class="cm-article-desc cm-m-t-10 cm-text-ellipsis-4">
+                              {{i.content}}
+                            </div>
+                          </div>
+                        </div>
+                      </template>
+                      <template v-if="fetchTemplate([6],floorData.floorContent.templateType)" v-for="i in item" :key="i.id">
+                        <div class="cm-article-item bg-white">
+                          <div class="cm-article-cover aspect"
+                               :data-scalc="getArticleScalcMap(floorData.floorContent.templateType).scalc">
+                            <img :src="isMobile ? i.appletsImage : i.image" width="100%" height="100%"/>
+                          </div>
+                          <div class="cm-article-title has-border cm-m-t-8 cm-m-r-8 cm-m-b-8 cm-p-l-6 cm-text-ellipsis-1">
+                            {{i.name}}
+                          </div>
+                          <div class="cm-m-a-8">
+                            <div class="cm-article-desc cm-text-ellipsis-2 h56">
+                              {{i.content}}
+                            </div>
+                          </div>
+                        </div>
+                      </template>
+                    </div>
+                  </div>
+                </div>
+                <!-- Add Pagination -->
+                <div class="swiper-pagination" v-show="getGroupMenu(floorData.floorImageList, floorData.floorContent.templateType).length > 1"></div>
+                <!-- Add Navigation -->
+                <div class="swiper-button-prev swiper-button-white cm-none"></div>
+                <div class="swiper-button-next swiper-button-white cm-none"></div>
+              </div>
+            </div>
+          </div>
+<!--          模板346-->
+          <div class="cm-row"
+               v-show="isMobile && fetchTemplate([3,4,6],floorData.floorContent.templateType)">
+            <div class="fold-box cm-clearfix"
+                 :data-floor-type="floorData.floorContent.templateType + '-' + index">
+              <div
+                      class="cm-col-md-30"
+                      :class="floorData.floorContent.templateType == 6 ? 'cm-col-xs-30' : 'cm-col-xs-60'"
+                      v-for="(item, item_index) in makeList(floorData,index)"
+                      :key="item_index"
+              >
+                <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
+                  <div class="cm-p-a-4">
+                    <!-- 3 -->
+                    <div
+                            class="cm-article-item h200 bg-white cm-p-a-8 cm-flex-j-between"
+                            v-if="floorData.floorContent.templateType == 3"
+                    >
+                      <div class="cm-left cm-article-cover cover-168-168">
+                        <img width="100%" height="100%" :src="item.appletsImage"
+                             :alt="item.name" v-if="isMobile"/>
+                        <img width="100%" height="100%" :src="item.image" :alt="item.name"
+                             v-else/>
+                      </div>
+                      <div class="cm-right cm-article-content cm-p-l-8 cm-flex-1">
+                        <div class="cm-article-title cm-m-b-10 cm-text-ellipsis-1">
+                          {{item.name}}
+                        </div>
+                        <div class="cm-line"></div>
+                        <div class="cm-article-desc cm-m-t-10 cm-text-ellipsis-4">
+                          {{item.content}}
+                        </div>
+                      </div>
+                    </div>
+                    <!-- 4 6  -->
+                    <div class="cm-article-item bg-white" v-else>
+                      <div class="cm-article-cover aspect">
+                        <img width="100%" height="100%" :src="item.appletsImage"
+                             :alt="item.name" v-if="isMobile"/>
+                        <img width="100%" height="100%" :src="item.image" :alt="item.name"
+                             v-else/>
+                      </div>
+                      <div class="cm-article-title has-border cm-m-t-8 cm-m-r-8 cm-m-b-8 cm-p-l-6 cm-text-ellipsis-1">
+                        {{item.name}}
+                      </div>
+                      <div class="cm-m-a-8">
+                        <div class="cm-article-desc cm-text-ellipsis-2 h56">{{item.content}}
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </a>
+              </div>
+            </div>
+            <!-- 查看更多 v-if="showToggleBtn(floorData,index)"-->
+            <div class="cm-btn-box cm-p-t-12" v-if="showToggleBtn(floorData,index)">
+              <div
+                      class="cm-toggle-btn"
+                      :class="toggleState(floorData.floorContent.templateType, index) ? 'up':'down'"
+                      @click="toggleMore(floorData.floorContent.templateType, index)"
+              >
+                查看更多
+              </div>
+            </div>
+          </div>
+          <!-- 列表式 mobile 8 10 -->
+          <div class="cm-row" v-show="fetchTemplate([8,10],floorData.floorContent.templateType) && isMobile">
+            <div class="fold-box cm-clearfix"
+                 :data-floor-type="floorData.floorContent.templateType + '-' + index">
+              <div class="cm-col-md-30 cm-col-xs-60">
+                <div class="cm-p-a-4" v-for="(item, item_index) in makeList(floorData,index)"
+                     :key="item_index">
+                  <div class="bg-white aspect"
+                       :data-scalc="getImageScalcMap('10').scalc">
+                    <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
+                      <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
+                           v-if="isMobile"/>
+                      <img width="100%" height="100%" :src="item.image" alt="" v-else/>
+                    </a>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <!-- 查看更多 v-if="showToggleBtn(floorData,index)"-->
+            <div class="cm-btn-box cm-p-t-12" v-if="showToggleBtn(floorData,index)">
+              <div
+                      class="cm-toggle-btn"
+                      :class="toggleState(floorData.floorContent.templateType, index) ? 'up':'down'"
+                      @click="toggleMore(floorData.floorContent.templateType, index)"
+              >
+                查看更多
+              </div>
+            </div>
+          </div>
+          <!-- 左右滑动式 mobile 7 27 31-->
+          <div class="cm-row" v-show="fetchTemplate([7,27,31],floorData.floorContent.templateType) && isMobile">
+            <div class="cm-p-a-4">
+              <div class="cm-scroll-container">
+                <div class="cm-scroll-item" v-for="(item, item_index) in floorData.floorImageList"
+                     :key="item_index">
+                  <div class="bg-white aspect cm-relative"
+                       :data-scalc="getImageScalcMap('10').scalc">
+                    <div v-if="fetchTemplate([31],floorData.floorContent.templateType)" @click="onPlayVideo(item.link)">
+                      <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
+                           v-if="isMobile"/>
+                      <img width="100%" height="100%" :src="item.image" alt="" v-else/>
+                      <div class="has-player"
+                           v-if="floorData.floorContent.templateClassify == 4"></div>
+                    </div>
+                    <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)" v-else>
+                      <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
+                           v-if="isMobile"/>
+                      <img width="100%" height="100%" :src="item.image" alt="" v-else/>
+                      <div class="has-player"
+                           v-if="floorData.floorContent.templateClassify == 4"></div>
+                    </a>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </template>
+        <template v-if="fetchTemplate([7,8,10,27,29,31,33],floorData.floorContent.templateType)">
+          <!-- 轮播式 mobile(1 2 9) pc(全部)-->
+          <div
+                  class="cm-row cm-relative cm-swiper"
+                  v-show="!isMobile || (fetchTemplate([7,8,27,29,31,33],floorData.floorContent.templateType) && isMobile)"
+          >
+            <div class="cm-p-a-4">
+              <template v-if="fetchTemplate([7,8,10],floorData.floorContent.templateType)">
+                <div class="cm-swiper-button-prev cm-absolute" @click="handlePrevClick(index)"></div>
+                <div class="cm-swiper-button-next cm-absolute" @click="handleNextClick(index)"></div>
+              </template>
+              <div
+                      class="swiper-container"
+                      :id="'swiper-template-' + index"
+                      :class="{'no-bottom':fetchTemplate([7,8,10],floorData.floorContent.templateType)}"
+                      :data-swiper-type="getImageScalcMap(floorData.floorContent.templateType).swiper"
+              >
+                <div class="swiper-wrapper">
+                  <div class="swiper-slide" v-for="(item, item_index) in floorData.floorImageList"
+                       :key="item_index">
+                    <div
+                            class="bg-white hover-class aspect cm-relative"
+                            :data-scalc="getImageScalcMap(floorData.floorContent.templateType).scalc"
+                    >
+                      <div v-if="fetchTemplate([31,33],floorData.floorContent.templateType)" @click="onPlayVideo(item.link)">
+                        <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
+                             v-if="isMobile"/>
+                        <img width="100%" height="100%" :src="item.image" alt="" v-else/>
+                        <div class="has-player"
+                             v-if="floorData.floorContent.templateClassify == 4"></div>
+                      </div>
+                      <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)" v-else>
+                        <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
+                             v-if="isMobile"/>
+                        <img width="100%" height="100%" :src="item.image" alt="" v-else/>
+                        <div class="has-player"
+                             v-if="floorData.floorContent.templateClassify == 4"></div>
+                      </a>
+                    </div>
+                  </div>
+                </div>
+                <!-- Add Pagination -->
+                <div class="swiper-pagination"
+                     v-show="(isMobile || !fetchTemplate([7,8,10],floorData.floorContent.templateType)) && floorData.floorImageList.length > 4"></div>
+                <!-- Add Navigation -->
+                <div class="swiper-button-prev swiper-button-white cm-none"></div>
+                <div class="swiper-button-next swiper-button-white cm-none"></div>
+              </div>
+            </div>
+          </div>
+          <!-- 列表式 mobile 8 10 -->
+          <div class="cm-row" v-show="fetchTemplate([8,10],floorData.floorContent.templateType) && isMobile">
+            <div class="fold-box cm-clearfix"
+                 :data-floor-type="floorData.floorContent.templateType + '-' + index">
+              <div class="cm-col-md-30 cm-col-xs-60">
+                <div class="cm-p-a-4" v-for="(item, item_index) in makeList(floorData,index)"
+                     :key="item_index">
+                  <div class="bg-white aspect"
+                       :data-scalc="getImageScalcMap(floorData.floorContent.templateType).scalc">
+                    <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
+                      <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
+                           v-if="isMobile"/>
+                      <img width="100%" height="100%" :src="item.image" alt="" v-else/>
+                    </a>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <!-- 查看更多 v-if="showToggleBtn(floorData,index)"-->
+            <div class="cm-btn-box cm-p-t-12" v-if="showToggleBtn(floorData,index)">
+              <div
+                      class="cm-toggle-btn"
+                      :class="toggleState(floorData.floorContent.templateType, index) ? 'up':'down'"
+                      @click="toggleMore(floorData.floorContent.templateType, index)"
+              >
+                查看更多
+              </div>
+            </div>
+          </div>
+          <!-- 左右滑动式 mobile 7 27 31-->
+          <div class="cm-row" v-show="fetchTemplate([7,27,31],floorData.floorContent.templateType) && isMobile">
+            <div class="cm-p-a-4">
+              <div class="cm-scroll-container">
+                <div class="cm-scroll-item" v-for="(item, item_index) in floorData.floorImageList"
+                     :key="item_index">
+                  <div class="bg-white aspect cm-relative"
+                       :data-scalc="getImageScalcMap(floorData.floorContent.templateType).scalc">
+                    <div v-if="fetchTemplate([31],floorData.floorContent.templateType)" @click="onPlayVideo(item.link)">
+                      <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
+                           v-if="isMobile"/>
+                      <img width="100%" height="100%" :src="item.image" alt="" v-else/>
+                      <div class="has-player"
+                           v-if="floorData.floorContent.templateClassify == 4"></div>
+                    </div>
+                    <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)" v-else>
+                      <img width="100%" height="100%" :src="item.appletsImage || item.image" alt=""
+                           v-if="isMobile"/>
+                      <img width="100%" height="100%" :src="item.image" alt="" v-else/>
+                      <div class="has-player"
+                           v-if="floorData.floorContent.templateClassify == 4"></div>
+                    </a>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </template>
+        <!-- 直播楼层22 23 24 25 -->
+        <!-- v-if="fetchTemplate([22,23,24,25],floorData.floorContent.templateType)" -->
+        <template v-if="fetchTemplate([22,23,24,25],floorData.floorContent.templateType)">
+          <!-- 轮播式 && tab切换 22 24 25 -->
+          <!-- 选项卡 -->
+          <div class="cm-row"
+               v-if="fetchTemplate([22,24,25],floorData.floorContent.templateType)">
+            <div class="cm-p-a-4">
+              <div class="cm-relative cm-swiper">
+                <template v-for="(i,i_index) in 3">
+                  <div v-show="currentVideoSwiper(floorData.floorContent.templateType,index) === i_index">
+                    <div
+                            class="swiper-container"
+                            :id="'swiper-template-' + index + '-' + floorData.floorContent.templateType + '-' + i_index"
+                            :data-swiper-type="getImageScalcMap('10').swiper"
+                    >
+                      <div class="swiper-wrapper">
+                        <div
+                                class="swiper-slide"
+                                v-for="(item, item_index) in getGroupMenu(floorData[getFloorImageListType(i_index)], floorData.floorContent.templateType)"
+                                :key="item_index"
+                        >
+                          <div :class="'slide-template-' + floorData.floorContent.templateType" class="template-rows-2" :style="{display: 'grid', gridTemplateRows: 'repeat(2, 1fr)', gridTemplateColumns: `repeat(${gridTemplateColumns[floorData.floorContent.templateType]}, 1fr)`, gridGap: '16px'}">
+                            <template v-for="i in item" :key="i.id">
+                              <div
+                                      class="bg-white aspect cm-relative"
+                                      :data-scalc="getVideoScalcMap(floorData.floorContent.templateType).scalc"
+                              >
+                                <a :target="i.link ? '_blank' : ''" :href="reallink(i.link)">
+                                  <span
+                                          class="cm-cover-tag color1 cm-absolute cm-top-right"
+                                          v-if="makeVideoStatus(floorData,i_index + 1) === 2"
+                                  >已结束</span
+                                  >
+                                  <span
+                                          class="cm-cover-tag color2 cm-absolute cm-top-right"
+                                          v-if="makeVideoStatus(floorData,i_index + 1) === 0"
+                                  >未开始</span
+                                  >
+                                  <span
+                                          class="cm-cover-tag color3 cm-absolute cm-top-right"
+                                          v-if="makeVideoStatus(floorData,i_index + 1) === 1"
+                                  >已开始</span
+                                  >
+                                  <img :src="isMobile ? i.appletsImage : i.image" width="100%" height="100%"  @click="handleClick(i)"/>
+                                </a>
+                              </div>
+                            </template>
+                          </div>
+                        </div>
+                      </div>
+                      <!-- Add Pagination -->
+                      <div class="swiper-pagination" v-if="getGroupMenu(floorData[getFloorImageListType(i_index)], floorData.floorContent.templateType).length > 1"></div>
+                      <!-- Add Navigation -->
+                      <div class="swiper-button-prev swiper-button-white cm-none"></div>
+                      <div class="swiper-button-next swiper-button-white cm-none"></div>
+                    </div>
+                  </div>
+                </template>
+              </div>
+            </div>
+          </div>
+          <div class="cm-row"
+               v-if="!isMobile && fetchTemplate([23],floorData.floorContent.templateType)">
+            <div class="cm-p-a-4">
+              <div class="cm-relative cm-swiper">
+                <template v-for="(i,i_index) in 3">
+                  <div v-show="currentVideoSwiper(floorData.floorContent.templateType,index) === i_index">
+                    <div
+                            class="swiper-container"
+                            :id="'swiper-template-' + index + '-' + floorData.floorContent.templateType + '-' + i_index"
+                            :data-swiper-type="getVideoScalcMap(floorData.floorContent.templateType).swiper"
+                    >
+                      <div class="swiper-wrapper">
+                        <div
+                                class="swiper-slide"
+                                v-for="(item, item_index) in floorData[getFloorImageListType(i_index)]"
+                                :key="item_index"
+                        >
+                          <div
+                                  class="bg-white aspect cm-relative"
+                                  :data-scalc="getVideoScalcMap(floorData.floorContent.templateType).scalc"
+                          >
+                            <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
+																<span
+                                                                        class="cm-cover-tag color1 cm-absolute cm-top-right"
+                                                                        v-if="makeVideoStatus(floorData,i_index + 1) === 2"
+                                                                >已结束</span
+                                                                >
+                              <span
+                                      class="cm-cover-tag color2 cm-absolute cm-top-right"
+                                      v-if="makeVideoStatus(floorData,i_index + 1) === 0"
+                              >未开始</span
+                              >
+                              <span
+                                      class="cm-cover-tag color3 cm-absolute cm-top-right"
+                                      v-if="makeVideoStatus(floorData,i_index + 1) === 1"
+                              >已开始</span
+                              >
+                              <img width="100%" height="100%" :src="item.appletsImage"
+                                   alt="" v-if="isMobile"/>
+                              <img width="100%" height="100%" :src="item.image" alt=""
+                                   v-else/>
+                            </a>
+                          </div>
+                        </div>
+                      </div>
+                      <!-- Add Pagination -->
+                      <div class="swiper-pagination" v-show="floorData[getFloorImageListType(i_index)].length > 4"></div>
+                      <!-- Add Navigation -->
+                      <div class="swiper-button-prev swiper-button-white cm-none"></div>
+                      <div class="swiper-button-next swiper-button-white cm-none"></div>
+                    </div>
+                  </div>
+                </template>
+              </div>
+            </div>
+          </div>
+          <!-- 左右滑动式 mobile 23-->
+          <div class="cm-row" v-show="isMobile && floorData.floorContent.templateType == 23">
+            <div class="cm-p-a-4">
+              <template v-for="(i,i_index) in 3">
+                <div class="cm-scroll-container"
+                     v-if="currentVideoSwiper(floorData.floorContent.templateType,index) === i_index">
+                  <div class="cm-scroll-item"
+                       v-for="(item, item_index) in floorData[getFloorImageListType(i_index)]">
+                    <div
+                            class="bg-white aspect cm-relative cm-radius-4"
+                            :data-scalc="getVideoScalcMap(floorData.floorContent.templateType).scalc"
+                    >
+                      <a :target="item.link ? '_blank' : ''" :href="reallink(item.link)">
+                        <span class="cm-cover-tag color2 cm-absolute cm-top-right">已开始</span>
+                        <img width="100%" height="100%" :src="item.appletsImage" alt=""
+                             v-if="isMobile"/>
+                        <img width="100%" height="100%" :src="item.image" alt="" v-else/>
+                      </a>
+                    </div>
+                  </div>
+                </div>
+              </template>
+            </div>
+          </div>
+        </template>
+      </div>
+    </div>
+  </template>
+<!--   侧边浮窗-->
+  <div class="cm-float-container" v-if="activityEntryVisiable || contactVisiable">
+<!--    <a class="cm-regexp" href="/help/1038.html" target="_blank">优惠券<br />规则</a>-->
+    <div>
+      <div class="cm-slide" v-show="activityEntryVisiable">
+        <div class="cm-toggle-btn" @click="handleToggleActive(true)"></div>
+      </div>
+      <template v-if="contactVisiable">
+        <div class="cm-slide">
+          <div class="cm-toggle-btn"></div>
+          <div class="cm-tooltop">
+            <div class="cm-tooltop-content cm-tooltop-1">
+              <div class="cm-item">展会咨询电话:15338897365</div>
+              <i></i>
+              <div class="cm-item">客服咨询电话:15338851365</div>
+            </div>
+          </div>
+        </div>
+        <div class="cm-slide">
+          <div class="cm-toggle-btn"></div>
+          <div class="cm-tooltop cm-mobile-tooltop">
+            <div class="cm-tooltop-content cm-tooltop-2 cm-clearfix">
+              <div class="cm-item cm-left">
+                <img width="108" height="108"
+                     src="https://static.caimei365.com/app/img/icon2/cm_wechat_02.png" alt=""/>
+                <span>展会咨询微信</span>
+              </div>
+              <div class="cm-left line"></div>
+              <div class="cm-item cm-left">
+                <img width="108" height="108"
+                     src="https://static.caimei365.com/app/img/icon2/cm_wechat_01.png" alt=""/>
+                <span>客服咨询微信</span>
+              </div>
+            </div>
+          </div>
+        </div>
+      </template>
+    </div>
+  </div>
+<!--   活动弹窗入口1-->
+<!--  <div class="cm-entry" v-show="activityEntryVisiable && isActive">-->
+<!--    <div id="cm-icon-content" class="cm-icon-content" onclick="_czc.push(['_trackEvent','云上美博会','红包弹窗点击','红包弹窗点击',1,'cm-icon-content'])">-->
+<!--      <span class="cm-close" @click="handleToggleActive(false)"></span>-->
+<!--      <div @click="handleToggleCoupon(false)" style="cursor: pointer">-->
+<!--        <a href="/info/detail-7657-1.html" target="_blank">-->
+<!--          <img src="https://static.caimei365.com/app/img/icon2/coupon-entry-h5.png" alt="" v-if="!isMobile"/>-->
+<!--          <img src="https://static.caimei365.com/app/img/icon2/coupon-entry-pc.png" alt="" v-else/>-->
+<!--        </a>-->
+<!--        &lt;!&ndash;                <img src="/img/activity/pc_entry.png" alt="" v-if="!isMobile"/>&ndash;&gt;-->
+<!--        &lt;!&ndash;                <img src="/img/activity/h5_entry.png" alt="" v-else/>&ndash;&gt;-->
+<!--      </div>-->
+<!--    </div>-->
+<!--  </div>-->
+
+<!--   活动弹窗入口2-->
+<!--  <div class="cm-entry" v-show="showCouponEntry">-->
+<!--    <div class="cm-icon-content" @click="handleToggleCoupon(false)" style="cursor: pointer">-->
+<!--      &lt;!&ndash;            <a href="/product-6898.html" id="conpun" target="_blank" onclick="_czc.push(['_trackEvent','云上美博会','优惠券弹窗点击','优惠券弹窗点击',1,'conpun'])"><span class="btn btn1"></span></a>&ndash;&gt;-->
+<!--      &lt;!&ndash;            <a href="/product/couponExp.html" id="conpunDetail" target="_blank" onclick="_czc.push(['_trackEvent','云上美博会','优惠券说明弹窗点击','优惠券说明弹窗点击',1,'conpunDetail'])"><span class="btn btn2"></span></a>&ndash;&gt;-->
+<!--      <span class="cm-close" @click.stop="handleToggleCoupon(false)"></span>-->
+<!--      &lt;!&ndash;            <img src="https://static.caimei365.com/app/img/icon2/coupon-entry-h5.png" alt="" v-if="!isMobile"/>&ndash;&gt;-->
+<!--      &lt;!&ndash;            <img src="https://static.caimei365.com/app/img/icon2/coupon-entry-pc.png" alt="" v-else/>&ndash;&gt;-->
+<!--      <a href="/info/detail-7657-1.html" target="_blank">-->
+<!--        <img src="https://static.caimei365.com/app/img/icon2/coupon-entry-h5.png" alt="" v-if="!isMobile"/>-->
+<!--        <img src="https://static.caimei365.com/app/img/icon2/coupon-entry-pc.png" alt="" v-else/>-->
+<!--      </a>-->
+<!--    </div>-->
+<!--  </div>-->
+
+  <!-- 视频播放弹窗 -->
+  <div class="video-popup" style="display: none;" id="video-popup">
+    <div class="mask"></div>
+    <span class="close"></span>
+    <div class="content">
+      <video src="https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4" controls></video>
+    </div>
+  </div>
+
+  <!-- 返回顶部 -->
+  <div class="cm-to-top" id="cm-to-top" v-show="showScrollTop">
+    <span class="cm-icon-bar"></span>
+    <span class="cm-icon-bar"></span>
+    <span class="cm-icon-bar"></span>
+  </div>
+  <!-- loading动画 -->
+  <div class="cm-loading" v-if="isLoading"></div>
+</div>
+<!-- 底部区域 end -->
+<template th:replace="components/footer"></template>
+<template th:replace="components/foot-link"></template>
+
+<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/beautyTopic/swiper.min.js}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/beautyTopic/base.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/beautyTopic/utils.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/beautyTopic/layout.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/activity/beautyTopic/mixin.js(v=${version})}"></script>
+
+<script charset="utf-8" type="text/javascript" th:src="@{/js/common/ajax.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/utils.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/product.service.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/js/quickOpreation/index.js(v=${version})}"></script>
+<script charset="utf-8" type="text/javascript" th:src="@{/lib/element-ui/element-ui.min.js}"></script>
+
+<script>
+  var isFormal = window.location.href.indexOf('www.caimei365.com') !== -1;
+  if (isFormal) {
+    document.write(unescape("%3Cspan id='cnzz_stat_icon_1279558759'%3E%3C/span%3E%3Cscript src='https://s9.cnzz.com/z_stat.php%3Fid%3D1279558759%26show%3Dpic' type='text/javascript'%3E%3C/script%3E"));
+    var _czc = _czc || [];
+    _czc.push(["_setAccount", "1279558759"]);
+  }
+  $('#cm-to-top').on("click", function () {
+    $("html,body").animate({scrollTop: 0}, 500);
+  });
+</script>
+</body>
+</html>

+ 179 - 178
src/main/resources/templates/supplier-center/encyclopedia/preview.html

@@ -1,178 +1,179 @@
-<!DOCTYPE html>
-<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>
-  <meta charset="UTF-8"/>
-  <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
-  <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=0"/>
-  <title>采美百科-百科详情</title>
-  <link rel="stylesheet" href="/css/encyclopedia/normalize.css">
-  <link href="/lib/jquery-confirm.min.css" rel="stylesheet" type="text/css">
-  <link rel="stylesheet" href="/lib/swiper.min.css">
-  <!--element ui 样式表-->
-  <link rel="stylesheet" href="https://unpkg.zhimg.com/element-ui@2.15.13/lib/theme-chalk/index.css"/>
-  <link rel="stylesheet" href="/lib/element-ui/element-ui-min.css"/>
-  <link rel="stylesheet" th:href="@{/css/encyclopedia/common.css(v=${version})}">
-  <link rel="stylesheet" th:href="@{/css/encyclopedia/preview.css(v=${version})}">
-  <template th:replace="article/components/article-link"></template>
-  <meta name="keywords" th:content="${article?.keyword}">
-  <meta name="description" th:content="${article?.recommendContent}">
-  <template th:replace="article/components/article-link"></template>
-  <template th:replace="components/analysis"></template>
-  <script type="text/javascript" src="/lib/swiper.min.js"></script>
-</head>
-<body>
-<!-- 顶部公共区域 -->
-<template th:replace="article/components/article-preview"></template>
-<!-- 顶部公共区域 end-->
-<!--<input type="hidden" th:value="${baikeproduct.relatedLabels}" id="relatedLabels">-->
-<main id="bk-page-container">
-  <div class="bk-banner">
-    <img src="/img/encyclopedia/assets/pc-banner-detail.png" alt="采美百科" class="only-pc"/>
-    <img src="/img/encyclopedia/assets/h5-banner-detail.png" alt="采美百科" class="only-mobile"/>
-    <div class="bk-container only-pc">
-      <div class="bk-name" v-text="previewFormData.name">}</div>
-    </div>
-  </div>
-  <div class="bk-detail bk-container">
-    <div class="only-mobile bk-entry-name">
-      <div class="bk-name"></div>
-    </div>
-    <div class="bk-detail-left">
-      <div class="bk-name" v-html="previewFormData.alias"></div>
-      <div class="bk-overview" v-html="previewFormData.discription"></div>
-      <div class="bk-information only-pc">
-        <div class="bk-row" id="bk-row">
-          <div class="space" v-for="item,index in previewFormData.infoListStr" :key="item.id">
-            <div class="bk-label">{{item.infoName}}</div>
-            <div class="bk-content">{{item.infoContent}}</div>
-          </div>
-        </div>
-      </div>
-      <div class="bk-information only-mobile">
-        <div class="bk-row" v-for="item,index in previewFormData.infoListStr" :key="item.id">
-          <div class="bk-label">{{item.infoName}}</div>
-          <div class="bk-content">{{item.infoContent}}</div>
-        </div>
-      </div>
-      <div class="only-mobile bk-relevant">
-        <div class="bk-album">
-          <div class="bk-title">透明质酸的概述图册</div>
-          <div class="bk-album-list">
-            <div class="bk-album-item" v-for="item,index in previewFormData.imageListStr">
-              <img :src="item.image" v-if="item.type == 1">
-              <video :src="item.videoUrl" v-if="item.type == 2"></video>
-              <span class="bk-play" v-if="item.type == 2"></span>
-            </div>
-          </div>
-        </div>
-        <div class="bk-company">
-          <div class="bk-cover"><img src="https://picsum.photos/280/220?random=4"></div>
-          <div class="bk-title">上海品辉医疗科技有限公司</div>
-        </div>
-        <div class="bk-directory">
-          <div class="bk-title">导航<span>></span></div>
-          <ul class="bk-directory-list" id="bk-directory-mobile"></ul>
-        </div>
-      </div>
-      <div class="bk-section">
-        <div v-for="item,index in previewFormData.textInfoListStr" :key="item.id">
-          <div class="bk-title" v-if="item.dictionaryType === 1">
-            <h2>{{item.dictionaryContent}}</h2>
-            <div class="line"></div>
-          </div>
-          <h3 v-if="item.dictionaryType == 2" v-html="item.dictionaryContent"></h3>
-          <div class="bk-section-content" v-if="item.dictionaryType === 3" v-html="item.dictionaryContent"></div>
-        </div>
-      </div>
-      <div class="bk-literature">
-        <div class="bk-title">
-          <div>参考资料</div>
-          <div class="line"></div>
-        </div>
-        <ul class="bk-literature-list">
-          <div v-for="(item,index) in previewFormData.referenceListStr" :key="item.id">
-            <li v-if="item.referenceType === 1">
-              [<em>{{index + 1}}</em>]
-              <i></i>
-              <a class="link" :href="item.website">{{item.articleName}}</a>.
-              <span>{{item.websiteName}}</span>
-              <span v-if="item.acitationTimeStr">[引用日期:<span>{{item.acitationTimeStr}}</span>]</span>
-            </li>
-            <li v-if="item.referenceType === 2">
-              [<em>{{index + 1}}</em>]
-              <i></i>
-              <span>{{item.author}}</span>
-              <span>{{item.workName}}</span>:
-              <span>{{item.press}}</span>,
-              <span>{{item.publicationYearStr}}</span>
-            </li>
-            <li v-if="item.referenceType === 3">
-              [<em>{{index + 1}}</em>]
-              <i></i>
-              <span>{{item.referenceDescription}}</span>
-              <span>{{item.imageDescription}}</span>
-              <a class="image" :href="item.imageUrl" target="_blank">{{item.articleName}}</a>
-            </li>
-          </div>
-        </ul>
-      </div>
-      <div class="bk-remarks">声明:该文观点仅代表作者本人,不代表采美公司的立场或观点,本网站仅提供信息存储空间服务。任何单位与个人认为该文可能涉嫌侵犯其合法权利,应及时向采美公司提出书面权利通知,采美公司会依法处理。</div>
-      <div class="bk-pv">
-<!--        <div class="bk-pv-item">浏览次数:<span th:text="*{pv}"></span></div>-->
-<!--        <div class="bk-pv-item" th:text="*{publishTimeStr}"></div>-->
-      </div>
-    </div>
-    <div class="bk-detail-right only-pc">
-      <div class="bk-album">
-        <div class="swiper-container" id="album">
-          <div class="swiper-wrapper">
-            <div class="swiper-slide" v-for="item,index in previewFormData.imageListStr" :key="index">
-              <img :src="item.image" v-if="item.type == 1">
-              <video :src="item.videoUrl" v-if="item.type == 2"></video>
-              <span class="bk-play" v-if="item.type == 2"></span>
-            </div>
-          </div>
-          <div class="swiper-pagination"></div>
-        </div>
-        <div class="bk-title"><span>{{previewFormData.name + '的概述图册' }}</span></div>
-      </div>
-      <div class="bk-company">
-        <img :src="JSON.parse(window.localStorage.getItem('userInfo')).shopLogo ? JSON.parse(window.localStorage.getItem('userInfo')).shopLogo : '/img/base/placeholder.png'">
-        <div class="bk-title">{{JSON.parse(window.localStorage.getItem('userInfo')).name || '上海品辉医疗科技有限公司'}}</div>
-      </div>
-      <div class="bk-directory">
-        <div class="bk-title">文章目录</div>
-        <div class="bk-content">
-          <ul class="bk-directory-list" id="bk-directory-pc"></ul>
-        </div>
-      </div>
-
-    </div>
-  </div>
-</main>
-
-<!-- 视频播放弹窗 -->
-<!--<div class="video-popup" style="display: none;" id="video-popup">-->
-<!--  <div class="mask"></div>-->
-<!--  <span class="close"></span>-->
-<!--  <div class="content">-->
-<!--    <video controls></video>-->
-<!--  </div>-->
-<!--</div>-->
-
-<!-- 底部区域 -->
-<template th:replace="encyclopedia/components/footer"></template>
-<!-- 底部区域 end -->
-<script type="text/javascript" src="/lib/element-ui/element-ui.min.js"></script>
-<script charset="utf-8" type="text/javascript" src="/lib/aliyun-oss-sdk-6.17.1.min.js"></script>
-<script th:src="@{/js/supplier-center/encyclopedia/preview.js(v=${version})}"></script>
-<script type="text/javascript">
-  new Swiper('#album', {
-    pagination: {
-      el: '.swiper-pagination'
-    }
-  })
-</script>
-</body>
-</html>
+<!DOCTYPE html>
+<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>
+  <meta charset="UTF-8"/>
+  <meta name="referrer" content="never">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+  <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=0"/>
+  <title>采美百科-百科详情</title>
+  <link rel="stylesheet" href="/css/encyclopedia/normalize.css">
+  <link href="/lib/jquery-confirm.min.css" rel="stylesheet" type="text/css">
+  <link rel="stylesheet" href="/lib/swiper.min.css">
+  <!--element ui 样式表-->
+  <link rel="stylesheet" href="https://unpkg.zhimg.com/element-ui@2.15.13/lib/theme-chalk/index.css"/>
+  <link rel="stylesheet" href="/lib/element-ui/element-ui-min.css"/>
+  <link rel="stylesheet" th:href="@{/css/encyclopedia/common.css(v=${version})}">
+  <link rel="stylesheet" th:href="@{/css/encyclopedia/preview.css(v=${version})}">
+  <template th:replace="article/components/article-link"></template>
+  <meta name="keywords" th:content="${article?.keyword}">
+  <meta name="description" th:content="${article?.recommendContent}">
+  <template th:replace="article/components/article-link"></template>
+  <template th:replace="components/analysis"></template>
+  <script type="text/javascript" src="/lib/swiper.min.js"></script>
+</head>
+<body>
+<!-- 顶部公共区域 -->
+<template th:replace="article/components/article-preview"></template>
+<!-- 顶部公共区域 end-->
+<!--<input type="hidden" th:value="${baikeproduct.relatedLabels}" id="relatedLabels">-->
+<main id="bk-page-container" v-cloak>
+  <div class="bk-banner">
+    <img :src="previewFormData.banner || '/img/encyclopedia/assets/pc-banner-detail.png'" alt="采美百科" class="only-pc"/>
+    <img :src="previewFormData.banner || '/img/encyclopedia/assets/h5-banner-detail.png'" alt="采美百科" class="only-mobile"/>
+    <div class="bk-container only-pc">
+      <div class="bk-name" v-text="previewFormData.name">}</div>
+    </div>
+  </div>
+  <div class="bk-detail bk-container">
+    <div class="only-mobile bk-entry-name">
+      <div class="bk-name"></div>
+    </div>
+    <div class="bk-detail-left">
+      <div class="bk-name" v-html="previewFormData.alias"></div>
+      <div class="bk-overview" v-html="previewFormData.discription"></div>
+      <div class="bk-information only-pc">
+        <div class="bk-row" id="bk-row">
+          <div class="space" v-for="item,index in previewFormData.infoListStr" :key="item.id">
+            <div class="bk-label">{{item.infoName}}</div>
+            <div class="bk-content">{{item.infoContent}}</div>
+          </div>
+        </div>
+      </div>
+      <div class="bk-information only-mobile">
+        <div class="bk-row" v-for="item,index in previewFormData.infoListStr" :key="item.id">
+          <div class="bk-label">{{item.infoName}}</div>
+          <div class="bk-content">{{item.infoContent}}</div>
+        </div>
+      </div>
+      <div class="only-mobile bk-relevant">
+        <div class="bk-album">
+          <div class="bk-title">透明质酸的概述图册</div>
+          <div class="bk-album-list">
+            <div class="bk-album-item" v-for="item,index in previewFormData.imageListStr">
+              <img :src="item.image" v-if="item.type == 1">
+              <video :src="item.videoUrl" v-if="item.type == 2"></video>
+              <span class="bk-play" v-if="item.type == 2"></span>
+            </div>
+          </div>
+        </div>
+        <div class="bk-company">
+          <div class="bk-cover"><img src="https://picsum.photos/280/220?random=4"></div>
+          <div class="bk-title">上海品辉医疗科技有限公司</div>
+        </div>
+        <div class="bk-directory">
+          <div class="bk-title">导航<span>></span></div>
+          <ul class="bk-directory-list" id="bk-directory-mobile"></ul>
+        </div>
+      </div>
+      <div class="bk-section">
+        <div v-for="item,index in previewFormData.textInfoListStr" :key="item.id">
+          <div class="bk-title" v-if="item.dictionaryType === 1">
+            <h2>{{item.dictionaryContent}}</h2>
+            <div class="line"></div>
+          </div>
+          <h3 v-if="item.dictionaryType == 2" v-html="item.dictionaryContent"></h3>
+          <div class="bk-section-content" v-if="item.dictionaryType === 3" v-html="item.dictionaryContent"></div>
+        </div>
+      </div>
+      <div class="bk-literature">
+        <div class="bk-title">
+          <div>参考资料</div>
+          <div class="line"></div>
+        </div>
+        <ul class="bk-literature-list">
+          <div v-for="(item,index) in previewFormData.referenceListStr" :key="item.id">
+            <li v-if="item.referenceType === 1">
+              [<em>{{index + 1}}</em>]
+              <i></i>
+              <a class="link" :href="item.website">{{item.articleName}}</a>.
+              <span>{{item.websiteName}}</span>
+              <span v-if="item.acitationTimeStr">[引用日期:<span>{{item.acitationTimeStr}}</span>]</span>
+            </li>
+            <li v-if="item.referenceType === 2">
+              [<em>{{index + 1}}</em>]
+              <i></i>
+              <span>{{item.author}}</span>
+              <span>{{item.workName}}</span>:
+              <span>{{item.press}}</span>,
+              <span>{{item.publicationYearStr}}</span>
+            </li>
+            <li v-if="item.referenceType === 3">
+              [<em>{{index + 1}}</em>]
+              <i></i>
+              <span>{{item.referenceDescription}}</span>
+              <span>{{item.imageDescription}}</span>
+              <a class="image" :href="item.imageUrl" target="_blank">{{item.articleName}}</a>
+            </li>
+          </div>
+        </ul>
+      </div>
+      <div class="bk-remarks">声明:该文观点仅代表作者本人,不代表采美公司的立场或观点,本网站仅提供信息存储空间服务。任何单位与个人认为该文可能涉嫌侵犯其合法权利,应及时向采美公司提出书面权利通知,采美公司会依法处理。</div>
+      <div class="bk-pv">
+<!--        <div class="bk-pv-item">浏览次数:<span th:text="*{pv}"></span></div>-->
+<!--        <div class="bk-pv-item" th:text="*{publishTimeStr}"></div>-->
+      </div>
+    </div>
+    <div class="bk-detail-right only-pc">
+      <div class="bk-album">
+        <div class="swiper-container" id="album">
+          <div class="swiper-wrapper">
+            <div class="swiper-slide" v-for="(item,index) in previewFormData.imageListStr" :key="index">
+              <img :src="item.image" v-if="item.type == 1">
+              <video :src="item.videoUrl" v-if="item.type == 2"></video>
+              <span class="bk-play" v-if="item.type == 2"></span>
+            </div>
+          </div>
+          <div class="swiper-pagination"></div>
+        </div>
+        <div class="bk-title"><span>{{previewFormData.name + '的概述图册' }}</span></div>
+      </div>
+      <div class="bk-company">
+        <img :src="JSON.parse(window.localStorage.getItem('userInfo')).shopLogo ? JSON.parse(window.localStorage.getItem('userInfo')).shopLogo : '/img/base/placeholder.png'">
+        <div class="bk-title">{{JSON.parse(window.localStorage.getItem('userInfo')).name || '上海品辉医疗科技有限公司'}}</div>
+      </div>
+      <div class="bk-directory">
+        <div class="bk-title">文章目录</div>
+        <div class="bk-content">
+          <ul class="bk-directory-list" id="bk-directory-pc"></ul>
+        </div>
+      </div>
+
+    </div>
+  </div>
+</main>
+
+<!-- 视频播放弹窗 -->
+<!--<div class="video-popup" style="display: none;" id="video-popup">-->
+<!--  <div class="mask"></div>-->
+<!--  <span class="close"></span>-->
+<!--  <div class="content">-->
+<!--    <video controls></video>-->
+<!--  </div>-->
+<!--</div>-->
+
+<!-- 底部区域 -->
+<template th:replace="encyclopedia/components/footer"></template>
+<!-- 底部区域 end -->
+<script type="text/javascript" src="/lib/element-ui/element-ui.min.js"></script>
+<script charset="utf-8" type="text/javascript" src="/lib/aliyun-oss-sdk-6.17.1.min.js"></script>
+<script th:src="@{/js/supplier-center/encyclopedia/preview.js(v=${version})}"></script>
+<script type="text/javascript">
+  new Swiper('#album', {
+    pagination: {
+      el: '.swiper-pagination'
+    }
+  })
+</script>
+</body>
+</html>

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

@@ -436,7 +436,7 @@
             <div class="contant_init">
                 <div class="community">
                     <div class="community_video">
-                        <div class="community_title">美业企谈<a href="/supplier/attractionMore.html?active=0">更多></a></div>
+                        <div class="community_title">美业企谈<a href="/supplier/attractionMore.html?active=2">更多></a></div>
                         <div class="community_list" v-cloak v-if="isPC">
                             <div class="video_list_item" :style="{marginLeft: item.id!==1 ? '1%' : '0'}" v-for="item in videoList" :key="item.id" @click="playerOn(item.cmBrandFiles[0].ossUrl)" v-if="item.pcStatus == '1'">
                                 <div class="video_list_item_content">
@@ -467,7 +467,7 @@
                         </div>
                     </div>
                     <div class="community_article">
-                        <div class="community_title">干货知识<a href="/supplier/attractionMore.html?active=1">更多></a></div>
+                        <div class="community_title">干货知识<a href="/supplier/attractionMore.html?active=3">更多></a></div>
                         <div class="community_list" v-if="isPC" v-cloak>
                             <div class="article_list_item" :style="{marginLeft: item.id!==1 ? '1%' : '0'}" v-for="item in articelList" :key="item.id" @click="textInfo(item.id)" v-if="item.pcStatus == '1'">
                                 <div class="article_list_item_content">

+ 2 - 2
src/main/resources/templates/supplier_login/more.html

@@ -19,9 +19,9 @@
   <el-image :src="isPC ? 'https://static.caimei365.com/app/img/supplier-login/growth/pc-banner.png' : 'https://static.caimei365.com/app/img/supplier-login/growth/banner.png'" class="bg-More"></el-image>
   <div class="contain">
     <div class="content-tab">
-      <div :class="item.id === active ? 'active' : ''" class="tab" v-for="item in contentList" :key="item.id" @click="handlerActiveTab(item)">{{ item.title }}</div>
+      <div :class="item.id === params.type ? 'active' : ''" class="tab" v-for="item in contentList" :key="item.id" @click="handlerActiveTab(item)">{{ item.title }}</div>
     </div>
-    <div class="grid-content" v-if="active === 0" :style="{gridTemplateRows: `repeat(${templateRowsNum}, 1fr)`}">
+    <div class="grid-content" v-if="params.type === 2" :style="{gridTemplateRows: `repeat(${templateRowsNum}, 1fr)`}">
       <com-video v-for="item in dataList" :key="item.id" :content="item.title" @click.native="handlerVideo(item)" :id="item.id" :image="isPC ? item.headPcBanner : item.headAppBanner"/>
     </div>
     <div class="grid-content" v-else :style="{gridTemplateRows: `repeat(${templateRowsNum}, 1fr)`}">