5.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  1. <template>
  2. <div class="newsBox">
  3. <div class="listNewsTitle_skin5">
  4. <div>最新资讯</div>
  5. </div>
  6. <!--样式1-->
  7. <div class="newsContent" v-if="componentStyle == 1">
  8. <div v-for="item in component_style1_News1Array" class="newsContentImg">
  9. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  10. :target="item.islink == 1 ? '_blank' : '_self'">
  11. <img :src="item.imgurl" />
  12. <div>{{ item.title }}</div>
  13. </NuxtLink>
  14. </div>
  15. <div v-for="item in component_style1_News2Array" class="newsContentText">
  16. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  17. :target="item.islink == 1 ? '_blank' : '_self'">
  18. {{ item.title }}
  19. </NuxtLink>
  20. </div>
  21. </div>
  22. <!--样式2-->
  23. <div class="newsContent" v-if="componentStyle == 2">
  24. <div v-for="item in component_style1_News1Array" class="newsContentImg">
  25. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  26. :target="item.islink == 1 ? '_blank' : '_self'">
  27. <div>{{ item.title }}</div>
  28. <img :src="item.imgurl" />
  29. </NuxtLink>
  30. </div>
  31. <div v-for="item in component_style1_News2Array" class="newsContentText">
  32. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  33. :target="item.islink == 1 ? '_blank' : '_self'">
  34. {{ item.title }}
  35. </NuxtLink>
  36. </div>
  37. </div>
  38. <!--样式3-->
  39. <div class="newsContent" v-if="componentStyle == 3">
  40. <div v-for="item in component_style1_News2Array" class="newsContentText">
  41. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  42. :target="item.islink == 1 ? '_blank' : '_self'">
  43. {{ item.title }}
  44. </NuxtLink>
  45. </div>
  46. <div v-for="item in component_style1_News1Array" class="newsContentImg">
  47. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  48. :target="item.islink == 1 ? '_blank' : '_self'">
  49. <img :src="item.imgurl" />
  50. <div>{{ item.title }}</div>
  51. </NuxtLink>
  52. </div>
  53. </div>
  54. <!--样式4-->
  55. <div class="newsContent" v-if="componentStyle == 4">
  56. <div v-for="item in component_style1_News2Array" class="newsContentText">
  57. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  58. :target="item.islink == 1 ? '_blank' : '_self'">
  59. {{ item.title }}
  60. </NuxtLink>
  61. </div>
  62. <div v-for="item in component_style1_News1Array" class="newsContentImg">
  63. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  64. :target="item.islink == 1 ? '_blank' : '_self'">
  65. <div>{{ item.title }}</div>
  66. <img :src="item.imgurl" />
  67. </NuxtLink>
  68. </div>
  69. </div>
  70. <!--样式5-->
  71. <div class="newsContent" v-if="componentStyle == 5">
  72. <div class="newsContentImg" v-for="item in component_style1_News1Array_1">
  73. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  74. :target="item.islink == 1 ? '_blank' : '_self'">
  75. <img :src="item.imgurl" />
  76. <div>{{ item.title }}</div>
  77. </NuxtLink>
  78. </div>
  79. <div class="newsContentImg" v-for="item in component_style1_News1Array_2">
  80. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  81. :target="item.islink == 1 ? '_blank' : '_self'">
  82. <div>{{ item.title }}</div>
  83. <img :src="item.imgurl" />
  84. </NuxtLink>
  85. </div>
  86. <div v-for="item in component_style1_News2Array" class="newsContentText">
  87. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  88. :target="item.islink == 1 ? '_blank' : '_self'">
  89. {{ item.title }}
  90. </NuxtLink>
  91. </div>
  92. </div>
  93. <!--样式6-->
  94. <div class="newsContent" v-if="componentStyle == 6">
  95. <div class="newsContentImg" v-for="item in component_style1_News1Array_1">
  96. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  97. :target="item.islink == 1 ? '_blank' : '_self'">
  98. <div>{{ item.title }}</div>
  99. <img :src="item.imgurl" />
  100. </NuxtLink>
  101. </div>
  102. <div class="newsContentImg" v-for="item in component_style1_News1Array_2">
  103. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  104. :target="item.islink == 1 ? '_blank' : '_self'">
  105. <img :src="item.imgurl" />
  106. <div>{{ item.title }}</div>
  107. </NuxtLink>
  108. </div>
  109. <div v-for="item in component_style1_News2Array" class="newsContentText">
  110. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  111. :target="item.islink == 1 ? '_blank' : '_self'">
  112. {{ item.title }}
  113. </NuxtLink>
  114. </div>
  115. </div>
  116. <!--样式7-->
  117. <div class="newsContent" v-if="componentStyle == 7">
  118. <div class="newsContentImg" v-for="item in component_style1_News1Array_1">
  119. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  120. :target="item.islink == 1 ? '_blank' : '_self'">
  121. <img :src="item.imgurl" />
  122. <div>{{ item.title }}</div>
  123. </NuxtLink>
  124. </div>
  125. <div v-for="item in component_style1_News2Array_1" class="newsContentText">
  126. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  127. :target="item.islink == 1 ? '_blank' : '_self'">
  128. {{ item.title }}
  129. </NuxtLink>
  130. </div>
  131. <div class="newsContentImg" v-for="item in component_style1_News1Array_2">
  132. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  133. :target="item.islink == 1 ? '_blank' : '_self'">
  134. <img :src="item.imgurl" />
  135. <div>{{ item.title }}</div>
  136. </NuxtLink>
  137. </div>
  138. <div v-for="item in component_style1_News2Array_2" class="newsContentText">
  139. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  140. :target="item.islink == 1 ? '_blank' : '_self'">
  141. {{ item.title }}
  142. </NuxtLink>
  143. </div>
  144. </div>
  145. <!--样式8-->
  146. <div class="newsContent" v-if="componentStyle == 8">
  147. <div class="newsContentImg" v-for="item in component_style1_News1Array_1">
  148. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  149. :target="item.islink == 1 ? '_blank' : '_self'">
  150. <div>{{ item.title }}</div>
  151. <img :src="item.imgurl" />
  152. </NuxtLink>
  153. </div>
  154. <div v-for="item in component_style1_News2Array_1" class="newsContentText">
  155. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  156. :target="item.islink == 1 ? '_blank' : '_self'">
  157. {{ item.title }}
  158. </NuxtLink>
  159. </div>
  160. <div class="newsContentImg" v-for="item in component_style1_News1Array_2">
  161. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  162. :target="item.islink == 1 ? '_blank' : '_self'">
  163. <div>{{ item.title }}</div>
  164. <img :src="item.imgurl" />
  165. </NuxtLink>
  166. </div>
  167. <div v-for="item in component_style1_News2Array_2" class="newsContentText">
  168. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  169. :target="item.islink == 1 ? '_blank' : '_self'">
  170. {{ item.title }}
  171. </NuxtLink>
  172. </div>
  173. </div>
  174. </div>
  175. </template>
  176. <script setup>
  177. //引入vue
  178. import { ref } from 'vue';
  179. //获得新闻数据
  180. const props = defineProps({
  181. componentStyle: Number,//样式编号
  182. });
  183. const component_style1_News1Array = ref([]);
  184. const component_style1_News1Array_1 = ref([]);
  185. const component_style1_News1Array_2 = ref([]);
  186. const component_style1_News2Array = ref([]);
  187. const component_style1_News2Array_1 = ref([]);
  188. const component_style1_News2Array_2 = ref([]);
  189. // component_style1_News1Array.value = props.templateData.img.slice(0,2);
  190. // component_style1_News2Array.value = props.templateData.text.slice(0,4);
  191. //最新资讯数据 start ---------------------------------------->
  192. async function getPageData() {
  193. const mkdata = await requestDataPromise('/web/getWebsiteArticlett', {
  194. method: 'GET',
  195. query: {
  196. 'imgnum': 4,
  197. 'textnum': 4,
  198. 'level': 4,
  199. 'id': 0,
  200. 'placeid': 0,
  201. },
  202. });
  203. if (mkdata.code == 200) {
  204. component_style1_News1Array.value = mkdata.data.img.slice(0, 2);
  205. component_style1_News1Array_1.value = mkdata.data.img.slice(0, 1);
  206. component_style1_News1Array_2.value = mkdata.data.img.slice(1, 2);
  207. component_style1_News2Array.value = mkdata.data.text.slice(0, 4);
  208. component_style1_News2Array_1.value = mkdata.data.text.slice(0, 2);
  209. component_style1_News2Array_2.value = mkdata.data.text.slice(2, 4);
  210. }
  211. }
  212. getPageData();
  213. </script>
  214. <style lang="less" scoped>
  215. //基本样式 start ---------------------------------------->
  216. .newsBox {
  217. .listNewsTitle_skin5 {
  218. display: flex;
  219. align-items: flex-start;
  220. justify-content: flex-start;
  221. border-bottom: 1px solid #999999;
  222. height: 38px;
  223. margin-bottom: 20px;
  224. div {
  225. height: 35px;
  226. width: 138px;
  227. line-height: 32px;
  228. font-size: 22px;
  229. font-weight: bold;
  230. color: #333333;
  231. cursor: pointer;
  232. overflow: hidden;
  233. text-overflow: ellipsis;
  234. white-space: nowrap;
  235. color: #3848A0;
  236. background: url("https://img.bjzxtw.org.cn/pre/image/png/20251104/1762224944805589.png") bottom left no-repeat;
  237. }
  238. }
  239. .newsContent {
  240. .newsContentImg {
  241. a {
  242. display: block;
  243. display: flex;
  244. align-items: center;
  245. justify-content: space-between;
  246. margin-bottom: 20px;
  247. font-size: 18px;
  248. div {
  249. overflow: hidden;
  250. display: -webkit-box;
  251. -webkit-line-clamp: 3;
  252. -webkit-box-orient: vertical;
  253. text-overflow: ellipsis;
  254. color: #333333;
  255. width: 130px;
  256. }
  257. img {
  258. display: block;
  259. width: 120px;
  260. height: 80px;
  261. }
  262. }
  263. }
  264. .newsContentText {
  265. font-size: 18px;
  266. color: #333333;
  267. margin-bottom: 20px;
  268. overflow: hidden;
  269. white-space: nowrap;
  270. text-overflow: ellipsis;
  271. a {
  272. color: #333333;
  273. }
  274. }
  275. }
  276. }
  277. //基本样式 end ----------------------------------------></style>