Browse Source

完成频道页所有通栏

完成频道页所有通栏
dangyunlong 11 hours ago
parent
commit
62b2fbb453

+ 1 - 1
.env

@@ -1,2 +1,2 @@
-PORT=3002
+PORT=3010
 

+ 1 - 1
404.vue

@@ -2,7 +2,7 @@
   <div class="errorBox">
     <img src="@/public/error/404.png" alt="遇到了网络错误!">
     <div @click="goHome" class="goHome">
-      返回网站首页
+        返回网站首页
     </div>
   </div>
 </template>

+ 301 - 7
components/template/component/list/1200x410/2.vue

@@ -1,10 +1,78 @@
 <template>
-    2222
+    <div class="scrollTextSectorBox">
+        <div class="scrollTextSectorLeft">
+            <el-carousel :interval="3333" height="405px" indicator-position="none" arrow="always" @change="change_fun">
+                <el-carousel-item v-for="item in component_style1_News1Array" :key="item.id">
+                    <NuxtLink 
+                        :href="getLinkPathDetail(item)" 
+                        :title="item.title"
+                        :target="item.islink == 1 ? '_blank' : '_self'"
+                    >
+                        <img :src="item.imgurl" />
+                        <span class="swiper_dot1 dot1">
+                            {{ item.title }}
+                        </span>
+                    </NuxtLink>
+                </el-carousel-item>
+                <div class="roll_num_box">
+                    <span class="roll_num_box_new">{{ roll_num_this + 1 }}</span>/{{ roll_num_lang }}
+                </div>
+            </el-carousel>
+        </div>
+        <div class="scrollTextSectorRight">
+            <div class="listNewsTitle" v-if="skinId==1">
+                <NuxtLink
+                    v-if="titleLink.cid"
+                    :href="getLinkPath(titleLink)"
+                    :title="titleLink.alias"
+                >
+                    {{titleLink.alias}}
+                </NuxtLink>
+            </div>
+            <div class="listNewsTitle_skin2" v-if="skinId==2">
+                <span>
+                    <NuxtLink
+                        v-if="titleLink.cid"
+                        :href="getLinkPath(titleLink)"
+                        :title="titleLink.alias"
+                    >
+                        {{titleLink.alias}}
+                    </NuxtLink>
+                </span>
+            </div>
+            <div class="scrollTextSectorList" v-if="skinId==1">
+                <div v-for="(item,index) in component_style1_News2Array">
+                    <NuxtLink 
+                        :href="getLinkPathDetail(item)" 
+                        :title="item.title"
+                        :target="item.islink == 1 ? '_blank' : '_self'"
+                    >
+                        <span v-if="index!=0">[国际贸易]</span>
+                        {{ item.title }}
+                    </NuxtLink>
+                </div>
+            </div>
+            <div class="scrollTextSectorList_skin2" v-if="skinId==2">
+                <div v-for="(item,index) in component_style1_News2Array">
+                    <NuxtLink 
+                        :href="getLinkPathDetail(item)" 
+                        :title="item.title"
+                        :target="item.islink == 1 ? '_blank' : '_self'"
+                    >
+                        <span v-if="index!=0">[国际贸易]</span>
+                        {{ item.title }}
+                    </NuxtLink>
+                </div>
+            </div>
+        </div>
+    </div>
 </template>
 
 <script setup>
 //引入vue
 import {ref} from 'vue';
+import { ElCarousel, ElCarouselItem } from 'element-plus'
+
 //获得新闻数据
 const props = defineProps({
     titleLink:Object,//板块名称
@@ -12,16 +80,242 @@ const props = defineProps({
     skinId:String,//皮肤id
     templateAdData:Object,//广告
 });
+
+//轮播图
+const roll_num_this = ref(0)
+const roll_num_lang = ref(props.templateData.img.length - 1);
+
+const change_fun = (the_1) => {
+    roll_num_this.value = the_1
+}
 //样式1与样式2共用 start ---------------------------------------->
-// const component_style1_News1Array = ref({});
-// component_style1_News1Array.value = props.templateData.img.slice(0,2);
-// const component_style1_News1Array_2 = ref({});
-// component_style1_News1Array_2.value = props.templateData.img.slice(2,3);
-// const component_style1_News3 = ref({});
-// component_style1_News3.value = props.templateData.text.slice(0,4);
+const component_style1_News1Array = ref([]);
+component_style1_News1Array.value = props.templateData.img.slice(0,5);
+const component_style1_News2Array = ref([]);
+component_style1_News2Array.value = props.templateData.text.slice(0,9);
 //样式1与样式2共用 end ---------------------------------------->
 </script>
 
 <style lang="less" scoped>
+.scrollTextSectorBox {
+    width: 1200px;
+    height: 410px;
+    position: relative;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    img{
+        width: 720px;
+        height: 405px;
+        display: block;
+    }
+    .scrollTextSectorLeft {
+        width: 720px;
+        height: 405px;
+    }
+    .scrollTextSectorRight {
+        width: 450px;
+        height: 405px;
+        .listNewsTitle {
+            font-size:22px;
+            font-weight:bold;
+            height: 40px;
+            line-height: 40px;
+            border-bottom: 2px solid #004564;
+            color:#004564;
+            margin-bottom: 20px;
+            box-sizing: border-box;
+            a {
+                color:#004564;
+                display: block;
+                height: 25px;
+                line-height: 25px;
+            }
+        }
+        .listNewsTitle_skin2 {
+            font-size:22px;
+            font-weight:bold;
+            height: 40px;
+            line-height: 40px;
+            border-bottom: 2px solid #A91B33;
+            color:#A91B33;
+            margin-bottom: 20px;
+            box-sizing: border-box;
+            a {
+                color:#A91B33;
+                display: block;
+                height: 25px;
+                line-height: 25px;
+            }
+            span {
+                color:#A91B33;
+                height: 25px;
+                line-height: 25px;
+                border-left: 3px solid #A91B33;
+                padding-left: 12px;
+                display: block;
+            }
+        }
+        .scrollTextSectorList {
+            div{
+                font-size: 18px;
+                height: 24px;
+                line-height: 24px;
+                margin-bottom: 16px;
+                overflow: hidden;
+                white-space: nowrap;
+                text-overflow: ellipsis;
+                span {
+                    margin-right: 5px;
+                    color:#004564;
+                }
+                a {
+                    color:#333333;
+                }
+                &:last-child {
+                    margin-bottom: 0;
+                }
+                &:first-child {
+                    a {
+                        color:#333;
+                        font-weight: bold;
+                    }
+                }
+            }
+        }
+        .scrollTextSectorList_skin2 {
+            div{
+                font-size: 18px;
+                height: 24px;
+                line-height: 24px;
+                margin-bottom: 16px;
+                overflow: hidden;
+                white-space: nowrap;
+                text-overflow: ellipsis;
+                span {
+                    margin-right: 5px;
+                    color:#A91B33;
+                }
+                a {
+                    color:#333333;
+                }
+                &:last-child {
+                    margin-bottom: 0;
+                }
+                &:first-child {
+                    a {
+                        color:#333;
+                        font-weight: bold;
+                    }
+                }
+            }
+        }
+    }
+}
+
+.roll_num_box {
+    position: absolute;
+    z-index: 2;
+    left: 60px;
+    bottom: 5px;
+    height: 60px;
+    line-height: 60px;
+    color: #fff;
+    font-size: 16px;
+    .roll_num_box_new {
+        font-size: 20px;
+    }
+}
+.dot1 {
+    display: block;
+    word-break: keep-all;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+.swiper_dot1 {
+    display: block;
+    width: 100%;
+    line-height: 60px;
+    height: 60px;
+    color: #fff;
+    font-size: 18px;
+    text-indent: 20px;
+    position: absolute;
+    bottom: 0;
+    left: 0;
+    z-index: 10;
+    box-sizing: border-box;
+    padding: 0 144px;
+    background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+}
+.el-carousel {
+    /deep/.el-carousel__arrow i {
+        font-size: 33px !important;
+    }
+    .roll_1_box {
+        position: relative;
+    }
+    /deep/.el-carousel__arrow--left {
+        position: absolute;
+        width: 35px;
+        height: 57px;
+        color: #fff;
+        background: rgba(0, 0, 0, 0);
+        left: 9px;
+        border: none;
+        border-radius: 0;
+        top: 100%;
+        margin-top: -36px;
+    }
+    /deep/.el-carousel__arrow--right {
+        width: 35px;
+        height: 57px;
+        color: #fff;
+        background: rgba(0, 0, 0, 0);
+        position: absolute;
+        right: 9;
+        border: none;
+        border-radius: 0;
+        top: 100%;
+        margin-top: -36px;
+    }
+    /deep/ .el-carousel__indicators {
+        // 指示器
+        left: unset;
+        transform: unset;
+        right: 10px;
+        bottom: 11px;
+    }
+    /deep/ .el-carousel__button {
+        // 指示器按钮
+        width: 10px;
+        height: 10px;
+        border: none;
+        border-radius: 5px;
+        background: #fff;
+        opacity: 1;
+    }
+    /deep/ .is-active .el-carousel__button {
+        // 指示器激活按钮
+        background: #255590;
+        width: 25px;
+        opacity: 1;
 
+    }
+    /deep/ .el-carousel__container {
+        height: 100%;
+    }
+}
+.custom-indicator button {
+    background-color: #fff;
+    opacity: 1;
+    width: 8px;
+    height: 8px;
+}
+.custom-indicator button.is-active {
+    background-color: #DD7D18;
+    width: 58px;
+    opacity: 1;
+}
 </style>

+ 5 - 0
components/template/component/list/720x440/1.vue

@@ -76,9 +76,14 @@ const component_style1_News1Array = ref({});
 const component_style1_News1Array_2 = ref({});
 const component_style1_News2Array = ref([]);
 
+//真实数据
+// component_style1_News1Array.value = props.templateData.imgnum.slice(0,1);
+// component_style1_News1Array_2.value = props.templateData.imgnum.slice(1,3);
+// component_style1_News2Array.value = props.templateData.textnum;
 component_style1_News1Array.value = props.templateData.img.slice(0,1);
 component_style1_News1Array_2.value = props.templateData.img.slice(1,3);
 component_style1_News2Array.value = props.templateData.text;
+
 //样式1与样式2共用 end ---------------------------------------->
 </script>
 

+ 8 - 1
components/template/component/menu/1200x100/1.vue

@@ -72,7 +72,6 @@ const targetSegment = segments[1];
 }
 .channelMenuList {
     display: flex;
-    justify-content: flex-start;
     align-items: center;
     color: #333;
     border-bottom: 2px solid #004564;
@@ -94,6 +93,10 @@ const targetSegment = segments[1];
         a.active {
             color: #004564;
         }
+        margin-right: 34px;
+        &:last-child{
+            margin-right: 0;
+        }
     }
 }
 .channelMenuList_skin2 {
@@ -120,6 +123,10 @@ const targetSegment = segments[1];
         a.active {
             color: #A91B33;
         }
+        margin-right: 34px;
+        &:last-child{
+            margin-right: 0;
+        }
     }
 }
 </style>

+ 8 - 0
components/template/component/menu/1200x100/2.vue

@@ -93,6 +93,10 @@ const targetSegment = segments[1];
         a.active {
             color: #004564;
         }
+        margin-right: 34px;
+        &:last-child{
+            margin-right: 0;
+        }
     }
 }
 .channelMenuList_skin2 {
@@ -119,6 +123,10 @@ const targetSegment = segments[1];
         a.active {
             color: #A91B33;
         }
+        margin-right: 34px;
+        &:last-child{
+            margin-right: 0;
+        }
     }
 }
 </style>

+ 123 - 0
components/template/component/public/breadcrumb.vue

@@ -0,0 +1,123 @@
+<template>
+    <div class="listRouterBox">
+        <span class="location">当前位置:</span>
+        <el-breadcrumb :separator-icon="ArrowRight">
+            <el-breadcrumb-item>
+                <NuxtLink to="/">首页</NuxtLink>
+            </el-breadcrumb-item>
+            <!--只要出现第二级一定是跳转到频道页-->
+            <el-breadcrumb-item v-if="parent_name != ''">
+                <NuxtLink :to="`/${parent_pinyin}/index.html`">{{parent_name}}</NuxtLink>
+            </el-breadcrumb-item>
+            <el-breadcrumb-item>
+                <span class="routeName" v-if="parent_name==''||routeType=='list'||routeType=='list'">
+                    {{ name }}
+                </span>
+                <!-- <NuxtLink :to="`/${parent_pinyin}/${pinyin}/list-1.html`" class="routeName" v-else>
+                    {{ name }}
+                </NuxtLink> -->
+            </el-breadcrumb-item>
+            <!--详情页增加文章标题作为结束-->
+        </el-breadcrumb>
+    </div>
+</template>
+
+<script setup>
+import { ref } from 'vue';
+import { ElBreadcrumb, ElBreadcrumbItem, ElPagination } from 'element-plus';
+import { ArrowRight } from '@element-plus/icons-vue';
+//获得页面的routeId导航池id
+const props = defineProps({
+    routeId: Number,
+});
+//1.获得当前路由的层级
+const route = useRoute();
+const routeType = ref('');
+//判断当前处于哪个层级
+//第二层的列表
+if(route.name=='dir-dir-list-id'){
+    routeType.value = 'list'
+}
+//第一层的列表
+if(route.name=='dir-list-id'){
+    routeType.value = 'list'
+}
+//2.获得当前栏目的名称 面包屑的最后一级
+const name = ref('')
+const pinyin = ref('');
+//3.获得父级栏目 面包屑倒数第二级
+const parent_name = ref("");
+const parent_id = ref("");
+const parent_pinyin = ref("");
+const parent_children_count = ref(0);
+
+const pageName = await requestDataPromise('/web/getOneWebsiteCategory', {
+    method: 'GET',
+    query: {
+        'catid': props.routeId
+    },
+}); 
+if (pageName.code == 200) {
+    //最后一级
+    name.value = pageName.data.alias
+    pinyin.value = pageName.data.aLIas_pinyin;
+    //倒数第二级 如果存在
+    parent_name.value = pageName.data.parent_name;
+    parent_id.value = pageName.data.parent_id;
+    parent_pinyin.value = pageName.data.parent_pinyin;
+    parent_children_count.value = pageName.data.children_count;
+    console.log(pageName)
+}
+</script>
+
+<style lang="less" scoped>
+//导航条
+.listRouterBox {
+    width: 100%;
+    height: 52px;
+    font-family: Microsoft YaHei, Microsoft YaHei;
+    font-weight: 400;
+    font-size: 16px;
+    color: #999;
+    text-align: left;
+    font-style: normal;
+    text-transform: none;
+    .routeName {
+        color: #333;
+    }
+    :deep(.el-breadcrumb) {
+        display: inline-block;
+        vertical-align: -4px;
+    }
+    :deep(.el-breadcrumb__inner a),
+    :deep(.el-breadcrumb__inner.is-link) {
+        color: #999;
+        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: #999;
+        line-height: 23px;
+        text-align: left;
+        font-style: normal;
+        text-transform: none;
+    }
+    .location {
+        margin-right: 20px;
+        width: 100px;
+        height: 22px;
+        font-family: Microsoft YaHei, Microsoft YaHei;
+        font-weight: 400;
+        font-size: 20px;
+        color: #999;
+        line-height: 23px;
+        text-align: left;
+        font-style: normal;
+        text-transform: none;
+    }
+}
+</style>

+ 7 - 2
components/template/sector/body/class/banner/1200x410/1.vue

@@ -1,7 +1,6 @@
 <template>
     <div class="imgNewsBigBox">
         <div v-if="templateData.componentList[0].component_style == 1">
-            <!-- <news1Style :name="this.$store.state.template.pageData.class[dataSort].content.componentList[0].componentData.name"/> -->
             <news1Style 
                 v-if="templateData.componentList[0].data.text.length > 0" 
                 :titleLink="componentTitle1" 
@@ -11,7 +10,13 @@
             <nodata v-else :dataStyle="2" :dataWidth="720" :dataHeight="440" />
         </div>
         <div v-if="templateData.componentList[0].component_style == 2">
-            <news2Style :name="this.$store.state.template.pageData.class[dataSort].content.componentList[0].componentData.name"/>
+            <news2Style 
+                v-if="templateData.componentList[0].data.text.length > 0" 
+                :titleLink="componentTitle1" 
+                :templateData="templateData.componentList[0].data"
+                :skinId="skinId"
+            />
+            <nodata v-else :dataStyle="2" :dataWidth="720" :dataHeight="440" />
         </div>
     </div>
 </template>

+ 2 - 2
components/template/sector/body/class/menu/1200x100/1.vue

@@ -1,10 +1,10 @@
 <template>
     <div class="channelMenuBox">
         <div class="channelMenuSector">
-            <div v-if="templateData.componentList[0].component_style.toString()=='2'">
+            <div v-if="templateData.componentList[0].component_style.toString()=='1'">
                 <menu1Style :skinId="skinId" :navigateData="navigateData" :routeId="routeId"/>
             </div>
-            <div v-if="templateData.componentList[0].component_style.toString()=='1'">
+            <div v-if="templateData.componentList[0].component_style.toString()=='2'">
                 <menu2Style :skinId="skinId" :navigateData="navigateData" :routeId="routeId"/>
             </div>
         </div>

+ 2 - 0
components/template/sector/body/index/list/1200x470/1.vue

@@ -2,6 +2,7 @@
     <div class="manyPictureSectorBox">
         <div class="manyPictureSector">
             <div class="manyPictureSectorLeft">
+                <!-- {{ testData.componentList[0].componentData.data}} -->
                 <div v-if="templateData.componentList[0].component_style.toString()=='1'">
                     <left1Style 
                         v-if="templateData.componentList[0].data.text.length > 0" 
@@ -60,6 +61,7 @@ import nodata from '@/components/template/component/public/nodata.vue'
 const props = defineProps({
     skinId: Number,//皮肤id
     templateData:Object,//新闻数据
+    testData:Object,//接口数据
 });
 
 //该栏目下有两个组件 此时需要提供children_count来判断是否跳转到频道页

+ 149 - 0
components/template/sector/body/list/list/1200x1220/1.vue

@@ -0,0 +1,149 @@
+<template>
+    <div class="listBigBox">
+        <div class="listBox">
+            <div class="listRouterBox">
+                <templateBreadcrumb :routeId="routeId" />
+            </div>
+            <div class="listContentBox">
+                <div class="listContentBoxLeft">
+                    <div v-if="templateData.componentList[0].component_style == 1">
+                        <!-- <list1Style /> -->
+                    </div>
+                    <div v-if="templateData.componentList[0].component_style == 2">
+                        <!-- <list2Style /> -->
+                    </div>
+                </div>
+                <div class="listContentBoxRight">
+                    <div class="listContentBoxRightTop">
+                        <div v-if="templateData.componentList[1].component_style == 1">
+                            <!-- <news1style /> -->
+                        </div>
+                        <div v-if="templateData.componentList[1].component_style == 2">
+                            <!-- <news2style /> -->
+                        </div>
+                    </div>
+                    <div class="listContentBoxRightBottom">
+                        <div v-if="templateData.componentList[2].component_style == 1">
+                            <!-- <hotNews1style /> -->
+                        </div>
+                        <div v-if="templateData.componentList[2].component_style == 2">
+                            <!-- <hotNews2style /> -->
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="paginationBox">
+                <div class="paginationBoxLeft">
+                    <el-pagination 
+                        size="small" 
+                        background 
+                        layout="prev, pager, next" 
+                        :total="100" 
+                        :page-size="1" 
+                        :current-page="1" 
+                        prev-text="上一页" 
+                        next-text="下一页"
+                     />
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script setup>
+//引入vue
+import {ref} from 'vue';
+//引入面包屑路径组件
+import templateBreadcrumb from '@/components/template/component/public/breadcrumb.vue'
+
+
+const props = defineProps({
+    skinId: Number,//皮肤id
+    templateData:Object,//新闻数据
+    routeId: Number,//导航池id
+});
+</script>
+
+<style lang="less" scoped>
+.listBigBox{
+    width: 100%;
+    height: 1220px;
+    .listBox{
+        width: 1200px;
+        height: 1220px;
+        margin: 0 auto;
+        .listRouterBox{
+            height: 52px;
+            border-bottom: 1px solid #D9D9D9;
+        }
+        .listContentBox {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            margin-top: 17px;
+            .listContentBoxLeft {
+                width: 900px;
+                height: 1050px;
+                position: relative;
+            }
+            .listContentBoxRight {
+                width: 270px;
+                height: 1050px;
+                .listContentBoxRightTop {
+                    width: 270px;
+                    height: 440px;
+                    margin-bottom: 30px;
+                    position: relative;
+                }
+                .listContentBoxRightBottom {
+                    width: 270px;
+                    height: 580px;
+                    position: relative;
+                }
+            }
+        }
+        .paginationBox {
+            height: 100px;
+            .paginationBoxLeft {
+                width: 900px;
+                height: 100px;
+                padding-top: 33px;
+                box-sizing: border-box;
+                text-align: center;
+            }
+        }
+    }
+}
+.paginationBoxLeft {
+    width: 800px;
+    height: 34px;
+    margin-left: 141px;
+    display: flex;
+    justify-content: center;
+    margin: 0;
+    // 鼠标移入后字体颜色
+    .el-pagination::v-deep :hover {
+        color: #004564;
+    }
+    .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;
+        background-color: #F6F6F6;
+        border: #EAEAEA 1px solid;
+    }
+    .el-pagination.is-background::v-deep .el-pager li {
+        margin: 0px 10px;
+        width: 38px;
+        height: 34px;
+        border-radius: 4px;
+        line-height: 34px;
+    }
+    .el-pagination.is-background::v-deep .el-pager li:not(.disabled).active {
+        background-color: #004564;
+        color: #fff;
+    }
+}
+</style>

+ 1 - 1
middleware/setup.global.js

@@ -86,7 +86,7 @@ function parseRoute(url) {
 
 //获得路由白名单列表
 function getRouteWhiteList(path){
-    if(path=='/'){
+    if(path=='/'||path=='/404'){
         console.log('该路由允许访问!')
         //如果用户进入的是首页,直接返回true
         return true

+ 660 - 221
pages/[dir]/[dir]/list-[id].vue

@@ -1,76 +1,38 @@
 <template>
-    <div id="newsList">
-        <!-- 页面头部 -->
-        <HomePageHead></HomePageHead>
-        <!-- 导航栏 -->
-        <HomePageNavigation1></HomePageNavigation1>
-        <!-- 列表页广告一 -->
-        <HomeTopTen :imgurl="adImg1" v-if="adImg1"></HomeTopTen>
-        <!-- 二级标题-->
-        <HomeListSecondaryHeading v-if="parent_name != ''" :name="parent_name" :nav="secondNav" :pinyin="parent_pinyin">
-        </HomeListSecondaryHeading>
-        <!-- 资讯列表 -->
-        <div class="newsList">
-            <div class="inner">
-                <div class="innerLeft">
-                    <!-- 面包屑导航 -->
-                    <div class="breadcrumb">
-                        <div class="inner">
-                            <span class="location">当前位置:</span>
-                            <el-breadcrumb :separator-icon="ArrowRight">
-                                <el-breadcrumb-item>
-                                    <NuxtLink to="/">首页</NuxtLink>
-                                </el-breadcrumb-item>
-                                <el-breadcrumb-item v-if="parent_name != ''">
-                                    <NuxtLink :to="`/${parent_pinyin}/index.html`"> {{ parent_name }}</NuxtLink>
-                                </el-breadcrumb-item>
-                                <el-breadcrumb-item>{{ name }}</el-breadcrumb-item>
-                            </el-breadcrumb>
-                        </div>
-                    </div>
-                    <ul class="list">
-                        <li v-for="(item, index) in newsList" :key="index">
-                            <NuxtLink :href="getLinkPathDetail(item)" :title="item.alias">
-                                <span class="listTitle">{{ item.title }}</span>
-                                <span class="time">{{ getTime(item.updated_at, 'month', 1) }}</span>
-                            </NuxtLink>
-                        </li>
-                    </ul>
-                    <!-- 分页器 -->
-                    <div class="pagination" v-if="total > 0">
-                        <el-pagination size="small" background layout="prev, pager, next" :total="total" class="mt-4"
-                            :page-size="pageSize" :current-page="pageNum" prev-text="上一页" next-text="下一页"
-                            @current-change="changePage" />
-                    </div>
-                </div>
-                <div class="innerRight">
-                    <DetailHotNews></DetailHotNews>
-                    <DetailHotNews2></DetailHotNews2>
-                </div>
-            </div>
-        </div>
-        <!-- 列表页广告二 -->
-        <HomeTopTen :imgurl="adImg2" v-if="adImg2"></HomeTopTen>
-        <!-- 页面底部 -->
-        <HomeFoot></HomeFoot>
+    <!-- 头部 -->
+    <templateHead></templateHead>
+    <!-- 菜单 -->
+    <templateMenu></templateMenu>
+    <!-- 内容 -->
+    <div>
+        <!--广告组件-->
+        <templateAd :adTag="'nmw_list_0001'" :skinId="skinId" :adData="adData"></templateAd>
+        <!--列表组件-->
+        <templateList :skinId="skinId" :templateData="testTemplateData" :routeId="routeId"></templateList>
     </div>
+    <!-- 底部 -->
+    <templateFoot></templateFoot>
 </template>
 
 <script setup>
-//1.页面必备依赖 start ---------------------------------------->
-import { ElBreadcrumb, ElBreadcrumbItem, ElPagination } from 'element-plus'
-import { ArrowRight } from '@element-plus/icons-vue'
-import { ref, onMounted } from 'vue';
-//1.页面必备依赖 end ---------------------------------------->
-
-//2.路径 start---------------------------------------->
-//当前列表名称
-const route = useRoute();
-let articleId = 0;//列表需要使用的导航id 
-const targetSegment = getRoutePath(2);//根据路由反向查询导航id
-let pageNum = ref(1);//获得路由里面的分页数据
+//0.加载全局模板组件 start---------------------------------------->
+//0.1全局通栏
+import templateHead from '@/components/template/sector/head/1200x200/1.vue'
+import templateMenu from '@/components/template/sector/menu/1200x130/1.vue'
+import templateFoot from '@/components/template/sector/foot/1200x580/1.vue'
+//0.2局部通栏
+//0.2.1广告组件
+import templateAd from '@/components/template/sector/body/ad/1200x90/1.vue'
+//0.2.3列表组件
+import templateList from '@/components/template/sector/body/list/list/1200x1220/1.vue'
+//0.加载全局模板组件 end---------------------------------------->
 
-//通过导航路径反向查询导航id
+//1.获得基本信息单元 start---------------------------------------->
+//1.1获得页面依赖
+import { ref, onMounted } from 'vue';
+//1.2使用url查询导航池id
+const targetSegment = getRoutePath(2);//当前页面的url路径 当前是第二层的页面,所以需要传入2
+const routeId = ref("");//当前url路径代表的cid
 const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
     method: 'GET',
     query: {
@@ -78,172 +40,649 @@ const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
     },
 });
 if (getRouteId.code == 200) {
-    articleId = getRouteId.data.category_id
-} else {
-    console.log("后端错误反馈:", getRouteId.message)
+    routeId.value = getRouteId.data.category_id
 }
-pageNum.value = parseInt(route.params.id);
-//2.路径 end---------------------------------------->
-
-//3.列表 start ---------------------------------------->
-let total = ref(1);
-let pageSize = ref(20);
-
-const newsList = ref([]);
-let newslists = async () => {
-    const listData = await requestDataPromise('/web/getWebsiteArticleList', {
-        method: 'GET',
-        query: {
-            'page': pageNum.value,
-            'pageSize': pageSize.value,
-            'catid': articleId
-        },
-    });
-    if (listData.code == 200) {
-        newsList.value = listData.data.rows;
-        total.value = listData.data.count;
-
-    } else {
-        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
-        console.log("错误位置:获取新闻列表")
-        console.log("后端错误反馈:", listData.message)
-        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
-    }
+//1.3获得二级导航
+const navigateData = await requestDataPromise('/web/getWebsiteModelCategory', {
+    method: 'GET',
+    query: {
+        'placeid': 1,
+        'pid': routeId.value,
+        'num': 8
+    },
+});
+//1.4获得pinia源
+import { useTemplateBaseStore } from '@/stores/templateBase'
+const templateBaseStore = useTemplateBaseStore()
+//1.5获得该页的皮肤id - 在每个组件中也是同样的获得方法
+const skinId = ref("")
+//1.6获得站点基本信息
+const responseStatus = await requestDataPromise('/web/getWebsiteAllinfo', {
+    method: 'GET',
+    query: {
+        'link_textnum':24,
+        'link_imgnum':18,
+        'link_footnum':4
+    },
+});
+if (responseStatus.code == 200) {
+    //1.6.1设置站点基本信息
+    templateBaseStore.setWebSiteInfo(responseStatus.data)
+    //1.6.2设置皮肤id
+    skinId.value = templateBaseStore.webSiteInfo.website_foot.foot_info.template_id;
 }
-newslists();
-
-//分页
-let changePage = (value) => {
-    console.log("当前页码", value);
-    navigateTo(`/${targetSegment}/${value}.html`)
+//1.7获得广告池
+const adData = ref([]);
+const adResponseStatus = await requestDataPromise('/web/getWebsiteAdvertisement', {
+    method: 'GET',
+    query: {},
+});
+if (adResponseStatus.code == 200) {
+    templateBaseStore.setAdList(adResponseStatus.data)
+    adData.value = adResponseStatus.data;
 }
-//3.列表 end ---------------------------------------->
+//1.8.seo
+const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
+    method: 'GET',
+    query: {
+        'catid': routeId.value
+    },
+});
+let seoTitle = setData.data.seo_title;
+let seoDescription = setData.data.seo_description;
+let seoKeywords = setData.data.seo_keywords;
+let seoSuffix = setData.data.suffix;
+let seoName = setData.data.website_name;
+useSeoMeta({
+    title: seoTitle + "_" + seoSuffix,
+    meta: [
+        { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
+        { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
+    ]
+});
+//1.获得基本信息单元 end---------------------------------------->
 
+//2.获得页面数据 start---------------------------------------->
+const route = useRoute();
+let pageNum = ref(1); //列表页当前页码
+pageNum.value = parseInt(route.params.id);//路由中传递的分页页码
+let total = ref(1); //总条数
+let pageSize = ref(20); //每页条数
 
-//4.面包屑 start---------------------------------------->
-//3.1 获得页面名称
-const name = ref('')
-let getPageName = async () => {
-    const pageName = await requestDataPromise('/web/getOneWebsiteCategory', {
-        method: 'GET',
-        query: {
-            'catid': articleId
-        },
-    });
-    if (pageName.code == 200) {
-        name.value = pageName.data.alias
-    } else {
-        console.log("错误位置:设置页面标题")
-    }
-}
-getPageName();
-
-//3.2 获得父级栏目
-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': articleId
-        },
-    });
-    if (listData.code == 200) {
-        console.log(111999)
-        console.log(listData.data);
-        parent_name.value = listData.data.parent_name;
-        parent_id.value = listData.data.parent_id;
-        parent_pinyin.value = listData.data.parent_pinyin;
-    } else {
-        console.log("错误位置:获取父级栏目")
-    }
-    getSecondNav();
-}
-getParentNav();
-
-// 3.3获取二级栏目
-const secondNav = ref([]);
-let getSecondNav = async () => {
-    const listData = await requestDataPromise('/web/getWebsiteModelCategory', {
-        method: 'GET',
-        query: {
-            'placeid': 1,
-            'pid': parent_id.value,
-            'num': 20,
-        },
-    });
-    console.log('listData', listData);
+//2.1新闻数据
+// const newsList = ref([]);
+// let newslists = async () => {
+//     const listData = await requestDataPromise('/web/getWebsiteArticleList', {
+//         method: 'GET',
+//         query: {
+//             'page': pageNum.value,
+//             'pageSize': pageSize.value,
+//             'catid': articleId
+//         },
+//     });
+//     if (listData.code == 200) {
+//         newsList.value = listData.data.rows;
+//         total.value = listData.data.count;
 
-    if (listData.code == 200) {
-        secondNav.value = listData.data;
-    } else {
-        console.log("错误位置:获取二级栏目列表")
-    }
-}
+//     } else {
+//         console.log("错误位置:获取新闻列表")
+//     }
+// }
+// newslists();
+
+// //2.2分页
+// let changePage = (value) => {
+//     console.log("当前页码", value);
+//     navigateTo(`/${targetSegment}/list-${value}.html`)
+// }
+//2.获得页面数据 end---------------------------------------->
+
+
+
+//4.面包屑 start ---------------------------------------->
+// const name = ref('')
+// //4.1 当前频道名称
+// let getPageName = async () => {
+//     const pageName = await requestDataPromise('/web/getOneWebsiteCategory', {
+//         method: 'GET',
+//         query: {
+//             'catid': articleId
+//         },
+//     });
+//     if (pageName.code == 200) {
+//         name.value = pageName.data.alias
+//     } else {
+//         console.log("错误位置:获取当前频道名称", pageName.message)
+//     }
+// }
+// getPageName();
+
+// //4.2 查询是否含有父级导航
+// 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': articleId
+//         },
+//     });
+//     if (listData.code == 200) {
+//         parent_name.value = listData.data.parent_name;
+//         parent_id.value = listData.data.parent_id;
+//         parent_pinyin.value = listData.data.parent_pinyin;
+//     } else {
+//         console.log("错误位置:查询父级导航信息")
+//     }
+//     getSecondNav();
+// }
+// getParentNav();
+
+// //4.3 获取二级栏目列表
+// const secondNav = ref([]);
+// let getSecondNav = async () => {
+//     const listData = await requestDataPromise('/web/getWebsiteModelCategory', {
+//         method: 'GET',
+//         query: {
+//             'placeid': 1,
+//             'pid': parent_id.value,
+//             'num': 8,
+//         },
+//     });
+//     console.log('listData', listData);
+
+//     if (listData.code == 200) {
+//         secondNav.value = listData.data
+//     } else {
+//         console.log("错误位置:获得二级栏目列表")
+//     }
+// }
 //4.面包屑 end ---------------------------------------->
 
 
-//5.设置seo信息 start---------------------------------------->
-const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
-    method: 'GET',
-    query: {
-        'catid': articleId
-    },
-});
 
-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 + "_" + seoName + "_" + seoSuffix,
-        meta: [
-            { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
-            { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
-        ]
-    });
-} else {
-    console.log("错误位置:设置列表页面SEO数据")
+//2.页面数据 start---------------------------------------->
+//2.0 测试数据 后期移除
+const testTemplateData = {
+    "sectorName": "text",
+    "componentList": [
+        {
+            "component_type": 1,//1=新闻 2=广告
+            "component_style": 1,//样式
+            "sort": 1,//组件位置
+            "data": {
+                "alias":"一级导航名称",
+                "category_id": 11,
+                "pinyin": "nongyeshengchan",
+                "text": [
+                    {
+                        "id": 2863,
+                        "title": "1以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminxinnongcun/nongcunxinfangshe"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "2以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "3以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 2862,
+                        "title": "4以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun/buweidongtai"
+                    },
+                    {
+                        "id": 50126,
+                        "title": "5以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 3976,
+                        "title": "6以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50189,
+                        "title": "7以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminhezuoshe"
+                    },
+                    {
+                        "id": 50190,
+                        "title": "8以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminhezuoshe"
+                    }
+                ],
+                "img": [
+                    {
+                        "id": 50129,
+                        "title": "1以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "linyuting123",
+                        "updated_at": "2025-05-30 13:50:54",
+                        "introduce": "以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "cat_arr_id": "[1,201]",
+                        "catid": 201,
+                        "level": "[1,2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "2以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:46",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[2]",
+                        "catid": 2,
+                        "level": "[2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "3以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:45",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[1]",
+                        "catid": 1,
+                        "level": "[2]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "4以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:44",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[11]",
+                        "catid": 11,
+                        "level": "[2]",
+                        "pinyin": "xinnongcun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "5以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:43",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[14,240]",
+                        "catid": 240,
+                        "level": "[2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "6以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙6",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-04-16 11:04:29",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": null,
+                        "catid": 36,
+                        "level": "[2]",
+                        "pinyin": "sannongzixun"
+                    }
+                ]
+            }
+        },
+        {
+            "component_type": 1,//1=新闻 2=广告
+            "component_style": 1,//样式
+            "sort": 1,//组件位置
+            "data": {
+                "alias":"一级导航名称2",
+                "category_id": 11,
+                "pinyin": "sannongzixun/zhengcefagui",
+                "text": [
+                    {
+                        "id": 2863,
+                        "title": "1以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminxinnongcun/nongcunxinfangshe"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "2以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "3以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 2862,
+                        "title": "4以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun/buweidongtai"
+                    },
+                    {
+                        "id": 50126,
+                        "title": "5以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 3976,
+                        "title": "6以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50189,
+                        "title": "7以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminhezuoshe"
+                    },
+                    {
+                        "id": 50190,
+                        "title": "8以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminhezuoshe"
+                    }
+                ],
+                "img": [
+                    {
+                        "id": 50129,
+                        "title": "1以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "linyuting123",
+                        "updated_at": "2025-05-30 13:50:54",
+                        "introduce": "以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "cat_arr_id": "[1,201]",
+                        "catid": 201,
+                        "level": "[1,2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "2以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:46",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[2]",
+                        "catid": 2,
+                        "level": "[2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "3以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:45",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[1]",
+                        "catid": 1,
+                        "level": "[2]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "4以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:44",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[11]",
+                        "catid": 11,
+                        "level": "[2]",
+                        "pinyin": "xinnongcun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "5以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:43",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[14,240]",
+                        "catid": 240,
+                        "level": "[2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "6以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙6",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-04-16 11:04:29",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": null,
+                        "catid": 36,
+                        "level": "[2]",
+                        "pinyin": "sannongzixun"
+                    }
+                ]
+            }
+        },
+        {
+            "component_type": 1,//1=新闻 2=广告
+            "component_style": 1,//样式
+            "sort": 3,//组件位置
+            "data": {
+                "alias":"一级导航名称3",
+                "category_id": 11,
+                "pinyin": "sannongzixun/zhengcefagui",
+                "text": [
+                    {
+                        "id": 2863,
+                        "title": "1以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminxinnongcun/nongcunxinfangshe"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "2以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "3以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 2862,
+                        "title": "4以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun/buweidongtai"
+                    },
+                    {
+                        "id": 50126,
+                        "title": "5以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 3976,
+                        "title": "6以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50189,
+                        "title": "7以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminhezuoshe"
+                    },
+                    {
+                        "id": 50190,
+                        "title": "8以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminhezuoshe"
+                    }
+                ],
+                "img": [
+                    {
+                        "id": 50129,
+                        "title": "1以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "linyuting123",
+                        "updated_at": "2025-05-30 13:50:54",
+                        "introduce": "以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "cat_arr_id": "[1,201]",
+                        "catid": 201,
+                        "level": "[1,2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "2以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:46",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[2]",
+                        "catid": 2,
+                        "level": "[2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "3以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:45",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[1]",
+                        "catid": 1,
+                        "level": "[2]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "4以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:44",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[11]",
+                        "catid": 11,
+                        "level": "[2]",
+                        "pinyin": "xinnongcun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "5以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:43",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[14,240]",
+                        "catid": 240,
+                        "level": "[2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "6以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙6",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-04-16 11:04:29",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": null,
+                        "catid": 36,
+                        "level": "[2]",
+                        "pinyin": "sannongzixun"
+                    }
+                ]
+            }
+        },
+    ],
+    "ad": {
+        "ad_tag": "nmw_index_0003"
+    }
 }
-//5.设置seo信息 end---------------------------------------->
-
-//6.广告 start---------------------------------------->
-let adImg1 = ref({});
-let adImg2 = ref({});
-
-onMounted(async () => {
-    //从客户端获取行政职能部门 加快打开速度
-    const { $webUrl, $CwebUrl } = useNuxtApp();
-    //广告1
-    let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmw_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=nmw_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];
 
-})
-//6.广告 end---------------------------------------->
+//静态链接测试数据
+const testTemplateData2 = {
+    "sectorName": "linkSector",
+    "componentList": [
+        {
+            "component_type": 3,
+            "component_style": 1,
+            "sort": 1,
+            "componentData": {}
+        }
+    ],
+    "sort": 4
+}
+//2.页面数据 end---------------------------------------->
 </script>
 
 <style lang="less" scoped>

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

@@ -10,7 +10,15 @@
         <!--滚动图文组合-->
         <templateScrollList :skinId="skinId" :templateData="testTemplateData"></templateScrollList>
         <!--广告组件-->
-        <templateAd :adTag="'nmw_category_0001'" :skinId="skinId" :adData="adData"></templateAd>
+        <templateAd :adTag="'bbzxw_class_2'" :skinId="skinId" :adData="adData"></templateAd>
+        <!--图文组合3-->
+        <templateNewSector3 :skinId="skinId" :templateData="testTemplateData"></templateNewSector3>
+        <!--广告组件-->
+        <!-- <templateAd :adTag="'nmw_category_0001'" :skinId="skinId" :adData="adData"></templateAd> -->
+        <!--图文组合1-->
+        <templateNewSector1 :skinId="skinId" :templateData="testTemplateData"></templateNewSector1>
+        <!--图文组合2-->
+        <templateNewSector2 :skinId="skinId" :templateData="testTemplateData"></templateNewSector2>
     </div>
     <!-- 底部 -->
     <templateFoot></templateFoot>
@@ -29,6 +37,12 @@ import templateAd from '@/components/template/sector/body/ad/1200x90/1.vue'
 import templateChannelMenu from '@/components/template/sector/body/class/menu/1200x100/1.vue'
 //0.2.3 滚动图文组合
 import templateScrollList from '@/components/template/sector/body/class/banner/1200x410/1.vue'
+//0.2.3 图文组合1
+import templateNewSector1 from '@/components/template/sector/body/index/list/1200x470/1.vue'
+//0.2.4 图文组合2
+import templateNewSector2 from '@/components/template/sector/body/index/list/1200x470/2.vue'
+//0.2.5 图文组合3
+import templateNewSector3 from '@/components/template/sector/body/index/list/1200x980/1.vue'
 //0.加载全局模板组件 end---------------------------------------->
 
 //1.获得基本信息单元 start---------------------------------------->

+ 654 - 178
pages/[dir]/list-[id].vue

@@ -1,39 +1,38 @@
 <template>
-    <div id="newsList">
-        <!-- 页面头部 -->
-        <HomePageHead></HomePageHead>
-        <!-- 导航栏 -->
-        <HomePageNavigation></HomePageNavigation>
-        <!-- 列表页广告一 -->
-        <HomeTopTen :imgurl="adImg1" v-if="adImg1"></HomeTopTen>
-        <div>当前皮肤:{{ skinId }}</div>
-        <div><br/><br/><br/></div>
-        
-        <!-- 页面底部 -->
-        <HomeFoot></HomeFoot>
+    <!-- 头部 -->
+    <templateHead></templateHead>
+    <!-- 菜单 -->
+    <templateMenu></templateMenu>
+    <!-- 内容 -->
+    <div>
+        <!--广告组件-->
+        <templateAd :adTag="'nmw_list_0001'" :skinId="skinId" :adData="adData"></templateAd>
+        <!--列表组件-->
+        <templateList :skinId="skinId" :templateData="testTemplateData" :routeId="routeId"></templateList>
     </div>
+    <!-- 底部 -->
+    <templateFoot></templateFoot>
 </template>
 
 <script setup>
-//获得皮肤id
-import { useTemplateBaseStore } from '@/stores/templateBase'
-const templateBaseStore = useTemplateBaseStore()
-const skinId = ref("")//皮肤id
-skinId.value = templateBaseStore.webSiteInfo.website_foot.foot_info.template_id;
+//0.加载全局模板组件 start---------------------------------------->
+//0.1全局通栏
+import templateHead from '@/components/template/sector/head/1200x200/1.vue'
+import templateMenu from '@/components/template/sector/menu/1200x130/1.vue'
+import templateFoot from '@/components/template/sector/foot/1200x580/1.vue'
+//0.2局部通栏
+//0.2.1广告组件
+import templateAd from '@/components/template/sector/body/ad/1200x90/1.vue'
+//0.2.3列表组件
+import templateList from '@/components/template/sector/body/list/list/1200x1220/1.vue'
+//0.加载全局模板组件 end---------------------------------------->
 
-
-//1.页面必备依赖 start ---------------------------------------->
-import { ElBreadcrumb, ElBreadcrumbItem, ElPagination } from 'element-plus';
-import { ArrowRight } from '@element-plus/icons-vue';
+//1.获得基本信息单元 start---------------------------------------->
+//1.1获得页面依赖
 import { ref, onMounted } from 'vue';
-//1.页面必备依赖 end ---------------------------------------->
-
-//2.页面路径 start ---------------------------------------->
-const route = useRoute();
-let articleId = 0; //获取哪个导航下的列表
-//2.1 获得当前的完整路径
-const targetSegment = getRoutePath(1);
-//通过导航路径反向查询导航id
+//1.2使用url查询导航池id
+const targetSegment = getRoutePath(1);//当前页面的url路径 这是第一层 所以获得域名后面的第一层url
+const routeId = ref("");//当前url路径代表的cid
 const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
     method: 'GET',
     query: {
@@ -41,172 +40,649 @@ const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
     },
 });
 if (getRouteId.code == 200) {
-    articleId = getRouteId.data.category_id
-} else {
-    console.log("错误位置:获得页面路径")
+    routeId.value = getRouteId.data.category_id
+}
+//1.3获得二级导航
+const navigateData = await requestDataPromise('/web/getWebsiteModelCategory', {
+    method: 'GET',
+    query: {
+        'placeid': 1,
+        'pid': routeId.value,
+        'num': 8
+    },
+});
+//1.4获得pinia源
+import { useTemplateBaseStore } from '@/stores/templateBase'
+const templateBaseStore = useTemplateBaseStore()
+//1.5获得该页的皮肤id - 在每个组件中也是同样的获得方法
+const skinId = ref("")
+//1.6获得站点基本信息
+const responseStatus = await requestDataPromise('/web/getWebsiteAllinfo', {
+    method: 'GET',
+    query: {
+        'link_textnum':24,
+        'link_imgnum':18,
+        'link_footnum':4
+    },
+});
+if (responseStatus.code == 200) {
+    //1.6.1设置站点基本信息
+    templateBaseStore.setWebSiteInfo(responseStatus.data)
+    //1.6.2设置皮肤id
+    skinId.value = templateBaseStore.webSiteInfo.website_foot.foot_info.template_id;
 }
-//2.页面路径 end ---------------------------------------->
+//1.7获得广告池
+const adData = ref([]);
+const adResponseStatus = await requestDataPromise('/web/getWebsiteAdvertisement', {
+    method: 'GET',
+    query: {},
+});
+if (adResponseStatus.code == 200) {
+    templateBaseStore.setAdList(adResponseStatus.data)
+    adData.value = adResponseStatus.data;
+}
+//1.8.seo
+const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
+    method: 'GET',
+    query: {
+        'catid': routeId.value
+    },
+});
+let seoTitle = setData.data.seo_title;
+let seoDescription = setData.data.seo_description;
+let seoKeywords = setData.data.seo_keywords;
+let seoSuffix = setData.data.suffix;
+let seoName = setData.data.website_name;
+useSeoMeta({
+    title: seoTitle + "_" + seoSuffix,
+    meta: [
+        { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
+        { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
+    ]
+});
+//1.获得基本信息单元 end---------------------------------------->
 
-//3.页面数据 start ---------------------------------------->
-let pageNum = ref(2); //当前页码
+//2.获得页面数据 start---------------------------------------->
+const route = useRoute();
+let pageNum = ref(1); //列表页当前页码
 pageNum.value = parseInt(route.params.id);//路由中传递的分页页码
 let total = ref(1); //总条数
 let pageSize = ref(20); //每页条数
 
-//3.1 新闻列表
-const newsList = ref([]);
-let newslists = async () => {
-    const listData = await requestDataPromise('/web/getWebsiteArticleList', {
-        method: 'GET',
-        query: {
-            'page': pageNum.value,
-            'pageSize': pageSize.value,
-            'catid': articleId
-        },
-    });
-    if (listData.code == 200) {
-        newsList.value = listData.data.rows;
-        total.value = listData.data.count;
+//2.1新闻数据
+// const newsList = ref([]);
+// let newslists = async () => {
+//     const listData = await requestDataPromise('/web/getWebsiteArticleList', {
+//         method: 'GET',
+//         query: {
+//             'page': pageNum.value,
+//             'pageSize': pageSize.value,
+//             'catid': articleId
+//         },
+//     });
+//     if (listData.code == 200) {
+//         newsList.value = listData.data.rows;
+//         total.value = listData.data.count;
+
+//     } else {
+//         console.log("错误位置:获取新闻列表")
+//     }
+// }
+// newslists();
+
+// //2.2分页
+// let changePage = (value) => {
+//     console.log("当前页码", value);
+//     navigateTo(`/${targetSegment}/list-${value}.html`)
+// }
+//2.获得页面数据 end---------------------------------------->
 
-    } else {
-        console.log("错误位置:获取新闻列表")
-    }
-}
-//获得列表
-newslists();
 
-//3.2 分页事件
-let changePage = (value) => {
-    console.log("当前页码", value);
-    navigateTo(`/${targetSegment}/list-${value}.html`)
-}
-//3.页面数据 end ---------------------------------------->
 
 //4.面包屑 start ---------------------------------------->
-const name = ref('')
-//4.1 当前频道名称
-let getPageName = async () => {
-    const pageName = await requestDataPromise('/web/getOneWebsiteCategory', {
-        method: 'GET',
-        query: {
-            'catid': articleId
+// const name = ref('')
+// //4.1 当前频道名称
+// let getPageName = async () => {
+//     const pageName = await requestDataPromise('/web/getOneWebsiteCategory', {
+//         method: 'GET',
+//         query: {
+//             'catid': articleId
+//         },
+//     });
+//     if (pageName.code == 200) {
+//         name.value = pageName.data.alias
+//     } else {
+//         console.log("错误位置:获取当前频道名称", pageName.message)
+//     }
+// }
+// getPageName();
+
+// //4.2 查询是否含有父级导航
+// 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': articleId
+//         },
+//     });
+//     if (listData.code == 200) {
+//         parent_name.value = listData.data.parent_name;
+//         parent_id.value = listData.data.parent_id;
+//         parent_pinyin.value = listData.data.parent_pinyin;
+//     } else {
+//         console.log("错误位置:查询父级导航信息")
+//     }
+//     getSecondNav();
+// }
+// getParentNav();
+
+// //4.3 获取二级栏目列表
+// const secondNav = ref([]);
+// let getSecondNav = async () => {
+//     const listData = await requestDataPromise('/web/getWebsiteModelCategory', {
+//         method: 'GET',
+//         query: {
+//             'placeid': 1,
+//             'pid': parent_id.value,
+//             'num': 8,
+//         },
+//     });
+//     console.log('listData', listData);
+
+//     if (listData.code == 200) {
+//         secondNav.value = listData.data
+//     } else {
+//         console.log("错误位置:获得二级栏目列表")
+//     }
+// }
+//4.面包屑 end ---------------------------------------->
+
+
+
+//2.页面数据 start---------------------------------------->
+//2.0 测试数据 后期移除
+const testTemplateData = {
+    "sectorName": "text",
+    "componentList": [
+        {
+            "component_type": 1,//1=新闻 2=广告
+            "component_style": 1,//样式
+            "sort": 1,//组件位置
+            "data": {
+                "alias":"一级导航名称",
+                "category_id": 11,
+                "pinyin": "nongyeshengchan",
+                "text": [
+                    {
+                        "id": 2863,
+                        "title": "1以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminxinnongcun/nongcunxinfangshe"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "2以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "3以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 2862,
+                        "title": "4以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun/buweidongtai"
+                    },
+                    {
+                        "id": 50126,
+                        "title": "5以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 3976,
+                        "title": "6以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50189,
+                        "title": "7以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminhezuoshe"
+                    },
+                    {
+                        "id": 50190,
+                        "title": "8以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminhezuoshe"
+                    }
+                ],
+                "img": [
+                    {
+                        "id": 50129,
+                        "title": "1以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "linyuting123",
+                        "updated_at": "2025-05-30 13:50:54",
+                        "introduce": "以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "cat_arr_id": "[1,201]",
+                        "catid": 201,
+                        "level": "[1,2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "2以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:46",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[2]",
+                        "catid": 2,
+                        "level": "[2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "3以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:45",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[1]",
+                        "catid": 1,
+                        "level": "[2]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "4以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:44",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[11]",
+                        "catid": 11,
+                        "level": "[2]",
+                        "pinyin": "xinnongcun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "5以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:43",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[14,240]",
+                        "catid": 240,
+                        "level": "[2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "6以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙6",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-04-16 11:04:29",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": null,
+                        "catid": 36,
+                        "level": "[2]",
+                        "pinyin": "sannongzixun"
+                    }
+                ]
+            }
         },
-    });
-    if (pageName.code == 200) {
-        name.value = pageName.data.alias
-    } else {
-        console.log("错误位置:获取当前频道名称", pageName.message)
-    }
-}
-getPageName();
-
-//4.2 查询是否含有父级导航
-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': articleId
+        {
+            "component_type": 1,//1=新闻 2=广告
+            "component_style": 1,//样式
+            "sort": 1,//组件位置
+            "data": {
+                "alias":"一级导航名称2",
+                "category_id": 11,
+                "pinyin": "sannongzixun/zhengcefagui",
+                "text": [
+                    {
+                        "id": 2863,
+                        "title": "1以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminxinnongcun/nongcunxinfangshe"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "2以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "3以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 2862,
+                        "title": "4以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun/buweidongtai"
+                    },
+                    {
+                        "id": 50126,
+                        "title": "5以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 3976,
+                        "title": "6以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50189,
+                        "title": "7以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminhezuoshe"
+                    },
+                    {
+                        "id": 50190,
+                        "title": "8以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminhezuoshe"
+                    }
+                ],
+                "img": [
+                    {
+                        "id": 50129,
+                        "title": "1以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "linyuting123",
+                        "updated_at": "2025-05-30 13:50:54",
+                        "introduce": "以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "cat_arr_id": "[1,201]",
+                        "catid": 201,
+                        "level": "[1,2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "2以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:46",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[2]",
+                        "catid": 2,
+                        "level": "[2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "3以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:45",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[1]",
+                        "catid": 1,
+                        "level": "[2]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "4以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:44",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[11]",
+                        "catid": 11,
+                        "level": "[2]",
+                        "pinyin": "xinnongcun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "5以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:43",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[14,240]",
+                        "catid": 240,
+                        "level": "[2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "6以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙6",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-04-16 11:04:29",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": null,
+                        "catid": 36,
+                        "level": "[2]",
+                        "pinyin": "sannongzixun"
+                    }
+                ]
+            }
         },
-    });
-    if (listData.code == 200) {
-        parent_name.value = listData.data.parent_name;
-        parent_id.value = listData.data.parent_id;
-        parent_pinyin.value = listData.data.parent_pinyin;
-    } else {
-        console.log("错误位置:查询父级导航信息")
-    }
-    getSecondNav();
-}
-getParentNav();
-
-//4.3 获取二级栏目列表
-const secondNav = ref([]);
-let getSecondNav = async () => {
-    const listData = await requestDataPromise('/web/getWebsiteModelCategory', {
-        method: 'GET',
-        query: {
-            'placeid': 1,
-            'pid': parent_id.value,
-            'num': 8,
+        {
+            "component_type": 1,//1=新闻 2=广告
+            "component_style": 1,//样式
+            "sort": 3,//组件位置
+            "data": {
+                "alias":"一级导航名称3",
+                "category_id": 11,
+                "pinyin": "sannongzixun/zhengcefagui",
+                "text": [
+                    {
+                        "id": 2863,
+                        "title": "1以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminxinnongcun/nongcunxinfangshe"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "2以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "3以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 2862,
+                        "title": "4以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun/buweidongtai"
+                    },
+                    {
+                        "id": 50126,
+                        "title": "5以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 3976,
+                        "title": "6以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50189,
+                        "title": "7以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminhezuoshe"
+                    },
+                    {
+                        "id": 50190,
+                        "title": "8以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "pinyin": "nongminhezuoshe"
+                    }
+                ],
+                "img": [
+                    {
+                        "id": 50129,
+                        "title": "1以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "linyuting123",
+                        "updated_at": "2025-05-30 13:50:54",
+                        "introduce": "以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "cat_arr_id": "[1,201]",
+                        "catid": 201,
+                        "level": "[1,2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "2以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:46",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[2]",
+                        "catid": 2,
+                        "level": "[2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "3以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:45",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[1]",
+                        "catid": 1,
+                        "level": "[2]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "4以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:44",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[11]",
+                        "catid": 11,
+                        "level": "[2]",
+                        "pinyin": "xinnongcun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "5以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-05-30 13:50:43",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": "[14,240]",
+                        "catid": 240,
+                        "level": "[2,3]",
+                        "pinyin": "sannongzixun"
+                    },
+                    {
+                        "id": 50129,
+                        "title": "6以生态为内核推动文旅发展海南深山黎寨找到乡村振兴金钥匙6",
+                        "imgurl": "http://img.bjzxtw.org.cn/dev/image/jpeg/20250220/1740044079754901.png",
+                        "author": "佚名",
+                        "updated_at": "2025-04-16 11:04:29",
+                        "introduce": "描述",
+                        "islink": 0,
+                        "linkurl": "",
+                        "copyfrom": "本网",
+                        "cat_arr_id": null,
+                        "catid": 36,
+                        "level": "[2]",
+                        "pinyin": "sannongzixun"
+                    }
+                ]
+            }
         },
-    });
-    console.log('listData', listData);
-
-    if (listData.code == 200) {
-        secondNav.value = listData.data
-    } else {
-        console.log("错误位置:获得二级栏目列表")
+    ],
+    "ad": {
+        "ad_tag": "nmw_index_0003"
     }
 }
-//4.面包屑 end ---------------------------------------->
 
-//5.设置seo信息 start---------------------------------------->
-const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
-    method: 'GET',
-    query: {
-        'catid': articleId
-    },
-});
-
-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 + "_" + seoName + "_" + seoSuffix,
-        meta: [
-            { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
-            { name: 'description', content: seoDescription + "_" + 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 ---------->")
-}
-//5.设置seo信息 end---------------------------------------->
-
-//6.广告 start---------------------------------------->
-let adImg1 = ref({});
-let adImg2 = ref({});
-
-onMounted(async () => {
-
-    //从客户端获取行政职能部门 加快打开速度
-    const { $webUrl, $CwebUrl } = useNuxtApp();
-    //广告1
-    let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmw_list_0001`
-    const responseAd1 = await fetch(url, {
-        headers: {
-            'Content-Type': 'application/json',
-            'Userurl': $CwebUrl,
-            'Origin': $CwebUrl
+//静态链接测试数据
+const testTemplateData2 = {
+    "sectorName": "linkSector",
+    "componentList": [
+        {
+            "component_type": 3,
+            "component_style": 1,
+            "sort": 1,
+            "componentData": {}
         }
-    });
-    const resultAd1 = await responseAd1.json();
-    adImg1.value = resultAd1.data[0];
-
-    //广告2
-    let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmw_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];
-
-})
-//6.广告 end---------------------------------------->
+    ],
+    "sort": 4
+}
+//2.页面数据 end---------------------------------------->
 </script>
 
 <style lang="less" scoped>

+ 16 - 11
pages/index.vue

@@ -10,21 +10,22 @@
         <!--轮播图-->
         <templateBanner :skinId="skinId" :templateData="testTemplateData"></templateBanner>
         <!--广告组件 丙丙网-->
-        <!-- <templateAd :adTag="'bbzxw_index_1'" :skinId="skinId" :adData="adData"></templateAd> -->
+        <templateAd :adTag="'bbzxw_index_1'" :skinId="skinId" :adData="adData"></templateAd>
         <!--广告组件 农民工-->
-        <templateAd :adTag="'nmw_index_0001'" :skinId="skinId" :adData="adData"></templateAd>
+        <!-- <templateAd :adTag="'nmw_index_0001'" :skinId="skinId" :adData="adData"></templateAd> -->
         <!--静态外链通栏-->
         <templateStaticLink :skinId="skinId" :templateData="testTemplateData2"></templateStaticLink>
         <!--图文组合1-->
+        <!-- <templateNewSector1 :skinId="skinId" :templateData="testTemplateData" :testData="testTemplateData3"></templateNewSector1> -->
         <templateNewSector1 :skinId="skinId" :templateData="testTemplateData"></templateNewSector1>
         <!--图文组合2-->
         <templateNewSector2 :skinId="skinId" :templateData="testTemplateData"></templateNewSector2>
         <!--图文组合3-->
         <templateNewSector3 :skinId="skinId" :templateData="testTemplateData"></templateNewSector3>
         <!--图文与广告组合 丙丙网-->
-        <!-- <templateNewAndAd :skinId="skinId" :templateData="testTemplateData" :adData="adData" :adTag="'bbzxw_index_9'"></templateNewAndAd> -->
+        <templateNewAndAd :skinId="skinId" :templateData="testTemplateData" :adData="adData" :adTag="'bbzxw_index_9'"></templateNewAndAd>
         <!--图文与广告组合 农民工-->
-        <templateNewAndAd :skinId="skinId" :templateData="testTemplateData" :adData="adData" :adTag="'nmw_index_0003'"></templateNewAndAd>
+        <!-- <templateNewAndAd :skinId="skinId" :templateData="testTemplateData" :adData="adData" :adTag="'nmw_index_0003'"></templateNewAndAd> -->
     </div>
     <!-- 底部 -->
     <templateFoot></templateFoot>
@@ -80,6 +81,7 @@ if (responseStatus.code == 200) {
     websiteId.value = responseStatus.data.website_head.id;//获得网站id
     //0.3.2设置皮肤id
     skinId.value = templateBaseStore.webSiteInfo.website_foot.foot_info.template_id;
+    console.log("当前的网站id:"+responseStatus.data.website_head.id)
     //0.3.3设置seo信息
     let seoTitle = templateBaseStore.webSiteInfo.website_head.title;
     let seoDescription = templateBaseStore.webSiteInfo.website_head.description;
@@ -108,13 +110,16 @@ if (adResponseStatus.code == 200) {
 
 //2.页面数据 start---------------------------------------->
 //2.1获得页面数据
-// const responsePageData = await requestDataPromise('/client/indexData', {
-//     method: 'POST',
-//     body: {
-//         'website_id':websiteId.value,
-//         'getpage':'index'//获得首页数据
-//     },
-// });
+const responsePageData = await requestDataPromise('/client/indexData', {
+    method: 'POST',
+    body: {
+        'website_id':websiteId.value,
+        'getpage':'index'//获得首页数据
+    },
+});
+const testTemplateData3 = responsePageData.data.template.index[5];
+//console.log(testTemplateData3)
+console.log(responsePageData)
 
 //2.0 测试数据 后期移除
 const testTemplateData = {