PageMessage.vue 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <template>
  2. <!-- 新闻头条部分 -->
  3. <div class="topNewsPart">
  4. <div class="inner">
  5. <div class="toutiao">
  6. <div class="xwtt">
  7. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  8. :target="item.islink == 1 ? '_blank' : '_self'" v-for="(item, index) in headlinelist"
  9. :key="index">
  10. <h1 class="tttitle">{{ item.title }}</h1>
  11. </NuxtLink>
  12. </div>
  13. <ul class="toutiao1" v-if="headlinelist1">
  14. <li class="toutiaolist" v-for="item in headlinelist1">
  15. <NuxtLink :to="{ path: `/${item.pinyin}/${item.id}.html` }" :title="item.title">{{ item.title }}
  16. </NuxtLink>
  17. </li>
  18. </ul>
  19. </div>
  20. <div class="messageLeft">
  21. <div class="lunbo">
  22. <HomeBigSwiper></HomeBigSwiper>
  23. </div>
  24. <div class="messageleft_photo_text" v-if="moveBannerList">
  25. <div class="messageleft_photo" v-for="item in moveBannerList" :key="index">
  26. <NuxtLink :to="`/${item.pinyin}/${item.id}.html`" :title="item.title">
  27. <img :src="item.imgurl">
  28. <div class="message_text">
  29. {{ item.title }}
  30. </div>
  31. </NuxtLink>
  32. </div>
  33. </div>
  34. </div>
  35. <div class="messageRight">
  36. <div class="messageRight_title">
  37. 要闻
  38. </div>
  39. <ul class="messageRight_content" v-if="hotNewsList_data1">
  40. <li v-for="item in hotNewsList_data1" :key="index" class="messageRight_content_title">
  41. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  42. :target="item.islink == 1 ? '_blank' : '_self'">
  43. {{ item.title }}
  44. </NuxtLink>
  45. </li>
  46. </ul>
  47. <ul class="messageRight_content" v-if="hotNewsList_data2">
  48. <li v-for="item in hotNewsList_data2" :key="index" class="messageRight_content_title">
  49. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  50. :target="item.islink == 1 ? '_blank' : '_self'">
  51. {{ item.title }}
  52. </NuxtLink>
  53. </li>
  54. </ul>
  55. <ul class="messageRight_content" v-if="hotNewsList_data3">
  56. <li v-for="item in hotNewsList_data3" :key="index" class="messageRight_content_title">
  57. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  58. :target="item.islink == 1 ? '_blank' : '_self'">
  59. {{ item.title }}
  60. </NuxtLink>
  61. </li>
  62. </ul>
  63. </div>
  64. </div>
  65. </div>
  66. </template>
  67. <script setup>
  68. //0.加载必备依赖 start ---------------------------------------->
  69. import { NuxtLink } from "#components";
  70. import { ref, onMounted } from "vue"
  71. const nuxtApp = useNuxtApp();
  72. const axios = nuxtApp.$axios;
  73. const getLinkPathDetail = (item) => {
  74. if (item.islink == 1) {
  75. return `${item.linkurl}`;
  76. } else {
  77. return `/${item.pinyin}/${item.id}.html`;
  78. }
  79. }
  80. //0.加载必备依赖 end ---------------------------------------->
  81. //1.获得板块数据 start ---------------------------------------->
  82. //大标题
  83. const headlinelist = ref([])
  84. //大标题下面的二级内容
  85. const headlinelist1 = ref([])
  86. async function getModelData1() {
  87. const mkdata = await requestDataPromise('/web/getWebsiteArticlett', {
  88. method: 'GET',
  89. query: {
  90. 'pageSize': 4,
  91. 'level': 1,
  92. 'placeid': 0,
  93. 'id': ''
  94. },
  95. });
  96. if (mkdata.code == 200) {
  97. for (let i = 0; i < mkdata.data.length; i++) {
  98. if (i < 1) {
  99. headlinelist.value.push(mkdata.data[i])
  100. }else{
  101. headlinelist1.value.push(mkdata.data[i])
  102. }
  103. }
  104. //填充大标题
  105. // headlinelist.value.push(mkdata.data[0])
  106. // //剩余的两条放到大标题下面
  107. // headlinelist1.value.push(mkdata.data[1])
  108. // headlinelist1.value.push(mkdata.data[2])
  109. // headlinelist1.value.push(mkdata.data[3])
  110. } else {
  111. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  112. console.log("错误位置:设置大标题")
  113. console.log("后端错误反馈:", mkdata.message)
  114. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  115. }
  116. }
  117. getModelData1()
  118. const moveBannerList = ref([])
  119. async function getModelData2() {
  120. const mkdata = await requestDataPromise('/web/getWebsiteArticlett', {
  121. method: 'GET',
  122. query: {
  123. 'pageSize': 2,
  124. 'level': 2,
  125. 'placeid': 6,
  126. 'id': ''
  127. },
  128. });
  129. if (mkdata.code == 200) {
  130. moveBannerList.value = mkdata.data;
  131. } else {
  132. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  133. console.log("错误位置:获取首页轮播图下面的图文")
  134. console.log("后端错误反馈:", mkdata.message)
  135. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  136. }
  137. }
  138. getModelData2()
  139. const hotNewsList_data1 = ref([])
  140. const hotNewsList_data2 = ref([])
  141. const hotNewsList_data3 = ref([])
  142. async function getModelData3() {
  143. const mkdata = await requestDataPromise('/web/getWebsiteArticlett', {
  144. method: 'GET',
  145. query: {
  146. 'pageSize': 8,
  147. 'level': 6,
  148. 'placeid': 0,
  149. 'id': ''
  150. },
  151. });
  152. if (mkdata.code == 200) {
  153. for (let i = 0; i < mkdata.data.length; i++) {
  154. if (i >= 0 && i <= 4) {
  155. hotNewsList_data1.value.push(mkdata.data[i])
  156. } else if (i >= 5 && i <= 9) {
  157. hotNewsList_data2.value.push(mkdata.data[i])
  158. } else if (i >= 10 && i <= 14) {
  159. hotNewsList_data3.value.push(mkdata.data[i])
  160. }
  161. }
  162. } else {
  163. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  164. console.log("错误位置:获取首页今日热点")
  165. console.log("后端错误反馈:", mkdata.message)
  166. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  167. }
  168. }
  169. getModelData3()
  170. //1.获得板块数据 end ---------------------------------------->
  171. </script>
  172. <style lang="less" scoped>
  173. @import url('@/assets/css/components/pagemessage.less');
  174. </style>