瀏覽代碼

v1.3.9信息中心修改

xiebaomin 1 年之前
父節點
當前提交
3a31ce32e8

+ 9 - 0
src/main/java/com/caimei/www/controller/unlimited/ArticleController.java

@@ -79,6 +79,7 @@ public class ArticleController extends BaseController {
         model.addAttribute("labelId", 0);
         model.addAttribute("pageNum", pageNum);
         model.addAttribute("isSearch", true);
+        model.addAttribute("isSelectInfo", true);
         //model.addAttribute("pagePath", String.format("/info/center-%s-1.html", id));
         return ARTICLE_LIST_PATH;
     }
@@ -98,6 +99,7 @@ public class ArticleController extends BaseController {
         model.addAttribute("labelId", id);
         model.addAttribute("pageNum", pageNum);
         model.addAttribute("isSearch", false);
+        model.addAttribute("isSelectInfo", true);
         //model.addAttribute("pagePath", String.format("/info/label-%s-1.html", id));
         return ARTICLE_LIST_PATH;
     }
@@ -122,6 +124,7 @@ public class ArticleController extends BaseController {
         model.addAttribute("labelId", 0);
         model.addAttribute("pageNum", pageNum);
         model.addAttribute("isSearch", true);
+        model.addAttribute("isSelectInfo", id == 1);
         return ARTICLE_RECOMMENDATION;
     }
 
@@ -148,6 +151,10 @@ public class ArticleController extends BaseController {
         List<BaseLink> typeList = articleService.getArticleTypes();
         List<BaseLink> data = articleService.getArticleLabels().getData();
         List<ImageLink> Ads = articleService.getLastestInfoAds().getData();
+        List<CmProductArchiveFile> archiveFiles = articleService.findArchiveFileAddTime(0, 3);
+        List<ProductList> productSellNumbers = productService.getProductSellNumbers();
+        model.addAttribute("productSellNumbers", productSellNumbers);//销量前三商品
+        model.addAttribute("archiveFiles", archiveFiles);//最新美业资料top3
         model.addAttribute("ads", Ads);
         model.addAttribute("labels", data);
         model.addAttribute("articleType", typeList);
@@ -155,6 +162,7 @@ public class ArticleController extends BaseController {
         model.addAttribute("labelId", 0);
         model.addAttribute("pageNum", pageNum);
         model.addAttribute("isSearch", false);
+        model.addAttribute("isSelectInfo", true);
         //model.addAttribute("pagePath", "/info/search.html");
         return ARTICLE_LIST_PATH;
     }
@@ -220,6 +228,7 @@ public class ArticleController extends BaseController {
         model.addAttribute("relatedLabels", relatedLabels);
         model.addAttribute("typeId", (article != null ? article.getTypeId() : 0));
         model.addAttribute("labelId", 0);
+        model.addAttribute("isSelectInfo", true);
         return ARTICLE_DETAIL_PATH;
     }
 

+ 28 - 22
src/main/resources/static/css/article/article.css

@@ -103,19 +103,19 @@ dl,dd,dt{zoom:1}
 	/*.nav .logo img{width:168px;height:56px}*/
 	.nav .type{display:table-cell;vertical-align:top;height:70px}
 	.nav .type .type-content {width: 1185px; margin: 0 auto;display: flex;}
-	.header .nav .type-content .type-item {cursor: pointer;display: flex;justify-content: space-around;align-items: center;position: relative;}
+	.header .nav .type-content .type-item {cursor: pointer;display: flex;justify-content: space-around;align-items: center;position: relative;padding: 0 16px;}
 	.header .nav .type-content .type-item .type-item-link {box-sizing: border-box;background: url(/img/article/PC.png);width: 24px; height: 24px;background-position: -76px -742px;}
 	.header .nav .type-content .type-item:hover .type-item-link {background-position: -110px -742px;}
 	.header .nav .type-content .type-item:hover {background: rgba(0,0,0,0.2);}
 	.header .nav .type-content .type-item a:hover {background: none;}
 	.header .nav .type-content .type-item .nav-menu {display: none;flex-direction: column;position: absolute;bottom: 0;left: 0;width: 100%;background: #fff;z-index:-1;padding-top: 78px;transition: .3s;}
 	.header .nav .type-content .type-item:hover .nav-menu {top: 0;bottom: unset;display: flex;}
-	.header .nav .type-content .type-item .nav-menu a {width: 100%;height: 40px;color: #4A4F58;display: flex;align-items: center;font-size: 14px;}
+	.header .nav .type-content .type-item .nav-menu a {width: 100%;height: 40px;color: #4A4F58;display: flex;align-items: center;font-size: 14px;padding-left: 10px;}
 	.header .nav .type-content .type-item .nav-menu a:hover {background: #FFF4EE;color: #FF5B00;}
 
-	.nav .type a{padding:0 16px;height:78px;line-height:78px;font-size:16px;color:#fff;text-align:center;display:table-cell;vertical-align:top;white-space:nowrap; box-sizing: border-box;}
+	.nav .type a{height:78px;line-height:78px;font-size:16px;color:#fff;text-align:center;display:table-cell;vertical-align:top;white-space:nowrap; box-sizing: border-box;}
 	.type a:hover{background-color:#e96c1c;border-bottom-color: #fec19a}
-	.header .nav .type-content .current{background-color:rgba(0,0,0,0.2);}
+	.header .nav .type-content .current{background-color:rgba(0,0,0,0.2);padding-right: 16px;}
 	/*.nav .search{position:relative;display:table-cell;vertical-align:top;width:200px;height:32px;margin-left:39px}*/
 	/*.nav .search .keyword{width:200px;height:32px;line-height:32px;margin:22px 0 16px 0;padding:0 32px 0 16px;border:none;border-radius:16px;background:#eb7941;color:#fff;font-size:14px}*/
 	.search .keyword:focus{border:none;outline:medium}
@@ -150,7 +150,12 @@ dl,dd,dt{zoom:1}
 	.featured-Articles .featured-content {display: flex;}
 	.featured-Articles .featured-content .item-content {margin-right:16px;display: flex;flex-direction: column; width: 202px;height: 190px;box-sizing: border-box;}
 	.featured-Articles .featured-content .item-content .item-img {width: 100%;height: 120px;}
-	.featured-Articles .featured-content .item-content .item-title {margin-top: 10px;width: 100%;height: calc(100% - 130px);font-size: 16px;color: #333333;line-height: 28px; -webkit-line-clamp: 2;text-overflow: ellipsis;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;}
+	.featured-Articles .featured-content .item-content .item-title {margin-top: 10px;width: 100%;font-size: 16px;color: #333333;line-height: 28px; -webkit-line-clamp: 2;text-overflow: ellipsis;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;}
+	.featured-Articles .featured-content .item-content a {display: block;height: calc(100% - 130px);}
+	.featured-Articles .featured-content .item-content .item-img .img-a {width: 100%;height: 100%;}
+	.featured-Articles .featured-content .item-content img {width: 100%;height: 100%;}
+	.featured-Articles .featured-content .item-content .item-img .img-a:hover {border: 2px solid #FF5B00;}
+	.featured-Articles .featured-content .item-content .text-a:hover .item-title {color: #FF5B00;}
 
 	.content{width:1185px;margin:0 auto;position:relative;}
 	.content .mainData{float:left;width: 884px;background:#f5f5f5;min-height: 900px; }
@@ -169,16 +174,16 @@ dl,dd,dt{zoom:1}
 	.info-banner {margin: 16px auto 0 auto;width: 1185px;height:384px;box-sizing: border-box;display: flex;justify-content: space-between;}
 	.info-banner .banner {width: 524px;border: 1px solid;}
 	.info-banner .sider-banner {width: 360px;display: flex;flex-direction: column;justify-content: space-between;}
-	.info-banner .info-Notice {width: 284px;background: #fff;}
 	.info-banner .sider-banner div {height: 49%;}
-	.info-banner .info-Notice .notice-title {display: flex;justify-content: space-between;box-sizing: border-box;height: 48px;padding: 14px 16px;}
-	.info-banner .info-Notice .notice-title div:nth-child(1) {font-size: 16px;font-weight: bold;color: #333333;}
-	.info-banner .info-Notice .notice-content {height: calc(100% - 48px);padding: 0 20px;box-sizing: border-box;overflow: hidden;}
-	.info-banner .info-Notice .notice-content .notice-content-list {border-top: 1px solid #F0F0F0;}
-	.info-banner .info-Notice .notice-content .notice-content-li {padding: 14px 0 14px 18px;border-top: 1px solid #F0F0F0;list-style: disc;cursor: pointer;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;font-size: 16px;color: #333333;position: relative;}
-	.info-banner .info-Notice .notice-content .notice-content-li:before {content: "";width: 6px;height: 6px;background: #ccc;position: absolute;left: 0;border-radius: 50%;top: calc(50% - 4px);}
-	.info-banner .info-Notice .notice-content .notice-content-li:hover {color: #FF5B00;}
-	.info-banner .info-Notice .notice-content .notice-content-li:hover:before {background: #FF5B00;}
+	.info-Notice {width: 284px;background: #fff;}
+	.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;}
+	.info-Notice .notice-content {height: calc(100% - 48px);padding: 0 20px;box-sizing: border-box;overflow: hidden;}
+	.info-Notice .notice-content .notice-content-list {border-top: 1px solid #F0F0F0;}
+	.info-Notice .notice-content .notice-content-li {padding: 14px 0 14px 18px;border-top: 1px solid #F0F0F0;list-style: disc;cursor: pointer;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;font-size: 16px;color: #333333;position: relative;}
+	.info-Notice .notice-content .notice-content-li:before {content: "";width: 6px;height: 6px;background: #ccc;position: absolute;left: 0;border-radius: 50%;top: calc(50% - 4px);}
+	.info-Notice .notice-content .notice-content-li:hover {color: #FF5B00;}
+	.info-Notice .notice-content .notice-content-li:hover:before {background: #FF5B00;}
 
 	.new-list .row{position:relative;display:table;width:800px;height:150px;margin:0 30px;padding:24px 0;border-bottom:solid 1px #ededed}
 	.row .new-img{position:absolute;width:210px;height:150px;margin-right:20px;background:#FFF url(/img/base/placeholder.png) no-repeat center center;}
@@ -209,14 +214,14 @@ dl,dd,dt{zoom:1}
 	.article .date{margin-right:30px}
 	.article .write{margin-left:5px;margin-right:30px}
 	.row .new-blurb .introduction{margin-top: 10px; color:#777;font-size:14px;line-height:26px;min-height:52px;overflow :hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
-	.content .other{width:284px;float:right}
-	.content .classify{height:50px;line-height:50px;border-left:solid 4px #FF5B00;font-size:20px;color:#333;padding-left:15px;padding-right:5px;background:#fff; display: flex;justify-content: space-between;}
+	.other{width:284px;float:right}
+	.classify{height:50px;line-height:50px;border-left:solid 4px #FF5B00;font-size:20px;color:#333;padding-left:15px;padding-right:5px;background:#fff; display: flex;justify-content: space-between;}
 
 
-	.content .classify .pre,.content .classify .next{display:inline-block;width:16px;height:16px;line-height:16px;color:#fff;text-align:center;float:right;margin-right:10px;margin-top:20px;cursor:pointer;background:#ccc;font-size:12px;font-weight:normal}
-	.content .classify .pre:before{content:"\276E"}
-	.content .classify .next:before{content:"\276F"}
-	.content .classify .pre:hover,.content .classify .next:hover{background:#FF5B00}
+	.classify .pre,.content .classify .next{display:inline-block;width:16px;height:16px;line-height:16px;color:#fff;text-align:center;float:right;margin-right:10px;margin-top:20px;cursor:pointer;background:#ccc;font-size:12px;font-weight:normal}
+	.classify .pre:before{content:"\276E"}
+	.classify .next:before{content:"\276F"}
+	.classify .pre:hover,.content .classify .next:hover{background:#FF5B00}
 	.tags{background:#fff}
 	.tag{max-height:437px;overflow:hidden;padding:18px 7px 2px 19px;border-top:solid 1px #ededed;margin-bottom:20px}
 	.tag a{float:left;font-size:14px;color:#fff;height:32px;line-height:32px;padding:0 12px;background:#FF5B00;text-align:center;border-radius:4px;margin:2px 12px 18px 0;cursor:pointer}
@@ -386,7 +391,7 @@ dl,dd,dt{zoom:1}
 	.van-collapse-item__content {padding: 0 !important;}
 	.van-collapse-item__content .van-collapse-nav {padding: 3vw 0 0 3vw;display: block;font-size: 3.2vw;}
 
-	.info-banner .info-Notice {display: none;}
+	.info-Notice {display: none;}
 	.info-banner {margin: 3.2vw auto;width: 94.4vw;display: flex;justify-content: space-between;align-items: center;height: 40vw;}
 	.info-banner .banner {width: 55vw;height: 100%;border: 1px solid;box-sizing: border-box;}
 	.info-banner .sider-banner {width: 37.8vw; height: 100%;box-sizing: border-box;display: flex;flex-direction: column;justify-content: space-between;}
@@ -399,7 +404,8 @@ dl,dd,dt{zoom:1}
 	.featured-Articles .featured-title div:nth-child(1) {color: #333333;font-size: 3.6vw;font-weight: bold;border-bottom: 2px solid #FF5B00;}
 	.featured-Articles .featured-content {height: 34vw;overflow-x: scroll;width: 100%;white-space: nowrap;}
 	.featured-Articles .featured-content .item-content {margin-right:1.6vw;flex-direction: column;width: 33.6vw; box-sizing: border-box;height: 100%;display: inline-block;vertical-align: top;}
-	.featured-Articles .featured-content .item-content .item-img {width: 100%;height: 20vw;margin-bottom: 2.4vw;}
+	.featured-Articles .featured-content .item-content .item-img {width: 100%;height: 20vw;margin-bottom: 2.4vw;box-sizing: border-box;}
+	.featured-Articles .featured-content .item-content img {width: 100%;height:100%;}
 	.featured-Articles .featured-content .item-content .item-title {color: #333333;font-size: 2.8vw;width:100%;overflow: hidden;white-space: normal;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;}
 
 	.header .logo,.header .home{display:none}

+ 63 - 11
src/main/resources/static/css/article/recommendation.css

@@ -1,10 +1,41 @@
 @media screen and (min-width:768px) {
-    #Recommendation {
+
+    .header {
+        position: fixed !important;
+    }
+
+    .mainContent {
+        width: 1185px;
+        margin: 220px auto 0 auto;
         padding-top: 16px;
     }
 
+    #Recommendation {
+        float: left;
+    }
+
+    .classify .pre, .classify .next {
+        display: inline-block;
+        width: 16px;
+        height: 16px;
+        line-height: 16px;
+        color: #fff;
+        text-align: center;
+        float: right;
+        margin-right: 10px;
+        margin-top: 20px;
+        cursor: pointer;
+        background: #ccc;
+        font-size: 12px;
+        font-weight: normal;
+    }
+
+    .foot {
+        float: left;
+    }
+
     .content {
-        width: 1185px;
+        width: auto !important;
         margin: 0 auto;
         position: relative;
     }
@@ -21,6 +52,7 @@
         background: #fff;
     }
 
+
     .content .mainData .selectList .select-title {
         font-size: 18px;
         color: #333;
@@ -44,6 +76,10 @@
         height: 168px;
         width: 260px;
         margin-right: 16px;
+        cursor: pointer;
+    }
+    .select-content .select-content-item .img-left:hover {
+        border: 2px solid #FF5B00;
     }
     .content .mainData .selectList .select-content .select-content-item .item-content {
         display: flex;
@@ -59,6 +95,10 @@
         text-overflow: ellipsis;
         white-space: nowrap;
         margin-bottom: 13px;
+        cursor: pointer;
+    }
+    .select-content-item .item-content .item-1:hover {
+        color: #FF5B00;
     }
     .select-content-item .item-content .item-2 {
         color: #888888;
@@ -95,6 +135,9 @@
         display: flex;
         align-items: center;
     }
+    .select-content-item .item-content .item-4 .group {
+        display: flex;
+    }
     .select-content-item .item-content .item-4 .label-text {
         margin-right: 24px;
     }
@@ -298,7 +341,7 @@
         border-bottom: 2px solid #FF5B00;
     }
     .select-content .select-content-item {
-        height: 34.2vw;
+        min-height: 34.2vw;
         border-bottom: 1px solid #CCCCCC;
         display: flex;
         align-items: center;
@@ -307,19 +350,23 @@
         width: 38.8vw;
         height: 25.2vw;
         margin-right: 2.4vw;
+        box-sizing: border-box;
     }
     .select-content .select-content-item .item-content {
         width: 46.1vw;
-        height: 29.2vw;
+        min-height: 29.2vw;
         overflow: hidden;
         display: flex;
         flex-direction: column;
         justify-content: space-between;
+        padding: 2vw 0;
     }
     .select-content .select-content-item .item-content .icon {
-        width: 4.8vw;
-        height: 4.8vw;
-        background: url(/img/article/PC.png);
+        width: 4vw;
+        height: 4vw;
+        background: url(/img/base/icon_m.png) no-repeat;
+        background-size: 100vw auto;
+        margin-right: 1vw;
     }
     .select-content .select-content-item .item-content .item-1 {
         white-space: nowrap;
@@ -344,7 +391,7 @@
     }
     .select-content .select-content-item .item-content .item-3 .label-icon {
         float: left;
-        background-position: -18vw -183vw;
+        background-position: -15vw -17.5vw;
     }
     .select-content .select-content-item .item-content .item-3 .split {
         margin: 0 1vw;
@@ -354,15 +401,20 @@
         font-size: 2.2vw;
         display: flex;
         align-items: center;
+        flex-wrap: wrap;
+        justify-content: space-between;
+    }
+    .select-content .select-content-item .item-content .item-4 .group {
+        display: flex;
     }
     .select-content .select-content-item .item-content .item-4 .label-icon-1 {
-        background-position: -25vw -183vw;
+        background-position: -30vw -17.5vw;
     }
     .select-content .select-content-item .item-content .item-4 .label-icon-2 {
-        background-position: -32vw -183vw;
+        background-position: -22.5vw -17.5vw;
     }
     .select-content .select-content-item .item-content .item-4 .label-icon-3 {
-        background-position: -39vw -183vw;
+        background-position: -37.5vw -17.5vw;
     }
 
     /*美业资料*/

+ 23 - 5
src/main/resources/static/js/article/list.js

@@ -28,7 +28,7 @@ var articleList = new Vue({
             endDate: '',
             productFlag: 1, // 是否统计关键词 1 统计 0 不统计
             linkageFlag: 0, // 关键词来源是否为用户搜索 0 是 1 不是
-            selectDataRoutes: 1 // 最新 最早
+            sortType: 1 // 最新 最早
         },
         listData: [],
         listRecord: 0,
@@ -150,7 +150,8 @@ var articleList = new Vue({
             var params = {
                 id: this.params.typeId,
                 pageSize: this.params.size,
-                pageNum: this.params.num
+                pageNum: this.params.num,
+                sortType: this.params.sortType
             }
             this.getArticleList(requestUrlConfig['typeId'], params);
         },
@@ -191,7 +192,7 @@ var articleList = new Vue({
         },
 
         // 获取文章列表
-        getArticleList: function (url, params) {
+        getArticleList: function (url, params, isSelect) {
             var self = this;
             $.getJSON(url, params, function (r) {
                 if (r.code === 0 && r.data) {
@@ -222,6 +223,10 @@ var articleList = new Vue({
                     if (isPC) {
                         self.listData = resultData
                     } else {
+                        if (isSelect) {
+                            self.listData = resultData
+                            return
+                        }
                         self.listData = self.listData.concat(resultData);
                     }
                 }
@@ -371,10 +376,20 @@ var articleList = new Vue({
             }
         },
 
-    //    文章列表切换 最新 最早
+        // 文章列表切换 最新 最早
         selectListNew(e) {
-            this.params.selectDataRoutes = e
+            this.params.sortType = e
+            this.params.size = 8
+            this.params.num = 1
+            let params = {
+                id: this.params.typeId,
+                pageSize: 8,
+                pageNum: 1,
+                sortType: this.params.sortType
+            }
+            this.getArticleList(requestUrlConfig['typeId'], params, true)
         },
+
         hanldDetails(id) {
             window.open('/news/details.html?id='+id);
         },
@@ -450,6 +465,9 @@ let searchTop = new Vue({
                 window.location.href = '/info/search-1.html?keyword=' + this.searchKeys
             }
         },
+        handleOpenLink() {
+            window.location.href = '/info/center-3-1.html'
+        }
     }
 })
 

+ 4 - 0
src/main/resources/static/js/article/recommendation.js

@@ -178,5 +178,9 @@ var recommendation = new Vue({
         filterArr(str) {
             return str.split(',')
         },
+        // 链接跳转
+        handleTramp(id) {
+            window.location.href = '/info/detail-' + id + '-1.html'
+        }
     }
 })

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

@@ -32,5 +32,16 @@ var BeautyArchiveApi = {
         }).then(function (res) {
             callback(res);
         });
+    },
+    //用户浏览资料记录
+    GetStatisticsAddPv: function (params, callback) {
+        Http.AjaxService({
+            url: '/commodity/statistics/addPv',
+            type: 'GET',
+            data: params,
+            json: false,
+        }).then(function (res) {
+            callback(res);
+        });
     }
 };

+ 20 - 2
src/main/resources/static/js/document/beautyArchiveDetailMixin.js

@@ -47,8 +47,17 @@ var beautyArchiveDetailMixin = {
         }
     },
     methods: {
+        // 文件浏览记录
+        GetStatisticsAddPv(type, authorId) {
+            BeautyArchiveApi.GetStatisticsAddPv({type, authorId}, () => {
+                console.log("浏览记录成功")
+            })
+        },
         // 图片点击事件
-        handleShowImage: function (i, imageList) {
+        handleShowImage: function (i, imageList, info) {
+            if (info) {
+                this.GetStatisticsAddPv(1, info.archiveContentId)
+            }
             if (this.permission === 2 || this.permission === 4 || this.permission === 1) {
                 if (imageList && imageList.length >= 5) {
                     if (i < 2) {
@@ -74,7 +83,10 @@ var beautyArchiveDetailMixin = {
             this.imageGroup = imageGroup;
         },
         //显示视频播放窗口
-        handleShowPlayer: function (url, dom) {
+        handleShowPlayer: function (url, dom, info) {
+            if (info) {
+                this.GetStatisticsAddPv(1, info.archiveContentId)
+            }
             if (this.permission === 2 || this.permission === 4 || this.permission === 1) {
                 let _self = this;
                 //暂停上一个正在播放的播放器
@@ -150,6 +162,9 @@ var beautyArchiveDetailMixin = {
         },
         //预览office文件 word ppt pdf
         handlePreviewOffice: function (file) {
+            if (file) {
+                this.GetStatisticsAddPv(1, file.archiveContentId)
+            }
             if (this.checkPermission() !== 0) return;
             var index = file.fileName.lastIndexOf('.');
             var suffix = file.fileName.substring(index);
@@ -174,6 +189,9 @@ var beautyArchiveDetailMixin = {
         },
         //文件预览跳转页面
         fileContentPreview(str) {
+            if (str) {
+                this.GetStatisticsAddPv(1, str.archiveContentId)
+            }
             if (window.localStorage.getItem('filePreviewInfo')) {
                 window.localStorage.removeItem('filePreviewInfo')
             }

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

@@ -35,7 +35,7 @@
       <div class="hot-recommend-title">
         <div>你可能感兴趣的商品</div>
         <div>
-          <a>更多 ></a>
+          <a href="/product/list.html">更多 ></a>
         </div>
       </div>
       <div class="hot-recommend-content">

+ 4 - 4
src/main/resources/templates/article/components/article-header.html

@@ -9,7 +9,7 @@
     </div>
 <!--    搜索头-->
     <div class="search-top" :class="(show || right_drawer) ? 'search-top-shadow' : '' ">
-        <div class="info-logo-content"></div>
+        <div class="info-logo-content" @click="handleOpenLink"></div>
         <div class="search auto-input" id="topSearch">
             <div class="search-info">
                 <label>
@@ -18,13 +18,13 @@
                 <a class="searchBtn icon" href="javascript:void(0);">搜索</a>
             </div>
             <div class="keywords">
-                <div th:each="label : ${labels}">
+                <div th:each="label,count : ${labels}">
                     <a th:href="'/info/label-' + ${label.id} + '-1.html'" th:text="${label.name}"></a>
-                    <span> / </span>
+                    <span th:if="${!count.last}"> / </span>
                 </div>
             </div>
         </div>
-        <div class="H5-info-logo"></div>
+        <div class="H5-info-logo" @click="handleOpenLink"></div>
         <div class="H5-info-menu">
             <div @click="(right_drawer = false), (show = !show)"></div>
             <div>菜单</div>

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

@@ -1,5 +1,5 @@
-<html xmlns:th="http://www.w3.org/1999/xhtml">
-<div class="other" id="articleSide" v-cloak>
+<html xmlns:th="http://www.w3.org/1999/xhtml" >
+<div class="other" id="articleSide" v-cloak th:if="${isSelectInfo}">
 <!--    &lt;!&ndash;侧边栏Ross广告图&ndash;&gt;-->
 <!--    <div v-if="isPC && isRossShow" class="article-right-ross" :class="isRossShow ? 'show' : 'none'">-->
 <!--        <a href="/supplier-1378.html" v-if="isPC"><img src="/img/ross/ross-image@1x.jpg" alt="深圳艾斯佰丽生物科技有限公司"></a>-->
@@ -31,7 +31,7 @@
             <span class="more-product">
 <!--                <span v-if="recommend.nextPage" class="next" @click="getRecommend(typeId, recommend.nextPage)"></span>-->
 <!--                <span v-if="recommend.prePage" class="pre" @click="getRecommend(typeId, recommend.prePage)"></span>-->
-                <a>更多 ></a>
+                <a href="/product/list.html">更多 ></a>
             </span>
         </p>
         <div class="row" th:each="product: ${productSellNumbers}" >

+ 9 - 5
src/main/resources/templates/article/list.html

@@ -68,9 +68,13 @@
                 <div class="featured-content">
                     <div class="item-content" th:each="featured: ${infoSelected}">
                         <div class="item-img">
-                            <img th:src="${featured.image}" style="width: 100%;height: 100%;"/>
+                            <a th:href="'/info/detail-' + ${featured.id} + '-1.html'" class="img-a">
+                                <img th:src="${featured.image}"/>
+                            </a>
                         </div>
-                        <div class="item-title" th:text="${featured.title}"></div>
+                        <a th:href="'/info/detail-' + ${featured.id} + '-1.html'" class="text-a">
+                            <div class="item-title" th:text="${featured.title}"></div>
+                        </a>
                     </div>
                 </div>
             </div>
@@ -119,10 +123,10 @@
                 </div>
             </div>
             <!-- 文章列表 -->
-            <div class="listData-select-title">
+            <div class="listData-select-title" th:if="${isSearch}">
                 <div class="search-select">
-                    <div class="select-new" :class="params.selectDataRoutes === 1 ? 'now-search-select' : '' " @click="selectListNew(1)">最新</div>
-                    <div class="select-earliest" :class="params.selectDataRoutes === 0 ? 'now-search-select' : '' " @click="selectListNew(0)">最早</div>
+                    <div class="select-new" :class="params.sortType === 1 ? 'now-search-select' : '' " @click="selectListNew(1)">最新</div>
+                    <div class="select-earliest" :class="params.sortType === 2 ? 'now-search-select' : '' " @click="selectListNew(2)">最早</div>
                 </div>
             </div>
             <div v-if="listData.length>0" class="dataRousce">

+ 110 - 101
src/main/resources/templates/article/recommendation.html

@@ -7,121 +7,130 @@
     <template th:replace="components/analysis"></template>
 </head>
 
-<body class="home listData">
+<body>
     <!--导航栏-->
     <template th:replace="article/components/article-header"></template>
 
-    <div id="Recommendation" v-cloak>
-        <div class="content clearfix" v-if="state == 1">
-            <div class="mainData">
-                <div class="selectList">
-                    <div class="select-title">
-                        <div>精选推荐</div>
-                    </div>
-                    <div class="select-content">
-                        <div class="select-content-item" v-for="item in articlerecommendationData">
-                            <div class="img-left">
-                                <img style="width: 100%;height: 100%;" :src="item.image" />
-                            </div>
-                            <div class="item-content">
-                                <div>
-                                    <div class="item-1" v-html="item.title"></div>
-                                    <div class="item-2" v-text="filterTab(item.content)"></div>
-                                    <div class="item-3">
-                                        <div class="label-icon icon"></div>
-                                        <template v-for="(i, o) in filterArr(item.label)">
-                                            <span class="split" v-if="o !== 0">|</span>
-                                            <span>{{i}}</span>
-                                        </template>
-                                    </div>
+    <div class="mainContent">
+        <div id="Recommendation" v-cloak>
+            <div class="content clearfix" v-if="state == 1">
+                <div class="mainData">
+                    <div class="selectList">
+                        <div class="select-title">
+                            <div>精选推荐</div>
+                        </div>
+                        <div class="select-content">
+                            <div class="select-content-item" v-for="item in articlerecommendationData">
+                                <div class="img-left" @click="handleTramp(item.id)">
+                                    <img style="width: 100%;height: 100%;" :src="item.image" />
                                 </div>
-                                <div class="item-4">
-                                    <div class="label-icon-1 icon"></div>
-                                    <div class="label-text">{{ item.pv }}</div>
-                                    <div class="label-icon-2 icon"></div>
-                                    <div class="label-text">采美网</div>
-                                    <div class="label-icon-3 icon"></div>
-                                    <div class="label-text">{{ item.publishDate | filterDate }}</div>
+                                <div class="item-content">
+                                    <div>
+                                        <div class="item-1" v-html="item.title" @click="handleTramp(item.id)"></div>
+                                        <div class="item-2" v-text="filterTab(item.content)"></div>
+                                        <div class="item-3">
+                                            <div class="label-icon icon"></div>
+                                            <template v-for="(i, o) in filterArr(item.label)">
+                                                <span class="split" v-if="o !== 0">|</span>
+                                                <span>{{i}}</span>
+                                            </template>
+                                        </div>
+                                    </div>
+                                    <div class="item-4">
+                                        <div class="group">
+                                            <div class="label-icon-1 icon"></div>
+                                            <div class="label-text">{{ item.pv }}</div>
+                                        </div>
+                                        <div class="group">
+                                            <div class="label-icon-2 icon"></div>
+                                            <div class="label-text">采美网</div>
+                                        </div>
+                                        <div class="group">
+                                            <div class="label-icon-3 icon"></div>
+                                            <div class="label-text">{{ item.publishDate | filterDate }}</div>
+                                        </div>
+                                    </div>
                                 </div>
                             </div>
                         </div>
+                        <div v-if="!isPC && noMore && stateObj.hasNextPage" class="more" @click="handleMore(params.num*1+1)">
+                            <div>查看更多</div>
+                            <img src="">
+                        </div>
                     </div>
-                    <div v-if="!isPC && noMore && stateObj.hasNextPage" class="more" @click="handleMore(params.num*1+1)">
-                        <div>查看更多</div>
-                        <img src="">
-                    </div>
-                </div>
 
-                <div class="pageWrap clear" v-if="isPC && stateObj.totalRecord > 0">
-                    <a class="prev" :href="'/info/articlerecommendation-1-' + (stateObj.pageNum - 1) + '.html?isSelected'" v-if="stateObj.hasPreviousPage"></a>
-                    <template v-for="item in stateObj.totalPage">
-                      <a :href="'/info/articlerecommendation-1-' + item + '.html?isSelected'" v-text="item"></a>
-                    </template>
-                    <a class="next" v-if="stateObj.hasNextPage" :href="'/info/articlerecommendation-1-' + (stateObj.pageNum + 1) + '.html?isSelected'"></a>
-                    <span>共<b v-text="stateObj.totalPage"></b>页</span>
-                    <span>跳至</span>
-                    <input v-model="pageInput" />
-                    <span>页</span>&nbsp;
-                    <a class="btn" href="javascript:void(0)" @click="changeLink">点击跳转</a>
+                    <div class="pageWrap clear" v-if="isPC && stateObj.totalRecord > 0">
+                        <a class="prev" :href="'/info/articlerecommendation-1-' + (stateObj.pageNum - 1) + '.html?isSelected'" v-if="stateObj.hasPreviousPage"></a>
+                        <template v-for="item in stateObj.totalPage">
+                            <a :href="'/info/articlerecommendation-1-' + item + '.html?isSelected'" v-text="item"></a>
+                        </template>
+                        <a class="next" v-if="stateObj.hasNextPage" :href="'/info/articlerecommendation-1-' + (stateObj.pageNum + 1) + '.html?isSelected'"></a>
+                        <span>共<b v-text="stateObj.totalPage"></b>页</span>
+                        <span>跳至</span>
+                        <input v-model="pageInput" />
+                        <span>页</span>&nbsp;
+                        <a class="btn" href="javascript:void(0)" @click="changeLink">点击跳转</a>
+                    </div>
                 </div>
+                <!--侧边栏Ross广告图-->
+<!--                <div v-if="isPC && isRossShow" class="article-right-ross" :class="isRossShow ? 'show' : 'none'">-->
+<!--                    <a href="/supplier-1378.html" v-if="isPC"><img src="/img/ross/ross-image@1x.jpg" alt="深圳艾斯佰丽生物科技有限公司"></a>-->
+<!--                </div>-->
             </div>
-            <!--侧边栏Ross广告图-->
-            <div v-if="isPC && isRossShow" class="article-right-ross" :class="isRossShow ? 'show' : 'none'">
-                <a href="/supplier-1378.html" v-if="isPC"><img src="/img/ross/ross-image@1x.jpg" alt="深圳艾斯佰丽生物科技有限公司"></a>
-            </div>
-            <!--侧边栏-->
-            <template th:replace="article/components/article-sidebar"></template>
-        </div>
-        <div class="infomationlist" v-else>
-            <div class="title" v-if="state == 2">
-                <div>所有公告</div>
-            </div>
-            <div class="list-mainData">
-                <ul v-if="state == 2">
-                    <li class="item" v-for="item in listData" :key="item.id">
-                        <div>{{item.title}}</div>
-                        <div>{{item.creationtime}}</div>
-                    </li>
-                </ul>
-                <ul v-else>
-                    <li v-for="item in articlerecommendationData">
-                        <a class="info-item" :href="item.ossUrl">
-                            <div>
-                                <img src="/img/article/PC--pdf.png" style="width: 100%;height: 100%;object-fit: contain;" />
-                            </div>
-                            <div v-html="item.fileName"></div>
-                        </a>
-                    </li>
-                </ul>
-                <div class="pageWrap clear" v-if="isPC && state !== 2">
-                    <a class="prev" :href="'/info/articlerecommendation-0-' + (stateObj.pageNum - 1) + '.html?isDocument'" v-if="stateObj.hasPreviousPage"></a>
-                    <template v-for="n in stateObj.totalPage">
-                      <a v-if="n" :class="{'on':(n==params.num)}" :href="'/info/articlerecommendation-0-' + n + '.html?isDocument'" v-text="n"></a>
-                      <span v-else>···</span>
-                    </template>
-                    <a v-if="stateObj.hasNextPage" class="next" :href="'/info/articlerecommendation-0-' + (stateObj.pageNum + 1) + '.html?isDocument'"></a>
-                    <span>共<b v-text="stateObj.pageNum"></b>页</span>
-                    <span>跳至</span>
-                    <input v-model="pageInput" />
-                    <span>页</span>&nbsp;
-                    <a class="btn" href="javascript:void(0)" @click="changeLink">点击跳转</a>
+            <div class="infomationlist" v-else>
+                <div class="title" v-if="state == 2">
+                    <div>所有公告</div>
                 </div>
-                <div v-if="isPC && pageTotal>1 && state == 2" class="pageWrap clear">
-                    <a v-if="params.num>1" class="prev" :href="paginationUrl(params.num*1-1)"></a>
-                    <template v-for="n in showPageBtn">
-                      <a v-if="n" :class="{'on':(n==params.num)}" :href="paginationUrl(n)" v-text="n"></a>
-                      <span v-else>···</span>
-                    </template>
-                    <a v-if="params.num<pageTotal" class="next" :href="paginationUrl(params.num*1+1)"></a>
-                    <span>共<b v-text="pageTotal>1?pageTotal:1"></b>页</span>
-                    <span>跳至</span>
-                    <input v-model="pageInput" @blur="checkNum()" />
-                    <span>页</span>&nbsp;
-                    <a class="btn" :href="paginationUrl(pageInput)">点击跳转</a>
+                <div class="list-mainData">
+                    <ul v-if="state == 2">
+                        <li class="item" v-for="item in listData" :key="item.id">
+                            <div>{{item.title}}</div>
+                            <div>{{item.creationtime}}</div>
+                        </li>
+                    </ul>
+                    <ul v-else>
+                        <li v-for="item in articlerecommendationData">
+                            <a class="info-item" :href="item.ossUrl">
+                                <div>
+                                    <img src="/img/article/PC--pdf.png" style="width: 100%;height: 100%;object-fit: contain;" />
+                                </div>
+                                <div v-html="item.fileName"></div>
+                            </a>
+                        </li>
+                    </ul>
+                    <div class="pageWrap clear" v-if="isPC && state !== 2">
+                        <a class="prev" :href="'/info/articlerecommendation-0-' + (stateObj.pageNum - 1) + '.html?isDocument'" v-if="stateObj.hasPreviousPage"></a>
+                        <template v-for="n in stateObj.totalPage">
+                            <a v-if="n" :class="{'on':(n==params.num)}" :href="'/info/articlerecommendation-0-' + n + '.html?isDocument'" v-text="n"></a>
+                            <span v-else>···</span>
+                        </template>
+                        <a v-if="stateObj.hasNextPage" class="next" :href="'/info/articlerecommendation-0-' + (stateObj.pageNum + 1) + '.html?isDocument'"></a>
+                        <span>共<b v-text="stateObj.pageNum"></b>页</span>
+                        <span>跳至</span>
+                        <input v-model="pageInput" />
+                        <span>页</span>&nbsp;
+                        <a class="btn" href="javascript:void(0)" @click="changeLink">点击跳转</a>
+                    </div>
+                    <div v-if="isPC && pageTotal>1 && state == 2" class="pageWrap clear">
+                        <a v-if="params.num>1" class="prev" :href="paginationUrl(params.num*1-1)"></a>
+                        <template v-for="n in showPageBtn">
+                            <a v-if="n" :class="{'on':(n==params.num)}" :href="paginationUrl(n)" v-text="n"></a>
+                            <span v-else>···</span>
+                        </template>
+                        <a v-if="params.num<pageTotal" class="next" :href="paginationUrl(params.num*1+1)"></a>
+                        <span>共<b v-text="pageTotal>1?pageTotal:1"></b>页</span>
+                        <span>跳至</span>
+                        <input v-model="pageInput" @blur="checkNum()" />
+                        <span>页</span>&nbsp;
+                        <a class="btn" :href="paginationUrl(pageInput)">点击跳转</a>
+                    </div>
+                    <div v-if="!isPC && noMore" class="more" @click="handleMore(params.num*1+1)">查看更多</div>
                 </div>
-                <div v-if="!isPC && noMore" class="more" @click="handleMore(params.num*1+1)">查看更多</div>
             </div>
         </div>
+
+        <!--侧边栏-->
+        <template th:replace="article/components/article-sidebar"></template>
     </div>
 
     <template th:replace="article/components/article-drawer"></template>
@@ -130,7 +139,7 @@
     <script charset="utf-8" type="text/javascript" src="/lib/datapicker/moment-2.29.min.js"></script>
     <script charset="utf-8" type="text/javascript" src="/lib/datapicker/jquery.daterangepicker.js"></script>
     <script charset="utf-8" type="text/javascript" th:src="@{/lib/element-ui/element-ui.min.js}"></script>
-    <script src="https://unpkg.com/vant@2.12/lib/vant.min.js"></script>
+    <script type="text/javascript" src="/lib/element-ui/vant.min.js"></script>
     <script charset="utf-8" type="text/javascript" th:src="@{/js/common/ajax.service.js}"></script>
     <script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/product.service.js}"></script>
     <script charset="utf-8" type="text/javascript" th:src="@{/js/article/common.js(v=${version})}"></script>

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

@@ -657,7 +657,7 @@
                                     <div class="cm-detail  clear cm-images" :class="{'cm-one':item.imageNum === 1,'cm-two':item.imageNum === 2,'cm-list':item.imageNum>2   }">
                                         <!--可查看图片列表-->
                                         <template v-if="item.imageList">
-                                            <div class="cm-img-box" @click="handleShowImage(i, item.imageList)" v-for="(image, i) in formatImage(item.imageList)" :key="i">
+                                            <div class="cm-img-box" @click="handleShowImage(i, item.imageList, item)" v-for="(image, i) in formatImage(item.imageList)" :key="i">
                                                 <img :src="image.imageUrl"/>
                                             </div>
                                         </template>
@@ -683,7 +683,7 @@
                                     <div class="cm-time">{{ item.addTime | formatTime }}</div>
                                     <div class="cm-detail clear">
                                         <div class="cm-video-box">
-                                            <span class="cm-player-btn" @click="handleShowPlayer(item.fileUrl, 'video'+index)"></span>
+                                            <span class="cm-player-btn" @click="handleShowPlayer(item.fileUrl, 'video'+index, item)"></span>
                                             <video :src="item.fileUrl && item.fileUrl" :class="'video'+index" :poster="item.fileUrl ? '' : videoCover ">
                                                 您的浏览器不支持Video标签。
                                             </video>