소스 검색

二级列表页完成

Jing 2 달 전
부모
커밋
96e8e2ee70

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

@@ -28,6 +28,7 @@ interface _GlobalComponents {
     'HomeTopTenTitle': typeof import("../components/home/topTenTitle.vue")['default']
     'HomeZixuntuijian': typeof import("../components/home/zixuntuijian.vue")['default']
     'TopicHead': typeof import("../components/topic/head.vue")['default']
+    'Zhinengqwnda': typeof import("../components/zhinengqwnda.vue")['default']
     'NuxtWelcome': typeof import("../node_modules/nuxt/dist/app/components/welcome.vue")['default']
     'NuxtLayout': typeof import("../node_modules/nuxt/dist/app/components/nuxt-layout")['default']
     'NuxtErrorBoundary': typeof import("../node_modules/nuxt/dist/app/components/nuxt-error-boundary")['default']
@@ -77,6 +78,7 @@ interface _GlobalComponents {
     'LazyHomeTopTenTitle': typeof import("../components/home/topTenTitle.vue")['default']
     'LazyHomeZixuntuijian': typeof import("../components/home/zixuntuijian.vue")['default']
     'LazyTopicHead': typeof import("../components/topic/head.vue")['default']
+    'LazyZhinengqwnda': typeof import("../components/zhinengqwnda.vue")['default']
     'LazyNuxtWelcome': typeof import("../node_modules/nuxt/dist/app/components/welcome.vue")['default']
     'LazyNuxtLayout': typeof import("../node_modules/nuxt/dist/app/components/nuxt-layout")['default']
     'LazyNuxtErrorBoundary': typeof import("../node_modules/nuxt/dist/app/components/nuxt-error-boundary")['default']
@@ -132,6 +134,7 @@ export const HomeSannongzixun: typeof import("../components/home/sannongzixun.vu
 export const HomeTopTenTitle: typeof import("../components/home/topTenTitle.vue")['default']
 export const HomeZixuntuijian: typeof import("../components/home/zixuntuijian.vue")['default']
 export const TopicHead: typeof import("../components/topic/head.vue")['default']
+export const Zhinengqwnda: typeof import("../components/zhinengqwnda.vue")['default']
 export const NuxtWelcome: typeof import("../node_modules/nuxt/dist/app/components/welcome.vue")['default']
 export const NuxtLayout: typeof import("../node_modules/nuxt/dist/app/components/nuxt-layout")['default']
 export const NuxtErrorBoundary: typeof import("../node_modules/nuxt/dist/app/components/nuxt-error-boundary")['default']
@@ -181,6 +184,7 @@ export const LazyHomeSannongzixun: typeof import("../components/home/sannongzixu
 export const LazyHomeTopTenTitle: typeof import("../components/home/topTenTitle.vue")['default']
 export const LazyHomeZixuntuijian: typeof import("../components/home/zixuntuijian.vue")['default']
 export const LazyTopicHead: typeof import("../components/topic/head.vue")['default']
+export const LazyZhinengqwnda: typeof import("../components/zhinengqwnda.vue")['default']
 export const LazyNuxtWelcome: typeof import("../node_modules/nuxt/dist/app/components/welcome.vue")['default']
 export const LazyNuxtLayout: typeof import("../node_modules/nuxt/dist/app/components/nuxt-layout")['default']
 export const LazyNuxtErrorBoundary: typeof import("../node_modules/nuxt/dist/app/components/nuxt-error-boundary")['default']

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

@@ -1 +1 @@
-{"id":"dev","timestamp":1738888334097}
+{"id":"dev","timestamp":1739233237870}

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

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

+ 3 - 3
.nuxt/nitro.json

@@ -1,5 +1,5 @@
 {
-  "date": "2025-02-07T00:32:23.811Z",
+  "date": "2025-02-11T00:20:48.141Z",
   "preset": "nitro-dev",
   "framework": {
     "name": "nuxt",
@@ -9,9 +9,9 @@
     "nitro": "2.10.4"
   },
   "dev": {
-    "pid": 504,
+    "pid": 16020,
     "workerAddress": {
-      "socketPath": "\\\\.\\pipe\\nitro\\worker-504-1.sock"
+      "socketPath": "\\\\.\\pipe\\nitro\\worker-16020-1.sock"
     }
   }
 }

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

@@ -1,6 +1,6 @@
 // Generated by nuxi
-/// <reference types="@nuxt/devtools" />
 /// <reference types="@nuxt/telemetry" />
+/// <reference types="@nuxt/devtools" />
 /// <reference path="types/builder-env.d.ts" />
 /// <reference types="nuxt" />
 /// <reference path="types/app-defaults.d.ts" />

+ 28 - 0
app.vue

@@ -21,7 +21,14 @@
           <p>关闭</p>
         </li>
       </ul> -->
+      <!-- <div class="kefu1">
+        <img src="./static//images/weixin 1.png" alt="">
+      </div> -->
     </NuxtLayout>
+    <!-- <div class="zhinengwenda">
+      <Zhinengqwnda></Zhinengqwnda>
+    </div> -->
+
   </div>
 </template>
 
@@ -58,4 +65,25 @@
     }
   }
 }
+
+.kefu1 {
+  width: 70px;
+  height: 70px;
+  position: fixed;
+  bottom: 0px;
+  right: 220px;
+}
+
+.zhinengwenda {
+  width: 360px;
+  height: 562px;
+  position: fixed;
+  bottom: 85px;
+  right: 220px;
+  // border: 1px solid #CCCCCC;
+  box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.1);
+  border-radius: 10px;
+  background-color: #fff;
+  z-index: 1000;
+}
 </style>

+ 31 - 5
components/home/BigTitle_List.vue

@@ -3,16 +3,34 @@
     <div class="list">
         <div class="inner">
             <ul>
-                <li v-for="item in 4" class="left">
+                <li v-for="item in headlinelist1" class="left">
                     <i></i>
-                    <a>高邮市周山镇开展渔业安全生产应急演……</a>
+                    <a>{{ item.title }}</a>
                 </li>
             </ul>
         </div>
     </div>
 </template>
 
-<script>
+<script setup>
+import { ref, onMounted } from "vue"
+const nuxtApp = useNuxtApp();
+const axios = nuxtApp.$axios;
+//小头条
+const headlinelist1 = useState("headlinelist1", () => "");
+const headline1 = async () => {
+    try {
+        const response = await axios.get(`/web/getWebsiteArticlett?pageSize=${2}&level=${1}&placeid=${1}`);
+        console.log('大标题', response.data);
+        headlinelist1.value = response.data;
+    } catch (error) {
+        console.error(error);
+    }
+}
+onMounted(() => {
+    // 小标题
+    headline1()
+})
 </script>
 
 
@@ -30,6 +48,7 @@
         height: 20px;
 
         >li {
+            width: 266px;
             margin-right: 12px;
 
             >i {
@@ -43,8 +62,12 @@
             }
 
             >a {
+                display: inline-block;
                 width: 266px;
                 height: 20px;
+                white-space: nowrap;
+                overflow: hidden;
+                text-overflow: ellipsis;
                 font-family: PingFang SC, PingFang SC;
                 font-weight: 600;
                 font-size: 14px;
@@ -53,12 +76,15 @@
                 text-align: left;
                 font-style: normal;
                 text-transform: none;
+                vertical-align: middle;
             }
         }
-        >li:hover>i{
+
+        >li:hover>i {
             background-color: #139602;
         }
-        >li:hover>a{
+
+        >li:hover>a {
             color: #139602;
         }
     }

+ 13 - 7
components/home/MoreService.vue

@@ -14,7 +14,7 @@
                         <h3>{{ item.title }}</h3>
                         <p>
                             <!-- 外链数据 -->
-                            <NuxtLink to="/primaryNavigation/1">
+                            <NuxtLink :to="item.url" target="_blank">
                                 查看详情
                                 <span class="iconfont icon-youjiantou"></span>
                             </NuxtLink>
@@ -32,37 +32,43 @@ let arr = [
         id: 1,
         title: "会员服务",
         titleTopImg: "/images/Group 1560.png",
-        leftImg: "/images/djdhdhsjk46448_Endless_rice_fields_565ffc17-1845-4d9d-be71-3c745b1ab6bb.png"
+        leftImg: "/images/djdhdhsjk46448_Endless_rice_fields_565ffc17-1845-4d9d-be71-3c745b1ab6bb.png",
+        url:"http://dy.qgsnfzzx.org.cn/list-hyfw.html",
     },
     {
         id: 2,
         title: "人员查询",
         titleTopImg: "/images/Group 1819.png",
-        leftImg: "/images/sgbhsihfgisdfaasda45632113_A_Chinese_farmer_carrying_a_hoe_is_h_a23e4b96-a6d7-49e1-a283-68c395f277f9(3).png"
+        leftImg: "/images/sgbhsihfgisdfaasda45632113_A_Chinese_farmer_carrying_a_hoe_is_h_a23e4b96-a6d7-49e1-a283-68c395f277f9(3).png",
+        url:"http://dy.qgsnfzzx.org.cn/list-renyuanchaxun.html",
     },
     {
         id: 3,
         title: "调研选题",
         titleTopImg: "/images/Group 1820.png",
-        leftImg: "/images/sgbhsihfgisdfaasda45632113_A_Chinese_farmer_carrying_a_hoe_is_h_1ba32eee-c498-4dd7-9cd9-013568c09db7(2).png"
+        leftImg: "/images/sgbhsihfgisdfaasda45632113_A_Chinese_farmer_carrying_a_hoe_is_h_1ba32eee-c498-4dd7-9cd9-013568c09db7(2).png",
+        url:"http://dy.qgsnfzzx.org.cn/list-diaoyanxuanti.html",
     },
     {
         id: 4,
         title: "车辆查询",
         titleTopImg: "/images/Group 1821.png",
-        leftImg: "/images/rgmezdvz_19982_On_a_vast_and_boundless_wheat_field_many_harvest_5b5cfeda-ef17-4551-a935-5f8e3f799b69(2).png"
+        leftImg: "/images/rgmezdvz_19982_On_a_vast_and_boundless_wheat_field_many_harvest_5b5cfeda-ef17-4551-a935-5f8e3f799b69(2).png",
+        url:"http://dy.qgsnfzzx.org.cn/list-cheliangchaxun.html",
     },
     {
         id: 5,
         title: "地市中心",
         titleTopImg: "/images/Group 1822.png",
-        leftImg: "/images/htjskikess_Harvester_harvesting_in_wheat_fields_619469a3-bdc0-40ca-9ac8-e2f17a0ae33f.png"
+        leftImg: "/images/htjskikess_Harvester_harvesting_in_wheat_fields_619469a3-bdc0-40ca-9ac8-e2f17a0ae33f.png",
+        url:"http://dy.qgsnfzzx.org.cn/list-difangzhongxin.html",
     },
     {
         id: 6,
         title: "介绍信查询",
         titleTopImg: "/images/Group 1823.png",
-        leftImg: "/images/rgmezdvz_19982_A_Chinese_farmer_carrying_a_hoe_is_hoeing_the_fi_75ccecda-5a25-4a4b-be60-d950bb8a2666(2).png"
+        leftImg: "/images/rgmezdvz_19982_A_Chinese_farmer_carrying_a_hoe_is_hoeing_the_fi_75ccecda-5a25-4a4b-be60-d950bb8a2666(2).png",
+        url:"http://dy.qgsnfzzx.org.cn/list-jieshaoxinchaxun.html",
     }
 ]
 </script>

+ 21 - 11
components/home/PageMessage.vue

@@ -5,8 +5,8 @@
 
             <!-- 大标题 -->
             <div class="bigTitle">
-                <div class="inner" v-for="(item,index) in headlinelist" :key="index">
-                    <img :src="item.imgurl" alt="" class="left">
+                <div class="inner" v-for="(item, index) in headlinelist" :key="index">
+                    <img src="../../static/images/toutiao.png" alt="" class="left">
                     <h1 class="left">{{ item.title }}</h1>
                 </div>
             </div>
@@ -32,7 +32,7 @@
                 <div class="hotTop">
                     <h3>
                         热点资讯
-                        <span>查看更多</span>
+                        <!-- <span>查看更多</span> -->
                     </h3>
                     <ul>
                         <li v-for="(item, index) in hotNewsList" :key="index">
@@ -44,10 +44,10 @@
                 <div class="suggest">
                     <h3>
                         资讯推荐
-                        <span>查看更多</span>
+                        <!-- <span>查看更多</span> -->
                     </h3>
                     <ul>
-                        <li v-for="(item, index) in messageList" :key="index">
+                        <li v-for="(item, index) in messageList" :key="index" >
                             <em></em>
                             <span>{{ item.title }}</span>
                         </li>
@@ -63,19 +63,18 @@ import { ref, onMounted } from "vue"
 const nuxtApp = useNuxtApp();
 const axios = nuxtApp.$axios;
 
-//头条
+//头条
 const headlinelist = useState("headlinelist", () => "");
 const headline = async () => {
     try {
         const response = await axios.get(`/web/getWebsiteArticlett?pageSize=${1}&level=${1}&placeid=${0}`);
-        // console.log(response.data);
+        console.log('大标题', response.data);
         headlinelist.value = response.data;
     } catch (error) {
         console.error(error);
     }
 }
 
-
 //获取推荐图
 const recommendImage = useState("recommendImage", () => "");
 const recommendList = async () => {
@@ -132,7 +131,6 @@ onMounted(() => {
 </script>
 
 <style lang="less" scoped>
-
 // 大标题
 .bigTitle {
     width: 100%;
@@ -147,11 +145,18 @@ onMounted(() => {
     }
 
     h1 {
-        // width: 860px;
+        width: 1025px;
         height: 70px;
         font-family: PingFang SC, PingFang SC;
         font-weight: 600;
         font-size: 50px;
+        // font-size: 38px;
+        margin-bottom: 25px;
+        white-space: nowrap;
+        /* 防止文本换行 */
+        overflow: hidden;
+        /* 隐藏溢出的内容 */
+        text-overflow: ellipsis;
         color: #028E21;
         line-height: 59px;
         text-align: left;
@@ -304,7 +309,8 @@ onMounted(() => {
                     }
 
                     >span {
-                        width: 320px;
+                        display: inline-block;
+                        width: 330px;
                         height: 25px;
                         font-family: PingFang SC, PingFang SC;
                         font-weight: 500;
@@ -315,6 +321,10 @@ onMounted(() => {
                         font-style: normal;
                         text-transform: none;
                         padding-left: 9px;
+                        white-space: nowrap;
+                        overflow: hidden;
+                        text-overflow: ellipsis;
+                        vertical-align: middle;
                     }
 
                     >span:hover {

+ 35 - 27
components/home/SecondaryHeading.vue

@@ -9,18 +9,21 @@
             </h2>
             <p class="introduction">
                 <strong>频道介绍</strong>
-                <span v-for="item in ChannelList">
-                    <a href="/primaryNavigation/newsList">{{ item }}</a>
-                </span>
+                <div v-for="(item,index) in titleData">
+                    <span v-if="index<=7">
+                        <NuxtLink :to="`/primaryNavigation/newsList/${item.id}`" target="_blank">{{ item.name }}</NuxtLink>
+                    </span>
+                </div>
             </p>
         </div>
     </div>
 </template>
 
 <script setup>
-let ChannelList = ['理论前沿', '典型经验', '魅力乡村', '农民之家', '农业天地', '农村建设', '高端资讯', '实践探索']
+//let ChannelList = ['理论前沿', '典型经验', '魅力乡村', '农民之家', '农业天地', '农村建设', '高端资讯', '实践探索']
 const props = defineProps({
-    titleName: String
+    titleName: String,
+    titleData:Array
 });
 </script>
 
@@ -75,6 +78,7 @@ const props = defineProps({
         position: absolute;
         bottom: 0;
         right: 0;
+        display: flex;
 
         >strong:first-child {
             margin-left: 40px;
@@ -95,33 +99,37 @@ const props = defineProps({
 
         }
 
-        >span {
-            width: 64px;
-            height: 21px;
-            font-family: Microsoft YaHei, Microsoft YaHei;
-            font-weight: 400;
-            font-size: 16px;
-            color: #000000;
-            line-height: 21px;
-            text-align: left;
-            font-style: normal;
-            text-transform: none;
-            margin-top: 17px;
-            padding: 0 24px;
-            border-right: 1px solid #ccc;
+        div {
+            
+            >span {
+                width: 64px;
+                height: 21px;
+                font-family: Microsoft YaHei, Microsoft YaHei;
+                font-weight: 400;
+                font-size: 16px;
+                color: #000000;
+                line-height: 21px;
+                text-align: left;
+                font-style: normal;
+                text-transform: none;
+                margin-top: 17px;
+                padding: 0 24px;
+                border-right: 1px solid #ccc;
 
-            a {
-                color: #000;
+                a {
+                    color: #000;
+                }
             }
-        }
 
-        >span:hover a {
-            color: #139602;
-        }
+            >span:hover a {
+                color: #139602;
+            }
 
-        >span:last-child {
-            border: none;
+            >span:last-child {
+                border: none;
+            }
         }
+        
     }
 }
 </style>

+ 73 - 32
components/home/Slider.vue

@@ -3,12 +3,12 @@
     <div class="slider">
         <!-- 标题部分 -->
         <div class="scienceTitle">
-            <h5>三农科教</h5>
-            <p class="title">
+            <h5>{{ navigation1[16]?.alias }}</h5>
+            <!-- <p class="title">
                 <span v-for="(item, index) in scienceTitleList" :key="index" @mousemove="changeUl(index)">
                     <a href="#">{{ item.title }}</a>
                 </span>
-            </p>
+            </p> -->
 
         </div>
         <!-- 标题下内容列表 -->
@@ -16,13 +16,12 @@
             <transition name="fade">
                 <div class="scienceListBox">
                     <ul class="scienceList">
-                        <li v-for="item in 6">
-                            <img src="../../static/images/sgbhsihfgisdfaasda45632113_A_Chinese_farmer_carrying_a_hoe_is_h_a23e4b96-a6d7-49e1-a283-68c395f277f9.png"
-                                alt="">
-                            <p>市农业农村局关于印发连云港市市级…</p>
+                        <li v-for="item in boxData1">
+                            <img :src="item.imgurl">
+                            <p>{{ item.title }}</p>
                         </li>
                     </ul>
-                    <ul class="scienceList">
+                    <!-- <ul class="scienceList">
                         <li v-for="item in 6">
                             <img src="../../static/images/sgbhsihfgisdfaasda45632113_A_Chinese_farmer_carrying_a_hoe_is_h_1ba32eee-c498-4dd7-9cd9-013568c09db7.png"
                                 alt="">
@@ -42,7 +41,7 @@
                                 alt="">
                             <p>市农业农村局关于印发连云港市市级…</p>
                         </li>
-                    </ul>
+                    </ul> -->
                 </div>
             </transition>
         </div>
@@ -52,6 +51,39 @@
 
 <script setup>
 
+const nuxtApp = useNuxtApp();
+const axios = nuxtApp.$axios;
+
+const radio1 = ref('1')
+
+//获取导航一的栏目
+const navigation1 = ref("");
+const navigateList = async () => {
+    try {
+        const response = await axios.get(`/web/getWebsiteModelCategory?placeid=${1}&pid=${0}&num=${24}`);
+        console.log('一级导航', response.data);
+        navigation1.value = response.data;
+    } catch (error) {
+        console.error(error);
+    }
+}
+
+const boxData1 = ref("");
+const getWebsiteModelArticles = async () => {
+    try {
+        const response = await axios.get(`/web/getWebsiteModelArticles?catid=${16}&level=${1}&pagesize=${6}`);
+        console.log('一级导航', response.data);
+        boxData1.value = response.data;
+    } catch (error) {
+        console.error(error);
+    }
+}
+onMounted(() => {
+    // 一级导航
+    navigateList()
+    getWebsiteModelArticles()
+})
+
 
 let scienceTitleList = [
     {
@@ -74,26 +106,26 @@ let scienceTitleList = [
 
 
 //鼠标移入标题时,下方内容会发生变化
-let changeUl = (index) => {
-    // console.log(index);
-    if (process.browser) {
-        let scienceListBox = document.querySelector('.scienceListBox');
-        let titleList = document.querySelectorAll('.title>span>a')
-        for (let i = 0; i < titleList.length; i++) {
-            titleList[i].className = ''
-        }
-        titleList[index].setAttribute('class', 'current')
-        if (index == 0) {
-            scienceListBox.style.left = 0
-        } else if (index == 1) {
-            scienceListBox.style.left = "-790px"
-        } else if (index == 2) {
-            scienceListBox.style.left = "-1580px"
-        } else if (index == 3) {
-            scienceListBox.style.left = "-2370px"
-        }
-    }
-}
+// let changeUl = (index) => {
+//     // console.log(index);
+//     if (process.browser) {
+//         let scienceListBox = document.querySelector('.scienceListBox');
+//         let titleList = document.querySelectorAll('.title>span>a')
+//         for (let i = 0; i < titleList.length; i++) {
+//             titleList[i].className = ''
+//         }
+//         titleList[index].setAttribute('class', 'current')
+//         if (index == 0) {
+//             scienceListBox.style.left = 0
+//         } else if (index == 1) {
+//             scienceListBox.style.left = "-790px"
+//         } else if (index == 2) {
+//             scienceListBox.style.left = "-1580px"
+//         } else if (index == 3) {
+//             scienceListBox.style.left = "-2370px"
+//         }
+//     }
+// }
 
 </script>
 
@@ -169,7 +201,8 @@ let changeUl = (index) => {
     position: relative;
     overflow: hidden;
 }
-.fade-in{
+
+.fade-in {
     animation: fadeIn 1s ease-in-out;
 }
 
@@ -218,8 +251,15 @@ let changeUl = (index) => {
         }
 
         >p {
-            height: 56px;
-            width: 248px;
+            width: 254px;
+            display: -webkit-box;
+            -webkit-box-orient: vertical;
+            -webkit-line-clamp: 2;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            word-break: break-all;
+            height: 48px;
+            overflow: hidden;
             font-family: PingFang SC, PingFang SC;
             font-weight: 600;
             font-size: 18px;
@@ -228,6 +268,7 @@ let changeUl = (index) => {
             text-align: left;
             font-style: normal;
             text-transform: none;
+            
         }
 
         >p:hover {

+ 9 - 6
components/home/SmallSwiper.vue

@@ -1,19 +1,19 @@
 <template>
     <div class="swiper">
         <el-carousel :interval="5000" arrow="always" height="214px" indicator-class="custom-indicator">
-            <el-carousel-item v-for="item in 4" :key="item">
-                <img src="../../static/images/sgbhsihfgisdfaasda45632113_A_group_of_Chinese_farmers_are_trans_bb6f6cc3-e86b-4706-840c-0974beef5b2f@2x.png"
-                    alt="">
-                <span>高邮市周山镇开展渔业安全生产应急...</span>
+            <el-carousel-item v-for="item in swiperData" :key="item">
+                <img :src="item.imgurl">
+                <span>{{item.title}}</span>
             </el-carousel-item>
         </el-carousel>
     </div>
-
 </template>
 
 <script setup>
-
 import { ElCarousel, ElCarouselItem } from 'element-plus'
+const props = defineProps({
+    swiperData: Array
+});
 
 </script>
 
@@ -42,6 +42,9 @@ import { ElCarousel, ElCarouselItem } from 'element-plus'
         font-size: 20px;
         color: #FFFFFF;
         background-color: rgba(0, 0, 0, 0.5);
+        white-space: nowrap;      /* 禁止换行 */
+        overflow: hidden;        /* 隐藏超出部分 */
+        text-overflow: ellipsis; /* 超出部分显示省略号 */
     }
 }
 

+ 12 - 2
components/home/pageNavigation.vue

@@ -6,7 +6,8 @@
                 <!-- 导航一 -->
                 <ul class="navigationOne">
                     <li v-for="(item, index) in navigation1" :key="index">
-                        <NuxtLink :to="`/primaryNavigation/${item.name}`" target="_blank">{{ item.name }}</NuxtLink>
+                        <!-- <NuxtLink :to="`/primaryNavigation/${item.alias}`" target="_blank">{{ item.alias }}</NuxtLink> -->
+                        <NuxtLink :to="{path:`/primaryNavigation/${item.category_id}`,query:{name:item.name}}" target="_blank" >{{ item.name }}</NuxtLink>
                     </li>
                 </ul>
             </div>
@@ -94,12 +95,21 @@ const navigation1 = ref("");
 const navigateList = async () => {
     try {
         const response = await axios.get(`/web/getWebsiteModelCategory?placeid=${1}&pid=${0}&num=${24}`);
-        // console.log(response.data);
+        console.log(response.data);
         navigation1.value = response.data;
     } catch (error) {
         console.error(error);
     }
 }
+// const navigateList = async () => {
+//     try {
+//         const response = await axios.get(`/web/getWebsiteCategory?pageSize=${24}`);
+//         console.log(response.data);
+//         navigation1.value = response.data;
+//     } catch (error) {
+//         console.error(error);
+//     }
+// }
 
 //获取导航二的栏目
 const navigation2 = ref("");

+ 207 - 0
components/zhinengqwnda.vue

@@ -0,0 +1,207 @@
+<template>
+    <div>
+        <div class="head">
+            <img src="../static/ai/headLogo.png" alt="" class="logo">
+            <span>智能问答</span>
+            <img src="../static/ai/down.png" class="rightDown">
+        </div>
+        <div class="context">
+            <el-scrollbar height="345px">
+                <!-- <p v-for="item in 50" :key="item" class="scrollbar-demo-item">{{ item }}</p> -->
+                <p class="start">2025-01-20 09:35:30 开始沟通</p>
+                <div class="aiSpeak">
+                    <img src="../static/ai/headLogo.png" alt="" class="ailogo">
+                    <div class="reply">
+                        <span class='time'>2025-01-20 09:35:30</span>
+                        <p>你好呀!很高兴见到你。无论是想聊聊天、寻求帮助还是探讨问题,我都在这儿等着陪你呢!有什么我可以帮你的吗? </p>
+                    </div>
+                </div>
+                <div class="userSpeak">
+                    <div class="reply">
+                        <span class='time'>2025-01-20 09:35:30</span>
+                        <p>你好呀!很高兴见到你。无论是想聊聊天、寻求帮助还是探讨问题,我都在这儿等着陪你呢!有什么我可以帮你的吗? </p>
+                    </div>
+                    <img src="../static/ai/headLogo.png" alt="" class="user">
+                </div>
+                <!-- <div class="userSpeak">
+                    <div class="reply">
+                        <span class='time'>2025-01-20 09:35:30</span>
+                        <p>你好呀!很高兴见到你。无论是想聊聊天、寻求帮助还是探讨问题,我都在这儿等着陪你呢!有什么我可以帮你的吗? </p>
+                    </div>
+                    <img src="../static/ai/headLogo.png" alt="" class="user">
+                </div> -->
+                <div class="aiSpeak">
+                    <img src="../static/ai/headLogo.png" alt="" class="ailogo">
+                    <div class="reply">
+                        <span class='time'>2025-01-20 09:35:30</span>
+                        <p>你好呀!很高兴见到你。无论是想聊聊天、寻求帮助还是探讨问题,我都在这儿等着陪你呢!有什么我可以帮你的吗? </p>
+                    </div>
+                </div>
+                <!-- <div class="userSpeak">
+                    <div class="reply">
+                        <span class='time'>2025-01-20 09:35:30</span>
+                        <p>你好呀!很高兴见到你。无论是想聊聊天、寻求帮助还是探讨问题,我都在这儿等着陪你呢!有什么我可以帮你的吗? </p>
+                    </div>
+                    <img src="../static/ai/headLogo.png" alt="" class="user">
+                </div> -->
+            </el-scrollbar>
+        </div>
+        <div class="buttom">
+            <el-input v-model="textarea" :rows="4" type="textarea" placeholder="请简短描述你的问题" resize="none" />
+            <button class="submit">发送</button>
+        </div>
+
+    </div>
+</template>
+
+<script setup>
+import { ref } from 'vue'
+import { ElScrollbar, ElInput } from 'element-plus'
+const textarea = ref('')
+</script>
+
+<style lang="less" scoped>
+.head {
+    height: 74px;
+    line-height: 74px;
+    width: 100%;
+    background-color: #19499F;
+    color: #fff;
+    font-size: 16px;
+
+    .logo {
+        width: 40px;
+        height: 40px;
+        margin-left: 20px;
+        margin-right: 10px;
+        vertical-align: middle;
+    }
+
+    .rightDown {
+        float: right;
+        margin-right: 15px;
+        margin-top: 25px;
+    }
+}
+
+.context {
+    .start {
+        font-family: Microsoft YaHei, Microsoft YaHei;
+        color: #7E7E80;
+        font-size: 12px;
+        margin-top: 15px;
+        text-align: center;
+    }
+    .aiSpeak{
+        width: auto;
+        // overflow: hidden;
+        margin-top:30px;
+        margin-right:80px;
+
+        .ailogo{
+            float: left;
+            width: 30px;
+            height: 30px;
+            border: 1px solid #19499F;
+            margin-left: 15px;
+            margin-right: 10px;
+            box-sizing: border-box;
+        }
+        .reply{
+            // float: left;
+            .time{
+                font-family: Microsoft YaHei, Microsoft YaHei;
+                font-weight: 400;
+                font-size: 14px;
+                color: #B1B1B1;
+                line-height: 16px;
+            }
+            >p{
+                width:222px;
+                overflow: hidden;
+                padding: 15px 20px;
+                margin-top: 5px;
+                box-sizing: border-box;
+                background-color: #f5f5f5;
+                font-family: Microsoft YaHei, Microsoft YaHei;
+                font-weight: 400;
+                font-size: 14px;
+                color: #333333;
+                line-height: 15px;
+            }
+
+        }
+    }
+    .userSpeak{
+        // overflow: hidden;
+        margin-top:30px;
+        margin-left: 80px;
+        float: right;
+       
+        .reply{
+            float: left;
+            .time{
+                font-family: Microsoft YaHei, Microsoft YaHei;
+                font-weight: 400;
+                font-size: 14px;
+                color: #B1B1B1;
+                line-height: 16px;
+            }
+            >p{
+                width:222px;
+                overflow: hidden;
+                padding: 15px 20px;
+                margin-top: 5px;
+                box-sizing: border-box;
+                background-color: #f5f5f5;
+                font-family: Microsoft YaHei, Microsoft YaHei;
+                font-weight: 400;
+                font-size: 14px;
+                color: #333333;
+                line-height: 15px;
+            }
+
+        }
+        .user{
+            float: left;
+            width: 30px;
+            height: 30px;
+            border: 1px solid #19499F;
+            margin-right: 15px;
+            margin-left: 10px;
+            box-sizing: border-box;
+        }
+    }
+}
+
+.buttom {
+    height: 135px;
+    width: 100%;
+    background-color: #fff;
+    border-top: 1px solid #ccc;
+
+    .submit {
+        width: 48px;
+        height: 28px;
+        background-color: #19499F;
+        color: #fff;
+        border: none;
+        border-radius: 5px;
+        float: right;
+        margin-bottom: 20px;
+        margin-right: 20px;
+    }
+}
+
+:deep(.el-textarea__inner:hover) {
+    box-shadow: none;
+}
+
+:deep(.el-textarea__inner) {
+    box-shadow: none;
+}
+
+:deep(.el-textarea__inner:focus) {
+    box-shadow: none;
+}
+</style>

+ 2 - 2
pages/advertising/index.vue

@@ -845,13 +845,13 @@ let nextStep = () => {
         })
 
         //创建购物车
-        if (!shopCode.value) {
+        // if (!shopCode.value) {
             axios.post("/order/addShoppingCart").then(response => {
                 // console.log("创建购物车", response.data);
                 shopCode.value = response.data
                 console.log('shopCode', shopCode.value);
             })
-        }
+        // }
     }
 }
 // 点击提交工单信息

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 529 - 123
pages/index.vue


+ 0 - 0
pages/primaryNavigation/newsDetail/newsDetail.vue → pages/newsDetail/[id].vue


+ 0 - 0
pages/primaryNavigation/newsList.vue → pages/newsList/[id].vue


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 506 - 157
pages/primaryNavigation/[id].vue


+ 1 - 1
plugins/request.js

@@ -15,7 +15,7 @@ export default defineNuxtPlugin(nuxtApp => {
         // console.log("请求拦截器",config);
         // 从cookie中获取数据
         // const token = getToken()
-        const token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwaHBlcjY2Ni9qd3QiLCJ1aWQiOjc5LCJ1c2VyX25hbWUiOiIxMzkzMDg5NjY0MyIsIm1vYmlsZSI6IjEzOTMwODk2NjQzIiwiZW1haWwiOiIiLCJsZXZlbF9pZCI6MCwidHlwZV9pZCI6MTAwMDAsImp3dF9zY2VuZSI6ImRlZmF1bHQiLCJqdGkiOiJkZWZhdWx0XzY3YTU3YWNkNDg0N2IzLjU5MzAwMzI1IiwiaWF0IjoxNzM4ODk4MTI1LCJuYmYiOjE3Mzg4OTgxMjUsImV4cCI6MTczODk4NDUyNX0.smRvUl1NBFB3_WKao7q7ggMjNI0zTdctZE3m6XQdpUo"
+        const token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwaHBlcjY2Ni9qd3QiLCJ1aWQiOjc5LCJ1c2VyX25hbWUiOiIxMzkzMDg5NjY0MyIsIm1vYmlsZSI6IjEzOTMwODk2NjQzIiwiZW1haWwiOiIiLCJsZXZlbF9pZCI6MCwidHlwZV9pZCI6MTAwMDAsImp3dF9zY2VuZSI6ImRlZmF1bHQiLCJqdGkiOiJkZWZhdWx0XzY3YTcwNTBkNjZkMWUxLjg4NDgyNTM2IiwiaWF0IjoxNzM4OTk5MDUzLCJuYmYiOjE3Mzg5OTkwNTMsImV4cCI6MTczOTA4NTQ1M30.xS9G9JhJUsui3WtN6oxfQoKgThomRYnAgx6S4Kdpx_o"
         if (token) {
             config.headers.token = token;
         }

BIN
public/favicon.ico


BIN
public/favicon1.ico


BIN
static/ai/down.png


BIN
static/ai/headLogo.png


+ 0 - 0
static/images/Group 1550.png → static/images/toutiao.png


이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.