Jing 18 цаг өмнө
parent
commit
71701f74ca
35 өөрчлөгдсөн 3878 нэмэгдсэн , 1057 устгасан
  1. 4 0
      .nuxt/components.d.ts
  2. 0 979
      .nuxt/dev/index.mjs
  3. 0 0
      .nuxt/dev/index.mjs.map
  4. 0 1
      .nuxt/imports.d.ts
  5. 1 1
      .nuxt/manifest/latest.json
  6. 1 0
      .nuxt/manifest/meta/1a497fd6-571a-47cb-bcdb-8e7d3b5459a4.json
  7. 0 1
      .nuxt/manifest/meta/522f0687-5603-4643-ae77-54663c35efbc.json
  8. 0 1
      .nuxt/manifest/meta/dev.json
  9. 0 17
      .nuxt/nitro.json
  10. 0 9
      .nuxt/nuxt.json
  11. 1 1
      .nuxt/tsconfig.json
  12. 0 1
      .nuxt/types/build.d.ts
  13. 0 2
      .nuxt/types/imports.d.ts
  14. 2 7
      .nuxt/types/plugins.d.ts
  15. 1 1
      assets/css/class.less
  16. 763 0
      assets/css/shukan.less
  17. 391 0
      assets/css/shukanDetail.less
  18. 318 0
      assets/css/shukanList.less
  19. 11 8
      components/home/ListSecondaryHeading.vue
  20. 2 2
      components/home/SecondaryHeading.vue
  21. 141 0
      components/home/SecondaryHeading_shukan.vue
  22. 1 4
      pages/[dir]/[dir]/[id].vue
  23. 1 1
      pages/[dir]/[dir]/list-[id].vue
  24. 1 4
      pages/[dir]/[id].vue
  25. 1 1
      pages/[dir]/index.html.vue
  26. 288 0
      pages/shukanyinxiangcheng/[dir]/[id].vue
  27. 260 0
      pages/shukanyinxiangcheng/[dir]/list-[id].vue
  28. 563 0
      pages/shukanyinxiangcheng/index.html.vue
  29. 288 0
      pages/shukanyinxiangchengnmgw/[dir]/[id].vue
  30. 260 0
      pages/shukanyinxiangchengnmgw/[dir]/list-[id].vue
  31. 563 0
      pages/shukanyinxiangchengnmgw/index.html.vue
  32. 2 2
      plugins/category.ts
  33. 10 10
      plugins/globals.ts
  34. 4 4
      plugins/request.ts
  35. BIN
      public/index/navtitle.png

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

@@ -14,6 +14,7 @@ interface _GlobalComponents {
     'HomePageMessage': typeof import("../components/home/PageMessage.vue")['default']
     'HomePagination': typeof import("../components/home/Pagination.vue")['default']
     'HomeSecondaryHeading': typeof import("../components/home/SecondaryHeading.vue")['default']
+    'HomeSecondaryHeadingShukan': typeof import("../components/home/SecondaryHeading_shukan.vue")['default']
     'HomeSmallSwiper1': typeof import("../components/home/SmallSwiper1.vue")['default']
     'HomeSmallSwiperNmg': typeof import("../components/home/SmallSwiperNmg.vue")['default']
     'HomeSmallSwiperTwo': typeof import("../components/home/SmallSwiperTwo.vue")['default']
@@ -63,6 +64,7 @@ interface _GlobalComponents {
     'LazyHomePageMessage': typeof import("../components/home/PageMessage.vue")['default']
     'LazyHomePagination': typeof import("../components/home/Pagination.vue")['default']
     'LazyHomeSecondaryHeading': typeof import("../components/home/SecondaryHeading.vue")['default']
+    'LazyHomeSecondaryHeadingShukan': typeof import("../components/home/SecondaryHeading_shukan.vue")['default']
     'LazyHomeSmallSwiper1': typeof import("../components/home/SmallSwiper1.vue")['default']
     'LazyHomeSmallSwiperNmg': typeof import("../components/home/SmallSwiperNmg.vue")['default']
     'LazyHomeSmallSwiperTwo': typeof import("../components/home/SmallSwiperTwo.vue")['default']
@@ -118,6 +120,7 @@ export const HomeListSecondaryHeading: typeof import("../components/home/ListSec
 export const HomePageMessage: typeof import("../components/home/PageMessage.vue")['default']
 export const HomePagination: typeof import("../components/home/Pagination.vue")['default']
 export const HomeSecondaryHeading: typeof import("../components/home/SecondaryHeading.vue")['default']
+export const HomeSecondaryHeadingShukan: typeof import("../components/home/SecondaryHeading_shukan.vue")['default']
 export const HomeSmallSwiper1: typeof import("../components/home/SmallSwiper1.vue")['default']
 export const HomeSmallSwiperNmg: typeof import("../components/home/SmallSwiperNmg.vue")['default']
 export const HomeSmallSwiperTwo: typeof import("../components/home/SmallSwiperTwo.vue")['default']
@@ -167,6 +170,7 @@ export const LazyHomeListSecondaryHeading: typeof import("../components/home/Lis
 export const LazyHomePageMessage: typeof import("../components/home/PageMessage.vue")['default']
 export const LazyHomePagination: typeof import("../components/home/Pagination.vue")['default']
 export const LazyHomeSecondaryHeading: typeof import("../components/home/SecondaryHeading.vue")['default']
+export const LazyHomeSecondaryHeadingShukan: typeof import("../components/home/SecondaryHeading_shukan.vue")['default']
 export const LazyHomeSmallSwiper1: typeof import("../components/home/SmallSwiper1.vue")['default']
 export const LazyHomeSmallSwiperNmg: typeof import("../components/home/SmallSwiperNmg.vue")['default']
 export const LazyHomeSmallSwiperTwo: typeof import("../components/home/SmallSwiperTwo.vue")['default']

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 979
.nuxt/dev/index.mjs


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
.nuxt/dev/index.mjs.map


+ 0 - 1
.nuxt/imports.d.ts

@@ -31,5 +31,4 @@ export { injectHead, useHead, useSeoMeta, useHeadSafe, useServerHead, useServerS
 export { requestData, requestDataPromise, requestDataWebUrl, requestHome } from '../composables/getData';
 export { getTime, getTitleLength, getLinkPath, getLinkPathDetail, getRoutePath, getLinkPath1 } from '../composables/publicFunction';
 export { seoSetup } from '../composables/useSeo';
-export { useNuxtDevTools } from '../node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools';
 export { definePageMeta } from '../node_modules/nuxt/dist/pages/runtime/composables';

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

@@ -1 +1 @@
-{"id":"dev","timestamp":1745907259076}
+{"id":"1a497fd6-571a-47cb-bcdb-8e7d3b5459a4","timestamp":1746681391167}

+ 1 - 0
.nuxt/manifest/meta/1a497fd6-571a-47cb-bcdb-8e7d3b5459a4.json

@@ -0,0 +1 @@
+{"id":"1a497fd6-571a-47cb-bcdb-8e7d3b5459a4","timestamp":1746681391167,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

+ 0 - 1
.nuxt/manifest/meta/522f0687-5603-4643-ae77-54663c35efbc.json

@@ -1 +0,0 @@
-{}

+ 0 - 1
.nuxt/manifest/meta/dev.json

@@ -1 +0,0 @@
-{"id":"dev","timestamp":1745907259076,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

+ 0 - 17
.nuxt/nitro.json

@@ -1,17 +0,0 @@
-{
-  "date": "2025-04-29T06:14:27.427Z",
-  "preset": "nitro-dev",
-  "framework": {
-    "name": "nuxt",
-    "version": "3.15.2"
-  },
-  "versions": {
-    "nitro": "2.10.4"
-  },
-  "dev": {
-    "pid": 19364,
-    "workerAddress": {
-      "socketPath": "\\\\.\\pipe\\nitro\\worker-19364-1.sock"
-    }
-  }
-}

+ 0 - 9
.nuxt/nuxt.json

@@ -1,9 +0,0 @@
-{
-  "_hash": "uXOaRmMzpZ",
-  "project": {
-    "rootDir": "D:/01_AA_ssr_master/nongmingongwang"
-  },
-  "versions": {
-    "nuxt": "3.15.2"
-  }
-}

+ 1 - 1
.nuxt/tsconfig.json

@@ -102,7 +102,7 @@
         "./imports"
       ],
       "#app-manifest": [
-        "./manifest/meta/dev.json"
+        "./manifest/meta/1a497fd6-571a-47cb-bcdb-8e7d3b5459a4.json"
       ],
       "#components": [
         "./components"

+ 0 - 1
.nuxt/types/build.d.ts

@@ -11,7 +11,6 @@ declare module "#build/paths.mjs";
 declare module "#build/root-component.mjs";
 declare module "#build/plugins.server.mjs";
 declare module "#build/test-component-wrapper.mjs";
-declare module "#build/devtools/settings.mjs";
 declare module "#build/routes.mjs";
 declare module "#build/pages.mjs";
 declare module "#build/router.options.mjs";

+ 0 - 2
.nuxt/types/imports.d.ts

@@ -123,7 +123,6 @@ declare global {
   const useModel: typeof import('vue')['useModel']
   const useNuxtApp: typeof import('../../node_modules/nuxt/dist/app/nuxt')['useNuxtApp']
   const useNuxtData: typeof import('../../node_modules/nuxt/dist/app/composables/asyncData')['useNuxtData']
-  const useNuxtDevTools: typeof import('../../node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools')['useNuxtDevTools']
   const usePreviewMode: typeof import('../../node_modules/nuxt/dist/app/composables/preview')['usePreviewMode']
   const useRequestEvent: typeof import('../../node_modules/nuxt/dist/app/composables/ssr')['useRequestEvent']
   const useRequestFetch: typeof import('../../node_modules/nuxt/dist/app/composables/ssr')['useRequestFetch']
@@ -312,7 +311,6 @@ declare module 'vue' {
     readonly useModel: UnwrapRef<typeof import('vue')['useModel']>
     readonly useNuxtApp: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/nuxt')['useNuxtApp']>
     readonly useNuxtData: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/composables/asyncData')['useNuxtData']>
-    readonly useNuxtDevTools: UnwrapRef<typeof import('../../node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools')['useNuxtDevTools']>
     readonly usePreviewMode: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/composables/preview')['usePreviewMode']>
     readonly useRequestEvent: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/composables/ssr')['useRequestEvent']>
     readonly useRequestFetch: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/composables/ssr')['useRequestFetch']>

+ 2 - 7
.nuxt/types/plugins.d.ts

@@ -9,17 +9,12 @@ type NuxtAppInjections =
   InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/revive-payload.client.js")> &
   InjectionType<typeof import("../../node_modules/nuxt/dist/head/runtime/plugins/unhead.js")> &
   InjectionType<typeof import("../../node_modules/nuxt/dist/pages/runtime/plugins/router.js")> &
-  InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/browser-devtools-timing.client.js")> &
+  InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/payload.client.js")> &
   InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/navigation-repaint.client.js")> &
   InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/check-outdated-build.client.js")> &
   InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/revive-payload.server.js")> &
   InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/chunk-reload.client.js")> &
   InjectionType<typeof import("../../node_modules/nuxt/dist/pages/runtime/plugins/prefetch.client.js")> &
-  InjectionType<typeof import("../../node_modules/nuxt/dist/pages/runtime/plugins/check-if-page-unused.js")> &
-  InjectionType<typeof import("../../node_modules/@nuxt/devtools/dist/runtime/plugins/devtools.server.js")> &
-  InjectionType<typeof import("../../node_modules/@nuxt/devtools/dist/runtime/plugins/devtools.client.js")> &
-  InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/dev-server-logs.js")> &
-  InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/check-if-layout-used.js")> &
   InjectionType<typeof import("../../plugins/element-plus")> &
   InjectionType<typeof import("../../plugins/request")> &
   InjectionType<typeof import("../../plugins/category")> &
@@ -30,7 +25,7 @@ declare module '#app' {
   interface NuxtApp extends NuxtAppInjections { }
 
   interface NuxtAppLiterals {
-    pluginName: 'nuxt:revive-payload:client' | 'nuxt:head' | 'nuxt:router' | 'nuxt:browser-devtools-timing' | 'nuxt:revive-payload:server' | 'nuxt:chunk-reload' | 'nuxt:global-components' | 'nuxt:prefetch' | 'nuxt:checkIfPageUnused' | 'nuxt:checkIfLayoutUsed'
+    pluginName: 'nuxt:revive-payload:client' | 'nuxt:head' | 'nuxt:router' | 'nuxt:payload' | 'nuxt:revive-payload:server' | 'nuxt:chunk-reload' | 'nuxt:global-components' | 'nuxt:prefetch'
   }
 }
 

+ 1 - 1
assets/css/class.less

@@ -103,7 +103,7 @@ section {
 }
 
 .index_2_body{
-    height: 483px;
+    height: 500px;
 }
 
 .index_2_head::after {

+ 763 - 0
assets/css/shukan.less

@@ -0,0 +1,763 @@
+@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 {
+    width: 1200px;
+    margin: 0 auto;
+    margin-bottom: 222px;
+}
+
+.slow_6 {
+    -webkit-transition: all .6s;
+    -moz-transition: all .6s;
+    -ms-transition: all .6s;
+    -o-transition: all .6s;
+    transition: all .6s;
+}
+
+.banner_1 {
+    height: 90px;
+    overflow: hidden;
+    margin-top: 20px;
+
+    .banner_1_a {
+        display: block;
+        width: 1200px;
+    }
+
+    .banner_1_img {
+        display: block;
+        width: 1200px;
+    }
+}
+
+.index_1 {
+    margin-top: 30px;
+}
+
+.index_1_left {
+    float: left;
+    width: 720px;
+}
+
+.index_1_right {
+    float: right;
+    width: 450px;
+}
+
+.index_1_li:nth-of-type(1) .index_1_li_tag {
+    background: #489d97;
+    color: #fff;
+}
+
+.index_1_li:nth-of-type(2) .index_1_li_tag {
+    background: #F6C12D;
+    color: #fff;
+}
+
+.index_1_li:nth-of-type(3) .index_1_li_tag {
+    background: #F3C57F;
+    color: #fff;
+}
+
+.index_1_li_a:hover {
+    color: #489d97;
+}
+
+.index_2 {
+    margin-top: 11px;
+}
+
+.index_2_left {
+    float: left;
+    width: 720px;
+}
+
+.index_2_right {
+    float: right;
+    width: 450px;
+}
+
+.book_head_box {
+    border-bottom: solid 1px #D9D9D9;
+
+    .book_head_left {
+        float: left;
+    }
+
+    .book_head_a {
+        float: left;
+        height: 55px;
+        line-height: 55px;
+        color: #333;
+        font-weight: bold;
+        font-size: 22px;
+        border-bottom: solid 3px rgba(0, 0, 0, 0);
+        margin-right: 40px;
+    }
+
+    .book_head_only {
+        float: left;
+        height: 55px;
+        line-height: 55px;
+        color: #489d97;
+        font-weight: bold;
+        font-size: 22px;
+        border-bottom: solid 3px #489d97;
+    }
+
+    .book_head_a_more {
+        float: right;
+        height: 19px;
+        line-height: 19px;
+        margin-top: 20px;
+        color: #333;
+        font-size: 16px;
+    }
+
+    .book_head_a_more:hover {
+        color: #489d97;
+    }
+
+    .book_head_right {
+        float: right;
+        margin-top: 11px;
+    }
+
+    .book_head_right_a {
+        float: left;
+        height: 31px;
+        line-height: 31px;
+        color: #fff;
+        font-size: 16px;
+        border-radius: 4px;
+        overflow: hidden;
+        padding: 0px 10px 0px 33px;
+    }
+}
+
+.book_1_img_ul {
+    height: 590px;
+
+    .book_1_img_li {
+        width: 350px;
+        margin: 30px 0px 10px 0px;
+    }
+
+    .book_1_img_li:nth-of-type(odd) {
+        float: left;
+    }
+
+    .book_1_img_li:nth-of-type(even) {
+        float: right;
+    }
+
+    .book_1_img_li_a {
+        width: 350px;
+        display: block;
+        overflow: hidden;
+    }
+
+    .book_1_img_li_a:hover .book_1_img_li_dot2 {
+        color: #489d97;
+    }
+
+    .book_1_img_li_img {
+        float: left;
+        width: 140px;
+        height: 170px;
+        border-radius: 6px;
+    }
+
+    .book_1_img_li_right {
+        float: right;
+        width: 190px;
+    }
+
+    .book_1_img_li_dot2 {
+        width: 190px;
+        height: 46px;
+        line-height: 23px;
+        color: #333;
+        font-size: 18px;
+        margin-top: 12px;
+    }
+
+    .book_1_img_li_btn {
+        float: left;
+        border: solid 1px #489d97;
+        margin-top: 74px;
+        height: 34px;
+        line-height: 34px;
+        color: #489d97;
+        font-size: 14px;
+        padding: 0px 19px;
+        text-align: center;
+        box-sizing: border-box;
+    }
+}
+
+.book_num_1_ul {
+    .book_num_1_li {}
+
+    .book_num_1_li_a {
+        display: block;
+        width: 100%;
+        overflow: hidden;
+        position: relative;
+    }
+
+    .book_num_1_li_tag {
+        float: left;
+        height: 22px;
+        line-height: 22px;
+        color: #999;
+        font-size: 16px;
+        margin: 23px 0px 0px 0px;
+    }
+
+    .book_num_1_li_img {
+        width: 80px;
+        height: 120px;
+        border-radius: 4px;
+        margin: 29px 25px 0px 40px;
+        display: none;
+        float: left;
+    }
+
+    .book_num_1_li_dot1 {
+        float: right;
+        border-bottom: solid 1px #E6E6E6;
+        height: 66px;
+        line-height: 66px;
+        color: #333;
+        font-size: 16px;
+        margin-top: 0px;
+        width: 400px;
+        overflow: hidden;
+        display: -webkit-box;
+        -webkit-box-orient: vertical;
+        -webkit-line-clamp: 1;
+    }
+
+    // .book_num_1_li:nth-of-type(1) .book_num_1_li_tag {
+    //     font-weight: bold;
+    //     margin-top: 38px;
+    // }
+
+    .book_num_1_li:nth-of-type(-n+3) .book_num_1_li_tag {
+        color: #489d97;
+    }
+
+    .book_num_1_li_a:hover .book_num_1_li_dot1 {
+        color: #489d97;
+    }
+
+    //鼠标移入后的效果
+    .num_active {
+        font-weight: bold;
+        margin-top: 38px;
+    }
+
+    .img_active {
+        display: block;
+    }
+
+    .text_active {
+        width: 295px;
+        border: solid 0px #111;
+        color: #333;
+        font-size: 16px;
+        line-height: 22px;
+        height: 44px;
+        font-weight: bold;
+        margin-top: 39px;
+        overflow: hidden;
+        display: -webkit-box;
+        -webkit-box-orient: vertical;
+        -webkit-line-clamp: 2;
+    }
+
+    .text_active::after {
+        content: '';
+        display: block;
+        position: absolute;
+        width: 295px;
+        height: 1px;
+        background: #E6E6E6;
+        right: 0px;
+        bottom: 13px;
+    }
+}
+
+.index_3 {
+    margin-top: 11px;
+}
+
+.index_3_left {
+    float: left;
+    width: 720px;
+}
+
+.index_3_right {
+    float: right;
+    width: 450px;
+}
+
+.book_2_img_ul {
+    margin-top: 30px;
+    height: 530px;
+}
+
+.book_2_img_li {
+    float: left;
+    width: 170px;
+    margin: 0px 13px 30px 0px;
+}
+
+.book_2_img_li_a {
+    display: block;
+    width: 170px;
+}
+
+.book_2_img_li_img {
+    display: block;
+    width: 170px;
+    height: 230px;
+}
+
+.book_2_img_li_dot1 {
+    height: 21px;
+    line-height: 21px;
+    color: #333;
+    width: 96%;
+    font-size: 18px;
+    text-align: center;
+    margin: 17px auto 0;
+}
+
+.book_2_img_li:nth-of-type(4n) {
+    margin-right: 0px;
+}
+
+.book_2_img_li_a:hover .book_2_img_li_dot1 {
+    color: #489d97;
+}
+
+.book_3_img_ul {
+    margin-top: 30px;
+    height: 156px;
+
+    .book_3_img_li {
+        float: left;
+        width: 108px;
+        margin: 0px 18px 0px;
+    }
+
+    .book_3_img_li_a {
+        display: block;
+        width: 108px;
+    }
+
+    .book_3_img_li_img {
+        display: block;
+        width: 80px;
+        height: 120px;
+        margin: 0px auto;
+    }
+
+    .book_3_img_li_dot1 {
+        height: 21px;
+        line-height: 21px;
+        text-align: center;
+        width: 108px;
+        margin: 17px auto 0px;
+        color: #333;
+        font-size: 16px;
+    }
+
+    .book_3_img_li_a:hover .book_3_img_li_dot1 {
+        color: #489d97;
+    }
+}
+
+.book_2_ul {
+    .book_2_li {
+        border-bottom: solid 1px #E6E6E6;
+        height: 68px;
+        position: relative;
+        box-sizing: border-box;
+    }
+
+    .book_2_li_a {
+        height: 68px;
+        width: 400px;
+        float: left;
+        line-height: 77px;
+        color: #333;
+        font-size: 16px;
+    }
+
+    .book_2_li_tag {
+        float: right;
+        width: 16px;
+        line-height: 16px;
+        height: 16px;
+        color: #489d97;
+        font-size: 14px;
+        background: #edf7f0;
+        margin-top: 30px;
+        text-align: center;
+    }
+
+    .book_2_li_a:hover {
+        color: #489d97;
+    }
+
+    .book_2_li_a::after {
+        content: '';
+        display: block;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        left: 0px;
+        top: 0px;
+    }
+}
+
+.banner_2 {
+    height: 90px;
+    overflow: hidden;
+    margin-top: 1px;
+
+    .banner_2_a {
+        display: block;
+        width: 1200px;
+    }
+
+    .banner_2_img {
+        display: block;
+        width: 1200px;
+    }
+}
+
+.index_4 {
+    margin-top: 11px;
+}
+
+.index_4_left {
+    float: left;
+    width: 720px;
+}
+
+.index_4_right {
+    float: right;
+    width: 450px;
+}
+
+.book_3_ul {
+    .book_3_li {
+        border-bottom: solid 1px #E6E6E6;
+        height: 68px;
+        position: relative;
+        box-sizing: border-box;
+    }
+
+    .book_3_li_a {
+        height: 68px;
+        width: 400px;
+        float: left;
+        line-height: 77px;
+        color: #333;
+        font-size: 16px;
+    }
+
+    .book_3_li_tag {
+        float: right;
+        width: 16px;
+        line-height: 16px;
+        height: 16px;
+        color: #489d97;
+        font-size: 14px;
+        background: #edf7f0;
+        margin-top: 30px;
+        text-align: center;
+    }
+
+    .book_3_li_a:hover {
+        color: #489d97;
+    }
+
+    .book_3_li_a::after {
+        content: '';
+        display: block;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        left: 0px;
+        top: 0px;
+    }
+}
+
+.book_4_img_ul {
+    margin-top: 30px;
+    height: 156px;
+
+    .book_4_img_li {
+        float: left;
+        width: 108px;
+        margin: 0px 18px 0px;
+    }
+
+    .book_4_img_li_a {
+        display: block;
+        width: 108px;
+    }
+
+    .book_4_img_li_img {
+        display: block;
+        width: 80px;
+        height: 120px;
+        margin: 0px auto;
+    }
+
+    .book_4_img_li_dot1 {
+        height: 21px;
+        line-height: 21px;
+        text-align: center;
+        width: 108px;
+        margin: 17px auto 0px;
+        color: #333;
+        font-size: 16px;
+    }
+
+    .book_4_img_li_a:hover .book_4_img_li_dot1 {
+        color: #489d97;
+    }
+
+}
+
+.book_5_img_ul {
+    margin-top: 30px;
+    height: 570px;
+
+    .book_5_img_li {
+        box-sizing: border-box;
+        background: #FBFBFB;
+        padding: 20px;
+        margin-bottom: 20px;
+    }
+
+    .book_5_img_li_a {
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+
+    .book_5_img_li_img {
+        float: left;
+        width: 100px;
+        height: 136px;
+    }
+
+    .book_5_img_li_right {
+        float: right;
+        width: 555px;
+    }
+
+    .book_5_img_li_dot2 {
+        height: 50px;
+        line-height: 25px;
+        color: #333;
+        font-size: 20px;
+        font-weight: bold;
+    }
+
+    .book_5_img_li_a:hover .book_5_img_li_dot2 {
+        color: #489d97;
+    }
+
+    .book_5_img_li_foot {
+        margin-top: 38px;
+    }
+
+    .book_5_img_li_foot_red {
+        float: left;
+        height: 21px;
+        line-height: 21px;
+        color: #E52222;
+        font-size: 16px;
+        margin: 14px 5px 0px 0px;
+    }
+
+    .book_5_img_li_foot_num {
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        color: #E52222;
+        font-size: 30px;
+        margin: 0px 10px 0px 0px;
+    }
+
+    .book_5_img_li_foot_text {
+        float: left;
+        height: 21px;
+        line-height: 21px;
+        color: #999;
+        font-size: 14px;
+        margin: 14px 0px 0px 0px;
+    }
+
+    .book_5_img_li_foot_price {
+        float: left;
+        height: 21px;
+        line-height: 21px;
+        color: #999;
+        font-size: 14px;
+        margin: 14px 0px 0px 0px;
+        position: relative;
+    }
+
+    .book_5_img_li_foot_price::after {
+        content: '';
+        display: block;
+        background: #999;
+        width: 100%;
+        height: 1px;
+        left: 0px;
+        top: 50%;
+        position: absolute;
+    }
+}
+
+@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) {}

+ 391 - 0
assets/css/shukanDetail.less

@@ -0,0 +1,391 @@
+.breadcrumb {
+    width: 100%;
+    height: 22px;
+    margin-bottom: 30px;
+    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;
+
+    .el-breadcrumb::v-deep {
+        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;
+    }
+}
+
+.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;
+}
+
+.clearfix {
+    overflow: hidden;
+}
+
+// 资讯列表
+.newsDetail {
+    width: 100%;
+    // margin-bottom: 70px;
+
+    .inner {
+        width: 1200px;
+        font-size: 16px;
+
+        .innerLeft {
+            float: right;
+            width: 900px;
+            margin-right: 0;
+            margin-left: 20px;
+
+            .disclaimer {
+                width: 900px;
+                overflow: hidden;
+                border-top: 1px solid #e6e6e6;
+                padding: 30px 0px;
+                color: #999999;
+                font-size: 17px;
+
+                p {
+                    width: 900px;
+                    line-height: 30px;
+                }
+            }
+
+            // .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;
+            // }
+
+            // .clearfix {
+            //     overflow: hidden;
+            // }
+
+            .book_son_right {
+                float: right;
+                width: 900px;
+            }
+
+            .book_son_left_head {
+                height: 69px;
+                background-image: url(@/public/index/01.png);
+            }
+
+            .book_son_left_ul {
+                margin-top: 29px;
+
+                .book_son_left_li {
+                    display: block;
+                    width: 279px;
+                    background: #FBFBFB;
+                    height: 61px;
+                    line-height: 61px;
+                    box-sizing: border-box;
+                    margin-bottom: 15px;
+                    text-align: center;
+                    color: #333;
+                    font-size: 20px;
+                    border-left: solid 5px #489d97;
+                }
+
+                .book_son_left_li_only {
+                    border: solid 1px #489d97;
+                }
+            }
+
+            /* 三农资讯网-书刊信息-详情 */
+            .book_detail_box {
+                background: #FBFBFB;
+                padding: 40px 0px;
+
+                .book_detail_img_box {
+                    float: left;
+                    width: 220px;
+                    height: 300px;
+                    margin-left: 30px;
+                    border: 1px solid #ccc;
+                }
+
+                .book_detail_img {
+                    float: left;
+                    width: 220px;
+                    height: 300px;
+                    // margin-left: 30px;
+                    border: 1px solid #ccc;
+                }
+
+                .book_detail_right {
+                    float: right;
+                    width: 600px;
+                    margin-right: 20px;
+                }
+
+                .book_detail_right_h4 {
+                    line-height: 26px;
+                    color: #333;
+                    font-size: 22px;
+                    margin-top: 11px;
+                }
+
+                .book_detail_right_title {
+                    margin-top: 22px;
+                    color: #333;
+                    font-size: 14px;
+                }
+
+                .book_detail_right_ul {
+                    margin-top: 31px;
+                }
+
+                .book_detail_right_li {
+                    float: left;
+                    min-width: 150px;
+                    margin: 0px 48px 25px 0px;
+                    display: flex;
+                }
+
+                .book_detail_right_li_label {
+                    height: 18px;
+                    line-height: 18px;
+                    color: #999;
+                    font-size: 14px;
+                }
+
+                .book_detail_right_li_text {
+                    height: 18px;
+                    line-height: 18px;
+                    color: #333;
+                    font-size: 14px;
+                    flex: 1;
+                }
+
+                .book_detail_price_box {
+                    margin-top: 9px;
+                }
+
+                .book_detail_price_red {
+                    float: left;
+                    height: 21px;
+                    line-height: 21px;
+                    color: #E52222;
+                    font-size: 16px;
+                    margin: 14px 5px 0px 0px;
+                }
+
+                .book_detail_price_box_in {
+                    float: left;
+                    min-width: 110px;
+                    height: 40px;
+                }
+
+                .book_detail_price_num {
+                    float: left;
+                    height: 40px;
+                    line-height: 40px;
+                    color: #E52222;
+                    font-size: 30px;
+                    margin: 0px 10px 0px 0px;
+                }
+
+                .book_detail_price_text {
+                    float: left;
+                    height: 21px;
+                    line-height: 21px;
+                    color: #999;
+                    font-size: 14px;
+                    margin: 14px 0px 0px 0px;
+                }
+
+                .book_detail_price_delete {
+                    float: left;
+                    height: 21px;
+                    line-height: 21px;
+                    color: #999;
+                    font-size: 14px;
+                    margin: 14px 0px 0px 0px;
+                    position: relative;
+                }
+
+                .book_detail_price_delete::after {
+                    content: '';
+                    display: block;
+                    background: #999;
+                    width: 100%;
+                    height: 1px;
+                    left: 0px;
+                    top: 50%;
+                    position: absolute;
+                }
+            }
+
+            .book_detail_head_box {
+                border-bottom: solid 1px #D9D9D9;
+
+                .book_detail_head_left {
+                    float: left;
+                }
+
+                .book_detail_head_a {
+                    float: left;
+                    height: 55px;
+                    line-height: 55px;
+                    color: #333;
+                    font-weight: bold;
+                    font-size: 22px;
+                    border-bottom: solid 3px rgba(0, 0, 0, 0);
+                    margin-right: 40px;
+                }
+
+                .book_detail_head_only {
+                    float: left;
+                    height: 55px;
+                    line-height: 55px;
+                    color: #489d97;
+                    font-weight: bold;
+                    font-size: 22px;
+                    border-bottom: solid 3px #489d97;
+                }
+            }
+
+            .book_detail_article {
+                margin-top: 30px;
+                min-height: 240px;
+                margin-bottom: 30px;
+            }
+
+            @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) {}
+
+        }
+
+
+        .innerRight {
+            width: 279px;
+
+            .rightMenuTitle {
+                width: 279px;
+                height: 69px;
+                font-size: 22px;
+                font-weight: bold;
+                line-height: 58px;
+                text-align: center;
+                color: #fff;
+                background: url("@/public/index/navtitle.png") no-repeat;
+                margin-bottom: 30px;
+
+                a {
+                    color: #fff;
+                }
+            }
+
+            ul {
+                li {
+                    a {
+                        border-left: 5px solid #489d97;
+                        margin-bottom: 15px;
+                        font-size: 22px;
+                        display: block;
+                        height: 61px;
+                        line-height: 61px;
+                        color: #333333;
+                        text-align: center;
+                        background: #FBFBFB;
+                    }
+                }
+            }
+
+            .active {
+                border-left: 0;
+                border: 1px solid #489d97;
+                background: #fff;
+            }
+        }
+    }
+}

+ 318 - 0
assets/css/shukanList.less

@@ -0,0 +1,318 @@
+.breadcrumb {
+    width: 100%;
+    height: 22px;
+    margin-bottom: 30px;
+    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;
+
+    .el-breadcrumb::v-deep {
+        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;
+    }
+}
+
+.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;
+}
+
+.clearfix {
+    overflow: hidden;
+}
+
+// 资讯列表
+.newsDetail {
+    width: 100%;
+    //height: 1400px;
+    margin-bottom: 70px;
+
+    .inner {
+        width: 1200px;
+        //height: 1400px;
+        font-size: 16px;
+
+        .innerLeft {
+            //height: 1400px;
+            float: right;
+            width: 900px;
+            margin-right: 0;
+            margin-left: 20px;
+
+            .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;
+            }
+
+            .clearfix {
+                overflow: hidden;
+            }
+
+            .book_son_right {
+                float: right;
+                width: 900px;
+                overflow: hidden;
+                min-height: 600px;
+                margin-bottom: 60px;
+            }
+
+            .book_son_left_head {
+                height: 69px;
+                // background-image: url(../public/img/18.png);
+            }
+
+            .book_son_left_ul {
+                margin-top: 29px;
+
+                .book_son_left_li {
+                    display: block;
+                    width: 279px;
+                    height: 61px;
+                    line-height: 61px;
+                    box-sizing: border-box;
+                    margin-bottom: 15px;
+                    background: #FBFBFB;
+                    border: solid 0px #fff;
+                    border-left: solid 5px #489d97;
+                    text-align: center;
+                    color: #333;
+                    font-size: 20px;
+                }
+
+                .book_son_left_li_only {
+                    border: solid 1px #489d97;
+                }
+            }
+
+            .book_son_right_ul {
+
+                .book_son_right_li {
+                    margin-bottom: 20px;
+                    position: relative;
+                }
+
+                .book_son_right_li_img {
+                    border: solid 1px #ccc;
+                    float: left;
+                    width: 140px;
+                    height: 170px;
+                }
+
+                .book_son_right_li_in {
+                    float: right;
+                    width: 741px;
+                }
+
+                .book_son_right_li_h4 {
+                    height: 24px;
+                    line-height: 24px;
+                    font-weight: bold;
+                    font-size: 18px;
+                    color: #000;
+                    margin-top: 11px;
+                }
+
+                .book_son_right_li_dot3 {
+                    height: 63px;
+                    line-height: 21px;
+                    font-size: 16px;
+                    color: #999;
+                    margin-top: 9px;
+                }
+
+                .book_son_right_li_btn {
+                    float: left;
+                    border: solid 1px #489d97;
+                    margin-top: 24px;
+                    height: 34px;
+                    line-height: 34px;
+                    color: #489d97;
+                    font-size: 14px;
+                    padding: 0px 19px;
+                    text-align: center;
+                    box-sizing: border-box;
+                }
+
+                .book_son_right_li_btn::after {
+                    content: '';
+                    display: block;
+                    width: 100%;
+                    height: 100%;
+                    left: 0px;
+                    top: 0px;
+                    position: absolute;
+                }
+
+                .book_son_right_li:hover .book_son_right_li_dot3 {
+                    color: #489d97;
+                }
+
+                .book_son_right_li:hover .book_son_right_li_h4 {
+                    color: #489d97;
+                }
+
+                .book_son_right_li:nth-last-of-type(1) {
+                    margin-bottom: 0px;
+                }
+            }
+
+        }
+
+
+        .innerRight {
+            width: 279px;
+
+            .rightMenuTitle {
+                width: 279px;
+                height: 69px;
+                font-size: 22px;
+                font-weight: bold;
+                line-height: 58px;
+                text-align: center;
+                color: #fff;
+                background: url("@/public/index/navtitle.png") no-repeat;
+                margin-bottom: 30px;
+
+                a {
+                    color: #fff;
+                }
+            }
+
+            ul {
+                li {
+                    a {
+                        border-left: 5px solid #489d97;
+                        margin-bottom: 15px;
+                        font-size: 22px;
+                        display: block;
+                        height: 61px;
+                        line-height: 61px;
+                        color: #333333;
+                        text-align: center;
+                        background: #FBFBFB;
+                    }
+                }
+            }
+
+            .active {
+                border-left: 0;
+                border: 1px solid #489d97;
+                background: #fff;
+            }
+        }
+    }
+}
+
+.pagination {
+    width: 100%;
+    height: 34px;
+    // margin-left: 141px;
+    display: flex;
+    justify-content: center;
+    margin-top: 60px;
+
+    // 鼠标移入后字体颜色
+    .el-pagination::v-deep :hover {
+        color: #489d97;
+    }
+
+    .el-pagination.is-background::v-deep .btn-next,
+    .el-pagination.is-background::v-deep .btn-prev {
+        width: 70px;
+        height: 34px;
+        margin: 0px 10px;
+        border-radius: 4px;
+    }
+
+    .el-pagination.is-background::v-deep .el-pager li {
+        margin: 0px 10px;
+        width: 38px;
+        height: 34px;
+        border-radius: 4px;
+    }
+
+    .el-pagination.is-background::v-deep .btn-next.is-active,
+    .el-pagination.is-background::v-deep .btn-prev.is-active,
+    .el-pagination.is-background::v-deep .el-pager li.is-active {
+        background-color: #489d97;
+        color: #fff;
+    }
+
+
+}

+ 11 - 8
components/home/ListSecondaryHeading.vue

@@ -6,7 +6,8 @@
             </div>
             <div class="channel_head_a_img_box back100"></div>
             <nav class="channel_nav_box clearfix">
-                <NuxtLink :to="{ path: `/${targetRoute}/${item.aLIas_pinyin}/list-1.html`}" class="channel_head_a" v-for="(item,index) in nav">{{ item.alias }}</NuxtLink>
+                <NuxtLink :to="{ path: `/${targetRoute}/${item.aLIas_pinyin}/list-1.html` }" class="channel_head_a"
+                    v-for="(item, index) in nav">{{ item.alias }}</NuxtLink>
             </nav>
         </div>
     </section>
@@ -16,16 +17,16 @@
 //1.设置组件数据 start---------------------------------------->
 //子导航
 const props = defineProps({
-    name:String,
-    nav:Array
+    name: String,
+    nav: Array
 });
 
 //获取当前url路径
 const route = useRoute();
 //获得当前的完整路径
 const fullPath = route.path;
-const segments = fullPath.split('/'); 
-const targetRoute = segments[1]; 
+const segments = fullPath.split('/');
+const targetRoute = segments[1];
 //1.设置组件数据 end---------------------------------------->
 
 </script>
@@ -36,6 +37,7 @@ const targetRoute = segments[1];
     width: 1200px;
     margin: 0 auto;
 }
+
 .channel_head_box {
     border-top-left-radius: 3px;
     border-top-right-radius: 3px;
@@ -62,11 +64,11 @@ const targetRoute = segments[1];
         border-top-left-radius: 3px;
         border-top-right-radius: 3px;
         float: left;
-        padding: 0px 6px;
+        padding: 0px 24px;
         text-align: center;
         box-sizing: border-box;
         margin: 5px 0px 5px -2px;
-        width: 101px;
+        // width: 101px;
 
         &:hover {
             color: #489D97;
@@ -114,7 +116,8 @@ const targetRoute = segments[1];
     margin: 0px 20px 0px 19px;
 }
 
-.channel_head_a:nth-of-type(1)::after,.channel_head_a:nth-of-type(11)::after  {
+.channel_head_a:nth-of-type(1)::after,
+.channel_head_a:nth-of-type(11)::after {
     content: '';
     display: none;
 }

+ 2 - 2
components/home/SecondaryHeading.vue

@@ -82,11 +82,11 @@ getPageData();
         border-top-left-radius: 3px;
         border-top-right-radius: 3px;
         float: left;
-        padding: 0px 6px;
+        padding: 0px 24px;
         text-align: center;
         box-sizing: border-box;
         margin: 5px 0px 5px -2px;
-        width: 101px;
+        // width: 101px;
 
         &:hover {
             color: #489D97;

+ 141 - 0
components/home/SecondaryHeading_shukan.vue

@@ -0,0 +1,141 @@
+<template>
+    <section class="channel_1 clearfix">
+        <div class="channel_head_box clearfix">
+            <div class="channel_head_a_name_box clearfix">
+                <a class="channel_head_a_name" href="javascript:(void)" title="title">{{ title }}</a>
+            </div>
+            <div class="channel_head_a_img_box back100"></div>
+            <nav class="channel_nav_box clearfix">
+                <NuxtLink :to="{ path: `/${item.aLIas_pinyin}/list-1.html`}" class="channel_head_a" v-for="(item,index) in titleData">{{ item.alias }}</NuxtLink>
+            </nav>
+        </div>
+    </section>
+</template>
+
+<script setup>
+//1.设置组件数据 start---------------------------------------->
+//子导航
+const props = defineProps({
+    titleData:Array,
+    pinyinid:Number
+});
+
+//获取当前url路径
+const route = useRoute();
+//获得当前的完整路径
+const fullPath = route.path;
+const segments = fullPath.split('/'); 
+const targetSegment = segments[1]; 
+//1.设置组件数据 end---------------------------------------->
+
+//2.设置组件标题 start ---------------------------------------->
+const title = ref("")
+async function getPageData() {
+    const mkdata =  await requestDataPromise('/web/getOneWebsiteCategory', {
+        method: 'GET',
+        query: {
+            'catid': props.pinyinid,
+        },
+    });
+    if(mkdata.code == 200){
+        title.value = mkdata.data.alias;
+    }else{
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+        console.log("错误位置:获取二级标题")
+        console.log("后端错误反馈:",mkdata.message)
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    }
+}
+getPageData();
+//2.设置组件标题 end ---------------------------------------->
+</script>
+
+<style lang="less" scoped>
+/*农民工网-频道页*/
+.channel_1 {
+    width: 1200px;
+    margin: 0 auto;
+}
+.channel_head_box {
+    border-top-left-radius: 3px;
+    border-top-right-radius: 3px;
+    border: solid 1px #D9D9D9;
+    margin-top: 40px;
+    box-sizing: border-box;
+    border-bottom: solid 2px #489D97;
+    background: #fafafa;
+    box-sizing: border-box;
+    display: flex;
+    align-items: center;
+
+    .channel_nav_box {
+        flex: 1;
+        padding: 9px 0px;
+    }
+
+    .channel_head_a {
+        position: relative;
+        height: 18px;
+        line-height: 18px;
+        color: #333;
+        font-size: 14px;
+        border-top-left-radius: 3px;
+        border-top-right-radius: 3px;
+        float: left;
+        padding: 0px 24px;
+        text-align: center;
+        box-sizing: border-box;
+        margin: 5px 0px 5px -2px;
+        // width: 101px;
+
+        &:hover {
+            color: #489D97;
+        }
+    }
+
+    .channel_head_a::after {
+        content: '';
+        display: block;
+        position: absolute;
+        width: 2px;
+        height: 12px;
+        background: #DBDBDB;
+        top: 3px;
+        left: -1px;
+    }
+}
+
+.channel_head_a_name_box {
+    display: flex;
+    margin-top: auto;
+}
+
+.channel_head_a_name {
+    background: #489D97;
+    font-size: 18px;
+    font-weight: bold;
+    color: #fff;
+    padding: 0px 15px;
+    position: relative;
+    height: 44px;
+    line-height: 44px;
+    font-size: 18px;
+    border-top-left-radius: 3px;
+    border-top-right-radius: 3px;
+    padding: 0px 15px;
+    text-align: center;
+}
+
+.channel_head_a_img_box {
+    width: 36px;
+    height: 34px;
+    float: left;
+    background-image: url(@/public/img/25.png);
+    margin: 0px 20px 0px 19px;
+}
+
+.channel_head_a:nth-of-type(1)::after,.channel_head_a:nth-of-type(11)::after  {
+    content: '';
+    display: none;
+}
+</style>

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

@@ -17,12 +17,9 @@
                             <el-breadcrumb-item>
                                 <NuxtLink to="/">首页</NuxtLink>
                             </el-breadcrumb-item>
-                            <el-breadcrumb-item v-if="parent_children_count > 0">
+                            <el-breadcrumb-item v-if="parent_name != ''">
                                 <NuxtLink :to="`/${parent_pinyin}/index.html`"> {{ parent_name }}</NuxtLink>
                             </el-breadcrumb-item>
-                            <el-breadcrumb-item>
-                                <NuxtLink :to="`/${parent_pinyin}/list-1.html`"> {{ parent_name }}</NuxtLink>
-                            </el-breadcrumb-item>
                             <el-breadcrumb-item>
                                 <NuxtLink :to="`list-1.html`"> {{ routLevelTitle }}</NuxtLink>
                             </el-breadcrumb-item>

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

@@ -178,7 +178,7 @@ let getSecondNav = async () => {
         query: {
             'placeid': 1,
             'pid': parent_id.value,
-            'num': 8,
+            'num': 20,
         },
     });
     console.log('listData', listData);

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

@@ -18,12 +18,9 @@
                             <el-breadcrumb-item>
                                 <NuxtLink to="/">首页</NuxtLink>
                             </el-breadcrumb-item>
-                            <el-breadcrumb-item v-if="parent_children_count > 0">
+                            <el-breadcrumb-item v-if="parent_name != ''">
                                 <NuxtLink :to="`/${parent_pinyin}/index.html`"> {{ parent_name }}</NuxtLink>
                             </el-breadcrumb-item>
-                            <el-breadcrumb-item v-else">
-                                <NuxtLink :to="`/${parent_pinyin}/list-1.html`"> {{ parent_name }}</NuxtLink>
-                            </el-breadcrumb-item>
                             <el-breadcrumb-item>{{ routeNewsTtitle }}</el-breadcrumb-item>
                         </el-breadcrumb>
                     </div>

+ 1 - 1
pages/[dir]/index.html.vue

@@ -587,7 +587,7 @@ try {
         query: {
             'placeid': 1,
             'pid': routeId,
-            'num': 8
+            'num': 20
         },
     });
     if (navigateData.code == 200) {

+ 288 - 0
pages/shukanyinxiangcheng/[dir]/[id].vue

@@ -0,0 +1,288 @@
+<template>
+    <!-- 页面头部 -->
+    <HomePageHead></HomePageHead>
+    <!-- 导航栏 -->
+    <HomePageNavigation></HomePageNavigation>
+    <!-- 列表页广告一 -->
+    <HomeTopTen :imgurl="adImg1" v-if="adImg1"></HomeTopTen>
+    <!-- 资讯列表 -->
+    <div class="newsDetail">
+        <div class="inner">
+            <div class="innerLeft">
+                <section class="book_son_right clearfix" v-if="newsDetail != ''">
+                    <div class="book_detail_box clearfix">
+                        <div class="book_detail_img_box">
+                            <img class="book_detail_img" :src="newsDetail.img_url" alt="" v-if="newsDetail.img_url">
+                        </div>
+                        <div class="book_detail_right clearfix">
+                            <h4 class="book_detail_right_h4">{{ newsDetail.title }}</h4>
+                            <div class="book_detail_right_title">现售价:</div>
+                            <div class="book_detail_price_box clearfix">
+                                <div class="book_detail_price_box_in clearfix">
+                                    <span class="book_detail_price_red">¥</span>
+                                    <span class="book_detail_price_num"
+                                        v-if="newsDetail.price == '' || newsDetail.price != 0">
+                                        {{ newsDetail.price }}
+                                    </span>
+                                </div>
+                                <span class="book_detail_price_text">市场价:</span>
+                                <span class="book_detail_price_delete"
+                                    v-if="newsDetail.market_price == '' || newsDetail.market_price != 0">
+                                    {{ newsDetail.market_price }}
+                                </span>
+                            </div>
+                            <div class="book_detail_right_ul clearfix">
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">页数:</label>
+                                    <span class="book_detail_right_li_text"
+                                        v-if="newsDetail.page == '' || newsDetail.page != 0">
+                                        {{ newsDetail.page }}
+                                    </span>
+                                </div>
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">开本:</label>
+                                    <span class="book_detail_right_li_text" v-if="newsDetail.format">
+                                        {{ newsDetail.format }}
+                                    </span>
+                                </div>
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">纸张:</label>
+                                    <span class="book_detail_right_li_text" v-if="newsDetail.paper">
+                                        {{ newsDetail.paper }}
+                                    </span>
+                                </div>
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">包装:</label>
+                                    <span class="book_detail_right_li_text" v-if="newsDetail.package">
+                                        {{ newsDetail.package }}
+                                    </span>
+                                </div>
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">出版社:</label>
+                                    <span class="book_detail_right_li_text" v-if="newsDetail.publishing_house">
+                                        {{ newsDetail.publishing_house }}
+                                    </span>
+                                </div>
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">出版时间:</label>
+                                    <span class="book_detail_right_li_text" v-if="newsDetail.publish_time">
+                                        {{ getTime(newsDetail.publish_time, 'year', 1) }}
+                                    </span>
+                                </div>
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">ISBN:</label>
+                                    <span class="book_detail_right_li_text" v-if="newsDetail.ISBN">
+                                        {{ newsDetail.ISBN }}
+                                    </span>
+                                </div>
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">国内统一刊号CN:</label>
+                                    <span class="book_detail_right_li_text" v-if="newsDetail.CN">
+                                        {{ newsDetail.CN }}
+                                    </span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="book_detail_head_box clearfix">
+                        <div class="book_detail_head_left">
+                            <a class="book_detail_head_a book_detail_head_only" href="" title="">内容简介</a>
+                        </div>
+                    </div>
+                    <!-- 内容简介 -->
+                    <article class="book_detail_article" v-html="newsDetail.detail"></article>
+                    <!-- 内容简介 -->
+                </section>
+                <!-- 免责声明: -->
+                <!-- v-if="newsDetail.copyfrom != '本网'" -->
+                <div class="disclaimer" v-if="newsDetail.source != '本网'">
+                    <p>原文链接:{{ newsDetail.source_url }}</p>
+                    <p>[免责声明]本文来源于网络转载,仅供学习交流使用,不构成商业目的。 版权归原作者所有,如涉及作品内容,版权和其他问题,请在30日与本网联系,我们将第一时间处理。</p>
+                </div>
+            </div>
+            <div class="innerRight">
+                <div class="rightMenuTitle">
+                    <NuxtLink :to="`/${parent_pinyin}/index.html`"> {{ parent_name }}</NuxtLink>
+                </div>
+                <ul>
+                    <li v-for="(item, index) in bottomMenu" :key="index">
+                        <NuxtLink :to="`/${item.pinyin}/list-1.html`" :title="item.name"
+                            v-if="item.category_id == pageId" class="active">
+                            {{ item.alias }}
+                        </NuxtLink>
+                        <NuxtLink :to="`/${item.pinyin}/list-1.html`" :title="item.name"
+                            v-else-if="item.category_id != pageId">
+                            {{ item.alias }}
+                        </NuxtLink>
+                    </li>
+                </ul>
+            </div>
+            <div style="clear: both;"></div>
+        </div>
+    </div>
+    <!-- 广告二 -->
+    <HomeTopTen :imgurl="adImg2" v-if="adImg2"></HomeTopTen>
+    <!-- 页面底部 -->
+    <HomeFoot1></HomeFoot1>
+</template>
+
+<script setup>
+//1.页面依赖 start ---------------------------------------->
+import { ref, onMounted } from 'vue';
+
+//获得跳转过来的id
+const route = useRoute();
+//获得当前的完整路径
+const fullPath = route.path;
+//拆分,取出来中间这一段,然后提取数字部分
+const segments = fullPath.split('/');
+const targetSegment = segments[2];
+const targetSegment1 = segments[1];
+//const numberPart = targetSegment.match(/\d+$/)?.[0]; 
+
+let articleId;
+let pageId;
+let routeId
+let activeId = parseInt(route.params.id);
+console.log('activeId', activeId);
+
+//通过导航路径反向查询导航id
+const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
+    method: 'GET',
+    query: {
+        'pinyin': targetSegment,
+    },
+});
+
+if (getRouteId.code == 200) {
+    articleId = getRouteId.data.id;
+    pageId = getRouteId.data.category_id;
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:通过url路径查询导航池id")
+    console.log("后端错误反馈:", getRouteId.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+
+//通过导航路径反向查询导航id
+const getRouteId1 = await requestDataPromise('/web/getWebsiteRoute', {
+    method: 'GET',
+    query: {
+        'pinyin': targetSegment1,
+    },
+});
+
+if (getRouteId1.code == 200) {
+    routeId = getRouteId1.data.category_id;
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:通过url路径查询导航池id")
+    console.log("后端错误反馈:", getRouteId1.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+
+//面包屑导航
+const parent_name = ref("");
+const parent_id = ref("");
+const parent_pinyin = ref("");
+let getParentNav = async () => {
+    const listData = await requestDataPromise('/web/getOneWebsiteCategory', {
+        method: 'GET',
+        query: {
+            'catid': routeId,
+        },
+    });
+
+    if (listData.code == 200) {
+        parent_name.value = listData.data.alias;
+        parent_id.value = listData.data.parent_id;
+        parent_pinyin.value = listData.data.aLIas_pinyin;
+
+    } else {
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+        console.log("错误位置:获取面包屑导航")
+        console.log("后端错误反馈:", listData.message)
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    }
+}
+//获得父级栏目详情
+getParentNav();
+
+//1.页面依赖 end ---------------------------------------->
+
+//2.页面数据 start ---------------------------------------->
+//广告列表
+let adImg1 = ref([]);
+let adImg2 = ref([]);
+onMounted(async () => {
+    //从客户端获取行政职能部门 加快打开速度
+    const { $webUrl, $CwebUrl } = useNuxtApp();
+    //广告1
+    let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_detail_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_detail_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];
+})
+
+//获取页面信息
+const newsDetail = ref({})
+const bottomMenu = ref([]);
+
+async function getPageMenu() {
+    const mkdata = await requestDataPromise('/web/getWebsiteBookInfo', {
+        method: 'GET',
+        query: {
+            'id': activeId,
+        },
+    });
+    bottomMenu.value = mkdata.data.category;
+    newsDetail.value = mkdata.data.books;
+}
+getPageMenu();
+//2.页面数据 end ---------------------------------------->
+
+
+//4.设置seo信息 start---------------------------------------->
+//4.1 设置seo信息
+const setData = await requestDataPromise('/web/getWebsiteFootInfo', {
+    method: 'GET',
+    query: {},
+});
+
+let seoTitle = setData.data.website_head.title;
+let seoDescription = setData.data.website_head.description;
+let seoKeywords = setData.data.website_head.keywords;
+let seoSuffix = setData.data.website_head.suffix;
+let seoName = setData.data.website_head.website_name;
+
+useSeoMeta({
+    title: seoTitle + "_" + seoSuffix,
+    meta: [
+        { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
+        { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
+    ]
+});
+//4.设置seo信息 end---------------------------------------->
+</script>
+
+<style lang="less" scoped>
+@import '@/assets/css/shukanDetail.less';
+</style>

+ 260 - 0
pages/shukanyinxiangcheng/[dir]/list-[id].vue

@@ -0,0 +1,260 @@
+<template>
+    <!-- 页面头部 -->
+    <HomePageHead></HomePageHead>
+    <!-- 导航栏 -->
+    <HomePageNavigation></HomePageNavigation>
+    <!-- 列表页广告一 -->
+    <HomeTopTen :imgurl="adImg1" v-if="adImg1"></HomeTopTen>
+    <!-- 资讯列表 -->
+    <div class="newsDetail">
+        <div class="inner">
+            <div class="innerLeft">
+                <section class="book_son_right clearfix">
+                    <div class="book_son_right_ul clearfix">
+                        <div class="book_son_right_li clearfix" v-for="(item, index) in newsDetail" :key="index">
+                            <div class="book_son_right_li_img">
+                                <img class="book_son_right_li_img" :src="item.img_url" :title="item.title"
+                                    v-if="item.img_url">
+                            </div>
+                            <div class="book_son_right_li_in clearfix">
+                                <h4 class="book_son_right_li_h4 dot1">{{ item.title }}</h4>
+                                <div class="book_son_right_li_dot3 dot3">
+                                    {{ item.description }}
+                                </div>
+                                <NuxtLink :href="`/${item.pinyin}/${item.id}.html`" class="book_son_right_li_btn"
+                                    :title="item.name">
+                                    查看详情
+                                </NuxtLink>
+                            </div>
+                        </div>
+                    </div>
+                </section>
+                <!-- 分页器 -->
+                <div class="pagination" v-if="total > 0">
+                    <el-pagination size="small" background layout="prev, pager, next" :total="total" class="mt-4"
+                        :page-size="pageSize" prev-text="上一页" next-text="下一页" @change="changePage" />
+                </div>
+            </div>
+            <div class="innerRight">
+                <div class="rightMenuTitle">
+                    <NuxtLink :to="`/${parent_pinyin}/index.html`"> {{ parent_name }}</NuxtLink>
+                </div>
+                <ul>
+                    <li v-for="(item, index) in bottomMenu" :key="index">
+                        <NuxtLink :to="`/${item.pinyin}/list-1.html`" :title="item.name"
+                            v-if="item.category_id == pageId" class="active">
+                            {{ item.alias }}
+                        </NuxtLink>
+                        <NuxtLink :to="`/${item.pinyin}/list-1.html`" :title="item.name"
+                            v-else-if="item.category_id != pageId">
+                            {{ item.alias }}
+                        </NuxtLink>
+                    </li>
+                </ul>
+            </div>
+            <div style="clear: both;"></div>
+        </div>
+    </div>
+    <!-- 广告二 -->
+    <HomeTopTen :imgurl="adImg2" v-if="adImg2"></HomeTopTen>
+    <!-- 页面底部 -->
+    <HomeFoot1></HomeFoot1>
+</template>
+
+<script setup>
+//1.页面依赖 start ---------------------------------------->
+import { ElPagination } from 'element-plus'
+import { ArrowRight } from '@element-plus/icons-vue'
+import { ref, onMounted } from 'vue';
+
+//获得跳转过来的id
+const route = useRoute();
+//获得当前的完整路径
+const fullPath = route.path;
+//拆分,取出来中间这一段,然后提取数字部分
+const segments = fullPath.split('/');
+const targetSegment = segments[2];
+const targetSegment1 = segments[1];
+
+//const numberPart = targetSegment.match(/\d+$/)?.[0]; 
+let articleId;
+let pageId;
+let routeId
+let activeId = parseInt(route.params.id);
+console.log('activeId', activeId);
+
+//通过导航路径反向查询导航id
+const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
+    method: 'GET',
+    query: {
+        'pinyin': targetSegment,
+    },
+});
+
+if (getRouteId.code == 200) {
+    articleId = getRouteId.data.id;
+    pageId = getRouteId.data.category_id;
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:通过url路径查询导航池id")
+    console.log("后端错误反馈:", getRouteId.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+
+//通过导航路径反向查询导航id
+const getRouteId1 = await requestDataPromise('/web/getWebsiteRoute', {
+    method: 'GET',
+    query: {
+        'pinyin': targetSegment1,
+    },
+});
+
+if (getRouteId1.code == 200) {
+    routeId = getRouteId1.data.category_id;
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:通过url路径查询导航池id")
+    console.log("后端错误反馈:", getRouteId1.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+
+//面包屑导航
+const parent_name = ref("");
+const parent_id = ref("");
+const parent_pinyin = ref("");
+let getParentNav = async () => {
+    const listData = await requestDataPromise('/web/getOneWebsiteCategory', {
+        method: 'GET',
+        query: {
+            'catid': routeId,
+        },
+    });
+
+    if (listData.code == 200) {
+        parent_name.value = listData.data.alias;
+        parent_id.value = listData.data.parent_id;
+        parent_pinyin.value = listData.data.aLIas_pinyin;
+
+    } else {
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+        console.log("错误位置:获取面包屑导航")
+        console.log("后端错误反馈:", listData.message)
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    }
+}
+//获得父级栏目详情
+getParentNav();
+
+//1.页面依赖 end ---------------------------------------->
+
+//2.页面数据 start ---------------------------------------->
+//广告列表
+const adList = ref([]);
+let adImg1 = ref([]);
+let adImg2 = ref([]);
+async function getAdData() {
+    const adData = await requestDataPromise('/web/getWebsiteAdvertisement', { method: 'GET', query: { 'ad_tag': 'PAGE' } });
+    adList.value = adData.data;
+    if (adData.code == 200) {
+        for (let item of adData.data) {
+            if (item.ad_tag == 'PAGE_0001') {
+                adImg1.value = item;
+            }
+            if (item.ad_tag == 'PAGE_0002') {
+                adImg2.value = item;
+            }
+        }
+    } else {
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+        console.log("错误位置:获取详情页广告列表")
+        console.log("后端错误反馈:", adData.message)
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    }
+}
+getAdData();
+
+const newsDetail = ref({})
+const bottomMenu = ref([]);
+const total = ref(0);//总条数
+const page = ref(1);//当前页码
+const pageSize = ref(10); //每页显示的条数
+
+async function getPageMenu() {
+    const mkdata = await requestDataPromise('/web/getWebsiteBookList', {
+        method: 'GET',
+        query: {
+            'id': pageId,
+            'page': page.value,
+            'pageSize': pageSize.value,
+        },
+    });
+    bottomMenu.value = mkdata.data.category;
+    newsDetail.value = mkdata.data.books;
+    total.value = mkdata.data.count;
+}
+getPageMenu();
+//2.页面数据 end ---------------------------------------->
+
+//3.分页器 start ---------------------------------------->
+//分页事件
+let changePage = (value) => {
+    console.log("当前页码", value);
+    page.value = value;
+    getPageMenu()
+}
+//3.分页器 end ---------------------------------------->
+
+//4.设置seo信息 start---------------------------------------->
+//4.1 设置seo信息
+const setData = await requestDataPromise('/web/getWebsiteFootInfo', {
+    method: 'GET',
+    query: {},
+});
+
+let seoTitle = setData.data.website_head.title;
+let seoDescription = setData.data.website_head.description;
+let seoKeywords = setData.data.website_head.keywords;
+let seoSuffix = setData.data.website_head.suffix;
+let seoName = setData.data.website_head.website_name;
+
+useSeoMeta({
+    title: seoTitle + "_" + seoSuffix,
+    meta: [
+        { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
+        { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
+    ]
+});
+//4.设置seo信息 end---------------------------------------->
+
+onMounted(async () => {
+    //从客户端获取行政职能部门 加快打开速度
+    const { $webUrl, $CwebUrl } = useNuxtApp();
+    //广告1
+    let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_list_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_list_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];
+})
+</script>
+
+<style lang="less" scoped>
+@import '@/assets/css/shukanList.less';
+</style>

+ 563 - 0
pages/shukanyinxiangcheng/index.html.vue

@@ -0,0 +1,563 @@
+<template>
+    <div class="shukan">
+        <!-- {{ routeId }} -->
+        <HomePageHead></HomePageHead>
+        <HomePageNavigation></HomePageNavigation>
+        <HomeSecondaryHeading_shukan :titleData="pageData" :pinyinid="routeId"></HomeSecondaryHeading_shukan>
+
+        <!-- 三农资讯网-书刊信息snzx_book -->
+        <main class="index_main">
+            <section class="index_2 clearfix">
+                <div class="index_2_left">
+                    <div class="book_head_box clearfix">
+                        <div class="book_head_left">
+                            <NuxtLink class="book_head_a" :href="getLinkPath(pageData[0])" v-if="pageData[0]"
+                                :title="pageData[0].alias" @mouseenter="tabsData1 = 1"
+                                :class="{ book_head_only: tabsData1 == 1 }">
+                                {{ pageData[0].alias }}
+                            </NuxtLink>
+                            <NuxtLink class="book_head_a" :href="getLinkPath(pageData[1])" v-if="pageData[1]"
+                                :title="pageData[1].alias" @mouseenter="tabsData1 = 2"
+                                :class="{ book_head_only: tabsData1 == 2 }">
+                                {{ pageData[1].alias }}
+                            </NuxtLink>
+                        </div>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[0])"
+                            v-if="pageData[0] && tabsData1 == 1" :title="pageData[0].title">
+                            栏目简介
+                        </NuxtLink>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[1])"
+                            v-if="pageData[1] && tabsData1 == 2" :title="pageData[1].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <!-- 模块1 -->
+                    <div class=" clearfix">
+                        <div class="book_1_img_ul clearfix" v-if="tabsData1 == 1">
+                            <div class="book_1_img_li" v-for="(item, index) in pageData[0].data" :key="index">
+                                <NuxtLink class="book_1_img_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                    <img class="book_1_img_li_img" :src="item.img_url" :alt="item.title">
+                                    <div class="book_1_img_li_right clearfix">
+                                        <div class="book_1_img_li_dot2 dot2">
+                                            {{ item.title }}
+                                        </div>
+                                        <div class="book_1_img_li_btn clearfix">查看详情</div>
+                                    </div>
+                                </NuxtLink>
+                            </div>
+                        </div>
+                    </div>
+                    <!-- 模块1 end -->
+                    <!-- 模块2 -->
+                    <div class=" clearfix">
+                        <div class="book_1_img_ul clearfix" v-if="tabsData1 == 2">
+                            <div class="book_1_img_li" v-for="(item, index) in pageData[1].data" :key="index">
+                                <NuxtLink class="book_1_img_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                    <img class="book_1_img_li_img" :src="item.img_url" :alt="item.title">
+                                    <div class="book_1_img_li_right clearfix">
+                                        <div class="book_1_img_li_dot2 dot2">
+                                            {{ item.title }}
+                                        </div>
+                                        <div class="book_1_img_li_btn clearfix">查看详情</div>
+                                    </div>
+                                </NuxtLink>
+                            </div>
+                        </div>
+                    </div>
+                    <!-- 模块2 end -->
+                </div>
+                <!-- 模块3 -->
+                <div class="index_2_right">
+                    <div class="book_head_box clearfix">
+                        <div class="book_head_left">
+                            <NuxtLink class="book_head_a book_head_only" :href="getLinkPath(pageData[2])"
+                                v-if="pageData[2]" :title="pageData[2].alias">
+                                {{ pageData[2].alias }}
+                            </NuxtLink>
+                        </div>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[2])" v-if="pageData[2]"
+                            :title="pageData[2].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="book_num_1_ul clearfix">
+                        <div class="book_num_1_li clearfix" v-for="(item, index) in pageData[2].data" :key="index">
+                            <NuxtLink class="book_num_1_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                <div class="book_num_1_li_tag" @mouseenter="showTabs = index + 1"
+                                    :class="{ num_active: showTabs == index + 1 }">
+                                    {{ index + 1 }}</div>
+                                <img class="book_num_1_li_img" @mouseenter="showTabs = index + 1"
+                                    :class="{ img_active: showTabs == index + 1 }" :src="item.img_url"
+                                    :alt="item.title">
+                                <div class="book_num_1_li_dot1  clearfix" @mouseenter="showTabs = index + 1"
+                                    :class="{ text_active: showTabs == index + 1 }">{{ item.title }}</div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                </div>
+                <!-- 模块3 end-->
+            </section>
+            <HomeAdvertising :imgurl="adImg1"></HomeAdvertising>
+            <section class="index_3 clearfix">
+                <div class="index_3_left clearfix">
+                    <div class="book_head_box clearfix">
+                        <div class="book_head_left">
+                            <NuxtLink class="book_head_a " :href="getLinkPath(pageData[3])" v-if="pageData[3]"
+                                :title="pageData[3].alias" @mouseenter="tabsData2 = 1"
+                                :class="{ book_head_only: tabsData2 == 1 }">
+                                {{ pageData[3].alias }}
+                            </NuxtLink>
+                            <NuxtLink class="book_head_a " :href="getLinkPath(pageData[4])" v-if="pageData[4]"
+                                :title="pageData[4].alias" @mouseenter="tabsData2 = 2"
+                                :class="{ book_head_only: tabsData2 == 2 }">
+                                {{ pageData[4].alias }}
+                            </NuxtLink>
+                        </div>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[3])"
+                            v-if="pageData[3] && tabsData2 == 1" :title="pageData[3].title">
+                            栏目简介
+                        </NuxtLink>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[4])"
+                            v-if="pageData[4] && tabsData2 == 2" :title="pageData[4].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class=" clearfix">
+                        <!-- 模块4  -->
+                        <div class="book_2_img_ul clearfix" v-if="tabsData2 == 1">
+                            <div class="book_2_img_li clearfix" v-for="(item, index) in pageData[3].data" :key="index">
+                                <NuxtLink class="book_num_1_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                    <img class="book_2_img_li_img" :src="item.img_url" title="" alt="">
+                                    <div class="book_2_img_li_dot1 dot1 clearfix">{{ item.title }}</div>
+                                </NuxtLink>
+                            </div>
+                        </div>
+                        <!-- 模块4 end  -->
+                        <!-- 模块5  -->
+                        <div class="book_2_img_ul clearfix" v-if="tabsData2 == 2">
+                            <div class="book_2_img_li clearfix" v-for="(item, index) in pageData[4].data" :key="index">
+                                <NuxtLink class="book_num_1_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                    <img class="book_2_img_li_img" :src="item.img_url" :title="item.title">
+                                    <div class="book_2_img_li_dot1 dot1 clearfix">{{ item.title }}</div>
+                                </NuxtLink>
+                            </div>
+                        </div>
+                        <!-- 模块5 end  -->
+                    </div>
+                </div>
+                <!-- 文化艺术 -->
+                <div class="index_3_right clearfix">
+                    <div class="book_head_box clearfix">
+                        <div class="book_head_left">
+                            <NuxtLink class="book_head_a book_head_only" :href="getLinkPath(pageData[5])"
+                                v-if="pageData[5]" :title="pageData[5].alias">
+                                {{ pageData[5].alias }}
+                            </NuxtLink>
+                        </div>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[5])" v-if="pageData[5]"
+                            :title="pageData[5].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="book_3_img_ul clearfix">
+                        <div class="book_3_img_li clearfix" v-for="(item, index) in pageData[5].data" :key="index">
+                            <NuxtLink class="book_3_img_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                <img class="book_3_img_li_img" :src="item.img_url" title="" alt="">
+                                <div class="book_3_img_li_dot1 dot1 clearfix">{{ item.title }}</div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                    <div class="book_2_ul clearfix">
+                        <div class="book_2_li clearfix" v-for="(item, index) in pageData[5].data2" :key="index">
+                            <NuxtLink class="book_2_li_a dot1" :href="getLinkPathDetail(item)" :title="item.title">
+                                {{ item.title }}
+                            </NuxtLink>
+                            <div class="book_2_li_tag">详</div>
+                        </div>
+                    </div>
+                </div>
+                <!-- 文化艺术 -->
+            </section>
+            <HomeAdvertising :imgurl="adImg2"></HomeAdvertising>
+            <section class="index_4 clearfix">
+                <!-- 模块7 -->
+                <div class="index_4_left clearfix">
+                    <div class="book_head_box clearfix">
+                        <div class="book_head_left">
+                            <NuxtLink class="book_head_a book_head_only" :href="getLinkPath(pageData[6])"
+                                v-if="pageData[6]" :title="pageData[6].alias">
+                                {{ pageData[6].alias }}
+                            </NuxtLink>
+                        </div>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[6])" v-if="pageData[6]"
+                            :title="pageData[6].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="book_5_img_ul clearfix">
+                        <div class="book_5_img_li clearfix" v-for="(item, index) in pageData[6].data" :key="index">
+                            <NuxtLink class="book_5_img_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                <img class="book_5_img_li_img" :src="item.img_url" :title="item.title">
+                                <div class="book_5_img_li_right clearfix">
+                                    <div class="book_5_img_li_dot2 dot2">{{ item.title }}</div>
+                                    <div class="book_5_img_li_foot clearfix">
+                                        <span class="book_5_img_li_foot_red">¥</span>
+                                        <span class="book_5_img_li_foot_num">{{ item.price }}</span>
+                                        <span class="book_5_img_li_foot_text">市场价:</span>
+                                        <span class="book_5_img_li_foot_price">¥{{ item.market_price }}</span>
+                                    </div>
+                                </div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                </div>
+                <!-- 模块7 end -->
+                <!-- 模块8 -->
+                <div class="index_4_right clearfix">
+                    <div class="book_head_box clearfix">
+                        <div class="book_head_left">
+                            <NuxtLink class="book_head_a book_head_only" :href="getLinkPath(pageData[7])"
+                                v-if="pageData[7]" :title="pageData[7].alias">
+                                {{ pageData[7].alias }}
+                            </NuxtLink>
+                        </div>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[7])" v-if="pageData[7]"
+                            :title="pageData[7].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="book_4_img_ul clearfix">
+                        <div class="book_4_img_li clearfix" v-for="(item, index) in pageData[7].data" :key="index">
+                            <NuxtLink class="book_4_img_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                <img class="book_4_img_li_img" :src="item.img_url" title="" alt="">
+                                <div class="book_4_img_li_dot1 dot1 clearfix">{{ item.title }}</div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                    <div class="book_3_ul clearfix">
+                        <div class="book_3_li clearfix" v-for="(item, index) in pageData[7].data2" :key="index">
+                            <NuxtLink class="book_3_li_a dot1" :href="getLinkPathDetail(item)" :title="item.title">
+                                {{ item.title }}
+                            </NuxtLink>
+                            <div class="book_3_li_tag">详</div>
+                        </div>
+                    </div>
+                </div>
+                <!-- 模块8 end -->
+            </section>
+        </main>
+
+        <!-- 页脚部分 -->
+        <HomeFoot1></HomeFoot1>
+    </div>
+</template>
+<script setup>
+//0.加载页面依赖 start ---------------------------------------->
+import { ref, onMounted } from 'vue';
+import { ElMessage } from 'element-plus';
+
+//格式化跳转路径 - 标题
+//首页分类栏目标题,不需要考虑外链
+const getLinkPath = (item) => {
+    //return `/${item.url}/1.html`;
+    //return `/newsList/${item.cid}?page=1`;
+    return `/${item.aLIas_pinyin}/list-1.html`;
+}
+//首页跳转到详情,这里需要考虑外链
+const getLinkPathDetail = (item) => {
+    if (item.islink == 1) {
+        return `${item.linkurl}`;
+    } else {
+        //return `/${item.aLIas_pinyin}/${item.id}`;
+        //return `/newsDetail/${item.id}`
+        return `/${item.pinyin}/${item.id}.html`;
+    }
+}
+//0.加载页面依赖 end ---------------------------------------->
+
+//1.获得路由id start ---------------------------------------->
+const route = useRoute();
+
+//获得当前的完整路径
+const fullPath = route.path;
+//拆分,取出来中间这一段,然后提取数字部分
+const segments = fullPath.split('/');
+const targetSegment = segments[1];
+//let routeId = 11 //排除路径错误可以打开这个
+//const numberPart = targetSegment.match(/\d+$/)?.[0]; 
+//let routeId = numberPart;
+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("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:通过url路径查询导航池id")
+    console.log("后端错误反馈:", getRouteId.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+//1.获得路由id end ---------------------------------------->
+
+//2.页面交互效果 start ---------------------------------------->
+//2.1 新闻图片切换
+const hoverStatus = ref(0)
+const qhPic = function (num) {
+    console.log(num)
+    hoverStatus.value = num;
+}
+
+//2.2 选项卡切换
+let showTabs = ref(1)
+// let qhtabs = function (number) {
+//     console.log(number)
+//     showTabs.value = number
+// }
+
+//2.3 展示广告
+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];
+
+})
+//2.页面交互效果 end ---------------------------------------->
+
+//3.渲染页面数据 start ---------------------------------------->
+//3.1 该页面上所有的导航池 转为动态数据
+const pageCategory = ref([]);
+//3.2 该页面上需要渲染的所有数据
+const pageData = ref([
+    // { id: 0, data: [], data2: [], title: "", cid: "" },
+    // { id: 1, data: [], title: "", cid: "" },
+    // { id: 2, data: [], title: "", cid: "" },
+    // { id: 3, data: [], title: "", cid: "" },
+    // { id: 4, data: [], title: "", cid: "" },
+    // { id: 5, data: [], title: "", cid: "" },
+    // { id: 6, data: [], title: "", cid: "" },
+    // { id: 7, data: [], title: "", cid: "" },
+    // { id: 8, data: [], title: "", cid: "" },
+    // { id: 9, data: [], title: "", cid: "" },
+    // { id: 10, data: [], title: "", cid: "" },
+    // { id: 10, data: [], title: "", cid: "" },
+    // {
+    //     id: 11,
+    //     title: "",
+    //     data: [],
+    //     data1: [],
+    //     data2: [],
+    //     data3: [],
+    //     data4: [],
+    //     category_id1: "",
+    //     category_id2: "",
+    //     category_id3: "",
+    //     category_id4: "",
+    //     title1: "",
+    //     title2: "",
+    //     title3: "",
+    //     title4: "",
+    //     cid: ""
+    // },
+    // { id: 12, data1: [], data2: [], data3: [], cid: "" },
+])
+
+const navSize = ref("");
+const tabsData1 = ref(1);
+const tabsData2 = ref(1);
+
+//3.3 获取所有导航
+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 + ",6,0" },//模块1时政书讯
+            { "parent": routeId + ",0,0", "child": pageData.value[1].cid + ",6,0" },//模块2读书读报
+            { "parent": routeId + ",0,0", "child": pageData.value[2].cid + ",8,0" },//模块3文化艺术
+            { "parent": routeId + ",0,0", "child": pageData.value[3].cid + ",8,0" },//模块4生活百科
+            { "parent": routeId + ",0,0", "child": pageData.value[4].cid + ",8,0" },//模块5养生保健
+            { "parent": routeId + ",0,0", "child": pageData.value[5].cid + ",3,6" },//模块6典集史鉴
+            { "parent": routeId + ",0,0", "child": pageData.value[6].cid + ",3,0" },//模块7党政报刊
+            { "parent": routeId + ",0,0", "child": pageData.value[7].cid + ",3,6" },//模块8涉农报刊
+        ]
+
+        let jsonString = JSON.stringify(getJson);
+        getPageAllData(jsonString);
+
+    } else {
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+        console.log("错误位置:分类页导航池")
+        console.log("后端错误反馈:", navigateData.message)
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    }
+} catch (error) {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:分类页导航渲染阶段")
+    console.log("错误:导航池渲染执行接口出错!请检查首页的14的模块的具体执行方法!")
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+
+
+async function getPageAllData(jsonString) {
+    const mkdata = await requestDataPromise('/web/getWebsiteBook', {
+        method: 'GET',
+        query: {
+            'id': jsonString
+        },
+    });
+
+    if (mkdata.code == 200) {
+        console.log(778899)
+        console.log(mkdata.data)
+        //模块1时政书讯
+        pageData.value[0].data = mkdata.data[0].child.imgnum;
+        //模块2读书读报
+        pageData.value[1].data = mkdata.data[1].child.imgnum;
+        //模块3文化艺术
+        pageData.value[2].data = mkdata.data[2].child.imgnum;
+        //模块4生活百科
+        pageData.value[3].data = mkdata.data[3].child.imgnum;
+        //模块5养生保健
+        pageData.value[4].data = mkdata.data[4].child.imgnum;
+        // 模块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.imgnum;
+        //模块8涉农报刊
+        pageData.value[7].data = mkdata.data[7].child.imgnum;
+        pageData.value[7].data2 = mkdata.data[7].child.textnum;
+
+    } else {
+        ElMessage.error(mkdata.message)
+    }
+}
+
+//3.渲染页面数据 end ---------------------------------------->
+
+//4.设置seo信息 start---------------------------------------->
+//4.1 设置seo信息
+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: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
+            { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
+        ]
+    });
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:设置分类页面SEO数据")
+    console.log("后端错误反馈:", setData.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+//4.设置seo信息 end---------------------------------------->
+</script>
+
+<style lang="less" scoped>
+@import '@/assets/css/shukan.less';
+</style>

+ 288 - 0
pages/shukanyinxiangchengnmgw/[dir]/[id].vue

@@ -0,0 +1,288 @@
+<template>
+    <!-- 页面头部 -->
+    <HomePageHead></HomePageHead>
+    <!-- 导航栏 -->
+    <HomePageNavigation></HomePageNavigation>
+    <!-- 列表页广告一 -->
+    <HomeTopTen :imgurl="adImg1" v-if="adImg1"></HomeTopTen>
+    <!-- 资讯列表 -->
+    <div class="newsDetail">
+        <div class="inner">
+            <div class="innerLeft">
+                <section class="book_son_right clearfix" v-if="newsDetail != ''">
+                    <div class="book_detail_box clearfix">
+                        <div class="book_detail_img_box">
+                            <img class="book_detail_img" :src="newsDetail.img_url" alt="" v-if="newsDetail.img_url">
+                        </div>
+                        <div class="book_detail_right clearfix">
+                            <h4 class="book_detail_right_h4">{{ newsDetail.title }}</h4>
+                            <div class="book_detail_right_title">现售价:</div>
+                            <div class="book_detail_price_box clearfix">
+                                <div class="book_detail_price_box_in clearfix">
+                                    <span class="book_detail_price_red">¥</span>
+                                    <span class="book_detail_price_num"
+                                        v-if="newsDetail.price == '' || newsDetail.price != 0">
+                                        {{ newsDetail.price }}
+                                    </span>
+                                </div>
+                                <span class="book_detail_price_text">市场价:</span>
+                                <span class="book_detail_price_delete"
+                                    v-if="newsDetail.market_price == '' || newsDetail.market_price != 0">
+                                    {{ newsDetail.market_price }}
+                                </span>
+                            </div>
+                            <div class="book_detail_right_ul clearfix">
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">页数:</label>
+                                    <span class="book_detail_right_li_text"
+                                        v-if="newsDetail.page == '' || newsDetail.page != 0">
+                                        {{ newsDetail.page }}
+                                    </span>
+                                </div>
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">开本:</label>
+                                    <span class="book_detail_right_li_text" v-if="newsDetail.format">
+                                        {{ newsDetail.format }}
+                                    </span>
+                                </div>
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">纸张:</label>
+                                    <span class="book_detail_right_li_text" v-if="newsDetail.paper">
+                                        {{ newsDetail.paper }}
+                                    </span>
+                                </div>
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">包装:</label>
+                                    <span class="book_detail_right_li_text" v-if="newsDetail.package">
+                                        {{ newsDetail.package }}
+                                    </span>
+                                </div>
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">出版社:</label>
+                                    <span class="book_detail_right_li_text" v-if="newsDetail.publishing_house">
+                                        {{ newsDetail.publishing_house }}
+                                    </span>
+                                </div>
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">出版时间:</label>
+                                    <span class="book_detail_right_li_text" v-if="newsDetail.publish_time">
+                                        {{ getTime(newsDetail.publish_time, 'year', 1) }}
+                                    </span>
+                                </div>
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">ISBN:</label>
+                                    <span class="book_detail_right_li_text" v-if="newsDetail.ISBN">
+                                        {{ newsDetail.ISBN }}
+                                    </span>
+                                </div>
+                                <div class="book_detail_right_li clearfix">
+                                    <label class="book_detail_right_li_label">国内统一刊号CN:</label>
+                                    <span class="book_detail_right_li_text" v-if="newsDetail.CN">
+                                        {{ newsDetail.CN }}
+                                    </span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="book_detail_head_box clearfix">
+                        <div class="book_detail_head_left">
+                            <a class="book_detail_head_a book_detail_head_only" href="" title="">内容简介</a>
+                        </div>
+                    </div>
+                    <!-- 内容简介 -->
+                    <article class="book_detail_article" v-html="newsDetail.detail"></article>
+                    <!-- 内容简介 -->
+                </section>
+                <!-- 免责声明: -->
+                <!-- v-if="newsDetail.copyfrom != '本网'" -->
+                <div class="disclaimer" v-if="newsDetail.source != '本网'">
+                    <p>原文链接:{{ newsDetail.source_url }}</p>
+                    <p>[免责声明]本文来源于网络转载,仅供学习交流使用,不构成商业目的。 版权归原作者所有,如涉及作品内容,版权和其他问题,请在30日与本网联系,我们将第一时间处理。</p>
+                </div>
+            </div>
+            <div class="innerRight">
+                <div class="rightMenuTitle">
+                    <NuxtLink :to="`/${parent_pinyin}/index.html`"> {{ parent_name }}</NuxtLink>
+                </div>
+                <ul>
+                    <li v-for="(item, index) in bottomMenu" :key="index">
+                        <NuxtLink :to="`/${item.pinyin}/list-1.html`" :title="item.name"
+                            v-if="item.category_id == pageId" class="active">
+                            {{ item.alias }}
+                        </NuxtLink>
+                        <NuxtLink :to="`/${item.pinyin}/list-1.html`" :title="item.name"
+                            v-else-if="item.category_id != pageId">
+                            {{ item.alias }}
+                        </NuxtLink>
+                    </li>
+                </ul>
+            </div>
+            <div style="clear: both;"></div>
+        </div>
+    </div>
+    <!-- 广告二 -->
+    <HomeTopTen :imgurl="adImg2" v-if="adImg2"></HomeTopTen>
+    <!-- 页面底部 -->
+    <HomeFoot1></HomeFoot1>
+</template>
+
+<script setup>
+//1.页面依赖 start ---------------------------------------->
+import { ref, onMounted } from 'vue';
+
+//获得跳转过来的id
+const route = useRoute();
+//获得当前的完整路径
+const fullPath = route.path;
+//拆分,取出来中间这一段,然后提取数字部分
+const segments = fullPath.split('/');
+const targetSegment = segments[2];
+const targetSegment1 = segments[1];
+//const numberPart = targetSegment.match(/\d+$/)?.[0]; 
+
+let articleId;
+let pageId;
+let routeId
+let activeId = parseInt(route.params.id);
+console.log('activeId', activeId);
+
+//通过导航路径反向查询导航id
+const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
+    method: 'GET',
+    query: {
+        'pinyin': targetSegment,
+    },
+});
+
+if (getRouteId.code == 200) {
+    articleId = getRouteId.data.id;
+    pageId = getRouteId.data.category_id;
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:通过url路径查询导航池id")
+    console.log("后端错误反馈:", getRouteId.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+
+//通过导航路径反向查询导航id
+const getRouteId1 = await requestDataPromise('/web/getWebsiteRoute', {
+    method: 'GET',
+    query: {
+        'pinyin': targetSegment1,
+    },
+});
+
+if (getRouteId1.code == 200) {
+    routeId = getRouteId1.data.category_id;
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:通过url路径查询导航池id")
+    console.log("后端错误反馈:", getRouteId1.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+
+//面包屑导航
+const parent_name = ref("");
+const parent_id = ref("");
+const parent_pinyin = ref("");
+let getParentNav = async () => {
+    const listData = await requestDataPromise('/web/getOneWebsiteCategory', {
+        method: 'GET',
+        query: {
+            'catid': routeId,
+        },
+    });
+
+    if (listData.code == 200) {
+        parent_name.value = listData.data.alias;
+        parent_id.value = listData.data.parent_id;
+        parent_pinyin.value = listData.data.aLIas_pinyin;
+
+    } else {
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+        console.log("错误位置:获取面包屑导航")
+        console.log("后端错误反馈:", listData.message)
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    }
+}
+//获得父级栏目详情
+getParentNav();
+
+//1.页面依赖 end ---------------------------------------->
+
+//2.页面数据 start ---------------------------------------->
+//广告列表
+let adImg1 = ref([]);
+let adImg2 = ref([]);
+onMounted(async () => {
+    //从客户端获取行政职能部门 加快打开速度
+    const { $webUrl, $CwebUrl } = useNuxtApp();
+    //广告1
+    let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_detail_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=nmgw_detail_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];
+})
+
+//获取页面信息
+const newsDetail = ref({})
+const bottomMenu = ref([]);
+
+async function getPageMenu() {
+    const mkdata = await requestDataPromise('/web/getWebsiteBookInfo', {
+        method: 'GET',
+        query: {
+            'id': activeId,
+        },
+    });
+    bottomMenu.value = mkdata.data.category;
+    newsDetail.value = mkdata.data.books;
+}
+getPageMenu();
+//2.页面数据 end ---------------------------------------->
+
+
+//4.设置seo信息 start---------------------------------------->
+//4.1 设置seo信息
+const setData = await requestDataPromise('/web/getWebsiteFootInfo', {
+    method: 'GET',
+    query: {},
+});
+
+let seoTitle = setData.data.website_head.title;
+let seoDescription = setData.data.website_head.description;
+let seoKeywords = setData.data.website_head.keywords;
+let seoSuffix = setData.data.website_head.suffix;
+let seoName = setData.data.website_head.website_name;
+
+useSeoMeta({
+    title: seoTitle + "_" + seoSuffix,
+    meta: [
+        { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
+        { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
+    ]
+});
+//4.设置seo信息 end---------------------------------------->
+</script>
+
+<style lang="less" scoped>
+@import '@/assets/css/shukanDetail.less';
+</style>

+ 260 - 0
pages/shukanyinxiangchengnmgw/[dir]/list-[id].vue

@@ -0,0 +1,260 @@
+<template>
+    <!-- 页面头部 -->
+    <HomePageHead></HomePageHead>
+    <!-- 导航栏 -->
+    <HomePageNavigation></HomePageNavigation>
+    <!-- 列表页广告一 -->
+    <HomeTopTen :imgurl="adImg1" v-if="adImg1"></HomeTopTen>
+    <!-- 资讯列表 -->
+    <div class="newsDetail">
+        <div class="inner">
+            <div class="innerLeft">
+                <section class="book_son_right clearfix">
+                    <div class="book_son_right_ul clearfix">
+                        <div class="book_son_right_li clearfix" v-for="(item, index) in newsDetail" :key="index">
+                            <div class="book_son_right_li_img">
+                                <img class="book_son_right_li_img" :src="item.img_url" :title="item.title"
+                                    v-if="item.img_url">
+                            </div>
+                            <div class="book_son_right_li_in clearfix">
+                                <h4 class="book_son_right_li_h4 dot1">{{ item.title }}</h4>
+                                <div class="book_son_right_li_dot3 dot3">
+                                    {{ item.description }}
+                                </div>
+                                <NuxtLink :href="`/${item.pinyin}/${item.id}.html`" class="book_son_right_li_btn"
+                                    :title="item.name">
+                                    查看详情
+                                </NuxtLink>
+                            </div>
+                        </div>
+                    </div>
+                </section>
+                <!-- 分页器 -->
+                <div class="pagination" v-if="total > 0">
+                    <el-pagination size="small" background layout="prev, pager, next" :total="total" class="mt-4"
+                        :page-size="pageSize" prev-text="上一页" next-text="下一页" @change="changePage" />
+                </div>
+            </div>
+            <div class="innerRight">
+                <div class="rightMenuTitle">
+                    <NuxtLink :to="`/${parent_pinyin}/index.html`"> {{ parent_name }}</NuxtLink>
+                </div>
+                <ul>
+                    <li v-for="(item, index) in bottomMenu" :key="index">
+                        <NuxtLink :to="`/${item.pinyin}/list-1.html`" :title="item.name"
+                            v-if="item.category_id == pageId" class="active">
+                            {{ item.alias }}
+                        </NuxtLink>
+                        <NuxtLink :to="`/${item.pinyin}/list-1.html`" :title="item.name"
+                            v-else-if="item.category_id != pageId">
+                            {{ item.alias }}
+                        </NuxtLink>
+                    </li>
+                </ul>
+            </div>
+            <div style="clear: both;"></div>
+        </div>
+    </div>
+    <!-- 广告二 -->
+    <HomeTopTen :imgurl="adImg2" v-if="adImg2"></HomeTopTen>
+    <!-- 页面底部 -->
+    <HomeFoot1></HomeFoot1>
+</template>
+
+<script setup>
+//1.页面依赖 start ---------------------------------------->
+import { ElPagination } from 'element-plus'
+import { ArrowRight } from '@element-plus/icons-vue'
+import { ref, onMounted } from 'vue';
+
+//获得跳转过来的id
+const route = useRoute();
+//获得当前的完整路径
+const fullPath = route.path;
+//拆分,取出来中间这一段,然后提取数字部分
+const segments = fullPath.split('/');
+const targetSegment = segments[2];
+const targetSegment1 = segments[1];
+
+//const numberPart = targetSegment.match(/\d+$/)?.[0]; 
+let articleId;
+let pageId;
+let routeId
+let activeId = parseInt(route.params.id);
+console.log('activeId', activeId);
+
+//通过导航路径反向查询导航id
+const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
+    method: 'GET',
+    query: {
+        'pinyin': targetSegment,
+    },
+});
+
+if (getRouteId.code == 200) {
+    articleId = getRouteId.data.id;
+    pageId = getRouteId.data.category_id;
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:通过url路径查询导航池id")
+    console.log("后端错误反馈:", getRouteId.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+
+//通过导航路径反向查询导航id
+const getRouteId1 = await requestDataPromise('/web/getWebsiteRoute', {
+    method: 'GET',
+    query: {
+        'pinyin': targetSegment1,
+    },
+});
+
+if (getRouteId1.code == 200) {
+    routeId = getRouteId1.data.category_id;
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:通过url路径查询导航池id")
+    console.log("后端错误反馈:", getRouteId1.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+
+//面包屑导航
+const parent_name = ref("");
+const parent_id = ref("");
+const parent_pinyin = ref("");
+let getParentNav = async () => {
+    const listData = await requestDataPromise('/web/getOneWebsiteCategory', {
+        method: 'GET',
+        query: {
+            'catid': routeId,
+        },
+    });
+
+    if (listData.code == 200) {
+        parent_name.value = listData.data.alias;
+        parent_id.value = listData.data.parent_id;
+        parent_pinyin.value = listData.data.aLIas_pinyin;
+
+    } else {
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+        console.log("错误位置:获取面包屑导航")
+        console.log("后端错误反馈:", listData.message)
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    }
+}
+//获得父级栏目详情
+getParentNav();
+
+//1.页面依赖 end ---------------------------------------->
+
+//2.页面数据 start ---------------------------------------->
+//广告列表
+const adList = ref([]);
+let adImg1 = ref([]);
+let adImg2 = ref([]);
+async function getAdData() {
+    const adData = await requestDataPromise('/web/getWebsiteAdvertisement', { method: 'GET', query: { 'ad_tag': 'PAGE' } });
+    adList.value = adData.data;
+    if (adData.code == 200) {
+        for (let item of adData.data) {
+            if (item.ad_tag == 'PAGE_0001') {
+                adImg1.value = item;
+            }
+            if (item.ad_tag == 'PAGE_0002') {
+                adImg2.value = item;
+            }
+        }
+    } else {
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+        console.log("错误位置:获取详情页广告列表")
+        console.log("后端错误反馈:", adData.message)
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    }
+}
+getAdData();
+
+const newsDetail = ref({})
+const bottomMenu = ref([]);
+const total = ref(0);//总条数
+const page = ref(1);//当前页码
+const pageSize = ref(10); //每页显示的条数
+
+async function getPageMenu() {
+    const mkdata = await requestDataPromise('/web/getWebsiteBookList', {
+        method: 'GET',
+        query: {
+            'id': pageId,
+            'page': page.value,
+            'pageSize': pageSize.value,
+        },
+    });
+    bottomMenu.value = mkdata.data.category;
+    newsDetail.value = mkdata.data.books;
+    total.value = mkdata.data.count;
+}
+getPageMenu();
+//2.页面数据 end ---------------------------------------->
+
+//3.分页器 start ---------------------------------------->
+//分页事件
+let changePage = (value) => {
+    console.log("当前页码", value);
+    page.value = value;
+    getPageMenu()
+}
+//3.分页器 end ---------------------------------------->
+
+//4.设置seo信息 start---------------------------------------->
+//4.1 设置seo信息
+const setData = await requestDataPromise('/web/getWebsiteFootInfo', {
+    method: 'GET',
+    query: {},
+});
+
+let seoTitle = setData.data.website_head.title;
+let seoDescription = setData.data.website_head.description;
+let seoKeywords = setData.data.website_head.keywords;
+let seoSuffix = setData.data.website_head.suffix;
+let seoName = setData.data.website_head.website_name;
+
+useSeoMeta({
+    title: seoTitle + "_" + seoSuffix,
+    meta: [
+        { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
+        { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
+    ]
+});
+//4.设置seo信息 end---------------------------------------->
+
+onMounted(async () => {
+    //从客户端获取行政职能部门 加快打开速度
+    const { $webUrl, $CwebUrl } = useNuxtApp();
+    //广告1
+    let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_list_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=nmgw_list_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];
+})
+</script>
+
+<style lang="less" scoped>
+@import '@/assets/css/shukanList.less';
+</style>

+ 563 - 0
pages/shukanyinxiangchengnmgw/index.html.vue

@@ -0,0 +1,563 @@
+<template>
+    <div class="shukan">
+        <!-- {{ routeId }} -->
+        <HomePageHead></HomePageHead>
+        <HomePageNavigation></HomePageNavigation>
+        <HomeSecondaryHeading_shukan :titleData="pageData" :pinyinid="routeId"></HomeSecondaryHeading_shukan>
+
+        <!-- 三农资讯网-书刊信息snzx_book -->
+        <main class="index_main">
+            <section class="index_2 clearfix">
+                <div class="index_2_left">
+                    <div class="book_head_box clearfix">
+                        <div class="book_head_left">
+                            <NuxtLink class="book_head_a" :href="getLinkPath(pageData[0])" v-if="pageData[0]"
+                                :title="pageData[0].alias" @mouseenter="tabsData1 = 1"
+                                :class="{ book_head_only: tabsData1 == 1 }">
+                                {{ pageData[0].alias }}
+                            </NuxtLink>
+                            <NuxtLink class="book_head_a" :href="getLinkPath(pageData[1])" v-if="pageData[1]"
+                                :title="pageData[1].alias" @mouseenter="tabsData1 = 2"
+                                :class="{ book_head_only: tabsData1 == 2 }">
+                                {{ pageData[1].alias }}
+                            </NuxtLink>
+                        </div>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[0])"
+                            v-if="pageData[0] && tabsData1 == 1" :title="pageData[0].title">
+                            栏目简介
+                        </NuxtLink>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[1])"
+                            v-if="pageData[1] && tabsData1 == 2" :title="pageData[1].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <!-- 模块1 -->
+                    <div class=" clearfix">
+                        <div class="book_1_img_ul clearfix" v-if="tabsData1 == 1">
+                            <div class="book_1_img_li" v-for="(item, index) in pageData[0].data" :key="index">
+                                <NuxtLink class="book_1_img_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                    <img class="book_1_img_li_img" :src="item.img_url" :alt="item.title">
+                                    <div class="book_1_img_li_right clearfix">
+                                        <div class="book_1_img_li_dot2 dot2">
+                                            {{ item.title }}
+                                        </div>
+                                        <div class="book_1_img_li_btn clearfix">查看详情</div>
+                                    </div>
+                                </NuxtLink>
+                            </div>
+                        </div>
+                    </div>
+                    <!-- 模块1 end -->
+                    <!-- 模块2 -->
+                    <div class=" clearfix">
+                        <div class="book_1_img_ul clearfix" v-if="tabsData1 == 2">
+                            <div class="book_1_img_li" v-for="(item, index) in pageData[1].data" :key="index">
+                                <NuxtLink class="book_1_img_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                    <img class="book_1_img_li_img" :src="item.img_url" :alt="item.title">
+                                    <div class="book_1_img_li_right clearfix">
+                                        <div class="book_1_img_li_dot2 dot2">
+                                            {{ item.title }}
+                                        </div>
+                                        <div class="book_1_img_li_btn clearfix">查看详情</div>
+                                    </div>
+                                </NuxtLink>
+                            </div>
+                        </div>
+                    </div>
+                    <!-- 模块2 end -->
+                </div>
+                <!-- 模块3 -->
+                <div class="index_2_right">
+                    <div class="book_head_box clearfix">
+                        <div class="book_head_left">
+                            <NuxtLink class="book_head_a book_head_only" :href="getLinkPath(pageData[2])"
+                                v-if="pageData[2]" :title="pageData[2].alias">
+                                {{ pageData[2].alias }}
+                            </NuxtLink>
+                        </div>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[2])" v-if="pageData[2]"
+                            :title="pageData[2].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="book_num_1_ul clearfix">
+                        <div class="book_num_1_li clearfix" v-for="(item, index) in pageData[2].data" :key="index">
+                            <NuxtLink class="book_num_1_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                <div class="book_num_1_li_tag" @mouseenter="showTabs = index + 1"
+                                    :class="{ num_active: showTabs == index + 1 }">
+                                    {{ index + 1 }}</div>
+                                <img class="book_num_1_li_img" @mouseenter="showTabs = index + 1"
+                                    :class="{ img_active: showTabs == index + 1 }" :src="item.img_url"
+                                    :alt="item.title">
+                                <div class="book_num_1_li_dot1  clearfix" @mouseenter="showTabs = index + 1"
+                                    :class="{ text_active: showTabs == index + 1 }">{{ item.title }}</div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                </div>
+                <!-- 模块3 end-->
+            </section>
+            <HomeAdvertising :imgurl="adImg1"></HomeAdvertising>
+            <section class="index_3 clearfix">
+                <div class="index_3_left clearfix">
+                    <div class="book_head_box clearfix">
+                        <div class="book_head_left">
+                            <NuxtLink class="book_head_a " :href="getLinkPath(pageData[3])" v-if="pageData[3]"
+                                :title="pageData[3].alias" @mouseenter="tabsData2 = 1"
+                                :class="{ book_head_only: tabsData2 == 1 }">
+                                {{ pageData[3].alias }}
+                            </NuxtLink>
+                            <NuxtLink class="book_head_a " :href="getLinkPath(pageData[4])" v-if="pageData[4]"
+                                :title="pageData[4].alias" @mouseenter="tabsData2 = 2"
+                                :class="{ book_head_only: tabsData2 == 2 }">
+                                {{ pageData[4].alias }}
+                            </NuxtLink>
+                        </div>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[3])"
+                            v-if="pageData[3] && tabsData2 == 1" :title="pageData[3].title">
+                            栏目简介
+                        </NuxtLink>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[4])"
+                            v-if="pageData[4] && tabsData2 == 2" :title="pageData[4].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class=" clearfix">
+                        <!-- 模块4  -->
+                        <div class="book_2_img_ul clearfix" v-if="tabsData2 == 1">
+                            <div class="book_2_img_li clearfix" v-for="(item, index) in pageData[3].data" :key="index">
+                                <NuxtLink class="book_num_1_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                    <img class="book_2_img_li_img" :src="item.img_url" title="" alt="">
+                                    <div class="book_2_img_li_dot1 dot1 clearfix">{{ item.title }}</div>
+                                </NuxtLink>
+                            </div>
+                        </div>
+                        <!-- 模块4 end  -->
+                        <!-- 模块5  -->
+                        <div class="book_2_img_ul clearfix" v-if="tabsData2 == 2">
+                            <div class="book_2_img_li clearfix" v-for="(item, index) in pageData[4].data" :key="index">
+                                <NuxtLink class="book_num_1_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                    <img class="book_2_img_li_img" :src="item.img_url" :title="item.title">
+                                    <div class="book_2_img_li_dot1 dot1 clearfix">{{ item.title }}</div>
+                                </NuxtLink>
+                            </div>
+                        </div>
+                        <!-- 模块5 end  -->
+                    </div>
+                </div>
+                <!-- 文化艺术 -->
+                <div class="index_3_right clearfix">
+                    <div class="book_head_box clearfix">
+                        <div class="book_head_left">
+                            <NuxtLink class="book_head_a book_head_only" :href="getLinkPath(pageData[5])"
+                                v-if="pageData[5]" :title="pageData[5].alias">
+                                {{ pageData[5].alias }}
+                            </NuxtLink>
+                        </div>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[5])" v-if="pageData[5]"
+                            :title="pageData[5].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="book_3_img_ul clearfix">
+                        <div class="book_3_img_li clearfix" v-for="(item, index) in pageData[5].data" :key="index">
+                            <NuxtLink class="book_3_img_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                <img class="book_3_img_li_img" :src="item.img_url" title="" alt="">
+                                <div class="book_3_img_li_dot1 dot1 clearfix">{{ item.title }}</div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                    <div class="book_2_ul clearfix">
+                        <div class="book_2_li clearfix" v-for="(item, index) in pageData[5].data2" :key="index">
+                            <NuxtLink class="book_2_li_a dot1" :href="getLinkPathDetail(item)" :title="item.title">
+                                {{ item.title }}
+                            </NuxtLink>
+                            <div class="book_2_li_tag">详</div>
+                        </div>
+                    </div>
+                </div>
+                <!-- 文化艺术 -->
+            </section>
+            <HomeAdvertising :imgurl="adImg2"></HomeAdvertising>
+            <section class="index_4 clearfix">
+                <!-- 模块7 -->
+                <div class="index_4_left clearfix">
+                    <div class="book_head_box clearfix">
+                        <div class="book_head_left">
+                            <NuxtLink class="book_head_a book_head_only" :href="getLinkPath(pageData[6])"
+                                v-if="pageData[6]" :title="pageData[6].alias">
+                                {{ pageData[6].alias }}
+                            </NuxtLink>
+                        </div>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[6])" v-if="pageData[6]"
+                            :title="pageData[6].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="book_5_img_ul clearfix">
+                        <div class="book_5_img_li clearfix" v-for="(item, index) in pageData[6].data" :key="index">
+                            <NuxtLink class="book_5_img_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                <img class="book_5_img_li_img" :src="item.img_url" :title="item.title">
+                                <div class="book_5_img_li_right clearfix">
+                                    <div class="book_5_img_li_dot2 dot2">{{ item.title }}</div>
+                                    <div class="book_5_img_li_foot clearfix">
+                                        <span class="book_5_img_li_foot_red">¥</span>
+                                        <span class="book_5_img_li_foot_num">{{ item.price }}</span>
+                                        <span class="book_5_img_li_foot_text">市场价:</span>
+                                        <span class="book_5_img_li_foot_price">¥{{ item.market_price }}</span>
+                                    </div>
+                                </div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                </div>
+                <!-- 模块7 end -->
+                <!-- 模块8 -->
+                <div class="index_4_right clearfix">
+                    <div class="book_head_box clearfix">
+                        <div class="book_head_left">
+                            <NuxtLink class="book_head_a book_head_only" :href="getLinkPath(pageData[7])"
+                                v-if="pageData[7]" :title="pageData[7].alias">
+                                {{ pageData[7].alias }}
+                            </NuxtLink>
+                        </div>
+                        <NuxtLink class="book_head_a_more" :href="getLinkPath(pageData[7])" v-if="pageData[7]"
+                            :title="pageData[7].title">
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="book_4_img_ul clearfix">
+                        <div class="book_4_img_li clearfix" v-for="(item, index) in pageData[7].data" :key="index">
+                            <NuxtLink class="book_4_img_li_a" :href="getLinkPathDetail(item)" :title="item.title">
+                                <img class="book_4_img_li_img" :src="item.img_url" title="" alt="">
+                                <div class="book_4_img_li_dot1 dot1 clearfix">{{ item.title }}</div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                    <div class="book_3_ul clearfix">
+                        <div class="book_3_li clearfix" v-for="(item, index) in pageData[7].data2" :key="index">
+                            <NuxtLink class="book_3_li_a dot1" :href="getLinkPathDetail(item)" :title="item.title">
+                                {{ item.title }}
+                            </NuxtLink>
+                            <div class="book_3_li_tag">详</div>
+                        </div>
+                    </div>
+                </div>
+                <!-- 模块8 end -->
+            </section>
+        </main>
+
+        <!-- 页脚部分 -->
+        <HomeFoot1></HomeFoot1>
+    </div>
+</template>
+<script setup>
+//0.加载页面依赖 start ---------------------------------------->
+import { ref, onMounted } from 'vue';
+import { ElMessage } from 'element-plus';
+
+//格式化跳转路径 - 标题
+//首页分类栏目标题,不需要考虑外链
+const getLinkPath = (item) => {
+    //return `/${item.url}/1.html`;
+    //return `/newsList/${item.cid}?page=1`;
+    return `/${item.aLIas_pinyin}/list-1.html`;
+}
+//首页跳转到详情,这里需要考虑外链
+const getLinkPathDetail = (item) => {
+    if (item.islink == 1) {
+        return `${item.linkurl}`;
+    } else {
+        //return `/${item.aLIas_pinyin}/${item.id}`;
+        //return `/newsDetail/${item.id}`
+        return `/${item.pinyin}/${item.id}.html`;
+    }
+}
+//0.加载页面依赖 end ---------------------------------------->
+
+//1.获得路由id start ---------------------------------------->
+const route = useRoute();
+
+//获得当前的完整路径
+const fullPath = route.path;
+//拆分,取出来中间这一段,然后提取数字部分
+const segments = fullPath.split('/');
+const targetSegment = segments[1];
+//let routeId = 11 //排除路径错误可以打开这个
+//const numberPart = targetSegment.match(/\d+$/)?.[0]; 
+//let routeId = numberPart;
+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("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:通过url路径查询导航池id")
+    console.log("后端错误反馈:", getRouteId.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+//1.获得路由id end ---------------------------------------->
+
+//2.页面交互效果 start ---------------------------------------->
+//2.1 新闻图片切换
+const hoverStatus = ref(0)
+const qhPic = function (num) {
+    console.log(num)
+    hoverStatus.value = num;
+}
+
+//2.2 选项卡切换
+let showTabs = ref(1)
+// let qhtabs = function (number) {
+//     console.log(number)
+//     showTabs.value = number
+// }
+
+//2.3 展示广告
+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=nmgw_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=nmgw_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=nmgw_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=nmgw_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];
+
+})
+//2.页面交互效果 end ---------------------------------------->
+
+//3.渲染页面数据 start ---------------------------------------->
+//3.1 该页面上所有的导航池 转为动态数据
+const pageCategory = ref([]);
+//3.2 该页面上需要渲染的所有数据
+const pageData = ref([
+    // { id: 0, data: [], data2: [], title: "", cid: "" },
+    // { id: 1, data: [], title: "", cid: "" },
+    // { id: 2, data: [], title: "", cid: "" },
+    // { id: 3, data: [], title: "", cid: "" },
+    // { id: 4, data: [], title: "", cid: "" },
+    // { id: 5, data: [], title: "", cid: "" },
+    // { id: 6, data: [], title: "", cid: "" },
+    // { id: 7, data: [], title: "", cid: "" },
+    // { id: 8, data: [], title: "", cid: "" },
+    // { id: 9, data: [], title: "", cid: "" },
+    // { id: 10, data: [], title: "", cid: "" },
+    // { id: 10, data: [], title: "", cid: "" },
+    // {
+    //     id: 11,
+    //     title: "",
+    //     data: [],
+    //     data1: [],
+    //     data2: [],
+    //     data3: [],
+    //     data4: [],
+    //     category_id1: "",
+    //     category_id2: "",
+    //     category_id3: "",
+    //     category_id4: "",
+    //     title1: "",
+    //     title2: "",
+    //     title3: "",
+    //     title4: "",
+    //     cid: ""
+    // },
+    // { id: 12, data1: [], data2: [], data3: [], cid: "" },
+])
+
+const navSize = ref("");
+const tabsData1 = ref(1);
+const tabsData2 = ref(1);
+
+//3.3 获取所有导航
+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 + ",6,0" },//模块1时政书讯
+            { "parent": routeId + ",0,0", "child": pageData.value[1].cid + ",6,0" },//模块2读书读报
+            { "parent": routeId + ",0,0", "child": pageData.value[2].cid + ",8,0" },//模块3文化艺术
+            { "parent": routeId + ",0,0", "child": pageData.value[3].cid + ",8,0" },//模块4生活百科
+            { "parent": routeId + ",0,0", "child": pageData.value[4].cid + ",8,0" },//模块5养生保健
+            { "parent": routeId + ",0,0", "child": pageData.value[5].cid + ",3,6" },//模块6典集史鉴
+            { "parent": routeId + ",0,0", "child": pageData.value[6].cid + ",3,0" },//模块7党政报刊
+            { "parent": routeId + ",0,0", "child": pageData.value[7].cid + ",3,6" },//模块8涉农报刊
+        ]
+
+        let jsonString = JSON.stringify(getJson);
+        getPageAllData(jsonString);
+
+    } else {
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+        console.log("错误位置:分类页导航池")
+        console.log("后端错误反馈:", navigateData.message)
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    }
+} catch (error) {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:分类页导航渲染阶段")
+    console.log("错误:导航池渲染执行接口出错!请检查首页的14的模块的具体执行方法!")
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+
+
+async function getPageAllData(jsonString) {
+    const mkdata = await requestDataPromise('/web/getWebsiteBook', {
+        method: 'GET',
+        query: {
+            'id': jsonString
+        },
+    });
+
+    if (mkdata.code == 200) {
+        console.log(778899)
+        console.log(mkdata.data)
+        //模块1时政书讯
+        pageData.value[0].data = mkdata.data[0].child.imgnum;
+        //模块2读书读报
+        pageData.value[1].data = mkdata.data[1].child.imgnum;
+        //模块3文化艺术
+        pageData.value[2].data = mkdata.data[2].child.imgnum;
+        //模块4生活百科
+        pageData.value[3].data = mkdata.data[3].child.imgnum;
+        //模块5养生保健
+        pageData.value[4].data = mkdata.data[4].child.imgnum;
+        // 模块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.imgnum;
+        //模块8涉农报刊
+        pageData.value[7].data = mkdata.data[7].child.imgnum;
+        pageData.value[7].data2 = mkdata.data[7].child.textnum;
+
+    } else {
+        ElMessage.error(mkdata.message)
+    }
+}
+
+//3.渲染页面数据 end ---------------------------------------->
+
+//4.设置seo信息 start---------------------------------------->
+//4.1 设置seo信息
+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: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
+            { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
+        ]
+    });
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:设置分类页面SEO数据")
+    console.log("后端错误反馈:", setData.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+//4.设置seo信息 end---------------------------------------->
+</script>
+
+<style lang="less" scoped>
+@import '@/assets/css/shukan.less';
+</style>

+ 2 - 2
plugins/category.ts

@@ -64,7 +64,7 @@ const navPre: number[] = [
 
 export default defineNuxtPlugin((nuxtApp) => {
     //master 环境
-    nuxtApp.provide('pageNav', navMaster)
+    // nuxtApp.provide('pageNav', navMaster)
     //pre 环境
-    // nuxtApp.provide('pageNav', navPre)
+    nuxtApp.provide('pageNav', navPre)
 })

+ 10 - 10
plugins/globals.ts

@@ -1,17 +1,17 @@
 export default defineNuxtPlugin((nuxtApp) => {
   //Pre环境
-  // nuxtApp.provide('webUrl', 'http://apipre1.bjzxtw.org.cn:29501')
-  // nuxtApp.provide('CwebUrl', 'http://pre.zgnmg.org.cn')
-  // nuxtApp.provide('BwebUrl', 'http://adminpre.bjzxtw.org.cn')
-  // nuxtApp.provide('LoginWebUrl', 'http://adminpre.bjzxtw.org.cn/adminapi')
-  // nuxtApp.provide('userUrl', 'http://localhost:3000')
+  nuxtApp.provide('webUrl', 'http://apipre1.bjzxtw.org.cn:29501')
+  nuxtApp.provide('CwebUrl', 'http://pre.zgnmg.org.cn')
+  nuxtApp.provide('BwebUrl', 'http://adminpre.bjzxtw.org.cn')
+  nuxtApp.provide('LoginWebUrl', 'http://adminpre.bjzxtw.org.cn/adminapi')
+  nuxtApp.provide('userUrl', 'http://localhost:3000')
 
   //正式环境
-  nuxtApp.provide('webUrl', 'https://flzxw.bjzxtw.org.cn')
-  nuxtApp.provide('CwebUrl', 'http://nw.zgnmg.org.cn')
-  nuxtApp.provide('BwebUrl', 'https://admin.bjzxtw.org.cn')
-  nuxtApp.provide('LoginWebUrl', 'http://admin.bjzxtw.org.cn/adminapi')
-  nuxtApp.provide('userUrl', 'http://localhost:3004')
+  // nuxtApp.provide('webUrl', 'https://flzxw.bjzxtw.org.cn')
+  // nuxtApp.provide('CwebUrl', 'http://nw.zgnmg.org.cn')
+  // nuxtApp.provide('BwebUrl', 'https://admin.bjzxtw.org.cn')
+  // nuxtApp.provide('LoginWebUrl', 'http://admin.bjzxtw.org.cn/adminapi')
+  // nuxtApp.provide('userUrl', 'http://localhost:3004')
   
   //乡村网
   // nuxtApp.provide('webUrl', 'http://apipre1.bjzxtw.org.cn:29501')

+ 4 - 4
plugins/request.ts

@@ -6,11 +6,11 @@ export default defineNuxtPlugin(() => {
 
     let Url = {
         //正式环境
-        webUrl: 'https://flzxw.bjzxtw.org.cn', //接口地址
-        CwebUrl: 'nw.zgnmg.org.cn' //页面地址
+        // webUrl: 'https://flzxw.bjzxtw.org.cn', //接口地址
+        // CwebUrl: 'nw.zgnmg.org.cn' //页面地址
         //pre环境
-        // webUrl: 'http://apipre1.bjzxtw.org.cn:29501', //pre接口地址
-        // CwebUrl: 'pre.zgnmg.org.cn' //页面地址
+        webUrl: 'http://apipre1.bjzxtw.org.cn:29501', //pre接口地址
+        CwebUrl: 'pre.zgnmg.org.cn' //页面地址
     }
 
     const service = axios.create({

BIN
public/index/navtitle.png


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно