1.vue 47 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031
  1. <template>
  2. <div class="listNewsBox">
  3. <div class="listNewsTitle">
  4. <NuxtLink v-if="titleLink1.cid" :href="getLinkPath(titleLink1)" :title="titleLink1.alias">
  5. <div :class="{ activeTab: activeTab == 0 }" @mouseenter="activeTab = 0">{{ titleLink1.alias }}</div>
  6. </NuxtLink>
  7. <NuxtLink v-if="titleLink2.cid" :href="getLinkPath(titleLink2)" :title="titleLink2.alias">
  8. <div :class="{ activeTab: activeTab == 1 }" @mouseenter="activeTab = 1">{{ titleLink2.alias }}</div>
  9. </NuxtLink>
  10. </div>
  11. <!--样式1-->
  12. <div class="listNewsContent" v-if="componentStyle == 1">
  13. <div class="box1" v-if="activeTab == 0">
  14. <div class="textLeft">
  15. <div class="leftTop">
  16. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_1">
  17. <img :src="item.imgurl" alt="" v-if="activeImg1 == index">
  18. </div>
  19. <div class="leftTopText">
  20. <div v-for="(item, index) in component_style1_News1Array_img_1"
  21. :class="{ active: activeImg1 == index }">
  22. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  23. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg1 = index">
  24. <span>{{ item.title }}</span>
  25. </NuxtLink>
  26. </div>
  27. </div>
  28. </div>
  29. <div class="leftBottom">
  30. <div v-for="item in component_style1_News2Array_text_1">
  31. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  32. :target="item.islink == 1 ? '_blank' : '_self'">
  33. <span>{{ item.title }}</span>
  34. </NuxtLink>
  35. </div>
  36. </div>
  37. </div>
  38. <div class="textRight">
  39. <div class="rightTop">
  40. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_2">
  41. <img :src="item.imgurl" alt="" v-if="activeImg2 == index">
  42. </div>
  43. <div class="rightTopText">
  44. <div v-for="(item, index) in component_style1_News1Array_img_2"
  45. :class="{ active: activeImg2 == index }">
  46. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  47. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg2 = index">
  48. <span>{{ item.title }}</span>
  49. </NuxtLink>
  50. </div>
  51. </div>
  52. </div>
  53. <div class="rightBottom">
  54. <div v-for="item in component_style1_News2Array_text_2">
  55. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  56. :target="item.islink == 1 ? '_blank' : '_self'">
  57. <span>{{ item.title }}</span>
  58. </NuxtLink>
  59. </div>
  60. </div>
  61. </div>
  62. </div>
  63. <div class="box1" v-if="activeTab == 1">
  64. <div class="textLeft">
  65. <div class="leftTop">
  66. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_3">
  67. <img :src="item.imgurl" alt="" v-if="activeImg3 == index">
  68. </div>
  69. <div class="leftTopText">
  70. <div v-for="(item, index) in component_style1_News1Array_img_3"
  71. :class="{ active: activeImg3 == index }">
  72. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  73. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg3 = index">
  74. <span>{{ item.title }}</span>
  75. </NuxtLink>
  76. </div>
  77. </div>
  78. </div>
  79. <div class="leftBottom">
  80. <div v-for="item in component_style1_News2Array_text_3">
  81. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  82. :target="item.islink == 1 ? '_blank' : '_self'">
  83. <span>{{ item.title }}</span>
  84. </NuxtLink>
  85. </div>
  86. </div>
  87. </div>
  88. <div class="textRight">
  89. <div class="rightTop">
  90. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_4">
  91. <img :src="item.imgurl" alt="" v-if="activeImg4 == index">
  92. </div>
  93. <div class="rightTopText">
  94. <div v-for="(item, index) in component_style1_News1Array_img_4"
  95. :class="{ active: activeImg4 == index }">
  96. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  97. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg4 = index">
  98. <span>{{ item.title }}</span>
  99. </NuxtLink>
  100. </div>
  101. </div>
  102. </div>
  103. <div class="rightBottom">
  104. <div v-for="item in component_style1_News2Array_text_4">
  105. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  106. :target="item.islink == 1 ? '_blank' : '_self'">
  107. <span>{{ item.title }}</span>
  108. </NuxtLink>
  109. </div>
  110. </div>
  111. </div>
  112. </div>
  113. </div>
  114. <!--样式2-->
  115. <div class="listNewsContent style2" v-if="componentStyle == 2">
  116. <div class="box1" v-if="activeTab == 0">
  117. <div class="textLeft">
  118. <div class="leftTop">
  119. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_1">
  120. <img :src="item.imgurl" alt="" v-if="activeImg1 == index">
  121. </div>
  122. <div class="leftTopText">
  123. <div v-for="(item, index) in component_style1_News1Array_img_1"
  124. :class="{ active: activeImg1 == index }">
  125. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  126. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg1 = index">
  127. <span>{{ item.title }}</span>
  128. </NuxtLink>
  129. </div>
  130. </div>
  131. </div>
  132. <div class="leftBottom">
  133. <div v-for="item in component_style1_News2Array_text_1">
  134. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  135. :target="item.islink == 1 ? '_blank' : '_self'">
  136. <span>{{ item.title }}</span>
  137. </NuxtLink>
  138. </div>
  139. </div>
  140. </div>
  141. <div class="textRight">
  142. <div class="rightTop">
  143. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_2">
  144. <img :src="item.imgurl" alt="" v-if="activeImg2 == index">
  145. </div>
  146. <div class="rightTopText">
  147. <div v-for="(item, index) in component_style1_News1Array_img_2"
  148. :class="{ active: activeImg2 == index }">
  149. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  150. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg2 = index">
  151. <span>{{ item.title }}</span>
  152. </NuxtLink>
  153. </div>
  154. </div>
  155. </div>
  156. <div class="rightBottom">
  157. <div v-for="item in component_style1_News2Array_text_2">
  158. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  159. :target="item.islink == 1 ? '_blank' : '_self'">
  160. <span>{{ item.title }}</span>
  161. </NuxtLink>
  162. </div>
  163. </div>
  164. </div>
  165. </div>
  166. <div class="box1" v-if="activeTab == 1">
  167. <div class="textLeft">
  168. <div class="leftTop">
  169. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_3">
  170. <img :src="item.imgurl" alt="" v-if="activeImg3 == index">
  171. </div>
  172. <div class="leftTopText">
  173. <div v-for="(item, index) in component_style1_News1Array_img_3"
  174. :class="{ active: activeImg3 == index }">
  175. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  176. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg3 = index">
  177. <span>{{ item.title }}</span>
  178. </NuxtLink>
  179. </div>
  180. </div>
  181. </div>
  182. <div class="leftBottom">
  183. <div v-for="item in component_style1_News2Array_text_3">
  184. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  185. :target="item.islink == 1 ? '_blank' : '_self'">
  186. <span>{{ item.title }}</span>
  187. </NuxtLink>
  188. </div>
  189. </div>
  190. </div>
  191. <div class="textRight">
  192. <div class="rightTop">
  193. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_4">
  194. <img :src="item.imgurl" alt="" v-if="activeImg4 == index">
  195. </div>
  196. <div class="rightTopText">
  197. <div v-for="(item, index) in component_style1_News1Array_img_4"
  198. :class="{ active: activeImg4 == index }">
  199. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  200. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg4 = index">
  201. <span>{{ item.title }}</span>
  202. </NuxtLink>
  203. </div>
  204. </div>
  205. </div>
  206. <div class="rightBottom">
  207. <div v-for="item in component_style1_News2Array_text_4">
  208. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  209. :target="item.islink == 1 ? '_blank' : '_self'">
  210. <span>{{ item.title }}</span>
  211. </NuxtLink>
  212. </div>
  213. </div>
  214. </div>
  215. </div>
  216. </div>
  217. <!--样式3-->
  218. <div class="listNewsContent style3" v-if="componentStyle == 3">
  219. <div class="box1" v-if="activeTab == 0">
  220. <div class="textLeft">
  221. <div class="leftTop">
  222. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_1">
  223. <img :src="item.imgurl" alt="" v-if="activeImg1 == index">
  224. </div>
  225. <div class="leftTopText">
  226. <div v-for="(item, index) in component_style1_News1Array_img_1"
  227. :class="{ active: activeImg1 == index }">
  228. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  229. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg1 = index">
  230. <span>{{ item.title }}</span>
  231. </NuxtLink>
  232. </div>
  233. </div>
  234. </div>
  235. <div class="leftBottom">
  236. <div v-for="item in component_style1_News2Array_text_1">
  237. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  238. :target="item.islink == 1 ? '_blank' : '_self'">
  239. <span>{{ item.title }}</span>
  240. </NuxtLink>
  241. </div>
  242. </div>
  243. </div>
  244. <div class="textRight">
  245. <div class="rightTop">
  246. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_2">
  247. <img :src="item.imgurl" alt="" v-if="activeImg2 == index">
  248. </div>
  249. <div class="rightTopText">
  250. <div v-for="(item, index) in component_style1_News1Array_img_2"
  251. :class="{ active: activeImg2 == index }">
  252. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  253. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg2 = index">
  254. <span>{{ item.title }}</span>
  255. </NuxtLink>
  256. </div>
  257. </div>
  258. </div>
  259. <div class="rightBottom">
  260. <div v-for="item in component_style1_News2Array_text_2">
  261. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  262. :target="item.islink == 1 ? '_blank' : '_self'">
  263. <span>{{ item.title }}</span>
  264. </NuxtLink>
  265. </div>
  266. </div>
  267. </div>
  268. </div>
  269. <div class="box1" v-if="activeTab == 1">
  270. <div class="textLeft">
  271. <div class="leftTop">
  272. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_3">
  273. <img :src="item.imgurl" alt="" v-if="activeImg3 == index">
  274. </div>
  275. <div class="leftTopText">
  276. <div v-for="(item, index) in component_style1_News1Array_img_3"
  277. :class="{ active: activeImg3 == index }">
  278. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  279. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg3 = index">
  280. <span>{{ item.title }}</span>
  281. </NuxtLink>
  282. </div>
  283. </div>
  284. </div>
  285. <div class="leftBottom">
  286. <div v-for="item in component_style1_News2Array_text_3">
  287. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  288. :target="item.islink == 1 ? '_blank' : '_self'">
  289. <span>{{ item.title }}</span>
  290. </NuxtLink>
  291. </div>
  292. </div>
  293. </div>
  294. <div class="textRight">
  295. <div class="rightTop">
  296. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_4">
  297. <img :src="item.imgurl" alt="" v-if="activeImg4 == index">
  298. </div>
  299. <div class="rightTopText">
  300. <div v-for="(item, index) in component_style1_News1Array_img_4"
  301. :class="{ active: activeImg4 == index }">
  302. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  303. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg4 = index">
  304. <span>{{ item.title }}</span>
  305. </NuxtLink>
  306. </div>
  307. </div>
  308. </div>
  309. <div class="rightBottom">
  310. <div v-for="item in component_style1_News2Array_text_4">
  311. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  312. :target="item.islink == 1 ? '_blank' : '_self'">
  313. <span>{{ item.title }}</span>
  314. </NuxtLink>
  315. </div>
  316. </div>
  317. </div>
  318. </div>
  319. </div>
  320. <!--样式4-->
  321. <div class="listNewsContent style4" v-if="componentStyle == 4">
  322. <div class="box1" v-if="activeTab == 0">
  323. <div class="textLeft">
  324. <div class="leftBottom">
  325. <div v-for="item in component_style1_News2Array_text_1">
  326. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  327. :target="item.islink == 1 ? '_blank' : '_self'">
  328. <span>{{ item.title }}</span>
  329. </NuxtLink>
  330. </div>
  331. </div>
  332. <div class="leftTop">
  333. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_1">
  334. <img :src="item.imgurl" alt="" v-if="activeImg1 == index">
  335. </div>
  336. <div class="leftTopText">
  337. <div v-for="(item, index) in component_style1_News1Array_img_1"
  338. :class="{ active: activeImg1 == index }">
  339. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  340. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg1 = index">
  341. <span>{{ item.title }}</span>
  342. </NuxtLink>
  343. </div>
  344. </div>
  345. </div>
  346. </div>
  347. <div class="textRight">
  348. <div class="rightBottom">
  349. <div v-for="item in component_style1_News2Array_text_2">
  350. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  351. :target="item.islink == 1 ? '_blank' : '_self'">
  352. <span>{{ item.title }}</span>
  353. </NuxtLink>
  354. </div>
  355. </div>
  356. <div class="rightTop">
  357. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_2">
  358. <img :src="item.imgurl" alt="" v-if="activeImg2 == index">
  359. </div>
  360. <div class="rightTopText">
  361. <div v-for="(item, index) in component_style1_News1Array_img_2"
  362. :class="{ active: activeImg2 == index }">
  363. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  364. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg2 = index">
  365. <span>{{ item.title }}</span>
  366. </NuxtLink>
  367. </div>
  368. </div>
  369. </div>
  370. </div>
  371. </div>
  372. <div class="box1" v-if="activeTab == 1">
  373. <div class="textLeft">
  374. <div class="leftBottom">
  375. <div v-for="item in component_style1_News2Array_text_3">
  376. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  377. :target="item.islink == 1 ? '_blank' : '_self'">
  378. <span>{{ item.title }}</span>
  379. </NuxtLink>
  380. </div>
  381. </div>
  382. <div class="leftTop">
  383. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_3">
  384. <img :src="item.imgurl" alt="" v-if="activeImg3 == index">
  385. </div>
  386. <div class="leftTopText">
  387. <div v-for="(item, index) in component_style1_News1Array_img_3"
  388. :class="{ active: activeImg3 == index }">
  389. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  390. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg3 = index">
  391. <span>{{ item.title }}</span>
  392. </NuxtLink>
  393. </div>
  394. </div>
  395. </div>
  396. </div>
  397. <div class="textRight">
  398. <div class="rightBottom">
  399. <div v-for="item in component_style1_News2Array_text_4">
  400. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  401. :target="item.islink == 1 ? '_blank' : '_self'">
  402. <span>{{ item.title }}</span>
  403. </NuxtLink>
  404. </div>
  405. </div>
  406. <div class="rightTop">
  407. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_4">
  408. <img :src="item.imgurl" alt="" v-if="activeImg4 == index">
  409. </div>
  410. <div class="rightTopText">
  411. <div v-for="(item, index) in component_style1_News1Array_img_4"
  412. :class="{ active: activeImg4 == index }">
  413. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  414. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg4 = index">
  415. <span>{{ item.title }}</span>
  416. </NuxtLink>
  417. </div>
  418. </div>
  419. </div>
  420. </div>
  421. </div>
  422. </div>
  423. <!--样式5-->
  424. <div class="listNewsContent style5" v-if="componentStyle == 5">
  425. <div class="box1" v-if="activeTab == 0">
  426. <div class="textLeft">
  427. <div class="leftBottom">
  428. <div v-for="item in component_style1_News2Array_text_1">
  429. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  430. :target="item.islink == 1 ? '_blank' : '_self'">
  431. <span>{{ item.title }}</span>
  432. </NuxtLink>
  433. </div>
  434. </div>
  435. <div class="leftTop">
  436. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_1">
  437. <img :src="item.imgurl" alt="" v-if="activeImg1 == index">
  438. </div>
  439. <div class="leftTopText">
  440. <div v-for="(item, index) in component_style1_News1Array_img_1"
  441. :class="{ active: activeImg1 == index }">
  442. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  443. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg1 = index">
  444. <span>{{ item.title }}</span>
  445. </NuxtLink>
  446. </div>
  447. </div>
  448. </div>
  449. </div>
  450. <div class="textRight">
  451. <div class="rightBottom">
  452. <div v-for="item in component_style1_News2Array_text_2">
  453. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  454. :target="item.islink == 1 ? '_blank' : '_self'">
  455. <span>{{ item.title }}</span>
  456. </NuxtLink>
  457. </div>
  458. </div>
  459. <div class="rightTop">
  460. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_2">
  461. <img :src="item.imgurl" alt="" v-if="activeImg2 == index">
  462. </div>
  463. <div class="rightTopText">
  464. <div v-for="(item, index) in component_style1_News1Array_img_2"
  465. :class="{ active: activeImg2 == index }">
  466. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  467. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg2 = index">
  468. <span>{{ item.title }}</span>
  469. </NuxtLink>
  470. </div>
  471. </div>
  472. </div>
  473. </div>
  474. </div>
  475. <div class="box1" v-if="activeTab == 1">
  476. <div class="textLeft">
  477. <div class="leftBottom">
  478. <div v-for="item in component_style1_News2Array_text_3">
  479. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  480. :target="item.islink == 1 ? '_blank' : '_self'">
  481. <span>{{ item.title }}</span>
  482. </NuxtLink>
  483. </div>
  484. </div>
  485. <div class="leftTop">
  486. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_3">
  487. <img :src="item.imgurl" alt="" v-if="activeImg3 == index">
  488. </div>
  489. <div class="leftTopText">
  490. <div v-for="(item, index) in component_style1_News1Array_img_3"
  491. :class="{ active: activeImg3 == index }">
  492. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  493. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg3 = index">
  494. <span>{{ item.title }}</span>
  495. </NuxtLink>
  496. </div>
  497. </div>
  498. </div>
  499. </div>
  500. <div class="textRight">
  501. <div class="rightBottom">
  502. <div v-for="item in component_style1_News2Array_text_4">
  503. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  504. :target="item.islink == 1 ? '_blank' : '_self'">
  505. <span>{{ item.title }}</span>
  506. </NuxtLink>
  507. </div>
  508. </div>
  509. <div class="rightTop">
  510. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_4">
  511. <img :src="item.imgurl" alt="" v-if="activeImg4 == index">
  512. </div>
  513. <div class="rightTopText">
  514. <div v-for="(item, index) in component_style1_News1Array_img_4"
  515. :class="{ active: activeImg4 == index }">
  516. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  517. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg4 = index">
  518. <span>{{ item.title }}</span>
  519. </NuxtLink>
  520. </div>
  521. </div>
  522. </div>
  523. </div>
  524. </div>
  525. </div>
  526. <!--样式6-->
  527. <div class="listNewsContent style6" v-if="componentStyle == 6">
  528. <div class="box1" v-if="activeTab == 0">
  529. <div class="textLeft">
  530. <div class="leftBottom">
  531. <div v-for="item in component_style1_News2Array_text_1">
  532. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  533. :target="item.islink == 1 ? '_blank' : '_self'">
  534. <span>{{ item.title }}</span>
  535. </NuxtLink>
  536. </div>
  537. </div>
  538. <div class="leftTop">
  539. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_1">
  540. <img :src="item.imgurl" alt="" v-if="activeImg1 == index">
  541. </div>
  542. <div class="leftTopText">
  543. <div v-for="(item, index) in component_style1_News1Array_img_1"
  544. :class="{ active: activeImg1 == index }">
  545. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  546. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg1 = index">
  547. <span>{{ item.title }}</span>
  548. </NuxtLink>
  549. </div>
  550. </div>
  551. </div>
  552. </div>
  553. <div class="textRight">
  554. <div class="rightBottom">
  555. <div v-for="item in component_style1_News2Array_text_2">
  556. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  557. :target="item.islink == 1 ? '_blank' : '_self'">
  558. <span>{{ item.title }}</span>
  559. </NuxtLink>
  560. </div>
  561. </div>
  562. <div class="rightTop">
  563. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_2">
  564. <img :src="item.imgurl" alt="" v-if="activeImg2 == index">
  565. </div>
  566. <div class="rightTopText">
  567. <div v-for="(item, index) in component_style1_News1Array_img_2"
  568. :class="{ active: activeImg2 == index }">
  569. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  570. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg2 = index">
  571. <span>{{ item.title }}</span>
  572. </NuxtLink>
  573. </div>
  574. </div>
  575. </div>
  576. </div>
  577. </div>
  578. <div class="box1" v-if="activeTab == 1">
  579. <div class="textLeft">
  580. <div class="leftBottom">
  581. <div v-for="item in component_style1_News2Array_text_3">
  582. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  583. :target="item.islink == 1 ? '_blank' : '_self'">
  584. <span>{{ item.title }}</span>
  585. </NuxtLink>
  586. </div>
  587. </div>
  588. <div class="leftTop">
  589. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_3">
  590. <img :src="item.imgurl" alt="" v-if="activeImg3 == index">
  591. </div>
  592. <div class="leftTopText">
  593. <div v-for="(item, index) in component_style1_News1Array_img_3"
  594. :class="{ active: activeImg3 == index }">
  595. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  596. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg3 = index">
  597. <span>{{ item.title }}</span>
  598. </NuxtLink>
  599. </div>
  600. </div>
  601. </div>
  602. </div>
  603. <div class="textRight">
  604. <div class="rightBottom">
  605. <div v-for="item in component_style1_News2Array_text_4">
  606. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  607. :target="item.islink == 1 ? '_blank' : '_self'">
  608. <span>{{ item.title }}</span>
  609. </NuxtLink>
  610. </div>
  611. </div>
  612. <div class="rightTop">
  613. <div class="photo" v-for="(item, index) in component_style1_News1Array_img_4">
  614. <img :src="item.imgurl" alt="" v-if="activeImg4 == index">
  615. </div>
  616. <div class="rightTopText">
  617. <div v-for="(item, index) in component_style1_News1Array_img_4"
  618. :class="{ active: activeImg4 == index }">
  619. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title"
  620. :target="item.islink == 1 ? '_blank' : '_self'" @mouseenter="activeImg4 = index">
  621. <span>{{ item.title }}</span>
  622. </NuxtLink>
  623. </div>
  624. </div>
  625. </div>
  626. </div>
  627. </div>
  628. </div>
  629. </div>
  630. </template>
  631. <script setup>
  632. //引入vue
  633. import { ref } from 'vue';
  634. //获得新闻数据
  635. const props = defineProps({
  636. titleLink1: Object,//板块1名称
  637. titleLink2: Object,//板块2名称
  638. templateData: Array,//新闻数据
  639. templateData1: Array,//新闻数据
  640. componentStyle: Number,//样式编号
  641. });
  642. //定义tab切换
  643. const activeTab = ref(0);
  644. // 图片切换
  645. const activeImg1 = ref(0);
  646. const activeImg2 = ref(0);
  647. const activeImg3 = ref(0);
  648. const activeImg4 = ref(0);
  649. // activeTab==0时需要的变量
  650. const component_style1_News1Array_img_1 = ref([]);
  651. const component_style1_News1Array_img_2 = ref([]);
  652. const component_style1_News2Array_text_1 = ref([]);
  653. const component_style1_News2Array_text_2 = ref([]);
  654. // activeTab==1时需要的变量
  655. const component_style1_News1Array_img_3 = ref([]);
  656. const component_style1_News1Array_img_4 = ref([]);
  657. const component_style1_News2Array_text_3 = ref([]);
  658. const component_style1_News2Array_text_4 = ref([]);
  659. // activeTab==0时给所需变量赋值
  660. component_style1_News1Array_img_1.value = props.templateData.imgnum.slice(0, 2);
  661. component_style1_News1Array_img_2.value = props.templateData.imgnum.slice(2, 4);
  662. component_style1_News2Array_text_1.value = props.templateData.textnum.slice(0, 6);
  663. component_style1_News2Array_text_2.value = props.templateData.textnum.slice(6, 12);
  664. // activeTab==1时给所需变量赋值
  665. component_style1_News1Array_img_3.value = props.templateData1.imgnum.slice(0, 2);
  666. component_style1_News1Array_img_4.value = props.templateData1.imgnum.slice(2, 4);
  667. component_style1_News2Array_text_3.value = props.templateData1.textnum.slice(0, 6);
  668. component_style1_News2Array_text_4.value = props.templateData1.textnum.slice(6, 12);
  669. </script>
  670. <style lang="less" scoped>
  671. //基本样式 start ---------------------------------------->
  672. .listNewsBox {
  673. position: relative;
  674. .listNewsTitle {
  675. display: flex;
  676. align-items: flex-start;
  677. justify-content: flex-start;
  678. height: 38px;
  679. div {
  680. height: 35px;
  681. width: 138px;
  682. line-height: 32px;
  683. font-size: 22px;
  684. font-weight: bold;
  685. color: #333333;
  686. cursor: pointer;
  687. overflow: hidden;
  688. text-overflow: ellipsis;
  689. white-space: nowrap;
  690. padding-bottom: 5px;
  691. &.activeTab {
  692. color: #154079;
  693. background: url("http://192.168.1.234:19000/pre/image/png/20251218/1766042138413493.png") bottom left no-repeat;
  694. }
  695. }
  696. }
  697. .dashed {
  698. border-bottom: 1px dashed #999999;
  699. }
  700. .listNewsContent {
  701. margin-top: 20px;
  702. .box1 {
  703. display: flex;
  704. align-items: flex-start;
  705. justify-content: flex-start;
  706. .textLeft {
  707. width: 380px;
  708. margin-right: 32px;
  709. .leftTop {
  710. display: flex;
  711. align-items: flex-start;
  712. justify-content: flex-start;
  713. margin-bottom: 26px;
  714. .photo {
  715. width: 185px;
  716. height: 130px;
  717. img {
  718. width: 185px;
  719. height: 130px;
  720. }
  721. }
  722. .leftTopText {
  723. width: 195px;
  724. height: 130px;
  725. background-color: #f9fafb;
  726. padding: 10px 4px 9px 10px;
  727. box-sizing: border-box;
  728. div {
  729. width: 170px;
  730. height: 48px;
  731. line-height: 24px;
  732. font-size: 18px;
  733. color: #333333;
  734. display: -webkit-box;
  735. -webkit-box-orient: vertical;
  736. -webkit-line-clamp: 2;
  737. overflow: hidden;
  738. text-overflow: ellipsis;
  739. word-break: break-all;
  740. margin-bottom: 15px;
  741. padding-left: 16px;
  742. background: url("http://192.168.1.234:19000/pre/image/png/20251218/1766043015491614.png") no-repeat left center;
  743. &:last-child {
  744. margin-bottom: 0;
  745. }
  746. &.active {
  747. font-weight: bold;
  748. }
  749. a {
  750. color: #333333;
  751. }
  752. }
  753. }
  754. }
  755. .leftBottom {
  756. height: 246px;
  757. position: relative;
  758. div {
  759. white-space: nowrap;
  760. overflow: hidden;
  761. text-overflow: ellipsis;
  762. font-size: 18px;
  763. color: #666666;
  764. margin-bottom: 18px;
  765. padding-left: 8px;
  766. background: url("http://192.168.1.234:19000/pre/image/png/20251218/1766042944885873.png") no-repeat left center;
  767. &:nth-child(3n+1) {
  768. font-weight: bold;
  769. }
  770. &:last-child {
  771. margin-bottom: 0;
  772. }
  773. a {
  774. color: #666666;
  775. }
  776. }
  777. }
  778. }
  779. .textRight {
  780. width: 380px;
  781. .rightTop {
  782. display: flex;
  783. align-items: flex-start;
  784. justify-content: flex-start;
  785. margin-bottom: 26px;
  786. .photo {
  787. width: 185px;
  788. height: 130px;
  789. img {
  790. width: 185px;
  791. height: 130px;
  792. }
  793. }
  794. .rightTopText {
  795. width: 195px;
  796. height: 130px;
  797. background-color: #f9fafb;
  798. padding: 10px 4px 9px 10px;
  799. box-sizing: border-box;
  800. div {
  801. width: 170px;
  802. height: 48px;
  803. line-height: 24px;
  804. font-size: 18px;
  805. display: -webkit-box;
  806. -webkit-box-orient: vertical;
  807. -webkit-line-clamp: 2;
  808. overflow: hidden;
  809. text-overflow: ellipsis;
  810. word-break: break-all;
  811. color: #333333;
  812. margin-bottom: 15px;
  813. padding-left: 16px;
  814. background: url("http://192.168.1.234:19000/pre/image/png/20251218/1766043015491614.png") no-repeat left center;
  815. &:last-child {
  816. margin-bottom: 0;
  817. }
  818. &.active {
  819. font-weight: bold;
  820. }
  821. a {
  822. color: #333333;
  823. }
  824. }
  825. }
  826. }
  827. .rightBottom {
  828. height: 246px;
  829. position: relative;
  830. div {
  831. white-space: nowrap;
  832. overflow: hidden;
  833. text-overflow: ellipsis;
  834. font-size: 18px;
  835. color: #666666;
  836. margin-bottom: 18px;
  837. padding-left: 8px;
  838. background: url("http://192.168.1.234:19000/pre/image/png/20251218/1766042944885873.png") no-repeat left center;
  839. &:nth-child(3n+1) {
  840. font-weight: bold;
  841. }
  842. &:last-child {
  843. margin-bottom: 0;
  844. }
  845. a {
  846. color: #666666;
  847. }
  848. }
  849. }
  850. }
  851. }
  852. }
  853. // 样式2
  854. .style2 {
  855. .box1 {
  856. .textLeft {
  857. .leftBottom {
  858. div {
  859. background: url("http://192.168.1.234:19000/pre/image/png/20251218/176604296168575.png") no-repeat left center;
  860. }
  861. }
  862. }
  863. .textRight {
  864. .rightBottom {
  865. div {
  866. background: url("http://192.168.1.234:19000/pre/image/png/20251218/176604296168575.png") no-repeat left center;
  867. }
  868. }
  869. }
  870. }
  871. }
  872. // 样式3
  873. .style3 {
  874. .box1 {
  875. .textLeft {
  876. .leftBottom {
  877. div {
  878. padding-left: 0;
  879. background: none;
  880. }
  881. }
  882. }
  883. .textRight {
  884. .rightBottom {
  885. div {
  886. padding-left: 0;
  887. background: none;
  888. }
  889. }
  890. }
  891. }
  892. }
  893. // 样式4, 5, 6共用
  894. .style4 {
  895. .box1 {
  896. .textLeft {
  897. .leftTop {
  898. margin-bottom: 0;
  899. }
  900. .leftBottom {
  901. margin-bottom: 26px;
  902. }
  903. }
  904. .textRight {
  905. .rightTop {
  906. margin-bottom: 0;
  907. }
  908. .rightBottom {
  909. margin-bottom: 26px;
  910. }
  911. }
  912. }
  913. }
  914. // 样式5
  915. .style5 {
  916. .box1 {
  917. .textLeft {
  918. .leftTop {
  919. margin-bottom: 0;
  920. }
  921. .leftBottom {
  922. margin-bottom: 26px;
  923. div {
  924. background: url("http://192.168.1.234:19000/pre/image/png/20251218/176604296168575.png") no-repeat left center;
  925. }
  926. }
  927. }
  928. .textRight {
  929. .rightTop {
  930. margin-bottom: 0;
  931. }
  932. .rightBottom {
  933. margin-bottom: 26px;
  934. div {
  935. background: url("http://192.168.1.234:19000/pre/image/png/20251218/176604296168575.png") no-repeat left center;
  936. }
  937. }
  938. }
  939. }
  940. }
  941. // 样式6
  942. .style6 {
  943. .box1 {
  944. .textLeft {
  945. .leftTop {
  946. margin-bottom: 0;
  947. }
  948. .leftBottom {
  949. margin-bottom: 26px;
  950. div {
  951. padding-left: 0;
  952. background: none;
  953. }
  954. }
  955. }
  956. .textRight {
  957. .rightTop {
  958. margin-bottom: 0;
  959. }
  960. .rightBottom {
  961. margin-bottom: 26px;
  962. div {
  963. padding-left: 0;
  964. background: none;
  965. }
  966. }
  967. }
  968. }
  969. }
  970. }
  971. </style>