Jing vor 1 Tag
Ursprung
Commit
23c8054e55

+ 12 - 0
.nuxt/components.d.ts

@@ -6,6 +6,8 @@ interface _GlobalComponents {
     'AdvertisingOrderList': typeof import("../components/advertising/OrderList.vue")['default']
     'DetailHotNews': typeof import("../components/detail/HotNews.vue")['default']
     'DetailHotNews2': typeof import("../components/detail/HotNews2.vue")['default']
+    'GoodsSwiperSnscShopInfoCateg': typeof import("../components/goods/SwiperSnscShopInfoCateg.vue")['default']
+    'GoodsClass': typeof import("../components/goods/class.vue")['default']
     'HomeAdvertising': typeof import("../components/home/Advertising.vue")['default']
     'HomeAdvertisingClass': typeof import("../components/home/AdvertisingClass.vue")['default']
     'HomeBigSwiper': typeof import("../components/home/BigSwiper.vue")['default']
@@ -26,6 +28,7 @@ interface _GlobalComponents {
     'HomePageHead': typeof import("../components/home/pageHead.vue")['default']
     'HomePageNavigation': typeof import("../components/home/pageNavigation.vue")['default']
     'HomePageNavigation1': typeof import("../components/home/pageNavigation1.vue")['default']
+    'NewsClass': typeof import("../components/news/class.vue")['default']
     'NuxtWelcome': typeof import("../node_modules/nuxt/dist/app/components/welcome.vue")['default']
     'NuxtLayout': typeof import("../node_modules/nuxt/dist/app/components/nuxt-layout")['default']
     'NuxtErrorBoundary': typeof import("../node_modules/nuxt/dist/app/components/nuxt-error-boundary")['default']
@@ -53,6 +56,8 @@ interface _GlobalComponents {
     'LazyAdvertisingOrderList': typeof import("../components/advertising/OrderList.vue")['default']
     'LazyDetailHotNews': typeof import("../components/detail/HotNews.vue")['default']
     'LazyDetailHotNews2': typeof import("../components/detail/HotNews2.vue")['default']
+    'LazyGoodsSwiperSnscShopInfoCateg': typeof import("../components/goods/SwiperSnscShopInfoCateg.vue")['default']
+    'LazyGoodsClass': typeof import("../components/goods/class.vue")['default']
     'LazyHomeAdvertising': typeof import("../components/home/Advertising.vue")['default']
     'LazyHomeAdvertisingClass': typeof import("../components/home/AdvertisingClass.vue")['default']
     'LazyHomeBigSwiper': typeof import("../components/home/BigSwiper.vue")['default']
@@ -73,6 +78,7 @@ interface _GlobalComponents {
     'LazyHomePageHead': typeof import("../components/home/pageHead.vue")['default']
     'LazyHomePageNavigation': typeof import("../components/home/pageNavigation.vue")['default']
     'LazyHomePageNavigation1': typeof import("../components/home/pageNavigation1.vue")['default']
+    'LazyNewsClass': typeof import("../components/news/class.vue")['default']
     'LazyNuxtWelcome': typeof import("../node_modules/nuxt/dist/app/components/welcome.vue")['default']
     'LazyNuxtLayout': typeof import("../node_modules/nuxt/dist/app/components/nuxt-layout")['default']
     'LazyNuxtErrorBoundary': typeof import("../node_modules/nuxt/dist/app/components/nuxt-error-boundary")['default']
@@ -106,6 +112,8 @@ export const AdvertisingBuyAD: typeof import("../components/advertising/BuyAD.vu
 export const AdvertisingOrderList: typeof import("../components/advertising/OrderList.vue")['default']
 export const DetailHotNews: typeof import("../components/detail/HotNews.vue")['default']
 export const DetailHotNews2: typeof import("../components/detail/HotNews2.vue")['default']
+export const GoodsSwiperSnscShopInfoCateg: typeof import("../components/goods/SwiperSnscShopInfoCateg.vue")['default']
+export const GoodsClass: typeof import("../components/goods/class.vue")['default']
 export const HomeAdvertising: typeof import("../components/home/Advertising.vue")['default']
 export const HomeAdvertisingClass: typeof import("../components/home/AdvertisingClass.vue")['default']
 export const HomeBigSwiper: typeof import("../components/home/BigSwiper.vue")['default']
@@ -126,6 +134,7 @@ export const HomeKefu: typeof import("../components/home/kefu.vue")['default']
 export const HomePageHead: typeof import("../components/home/pageHead.vue")['default']
 export const HomePageNavigation: typeof import("../components/home/pageNavigation.vue")['default']
 export const HomePageNavigation1: typeof import("../components/home/pageNavigation1.vue")['default']
+export const NewsClass: typeof import("../components/news/class.vue")['default']
 export const NuxtWelcome: typeof import("../node_modules/nuxt/dist/app/components/welcome.vue")['default']
 export const NuxtLayout: typeof import("../node_modules/nuxt/dist/app/components/nuxt-layout")['default']
 export const NuxtErrorBoundary: typeof import("../node_modules/nuxt/dist/app/components/nuxt-error-boundary")['default']
@@ -153,6 +162,8 @@ export const LazyAdvertisingBuyAD: typeof import("../components/advertising/BuyA
 export const LazyAdvertisingOrderList: typeof import("../components/advertising/OrderList.vue")['default']
 export const LazyDetailHotNews: typeof import("../components/detail/HotNews.vue")['default']
 export const LazyDetailHotNews2: typeof import("../components/detail/HotNews2.vue")['default']
+export const LazyGoodsSwiperSnscShopInfoCateg: typeof import("../components/goods/SwiperSnscShopInfoCateg.vue")['default']
+export const LazyGoodsClass: typeof import("../components/goods/class.vue")['default']
 export const LazyHomeAdvertising: typeof import("../components/home/Advertising.vue")['default']
 export const LazyHomeAdvertisingClass: typeof import("../components/home/AdvertisingClass.vue")['default']
 export const LazyHomeBigSwiper: typeof import("../components/home/BigSwiper.vue")['default']
@@ -173,6 +184,7 @@ export const LazyHomeKefu: typeof import("../components/home/kefu.vue")['default
 export const LazyHomePageHead: typeof import("../components/home/pageHead.vue")['default']
 export const LazyHomePageNavigation: typeof import("../components/home/pageNavigation.vue")['default']
 export const LazyHomePageNavigation1: typeof import("../components/home/pageNavigation1.vue")['default']
+export const LazyNewsClass: typeof import("../components/news/class.vue")['default']
 export const LazyNuxtWelcome: typeof import("../node_modules/nuxt/dist/app/components/welcome.vue")['default']
 export const LazyNuxtLayout: typeof import("../node_modules/nuxt/dist/app/components/nuxt-layout")['default']
 export const LazyNuxtErrorBoundary: typeof import("../node_modules/nuxt/dist/app/components/nuxt-error-boundary")['default']

+ 1 - 1
.nuxt/manifest/latest.json

@@ -1 +1 @@
-{"id":"13508e8a-e677-40b3-a2ab-3197eee808cc","timestamp":1747043176299}
+{"id":"dfdec9e5-f4a6-4750-a763-f9b529e2f898","timestamp":1749791870363}

+ 0 - 1
.nuxt/manifest/meta/13508e8a-e677-40b3-a2ab-3197eee808cc.json

@@ -1 +0,0 @@
-{"id":"13508e8a-e677-40b3-a2ab-3197eee808cc","timestamp":1747043176299,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

+ 1 - 0
.nuxt/manifest/meta/dfdec9e5-f4a6-4750-a763-f9b529e2f898.json

@@ -0,0 +1 @@
+{"id":"dfdec9e5-f4a6-4750-a763-f9b529e2f898","timestamp":1749791870363,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

+ 1 - 1
.nuxt/tsconfig.json

@@ -102,7 +102,7 @@
         "./imports"
       ],
       "#app-manifest": [
-        "./manifest/meta/13508e8a-e677-40b3-a2ab-3197eee808cc.json"
+        "./manifest/meta/dfdec9e5-f4a6-4750-a763-f9b529e2f898.json"
       ],
       "#components": [
         "./components"

+ 12 - 6
assets/css/class.less

@@ -254,7 +254,7 @@ section {
 }
 
 .channel2_top_content {
-    height: 230px;
+    height: 253px;
 }
 
 .channel_head:hover .channel_head_more {
@@ -364,7 +364,7 @@ section {
 
 .channel_3 {
     margin-top: 20px;
-    height: 485px;
+    height: 550px;
 }
 
 .channel_ul_3_a {
@@ -414,7 +414,10 @@ section {
         overflow: hidden;
     }
 
-    .channel_img_big_3_li_a {}
+    .channel_img_big_3_li_a {
+        display: inline-block;
+        width: 400px;
+    }
 
     .channel_img_big_3_li_img {
         display: block;
@@ -443,12 +446,13 @@ section {
 
     .channel_ul_4_li {
         width: 450px;
-        display: flex;
         height: 24px;
-        margin-bottom: 24px;
+        margin-bottom: 21px;
     }
 
     .channel_ul_4_li_num {
+        display: inline-block;
+        width: 50px;
         height: 24px;
         line-height: 24px;
         color: #ccc;
@@ -460,6 +464,8 @@ section {
     }
 
     .channel_ul_4_a {
+        display: inline-block;
+        width: 400px;
         height: 24px;
         line-height: 24px;
         color: #333;
@@ -650,7 +656,7 @@ section {
     line-height: 24px;
     color: #333;
     font-size: 18px;
-    margin-bottom: 37px;
+    margin-bottom: 20px;
     box-sizing: border-box;
     text-indent: 16px;
     position: relative;

+ 6 - 8
assets/css/detail.less

@@ -1,7 +1,7 @@
 // 资讯列表
 .newsDetail {
     width: 100%;
-    margin-bottom: 70px;
+    margin-bottom: 10px;
 
     .inner {
         width: 1200px;
@@ -16,8 +16,7 @@
             .breadcrumb {
                 width: 100%;
                 height: 22px;
-                padding-bottom: 30px;
-                margin-top: 40px;
+                padding-bottom: 20px;
                 border-bottom: 1px solid #e6e6e6;
                 font-family: Microsoft YaHei, Microsoft YaHei;
                 font-weight: 400;
@@ -72,13 +71,12 @@
             }
 
             .LeftTop {
-                // height: 522px;
-                margin-top: 50px;
+                margin-top: 20px;
 
                 >h1 {
 
                     line-height: 40px;
-                    margin-bottom: 30px;
+                    margin-bottom: 20px;
                     font-family: Microsoft YaHei, Microsoft YaHei;
                     font-weight: bold;
                     font-size: 30px;
@@ -107,7 +105,7 @@
 
             .leftBottom {
                 width: 885px;
-                margin-top: 50px;
+                margin-top: 10px;
                 font-size: 20px;
                 line-height: 38px;
                 margin-bottom: 30px;
@@ -170,7 +168,7 @@
 
         .innerRight {
             width: 270px;
-            margin-top: 60px;
+            margin-top: 10px;
         }
     }
 }

+ 2 - 2
assets/css/index.less

@@ -1214,8 +1214,8 @@ section {
 }
 
 .index_7 {
-    margin-top: 11px;
-    height: 411px;
+    margin-top: 30px;
+    height: 430px;
 }
 
 

+ 5 - 5
assets/css/list.less

@@ -23,7 +23,7 @@
             .breadcrumb {
                 width: 100%;
                 height: 22px;
-                padding-bottom: 30px;
+                padding-bottom: 20px;
                 border-bottom: 1px solid #ccc;
                 font-family: Microsoft YaHei, Microsoft YaHei;
                 font-weight: 400;
@@ -33,7 +33,7 @@
                 text-align: left;
                 font-style: normal;
                 text-transform: none;
-                margin-top: 40px;
+                margin-top: 20px;
 
                 :deep(.el-breadcrumb) {
                     display: inline-block;
@@ -132,7 +132,7 @@
 
                 >li:nth-child(5n) {
                     border-bottom: 1px solid #D9D9D9;
-                    padding-bottom: 30px;
+                    padding-bottom: 20px;
                 }
 
                 >li:nth-child(5n+1) {
@@ -141,7 +141,7 @@
                     }
 
                     font-weight: bold;
-                    padding-top: 30px;
+                    padding-top: 20px;
 
                 }
             }
@@ -187,7 +187,7 @@
 
         .innerRight {
             width: 270px;
-            margin-top: 50px;
+            margin-top: 30px;
         }
     }
 }

+ 371 - 0
assets/css/shop/goodsDetail.less

@@ -0,0 +1,371 @@
+@charset "utf-8";
+
+* {
+    font-family: "微软雅黑", "microsoft yahei";
+}
+
+ul,
+ol {
+    list-style: none;
+}
+
+a:active {
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: none;
+}
+
+a:visited {
+    text-decoration: none;
+}
+
+a:link {
+    text-decoration: none;
+}
+
+a:focus {
+    text-decoration: none;
+}
+
+body {
+    position: relative;
+}
+
+.clearfix {
+    overflow: hidden;
+}
+
+.clearfix_2::after {
+    content: '';
+    display: block;
+    height: 0;
+    visibility: hidden;
+    clear: both;
+}
+
+.hiddenColor {
+    visibility: hidden;
+}
+
+.hand {
+    cursor: pointer;
+}
+
+.aTag_parent {
+    position: relative;
+}
+
+.aTag_parent>a,
+.aTag {
+    display: block;
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    z-index: 99;
+    border: 0px;
+    top: 0px;
+    left: 0px;
+    background: rgba(0, 0, 0, 0);
+}
+
+.dot1 {
+    display: block;
+    word-break: keep-all;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.dot2 {
+    overflow: hidden;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+}
+
+input,
+img {
+    border: none;
+}
+
+.cover100 img {
+    display: block;
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+}
+
+.back100 {
+    background-size: 100% 100%;
+    background-repeat: no-repeat;
+}
+
+article,
+aside,
+footer,
+header,
+time,
+video,
+main,
+nav,
+h4,
+h3,
+section {
+    display: block;
+}
+
+.index_main {
+    margin: 0 auto 444px;
+}
+
+.slow_6 {
+    -webkit-transition: all .6s;
+    -moz-transition: all .6s;
+    -ms-transition: all .6s;
+    -o-transition: all .6s;
+    transition: all .6s;
+}
+
+.index_main {
+    width: 1200px;
+}
+
+.banner_1 {
+    margin-top: 29px;
+    height: 90px;
+    overflow: hidden;
+
+    .banner_1_a {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+
+    .banner_1_img {
+        display: block;
+        width: 100%;
+    }
+}
+
+.categ_crumb {
+    line-height: 26px;
+    color: #999;
+    font-size: 20px;
+    margin-top: 30px;
+    padding-bottom: 30px;
+    border-bottom: solid 1px #D9D9D9;
+
+    .categ_crumb_text {
+        display: inline-block;
+        line-height: 26px;
+        color: #999;
+        font-size: 20px;
+        margin: 0px 11px;
+    }
+
+    span.categ_crumb_text {
+        color: #333;
+    }
+
+    a.categ_crumb_text:hover {
+        color: #255590;
+    }
+}
+
+.index_2 {
+    margin-top: 30px;
+}
+
+.index_2_img {
+    float: left;
+    width: 330px;
+    height: 330px;
+}
+
+.index_2_right {
+    float: right;
+    width: 845px;
+}
+
+.index_2_h4 {
+    line-height: 29px;
+    color: #333;
+    font-size: 22px;
+}
+
+.index_2_title_box {}
+
+.index_2_title {
+    float: left;
+    height: 31px;
+    line-height: 31px;
+    color: #999;
+    font-size: 16px;
+    padding: 0px 10px;
+    margin: 14px 20px 0px 0px;
+    background: #F8F8F8;
+}
+
+.index_2_ul {
+    margin-top: 10px;
+}
+
+.index_2_li {
+    display: flex;
+    margin-bottom: 16px;
+
+    .index_2_li_label {
+        line-height: 21px;
+        color: #999;
+        font-size: 16px;
+        min-width: 64px;
+        margin-right: 15px;
+    }
+
+    .index_2_li_text {
+        line-height: 21px;
+        color: #333;
+        font-size: 16px;
+    }
+}
+
+.shop_head_1 {
+    position: relative;
+    padding-bottom: 30px;
+    border-bottom: solid 1px #E9E9E9;
+
+    .shop_head_1_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #666;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+    }
+
+    .shop_head_1_name_only {
+        color: #255590;
+    }
+
+    .shop_head_1_name:nth-of-type(1) {
+        background: url(../public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+}
+
+.card_out {
+    margin-top: 30px;
+}
+
+.card_1_box {
+    display: none;
+}
+
+.card_1_box_only {
+    display: block;
+}
+
+.box_1_head {
+    height: 67px;
+    background: #F7FBFE;
+    border-bottom: solid 1px #ddd;
+    position: relative;
+
+    .box_1_head_name {
+        float: left;
+        height: 67px;
+        line-height: 67px;
+        margin-left: 20px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+    }
+
+    .box_1_head_a {
+        float: right;
+        height: 67px;
+        line-height: 67px;
+        color: #999;
+        font-size: 16px;
+        margin-right: 20px;
+    }
+
+    .box_1_head_a::after {
+        content: '';
+        display: block;
+        width: 100%;
+        height: 100%;
+        position: absolute;
+        left: 0px;
+        top: 0px;
+    }
+}
+
+.box_1 {
+    border: solid 1px #ddd;
+    margin-top: 30px;
+}
+
+.img_ul_1 {
+    margin: 20px auto 0px;
+    box-sizing: border-box;
+    padding: 0px 7px;
+
+    .img_li_1 {
+        float: left;
+        width: 120px;
+        margin: 0px 13.8px 19px;
+    }
+
+    .img_li_1_a {
+        display: block;
+        width: 120px;
+    }
+
+    .img_li_1_img_box {
+        width: 120px;
+        height: 120px;
+    }
+
+    .img_li_1_img {
+        display: block;
+        width: 120px;
+        height: 120px;
+    }
+
+    .img_li_1_dot2 {
+        height: 32px;
+        line-height: 16px;
+        color: #999;
+        font-size: 12px;
+        margin-top: 5px;
+    }
+
+    .img_li_1_a:hover .img_li_1_dot2 {
+        color: #255590;
+    }
+}
+
+.index_3 {
+    margin-top: 17px;
+}
+
+.index_4 {}
+
+@media screen and (min-width:1200px) {
+    /*pc_1440*/
+    @media screen and (max-width:1440px) {
+        /*1200*/
+    }
+
+    .pc_none {
+        display: none;
+    }
+}
+
+@media screen and (max-width:599px) {}
+
+@media screen and (max-width:320px) {}

+ 521 - 0
assets/css/shop/goodsDetail1.less

@@ -0,0 +1,521 @@
+@charset "utf-8";
+
+* {
+    // margin: 0;
+    // padding: 0;
+    font-family: "微软雅黑", "microsoft yahei";
+}
+
+ul,
+ol {
+    list-style: none;
+}
+
+a:active {
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: none;
+}
+
+a:visited {
+    text-decoration: none;
+}
+
+a:link {
+    text-decoration: none;
+}
+
+a:focus {
+    text-decoration: none;
+}
+
+body {
+    position: relative;
+}
+
+.clearfix {
+    overflow: hidden;
+}
+
+.clearfix_2::after {
+    content: '';
+    display: block;
+    height: 0;
+    visibility: hidden;
+    clear: both;
+}
+
+.hiddenColor {
+    visibility: hidden;
+}
+
+.hand {
+    cursor: pointer;
+}
+
+.aTag_parent {
+    position: relative;
+}
+
+.aTag_parent>a,
+.aTag {
+    display: block;
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    z-index: 99;
+    border: 0px;
+    top: 0px;
+    left: 0px;
+    background: rgba(0, 0, 0, 0);
+}
+
+.dot1 {
+    display: block;
+    word-break: keep-all;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.dot2 {
+    overflow: hidden;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+}
+
+input,
+img {
+    border: none;
+}
+
+.cover100 img {
+    display: block;
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+}
+
+.back100 {
+    background-size: 100% 100%;
+    background-repeat: no-repeat;
+}
+
+article,
+aside,
+footer,
+header,
+time,
+video,
+main,
+nav,
+h4,
+h3,
+section {
+    display: block;
+}
+
+.index_main {
+    margin: 0 auto 444px;
+}
+
+.slow_6 {
+    -webkit-transition: all .6s;
+    -moz-transition: all .6s;
+    -ms-transition: all .6s;
+    -o-transition: all .6s;
+    transition: all .6s;
+}
+
+.index_main {
+    width: 1200px;
+}
+
+.banner_1 {
+    margin-top: 29px;
+    height: 90px;
+    overflow: hidden;
+
+    .banner_1_a {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+
+    .banner_1_img {
+        display: block;
+        width: 100%;
+    }
+}
+
+.categ_crumb {
+    line-height: 26px;
+    color: #999;
+    font-size: 20px;
+    margin-top: 30px;
+    padding-bottom: 30px;
+    border-bottom: solid 1px #D9D9D9;
+
+    .categ_crumb_text {
+        display: inline-block;
+        line-height: 26px;
+        color: #999;
+        font-size: 20px;
+        margin: 0px 11px;
+    }
+
+    span.categ_crumb_text {
+        color: #333;
+    }
+
+    a.categ_crumb_text:hover {
+        color: #255590;
+    }
+}
+
+.index_2 {
+    margin-top: 30px;
+}
+
+.index_2_img {
+    float: left;
+    width: 330px;
+    height: 330px;
+}
+
+.index_2_right {
+    float: right;
+    width: 540px;
+}
+
+.index_2_h4 {
+    line-height: 29px;
+    color: #333;
+    font-size: 22px;
+    border-bottom: solid 1px #E9E9E9;
+    padding-bottom: 20px;
+}
+
+.index_2_title_box {}
+
+.index_2_title {
+    float: left;
+    line-height: 31px;
+    color: #999;
+    font-size: 16px;
+    padding: 0px 10px;
+    margin: 14px 20px 0px 0px;
+    background: #F8F8F8;
+}
+
+.index_2_ul {
+    margin-top: 20px;
+}
+
+.index_2_li {
+    display: flex;
+    margin-bottom: 19px;
+
+    .index_2_li_label {
+        line-height: 21px;
+        color: #999;
+        font-size: 16px;
+        min-width: 64px;
+        margin-right: 15px;
+    }
+
+    .index_2_li_text {
+        line-height: 21px;
+        color: #333;
+        font-size: 16px;
+    }
+}
+
+.shop_head_1 {
+    position: relative;
+    padding-bottom: 30px;
+    border-bottom: solid 1px #E9E9E9;
+
+    .shop_head_1_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #666;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+    }
+
+    .shop_head_1_name_only {
+        color: #255590;
+    }
+
+    .shop_head_1_name:nth-of-type(1) {
+        background: url(../public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+}
+
+.card_out {
+    margin-top: 30px;
+
+    .card_1_box {
+        display: none;
+    }
+
+    .card_1_box_only {
+        display: block;
+    }
+}
+
+.box_1_head {
+    height: 67px;
+    background: #F7FBFE;
+    border-bottom: solid 1px #ddd;
+    position: relative;
+
+    .box_1_head_name {
+        float: left;
+        height: 67px;
+        line-height: 67px;
+        margin-left: 20px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+    }
+
+    .box_1_head_a {
+        float: right;
+        height: 67px;
+        line-height: 67px;
+        color: #999;
+        font-size: 16px;
+        margin-right: 20px;
+    }
+
+    .box_1_head_a::after {
+        content: '';
+        display: block;
+        width: 100%;
+        height: 100%;
+        position: absolute;
+        left: 0px;
+        top: 0px;
+    }
+}
+
+.box_1 {
+    border: solid 1px #ddd;
+    margin-top: 30px;
+}
+
+.img_ul_1 {
+    margin: 20px auto 0px;
+    box-sizing: border-box;
+    padding: 0px 7px;
+
+    .img_li_1 {
+        float: left;
+        width: 120px;
+        margin: 0px 13.8px 19px;
+    }
+
+    .img_li_1_a {
+        display: block;
+        width: 120px;
+    }
+
+    .img_li_1_img_box {
+        width: 120px;
+        height: 120px;
+    }
+
+    .img_li_1_img {
+        display: block;
+        width: 120px;
+        height: 120px;
+    }
+
+    .img_li_1_dot2 {
+        height: 32px;
+        line-height: 16px;
+        color: #999;
+        font-size: 12px;
+        margin-top: 5px;
+    }
+
+    .img_li_1_a:hover .img_li_1_dot2 {
+        color: #255590;
+    }
+}
+
+.index_3 {
+    margin-top: 17px;
+}
+
+.index_4 {}
+
+.index_out_1_left {
+    float: left;
+    width: 894px;
+}
+
+/* 选项卡 */
+.choice_1_box {
+    border: solid 1px #E9E9E9;
+    box-sizing: border-box;
+
+    .choice_1_btn_box {
+        height: 64px;
+    }
+
+    .choice_1_btn {
+        height: 64px;
+        width: 50%;
+        float: left;
+    }
+
+    .choice_1_btn_a {
+        display: block;
+        width: 100%;
+        line-height: 64px;
+        color: #333;
+        font-style: italic;
+        height: 64px;
+        background: #F8F8F8;
+        text-align: center;
+        font-size: 16px;
+        box-sizing: border-box;
+        font-family: DingTalk JinBuTi, DingTalk JinBuTi;
+        letter-spacing: 1px;
+    }
+
+    .choice_1_btn_only {}
+
+    .choice_1_btn_only .choice_1_btn_a {
+        background: #fff;
+        border-bottom: solid 1px #fff;
+    }
+}
+
+/* 选项卡 */
+.shop_3_right {
+    margin-top: 87px;
+    float: right;
+    width: 280px;
+}
+
+.shop_ul_img_2 {
+    width: 252px;
+    margin: 20px auto 0px;
+}
+
+.shop_li_img_2 {
+    height: 22px;
+    margin-bottom: 22px;
+
+    .shop_li_img_2_a {
+        display: block;
+        height: 22px;
+        display: flex;
+    }
+
+    .shop_li_img_2_num {
+        width: 22px;
+        max-width: 22px;
+        min-width: 22px;
+        height: 22px;
+        line-height: 22px;
+        text-align: center;
+        background: #ccc;
+        color: #F6F6F6;
+        font-size: 16px;
+        font-weight: bold;
+        border-radius: 4px;
+        margin-right: 10px;
+    }
+
+    .shop_li_img_2_right {
+        height: 22px;
+    }
+
+    .shop_li_img_2_img {
+        display: none;
+    }
+
+    .shop_li_img_2_text {
+        height: 22px;
+        line-height: 22px;
+        color: #333;
+        font-size: 16px;
+        display: block;
+        word-break: keep-all;
+        white-space: nowrap;
+        overflow: hidden;
+        text-overflow: ellipsis;
+    }
+}
+
+.shop_li_img_2:nth-of-type(1) {
+    height: auto;
+    margin-bottom: 15px;
+}
+
+.shop_li_img_2:nth-of-type(1) .shop_li_img_2_a {
+    height: auto;
+}
+
+.shop_li_img_2:nth-of-type(1) .shop_li_img_2_right {
+    height: auto;
+    display: flex;
+    border-bottom: solid 1px #E9E9E9;
+    padding-bottom: 10px;
+}
+
+.shop_li_img_2:nth-of-type(1) .shop_li_img_2_img {
+    display: block;
+    width: 45px;
+    height: 45px;
+    margin-right: 10px;
+}
+
+.shop_li_img_2:nth-of-type(1) .shop_li_img_2_text {
+    height: 44px;
+    line-height: 22px;
+    color: #333;
+    font-size: 16px;
+    font-weight: bold;
+    overflow: hidden;
+    display: -webkit-box !important;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+    word-break: break-all;
+    white-space: wrap;
+}
+
+.shop_li_img_2:nth-of-type(-n+3) .shop_li_img_2_num {
+    background: #255590;
+    color: #fff;
+}
+
+.shop_li_img_2:hover .shop_li_img_2_text {
+    color: #255590;
+}
+
+@media screen and (min-width:1200px) {
+    /*pc_1440*/
+    @media screen and (max-width:1440px) {
+        /*1200*/
+    }
+
+    .pc_none {
+        display: none;
+    }
+}
+
+@media screen and (max-width:599px) {}
+
+@media screen and (max-width:320px) {}

+ 610 - 0
assets/css/shop/goodsList.less

@@ -0,0 +1,610 @@
+* {
+    font-family: "微软雅黑", "microsoft yahei";
+}
+
+ul,
+ol {
+    list-style: none;
+}
+
+a:active {
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: none;
+}
+
+a:visited {
+    text-decoration: none;
+}
+
+a:link {
+    text-decoration: none;
+}
+
+a:focus {
+    text-decoration: none;
+}
+
+body {
+    position: relative;
+}
+
+.clearfix {
+    overflow: hidden;
+}
+
+.clearfix_2::after {
+    content: '';
+    display: block;
+    height: 0;
+    visibility: hidden;
+    clear: both;
+}
+
+.hiddenColor {
+    visibility: hidden;
+}
+
+.hand {
+    cursor: pointer;
+}
+
+.aTag_parent {
+    position: relative;
+}
+
+.aTag_parent>a,
+.aTag {
+    display: block;
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    z-index: 99;
+    border: 0px;
+    top: 0px;
+    left: 0px;
+    background: rgba(0, 0, 0, 0);
+}
+
+.dot1 {
+    display: block;
+    word-break: keep-all;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.dot2 {
+    overflow: hidden;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+}
+
+input,
+img {
+    border: none;
+}
+
+.cover100 img {
+    display: block;
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+}
+
+.back100 {
+    background-size: 100% 100%;
+    background-repeat: no-repeat;
+}
+
+article,
+aside,
+footer,
+header,
+time,
+video,
+main,
+nav,
+h4,
+h3,
+section {
+    display: block;
+}
+
+.index_main {
+    margin: 0 auto;
+}
+
+.slow_6 {
+    -webkit-transition: all .6s;
+    -moz-transition: all .6s;
+    -ms-transition: all .6s;
+    -o-transition: all .6s;
+    transition: all .6s;
+}
+
+.index_main {
+    width: 1200px;
+    margin: 0px auto 440px;
+}
+
+.banner_1 {
+    margin-top: 29px;
+    height: 90px;
+    overflow: hidden;
+
+    .banner_1_a {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+
+    .banner_1_img {
+        display: block;
+        width: 100%;
+    }
+}
+
+.banner_2 {
+    margin-top: 29px;
+    height: 90px;
+    overflow: hidden;
+
+    .banner_2_a {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+
+    .banner_2_img {
+        display: block;
+        width: 100%;
+    }
+}
+
+.shop_head_1 {
+    height: 29px;
+    position: relative;
+
+    .shop_head_1_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(@/public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+
+    .shop_head_1_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+
+    .shop_head_1_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+
+.categ_color_box {
+    border: solid 1px #E9E9E9;
+    background: #F8F8F8;
+    margin-top: 30px;
+    box-sizing: border-box;
+
+    .categ_color_name {
+        width: 1160px;
+        margin: 0px auto;
+        height: 60px;
+        line-height: 60px;
+        color: #333;
+        font-size: 18px;
+        border-bottom: dashed 1px #E9E9E9;
+    }
+
+    .categ_color_in {
+        padding: 6px 0px 0px;
+    }
+
+    .categ_color_a {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #333;
+        margin: 10px 10px 16px;
+        font-size: 16px;
+        padding: 0px 10px;
+    }
+
+    .categ_color_a_only {
+        color: #fff;
+        background: #255590;
+    }
+}
+
+.categ_crumb {
+    line-height: 26px;
+    color: #999;
+    font-size: 20px;
+    margin-top: 30px;
+    padding-bottom: 30px;
+    border-bottom: solid 1px #D9D9D9;
+
+    .categ_crumb_text {
+        display: inline-block;
+        line-height: 26px;
+        color: #999;
+        font-size: 20px;
+        margin: 0px 11px;
+    }
+
+    span.categ_crumb_text {
+        color: #333;
+    }
+
+    a.categ_crumb_text:hover {
+        color: #255590;
+    }
+}
+
+.box_1 {
+    border: solid 1px #ddd;
+    width: 588px;
+}
+
+.box_1:nth-of-type(odd) {
+    float: left;
+}
+
+.box_1:nth-of-type(even) {
+    float: right;
+}
+
+.box_1_head {
+    height: 67px;
+    background: #F7FBFE;
+    border-bottom: solid 1px #ddd;
+    position: relative;
+
+    .box_1_head_name {
+        float: left;
+        height: 67px;
+        line-height: 67px;
+        margin-left: 20px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+    }
+
+    .box_1_head_a {
+        float: right;
+        height: 67px;
+        line-height: 67px;
+        color: #999;
+        font-size: 16px;
+        margin-right: 20px;
+    }
+
+    .box_1_head_a::after {
+        content: '';
+        display: block;
+        width: 100%;
+        height: 100%;
+        position: absolute;
+        left: 0px;
+        top: 0px;
+    }
+}
+
+.img_ul_1 {
+    margin: 20px auto 0px;
+    width: 588px;
+    box-sizing: border-box;
+    padding: 0px 9px;
+
+    .img_li_1 {
+        float: left;
+        width: 120px;
+        margin: 0px 11px 19px;
+    }
+
+    .img_li_1_a {
+        display: block;
+        width: 120px;
+    }
+
+    .img_li_1_img_box {
+        width: 120px;
+        height: 120px;
+    }
+
+    .img_li_1_img {
+        display: block;
+        width: 120px;
+        height: 120px;
+    }
+
+    .img_li_1_dot2 {
+        height: 32px;
+        line-height: 16px;
+        color: #999;
+        font-size: 12px;
+        margin-top: 5px;
+    }
+
+    .img_li_1_a:hover .img_li_1_dot2 {
+        color: #255590;
+    }
+}
+
+.box_2_head {
+    height: 67px;
+    background: #F7FBFE;
+    border-bottom: solid 1px #ddd;
+    position: relative;
+
+    .box_2_head_name {
+        float: left;
+        height: 67px;
+        line-height: 67px;
+        margin-left: 20px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+    }
+
+    .box_2_head_a {
+        float: right;
+        height: 67px;
+        line-height: 67px;
+        color: #999;
+        font-size: 16px;
+        margin-right: 20px;
+    }
+
+    .box_2_head_a::after {
+        content: '';
+        display: block;
+        width: 100%;
+        height: 100%;
+        position: absolute;
+        left: 0px;
+        top: 0px;
+    }
+}
+
+.box_2 {
+    border: solid 1px #ddd;
+}
+
+.img_ul_2 {
+    margin: 20px auto 0px;
+    box-sizing: border-box;
+    padding: 0px 7px;
+
+    .img_li_2 {
+        float: left;
+        width: 120px;
+        margin: 0px 13.8px 19px;
+    }
+
+    .img_li_2_a {
+        display: block;
+        width: 120px;
+    }
+
+    .img_li_2_img_box {
+        width: 120px;
+        height: 120px;
+    }
+
+    .img_li_2_img {
+        display: block;
+        width: 120px;
+        height: 120px;
+    }
+
+    .img_li_2_dot2 {
+        height: 32px;
+        line-height: 16px;
+        color: #999;
+        font-size: 12px;
+        margin-top: 5px;
+    }
+
+    .img_li_2_a:hover .img_li_2_dot2 {
+        color: #255590;
+    }
+}
+
+.index_1 {
+    margin-top: 30px;
+}
+
+.index_2 {
+    margin-top: 30px;
+}
+
+.index_3 {
+    margin-top: 30px;
+}
+
+/* 三农市场网-商城-商品列表 */
+.categ_table {
+    .categ_table_head_box {
+        height: 61px;
+        border-bottom: solid 1px #E9E9E9;
+    }
+
+    .categ_table_head_box>.categ_table_td_1 {
+        height: 61px;
+        line-height: 61px;
+    }
+
+    .categ_table_head_box>.categ_table_td_2 {
+        height: 61px;
+        line-height: 61px;
+    }
+
+    .categ_table_head_box>.categ_table_td_3 {
+        height: 61px;
+        line-height: 61px;
+    }
+
+    .categ_table_head_box>.categ_table_td_4 {
+        height: 61px;
+        line-height: 61px;
+    }
+
+    .categ_table_td_1 {
+        float: left;
+        height: 100%;
+        text-align: center;
+        color: #666;
+        font-size: 16px;
+        width: 155px;
+        margin-right: 126px;
+    }
+
+    .categ_table_td_2 {
+        float: left;
+        height: 100%;
+        text-align: center;
+        color: #666;
+        font-size: 16px;
+        width: 480px;
+        margin-right: 124px;
+    }
+
+    .categ_table_td_3 {
+        float: left;
+        height: 100%;
+        text-align: center;
+        color: #666;
+        font-size: 16px;
+        width: 120px;
+        margin-right: 62px;
+    }
+
+    .categ_table_td_4 {
+        float: left;
+        height: 100%;
+        text-align: center;
+        color: #666;
+        font-size: 16px;
+        width: 133px;
+    }
+
+    .categ_table_li {
+        height: 161px;
+        box-sizing: border-box;
+        padding: 15px 0px;
+        border-bottom: solid 1px #E9E9E9;
+    }
+
+    .categ_table_td_1_img {
+        display: block;
+        width: 130px;
+        height: 130px;
+        margin: 0px auto;
+    }
+
+    .categ_table_li .categ_table_td_1 {
+        line-height: 160px;
+        line-height: 160px;
+    }
+
+    .categ_table_li .categ_table_td_2 {
+        height: 100%;
+        display: flex;
+        align-items: center;
+    }
+
+    .categ_table_td_2_in {
+        display: flex;
+        flex-direction: column;
+        width: 100%;
+    }
+
+    .categ_table_li .categ_table_td_2_dot1 {
+        text-align: left;
+        flex-basis: 100%;
+        height: 21px;
+        line-height: 21px;
+        font-size: 16px;
+        font-weight: bold;
+        color: #333;
+    }
+
+    .categ_table_li .categ_table_td_2_dot2 {
+        flex-basis: 100%;
+        max-height: 36px;
+        text-align: left;
+        line-height: 18px;
+        width: 100%;
+        font-size: 14px;
+        color: #999;
+    }
+
+    .categ_table_li .categ_table_td_3 {
+        line-height: 144px;
+    }
+
+    .categ_table_li .categ_table_td_4 {
+        line-height: 144px;
+    }
+}
+
+.info_foot {
+    margin-top: 60px;
+    text-align: center;
+
+    .info_foot_a {
+        height: 34px;
+        line-height: 34px;
+        color: #666;
+        display: inline-block;
+        border-radius: 4px;
+        margin: 0px 10px;
+        font-size: 14px;
+        border: solid 1px #EAEAEA;
+        background: #F6F6F6;
+        padding: 0px 15px;
+    }
+
+    .info_foot_a_only {
+        font-weight: bold;
+        background: #255590;
+        color: #fff;
+    }
+}
+
+@media screen and (min-width:1200px) {
+    /*pc_1440*/
+    @media screen and (max-width:1440px) {
+        /*1200*/
+    }
+
+    .pc_none {
+        display: none;
+    }
+}
+
+@media screen and (max-width:599px) {}
+
+@media screen and (max-width:320px) {}

+ 866 - 0
assets/css/shop/newsClass.less

@@ -0,0 +1,866 @@
+@charset "utf-8";
+* {
+    font-family: "微软雅黑", "microsoft yahei";
+}
+ul,
+ol {
+    list-style: none;
+}
+a:active {
+    text-decoration: none;
+}
+a:hover {
+    text-decoration: none;
+}
+a:visited {
+    text-decoration: none;
+}
+a:link {
+    text-decoration: none;
+}
+a:focus {
+    text-decoration: none;
+}
+body {
+    position: relative;
+}
+.clearfix {
+    overflow: hidden;
+}
+.clearfix_2::after {
+    content: '';
+    display: block;
+    height: 0;
+    visibility: hidden;
+    clear: both;
+}
+.hiddenColor {
+    visibility: hidden;
+}
+.hand {
+    cursor: pointer;
+}
+.aTag_parent {
+    position: relative;
+}
+.aTag_parent>a,
+.aTag {
+    display: block;
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    z-index: 99;
+    border: 0px;
+    top: 0px;
+    left: 0px;
+    background: rgba(0, 0, 0, 0);
+}
+.dot1 {
+    display: block;
+    word-break: keep-all;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+.dot2 {
+    overflow: hidden;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+}
+.dot3 {
+    overflow: hidden;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 3;
+}
+input,
+img {
+    border: none;
+}
+.cover100 img {
+    display: block;
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+}
+.back100 {
+    background-size: 100% 100%;
+    background-repeat: no-repeat;
+}
+article,
+aside,
+footer,
+header,
+time,
+video,
+main,
+nav,
+h4,
+h3,
+section {
+    display: block;
+}
+.index_main {
+    margin: 0 auto;
+}
+.slow_6 {
+    -webkit-transition: all .6s;
+    -moz-transition: all .6s;
+    -ms-transition: all .6s;
+    -o-transition: all .6s;
+    transition: all .6s;
+}
+.index_main {
+    width: 1200px;
+    margin: 0px auto 330px;
+}
+.shop_head_1 {
+    height: 29px;
+    position: relative;
+    .shop_head_1_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(@/public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+    .shop_head_1_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+    .shop_head_1_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+.categ_color_box {
+    border: solid 1px #E9E9E9;
+    background: #F8F8F8;
+    margin-top: 30px;
+    box-sizing: border-box;
+    .categ_color_name {
+        width: 1160px;
+        margin: 0px auto;
+        height: 60px;
+        line-height: 60px;
+        color: #333;
+        font-size: 18px;
+        border-bottom: dashed 1px #E9E9E9;
+    }
+    .categ_color_in {
+        padding: 6px 0px 0px;
+    }
+    .categ_color_a {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #333;
+        margin: 10px 10px 16px;
+        font-size: 16px;
+        padding: 0px 10px;
+    }
+    .categ_color_a_only {
+        color: #fff;
+        background: #255590;
+    }
+}
+.categ_crumb {
+    line-height: 26px;
+    color: #999;
+    font-size: 20px;
+    margin-top: 30px;
+    padding-bottom: 30px;
+    border-bottom: solid 1px #D9D9D9;
+    .categ_crumb_text {
+        display: inline-block;
+        line-height: 26px;
+        color: #999;
+        font-size: 20px;
+        margin: 0px 11px;
+    }
+    span.categ_crumb_text {
+        color: #333;
+    }
+    a.categ_crumb_text:hover {
+        color: #255590;
+    }
+}
+.shop_head_2 {
+    height: 29px;
+    position: relative;
+    .shop_head_2_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(@/public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+    .shop_head_2_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+    .shop_head_2_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+.shop_ul_2 {
+    margin-top: 30px;
+    .shop_li_2 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 17px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+    .shop_li_2:hover {
+        color: #255590;
+    }
+    .shop_li_2::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 8px;
+        z-index: 11;
+    }
+    .shop_li_2:nth-of-type(3n-2) {
+        font-weight: bold;
+    }
+    .shop_li_2:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+    .shop_li_2:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+.shop_img_ul_1 {
+    margin-top: 30px;
+    .shop_img_li_1 {
+        width: 350px;
+        height: 230px;
+        position: relative;
+    }
+    .shop_img_li_1_a {}
+    .shop_img_li_1_img {
+        display: block;
+        width: 350px;
+        height: 230px;
+    }
+    .shop_img_li_1_rgba {
+        width: 350px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        padding: 0px 10px;
+        box-sizing: border-box;
+        position: absolute;
+        z-index: 11;
+        left: 0px;
+        bottom: 0px;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+.shop_ul_1 {
+    margin-top: 17px;
+    .shop_li_1 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 18px;
+        box-sizing: border-box;
+        position: relative;
+    }
+    .shop_li_1:hover {
+        color: #255590;
+    }
+    .shop_li_1:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+.shop_head_3 {
+    margin-top: 30px;
+    height: 29px;
+    position: relative;
+    .shop_head_3_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(@/public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+    .shop_head_3_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+    .shop_head_3_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+.shop_img_ul_2 {
+    margin-top: 30px;
+    .shop_img_li_2 {
+        width: 350px;
+        height: 230px;
+        position: relative;
+    }
+    .shop_img_li_2_a {}
+    .shop_img_li_2_img {
+        display: block;
+        width: 350px;
+        height: 230px;
+    }
+    .shop_img_li_2_rgba {
+        width: 350px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        padding: 0px 10px;
+        box-sizing: border-box;
+        position: absolute;
+        z-index: 11;
+        left: 0px;
+        bottom: 0px;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+.shop_ul_3 {
+    margin-top: 30px;
+    .shop_li_3 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 17px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+    .shop_li_3:hover {
+        color: #255590;
+    }
+    .shop_li_3::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 8px;
+        z-index: 11;
+    }
+    .shop_li_3:nth-of-type(3n-2) {
+        font-weight: bold;
+    }
+    .shop_li_3:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+    .shop_li_3:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+.shop_head_4 {
+    height: 29px;
+    position: relative;
+    .shop_head_4_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(@/public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+    .shop_head_4_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+    .shop_head_4_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+.shop_img_ul_3 {
+    margin-top: 30px;
+    .shop_img_li_3 {
+        width: 451px;
+        height: 265px;
+        margin-bottom: 20px;
+        position: relative;
+    }
+    .shop_img_li_3_a {}
+    .shop_img_li_3_img {
+        display: block;
+        width: 451px;
+        height: 265px;
+    }
+    .shop_img_li_3_rgba {
+        width: 451px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        padding: 0px 10px;
+        box-sizing: border-box;
+        position: absolute;
+        z-index: 11;
+        left: 0px;
+        bottom: 0px;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+.shop_ul_4 {
+    .shop_li_4 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 24px;
+        box-sizing: border-box;
+        text-indent: 28px;
+        position: relative;
+    }
+    .shop_li_4:hover {
+        color: #255590;
+    }
+    .shop_li_4_num {
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        display: block;
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        font-style: italic;
+        text-indent: 0px;
+        content: '??';
+    }
+    .shop_li_4:nth-of-type(-n+3) .shop_li_4_num {
+        color: #255590;
+    }
+    .shop_li_4:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+.banner_1 {
+    margin-top: 29px;
+    height: 90px;
+    overflow: hidden;
+    .banner_1_a {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+    .banner_1_img {
+        display: block;
+        width: 100%;
+    }
+}
+.banner_2 {
+    margin-top: 29px;
+    height: 90px;
+    overflow: hidden;
+    .banner_2_a {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+    .banner_2_img {
+        display: block;
+        width: 100%;
+    }
+}
+.index_1 {
+    margin-top: 30px;
+}
+.index_2 {
+    margin-top: 30px;
+}
+.index_2_left {
+    float: left;
+    width: 720px;
+}
+.index_2_right {
+    float: right;
+    width: 451px;
+}
+.index_3 {
+    margin-top: 30px;
+}
+.index_3_left {
+    float: left;
+    width: 720px;
+}
+.index_3_right {
+    float: right;
+    width: 451px;
+}
+.index_3_in {
+    width: 350px;
+}
+.index_3_in:nth-of-type(odd) {
+    float: left;
+}
+.index_3_in:nth-of-type(even) {
+    float: right;
+}
+.index_3_in_2 {
+    width: 350px;
+}
+.index_3_in_2:nth-of-type(odd) {
+    float: left;
+}
+.index_3_in_2:nth-of-type(even) {
+    float: right;
+}
+/* 三农市场网-商城-资讯列表 */
+.info_1_left {
+    width: 900px;
+    float: left;
+}
+.info_1_aside {
+    width: 266px;
+    float: right;
+}
+.info_ul_1 {
+    .info_li_1 {
+        margin-bottom: 20px;
+    }
+    .info_li_1_a {
+        height: 24px;
+        line-height: 24px;
+        float: left;
+        color: #333;
+        font-size: 18px;
+        padding-right: 22px;
+        max-width: 777px;
+        position: relative;
+    }
+    .info_li_1_a_hot::after {
+        content: '热';
+        display: block;
+        width: 20px;
+        height: 20px;
+        border-radius: 4px;
+        position: absolute;
+        top: 0px;
+        right: 0px;
+        background: #FF2626;
+        font-weight: lighter;
+        line-height: 20px;
+        text-align: center;
+        color: #fff;
+        font-size: 14px;
+    }
+    .info_li_1_time {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        float: right;
+    }
+    .info_li_1:nth-of-type(5n-4) {
+        font-weight: bold;
+        margin-top: 30px;
+    }
+    .info_li_1:nth-of-type(5n-4) .info_li_1_a {
+        font-weight: bold;
+    }
+    .info_li_1:nth-of-type(5n-4) .info_li_1_time {
+        font-weight: bold;
+    }
+    .info_li_1:nth-of-type(5n) {
+        border-bottom: solid 1px #D9D9D9;
+        padding-bottom: 30px;
+    }
+}
+.info_foot {
+    margin-top: 60px;
+    text-align: center;
+    .info_foot_a {
+        height: 34px;
+        line-height: 34px;
+        color: #666;
+        display: inline-block;
+        border-radius: 4px;
+        margin: 0px 10px;
+        font-size: 14px;
+        border: solid 1px #EAEAEA;
+        background: #F6F6F6;
+        padding: 0px 15px;
+    }
+    .info_foot_a_only {
+        font-weight: bold;
+        background: #255590;
+        color: #fff;
+    }
+}
+.shop_head_5 {
+    height: 29px;
+    margin-top: 58px;
+    position: relative;
+    .shop_head_5_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(@/public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+}
+.shop_img_ul_4 {
+    margin-top: 30px;
+    .shop_img_li_4 {
+        margin-bottom: 20px;
+    }
+    .shop_img_li_4_a {
+        display: block;
+        width: 100%;
+    }
+    .shop_img_li_4_img {
+        float: left;
+        width: 120px;
+        height: 120px;
+    }
+    .shop_img_li_4_right {
+        float: right;
+        width: 140px;
+    }
+    .shop_img_li_4_dot3 {
+        height: 69px;
+        line-height: 23px;
+        margin-top: 2px;
+        color: #333;
+        font-size: 18px;
+    }
+    .shop_img_li_4_btn {
+        border: solid 1px #255590;
+        height: 23px;
+        line-height: 23px;
+        color: #255590;
+        font-size: 14px;
+        margin-top: 16px;
+        padding: 0px 4px;
+        float: left;
+    }
+    .shop_img_li_4_a:hover .shop_img_li_4_dot3 {
+        color: #255590;
+    }
+    .shop_img_li_4:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+.shop_ul_5 {
+    margin-top: 30px;
+    .shop_li_5 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 17px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+    .shop_li_5:hover {
+        color: #255590;
+    }
+    .shop_li_5::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 8px;
+        z-index: 11;
+    }
+    .shop_li_5:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+    .shop_li_5:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+.shop_head_6 {
+    height: 29px;
+    margin-top: 31px;
+    position: relative;
+    .shop_head_6_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(@/public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+}
+.shop_img_ul_5 {
+    margin-top: 30px;
+    .shop_img_li_5 {
+        margin-bottom: 20px;
+    }
+    .shop_img_li_5_a {
+        display: block;
+        width: 100%;
+    }
+    .shop_img_li_5_img {
+        float: left;
+        width: 120px;
+        height: 120px;
+    }
+    .shop_img_li_5_right {
+        float: right;
+        width: 140px;
+    }
+    .shop_img_li_5_dot3 {
+        height: 69px;
+        line-height: 23px;
+        margin-top: 2px;
+        color: #333;
+        font-size: 18px;
+    }
+    .shop_img_li_5_btn {
+        border: solid 1px #255590;
+        height: 23px;
+        line-height: 23px;
+        color: #255590;
+        font-size: 14px;
+        margin-top: 16px;
+        padding: 0px 4px;
+        float: left;
+    }
+    .shop_img_li_5_a:hover .shop_img_li_5_dot3 {
+        color: #255590;
+    }
+    .shop_img_li_5:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+.shop_ul_6 {
+    margin-top: 30px;
+    .shop_li_6 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 17px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+    .shop_li_6:hover {
+        color: #255590;
+    }
+    .shop_li_6::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 8px;
+        z-index: 11;
+    }
+    .shop_li_6:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+    .shop_li_6:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+/* 三农市场网-商城-资讯列表 */
+@media screen and (min-width:1200px) {
+    /*pc_1440*/
+    @media screen and (max-width:1440px) {
+        /*1200*/
+    }
+    .pc_none {
+        display: none;
+    }
+}
+@media screen and (max-width:599px) {}
+@media screen and (max-width:320px) {}

+ 545 - 0
assets/css/shop/newsDetail.less

@@ -0,0 +1,545 @@
+@charset "utf-8";
+
+* {
+    font-family: "微软雅黑", "microsoft yahei";
+}
+
+ul,
+ol {
+    list-style: none;
+}
+
+a:active {
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: none;
+}
+
+a:visited {
+    text-decoration: none;
+}
+
+a:link {
+    text-decoration: none;
+}
+
+a:focus {
+    text-decoration: none;
+}
+
+body {
+    position: relative;
+}
+
+.clearfix {
+    overflow: hidden;
+}
+
+.clearfix_2::after {
+    content: '';
+    display: block;
+    height: 0;
+    visibility: hidden;
+    clear: both;
+}
+
+.hiddenColor {
+    visibility: hidden;
+}
+
+.hand {
+    cursor: pointer;
+}
+
+.aTag_parent {
+    position: relative;
+}
+
+.aTag_parent>a,
+.aTag {
+    display: block;
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    z-index: 99;
+    border: 0px;
+    top: 0px;
+    left: 0px;
+    background: rgba(0, 0, 0, 0);
+}
+
+.dot1 {
+    display: block;
+    word-break: keep-all;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.dot2 {
+    overflow: hidden;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+}
+
+.dot3 {
+    overflow: hidden;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 3;
+}
+
+input,
+img {
+    border: none;
+}
+
+.cover100 img {
+    display: block;
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+}
+
+.back100 {
+    background-size: 100% 100%;
+    background-repeat: no-repeat;
+}
+
+article,
+aside,
+footer,
+header,
+time,
+video,
+main,
+nav,
+h4,
+h3,
+section {
+    display: block;
+}
+
+.slow_6 {
+    -webkit-transition: all .6s;
+    -moz-transition: all .6s;
+    -ms-transition: all .6s;
+    -o-transition: all .6s;
+    transition: all .6s;
+}
+
+.index_main {
+    width: 1200px;
+    margin: 0px auto 330px;
+}
+
+.banner_1 {
+    margin-top: 29px;
+    height: 90px;
+    overflow: hidden;
+
+    .banner_1_a {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+
+    .banner_1_img {
+        display: block;
+        width: 100%;
+    }
+}
+
+.banner_2 {
+    margin-top: 29px;
+    height: 90px;
+    overflow: hidden;
+
+    .banner_2_a {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+
+    .banner_2_img {
+        display: block;
+        width: 100%;
+    }
+}
+
+.info_1_left {
+    width: 900px;
+    float: left;
+}
+
+.info_1_aside {
+    width: 266px;
+    float: right;
+}
+
+.info_ul_1 {
+    .info_li_1 {
+        margin-bottom: 20px;
+    }
+
+    .info_li_1_a {
+        height: 24px;
+        line-height: 24px;
+        float: left;
+        color: #333;
+        font-size: 18px;
+        padding-right: 22px;
+        max-width: 777px;
+        position: relative;
+    }
+
+    .info_li_1_a_hot::after {
+        content: '热';
+        display: block;
+        width: 20px;
+        height: 20px;
+        border-radius: 4px;
+        position: absolute;
+        top: 0px;
+        right: 0px;
+        background: #FF2626;
+        font-weight: lighter;
+        line-height: 20px;
+        text-align: center;
+        color: #fff;
+        font-size: 14px;
+    }
+
+    .info_li_1_time {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        float: right;
+    }
+
+    .info_li_1:nth-of-type(5n-4) {
+        font-weight: bold;
+        margin-top: 30px;
+    }
+
+    .info_li_1:nth-of-type(5n-4) .info_li_1_a {
+        font-weight: bold;
+    }
+
+    .info_li_1:nth-of-type(5n-4) .info_li_1_time {
+        font-weight: bold;
+    }
+
+    .info_li_1:nth-of-type(5n) {
+        border-bottom: solid 1px #D9D9D9;
+        padding-bottom: 30px;
+    }
+}
+
+.info_foot {
+    margin-top: 60px;
+    text-align: center;
+
+    .info_foot_a {
+        height: 34px;
+        line-height: 34px;
+        color: #666;
+        display: inline-block;
+        border-radius: 4px;
+        margin: 0px 10px;
+        font-size: 14px;
+        border: solid 1px #EAEAEA;
+        background: #F6F6F6;
+        padding: 0px 15px;
+    }
+
+    .info_foot_a_only {
+        font-weight: bold;
+        background: #255590;
+        color: #fff;
+    }
+}
+
+.shop_head_1 {
+    height: 29px;
+    margin-top: 26px;
+    position: relative;
+
+    .shop_head_1_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(../public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+}
+
+.shop_img_ul_1 {
+    margin-top: 30px;
+
+    .shop_img_li_1 {
+        margin-bottom: 20px;
+    }
+
+    .shop_img_li_1_a {
+        display: block;
+        width: 100%;
+    }
+
+    .shop_img_li_1_img {
+        float: left;
+        width: 120px;
+        height: 120px;
+    }
+
+    .shop_img_li_1_right {
+        float: right;
+        width: 140px;
+    }
+
+    .shop_img_li_1_dot3 {
+        height: 69px;
+        line-height: 23px;
+        margin-top: 2px;
+        color: #333;
+        font-size: 18px;
+    }
+
+    .shop_img_li_1_btn {
+        border: solid 1px #255590;
+        height: 23px;
+        line-height: 23px;
+        color: #255590;
+        font-size: 14px;
+        margin-top: 16px;
+        padding: 0px 4px;
+        float: left;
+    }
+
+    .shop_img_li_1_a:hover .shop_img_li_4_dot3 {
+        color: #255590;
+    }
+
+    .shop_img_li_1:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+.shop_ul_1 {
+    margin-top: 30px;
+
+    .shop_li_1 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 17px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+
+    .shop_li_1:hover {
+        color: #255590;
+    }
+
+    .shop_li_1::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 8px;
+        z-index: 11;
+    }
+
+    .shop_li_1:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+
+    .shop_li_1:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+.shop_head_2 {
+    height: 29px;
+    margin-top: 31px;
+    position: relative;
+
+    .shop_head_2_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(../public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+}
+
+.shop_img_ul_2 {
+    margin-top: 30px;
+
+    .shop_img_li_2 {
+        margin-bottom: 20px;
+    }
+
+    .shop_img_li_2_a {
+        display: block;
+        width: 100%;
+    }
+
+    .shop_img_li_2_img {
+        float: left;
+        width: 120px;
+        height: 120px;
+    }
+
+    .shop_img_li_2_right {
+        float: right;
+        width: 140px;
+    }
+
+    .shop_img_li_2_dot3 {
+        height: 69px;
+        line-height: 23px;
+        margin-top: 2px;
+        color: #333;
+        font-size: 18px;
+    }
+
+    .shop_img_li_2_btn {
+        border: solid 1px #255590;
+        height: 23px;
+        line-height: 23px;
+        color: #255590;
+        font-size: 14px;
+        margin-top: 16px;
+        padding: 0px 4px;
+        float: left;
+    }
+
+    .shop_img_li_2_a:hover .shop_img_li_5_dot3 {
+        color: #255590;
+    }
+
+    .shop_img_li_2:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+.shop_ul_2 {
+    margin-top: 30px;
+
+    .shop_li_2 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 17px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+
+    .shop_li_2:hover {
+        color: #255590;
+    }
+
+    .shop_li_2::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 8px;
+        z-index: 11;
+    }
+
+    .shop_li_2:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+
+    .shop_li_2:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+.categ_crumb {
+    line-height: 26px;
+    color: #999;
+    font-size: 20px;
+    margin-top: 30px;
+    padding-bottom: 30px;
+    border-bottom: solid 1px #D9D9D9;
+
+    .categ_crumb_text {
+        display: inline-block;
+        line-height: 26px;
+        color: #999;
+        font-size: 20px;
+        margin: 0px 11px;
+    }
+
+    span.categ_crumb_text {
+        color: #333;
+    }
+
+    a.categ_crumb_text:hover {
+        color: #255590;
+    }
+}
+
+.show_1_h4 {
+    margin-top: 30px;
+    color: #333;
+    font-size: 30px;
+    line-height: 40px;
+}
+
+.show_1_title_box {
+    margin-top: 30px;
+}
+
+.show_1_title {
+    font-size: 14px;
+    color: #999;
+    height: 18px;
+    line-height: 18px;
+    margin-right: 40px;
+    float: left;
+}
+
+.show_1_article {
+    margin-top: 60px;
+    border-bottom: solid 1px #D9D9D9;
+    padding-bottom: 60px;
+}
+
+.show_foot {
+    color: #999;
+    font-size: 20px;
+    line-height: 34px;
+    margin-top: 40px;
+}

+ 1023 - 0
assets/css/shop/newsList.less

@@ -0,0 +1,1023 @@
+@charset "utf-8";
+
+* {
+    font-family: "微软雅黑", "microsoft yahei";
+}
+
+ul,
+ol {
+    list-style: none;
+}
+
+a:active {
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: none;
+}
+
+a:visited {
+    text-decoration: none;
+}
+
+a:link {
+    text-decoration: none;
+}
+
+a:focus {
+    text-decoration: none;
+}
+
+body {
+    position: relative;
+}
+
+.clearfix {
+    overflow: hidden;
+}
+
+.clearfix_2::after {
+    content: '';
+    display: block;
+    height: 0;
+    visibility: hidden;
+    clear: both;
+}
+
+.hiddenColor {
+    visibility: hidden;
+}
+
+.hand {
+    cursor: pointer;
+}
+
+.aTag_parent {
+    position: relative;
+}
+
+.aTag_parent>a,
+.aTag {
+    display: block;
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    z-index: 99;
+    border: 0px;
+    top: 0px;
+    left: 0px;
+    background: rgba(0, 0, 0, 0);
+}
+
+.dot1 {
+    display: block;
+    word-break: keep-all;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.dot2 {
+    overflow: hidden;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+}
+
+.dot3 {
+    overflow: hidden;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 3;
+}
+
+input,
+img {
+    border: none;
+}
+
+.cover100 img {
+    display: block;
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+}
+
+.back100 {
+    background-size: 100% 100%;
+    background-repeat: no-repeat;
+}
+
+article,
+aside,
+footer,
+header,
+time,
+video,
+main,
+nav,
+h4,
+h3,
+section {
+    display: block;
+}
+
+.index_main {
+    margin: 0 auto;
+}
+
+.slow_6 {
+    -webkit-transition: all .6s;
+    -moz-transition: all .6s;
+    -ms-transition: all .6s;
+    -o-transition: all .6s;
+    transition: all .6s;
+}
+
+.index_main {
+    width: 1200px;
+    margin: 0px auto 330px;
+}
+
+.shop_head_1 {
+    height: 29px;
+    position: relative;
+
+    .shop_head_1_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(../public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+
+    .shop_head_1_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+
+    .shop_head_1_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+
+.categ_color_box {
+    border: solid 1px #E9E9E9;
+    background: #F8F8F8;
+    margin-top: 30px;
+    box-sizing: border-box;
+
+    .categ_color_name {
+        width: 1160px;
+        margin: 0px auto;
+        height: 60px;
+        line-height: 60px;
+        color: #333;
+        font-size: 18px;
+        border-bottom: dashed 1px #E9E9E9;
+    }
+
+    .categ_color_in {
+        padding: 6px 0px 0px;
+    }
+
+    .categ_color_a {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #333;
+        margin: 10px 10px 16px;
+        font-size: 16px;
+        padding: 0px 10px;
+    }
+
+    .categ_color_a_only {
+        color: #fff;
+        background: #255590;
+    }
+}
+
+.categ_crumb {
+    line-height: 26px;
+    color: #999;
+    font-size: 20px;
+    margin-top: 30px;
+    padding-bottom: 30px;
+    border-bottom: solid 1px #D9D9D9;
+
+    .categ_crumb_text {
+        display: inline-block;
+        line-height: 26px;
+        color: #999;
+        font-size: 20px;
+        margin: 0px 11px;
+    }
+
+    span.categ_crumb_text {
+        color: #333;
+    }
+
+    a.categ_crumb_text:hover {
+        color: #255590;
+    }
+}
+
+.shop_head_2 {
+    height: 29px;
+    position: relative;
+
+    .shop_head_2_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(../public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+
+    .shop_head_2_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+
+    .shop_head_2_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+
+.shop_ul_2 {
+    margin-top: 30px;
+
+    .shop_li_2 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 17px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+
+    .shop_li_2:hover {
+        color: #255590;
+    }
+
+    .shop_li_2::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 8px;
+        z-index: 11;
+    }
+
+    .shop_li_2:nth-of-type(3n-2) {
+        font-weight: bold;
+    }
+
+    .shop_li_2:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+
+    .shop_li_2:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+.shop_img_ul_1 {
+    margin-top: 30px;
+
+    .shop_img_li_1 {
+        width: 350px;
+        height: 230px;
+        position: relative;
+    }
+
+    .shop_img_li_1_a {}
+
+    .shop_img_li_1_img {
+        display: block;
+        width: 350px;
+        height: 230px;
+    }
+
+    .shop_img_li_1_rgba {
+        width: 350px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        padding: 0px 10px;
+        box-sizing: border-box;
+        position: absolute;
+        z-index: 11;
+        left: 0px;
+        bottom: 0px;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+
+.shop_ul_1 {
+    margin-top: 17px;
+
+    .shop_li_1 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 18px;
+        box-sizing: border-box;
+        position: relative;
+    }
+
+    .shop_li_1:hover {
+        color: #255590;
+    }
+
+    .shop_li_1:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+.shop_head_3 {
+    margin-top: 30px;
+    height: 29px;
+    position: relative;
+
+    .shop_head_3_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(../public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+
+    .shop_head_3_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+
+    .shop_head_3_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+
+.shop_img_ul_2 {
+    margin-top: 30px;
+
+    .shop_img_li_2 {
+        width: 350px;
+        height: 230px;
+        position: relative;
+    }
+
+    .shop_img_li_2_a {}
+
+    .shop_img_li_2_img {
+        display: block;
+        width: 350px;
+        height: 230px;
+    }
+
+    .shop_img_li_2_rgba {
+        width: 350px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        padding: 0px 10px;
+        box-sizing: border-box;
+        position: absolute;
+        z-index: 11;
+        left: 0px;
+        bottom: 0px;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+
+.shop_ul_3 {
+    margin-top: 30px;
+
+    .shop_li_3 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 17px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+
+    .shop_li_3:hover {
+        color: #255590;
+    }
+
+    .shop_li_3::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 8px;
+        z-index: 11;
+    }
+
+    .shop_li_3:nth-of-type(3n-2) {
+        font-weight: bold;
+    }
+
+    .shop_li_3:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+
+    .shop_li_3:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+.shop_head_4 {
+    height: 29px;
+    position: relative;
+
+    .shop_head_4_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(../public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+
+    .shop_head_4_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+
+    .shop_head_4_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+
+.shop_img_ul_3 {
+    margin-top: 30px;
+
+    .shop_img_li_3 {
+        width: 451px;
+        height: 265px;
+        margin-bottom: 20px;
+        position: relative;
+    }
+
+    .shop_img_li_3_a {}
+
+    .shop_img_li_3_img {
+        display: block;
+        width: 451px;
+        height: 265px;
+    }
+
+    .shop_img_li_3_rgba {
+        width: 451px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        padding: 0px 10px;
+        box-sizing: border-box;
+        position: absolute;
+        z-index: 11;
+        left: 0px;
+        bottom: 0px;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+
+.shop_ul_4 {
+    .shop_li_4 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 24px;
+        box-sizing: border-box;
+        text-indent: 28px;
+        position: relative;
+    }
+
+    .shop_li_4:hover {
+        color: #255590;
+    }
+
+    .shop_li_4_num {
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        display: block;
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        font-style: italic;
+        text-indent: 0px;
+        content: '??';
+    }
+
+    .shop_li_4:nth-of-type(-n+3) .shop_li_4_num {
+        color: #255590;
+    }
+
+    .shop_li_4:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+.banner_1 {
+    margin-top: 29px;
+    height: 90px;
+    overflow: hidden;
+
+    .banner_1_a {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+
+    .banner_1_img {
+        display: block;
+        width: 100%;
+    }
+}
+
+.banner_2 {
+    margin-top: 29px;
+    height: 90px;
+    overflow: hidden;
+
+    .banner_2_a {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+
+    .banner_2_img {
+        display: block;
+        width: 100%;
+    }
+}
+
+.index_1 {
+    margin-top: 30px;
+}
+
+.index_2 {
+    margin-top: 30px;
+}
+
+.index_2_left {
+    float: left;
+    width: 720px;
+}
+
+.index_2_right {
+    float: right;
+    width: 451px;
+}
+
+.index_3 {
+    margin-top: 30px;
+}
+
+.index_3_left {
+    float: left;
+    width: 720px;
+}
+
+.index_3_right {
+    float: right;
+    width: 451px;
+}
+
+.index_3_in {
+    width: 350px;
+}
+
+.index_3_in:nth-of-type(odd) {
+    float: left;
+}
+
+.index_3_in:nth-of-type(even) {
+    float: right;
+}
+
+.index_3_in_2 {
+    width: 350px;
+}
+
+.index_3_in_2:nth-of-type(odd) {
+    float: left;
+}
+
+.index_3_in_2:nth-of-type(even) {
+    float: right;
+}
+
+/* 三农市场网-商城-资讯列表 */
+.info_1_left {
+    width: 900px;
+    float: left;
+}
+
+.info_1_aside {
+    width: 266px;
+    float: right;
+}
+
+.info_ul_1 {
+    .info_li_1 {
+        margin-bottom: 20px;
+    }
+
+    .info_li_1_a {
+        height: 24px;
+        line-height: 24px;
+        float: left;
+        color: #333;
+        font-size: 18px;
+        padding-right: 22px;
+        max-width: 777px;
+        position: relative;
+    }
+
+    .info_li_1_a_hot::after {
+        content: '热';
+        display: block;
+        width: 20px;
+        height: 20px;
+        border-radius: 4px;
+        position: absolute;
+        top: 0px;
+        right: 0px;
+        background: #FF2626;
+        font-weight: lighter;
+        line-height: 20px;
+        text-align: center;
+        color: #fff;
+        font-size: 14px;
+    }
+
+    .info_li_1_time {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        float: right;
+    }
+
+    .info_li_1:nth-of-type(5n-4) {
+        font-weight: bold;
+        margin-top: 30px;
+    }
+
+    .info_li_1:nth-of-type(5n-4) .info_li_1_a {
+        font-weight: bold;
+    }
+
+    .info_li_1:nth-of-type(5n-4) .info_li_1_time {
+        font-weight: bold;
+    }
+
+    .info_li_1:nth-of-type(5n) {
+        border-bottom: solid 1px #D9D9D9;
+        padding-bottom: 30px;
+    }
+}
+
+.info_foot {
+    margin-top: 60px;
+    text-align: center;
+
+    .info_foot_a {
+        height: 34px;
+        line-height: 34px;
+        color: #666;
+        display: inline-block;
+        border-radius: 4px;
+        margin: 0px 10px;
+        font-size: 14px;
+        border: solid 1px #EAEAEA;
+        background: #F6F6F6;
+        padding: 0px 15px;
+    }
+
+    .info_foot_a_only {
+        font-weight: bold;
+        background: #255590;
+        color: #fff;
+    }
+}
+
+.shop_head_5 {
+    height: 29px;
+    margin-top: 58px;
+    position: relative;
+
+    .shop_head_5_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(../public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+}
+
+.shop_img_ul_4 {
+    margin-top: 30px;
+
+    .shop_img_li_4 {
+        margin-bottom: 20px;
+    }
+
+    .shop_img_li_4_a {
+        display: block;
+        width: 100%;
+    }
+
+    .shop_img_li_4_img {
+        float: left;
+        width: 120px;
+        height: 120px;
+    }
+
+    .shop_img_li_4_right {
+        float: right;
+        width: 140px;
+    }
+
+    .shop_img_li_4_dot3 {
+        height: 69px;
+        line-height: 23px;
+        margin-top: 2px;
+        color: #333;
+        font-size: 18px;
+    }
+
+    .shop_img_li_4_btn {
+        border: solid 1px #255590;
+        height: 23px;
+        line-height: 23px;
+        color: #255590;
+        font-size: 14px;
+        margin-top: 16px;
+        padding: 0px 4px;
+        float: left;
+    }
+
+    .shop_img_li_4_a:hover .shop_img_li_4_dot3 {
+        color: #255590;
+    }
+
+    .shop_img_li_4:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+.shop_ul_5 {
+    margin-top: 30px;
+
+    .shop_li_5 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 17px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+
+    .shop_li_5:hover {
+        color: #255590;
+    }
+
+    .shop_li_5::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 8px;
+        z-index: 11;
+    }
+
+    .shop_li_5:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+
+    .shop_li_5:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+.shop_head_6 {
+    height: 29px;
+    margin-top: 31px;
+    position: relative;
+
+    .shop_head_6_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(../public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+}
+
+.shop_img_ul_5 {
+    margin-top: 30px;
+
+    .shop_img_li_5 {
+        margin-bottom: 20px;
+    }
+
+    .shop_img_li_5_a {
+        display: block;
+        width: 100%;
+    }
+
+    .shop_img_li_5_img {
+        float: left;
+        width: 120px;
+        height: 120px;
+    }
+
+    .shop_img_li_5_right {
+        float: right;
+        width: 140px;
+    }
+
+    .shop_img_li_5_dot3 {
+        height: 69px;
+        line-height: 23px;
+        margin-top: 2px;
+        color: #333;
+        font-size: 18px;
+    }
+
+    .shop_img_li_5_btn {
+        border: solid 1px #255590;
+        height: 23px;
+        line-height: 23px;
+        color: #255590;
+        font-size: 14px;
+        margin-top: 16px;
+        padding: 0px 4px;
+        float: left;
+    }
+
+    .shop_img_li_5_a:hover .shop_img_li_5_dot3 {
+        color: #255590;
+    }
+
+    .shop_img_li_5:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+.shop_ul_6 {
+    margin-top: 30px;
+
+    .shop_li_6 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 17px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+
+    .shop_li_6:hover {
+        color: #255590;
+    }
+
+    .shop_li_6::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 8px;
+        z-index: 11;
+    }
+
+    .shop_li_6:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+
+    .shop_li_6:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+/* 三农市场网-商城-资讯列表 */
+@media screen and (min-width:1200px) {
+    /*pc_1440*/
+    @media screen and (max-width:1440px) {
+        /*1200*/
+    }
+
+    .pc_none {
+        display: none;
+    }
+}
+
+@media screen and (max-width:599px) {}
+
+@media screen and (max-width:320px) {}

+ 1410 - 0
assets/css/shop/shopClass.less

@@ -0,0 +1,1410 @@
+@charset "utf-8";
+
+* {
+    margin: 0;
+    padding: 0;
+    font-family: "微软雅黑", "microsoft yahei";
+}
+
+ul,
+ol {
+    list-style: none;
+}
+
+a:active {
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: none;
+}
+
+a:visited {
+    text-decoration: none;
+}
+
+a:link {
+    text-decoration: none;
+}
+
+a:focus {
+    text-decoration: none;
+}
+
+body {
+    position: relative;
+}
+
+.clearfix {
+    overflow: hidden;
+}
+
+.clearfix_2::after {
+    content: '';
+    display: block;
+    height: 0;
+    visibility: hidden;
+    clear: both;
+}
+
+.hiddenColor {
+    visibility: hidden;
+}
+
+.hand {
+    cursor: pointer;
+}
+
+.aTag_parent {
+    position: relative;
+}
+
+.aTag_parent>a,
+.aTag {
+    display: block;
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    z-index: 99;
+    border: 0px;
+    top: 0px;
+    left: 0px;
+    background: rgba(0, 0, 0, 0);
+}
+
+.dot1 {
+    display: block;
+    word-break: keep-all;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.dot2 {
+    overflow: hidden;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+}
+
+input,
+img {
+    border: none;
+}
+
+.cover100 img {
+    display: block;
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+}
+
+.back100 {
+    background-size: 100% 100%;
+    background-repeat: no-repeat;
+}
+
+article,
+aside,
+footer,
+header,
+time,
+video,
+main,
+nav,
+h4,
+h3,
+section {
+    display: block;
+}
+
+.index_main {
+    margin: 0 auto;
+}
+
+.slow_6 {
+    -webkit-transition: all .6s;
+    -moz-transition: all .6s;
+    -ms-transition: all .6s;
+    -o-transition: all .6s;
+    transition: all .6s;
+}
+
+.index_main {
+    width: 1200px;
+    margin-bottom: 30px;
+}
+
+.shop_head_1 {
+    height: 60px;
+    margin-top: 30px;
+    background-image: url(@/public/shop/navbg.png);
+
+    .shop_head_1_a {
+        float: left;
+        height: 60px;
+        line-height: 60px;
+        font-weight: bold;
+        margin-left: 30px;
+        font-size: 20px;
+        color: #fff;
+    }
+}
+
+.shop_2 {
+    width: 100%;
+    margin-top: 20px;
+
+    .shop_2_in {
+        margin-bottom: 15px;
+    }
+
+    .shop_2_in_box {
+        width: 590px;
+        background: #F7FBFE;
+        border: solid 1px #ddd;
+        box-sizing: border-box;
+    }
+
+    .shop_2_in_box:nth-of-type(odd) {
+        float: left;
+    }
+
+    .shop_2_in_box:nth-of-type(even) {
+        float: right;
+    }
+
+    .shop_2_box {
+        height: 50px;
+        display: flex;
+    }
+
+    .shop_2_name {
+        height: 50px;
+        line-height: 50px;
+        color: #255590;
+        font-size: 16px;
+        width: 126px;
+        font-weight: bold;
+        border-right: solid 1px #ddd;
+        text-align: center;
+        display: block;
+    }
+
+    .shop_2_right {
+        flex: 1;
+        height: 50px;
+        padding: 0px 17px;
+        box-sizing: border-box;
+    }
+
+    .shop_2_a {
+        float: left;
+        padding: 0px 21px;
+        height: 50px;
+        line-height: 50px;
+        color: #333;
+        font-size: 16px;
+
+        &:hover {
+            color: #255590;
+        }
+    }
+
+    .shop_2_in_box_even .shop_2_box:nth-of-type(odd) .shop_2_name {
+        line-height: 60px;
+    }
+
+    .shop_2_in_box_even .shop_2_box:nth-of-type(even) .shop_2_name {
+        line-height: 43px;
+    }
+
+    .shop_2_in_box_even .shop_2_box:nth-of-type(odd) .shop_2_a {
+        line-height: 60px;
+    }
+
+    .shop_2_in_box_even .shop_2_box:nth-of-type(even) .shop_2_a {
+        line-height: 43px;
+    }
+
+    .shop_2_in_2 {
+        background: #F7FBFE;
+        border: solid 1px #ddd;
+        margin-top: 14px;
+        display: flex;
+        box-sizing: border-box;
+    }
+
+    .shop_2_name_2 {
+        height: 59px;
+        line-height: 59px;
+        color: #255590;
+        font-size: 16px;
+        width: 126px;
+        font-weight: bold;
+        border-right: solid 1px #ddd;
+        text-align: center;
+        display: block;
+    }
+
+    .shop_2_right_2 {
+        flex: 1;
+        height: 59px;
+        padding: 0px 17px;
+        box-sizing: border-box;
+    }
+
+    .shop_2_a_2 {
+        float: left;
+        padding: 0px 24px;
+        height: 59px;
+        line-height: 59px;
+        color: #333;
+        font-size: 16px;
+
+        &:hover {
+            color: #255590;
+        }
+    }
+}
+
+.shop_3 {
+    margin-top: 30px;
+}
+
+.shop_3_in {
+    width: 590px;
+}
+
+.shop_3_in:nth-of-type(odd) {
+    float: left;
+}
+
+.shop_3_in:nth-of-type(even) {
+    float: right;
+}
+
+.shop_head_2 {
+    height: 29px;
+    position: relative;
+
+    .shop_head_2_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(@/public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+
+    .shop_head_2_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+
+    .shop_head_2_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+
+.shop_head_3 {
+    height: 29px;
+    position: relative;
+
+    .shop_head_3_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #F7812B;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(@/public/img/4.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+
+    .shop_head_3_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+
+    .shop_head_3_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+
+.shop_img_ul_1 {
+    margin-top: 30px;
+    height: 788px;
+
+    .shop_img_li_1 {
+        margin-bottom: 20px;
+        border: solid 1px #ddd;
+        box-sizing: border-box;
+    }
+
+    .shop_img_li_1_img_box {
+        float: left;
+        width: 180px;
+        height: 178px;
+    }
+
+    .shop_img_li_1_img {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+
+    .shop_img_li_1_right {
+        float: right;
+        width: 367px;
+        margin-right: 22px;
+    }
+
+    .shop_img_li_1_h4 {
+        height: 50px;
+        line-height: 26px;
+        color: #333;
+        font-size: 20px;
+        font-weight: 500;
+        margin-top: 10px;
+    }
+
+    .shop_img_li_1_tag {
+        height: 25px;
+        line-height: 25px;
+        color: #255590;
+        border: solid 1px #255590;
+        margin-top: 16px;
+        box-sizing: border-box;
+        font-size: 14px;
+        float: left;
+        padding: 0px 5px;
+    }
+
+    .shop_img_li_1_price_box {
+        height: 26px;
+        margin-top: 21px;
+        line-height: 26px;
+        color: #333;
+        font-size: 20px;
+    }
+
+    .shop_img_li_1_price_tag {
+        height: 26px;
+        line-height: 26px;
+        color: #333;
+        font-size: 14px;
+        display: inline-block;
+    }
+
+    .shop_img_li_1_btn {
+        clear: both;
+        float: left;
+        height: 30px;
+        line-height: 30px;
+        color: #fff;
+        font-size: 14px;
+        background: #255590;
+        padding: 0px 20px;
+        margin-top: 32px;
+    }
+
+    .shop_img_li_1:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+
+    .shop_img_li_1_a:hover .shop_img_li_1_h4 {
+        color: #255590;
+    }
+
+    .shop_img_li_1_a:hover .shop_img_li_1_price_box {
+        color: #255590;
+    }
+
+    .shop_img_li_1_a:hover .shop_img_li_1_price_tag {
+        color: #255590;
+    }
+}
+
+.shop_ul_1 {
+    background: #F9F9F9;
+    border: solid 1px #ddd;
+    box-sizing: border-box;
+    margin-top: 30px;
+
+    .shop_li_1 {
+        border-bottom: dashed 1px #ddd;
+        padding: .6px 0px;
+    }
+
+    .shop_li_1_a {
+        display: block;
+        width: 100%;
+    }
+
+    .shop_li_1_left {
+        float: left;
+        width: 400px;
+        margin-left: 20px;
+    }
+
+    .shop_li_1_h4 {
+        height: 26px;
+        line-height: 26px;
+        color: #333;
+        font-size: 20px;
+        font-weight: 500;
+        position: relative;
+        text-indent: 16px;
+        margin-top: 20px;
+    }
+
+    .shop_li_1_h4::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #F7812B;
+        position: absolute;
+        left: 0px;
+        top: 11px;
+    }
+
+    .shop_li_1_text {
+        height: 21px;
+        line-height: 21px;
+        text-indent: 16px;
+        color: #666;
+        font-size: 16px;
+        margin: 10px 0px 18px 0px;
+    }
+
+    .shop_li_1_btn {
+        float: right;
+        height: 30px;
+        line-height: 30px;
+        color: #fff;
+        font-size: 14px;
+        background: #F7812B;
+        padding: 0px 20px;
+        margin: 34px 20px 0px 0px;
+    }
+
+    .shop_li_1_a:hover .shop_li_1_h4 {
+        color: #F7812B;
+    }
+
+    .shop_li_1_a:hover .shop_li_1_text {
+        color: #F7812B;
+    }
+}
+
+.shop_head_4 {
+    height: 29px;
+    position: relative;
+
+    .shop_head_4_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(@/public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+
+    .shop_head_4_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+
+    .shop_head_4_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+
+.shop_head_5 {
+    height: 29px;
+    position: relative;
+
+    .shop_head_5_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #F7812B;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(@/public/img/4.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+
+    .shop_head_5_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+
+    .shop_head_5_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+
+.shop_img_ul_2 {
+    margin-top: 30px;
+
+    .shop_img_li_2 {
+        margin-bottom: 20px;
+        border: solid 1px #ddd;
+        box-sizing: border-box;
+    }
+
+    .shop_img_li_2_img_box {
+        float: left;
+        width: 180px;
+        height: 178px;
+    }
+
+    .shop_img_li_2_img {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+
+    .shop_img_li_2_right {
+        float: right;
+        width: 367px;
+        margin-right: 22px;
+    }
+
+    .shop_img_li_2_h4 {
+        height: 50px;
+        line-height: 26px;
+        color: #333;
+        font-size: 20px;
+        font-weight: 500;
+        margin-top: 10px;
+    }
+
+    .shop_img_li_2_tag {
+        height: 25px;
+        line-height: 25px;
+        color: #255590;
+        border: solid 1px #255590;
+        margin-top: 16px;
+        box-sizing: border-box;
+        font-size: 14px;
+        float: left;
+        padding: 0px 5px;
+    }
+
+    .shop_img_li_2_price_box {
+        height: 26px;
+        margin-top: 21px;
+        line-height: 26px;
+        color: #333;
+        font-size: 20px;
+    }
+
+    .shop_img_li_2_price_tag {
+        height: 26px;
+        line-height: 26px;
+        color: #333;
+        font-size: 14px;
+        display: inline-block;
+    }
+
+    .shop_img_li_2_btn {
+        clear: both;
+        float: left;
+        height: 30px;
+        line-height: 30px;
+        color: #fff;
+        font-size: 14px;
+        background: #255590;
+        padding: 0px 20px;
+        margin-top: 27px;
+    }
+
+    .shop_img_li_2:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+
+    .shop_img_li_2_a:hover .shop_img_li_2_h4 {
+        color: #255590;
+    }
+
+    .shop_img_li_2_a:hover .shop_img_li_2_price_box {
+        color: #255590;
+    }
+
+    .shop_img_li_2_a:hover .shop_img_li_2_price_tag {
+        color: #255590;
+    }
+}
+
+.shop_img_ul_3 {
+    margin-top: 30px;
+
+    .shop_img_li_3 {
+        margin-bottom: 20px;
+        border: solid 1px #ddd;
+        box-sizing: border-box;
+    }
+
+    .shop_img_li_3_img_box {
+        float: left;
+        width: 180px;
+        height: 178px;
+    }
+
+    .shop_img_li_3_img {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+
+    .shop_img_li_3_right {
+        float: right;
+        width: 367px;
+        margin-right: 22px;
+    }
+
+    .shop_img_li_3_h4 {
+        height: 50px;
+        line-height: 26px;
+        color: #333;
+        font-size: 20px;
+        font-weight: 500;
+        margin-top: 10px;
+    }
+
+    .shop_img_li_3_tag {
+        height: 25px;
+        line-height: 25px;
+        color: #F7812B;
+        border: solid 1px #F7812B;
+        margin-top: 16px;
+        box-sizing: border-box;
+        font-size: 14px;
+        float: left;
+        padding: 0px 5px;
+    }
+
+    .shop_img_li_3_price_box {
+        height: 26px;
+        margin-top: 21px;
+        line-height: 26px;
+        color: #333;
+        font-size: 20px;
+    }
+
+    .shop_img_li_3_price_tag {
+        height: 26px;
+        line-height: 26px;
+        color: #333;
+        font-size: 14px;
+        display: inline-block;
+    }
+
+    .shop_img_li_3_btn {
+        clear: both;
+        float: left;
+        height: 30px;
+        line-height: 30px;
+        color: #fff;
+        font-size: 14px;
+        background: #F7812B;
+        padding: 0px 20px;
+        margin-top: 27px;
+    }
+
+    .shop_img_li_3:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+
+    .shop_img_li_3_a:hover .shop_img_li_3_h4 {
+        color: #F7812B;
+    }
+
+    .shop_img_li_3_a:hover .shop_img_li_3_price_box {
+        color: #F7812B;
+    }
+
+    .shop_img_li_3_a:hover .shop_img_li_3_price_tag {
+        color: #F7812B;
+    }
+}
+
+.shop_4 {
+    margin-top: 29px;
+}
+
+.banner_1 {
+    margin-top: 29px;
+    height: 90px;
+    overflow: hidden;
+
+    .banner_1_a {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+
+    .banner_1_img {
+        display: block;
+        width: 100%;
+    }
+}
+
+.shop_5 {
+    margin-top: 30px;
+}
+
+.shop_5_left {
+    float: left;
+    width: 720px;
+}
+
+.shop_5_right {
+    float: right;
+    width: 450px;
+    min-height: 411px;
+}
+
+.shop_head_7 {
+    height: 29px;
+    position: relative;
+
+    .shop_head_7_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(@/public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+
+    .shop_head_7_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+
+    .shop_head_7_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+
+.shop_box_1 {
+    float: left;
+    width: 350px;
+}
+
+.shop_box_2 {
+    float: right;
+    width: 350px;
+}
+
+.shop_img_ul_4 {
+    margin-top: 30px;
+
+    .shop_img_li_4 {
+        width: 350px;
+        height: 230px;
+        margin-bottom: 20px;
+        position: relative;
+    }
+
+    .shop_img_li_4_a {}
+
+    .shop_img_li_4_img {
+        display: block;
+        width: 350px;
+        height: 230px;
+    }
+
+    .shop_img_li_4_rgba {
+        width: 350px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        padding: 0px 10px;
+        box-sizing: border-box;
+        position: absolute;
+        z-index: 11;
+        left: 0px;
+        bottom: 0px;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+
+.shop_img_ul_5 {
+    margin-top: 0px;
+
+    .shop_img_li_5 {
+        width: 165px;
+        height: 96px;
+        position: relative;
+    }
+
+    .shop_img_li_5:nth-of-type(odd) {
+        float: left;
+    }
+
+    .shop_img_li_5:nth-of-type(even) {
+        float: right;
+    }
+
+    .shop_img_li_5_a {}
+
+    .shop_img_li_5_img {
+        width: 165px;
+        height: 96px;
+    }
+
+    .shop_img_li_5_rgba {
+        width: 165px;
+        height: 28px;
+        line-height: 28px;
+        color: #fff;
+        font-size: 14px;
+        box-sizing: border-box;
+        position: absolute;
+        padding: 0px 10px;
+        left: 0px;
+        bottom: 0px;
+        z-index: 11;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 6%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+
+.shop_ul_2 {
+    margin-top: 30px;
+
+    .shop_li_2 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 17px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+
+    .shop_li_2:hover {
+        color: #255590;
+    }
+
+    .shop_li_2::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 8px;
+        z-index: 11;
+    }
+
+    .shop_li_2:nth-of-type(3n-2) {
+        font-weight: bold;
+    }
+
+    .shop_li_2:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+
+    .shop_li_2:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+.shop_head_8 {
+    height: 29px;
+    position: relative;
+
+    .shop_head_8_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(@/public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+
+    .shop_head_8_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+
+    .shop_head_8_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+
+.shop_img_ul_6 {
+    margin-top: 30px;
+
+    .shop_img_li_6 {
+        height: 267px;
+        position: relative;
+        width: 450px;
+    }
+
+    .shop_img_li_6_a {}
+
+    .shop_img_li_6_img {
+        display: block;
+        height: 267px;
+        width: 450px;
+    }
+
+    .shop_img_li_6_rgba {
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        padding: 0px 10px;
+        box-sizing: border-box;
+        position: absolute;
+        width: 450px;
+        z-index: 11;
+        left: 0px;
+        bottom: 0px;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 6%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+
+.shop_ul_3 {
+    margin-top: 20px;
+
+    .shop_li_3 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 17px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+
+    .shop_li_3:hover {
+        color: #255590;
+    }
+
+    .shop_li_3::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 8px;
+        z-index: 11;
+    }
+
+    .shop_li_3:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+
+    .shop_li_3:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+.shop_head_9 {
+    height: 29px;
+    position: relative;
+
+    .shop_head_9_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(@/public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+
+    .shop_head_9_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+
+    .shop_head_9_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+
+.shop_6 {
+    margin-top: 30px;
+}
+
+.shop_6_left {
+    float: left;
+    width: 720px;
+}
+
+.shop_6_right {
+    float: right;
+    width: 450px;
+}
+
+.shop_box_3 {
+    width: 350px;
+    float: left;
+}
+
+.shop_box_4 {
+    width: 350px;
+    float: right;
+}
+
+.shop_img_ul_7 {
+    margin-top: 30px;
+
+    .shop_img_li_7 {
+        width: 350px;
+        height: 230px;
+        margin-bottom: 20px;
+        position: relative;
+    }
+
+    .shop_img_li_7:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+
+    .shop_img_li_7_a {}
+
+    .shop_img_li_7_img {
+        display: block;
+        width: 350px;
+        height: 230px;
+    }
+
+    .shop_img_li_7_rgba {
+        width: 350px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        padding: 0px 10px;
+        box-sizing: border-box;
+        position: absolute;
+        z-index: 11;
+        left: 0px;
+        bottom: 0px;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+
+.shop_ul_4 {
+    margin-top: 30px;
+
+    .shop_li_4 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 17px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+
+    .shop_li_4:hover {
+        color: #255590;
+    }
+
+    .shop_li_4::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 8px;
+        z-index: 11;
+    }
+
+    .shop_li_4:nth-of-type(3n-2) {
+        font-weight: bold;
+    }
+
+    .shop_li_4:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+
+    .shop_li_4:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+.shop_head_10 {
+    height: 29px;
+    position: relative;
+
+    .shop_head_10_name {
+        float: left;
+        height: 29px;
+        line-height: 29px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+        padding-left: 22px;
+        background: url(@/public/img/3.png) no-repeat left center;
+        background-size: 12px 18px;
+    }
+
+    .shop_head_10_more {
+        height: 29px;
+        line-height: 29px;
+        color: #999;
+        float: right;
+        font-size: 16px;
+    }
+
+    .shop_head_10_more::after {
+        content: '';
+        display: block;
+        left: 0px;
+        top: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        z-index: 11;
+    }
+}
+
+.shop_box_5 {
+    width: 170px;
+    float: left;
+}
+
+.shop_box_6 {
+    width: 265px;
+    float: right;
+}
+
+.shop_img_ul_8 {
+    margin-top: 28px;
+
+    .shop_img_li_8 {
+        width: 170px;
+        height: 110px;
+        margin-bottom: 10px;
+        position: relative;
+    }
+
+    .shop_img_li_8_a {}
+
+    .shop_img_li_8_img {
+        width: 170px;
+        height: 110px;
+        display: block;
+    }
+
+    .shop_img_li_8_rgba {
+        width: 170px;
+        height: 28px;
+        line-height: 28px;
+        color: #fff;
+        font-size: 14px;
+        box-sizing: border-box;
+        position: absolute;
+        padding: 0px 10px;
+        left: 0px;
+        bottom: 0px;
+        z-index: 11;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 6%, rgba(0, 0, 0, 0) 100%);
+    }
+
+    .shop_img_li_8:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+}
+
+.shop_ul_5 {
+    margin-top: 30px;
+
+    .shop_li_5 {
+        height: 48px;
+        margin-bottom: 11px;
+        width: 265px;
+    }
+
+    .shop_li_5:nth-last-of-type(1) {
+        margin-bottom: 0px;
+    }
+
+    .shop_li_5_in {
+        height: 48px;
+        width: 265px;
+        display: table-cell;
+        vertical-align: middle;
+    }
+
+    .shop_li_5_a {
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        box-sizing: border-box;
+        position: relative;
+        width: 265px;
+        box-sizing: border-box;
+        padding-left: 16px;
+    }
+
+    .shop_li_5_a::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 44%;
+        z-index: 11;
+    }
+
+    .shop_li_5_a:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+
+    .shop_li_5_a:hover {
+        color: #255590;
+    }
+}
+
+.banner_2 {
+    margin-top: 29px;
+    height: 90px;
+    overflow: hidden;
+
+    .banner_2_a {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+
+    .banner_2_img {
+        display: block;
+        width: 100%;
+    }
+}
+
+@media screen and (min-width:1200px) {
+    /*pc_1440*/
+    @media screen and (max-width:1440px) {
+        /*1200*/
+    }
+
+    .pc_none {
+        display: none;
+    }
+}
+
+@media screen and (max-width:599px) {}
+
+@media screen and (max-width:320px) {}

+ 0 - 0
assets/css/shop/threeLevelPage.less


+ 139 - 0
components/goods/SwiperSnscShopInfoCateg.vue

@@ -0,0 +1,139 @@
+<template>
+    <div class="swiper">
+        <el-carousel :interval="3333" height="405px" indicator-class="custom-indicator">
+            <el-carousel-item v-for="(item, index) in data" :key="index">
+                <NuxtLink :href="getLinkPathDetail(item)">
+                    <img class="" :src="item.imgurl" :title="item.title" alt="">
+                    <span class="swiper_dot1 dot1">
+                        {{ item.title }}
+                    </span>
+                </NuxtLink>
+            </el-carousel-item>
+        </el-carousel>
+    </div>
+
+</template>
+
+<script setup>
+
+import { ElCarousel, ElCarouselItem } from 'element-plus'
+const props = defineProps({
+    data: Array
+});
+
+</script>
+
+<style lang="less" scoped>
+.dot1 {
+    display: block;
+    word-break: keep-all;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.swiper {
+    width: 100%;
+    height: 405px;
+    position: relative;
+
+    img {
+        width: 100%;
+        height: 405px;
+    }
+
+    .swiper_dot1 {
+        display: block;
+        width: 100%;
+        line-height: 60px;
+        height: 60px;
+        color: #fff;
+        font-size: 24px;
+        text-indent: 20px;
+        position: absolute;
+        bottom: 0;
+        left: 0;
+        z-index: 10;
+        box-sizing: border-box;
+        padding-right: 244px;
+
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+
+}
+
+.el-carousel {
+    /deep/.el-carousel__arrow i {
+        font-size: 30px !important;
+    }
+
+    /deep/.el-carousel__arrow--left {
+        left: 16px;
+        width: 35px;
+        height: 57px;
+        color: #616358;
+        background: #dcdedc;
+        position: absolute;
+        left: 0px;
+        border: none;
+        border-radius: 0;
+    }
+
+    /deep/.el-carousel__arrow--right {
+        right: 16px;
+        width: 35px;
+        height: 57px;
+        color: #616358;
+        background: #dcdedc;
+        position: absolute;
+        right: 0;
+        border: none;
+        border-radius: 0;
+    }
+
+    /deep/ .el-carousel__indicators {
+        // 指示器
+        left: unset;
+        transform: unset;
+        right: 10px;
+        bottom: 11px;
+    }
+
+    /deep/ .el-carousel__button {
+        // 指示器按钮
+        width: 10px;
+        height: 10px;
+        border: none;
+        border-radius: 5px;
+        background: #fff;
+        opacity: 1;
+    }
+
+    /deep/ .is-active .el-carousel__button {
+        // 指示器激活按钮
+        background: #255590;
+        width: 25px;
+        opacity: 1;
+
+    }
+
+    /deep/ .el-carousel__container {
+        height: 100%;
+    }
+}
+
+.custom-indicator button {
+    background-color: #fff;
+
+    opacity: 1;
+    width: 8px;
+    height: 8px;
+}
+
+.custom-indicator button.is-active {
+    background-color: #DD7D18;
+    width: 58px;
+
+    opacity: 1;
+}
+</style>

+ 628 - 0
components/goods/class.vue

@@ -0,0 +1,628 @@
+<template>
+    <HomePageHead></HomePageHead>
+    <HomePageNavigation></HomePageNavigation>
+    <!-- 三农市场网-商城 -->
+    <main class="index_main">
+        <div class="shop_head_1 clearfix back100">
+            <span class="shop_head_1_a" href="" title="">{{ categoryName }}</span>
+        </div>
+        <!-- 导航 -->
+        <section class="shop_2 clearfix">
+            <div class="shop_2_in clearfix">
+                <div class="shop_2_in_box clearfix shop_2_in_box_even">
+                    <div class="shop_2_box clearfix">
+                        <NuxtLink class="shop_2_name" :href="`/${pageData[0].aLIas_pinyin}/index.html`"
+                            :title="pageData[0].title">
+                            {{ pageData[0].alias }}
+                        </NuxtLink>
+                        <div class="shop_2_right clearfix">
+                            <a class="shop_2_a" href="" title="" v-for="(item, index) in pageData[0].children"
+                                :key="index">{{ item.alias }}</a>
+                        </div>
+                    </div>
+                    <div class="shop_2_box clearfix">
+                        <NuxtLink class="shop_2_name" :href="`/${pageData[1].aLIas_pinyin}/index.html`"
+                            :title="pageData[1].title">
+                            {{ pageData[1].alias }}
+                        </NuxtLink>
+                        <div class="shop_2_right clearfix">
+                            <a class="shop_2_a" href="" title="" v-for="(item, index) in pageData[1].children"
+                                :key="index">{{ item.alias }}</a>
+                        </div>
+                    </div>
+                </div>
+                <div class="shop_2_in_box clearfix">
+                    <div class="shop_2_box clearfix">
+                        <NuxtLink class="shop_2_name" :href="`/${pageData[2].aLIas_pinyin}/index.html`"
+                            :title="pageData[2].title">
+                            {{ pageData[2].alias }}
+                        </NuxtLink>
+                        <div class="shop_2_right clearfix">
+                            <a class="shop_2_a" href="" title="" v-for="(item, index) in pageData[2].children"
+                                :key="index">{{ item.alias }}</a>
+                        </div>
+                    </div>
+                    <div class="shop_2_box clearfix">
+                        <NuxtLink class="shop_2_name" href="" title="" :href="`/${pageData[3].aLIas_pinyin}/index.html`"
+                            :title="pageData[3].title">
+                            {{ pageData[3].alias }}
+                        </NuxtLink>
+                        <div class="shop_2_right clearfix">
+                            <a class="shop_2_a" href="" title="" v-for="(item, index) in pageData[3].children"
+                                :key="index">{{ item.alias }}</a>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="shop_2_in_2 clearfix">
+                <NuxtLink class="shop_2_name_2" :href="`/${pageData[4].aLIas_pinyin}/index.html`"
+                    :title="pageData[4].title">
+                    {{ pageData[4].alias }}
+                </NuxtLink>
+                <div class="shop_2_right_2 clearfix">
+                    <a class="shop_2_a_2" href="" title="" v-for="(item, index) in pageData[4].children" :key="index">
+                        {{ item.alias }}</a>
+                </div>
+            </div>
+        </section>
+        <section class="shop_3 clearfix" v-if="goodsData.length > 0">
+            <!-- 农产批发1 -->
+            <div class="shop_3_in clearfix">
+                <div class="shop_head_2 clearfix">
+                    <div class="shop_head_2_name">{{ goodsData[0].alias }}</div>
+                </div>
+                <div class="shop_img_ul_1 clearfix" v-if="goodsData[0].data">
+                    <div class="shop_img_li_1 clearfix" v-for="(item, index) in goodsData[0].data" :key="index">
+                        <a class="shop_img_li_1_a" href="" title="">
+                            <div class="shop_img_li_1_img_box clearfix">
+                                <img class="shop_img_li_1_img" :src="item.imgurl" title="" alt="">
+                            </div>
+                            <div class="shop_img_li_1_right clearfix">
+                                <h4 class="shop_img_li_1_h4 dot2">{{ item.name }}</h4>
+                                <div class="shop_img_li_1_tag">
+                                    {{ item.type_id == 1 ? '求购' : '供应' }}
+                                </div>
+                                <div class="shop_img_li_1_btn">查看详情</div>
+                            </div>
+                        </a>
+                    </div>
+                </div>
+            </div>
+            <div class="shop_3_in clearfix">
+                <div class="shop_head_3 clearfix">
+                    <a class="shop_head_3_more" href="" title="">栏目简介</a>
+                </div>
+                <div class="shop_ul_1 clearfix" v-if="goodsData[0].data1.length > 0">
+                    <div class="shop_li_1 clearfix" v-for="(item, index) in goodsData[0].data1" :key="index">
+                        <a class="shop_li_1_a" href="" title="">
+                            <div class="shop_li_1_left">
+                                <h4 class="shop_li_1_h4 dot1">{{ item.name }}</h4>
+                                <div class="shop_li_1_text dot1">{{ item.description }}</div>
+                            </div>
+                            <div class="shop_li_1_btn">查看详情</div>
+                        </a>
+                    </div>
+                </div>
+            </div>
+            <!-- 集贸市场2 -->
+        </section>
+        <section class="shop_4 clearfix">
+            <!-- 名品之窗1 -->
+            <div class="shop_3_in clearfix" v-if="goodsData.length > 1">
+                <div class="shop_head_4 clearfix">
+                    <div class="shop_head_4_name">{{ goodsData[1].alias }}</div>
+                    <a class="shop_head_4_more" href="" title="">栏目简介</a>
+                </div>
+                <div class="shop_img_ul_2 clearfix">
+                    <div class="shop_img_li_2 clearfix" v-for="(item, index) in goodsData[1].data" :key="index">
+                        <a class="shop_img_li_2_a" href="" title="">
+                            <div class="shop_img_li_2_img_box clearfix">
+                                <img class="shop_img_li_2_img" :src="item.imgurl" title="" alt="">
+                            </div>
+                            <div class="shop_img_li_2_right clearfix">
+                                <h4 class="shop_img_li_2_h4 dot2">{{ item.name }}</h4>
+                                <div class="shop_img_li_2_tag">
+                                    {{ item.type_id == 1 ? '求购' : '供应' }}
+                                </div>
+                                <div class="shop_img_li_2_btn">查看详情</div>
+                            </div>
+                        </a>
+                    </div>
+                </div>
+            </div>
+            <!-- 名品之窗2 -->
+            <!-- 供求信息1 -->
+            <div class="shop_3_in clearfix" v-if="goodsData.length > 2">
+                <div class="shop_head_5 clearfix">
+                    <div class="shop_head_5_name">{{ goodsData[2].alias }}</div>
+                    <a class="shop_head_5_more" href="" title="">栏目简介</a>
+                </div>
+                <div class="shop_img_ul_3 clearfix">
+                    <div class="shop_img_li_3 clearfix" v-for="(item, index) in goodsData[2].data" :key="index">
+                        <a class="shop_img_li_3_a" href="" title="">
+                            <div class="shop_img_li_3_img_box clearfix">
+                                <img class="shop_img_li_3_img" :src="item.imgurl" title="" alt="">
+                            </div>
+                            <div class="shop_img_li_3_right clearfix">
+                                <h4 class="shop_img_li_3_h4 dot2">{{ item.name }}</h4>
+                                <div class="shop_img_li_3_tag">
+                                    {{ item.type_id == 1 ? '求购' : '供应' }}
+                                </div>
+                                <div class="shop_img_li_3_btn">查看详情</div>
+                            </div>
+                        </a>
+                    </div>
+                </div>
+            </div>
+            <!-- 供求信息2 -->
+        </section>
+        <div class="banner_1 clearfix">
+            <a class="banner_1_a" href="" title="">
+                <img class="banner_1_img" src="@/public/img/6.png" title="" alt="">
+            </a>
+        </div>
+        <section class="shop_5 clearfix">
+            <!-- 农产动态 1-->
+            <div class="shop_5_left clearfix">
+                <div class="shop_head_7 clearfix">
+                    <NuxtLink :href="`/${newsData[0].aLIas_pinyin}/index.html`" class="shop_head_7_name">
+                        {{ newsData[0].alias }}
+                    </NuxtLink>
+                    <NuxtLink :href="`/${newsData[0].aLIas_pinyin}/index.html`" class="shop_head_7_more"
+                        :title="newsData[0].title">
+                        栏目简介
+                    </NuxtLink>
+                </div>
+                <div class="shop_box_1 clearfix">
+                    <div class="shop_img_ul_4 clearfix">
+                        <div class="shop_img_li_4 clearfix">
+                            <NuxtLink class="shop_img_li_4_a"
+                                :href="`/${newsData[0].data.pinyin}/${newsData[0].data.id}.html`"
+                                :title="newsData[0].data.title">
+                                <img class="shop_img_li_4_img" :src="newsData[0].data.imgurl"
+                                    :title="newsData[0].data.title" alt="">
+                                <div class="shop_img_li_4_rgba clearfix dot1">
+                                    {{ newsData[0].data.alias }}
+                                </div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                    <div class="shop_img_ul_5 clearfix">
+                        <div class="shop_img_li_5 clearfix" v-for="(item, index) in newsData[0].data1" :key="index">
+                            <NuxtLink class="shop_img_li_5_a" :href="`/${item.pinyin}/${item.id}.html`"
+                                :title="item.title">
+                                <img class="shop_img_li_5_img" :src="item.imgurl" :title="item.title" alt="">
+                                <div class="shop_img_li_5_rgba clearfix dot1">
+                                    {{ item.alias }}
+                                </div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                </div>
+                <div class="shop_box_2 clearfix">
+                    <div class="shop_ul_2 clearfix">
+                        <NuxtLink class="shop_li_2 clearfix dot1" :href="`/${item.pinyin}/${item.id}.html`"
+                            :title="item.title" v-for="(item, index) in newsData[0].data2" :key="index">
+                            {{ item.alias }}
+                        </NuxtLink>
+                    </div>
+                </div>
+            </div>
+            <!-- 农产动态 2-->
+            <!-- 农产知识 1-->
+            <div class="shop_5_right clearfix">
+                <div class="shop_head_8 clearfix">
+                    <NuxtLink :href="`/${newsData[1].aLIas_pinyin}/index.html`" class="shop_head_8_name">
+                        {{ newsData[1].alias }}
+                    </NuxtLink>
+                    <NuxtLink :href="`/${newsData[1].aLIas_pinyin}/index.html`" class="shop_head_8_more"
+                        :title="newsData[1].title">
+                        栏目简介
+                    </NuxtLink>
+                </div>
+                <div class="shop_img_ul_6 clearfix">
+                    <div class="shop_img_li_6 clearfix">
+                        <NuxtLink class="shop_img_li_6_a"
+                            :href="`/${newsData[1].data.pinyin}/${newsData[1].data.id}.html`"
+                            :title="newsData[1].data.title">
+                            <img class="shop_img_li_6_img" :src="newsData[1].data.imgurl" title="" alt="">
+                            <div class="shop_img_li_6_rgba clearfix dot1">
+                                {{ newsData[1].data.alias }}
+                            </div>
+                        </NuxtLink>
+                    </div>
+                </div>
+                <div class="shop_ul_3 clearfix">
+                    <NuxtLink class="shop_li_3 dot1" :href="`/${item.pinyin}/${item.id}.html`" :title="item.title"
+                        v-for="(item, index) in newsData[1].data2" :key="index">
+                        {{ item.alias }}
+                    </NuxtLink>
+                </div>
+            </div>
+            <!-- 农产知识 2-->
+        </section>
+        <section class="shop_6 clearfix">
+            <!-- 农产会展1 -->
+            <div class="shop_6_left clearfix">
+                <div class="shop_head_9 clearfix">
+                    <NuxtLink :href="`/${newsData[2].aLIas_pinyin}/index.html`" class="shop_head_9_name">
+                        {{ newsData[2].alias }}
+                    </NuxtLink>
+                    <NuxtLink :href="`/${newsData[2].aLIas_pinyin}/index.html`" class="shop_head_9_more"
+                        :title="newsData[2].title">
+                        栏目简介
+                    </NuxtLink>
+                </div>
+                <div class="shop_box_3 clearfix">
+                    <div class="shop_img_ul_7 clearfix">
+                        <div class="shop_img_li_7 clearfix">
+                            <NuxtLink class="shop_img_li_7_a"
+                                :href="`/${newsData[2].data.pinyin}/${newsData[2].data.id}.html`"
+                                :title="newsData[2].data.title">
+                                <img class="shop_img_li_7_img" :src="newsData[2].data.imgurl"
+                                    :title="newsData[2].data.title" alt="">
+                                <div class="shop_img_li_7_rgba clearfix dot1">
+                                    {{ newsData[2].data.alias }}
+                                </div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                </div>
+                <div class="shop_box_4 clearfix">
+                    <div class="shop_ul_4 clearfix">
+                        <NuxtLink :href="`/${item.pinyin}/${item.id}.html`" :title="item.title"
+                            class="shop_li_4 clearfix dot1" v-for="(item, index) in newsData[2].data2" :key="index">
+                            {{ item.alias }}
+                        </NuxtLink>
+                    </div>
+                </div>
+            </div>
+            <!-- 农产会展2 -->
+            <!-- 农产商机1 -->
+            <div class="shop_6_right clearfix">
+                <div class="shop_head_10 clearfix">
+                    <NuxtLink :href="`/${newsData[3].aLIas_pinyin}/index.html`" class="shop_head_10_name">
+                        {{ newsData[3].alias }}
+                    </NuxtLink>
+                    <NuxtLink :href="`/${newsData[3].aLIas_pinyin}/index.html`" class="shop_head_10_more"
+                        :title="newsData[3].title">
+                        栏目简介
+                    </NuxtLink>
+                </div>
+                <div class="shop_box_5 clearfix" v-if="newsData[3].data">
+                    <div class="shop_img_ul_8 clearfix">
+                        <div class="shop_img_li_8 clearfix" v-for="(item, index) in newsData[3].data" :key="index">
+                            <NuxtLink class="shop_img_li_8_a" :href="`/${item.pinyin}/${item.id}.html`"
+                                :title="item.title">
+                                <img class="shop_img_li_8_img" :src="item.imgurl" title="" alt="">
+                                <div class="shop_img_li_8_rgba clearfix dot1">
+                                    {{ item.alias }}
+                                </div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                </div>
+                <div class="shop_box_6 clearfix" v-if="newsData[3].data2">
+                    <div class="shop_ul_5 clearfix">
+                        <div class="shop_li_5 clearfix" v-for="(item, index) in newsData[3].data2" :key="index">
+                            <div class="shop_li_5_in clearfix">
+                                <NuxtLink class="shop_li_5_a dot2" :href="`/${item.pinyin}/${item.id}.html`"
+                                    :title="item.title">
+                                    {{ item.alias }}
+                                </NuxtLink>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <!-- 农产商机2 -->
+        </section>
+        <div class="banner_2 clearfix">
+            <a class="banner_2_a" href="" title=""><img class="banner_2_img" src="@/public/img/15.png" title=""
+                    alt=""></a>
+        </div>
+    </main>
+    <HomeFoot></HomeFoot>
+</template>
+<script setup>
+import { NuxtLink } from '#components';
+import { ref } from 'vue'
+// import { ElRadio, ElRadioGroup } from 'element-plus'
+//1.获得路由id start ---------------------------------------->
+const targetSegment = getRoutePath(1);
+//1.1 获得当前的路由id
+let routeId;
+let categoryName;
+//通过导航路径反向查询导航id
+const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
+    method: 'GET',
+    query: {
+        'pinyin': targetSegment,
+    },
+});
+if (getRouteId.code == 200) {
+    routeId = getRouteId.data.category_id
+    categoryName = getRouteId.data.alias
+} else {
+    console.log("获得路由id出错!", getRouteId.message)
+}
+//1.获得路由id end ---------------------------------------->
+
+//3.广告 start ---------------------------------------->
+let adImg1 = ref({})
+let adImg2 = ref({})
+let adImg3 = ref({})
+let adImg4 = ref({})
+onMounted(async () => {
+    //从客户端获取行政职能部门 加快打开速度
+    const { $webUrl, $CwebUrl } = useNuxtApp();
+    //广告1
+    let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0001`
+    const responseAd1 = await fetch(url, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd1 = await responseAd1.json();
+    adImg1.value = resultAd1.data[0];
+
+    //广告2
+    let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0002`
+    const responseAd2 = await fetch(url2, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd2 = await responseAd2.json();
+    adImg2.value = resultAd2.data[0];
+
+    //广告3
+    let url3 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0003`
+    const responseAd3 = await fetch(url3, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd3 = await responseAd3.json();
+    adImg3.value = resultAd3.data[0];
+
+    //广告4
+    let url4 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0004`
+    const responseAd4 = await fetch(url4, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd4 = await responseAd4.json();
+    adImg4.value = resultAd4.data[0];
+})
+//3.广告 end ---------------------------------------->
+
+//4.页面数据 start ---------------------------------------->
+const pageData = ref([
+    //示例:
+    // {
+    //     id: 1, 
+    //     title: "", //该导航的标题
+    //     data: [], //数据1
+    //     data1: [], //数据2
+    //     data2: [], //数据3
+    //     data3: [], //数据4
+    //     data4: [], //数据5
+    //     category_id1: "",  //子导航id1
+    //     category_id2: "", 
+    //     category_id3: "",
+    //     category_id4: "",
+    //     title1: "", //子导航标题1
+    //     title2: "",
+    //     title3: "",
+    //     title4: "",
+    //     cid: "" //该导航的id
+    // },
+])
+const goodsData = ref([])
+const newsData = ref([])
+
+
+//4.1 获取所有导航
+try {
+    const navigateData = await requestDataPromise('/web/getWebsiteModelCategory', {
+        method: 'GET',
+        query: {
+            'placeid': 1,
+            'pid': routeId,
+            'num': 8,
+            'type': 1
+        },
+    });
+    console.log("导航池11111", navigateData);
+
+    if (navigateData.code == 200) {
+        // 遍历可用的导航池放到页面中
+        for (let index in navigateData.data) {
+            let data = {
+                title: navigateData.data[index].name,
+                cid: navigateData.data[index].category_id,
+                children_count: navigateData.data[index].children_count,
+                alias: navigateData.data[index].alias,
+                aLIas_pinyin: targetSegment + "/" + navigateData.data[index].aLIas_pinyin,
+                children: navigateData.data[index].children,
+                type: navigateData.data[index].type,
+                data: [],
+                data1: [],
+                data2: [],
+                data3: [],
+                data4: [],
+                category_id1: "",
+                category_id2: "",
+                category_id3: "",
+                category_id4: "",
+                title1: "",
+                title2: "",
+                title3: "",
+                title4: ""
+            };
+            if (navigateData.data[index].is_url == 1) {
+                // 处理 URL 的逻辑
+            } else {
+                if (navigateData.data[index].type == 2) {
+                    goodsData.value.push(data);
+                } else if (navigateData.data[index].type == 1) {
+                    newsData.value.push(data);
+                }
+                //每个页面最多8个模块
+                pageData.value.push(data);
+            }
+        }
+        console.log("导航池11111122222", pageData.value);
+        console.log("导航池11111133333", goodsData.value);
+        console.log("导航池11111144444", newsData.value);
+
+        //导航池加载完毕,开始申请模块数据
+        let getJson = [
+            // { "parent": routeId + ",0,0", "child": newsData.value[0].cid + ",5,9" },//模块1 
+            // { "parent": routeId + ",0,0", "child": newsData.value[1].cid + ",1,6" },//模块2
+            // { "parent": routeId + ",0,0", "child": newsData.value[2].cid + ",1,6" },//模块3
+            // { "parent": routeId + ",0,0", "child": newsData.value[3].cid + ",1,6" },//模块4
+        ]
+        for (let i = 0; i < newsData.value.length; i++) {
+            if (i == 0) {
+                getJson.push({ "parent": routeId + ",0,0", "child": newsData.value[0].cid + ",3,9" })
+            } else if (i == 1) {
+                getJson.push({ "parent": routeId + ",0,0", "child": newsData.value[1].cid + ",1,2" })
+            } else if (i == 2) {
+                getJson.push({ "parent": routeId + ",0,0", "child": newsData.value[2].cid + ",1,6" })
+            } else if (i == 3) {
+                getJson.push({ "parent": routeId + ",0,0", "child": newsData.value[3].cid + ",2,4" })
+            }
+        }
+        let jsonString = JSON.stringify(getJson);
+        getPageAllData(jsonString);
+
+        let goodsJson = [
+            // { "catid": goodsData.value[0].cid + ",0,12" },//模块1
+            // { "catid": goodsData.value[1].cid + ",0,4" },//模块2
+            // { "catid": goodsData.value[2].cid + ",0,4" },//模块3
+        ]
+        for (let i = 0; i < goodsData.value.length; i++) {
+            if (i == 0) {
+                goodsJson.push({ "catid": goodsData.value[0].cid + ",0,12" });
+            } else if (i == 1) {
+                goodsJson.push({ "catid": goodsData.value[1].cid + ",0,4" });
+            } else if (i == 2) {
+                goodsJson.push({ "catid": goodsData.value[2].cid + ",0,4" });
+            }
+        }
+        let goodsJsonString = JSON.stringify(goodsJson);
+        getPageGoodsAllData(goodsJsonString);
+
+    } else {
+        console.log("错误:渲染8个模块环节出错,请检查是否存在没有数据的模块!")
+    }
+} catch (error) {
+    console.log("错误:导航池渲染执行接口出错!请检查频道页渲染的模块数据是否完整!")
+}
+// 获取商品数据 start--------------------------------------->
+async function getPageGoodsAllData(goodsJsonString) {
+    const mkdata = await requestDataPromise('/web/getWebsiteCatidshop', {
+        method: 'GET',
+        query: {
+            'catid': goodsJsonString
+        },
+    });
+    console.log("获取商品数据", mkdata);
+
+    if (mkdata.code == 200) {
+        //模块1
+        for (let index in mkdata.data[0]) {
+            console.log("获取商品数据", index, mkdata.data[0][index]);
+            if (index < 4) {
+                goodsData.value[0].data.push(mkdata.data[0][index]);
+            } else {
+                goodsData.value[0].data1.push(mkdata.data[0][index]);
+            }
+        }
+        //模块2
+        goodsData.value[1].data = mkdata.data[1];
+        goodsData.value[2].data = mkdata.data[2];
+        console.log("获取商品数据111111", goodsData.value);
+    }
+}
+// 获取商品数据 end----------------------------------------->
+// 获取资讯数据 start----------------------------------------->
+async function getPageAllData(jsonString) {
+    const mkdata = await requestDataPromise('/web/getWebsiteAllArticle', {
+        method: 'GET',
+        query: {
+            'id': jsonString
+        },
+    });
+    // console.log("获取资讯数据11111111111", mkdata.data);
+
+    if (mkdata.code == 200) {
+        //模块1 顶部大图和列表
+        for (let index in mkdata.data[0].child.imgnum) {
+            if (index < 1) {
+                newsData.value[0].data.push(mkdata.data[0].child.imgnum[index]);
+            } else {
+                newsData.value[0].data1.push(mkdata.data[0].child.imgnum[index]);
+            }
+        }
+        newsData.value[0].data2 = mkdata.data[0].child.textnum;
+        //模块2
+        newsData.value[1].data = mkdata.data[1].child.imgnum;
+        newsData.value[1].data2 = mkdata.data[1].child.textnum;
+        //模块3
+        newsData.value[2].data = mkdata.data[2].child.imgnum;
+        newsData.value[2].data2 = mkdata.data[2].child.textnum;
+        //模块4
+        newsData.value[3].data = mkdata.data[3].child.imgnum;
+        newsData.value[3].data2 = mkdata.data[3].child.textnum;
+
+    } else {
+        ElMessage.error(mkdata.message)
+    }
+}
+// 获取资讯数据 end----------------------------------------->
+//4.页面数据 end ---------------------------------------->
+
+//5.设置seo信息 start---------------------------------------->
+const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
+    method: 'GET',
+    query: {
+        'catid': routeId
+    },
+});
+
+if (setData.code == 200) {
+    let seoTitle = setData.data.seo_title;
+    let seoDescription = setData.data.seo_description;
+    let seoKeywords = setData.data.seo_keywords;
+    let seoSuffix = setData.data.suffix;
+    let seoName = setData.data.website_name;
+
+    useSeoMeta({
+        title: seoTitle + "_" + seoSuffix,
+        meta: [
+            { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
+            { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
+        ]
+    });
+} else {
+    console.log("设置频道页SEO出错!", setData.message)
+}
+//5.设置seo信息 end---------------------------------------->
+
+
+</script>
+<style lang="less" scoped>
+@import url("@/assets/css/shop/shopClass.less");
+</style>

+ 2 - 2
components/home/ListSecondaryHeading.vue

@@ -2,7 +2,7 @@
      <nav class="channel_nav_box">
         <a class="channel_nav_head" :href="`/${pinyin}/index.html`" title="title">{{ name }}</a>
         <div class="channel_nav_a_box clearfix">
-            <NuxtLink :to="{ path: `/${item.aLIas_pinyin}/list-1.html`}" class="channel_nav_a" v-for="item in nav">{{ item.alias }}</NuxtLink>
+            <NuxtLink :href="{ path: `/${pinyin}/${item.aLIas_pinyin}/list-1.html`}" class="channel_nav_a" v-for="item in nav">{{ item.alias }}</NuxtLink>
         </div>
     </nav>
 </template>
@@ -33,7 +33,7 @@ const targetRoute = segments[1];
     margin: 0 auto;
     background: url(http://img.bjzxtw.org.cn/master/www/snscw/5.png) no-repeat bottom;
     background-size:100% auto;   
-    margin-top: 40px;
+    margin-top: 20px;
     .channel_nav_head {
         width: 122px;
         text-align: center;

+ 1 - 1
components/home/SecondaryHeading.vue

@@ -52,7 +52,7 @@ getPageData();
     margin: 0 auto;
     background: url(http://img.bjzxtw.org.cn/master/www/snscw/5.png) no-repeat bottom;
     background-size:100% auto;   
-    margin-top: 40px;
+    margin-top: 20px;
     .channel_nav_head {
         width: 122px;
         text-align: center;

+ 2 - 0
components/home/pageNavigation.vue

@@ -76,6 +76,8 @@ async function getNavigation1() {
         },
     });
     navigation1.value = mkdata.data;
+    console.log("导航菜单1", navigation1.value);
+    
 }
 getNavigation1();
 //获取导航菜单2

+ 561 - 0
components/news/class.vue

@@ -0,0 +1,561 @@
+<template>
+    <div>
+        <HomePageHead></HomePageHead>
+        <HomePageNavigation></HomePageNavigation>
+        <HomeSecondaryHeading :titleData="pageData" :pinyinid="routeId"></HomeSecondaryHeading>
+        <!-- 频道页 -->
+        <main class="index_main">
+            <!--板块1-->
+            <section class="channel_1 clearfix" v-if="pageData.length > 0">
+                <div class="channel_1_left">
+                    <div class="channel_1_box" v-if="pageData[0].data">
+                        <HomeSwiperSnscChannel :data="pageData[0].data"></HomeSwiperSnscChannel>
+                    </div>
+                </div>
+                <div class="channel_1_right" v-if="pageData.length > 0">
+                    <div class="channel_head">
+                        <NuxtLink class="channel_head_name" :href="getLinkPath1(pageData[0])" v-if="pageData[0]"
+                            :title="pageData[0].alias">
+                            {{ pageData[0].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="channel_head_more" :href="getLinkPath1(pageData[0])" v-if="pageData[0]"
+                            :title="pageData[0].alias">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="channel_name_ul" v-if="pageData[0]">
+                        <div class="channel_name_ul_li" v-for="item in pageData[0].data2">
+                            <NuxtLink class="channel_name_ul_li_dot1 dot1" :href="getLinkPathDetail(item)"
+                                :title="item.title" :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
+                                {{ item.title }}
+                            </NuxtLink>
+                        </div>
+                    </div>
+                </div>
+            </section>
+            <!--板块2-->
+            <section class="channel_2 clearfix">
+                <div class="channel_1_left clearfix">
+                    <!--open 商贸活动-->
+                    <div class="channel_head" v-if="pageData.length > 1">
+                        <NuxtLink class="channel_head_name" :href="getLinkPath1(pageData[1])" v-if="pageData[1]"
+                            :title="pageData[1].alias">
+                            {{ pageData[1].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="channel_head_more" :href="getLinkPath1(pageData[1])" v-if="pageData[1]"
+                            :title="pageData[1].alias">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="channel2_top_content clearfix" v-if="pageData.length > 1">
+                        <div class="channel_1_box_1 clearfix">
+                            <div class="channel_img_big_1_ul">
+                                <div class="channel_img_big_1_li" v-for="item in pageData[1].data">
+                                    <NuxtLink class="channel_img_big_1_li_a" :href="getLinkPathDetail(item)"
+                                        :title="item.title" :key="item.id"
+                                        :target="item.islink == 1 ? '_blank' : '_self'">
+                                        <img class="channel_img_big_1_li_img" :src="item.imgurl" alt="item.title">
+                                        <div class="channel_img_big_1_li_dot1 dot1">
+                                            {{ item.title }}
+                                        </div>
+                                    </NuxtLink>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="channel_1_box_2 clearfix">
+                            <div class="channel_ul_2">
+                                <NuxtLink class="channel_ul_2_a dot1" :href="getLinkPathDetail(item)"
+                                    :title="item.title" v-for="item in pageData[1].data2" :key="item.id"
+                                    :target="item.islink == 1 ? '_blank' : '_self'">
+                                    {{ item.title }}
+                                </NuxtLink>
+                            </div>
+                        </div>
+                    </div>
+                    <!--end 商贸活动-->
+                    <!--open 科教活动-->
+                    <div class="channel_head" v-if="pageData.length > 2">
+                        <NuxtLink class="channel_head_name" :href="getLinkPath1(pageData[2])" v-if="pageData[2]"
+                            :title="pageData[2].alias">
+                            {{ pageData[2].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="channel_head_more" :href="getLinkPath1(pageData[2])" v-if="pageData[2]"
+                            :title="pageData[2].alias">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class=" clearfix" v-if="pageData.length > 2">
+                        <div class="channel_1_box_1 clearfix">
+                            <div class="channel_img_big_2_ul">
+                                <div class="channel_img_big_2_li" v-for="item in pageData[2].data">
+                                    <NuxtLink class="channel_img_big_2_li_a" :href="getLinkPathDetail(item)"
+                                        :title="item.title" :key="item.id"
+                                        :target="item.islink == 1 ? '_blank' : '_self'">
+                                        <img class="channel_img_big_2_li_img" :src="item.imgurl" alt="item.title">
+                                        <div class="channel_img_big_2_li_dot1 dot1">
+                                            {{ item.title }}
+                                        </div>
+                                    </NuxtLink>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="channel_1_box_2 clearfix">
+                            <div class="channel_ul_3">
+                                <NuxtLink class="channel_ul_3_a dot1" :href="getLinkPathDetail(item)"
+                                    :title="item.title" v-for="item in pageData[2].data2" :key="item.id"
+                                    :target="item.islink == 1 ? '_blank' : '_self'">
+                                    {{ item.title }}
+                                </NuxtLink>
+                            </div>
+                        </div>
+                    </div>
+                    <!--end 科教活动-->
+                </div>
+                <div class="channel_1_right clearfix" v-if="pageData.length > 3">
+                    <!--open 产业动态-->
+                    <div class="channel_head">
+                        <NuxtLink class="channel_head_name" :href="getLinkPath1(pageData[3])" v-if="pageData[3]"
+                            :title="pageData[3].alias">
+                            {{ pageData[3].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="channel_head_more" :href="getLinkPath1(pageData[3])" v-if="pageData[3]"
+                            :title="pageData[3].alias">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="channel_img_big_3_ul clearfix" v-if="pageData[3].data">
+                        <div class="channel_img_big_3_li" v-for="item in pageData[3].data">
+                            <NuxtLink class="channel_img_big_3_li_a" :href="getLinkPathDetail(item)" :title="item.title"
+                                :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
+                                <img class="channel_img_big_3_li_img" :src="item.imgurl" alt="item.title">
+                                <div class="channel_img_big_3_li_dot1 dot1">
+                                    {{ item.title }}
+                                </div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                    <div class="channel_ul_4" v-if="pageData[3].data2">
+                        <div class="channel_ul_4_li dot1" v-for="(item, index) in pageData[3].data2">
+                            <div class="channel_ul_4_li_num">{{ index + 1 }}</div>
+                            <NuxtLink class="channel_img_big_3_li_a" :href="getLinkPathDetail(item)" :title="item.title"
+                                :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
+                                <div class="channel_ul_4_a dot1">
+                                    {{ item.title }}
+                                </div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                    <!--end 产业动态-->
+                </div>
+            </section>
+            <!--广告1-->
+            <HomeAdvertising :data="adImg1"></HomeAdvertising>
+
+            <section class="channel_3 clearfix">
+                <!--open 农贸节庆-->
+                <div class="channel_1_left clearfix" v-if="pageData.length > 4">
+                    <div class="channel_head">
+                        <NuxtLink class="channel_head_name" :href="getLinkPath1(pageData[4])" v-if="pageData[4]"
+                            :title="pageData[4].alias">
+                            {{ pageData[4].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="channel_head_more" :href="getLinkPath1(pageData[4])" v-if="pageData[4]"
+                            :title="pageData[4].alias">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class=" clearfix" v-if="pageData[4]">
+                        <div class="channel_1_box_1 clearfix">
+                            <div class="channel_img_big_4_ul">
+                                <div class="channel_img_big_4_li" v-for="item in pageData[4].data">
+                                    <NuxtLink class="channel_img_big_4_li" :href="getLinkPathDetail(item)"
+                                        :title="item.title" :key="item.id"
+                                        :target="item.islink == 1 ? '_blank' : '_self'">
+                                        <img class="channel_img_big_4_li_img" :src="item.imgurl" alt="item.title">
+                                        <div class="channel_img_big_4_li_dot2 dot2">
+                                            {{ item.title }}
+                                        </div>
+                                    </NuxtLink>
+                                </div>
+                            </div>
+                            <div class="channel_img_ul_1 clearfix">
+                                <div class="channel_img_ul_1_li" v-for="item in pageData[4].data2">
+                                    <NuxtLink class="channel_img_ul_1_li_a" :href="getLinkPathDetail(item)"
+                                        :title="item.title" :key="item.id"
+                                        :target="item.islink == 1 ? '_blank' : '_self'">
+                                        <img class="channel_img_ul_1_li_img" :src="item.imgurl" alt="item.title">
+                                        <div class="channel_img_ul_1_li_dot2 dot2">
+                                            {{ item.title }}
+                                        </div>
+                                    </NuxtLink>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="channel_1_box_2 clearfix">
+                            <div class="channel_ul_5">
+                                <NuxtLink class="channel_ul_5_a dot1" :href="getLinkPathDetail(item)"
+                                    v-for="item in pageData[4].data3" :title="item.title" :key="item.id"
+                                    :target="item.islink == 1 ? '_blank' : '_self'">
+                                    {{ item.title }}
+                                </NuxtLink>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <!--end 农贸节庆-->
+                <!--open 市场行情-->
+                <div class="channel_1_right clearfix" v-if="pageData.length > 5">
+                    <div class="channel_head">
+                        <NuxtLink class="channel_head_name" :href="getLinkPath1(pageData[5])" v-if="pageData[5]"
+                            :title="pageData[5].alias">
+                            {{ pageData[5].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="channel_head_more" :href="getLinkPath1(pageData[5])" v-if="pageData[5]"
+                            :title="pageData[5].alias">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="channel_img_ul_2 clearfix" v-if="pageData[5]">
+                        <div class="channel_img_ul_2_li" v-for="item in pageData[5].data">
+                            <NuxtLink class="channel_img_ul_2_li" :href="getLinkPathDetail(item)" :title="item.title"
+                                :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
+                                <img class="channel_img_ul_2_li_img" :src="item.imgurl" alt="item.title">
+                                <div class="channel_img_ul_2_li_dot1 dot1">
+                                    {{ item.title }}
+                                </div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                    <div class="channel_ul_6" v-if="pageData[5]">
+                        <NuxtLink class="channel_ul_6_a dot1" :href="getLinkPathDetail(item)" :title="item.title"
+                            v-for="item in pageData[5].data2" :key="item.id"
+                            :target="item.islink == 1 ? '_blank' : '_self'">
+                            {{ item.title }}
+                        </NuxtLink>
+                    </div>
+                    <!--end 市场行情-->
+                </div>
+            </section>
+            <section class="channel_4 clearfix">
+                <div class="channel_1_left clearfix" v-if="pageData.length > 6">
+                    <!--open 业界交流-->
+                    <div class="channel_head">
+                        <NuxtLink class="channel_head_name" :href="getLinkPath1(pageData[6])" v-if="pageData[6]"
+                            :title="pageData[6].alias">
+                            {{ pageData[6].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="channel_head_more" :href="getLinkPath1(pageData[6])" v-if="pageData[6]"
+                            :title="pageData[6].alias">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="channel_ul_7" v-if="pageData[6]">
+                        <NuxtLink class="channel_ul_7_a dot1" :href="getLinkPathDetail(item)" :title="item.title"
+                            v-for="item in pageData[6].data" :key="item.id"
+                            :target="item.islink == 1 ? '_blank' : '_self'">
+                            {{ item.title }}
+                        </NuxtLink>
+                    </div>
+                    <!--end 业界交流-->
+                </div>
+                <!--open 主题活动-->
+                <div class="channel_1_right clearfix" v-if="pageData.length > 7">
+                    <div class="channel_head">
+                        <NuxtLink class="channel_head_name" :href="getLinkPath1(pageData[7])" v-if="pageData[7]"
+                            :title="pageData[7].alias">
+                            {{ pageData[7].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="channel_head_more" :href="getLinkPath1(pageData[7])" v-if="pageData[7]"
+                            :title="pageData[7].alias">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="channel_img_big_5_ul" v-if="pageData[7]">
+                        <div class="channel_img_big_5_li" v-for="item in pageData[7].data">
+                            <NuxtLink class="channel_img_big_5_li_a" :href="getLinkPathDetail(item)" :title="item.title"
+                                v-for="item in pageData[7].data" :key="item.id"
+                                :target="item.islink == 1 ? '_blank' : '_self'">
+                                <img class="channel_img_big_5_li_img" :src="item.imgurl" alt="item.title">
+                                <div class="channel_img_big_5_li_dot2 dot2">{{ item.title }}</div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                    <!--end 主题活动-->
+                </div>
+            </section>
+        </main>
+        <!-- 页脚部分 -->
+        <HomeFoot1></HomeFoot1>
+    </div>
+</template>
+
+<script setup>
+//0.加载页面依赖 start ---------------------------------------->
+import { ref, onMounted } from 'vue';
+import { ElMessage } from 'element-plus';
+//0.加载页面依赖 end ---------------------------------------->
+
+//1.获得路由id start ---------------------------------------->
+const targetSegment = getRoutePath(1);
+//1.1 获得当前的路由id
+let routeId;
+//通过导航路径反向查询导航id
+const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
+    method: 'GET',
+    query: {
+        'pinyin': targetSegment,
+    },
+});
+if (getRouteId.code == 200) {
+    routeId = getRouteId.data.category_id
+} else {
+    console.log("获得路由id出错!", getRouteId.message)
+}
+//1.获得路由id end ---------------------------------------->
+
+//2.选项卡 start ---------------------------------------->
+let showTabs = ref(1)
+let qhtabs = function (number) {
+    console.log(number)
+    showTabs.value = number
+}
+//2.选项卡 end ---------------------------------------->
+
+//3.广告 start ---------------------------------------->
+let adImg1 = ref({})
+let adImg2 = ref({})
+let adImg3 = ref({})
+let adImg4 = ref({})
+onMounted(async () => {
+    //从客户端获取行政职能部门 加快打开速度
+    const { $webUrl, $CwebUrl } = useNuxtApp();
+    //广告1
+    let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0001`
+    const responseAd1 = await fetch(url, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd1 = await responseAd1.json();
+    adImg1.value = resultAd1.data[0];
+
+    //广告2
+    let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0002`
+    const responseAd2 = await fetch(url2, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd2 = await responseAd2.json();
+    adImg2.value = resultAd2.data[0];
+
+    //广告3
+    let url3 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0003`
+    const responseAd3 = await fetch(url3, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd3 = await responseAd3.json();
+    adImg3.value = resultAd3.data[0];
+
+    //广告4
+    let url4 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0004`
+    const responseAd4 = await fetch(url4, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd4 = await responseAd4.json();
+    adImg4.value = resultAd4.data[0];
+})
+//3.广告 end ---------------------------------------->
+
+//4.页面数据 start ---------------------------------------->
+const pageData = ref([
+    //示例:
+    // {
+    //     id: 1, 
+    //     title: "", //该导航的标题
+    //     data: [], //数据1
+    //     data1: [], //数据2
+    //     data2: [], //数据3
+    //     data3: [], //数据4
+    //     data4: [], //数据5
+    //     category_id1: "",  //子导航id1
+    //     category_id2: "", 
+    //     category_id3: "",
+    //     category_id4: "",
+    //     title1: "", //子导航标题1
+    //     title2: "",
+    //     title3: "",
+    //     title4: "",
+    //     cid: "" //该导航的id
+    // },
+])
+
+//4.1 获取所有导航
+try {
+    const navigateData = await requestDataPromise('/web/getWebsiteModelCategory', {
+        method: 'GET',
+        query: {
+            'placeid': 1,
+            'pid': routeId,
+            'num': 8
+        },
+    });
+    if (navigateData.code == 200) {
+        // 遍历可用的导航池放到页面中
+        for (let index in navigateData.data) {
+            let data = {
+                title: navigateData.data[index].name,
+                cid: navigateData.data[index].category_id,
+                children_count: navigateData.data[index].children_count,
+                alias: navigateData.data[index].alias,
+                aLIas_pinyin: targetSegment + "/" + navigateData.data[index].aLIas_pinyin,
+                data: [],
+                data1: [],
+                data2: [],
+                data3: [],
+                data4: [],
+                category_id1: "",
+                category_id2: "",
+                category_id3: "",
+                category_id4: "",
+                title1: "",
+                title2: "",
+                title3: "",
+                title4: ""
+            };
+            if (navigateData.data[index].is_url == 1) {
+                // 处理 URL 的逻辑
+            } else {
+                //每个页面最多8个模块
+                pageData.value.push(data);
+            }
+        }
+        //导航池加载完毕,开始申请模块数据
+        let getJson = [
+            // { "parent": routeId + ",0,0", "child": pageData.value[0].cid + ",5,9" },//模块1 
+            // { "parent": routeId + ",0,0", "child": pageData.value[1].cid + ",1,6" },//模块2
+            // { "parent": routeId + ",0,0", "child": pageData.value[2].cid + ",1,6" },//模块3
+            // { "parent": routeId + ",0,0", "child": pageData.value[3].cid + ",1,6" },//模块4
+            // { "parent": routeId + ",0,0", "child": pageData.value[4].cid + ",3,10" },//模块5
+            // { "parent": routeId + ",0,0", "child": pageData.value[5].cid + ",2,6" },//模块6
+            // { "parent": routeId + ",0,0", "child": pageData.value[6].cid + ",0,6" },//模块7
+            // { "parent": routeId + ",0,0", "child": pageData.value[7].cid + ",1,0" },//模块8
+        ]
+        for (let i = 0; i < pageData.value.length; i++) {
+            if (i == 0) {
+                getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",5,9" });//模块1 
+            } else if (i == 1) {
+                getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",1,6" });//模块2 
+            } else if (i == 2) {
+                getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",1,6" });//模块3 
+            } else if (i == 3) {
+                getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",1,6" });//模块4 
+            } else if (i == 4) {
+                getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",3,10" });//模块5
+            } else if (i == 5) {
+                getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",2,6" });//模块6
+            } else if (i == 6) {
+                getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",0,8" });//模块7
+            } else if (i == 7) {
+                getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",1,0" });//模块8 
+            }
+        }
+        let jsonString = JSON.stringify(getJson);
+        getPageAllData(jsonString);
+
+    } else {
+        console.log("错误:渲染8个模块环节出错,请检查是否存在没有数据的模块!")
+    }
+} catch (error) {
+    console.log("错误:导航池渲染执行接口出错!请检查频道页渲染的模块数据是否完整!")
+}
+
+
+async function getPageAllData(jsonString) {
+    const mkdata = await requestDataPromise('/web/getWebsiteAllArticle', {
+        method: 'GET',
+        query: {
+            'id': jsonString
+        },
+    });
+    console.log('11111111111111111111', mkdata.data)
+
+    if (mkdata.code == 200) {
+        //模块1 顶部大图和列表
+        pageData.value[0].data = mkdata.data[0].child.imgnum;
+        pageData.value[0].data2 = mkdata.data[0].child.textnum;
+        // //模块2
+        pageData.value[1].data = mkdata.data[1].child.imgnum;
+        pageData.value[1].data2 = mkdata.data[1].child.textnum;
+        //模块3
+        pageData.value[2].data = mkdata.data[2].child.imgnum;
+        pageData.value[2].data2 = mkdata.data[2].child.textnum;
+        //模块4
+        pageData.value[3].data = mkdata.data[3].child.imgnum;
+        pageData.value[3].data2 = mkdata.data[3].child.textnum;
+        //模块5
+        for (let index in mkdata.data[4].child.imgnum) {
+            if (index < 1) {
+                pageData.value[4].data.push(mkdata.data[4].child.imgnum[index]);
+            } else {
+                pageData.value[4].data2.push(mkdata.data[4].child.imgnum[index]);
+            }
+        }
+        pageData.value[4].data3 = mkdata.data[4].child.textnum;
+        //模块6
+        pageData.value[5].data = mkdata.data[5].child.imgnum;
+        pageData.value[5].data2 = mkdata.data[5].child.textnum;
+        //模块7
+        pageData.value[6].data = mkdata.data[6].child.textnum;
+        //模块8
+        pageData.value[7].data = mkdata.data[7].child.imgnum;
+
+    } else {
+        ElMessage.error(mkdata.message)
+    }
+}
+//4.页面数据 end ---------------------------------------->
+
+//5.设置seo信息 start---------------------------------------->
+const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
+    method: 'GET',
+    query: {
+        'catid': routeId
+    },
+});
+
+if (setData.code == 200) {
+    let seoTitle = setData.data.seo_title;
+    let seoDescription = setData.data.seo_description;
+    let seoKeywords = setData.data.seo_keywords;
+    let seoSuffix = setData.data.suffix;
+    let seoName = setData.data.website_name;
+
+    useSeoMeta({
+        title: seoTitle + "_" + seoSuffix,
+        meta: [
+            { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
+            { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
+        ]
+    });
+} else {
+    console.log("设置频道页SEO出错!", setData.message)
+}
+//5.设置seo信息 end---------------------------------------->
+</script>
+
+<style lang="less" scoped>
+@import '@/assets/css/class.less';
+</style>

+ 2 - 0
composables/publicFunction.ts

@@ -60,6 +60,8 @@ const getLinkPath = (item: any) => {
 }
 //3.2跳转到频道页
 const getLinkPath1 = (item: any) => {
+  console.log('11111',item);
+  
   return `/${item.aLIas_pinyin}/list-1.html`;
 }
 //3.3跳转到详情页

+ 65 - 32
middleware/setup.global.js

@@ -1,11 +1,11 @@
 export default async function (to, from) {
     //获得全局url
     const { $webUrl, $CwebUrl } = useNuxtApp();
-    if(to.path == '/' || to.path == '/404'){
+    if (getRouteWhiteList(to.path)) {
         //如果目标路由是/,或者/404 无需验证
-    }else{
+    } else {
         // to是目标路由对象,from是来源路由对象
-        console.log('进入路由中间件,目标路由:', to.path,"当前路由:",from.path);
+        console.log('进入路由中间件,目标路由:', to.path, "当前路由:", from.path);
         //拆分目标路由
         let parts = parseRoute(to.path)
         console.log(parts)
@@ -19,9 +19,9 @@ export default async function (to, from) {
             query: parts
         })
         console.log(responseRoute)
-        if(responseRoute.code == 200){
+        if (responseRoute.code == 200) {
             //如果路由存在,不做任何操作
-        }else{
+        } else {
             return navigateTo('/404')
         }
     }
@@ -31,42 +31,46 @@ export default async function (to, from) {
 function parseRoute(url) {
     const parts = url.split('/').filter(Boolean); // 分割并过滤空字符串
     const lastPart = parts[parts.length - 1];
-    
+
     // 提取 id(数字.html 的数字部分)
     const idMatch = lastPart.match(/^(\d+)\.html$/);
     const id = idMatch ? idMatch[1] : undefined;
-    
+
     // 如果最后是数字.html、index.html 或 list-数字.html,则去掉它
     const isSpecialRoute = idMatch || lastPart === "index.html" || lastPart.startsWith("list-");
     if (isSpecialRoute) {
         parts.pop();
     }
-    
+
     let all_route, last_route;
-    
+
     // 如果路径以 xiangcunshangcheng 开头
-    if (parts[0] === "xiangcunshangcheng") {
-        if( parts.length > 1){
-            if(parts[parts.length - 1] != 'gongying' && parts[parts.length - 1] != 'qiugou'){
-                // 否则按原逻辑处理
-                all_route = parts.join('/');
-                last_route = parts.length > 0 ? parts[parts.length - 1] : null;
-            }else{
-                // all_route = 去掉最后一层
-                all_route = parts.slice(0, -1).join('/');
-                // last_route = 新的最后一层
-                last_route = parts.length > 1 ? parts[parts.length - 2] : null;
-            }
-        }else{
-            // 否则按原逻辑处理
-            all_route = parts.join('/');
-            last_route = parts.length > 0 ? parts[parts.length - 1] : null;
-        }
-    } else {
-        // 否则按原逻辑处理
-        all_route = parts.join('/');
-        last_route = parts.length > 0 ? parts[parts.length - 1] : null;
-    }
+    // if (parts[0] === "xiangcunshangcheng") {
+    //     if( parts.length > 1){
+    //         if(parts[parts.length - 1] != 'gongying' && parts[parts.length - 1] != 'qiugou'){
+    //             // 否则按原逻辑处理
+    //             all_route = parts.join('/');
+    //             last_route = parts.length > 0 ? parts[parts.length - 1] : null;
+    //         }else{
+    //             // all_route = 去掉最后一层
+    //             all_route = parts.slice(0, -1).join('/');
+    //             // last_route = 新的最后一层
+    //             last_route = parts.length > 1 ? parts[parts.length - 2] : null;
+    //         }
+    //     }else{
+    //         // 否则按原逻辑处理
+    //         all_route = parts.join('/');
+    //         last_route = parts.length > 0 ? parts[parts.length - 1] : null;
+    //     }
+    // } else {
+    //     // 否则按原逻辑处理
+    //     all_route = parts.join('/');
+    //     last_route = parts.length > 0 ? parts[parts.length - 1] : null;
+    // }
+
+    all_route = parts.join('/');
+    last_route = parts.length > 0 ? parts[parts.length - 1] : null;
+
     // 返回结果(只有数字.html 时才包含 id)
     const result = {
         all_route,
@@ -76,4 +80,33 @@ function parseRoute(url) {
         result.id = id;
     }
     return result;
-}
+}
+
+//获得路由白名单列表
+function getRouteWhiteList(path) {
+    if (path == '/') {
+        console.log('白名单路由!允许访问!')
+        //如果用户进入的是首页,直接返回true
+        return true
+    } else {
+        //如果用户进入的不是首页,则需要判断第一层路由是否在白名单
+        const parts = path.split('/').filter(Boolean); // 分割并过滤空字符串
+        console.log(parts[0])
+        let whiteList = [
+            "404",
+            "search",//搜索页
+            "xiangcunshangcheng",//乡村商城搜索页
+            "topic",//商圈
+            "advertising",//广告
+            "about",//关于我们
+            "zhaogongzhaopin",//招工招聘
+        ]
+
+        if (whiteList.includes(parts[0])) {
+            console.log('白名单路由!允许访问!')
+            return true
+        } else {
+            return false
+        }
+    }
+}

+ 1 - 1
pages/[dir]/[dir]/[id].vue

@@ -41,7 +41,7 @@
                     <img :src="selectedImage" alt="Preview">
                 </div>
                 <!-- 免责声明: -->
-                <div class="disclaimer" v-if="newsDetail.copyfrom == '本网'">
+                <div class="disclaimer" v-if="newsDetail.copyfrom != '本网'">
                     <p>原文链接:{{ newsDetail.fromurl }}</p>
                     <p>[免责声明]本文来源于网络转载,仅供学习交流使用,不构成商业目的。 版权归原作者所有,如涉及作品内容,版权和其他问题,请在30日与本网联系,我们将第一时间处理。</p>
                 </div>

+ 688 - 0
pages/[dir]/[dir]/index.html.vue

@@ -0,0 +1,688 @@
+<template>
+    <HomePageHead></HomePageHead>
+    <HomePageNavigation></HomePageNavigation>
+    <!-- 新闻三级分类页 -->
+    <div class="news" v-if="false">
+        <section class="index_1 clearfix">
+            <div class="shop_head_1 clearfix">
+                <div class="shop_head_1_name">{{ secNavTitle }}</div>
+            </div>
+            <div class="categ_color_box clearfix">
+                <div class="categ_color_name clearfix">直达:</div>
+                <div class="categ_color_in clearfix">
+                    <!-- <a class="categ_color_a categ_color_a_only" href="" title=""> 农产动态 </a> -->
+                    <NuxtLink class="categ_color_a" :href="`/${item.aLIas_pinyin}/list-1.html`" title="item.title"
+                        v-for="(item, index) in newsData" :key="index">
+                        {{ item.alias }}
+                    </NuxtLink>
+                    <!-- <a class="categ_color_a" href="" title=""> 农产动态 </a>
+                    <a class="categ_color_a" href="" title=""> 农产动态 </a>
+                    <a class="categ_color_a" href="" title=""> 农产动态 </a> -->
+                </div>
+            </div>
+        </section>
+        <!-- 三农市场网-商城-资讯列表2 -->
+        <section class=" ">
+            <!-- 面包屑导航 -->
+            <div class="breadcrumb">
+                <div class="inner">
+                    <span class="location">当前位置 :</span>
+                    <el-breadcrumb :separator-icon="ArrowRight">
+                        <el-breadcrumb-item>
+                            <NuxtLink to="/">首页</NuxtLink>
+                        </el-breadcrumb-item>
+                        <el-breadcrumb-item v-if="parent_name != ''">
+                            <NuxtLink :to="`/${parent_pinyin}/index.html`"> {{ parent_name }}</NuxtLink>
+                        </el-breadcrumb-item>
+                        <el-breadcrumb-item>
+                            <NuxtLink :to="`list-1.html`"> {{ secNavTitle }}</NuxtLink>
+                        </el-breadcrumb-item>
+                        <!-- <el-breadcrumb-item>{{ routeNewsTtitle }}</el-breadcrumb-item> -->
+                    </el-breadcrumb>
+                </div>
+            </div>
+            <section class="index_2 clearfix" v-if="newsData.length > 0">
+                <div class="index_2_left" v-if="newsData[0].data">
+                    <GoodsSwiperSnscShopInfoCateg :data="newsData[0].data"></GoodsSwiperSnscShopInfoCateg>
+                </div>
+                <div class="index_2_right">
+                    <div class="shop_head_2 clearfix">
+                        <NuxtLink class="shop_head_2_name" :href="getLinkPath1(newsData[0])">
+                            {{ newsData[0].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="shop_head_2_more" :href="getLinkPath1(newsData[0])" :title="newsData[0].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="shop_ul_1 clearfix" v-if="newsData[0].data2">
+                        <NuxtLink class="shop_li_1 dot1" :href="getLinkPathDetail(item)" title=""
+                            v-for="(item, index) in newsData[0].data2" :key="index">
+                            {{ item.title }}
+                        </NuxtLink>
+                    </div>
+                </div>
+            </section>
+            <section class="index_3 clearfix">
+                <div class="index_3_left clearfix" v-if="newsData.length > 1">
+                    <!-- 农产科教1 -->
+                    <div class="shop_head_2 clearfix">
+                        <NuxtLink class="shop_head_2_name" :href="getLinkPath1(newsData[1])">
+                            {{ newsData[1].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="shop_head_2_more" :href="getLinkPath1(newsData[1])" :title="newsData[1].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class=" clearfix" v-if="newsData.length > 1">
+                        <div class="index_3_in clearfix">
+                            <div class="shop_img_ul_1 clearfix" v-if="newsData[1].data">
+                                <div class="shop_img_li_1 clearfix">
+                                    <NuxtLink class="shop_img_li_1_a" :href="getLinkPathDetail(newsData[1].data)"
+                                        title="">
+                                        <img class="shop_img_li_1_img" :src="newsData[1].data.imgurl"
+                                            :title="newsData[1].data.title" alt="">
+                                        <div class="shop_img_li_1_rgba clearfix dot1">
+                                            {{ newsData[1].data.title }}
+                                        </div>
+                                    </NuxtLink>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="index_3_in clearfix" v-if="newsData[1].data2">
+                            <div class="shop_ul_2 clearfix">
+                                <NuxtLink class="shop_li_2 clearfix dot1" :href="getLinkPathDetail(item)"
+                                    :title="item.title" v-for="(item, index) in newsData[1].data2" :key="index">
+                                    {{ item.title }}
+                                </NuxtLink>
+                            </div>
+                        </div>
+                    </div>
+                    <!-- 农产科教2 -->
+                    <!-- 农产商机1 -->
+                    <div class="shop_head_3 clearfix" v-if="newsData.length > 2">
+                        <NuxtLink class="shop_head_3_name" :href="getLinkPath1(newsData[2])">{{ newsData[2].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="shop_head_3_more" :href="getLinkPath1(newsData[2])" :title="newsData[2].title">
+                            栏目简介</NuxtLink>
+                    </div>
+                    <div class=" clearfix">
+                        <div class="index_3_in_2 clearfix" v-if="newsData.length > 2">
+                            <div class="shop_img_ul_2 clearfix">
+                                <div class="shop_img_li_2 clearfix" v-if="newsData[2].data">
+                                    <NuxtLink class="shop_img_li_2_a" :href="getLinkPathDetail(newsData[2].data)"
+                                        :title="newsData[2].data.title">
+                                        <img class="shop_img_li_2_img" :src="newsData[2].data.imgurl"
+                                            :title="newsData[2].data.title" alt="">
+                                        <div class="shop_img_li_2_rgba clearfix dot1">
+                                            {{ newsData[2].data.title }}
+                                        </div>
+                                    </NuxtLink>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="index_3_in_2 clearfix">
+                            <div class="shop_ul_3 clearfix" v-if="newsData[2].data2">
+                                <NuxtLink class="shop_li_3 clearfix dot1" :href="getLinkPathDetail(item)"
+                                    :title="item.title" v-for="(item, index) in newsData[2].data2" :key="index">
+                                    {{ item.title }}
+                                </NuxtLink>
+                            </div>
+                        </div>
+                    </div>
+                    <!-- 农产商机2 -->
+                </div>
+                <!-- 农产会展1 -->
+                <div class="index_3_right" v-if="newsData.length > 3">
+                    <div class="shop_head_4 clearfix">
+                        <NuxtLink class="shop_head_4_name" :href="getLinkPath1(newsData[3])">
+                            {{ newsData[3].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="shop_head_4_more" :href="getLinkPath1(newsData[3])" :title="newsData[3].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="shop_img_ul_3 clearfix">
+                        <div class="shop_img_li_3 clearfix" v-if="newsData[3].data">
+                            <NuxtLink class="shop_img_li_3_a" :href="getLinkPathDetail(newsData[3].data)"
+                                :title="newsData[3].data.title">
+                                <img class="shop_img_li_3_img" :src="newsData[3].data.imgurl"
+                                    :title="newsData[3].data.title" alt="">
+                                <div class="shop_img_li_3_rgba clearfix dot1">
+                                    {{ newsData[3].data.title }}
+                                </div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                    <div class="shop_ul_4 clearfix" v-if="newsData[2].data2">
+                        <NuxtLink class="shop_li_4 dot1" :href="getLinkPathDetail(item)" :title="item.title"
+                            v-for="(item, index) in newsData[3].data2" :key="index">
+                            <span class="shop_li_4_num">
+                                {{ index + 1 }}
+                            </span>
+                            {{ item.title }}
+                        </NuxtLink>
+                    </div>
+                </div>
+                <!-- 农产会展2 -->
+            </section>
+        </section>
+    </div>
+
+    <!-- 商品三级分类页 -->
+    <div class="goods">
+        <section class="index_1 clearfix">
+            <div class="shop_head_1 clearfix">
+                <div class="shop_head_1_name">{{ secNavTitle }}</div>
+            </div>
+            <div class="categ_color_box clearfix">
+                <div class="categ_color_name clearfix">直达:</div>
+                <div class="categ_color_in clearfix">
+                    <NuxtLink class="categ_color_a" :href="`/${item.aLIas_pinyin}/list-1.html`" title="item.title"
+                        v-for="(item, index) in goodsData">
+                        {{ item.alias }}
+                    </NuxtLink>
+                </div>
+            </div>
+        </section>
+        <section class="">
+            <div class="breadcrumb">
+                <div class="inner">
+                    <span class="location">当前位置 :</span>
+                    <el-breadcrumb :separator-icon="ArrowRight">
+                        <el-breadcrumb-item>
+                            <NuxtLink to="/">首页</NuxtLink>
+                        </el-breadcrumb-item>
+                        <el-breadcrumb-item v-if="parent_name != ''">
+                            <NuxtLink :to="`/${parent_pinyin}/index.html`"> {{ parent_name }}</NuxtLink>
+                        </el-breadcrumb-item>
+                        <el-breadcrumb-item>
+                            <NuxtLink :to="`list-1.html`"> {{ secNavTitle }}</NuxtLink>
+                        </el-breadcrumb-item>
+                        <!-- <el-breadcrumb-item>{{ routeNewsTtitle }}</el-breadcrumb-item> -->
+                    </el-breadcrumb>
+                </div>
+            </div>
+            <section class="index_2 clearfix">
+                <div class="box_1 clearfix">
+                    <div class="box_1_head">
+                        <NuxtLink class="box_1_head_name" :href="getLinkPath1(pageData[0])">
+                            {{ pageData[0].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="box_1_head_a" :href="getLinkPath1(pageData[0])" :title="pageData[0].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="img_ul_1 clearfix">
+                        <div class="img_li_1 clearfix" v-for="(item, index) in 4" :key="index">
+                            <a class="img_li_1_a" href="" title="">
+                                <div class="img_li_1_img_box clearfix">
+                                    <img class="img_li_1_img" src="@/public/img/5.png" title="" alt="">
+                                </div>
+                                <div class="img_li_1_dot2 dot2">栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介
+                                </div>
+                            </a>
+                        </div>
+                    </div>
+                </div>
+                <!-- 蔬菜批发1 -->
+                <div class="box_1 clearfix">
+                    <div class="box_1_head">
+                        <NuxtLink class="box_1_head_name" :href="getLinkPath1(pageData[1])">
+                            {{ pageData[1].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="box_1_head_a" :href="getLinkPath1(pageData[1])" :title="pageData[1].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="img_ul_1 clearfix">
+                        <div class="img_li_1 clearfix" v-for="(item, index) in 4" :key="index">
+                            <a class="img_li_1_a" href="" title="">
+                                <div class="img_li_1_img_box clearfix">
+                                    <img class="img_li_1_img" src="@/public/img/5.png" title="" alt="">
+                                </div>
+                                <div class="img_li_1_dot2">栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介
+                                </div>
+                            </a>
+                        </div>
+                    </div>
+                </div>
+                <!-- 蔬菜批发 2-->
+            </section>
+            <section class="index_3 clearfix">
+                <div class="box_2 clearfix">
+                    <div class="box_2_head">
+                        <NuxtLink class="box_2_head_name" :href="getLinkPath1(pageData[2])">
+                            {{ pageData[2].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="box_2_head_a" :href="getLinkPath1(pageData[2])" :title="pageData[2].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="img_ul_2 clearfix">
+                        <div class="img_li_2 clearfix" v-for="(item, index) in 8" :key="index">
+                            <a class="img_li_2_a" href="" title="">
+                                <div class="img_li_2_img_box clearfix">
+                                    <img class="img_li_2_img" src="@/public/img/5.png" title="" alt="">
+                                </div>
+                                <div class="img_li_2_dot2">栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介栏目简介
+                                </div>
+                            </a>
+                        </div>
+                    </div>
+                </div>
+            </section>
+            <div class="banner_2 clearfix">
+                <a class="banner_2_a" href="" title=""><img class="banner_2_img" src="@/public/img/16.png" title=""
+                        alt=""></a>
+            </div>
+        </section>
+    </div>
+    <HomeFoot></HomeFoot>
+</template>
+
+<script setup>
+//0.加载页面依赖 start ---------------------------------------->
+import { ref, onMounted } from 'vue';
+import { ElMessage, ElBreadcrumb, ElBreadcrumbItem } from 'element-plus';
+import { ArrowRight } from '@element-plus/icons-vue'
+import { NuxtLink } from '#components';
+//0.加载页面依赖 end ---------------------------------------->
+
+//1.获得路由id start ---------------------------------------->
+const targetSegment = getRoutePath(2);
+const targetSegment1 = getRoutePath(1);
+//1.1 获得当前的路由id
+let routeId;
+let secNavTitle = ref('')//二级导航标题
+//通过导航路径反向查询导航id
+const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
+    method: 'GET',
+    query: {
+        'pinyin': targetSegment,
+    },
+});
+console.log("getRouteId", getRouteId);
+
+if (getRouteId.code == 200) {
+    routeId = getRouteId.data.category_id
+    secNavTitle.value = getRouteId.data.alias
+} else {
+    console.log("获得路由id出错!", getRouteId.message)
+}
+//1.2 获得父级栏目
+let parent_name = ref('');//父级名称
+let parent_id = ref('');//父级id
+let parent_pinyin = ref('');//父级拼音
+const getRoutePName = await requestDataPromise('/web/getWebsiteRoute', {
+    method: 'GET',
+    query: {
+        'pinyin': targetSegment1,
+    },
+});
+console.log("getRoutePName", getRoutePName);
+
+if (getRoutePName.code == 200) {
+    parent_id.value = getRoutePName.data.category_id
+    parent_name.value = getRoutePName.data.alias
+} else {
+    console.log("获得路由id出错!", getRoutePName.message)
+}
+const getParentId = await requestDataPromise('/web/getOneWebsiteCategory', {
+    method: 'GET',
+    query: {
+        'catid': parent_id.value,
+    },
+});
+console.log("getParentId", getParentId);
+
+if (getParentId.code == 200) {
+    parent_pinyin.value = getParentId.data.aLIas_pinyin
+} else {
+    console.log("获得路由id出错!", getParentId.message)
+}
+//1.获得路由id end ---------------------------------------->
+
+//2.选项卡 start ---------------------------------------->
+let showTabs = ref(1)
+let qhtabs = function (number) {
+    console.log(number)
+    showTabs.value = number
+}
+//2.选项卡 end ---------------------------------------->
+
+//3.广告 start ---------------------------------------->
+let adImg1 = ref({})
+let adImg2 = ref({})
+let adImg3 = ref({})
+let adImg4 = ref({})
+onMounted(async () => {
+    //从客户端获取行政职能部门 加快打开速度
+    const { $webUrl, $CwebUrl } = useNuxtApp();
+    //广告1
+    let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0001`
+    const responseAd1 = await fetch(url, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd1 = await responseAd1.json();
+    adImg1.value = resultAd1.data[0];
+
+    //广告2
+    let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0002`
+    const responseAd2 = await fetch(url2, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd2 = await responseAd2.json();
+    adImg2.value = resultAd2.data[0];
+
+    //广告3
+    let url3 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0003`
+    const responseAd3 = await fetch(url3, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd3 = await responseAd3.json();
+    adImg3.value = resultAd3.data[0];
+
+    //广告4
+    let url4 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0004`
+    const responseAd4 = await fetch(url4, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd4 = await responseAd4.json();
+    adImg4.value = resultAd4.data[0];
+})
+//3.广告 end ---------------------------------------->
+
+//4.页面数据 start ---------------------------------------->
+const pageData = ref([
+    //示例:
+    // {
+    //     id: 1, 
+    //     title: "", //该导航的标题
+    //     data: [], //数据1
+    //     data1: [], //数据2
+    //     data2: [], //数据3
+    //     data3: [], //数据4
+    //     data4: [], //数据5
+    //     category_id1: "",  //子导航id1
+    //     category_id2: "", 
+    //     category_id3: "",
+    //     category_id4: "",
+    //     title1: "", //子导航标题1
+    //     title2: "",
+    //     title3: "",
+    //     title4: "",
+    //     cid: "" //该导航的id
+    // },
+])
+const newsData = ref([])
+const goodsData = ref([])
+
+//4.1 获取所有导航
+try {
+    const navigateData = await requestDataPromise('/web/getWebsiteModelCategory', {
+        method: 'GET',
+        query: {
+            'placeid': 1,
+            'pid': routeId,
+            'num': 8,
+            'type': 1
+        },
+    });
+    console.log('获取三级导航1111111', navigateData);
+
+    if (navigateData.code == 200) {
+        // 遍历可用的导航池放到页面中
+        for (let index in navigateData.data) {
+            let data = {
+                title: navigateData.data[index].name,
+                cid: navigateData.data[index].category_id,
+                children_count: navigateData.data[index].children_count,
+                alias: navigateData.data[index].alias,
+                aLIas_pinyin: targetSegment1 + "/" + targetSegment + "/" + navigateData.data[index].aLIas_pinyin,
+                type: navigateData.data[index].type,
+                data: [],
+                data1: [],
+                data2: [],
+                data3: [],
+                data4: [],
+                category_id1: "",
+                category_id2: "",
+                category_id3: "",
+                category_id4: "",
+                title1: "",
+                title2: "",
+                title3: "",
+                title4: ""
+            };
+            if (navigateData.data[index].is_url == 1) {
+                // 处理 URL 的逻辑
+            } else {
+                if (navigateData.data[index].type == 2) {
+                    goodsData.value.push(data);
+                } else if (navigateData.data[index].type == 1) {
+                    newsData.value.push(data);
+                }
+                //每个页面最多8个模块
+                pageData.value.push(data);
+            }
+        }
+        console.log('获取三级导航pageData', pageData.value);
+        console.log('获取三级导航goods', goodsData.value);
+        console.log('获取三级导航news', newsData.value);
+
+        //导航池加载完毕,开始申请模块数据
+        let getJson = [
+            // { "parent": routeId + ",0,0", "child": newsData.value[0].cid + ",5,9" },//模块1 
+            // { "parent": routeId + ",0,0", "child": newsData.value[1].cid + ",1,6" },//模块2
+            // { "parent": routeId + ",0,0", "child": newsData.value[2].cid + ",1,6" },//模块3
+            // { "parent": routeId + ",0,0", "child": newsData.value[3].cid + ",1,6" },//模块4
+        ]
+        for (let i = 0; i < newsData.value.length; i++) {
+            if (i == 0) {
+                getJson.push({ "parent": routeId + ",0,0", "child": newsData.value[0].cid + ",3,9" })
+            } else if (i == 1) {
+                getJson.push({ "parent": routeId + ",0,0", "child": newsData.value[1].cid + ",1,2" })
+            } else if (i == 2) {
+                getJson.push({ "parent": routeId + ",0,0", "child": newsData.value[2].cid + ",1,6" })
+            } else if (i == 3) {
+                getJson.push({ "parent": routeId + ",0,0", "child": newsData.value[3].cid + ",2,4" })
+            }
+        }
+        let jsonString = JSON.stringify(getJson);
+        getPageAllData(jsonString);
+
+        // let goodsJson = [
+        //     // { "catid": goodsData.value[0].cid + ",0,12" },//模块1
+        //     // { "catid": goodsData.value[1].cid + ",0,4" },//模块2
+        //     // { "catid": goodsData.value[2].cid + ",0,4" },//模块3
+        // ]
+        // for (let i = 0; i < goodsData.value.length; i++) {
+        //     if (i == 0) {
+        //         goodsJson.push({ "catid": goodsData.value[0].cid + ",0,12" });
+        //     } else if (i == 1) {
+        //         goodsJson.push({ "catid": goodsData.value[1].cid + ",0,4" });
+        //     } else if (i == 2) {
+        //         goodsJson.push({ "catid": goodsData.value[2].cid + ",0,4" });
+        //     }
+        // }
+        // let goodsJsonString = JSON.stringify(goodsJson);
+        // getPageGoodsAllData(goodsJsonString);
+    } else {
+        console.log("错误:渲染8个模块环节出错,请检查是否存在没有数据的模块!")
+    }
+} catch (error) {
+    console.log("错误:导航池渲染执行接口出错!请检查频道页渲染的模块数据是否完整!")
+}
+// 获取商品数据 start--------------------------------------->
+async function getPageGoodsAllData(goodsJsonString) {
+    const mkdata = await requestDataPromise('/web/getWebsiteCatidshop', {
+        method: 'GET',
+        query: {
+            'catid': goodsJsonString
+        },
+    });
+    console.log("获取商品数据", mkdata);
+
+    if (mkdata.code == 200) {
+        //模块1
+        for (let index in mkdata.data[0]) {
+            console.log("获取商品数据", index, mkdata.data[0][index]);
+            if (index < 4) {
+                goodsData.value[0].data.push(mkdata.data[0][index]);
+            } else {
+                goodsData.value[0].data1.push(mkdata.data[0][index]);
+            }
+        }
+        //模块2
+        goodsData.value[1].data = mkdata.data[1];
+        goodsData.value[2].data = mkdata.data[2];
+        console.log("获取商品数据111111", goodsData.value);
+    }
+}
+// 获取商品数据 end----------------------------------------->
+
+async function getPageAllData(jsonString) {
+    const mkdata = await requestDataPromise('/web/getWebsiteAllArticle', {
+        method: 'GET',
+        query: {
+            'id': jsonString
+        },
+    });
+    console.log('获取模块数据', mkdata);
+
+    if (mkdata.code == 200) {
+        //模块1 顶部大图和列表
+        newsData.value[0].data = mkdata.data[0].child.imgnum;
+        newsData.value[0].data2 = mkdata.data[0].child.textnum;
+        //模块2
+        newsData.value[1].data = mkdata.data[1].child.imgnum;
+        newsData.value[1].data2 = mkdata.data[1].child.textnum;
+        //模块3
+        newsData.value[2].data = mkdata.data[2].child.imgnum;
+        newsData.value[2].data2 = mkdata.data[2].child.textnum;
+        //模块4
+        newsData.value[3].data = mkdata.data[3].child.imgnum;
+        newsData.value[3].data2 = mkdata.data[3].child.textnum;
+    } else {
+        ElMessage.error(mkdata.message)
+    }
+}
+//4.页面数据 end ---------------------------------------->
+
+//5.设置seo信息 start---------------------------------------->
+const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
+    method: 'GET',
+    query: {
+        'catid': routeId
+    },
+});
+
+if (setData.code == 200) {
+    let seoTitle = setData.data.seo_title;
+    let seoDescription = setData.data.seo_description;
+    let seoKeywords = setData.data.seo_keywords;
+    let seoSuffix = setData.data.suffix;
+    let seoName = setData.data.website_name;
+
+    useSeoMeta({
+        title: seoTitle + "_" + seoSuffix,
+        meta: [
+            { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
+            { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
+        ]
+    });
+} else {
+    console.log("设置频道页SEO出错!", setData.message)
+}
+//5.设置seo信息 end---------------------------------------->
+</script>
+
+<style lang="less" scoped>
+@import url("@/assets/css/shop/newsClass.less");
+@import url("@/assets/css/shop/goodsList.less");
+
+.news {
+    width: 1200px;
+    margin: 0 auto;
+}
+
+.goods {
+    width: 1200px;
+    margin: 0 auto;
+}
+
+//导航条
+.breadcrumb {
+    width: 100%;
+    height: 22px;
+    padding-bottom: 30px;
+    border-bottom: 1px solid #ccc;
+    font-family: Microsoft YaHei, Microsoft YaHei;
+    font-weight: 400;
+    font-size: 20px;
+    color: #666666;
+    line-height: 23px;
+    text-align: left;
+    font-style: normal;
+    text-transform: none;
+    margin-top: 40px;
+
+    :deep(.el-breadcrumb) {
+        display: inline-block;
+        vertical-align: -4px;
+    }
+
+    :deep(.el-breadcrumb__inner a),
+    :deep(.el-breadcrumb__inner.is-link) {
+        color: #666666;
+        font-weight: 400;
+        text-decoration: none;
+        transition: var(--el-transition-color);
+    }
+
+    span {
+        font-family: Microsoft YaHei, Microsoft YaHei;
+        font-weight: 400;
+        font-size: 20px;
+        color: #666666;
+        line-height: 23px;
+        text-align: left;
+        font-style: normal;
+        text-transform: none;
+    }
+
+    span:hover {
+        color: #666666;
+    }
+
+    .location {
+        margin-right: 20px;
+        width: 100px;
+        height: 22px;
+        font-family: Microsoft YaHei, Microsoft YaHei;
+        font-weight: 400;
+        font-size: 20px;
+        color: #666666;
+        line-height: 23px;
+        text-align: left;
+        font-style: normal;
+        text-transform: none;
+    }
+}
+</style>

+ 1 - 1
pages/[dir]/[id].vue

@@ -42,7 +42,7 @@
                     <img :src="selectedImage" alt="Preview">
                 </div>
                 <!-- 免责声明: -->
-                <div class="disclaimer" v-if="newsDetail.copyfrom == '本网'">
+                <div class="disclaimer" v-if="newsDetail.copyfrom != '本网'">
                     <p>原文链接:{{ newsDetail.fromurl }}</p>
                     <p>[免责声明]本文来源于网络转载,仅供学习交流使用,不构成商业目的。 版权归原作者所有,如涉及作品内容,版权和其他问题,请在30日与本网联系,我们将第一时间处理。</p>
                 </div>

+ 7 - 512
pages/[dir]/index.html.vue

@@ -1,292 +1,10 @@
 <template>
     <div>
-        <HomePageHead></HomePageHead>
-        <HomePageNavigation></HomePageNavigation>
-        <HomeSecondaryHeading :titleData="pageData" :pinyinid="routeId"></HomeSecondaryHeading>
-        <!-- 频道页 -->
-        <main class="index_main">
-            <!--板块1-->
-            <section class="channel_1 clearfix">
-                <div class="channel_1_left">
-                    <div class="channel_1_box">
-                        <HomeSwiperSnscChannel :data="pageData[0].data"></HomeSwiperSnscChannel>
-                    </div>
-                </div>
-                <div class="channel_1_right">
-                    <div class="channel_head">
-                        <NuxtLink class="channel_head_name" :href="getLinkPath(pageData[0])" v-if="pageData[0]"
-                            :title="pageData[0].alias">
-                            {{ pageData[0].alias }}
-                        </NuxtLink>
-                        <NuxtLink class="channel_head_more" :href="getLinkPath(pageData[0])" v-if="pageData[0]"
-                            :title="pageData[0].alias">
-                            栏目简介
-                        </NuxtLink>
-                    </div>
-                    <div class="channel_name_ul" v-if="pageData[0]">
-                        <div class="channel_name_ul_li" v-for="item in pageData[0].data2">
-                            <NuxtLink class="channel_name_ul_li_dot1 dot1" :href="getLinkPathDetail(item)"
-                                :title="item.title" :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
-                                {{ item.title }}
-                            </NuxtLink>
-                        </div>
-                    </div>
-                </div>
-            </section>
-            <!--板块2-->
-            <section class="channel_2 clearfix">
-                <div class="channel_1_left clearfix">
-                    <!--open 商贸活动-->
-                    <div class="channel_head">
-                        <NuxtLink class="channel_head_name" :href="getLinkPath(pageData[1])" v-if="pageData[1]"
-                            :title="pageData[1].alias">
-                            {{ pageData[1].alias }}
-                        </NuxtLink>
-                        <NuxtLink class="channel_head_more" :href="getLinkPath(pageData[1])" v-if="pageData[1]"
-                            :title="pageData[1].alias">
-                            栏目简介
-                        </NuxtLink>
-                    </div>
-                    <div class="channel2_top_content clearfix" v-if="pageData[1]">
-                        <div class="channel_1_box_1 clearfix">
-                            <div class="channel_img_big_1_ul">
-                                <div class="channel_img_big_1_li" v-for="item in pageData[1].data">
-                                    <NuxtLink class="channel_img_big_1_li_a" :href="getLinkPathDetail(item)"
-                                        :title="item.title" :key="item.id"
-                                        :target="item.islink == 1 ? '_blank' : '_self'">
-                                        <img class="channel_img_big_1_li_img" :src="item.imgurl" alt="item.title">
-                                        <div class="channel_img_big_1_li_dot1 dot1">
-                                            {{ item.title }}
-                                        </div>
-                                    </NuxtLink>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="channel_1_box_2 clearfix">
-                            <div class="channel_ul_2">
-                                <NuxtLink class="channel_ul_2_a dot1" :href="getLinkPathDetail(item)"
-                                    :title="item.title" v-for="item in pageData[1].data2" :key="item.id"
-                                    :target="item.islink == 1 ? '_blank' : '_self'">
-                                    {{ item.title }}
-                                </NuxtLink>
-                            </div>
-                        </div>
-                    </div>
-                    <!--end 商贸活动-->
-                    <!--open 科教活动-->
-                    <div class="channel_head">
-                        <NuxtLink class="channel_head_name" :href="getLinkPath(pageData[2])" v-if="pageData[2]"
-                            :title="pageData[2].alias">
-                            {{ pageData[2].alias }}
-                        </NuxtLink>
-                        <NuxtLink class="channel_head_more" :href="getLinkPath(pageData[2])" v-if="pageData[2]"
-                            :title="pageData[2].alias">
-                            栏目简介
-                        </NuxtLink>
-                    </div>
-                    <div class=" clearfix" v-if="pageData[2]">
-                        <div class="channel_1_box_1 clearfix">
-                            <div class="channel_img_big_2_ul">
-                                <div class="channel_img_big_2_li" v-for="item in pageData[2].data">
-                                    <NuxtLink class="channel_img_big_2_li_a" :href="getLinkPathDetail(item)"
-                                        :title="item.title" :key="item.id"
-                                        :target="item.islink == 1 ? '_blank' : '_self'">
-                                        <img class="channel_img_big_2_li_img" :src="item.imgurl" alt="item.title">
-                                        <div class="channel_img_big_2_li_dot1 dot1">
-                                            {{ item.title }}
-                                        </div>
-                                    </NuxtLink>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="channel_1_box_2 clearfix">
-                            <div class="channel_ul_3">
-                                <NuxtLink class="channel_ul_3_a dot1" :href="getLinkPathDetail(item)"
-                                    :title="item.title" v-for="item in pageData[2].data2" :key="item.id"
-                                    :target="item.islink == 1 ? '_blank' : '_self'">
-                                    {{ item.title }}
-                                </NuxtLink>
-                            </div>
-                        </div>
-                    </div>
-                    <!--end 科教活动-->
-                </div>
-                <div class="channel_1_right clearfix">
-                    <!--open 产业动态-->
-                    <div class="channel_head">
-                        <NuxtLink class="channel_head_name" :href="getLinkPath(pageData[3])" v-if="pageData[3]"
-                            :title="pageData[3].alias">
-                            {{ pageData[3].alias }}
-                        </NuxtLink>
-                        <NuxtLink class="channel_head_more" :href="getLinkPath(pageData[3])" v-if="pageData[3]"
-                            :title="pageData[3].alias">
-                            栏目简介
-                        </NuxtLink>
-                    </div>
-                    <div class="channel_img_big_3_ul clearfix" v-if="pageData[3].data">
-                        <div class="channel_img_big_3_li" v-for="item in pageData[3].data">
-                            <NuxtLink class="channel_img_big_3_li_a" :href="getLinkPathDetail(item)" :title="item.title"
-                                :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
-                                <img class="channel_img_big_3_li_img" :src="item.imgurl" alt="item.title">
-                                <div class="channel_img_big_3_li_dot1 dot1">
-                                    {{ item.title }}
-                                </div>
-                            </NuxtLink>
-                        </div>
-                    </div>
-                    <div class="channel_ul_4" v-if="pageData[3].data2">
-                        <div class="channel_ul_4_li dot1" v-for="(item, index) in pageData[3].data2">
-                            <div class="channel_ul_4_li_num">{{ index + 1 }}</div>
-                            <NuxtLink class="channel_img_big_3_li_a" :href="getLinkPathDetail(item)" :title="item.title"
-                                :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
-                                <div class="channel_ul_4_a dot1">
-                                    {{ item.title }}
-                                </div>
-                            </NuxtLink>
-                        </div>
-                    </div>
-                    <!--end 产业动态-->
-                </div>
-            </section>
-            <!--广告1-->
-            <HomeAdvertising :data="adImg1"></HomeAdvertising>
-
-            <section class="channel_3 clearfix">
-                <!--open 农贸节庆-->
-                <div class="channel_1_left clearfix">
-                    <div class="channel_head">
-                        <NuxtLink class="channel_head_name" :href="getLinkPath(pageData[4])" v-if="pageData[4]"
-                            :title="pageData[4].alias">
-                            {{ pageData[4].alias }}
-                        </NuxtLink>
-                        <NuxtLink class="channel_head_more" :href="getLinkPath(pageData[4])" v-if="pageData[4]"
-                            :title="pageData[4].alias">
-                            栏目简介
-                        </NuxtLink>
-                    </div>
-                    <div class=" clearfix" v-if="pageData[4]">
-                        <div class="channel_1_box_1 clearfix">
-                            <div class="channel_img_big_4_ul">
-                                <div class="channel_img_big_4_li" v-for="item in pageData[4].data">
-                                    <NuxtLink class="channel_img_big_4_li" :href="getLinkPathDetail(item)"
-                                        :title="item.title" :key="item.id"
-                                        :target="item.islink == 1 ? '_blank' : '_self'">
-                                        <img class="channel_img_big_4_li_img" :src="item.imgurl" alt="item.title">
-                                        <div class="channel_img_big_4_li_dot2 dot2">
-                                            {{ item.title }}
-                                        </div>
-                                    </NuxtLink>
-                                </div>
-                            </div>
-                            <div class="channel_img_ul_1 clearfix">
-                                <div class="channel_img_ul_1_li" v-for="item in pageData[4].data2">
-                                    <NuxtLink class="channel_img_ul_1_li_a" :href="getLinkPathDetail(item)"
-                                        :title="item.title" :key="item.id"
-                                        :target="item.islink == 1 ? '_blank' : '_self'">
-                                        <img class="channel_img_ul_1_li_img" :src="item.imgurl" alt="item.title">
-                                        <div class="channel_img_ul_1_li_dot2 dot2">
-                                            {{ item.title }}
-                                        </div>
-                                    </NuxtLink>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="channel_1_box_2 clearfix">
-                            <div class="channel_ul_5">
-                                <NuxtLink class="channel_ul_5_a dot1" :href="getLinkPathDetail(item)"
-                                    v-for="item in pageData[4].data3" :title="item.title" :key="item.id"
-                                    :target="item.islink == 1 ? '_blank' : '_self'">
-                                    {{ item.title }}
-                                </NuxtLink>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-                <!--end 农贸节庆-->
-                <!--open 市场行情-->
-                <div class="channel_1_right clearfix">
-                    <div class="channel_head">
-                        <NuxtLink class="channel_head_name" :href="getLinkPath(pageData[5])" v-if="pageData[5]"
-                            :title="pageData[5].alias">
-                            {{ pageData[5].alias }}
-                        </NuxtLink>
-                        <NuxtLink class="channel_head_more" :href="getLinkPath(pageData[5])" v-if="pageData[5]"
-                            :title="pageData[5].alias">
-                            栏目简介
-                        </NuxtLink>
-                    </div>
-                    <div class="channel_img_ul_2 clearfix" v-if="pageData[5]">
-                        <div class="channel_img_ul_2_li" v-for="item in pageData[5].data">
-                            <NuxtLink class="channel_img_ul_2_li" :href="getLinkPathDetail(item)" :title="item.title"
-                                :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
-                                <img class="channel_img_ul_2_li_img" :src="item.imgurl" alt="item.title">
-                                <div class="channel_img_ul_2_li_dot1 dot1">
-                                    {{ item.title }}
-                                </div>
-                            </NuxtLink>
-                        </div>
-                    </div>
-                    <div class="channel_ul_6" v-if="pageData[5]">
-                        <NuxtLink class="channel_ul_6_a dot1" :href="getLinkPathDetail(item)" :title="item.title"
-                            v-for="item in pageData[5].data2" :key="item.id"
-                            :target="item.islink == 1 ? '_blank' : '_self'">
-                            {{ item.title }}
-                        </NuxtLink>
-                    </div>
-                    <!--end 市场行情-->
-                </div>
-            </section>
-            <section class="channel_4 clearfix">
-                <div class="channel_1_left clearfix">
-                    <!--open 业界交流-->
-                    <div class="channel_head">
-                        <NuxtLink class="channel_head_name" :href="getLinkPath(pageData[6])" v-if="pageData[6]"
-                            :title="pageData[6].alias">
-                            {{ pageData[6].alias }}
-                        </NuxtLink>
-                        <NuxtLink class="channel_head_more" :href="getLinkPath(pageData[6])" v-if="pageData[6]"
-                            :title="pageData[6].alias">
-                            栏目简介
-                        </NuxtLink>
-                    </div>
-                    <div class="channel_ul_7" v-if="pageData[6]">
-                        <NuxtLink class="channel_ul_7_a dot1" :href="getLinkPathDetail(item)" :title="item.title"
-                            v-for="item in pageData[6].data" :key="item.id"
-                            :target="item.islink == 1 ? '_blank' : '_self'">
-                            {{ item.title }}
-                        </NuxtLink>
-                    </div>
-                    <!--end 业界交流-->
-                </div>
-                <!--open 主题活动-->
-                <div class="channel_1_right clearfix">
-                    <div class="channel_head">
-                        <NuxtLink class="channel_head_name" :href="getLinkPath(pageData[7])" v-if="pageData[7]"
-                            :title="pageData[7].alias">
-                            {{ pageData[7].alias }}
-                        </NuxtLink>
-                        <NuxtLink class="channel_head_more" :href="getLinkPath(pageData[7])" v-if="pageData[7]"
-                            :title="pageData[7].alias">
-                            栏目简介
-                        </NuxtLink>
-                    </div>
-                    <div class="channel_img_big_5_ul" v-if="pageData[7]">
-                        <div class="channel_img_big_5_li" v-for="item in pageData[7].data">
-                            <NuxtLink class="channel_img_big_5_li_a" :href="getLinkPathDetail(item)" :title="item.title"
-                                v-for="item in pageData[7].data" :key="item.id"
-                                :target="item.islink == 1 ? '_blank' : '_self'">
-                                <img class="channel_img_big_5_li_img" :src="item.imgurl" alt="item.title">
-                                <div class="channel_img_big_5_li_dot2 dot2">{{ item.title }}</div>
-                            </NuxtLink>
-                        </div>
-                    </div>
-                    <!--end 主题活动-->
-                </div>
-            </section>
-        </main>
-        <!-- 页脚部分 -->
-        <HomeFoot1></HomeFoot1>
+        <NewsClass></NewsClass>
+        <!-- <NewsClass v-if="routeType == 1"></NewsClass> -->
+        <!-- <GoodsClass v-if="routeType == 2"></GoodsClass> -->
     </div>
+
 </template>
 
 <script setup>
@@ -299,6 +17,7 @@ import { ElMessage } from 'element-plus';
 const targetSegment = getRoutePath(1);
 //1.1 获得当前的路由id
 let routeId;
+let routeType;
 //通过导航路径反向查询导航id
 const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
     method: 'GET',
@@ -307,235 +26,11 @@ const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
     },
 });
 if (getRouteId.code == 200) {
+    console.log("获得路由id成功!", getRouteId.data);
     routeId = getRouteId.data.category_id
+    routeType = getRouteId.data.type
 } else {
     console.log("获得路由id出错!", getRouteId.message)
 }
 //1.获得路由id end ---------------------------------------->
-
-//2.选项卡 start ---------------------------------------->
-let showTabs = ref(1)
-let qhtabs = function (number) {
-    console.log(number)
-    showTabs.value = number
-}
-//2.选项卡 end ---------------------------------------->
-
-//3.广告 start ---------------------------------------->
-let adImg1 = ref({})
-let adImg2 = ref({})
-let adImg3 = ref({})
-let adImg4 = ref({})
-onMounted(async () => {
-    //从客户端获取行政职能部门 加快打开速度
-    const { $webUrl, $CwebUrl } = useNuxtApp();
-    //广告1
-    let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0001`
-    const responseAd1 = await fetch(url, {
-        headers: {
-            'Content-Type': 'application/json',
-            'Userurl': $CwebUrl,
-            'Origin': $CwebUrl
-        }
-    });
-    const resultAd1 = await responseAd1.json();
-    adImg1.value = resultAd1.data[0];
-
-    //广告2
-    let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0002`
-    const responseAd2 = await fetch(url2, {
-        headers: {
-            'Content-Type': 'application/json',
-            'Userurl': $CwebUrl,
-            'Origin': $CwebUrl
-        }
-    });
-    const resultAd2 = await responseAd2.json();
-    adImg2.value = resultAd2.data[0];
-
-    //广告3
-    let url3 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0003`
-    const responseAd3 = await fetch(url3, {
-        headers: {
-            'Content-Type': 'application/json',
-            'Userurl': $CwebUrl,
-            'Origin': $CwebUrl
-        }
-    });
-    const resultAd3 = await responseAd3.json();
-    adImg3.value = resultAd3.data[0];
-
-    //广告4
-    let url4 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_category_0004`
-    const responseAd4 = await fetch(url4, {
-        headers: {
-            'Content-Type': 'application/json',
-            'Userurl': $CwebUrl,
-            'Origin': $CwebUrl
-        }
-    });
-    const resultAd4 = await responseAd4.json();
-    adImg4.value = resultAd4.data[0];
-})
-//3.广告 end ---------------------------------------->
-
-//4.页面数据 start ---------------------------------------->
-const pageData = ref([
-    //示例:
-    // {
-    //     id: 1, 
-    //     title: "", //该导航的标题
-    //     data: [], //数据1
-    //     data1: [], //数据2
-    //     data2: [], //数据3
-    //     data3: [], //数据4
-    //     data4: [], //数据5
-    //     category_id1: "",  //子导航id1
-    //     category_id2: "", 
-    //     category_id3: "",
-    //     category_id4: "",
-    //     title1: "", //子导航标题1
-    //     title2: "",
-    //     title3: "",
-    //     title4: "",
-    //     cid: "" //该导航的id
-    // },
-])
-
-//4.1 获取所有导航
-try {
-    const navigateData = await requestDataPromise('/web/getWebsiteModelCategory', {
-        method: 'GET',
-        query: {
-            'placeid': 1,
-            'pid': routeId,
-            'num': 8
-        },
-    });
-    if (navigateData.code == 200) {
-        // 遍历可用的导航池放到页面中
-        for (let index in navigateData.data) {
-            let data = {
-                title: navigateData.data[index].name,
-                cid: navigateData.data[index].category_id,
-                children_count: navigateData.data[index].children_count,
-                alias: navigateData.data[index].alias,
-                aLIas_pinyin: targetSegment + "/" + navigateData.data[index].aLIas_pinyin,
-                data: [],
-                data1: [],
-                data2: [],
-                data3: [],
-                data4: [],
-                category_id1: "",
-                category_id2: "",
-                category_id3: "",
-                category_id4: "",
-                title1: "",
-                title2: "",
-                title3: "",
-                title4: ""
-            };
-            if (navigateData.data[index].is_url == 1) {
-                // 处理 URL 的逻辑
-            } else {
-                //每个页面最多8个模块
-                pageData.value.push(data);
-            }
-        }
-        //导航池加载完毕,开始申请模块数据
-        let getJson = [
-            { "parent": routeId + ",0,0", "child": pageData.value[0].cid + ",5,9" },//模块1 
-            { "parent": routeId + ",0,0", "child": pageData.value[1].cid + ",1,6" },//模块2
-            { "parent": routeId + ",0,0", "child": pageData.value[2].cid + ",1,6" },//模块3
-            { "parent": routeId + ",0,0", "child": pageData.value[3].cid + ",1,6" },//模块4
-            { "parent": routeId + ",0,0", "child": pageData.value[4].cid + ",3,10" },//模块5
-            { "parent": routeId + ",0,0", "child": pageData.value[5].cid + ",2,6" },//模块6
-            { "parent": routeId + ",0,0", "child": pageData.value[6].cid + ",0,6" },//模块7
-            { "parent": routeId + ",0,0", "child": pageData.value[7].cid + ",1,0" },//模块8
-        ]
-        let jsonString = JSON.stringify(getJson);
-        getPageAllData(jsonString);
-
-    } else {
-        console.log("错误:渲染8个模块环节出错,请检查是否存在没有数据的模块!")
-    }
-} catch (error) {
-    console.log("错误:导航池渲染执行接口出错!请检查频道页渲染的模块数据是否完整!")
-}
-
-
-async function getPageAllData(jsonString) {
-    const mkdata = await requestDataPromise('/web/getWebsiteAllArticle', {
-        method: 'GET',
-        query: {
-            'id': jsonString
-        },
-    });
-
-    if (mkdata.code == 200) {
-        //模块1 顶部大图和列表
-        pageData.value[0].data = mkdata.data[0].child.imgnum;
-        pageData.value[0].data2 = mkdata.data[0].child.textnum;
-        //模块2
-        pageData.value[1].data = mkdata.data[1].child.imgnum;
-        pageData.value[1].data2 = mkdata.data[1].child.textnum;
-        //模块3
-        pageData.value[2].data = mkdata.data[2].child.imgnum;
-        pageData.value[2].data2 = mkdata.data[2].child.textnum;
-        //模块4
-        pageData.value[3].data = mkdata.data[3].child.imgnum;
-        pageData.value[3].data2 = mkdata.data[3].child.textnum;
-        //模块5
-        for (let index in mkdata.data[4].child.imgnum) {
-            if (index < 1) {
-                pageData.value[4].data.push(mkdata.data[4].child.imgnum[index]);
-            } else {
-                pageData.value[4].data2.push(mkdata.data[4].child.imgnum[index]);
-            }
-        }
-        pageData.value[4].data3 = mkdata.data[4].child.textnum;
-        //模块6
-        pageData.value[5].data = mkdata.data[5].child.imgnum;
-        pageData.value[5].data2 = mkdata.data[5].child.textnum;
-        //模块7
-        pageData.value[6].data = mkdata.data[6].child.textnum;
-        //模块8
-        pageData.value[7].data = mkdata.data[7].child.imgnum;
-
-    } else {
-        ElMessage.error(mkdata.message)
-    }
-}
-//4.页面数据 end ---------------------------------------->
-
-//5.设置seo信息 start---------------------------------------->
-const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
-    method: 'GET',
-    query: {
-        'catid': routeId
-    },
-});
-
-if (setData.code == 200) {
-    let seoTitle = setData.data.seo_title;
-    let seoDescription = setData.data.seo_description;
-    let seoKeywords = setData.data.seo_keywords;
-    let seoSuffix = setData.data.suffix;
-    let seoName = setData.data.website_name;
-
-    useSeoMeta({
-        title: seoTitle + "_" + seoSuffix,
-        meta: [
-            { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
-            { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
-        ]
-    });
-} else {
-    console.log("设置频道页SEO出错!", setData.message)
-}
-//5.设置seo信息 end---------------------------------------->
 </script>
-
-<style lang="less" scoped>
-@import '@/assets/css/class.less';
-</style>

+ 3 - 3
pages/index.vue

@@ -527,11 +527,11 @@
                         </div>
                     </div>
                     <div class="index_name_ul">
-                        <div class="index_name_ul_li" v-for="item in boxData14data2">
+                        <div class="index_name_ul_li" v-for="(item,index) in boxData14data2" :key="index">
                             <NuxtLink class="index_name_ul_li_tag" :href="getLinkPath1(item)" :title="item.title"
                                 :target="item.islink == 1 ? '_blank' : '_self'">
                                 <div class="index_img_ul_7_li_dot1 dot1">
-                                    {{ item.category_name }}
+                                    {{ item.alias }}
                                 </div>
                             </NuxtLink>
                             <NuxtLink class="index_name_ul_li_dot1 dot1" :href="getLinkPathDetail1(item)"
@@ -877,7 +877,7 @@ async function getPageAllData() {
         boxData13data3.value = mkdata.data[12].textnum;
         //模块14
         boxData14.value = mkdata.data[13].imgnum;
-        boxData14data2.value = mkdata.data[13].textnum;
+        // boxData14data2.value = mkdata.data[13].textnum;
 
     } else {
         ElMessage.error(mkdata.message)

BIN
public/img/15.png


BIN
public/img/16.png


BIN
public/img/2.png


BIN
public/img/3.png


BIN
public/img/4.png


BIN
public/img/5.png


BIN
public/img/6.png


BIN
public/img/7.png


BIN
public/shop/navbg.png