class.vue 47 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094
  1. <template>
  2. <div>
  3. <HomePageHead></HomePageHead>
  4. <HomePageNavigation></HomePageNavigation>
  5. <HomeSecondaryHeading :titleData="pageData" :pinyinid="routeId"></HomeSecondaryHeading>
  6. <!-- 频道页 -->
  7. <!-- 农副产品供销网-频道页 -->
  8. <main class="index_main" id="all_vue">
  9. <!-- 二级栏目 start -->
  10. <!-- <nav class="channel_nav clearfix" v-if="pageData">
  11. <a class="channel_nav_head_name" href="" title="">
  12. {{ title }}
  13. </a>
  14. <div class="channel_nav_a_box clearfix">
  15. <NuxtLink :href="getLinkPath(item)" class="channel_nav_a" :title="item.alias"
  16. v-for="(item, index) in pageData" :key="index">
  17. <span class="nav2_title">{{ item.alias }}</span>
  18. </NuxtLink>
  19. </div>
  20. </nav> -->
  21. <!-- 二级栏目 end -->
  22. <div class="phone_box_1 pc_none" >
  23. <div class="phone_box_1_head">
  24. <NuxtLink class=" "
  25. :href="getLinkPath(pageData[0])"
  26. v-if="pageData[0]"
  27. >
  28. {{ pageData[0].alias }}
  29. </NuxtLink>
  30. </div>
  31. </div>
  32. <section class="channel_1 clearfix">
  33. <div class="channel_box_1 clearfix">
  34. <div class="channel_head_btn_box">
  35. <div class="channel_head_btn channel_head_btn_only">
  36. <NuxtLink class="channel_head_a" :href="getLinkPath(pageData[0])" v-if="pageData[0]"
  37. :title="pageData[0].alias">
  38. {{ pageData[0].alias }}
  39. </NuxtLink>
  40. </div>
  41. <!-- <NuxtLink class="channel_head_btn_right_a" :href="getLinkPath(pageData[0])" v-if="pageData[0]"
  42. :title="pageData[0].alias">
  43. 栏目简介
  44. </NuxtLink> -->
  45. </div>
  46. <div class="channel_name_ul" v-if="pageData[0].data2">
  47. <div class="channel_name_ul_li" v-for="(item, index) in pageData[0].data2" :key="index">
  48. <NuxtLink class="channel_name_ul_li_dot1 dot1" :href="getLinkPathDetail(item)"
  49. :title="item.title" :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
  50. {{ item.title }}
  51. </NuxtLink>
  52. </div>
  53. </div>
  54. </div>
  55. <div class="channel_box_2 clearfix">
  56. <div class="channel_1_box clearfix">
  57. <HomeSwiperNfcpgx :imgData="pageData[0].data"></HomeSwiperNfcpgx>
  58. </div>
  59. </div>
  60. </section>
  61. <!-- 家电下乡 -->
  62. <div class="phone_box_1 pc_none" >
  63. <div class="phone_box_1_ul">
  64. <div class="">
  65. <NuxtLink class=""
  66. v-for="(item, index) in pageData[0].data2"
  67. :href="getLinkPathDetail(item)"
  68. :key="item.id"
  69. :target="item.islink == 1 ? '_blank' : '_self'">
  70. {{ item.title }}
  71. </NuxtLink>
  72. </div>
  73. </div>
  74. </div>
  75. <!-- 广告1 -->
  76. <HomeAdvertising :imgurl="adImg1"></HomeAdvertising>
  77. <section class="channel_2 clearfix">
  78. <div class="channel_box_3 clearfix">
  79. <div class="channel_head_btn_box">
  80. <div class="channel_head_btn channel_head_btn_only">
  81. <NuxtLink class="channel_head_a" :href="getLinkPath(pageData[1])" v-if="pageData[1]"
  82. :title="pageData[1].alias">
  83. {{ pageData[1].alias }}
  84. </NuxtLink>
  85. </div>
  86. <!-- <NuxtLink class="channel_head_btn_right_a" :href="getLinkPath(pageData[1])" v-if="pageData[1]"
  87. :title="pageData[1].alias">
  88. 栏目简介
  89. </NuxtLink> -->
  90. </div>
  91. <div class="channel_big_ul clearfix" v-if="pageData[1]">
  92. <div class="channel_big_li clearfix" v-if="pageData[1].data[0]">
  93. <div class="channel_big_li_img_box" v-if="pageData[1].data[0]">
  94. <NuxtLink :href="getLinkPathDetail(pageData[1].data[0])"
  95. :title="pageData[1].data[0].title">
  96. <img class="channel_big_li_img" :src="pageData[1].data[0].imgurl"
  97. :title="pageData[1].data[0].title" alt="">
  98. <span class="channel_big_li_content">{{ pageData[1].data[0].title }}</span>
  99. </NuxtLink>
  100. </div>
  101. <div class="channel_big_li_in" v-if="pageData[1].data2">
  102. <div class="channel_ul_1">
  103. <NuxtLink class="channel_ul_1_a dot1" v-for="(item, index) in pageData[1].data2"
  104. :href="getLinkPathDetail(item)" :title="item.title" :key="item.id"
  105. :target="item.islink == 1 ? '_blank' : '_self'">
  106. {{ item.title }}
  107. </NuxtLink>
  108. </div>
  109. </div>
  110. </div>
  111. <div class="channel_big_li clearfix" v-if="pageData[1].data[1]">
  112. <div class="channel_big_li_img_box" v-if="pageData[1].data[1]">
  113. <NuxtLink :href="getLinkPathDetail(pageData[1].data[1])"
  114. :title="pageData[1].data[1].title">
  115. <img class="channel_big_li_img" :src="pageData[1].data[1].imgurl"
  116. :title="pageData[1].data[1].title" alt="">
  117. <span class="channel_big_li_content">{{ pageData[1].data[1].title }}</span>
  118. </NuxtLink>
  119. </div>
  120. <div class="channel_big_li_in" v-if="pageData[1].data3">
  121. <div class="channel_ul_1">
  122. <NuxtLink class="channel_ul_1_a dot1" v-for="(item, index) in pageData[1].data3"
  123. :href="getLinkPathDetail(item)" :title="item.title" :key="item.id"
  124. :target="item.islink == 1 ? '_blank' : '_self'">
  125. {{ item.title }}
  126. </NuxtLink>
  127. </div>
  128. </div>
  129. </div>
  130. </div>
  131. <div class="channel_head_btn_box channel_head_top">
  132. <div class="channel_head_btn channel_head_btn_only">
  133. <NuxtLink class="channel_head_a" :href="getLinkPath(pageData[2])" v-if="pageData[2]"
  134. :title="pageData[2].alias">
  135. {{ pageData[2].alias }}
  136. </NuxtLink>
  137. </div>
  138. <!-- <NuxtLink class="channel_head_btn_right_a" :href="getLinkPath(pageData[2])" v-if="pageData[2]"
  139. :title="pageData[2].alias">
  140. 栏目简介
  141. </NuxtLink> -->
  142. </div>
  143. <div class="clearfix">
  144. <div class="channel_box_5 clearfix">
  145. <div class="channel_img_ul_2" v-if="pageData[2]">
  146. <div class="channel_img_ul_2_li" v-if="pageData[2].data[0]">
  147. <NuxtLink :href="getLinkPathDetail(pageData[2].data[0])"
  148. :title="pageData[2].data[0].title">
  149. <img class="channel_img_ul_2_li_img" :src="pageData[2].data[0].imgurl" title=""
  150. alt="">
  151. <div class="channel_img_ul_2_li_dot1 dot1">
  152. {{ pageData[2].data[0].title }}
  153. </div>
  154. </NuxtLink>
  155. </div>
  156. </div>
  157. </div>
  158. <div class="channel_box_6 clearfix" v-if="pageData[2]">
  159. <div class=" channel_ul_2 clearfix" v-if="pageData[2].data2">
  160. <NuxtLink class="channel_ul_2_a dot1" v-for="(item, index) in pageData[2].data2"
  161. :href="getLinkPathDetail(item)" :title="item.title" :key="item.id"
  162. :target="item.islink == 1 ? '_blank' : '_self'">
  163. {{ item.title }}
  164. </NuxtLink>
  165. </div>
  166. </div>
  167. </div>
  168. </div>
  169. <div class="channel_box_4 clearfix">
  170. <div class="channel_head_btn_box">
  171. <div class="channel_head_btn channel_head_btn_only">
  172. <NuxtLink class="channel_head_a" :href="getLinkPath(pageData[3])" v-if="pageData[3]"
  173. :title="pageData[3].alias">
  174. {{ pageData[3].alias }}
  175. </NuxtLink>
  176. </div>
  177. <!-- <NuxtLink class="channel_head_btn_right_a" :href="getLinkPath(pageData[3])" v-if="pageData[3]"
  178. :title="pageData[3].alias">
  179. 栏目简介
  180. </NuxtLink> -->
  181. </div>
  182. <div class="channel_img_ul_3" v-if="pageData[3].data">
  183. <div class="channel_img_ul_3_li clearfix_2" v-for="(item, index) in pageData[3].data"
  184. :key="item">
  185. <NuxtLink class="channel_img_ul_3_li_a" :href="getLinkPathDetail(item)" :title="item.title"
  186. :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
  187. <div class="channel_img_ul_3_li_img_box">
  188. <img class="channel_img_ul_3_li_img" :src="item.imgurl" title="" alt="">
  189. </div>
  190. <div class="channel_img_ul_3_li_dot3 dot3">
  191. {{ item.title }}
  192. </div>
  193. <div class="channel_img_ul_3_li_num">{{ index + 1 }}</div>
  194. </NuxtLink>
  195. </div>
  196. </div>
  197. </div>
  198. </section>
  199. <!-- 广告2 -->
  200. <HomeAdvertising :imgurl="adImg1"></HomeAdvertising>
  201. <section class="channel_3 clearfix">
  202. <div class="channel_box_3 clearfix" v-if="pageData[4]">
  203. <!--start 模块5 -->
  204. <div class="channel_head_btn_box">
  205. <div class="channel_head_btn channel_head_btn_only">
  206. <NuxtLink class="channel_head_a" :href="getLinkPath(pageData[4])" v-if="pageData[4]"
  207. :title="pageData[4].alias">
  208. {{ pageData[4].alias }}
  209. </NuxtLink>
  210. </div>
  211. <!-- <NuxtLink class="channel_head_btn_right_a" :href="getLinkPath(pageData[4])" v-if="pageData[4]"
  212. :title="pageData[4].alias">
  213. 栏目简介
  214. </NuxtLink> -->
  215. </div>
  216. <div class="channel_img_ul_4 clearfix" v-if="pageData[4].data">
  217. <div class="channel_img_ul_4_li clearfix" v-for="(item, index) in pageData[4].data"
  218. :key="index">
  219. <NuxtLink class="channel_img_ul_4_li_a clearfix" :href="getLinkPathDetail(item)"
  220. :title="item.title" :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
  221. <div class="channel_img_ul_4_li_img_box">
  222. <img class="channel_img_ul_4_li_img" :src="item.imgurl" title="" alt="">
  223. </div>
  224. <div class="channel_img_ul_4_li_dot2 dot2">{{ item.title }}</div>
  225. </NuxtLink>
  226. </div>
  227. </div>
  228. <div class="channel_ul_3 clearfix" v-if="pageData[4].data2">
  229. <div class="channel_ul_3_li clearfix" v-for="(item, index) in pageData[4].data2" :key="index">
  230. <NuxtLink class="channel_ul_3_li_a" :href="getLinkPathDetail(item)" :title="item.title"
  231. :key="item.id" :target="item.islink == 1 ? '_blank' : '_self'">
  232. <!-- <div class="channel_ul_3_li_tag">{{ pageData[4].alias }}</div> -->
  233. <div class="channel_ul_3_li_dot1 dot1"> {{ item.title }}</div>
  234. </NuxtLink>
  235. </div>
  236. </div>
  237. <!--end 模块5 -->
  238. </div>
  239. <div class="channel_box_4 clearfix" v-if="pageData[5]">
  240. <!--start 模块6-->
  241. <div class="channel_head_btn_box">
  242. <div class="channel_head_btn channel_head_btn_only">
  243. <NuxtLink class="channel_head_a" :href="getLinkPath(pageData[5])" v-if="pageData[5]"
  244. :title="pageData[5].alias">
  245. {{ pageData[5].alias }}
  246. </NuxtLink>
  247. </div>
  248. <!-- <NuxtLink class="channel_head_btn_right_a" :href="getLinkPath(pageData[5])" v-if="pageData[5]"
  249. :title="pageData[5].alias">
  250. 栏目简介
  251. </NuxtLink> -->
  252. </div>
  253. <div class="channel_img_ul_5">
  254. <div class="channel_img_ul_5_li" v-if="pageData[5].data[0]">
  255. <NuxtLink class="channel_img_ul_5_li_a" :href="getLinkPathDetail(pageData[5].data[0])"
  256. :title="pageData[5].data[0].title"
  257. :target="pageData[5].data[0].islink == 1 ? '_blank' : '_self'">
  258. <img class="channel_img_ul_5_li_img" :src="pageData[5].data[0].imgurl" title="" alt="">
  259. <div class="channel_img_ul_5_li_dot2 dot2"> {{ pageData[5].data[0].title }}</div>
  260. </NuxtLink>
  261. </div>
  262. </div>
  263. <!--end 模块6-->
  264. </div>
  265. </section>
  266. <!-- 万村千乡 phone-->
  267. <div class="phone_box_2 pc_none" >
  268. <div class="phone_box_2_head">
  269. <NuxtLink
  270. :href="getLinkPath(pageData[1])"
  271. v-if="pageData[1]"
  272. >
  273. {{ pageData[1].alias }}
  274. </NuxtLink>
  275. </div>
  276. <div class="phone_box_2_img_ul">
  277. <div class=""
  278. v-if="pageData[1].data[0]"
  279. >
  280. <NuxtLink
  281. :href="getLinkPathDetail(pageData[1].data[0])"
  282. >
  283. <img class=""
  284. :src="pageData[1].data[0].imgurl"
  285. alt="">
  286. <span class="">
  287. {{ pageData[1].data[0].title }}
  288. </span>
  289. </NuxtLink>
  290. </div>
  291. </div>
  292. <div class="phone_box_2_ul">
  293. <div class="" v-if="pageData[1].data2">
  294. <NuxtLink
  295. class=""
  296. v-for="(item, index) in pageData[1].data2"
  297. :href="getLinkPathDetail(item)"
  298. :key="item.id"
  299. :target="item.islink == 1 ? '_blank' : '_self'">
  300. {{ item.title }}
  301. </NuxtLink>
  302. </div>
  303. </div>
  304. </div>
  305. <!-- 大学生村官 phone -->
  306. <div class="phone_box_3 pc_none">
  307. <div class="phone_box_3_head">
  308. <NuxtLink
  309. class=""
  310. :href="getLinkPath(pageData[2])"
  311. v-if="pageData[2]"
  312. >
  313. {{ pageData[2].alias }}
  314. </NuxtLink>
  315. </div>
  316. <div class="phone_box_3_img_ul">
  317. <div class=""
  318. v-if="pageData[2].data[0]"
  319. >
  320. <NuxtLink
  321. :href="getLinkPathDetail(pageData[2].data[0])"
  322. >
  323. <img class=" "
  324. :src="pageData[2].data[0].imgurl" title=""
  325. alt="">
  326. <span class="">
  327. {{ pageData[2].data[0].title }}
  328. </span>
  329. </NuxtLink>
  330. </div>
  331. </div>
  332. <div class="phone_box_3_ul">
  333. <div class="" v-if="pageData[2].data2">
  334. <NuxtLink
  335. class=""
  336. v-for="(item, index) in pageData[2].data2"
  337. :href="getLinkPathDetail(item)"
  338. :key="item.id"
  339. :target="item.islink == 1 ? '_blank' : '_self'">
  340. {{ item.title }}
  341. </NuxtLink>
  342. </div>
  343. </div>
  344. </div>
  345. <section class="channel_4 clearfix">
  346. <div class="channel_box_3 clearfix" v-if="pageData[6]">
  347. <div class="channel_head_btn_box">
  348. <div class="channel_head_btn">
  349. <NuxtLink class="channel_head_a" :href="getLinkPath(pageData[6])" v-if="pageData[6]"
  350. :title="pageData[6].alias">
  351. {{ pageData[6].alias }}
  352. </NuxtLink>
  353. </div>
  354. <!-- <NuxtLink class="channel_head_btn_right_a" :href="getLinkPath(pageData[6])" v-if="pageData[6]"
  355. :title="pageData[6].alias">
  356. 栏目简介
  357. </NuxtLink> -->
  358. </div>
  359. <div class="channel_4_text clearfix">
  360. <!--start 模块7-->
  361. <div class=" clearfix">
  362. <div class="channel_box_5 clearfix">
  363. <div class="channel_img_ul_6" v-if="pageData[6].data[0]">
  364. <div class="channel_img_ul_6_li">
  365. <NuxtLink class="channel_img_ul_6_li_a"
  366. :href="getLinkPathDetail(pageData[6].data[0])"
  367. :title="pageData[6].data[0].title"
  368. :target="pageData[6].data[0].islink == 1 ? '_blank' : '_self'">
  369. <img class="channel_img_ul_6_li_img" :src="pageData[6].data[0].imgurl"
  370. title="" alt="">
  371. <div class="channel_img_ul_6_li_dot2 dot2">
  372. {{ pageData[6].data[0].title }}
  373. </div>
  374. </NuxtLink>
  375. </div>
  376. </div>
  377. <div class="channel_img_ul_even_1 clearfix" v-if="pageData[6].data2">
  378. <div class="channel_img_ul_even_1_li" v-for="(item, index) in pageData[6].data2"
  379. :key="index">
  380. <NuxtLink class="channel_img_ul_even_1_li_a" :href="getLinkPathDetail(item)"
  381. :title="item.title" :key="item.id"
  382. :target="item.islink == 1 ? '_blank' : '_self'">
  383. <img class="channel_img_ul_even_1_li_img" :src="item.imgurl" title=""
  384. alt="">
  385. <div class="channel_img_ul_even_1_li_dot2 dot2">
  386. {{ item.title }}
  387. </div>
  388. </NuxtLink>
  389. </div>
  390. </div>
  391. </div>
  392. <div class="channel_box_6 clearfix">
  393. <div class="channel_ul_4 clearfix" v-if="pageData[6].data3">
  394. <NuxtLink class="channel_ul_4_a dot1" :href="getLinkPathDetail(item)"
  395. v-for="(item, index) in pageData[6].data3" :key="index"
  396. :target="item.islink == 1 ? '_blank' : '_self'">
  397. {{ item.title }}
  398. </NuxtLink>
  399. </div>
  400. </div>
  401. </div>
  402. </div>
  403. </div>
  404. <div class="channel_box_4 clearfix" v-if="pageData[7]">
  405. <div class="channel_head_btn_box">
  406. <div class="channel_head_btn">
  407. <NuxtLink class="channel_head_a" :href="getLinkPath(pageData[7])" v-if="pageData[7]"
  408. :title="pageData[7].alias">
  409. {{ pageData[7].alias }}
  410. </NuxtLink>
  411. </div>
  412. <!-- <NuxtLink class="channel_head_btn_right_a" :href="getLinkPath(pageData[7])" v-if="pageData[7]"
  413. :title="pageData[7].alias">
  414. 栏目简介
  415. </NuxtLink> -->
  416. </div>
  417. <div class=" clearfix">
  418. <!--start 模块8 -->
  419. <div class=" clearfix" v-show="channel_choice_2_num == 1">
  420. <div class="channel_img_ul_7 clearfix">
  421. <div class="channel_img_ul_7_li" v-if="pageData[7].data[0]">
  422. <NuxtLink class="channel_img_ul_7_li_a"
  423. :href="getLinkPathDetail(pageData[7].data[0])"
  424. :title="pageData[7].data[0].title"
  425. :target="pageData[7].data[0].islink == 1 ? '_blank' : '_self'">
  426. <img class="channel_img_ul_7_li_img" :src="pageData[7].data[0].imgurl" title=""
  427. alt="">
  428. <div class="channel_img_ul_7_li_foot">
  429. <div class="channel_img_ul_7_li_tag">热 门</div>
  430. <div class="channel_img_ul_7_li_dot1 dot1">{{ pageData[7].data[0].title }}
  431. </div>
  432. </div>
  433. </NuxtLink>
  434. </div>
  435. </div>
  436. <div class="channel_ul_5 clearfix" v-if="pageData[7].data2">
  437. <NuxtLink class="channel_ul_5_a dot1" :href="getLinkPathDetail(item)"
  438. v-for="(item, index) in pageData[7].data2" :key="index"
  439. :target="item.islink == 1 ? '_blank' : '_self'">
  440. {{ item.title }}
  441. </NuxtLink>
  442. </div>
  443. </div>
  444. </div>
  445. </div>
  446. </section>
  447. <!-- 农村合作社 phone -->
  448. <div class="phone_box_4 pc_none">
  449. <div class="phone_box_4_head">
  450. <NuxtLink
  451. class=""
  452. :href="getLinkPath(pageData[3])"
  453. v-if="pageData[3]"
  454. >
  455. {{ pageData[3].alias }}
  456. </NuxtLink>
  457. </div>
  458. <div class="phone_box_4_img_ul">
  459. <div class=""
  460. v-if="pageData[3].data"
  461. v-for="(item, index) in pageData[3].data.slice(0,1)"
  462. >
  463. <NuxtLink
  464. class=""
  465. :href="getLinkPathDetail(item)"
  466. :key="item"
  467. :target="item.islink == 1 ? '_blank' : '_self'">
  468. <img class="" :src="item.imgurl" alt="">
  469. <span class="">
  470. {{ item.title }}
  471. </span>
  472. </NuxtLink>
  473. </div>
  474. </div>
  475. <div class="phone_box_4_ul">
  476. <div class="" v-if="pageData[2].data2">
  477. <NuxtLink
  478. class=""
  479. v-for="(item, index) in pageData[3].data.slice(1,5)"
  480. :href="getLinkPathDetail(item)"
  481. :key="item"
  482. :target="item.islink == 1 ? '_blank' : '_self'">
  483. {{ item.title }}
  484. </NuxtLink>
  485. </div>
  486. </div>
  487. </div>
  488. </main>
  489. <!-- 页脚部分 -->
  490. <HomeFoot1></HomeFoot1>
  491. </div>
  492. </template>
  493. <script setup>
  494. //0.加载页面依赖 start ---------------------------------------->
  495. import { ref, onMounted } from 'vue';
  496. import { ElMessage } from 'element-plus';
  497. const channel_choice_1_num = ref(1)
  498. const channel_choice_2_num = ref(1)
  499. //0.加载页面依赖 end ---------------------------------------->
  500. //1.获得路由id start ---------------------------------------->
  501. const targetSegment = getRoutePath(1);
  502. //1.1 获得当前的路由id
  503. let routeId;
  504. //通过导航路径反向查询导航id
  505. const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
  506. method: 'GET',
  507. query: {
  508. 'pinyin': targetSegment,
  509. },
  510. });
  511. if (getRouteId.code == 200) {
  512. routeId = getRouteId.data.category_id
  513. } else {
  514. console.log("获得路由id出错!", getRouteId.message)
  515. }
  516. //1.获得路由id end ---------------------------------------->
  517. //2.页面交互效果 start ---------------------------------------->
  518. // 2.1 一级栏目
  519. const title = ref("")
  520. const tabsData = ref(1)
  521. async function getPageDataTitle() {
  522. const mkdata = await requestDataPromise('/web/getOneWebsiteCategory', {
  523. method: 'GET',
  524. query: {
  525. 'catid': routeId,
  526. },
  527. });
  528. if (mkdata.code == 200) {
  529. title.value = mkdata.data.alias;
  530. } else {
  531. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  532. console.log("错误位置:获取二级标题")
  533. console.log("后端错误反馈:", mkdata.message)
  534. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  535. }
  536. }
  537. getPageDataTitle();
  538. //2.页面交互效果 end ---------------------------------------->
  539. //3.广告 start ---------------------------------------->
  540. let adImg1 = ref({})
  541. let adImg2 = ref({})
  542. let adImg3 = ref({})
  543. let adImg4 = ref({})
  544. onMounted(async () => {
  545. //从客户端获取行政职能部门 加快打开速度
  546. const { $webUrl, $CwebUrl } = useNuxtApp();
  547. //广告1
  548. let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nfcpgxw_category_0001`
  549. const responseAd1 = await fetch(url, {
  550. headers: {
  551. 'Content-Type': 'application/json',
  552. 'Userurl': $CwebUrl,
  553. 'Origin': $CwebUrl
  554. }
  555. });
  556. const resultAd1 = await responseAd1.json();
  557. adImg1.value = resultAd1.data[0];
  558. //广告2
  559. let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nfcpgxw_category_0002`
  560. const responseAd2 = await fetch(url2, {
  561. headers: {
  562. 'Content-Type': 'application/json',
  563. 'Userurl': $CwebUrl,
  564. 'Origin': $CwebUrl
  565. }
  566. });
  567. const resultAd2 = await responseAd2.json();
  568. adImg2.value = resultAd2.data[0];
  569. //广告3
  570. let url3 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nfcpgxw_category_0003`
  571. const responseAd3 = await fetch(url3, {
  572. headers: {
  573. 'Content-Type': 'application/json',
  574. 'Userurl': $CwebUrl,
  575. 'Origin': $CwebUrl
  576. }
  577. });
  578. const resultAd3 = await responseAd3.json();
  579. adImg3.value = resultAd3.data[0];
  580. //广告4
  581. let url4 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nfcpgxw_category_0004`
  582. const responseAd4 = await fetch(url4, {
  583. headers: {
  584. 'Content-Type': 'application/json',
  585. 'Userurl': $CwebUrl,
  586. 'Origin': $CwebUrl
  587. }
  588. });
  589. const resultAd4 = await responseAd4.json();
  590. adImg4.value = resultAd4.data[0];
  591. })
  592. //3.广告 end ---------------------------------------->
  593. //4.页面数据 start ---------------------------------------->
  594. const pageData = ref([
  595. //示例:
  596. // {
  597. // id: 1,
  598. // title: "", //该导航的标题
  599. // data: [], //数据1
  600. // data1: [], //数据2
  601. // data2: [], //数据3
  602. // data3: [], //数据4
  603. // data4: [], //数据5
  604. // category_id1: "", //子导航id1
  605. // category_id2: "",
  606. // category_id3: "",
  607. // category_id4: "",
  608. // title1: "", //子导航标题1
  609. // title2: "",
  610. // title3: "",
  611. // title4: "",
  612. // cid: "" //该导航的id
  613. // },
  614. ])
  615. //4.1 获取所有导航
  616. try {
  617. const navigateData = await requestDataPromise('/web/getWebsiteModelCategory', {
  618. method: 'GET',
  619. query: {
  620. 'placeid': 1,
  621. 'pid': routeId,
  622. 'num': 20
  623. },
  624. });
  625. if (navigateData.code == 200) {
  626. // 遍历可用的导航池放到页面中
  627. for (let index in navigateData.data) {
  628. let data = {
  629. title: navigateData.data[index].name,
  630. cid: navigateData.data[index].category_id,
  631. children_count: navigateData.data[index].children_count,
  632. alias: navigateData.data[index].alias,
  633. aLIas_pinyin: targetSegment + "/" + navigateData.data[index].aLIas_pinyin,
  634. data: [],
  635. data1: [],
  636. data2: [],
  637. data3: [],
  638. data4: [],
  639. category_id1: "",
  640. category_id2: "",
  641. category_id3: "",
  642. category_id4: "",
  643. title1: "",
  644. title2: "",
  645. title3: "",
  646. title4: ""
  647. };
  648. if (navigateData.data[index].is_url == 1) {
  649. // 处理 URL 的逻辑
  650. } else {
  651. //每个页面最多8个模块
  652. pageData.value.push(data);
  653. }
  654. }
  655. //导航池加载完毕,开始申请模块数据
  656. let getJson = [
  657. // { "parent": routeId + ",0,0", "child": pageData.value[0].cid + ",4,8" },//模块1
  658. // { "parent": routeId + ",0,0", "child": pageData.value[1].cid + ",2,8" },//模块2
  659. // { "parent": routeId + ",0,0", "child": pageData.value[2].cid + ",1,6" },//模块3
  660. // { "parent": routeId + ",0,0", "child": pageData.value[3].cid + ",6,0" },//模块4
  661. // { "parent": routeId + ",0,0", "child": pageData.value[4].cid + ",2,3" },//模块5
  662. // { "parent": routeId + ",0,0", "child": pageData.value[5].cid + ",1,0" },//模块6
  663. // { "parent": routeId + ",0,0", "child": pageData.value[6].cid + ",3,10" },//模块7
  664. // { "parent": routeId + ",0,0", "child": pageData.value[7].cid + ",1,6" },//模块8
  665. ]
  666. for (let i = 0; i < pageData.value.length; i++) {
  667. if (i == 0) {
  668. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",4,8" });
  669. } else if (i == 1) {
  670. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",2,8" });
  671. } else if (i == 2) {
  672. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",1,6" });
  673. } else if (i == 3) {
  674. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",6,0" });
  675. } else if (i == 4) {
  676. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",2,3" });
  677. } else if (i == 5) {
  678. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",1,0" });
  679. } else if (i == 6) {
  680. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",3,10" });
  681. } else if (i == 7) {
  682. getJson.push({ "parent": routeId + ",0,0", "child": pageData.value[i].cid + ",1,6" });
  683. }
  684. }
  685. let jsonString = JSON.stringify(getJson);
  686. getPageAllData(jsonString);
  687. } else {
  688. console.log("错误:渲染8个模块环节出错,请检查是否存在没有数据的模块!")
  689. }
  690. } catch (error) {
  691. console.log("错误:导航池渲染执行接口出错!请检查频道页渲染的模块数据是否完整!")
  692. }
  693. async function getPageAllData(jsonString) {
  694. const mkdata = await requestDataPromise('/web/getWebsiteAllArticle', {
  695. method: 'GET',
  696. query: {
  697. 'id': jsonString
  698. },
  699. });
  700. console.log("频道页渲染的模块数据:", mkdata);
  701. if (mkdata.code == 200) {
  702. if (mkdata.data.length > 0) {
  703. //模块1 顶部大图和列表
  704. pageData.value[0].data = mkdata.data[0].child.imgnum;
  705. pageData.value[0].data2 = mkdata.data[0].child.textnum;
  706. }
  707. if (mkdata.data.length > 1) {
  708. //模块2
  709. pageData.value[1].data = mkdata.data[1].child.imgnum;
  710. for (let index in mkdata.data[1].child.textnum) {
  711. if (index < 4) {
  712. pageData.value[1].data2.push(mkdata.data[1].child.textnum[index]);
  713. } else {
  714. pageData.value[1].data3.push(mkdata.data[1].child.textnum[index]);
  715. }
  716. }
  717. }
  718. if (mkdata.data.length > 2) {
  719. //模块3
  720. pageData.value[2].data = mkdata.data[2].child.imgnum;
  721. pageData.value[2].data2 = mkdata.data[2].child.textnum;
  722. }
  723. if (mkdata.data.length > 3) {
  724. //模块4
  725. pageData.value[3].data = mkdata.data[3].child.imgnum;
  726. }
  727. if (mkdata.data.length > 4) {
  728. //模块5
  729. pageData.value[4].data = mkdata.data[4].child.imgnum;
  730. pageData.value[4].data2 = mkdata.data[4].child.textnum;
  731. }
  732. if (mkdata.data.length > 5) {
  733. //模块6
  734. pageData.value[5].data = mkdata.data[5].child.imgnum;
  735. }
  736. if (mkdata.data.length > 6) {
  737. //模块7
  738. for (let index in mkdata.data[6].child.imgnum) {
  739. if (index < 1) {
  740. pageData.value[6].data.push(mkdata.data[6].child.imgnum[index]);
  741. } else {
  742. pageData.value[6].data2.push(mkdata.data[6].child.imgnum[index]);
  743. }
  744. }
  745. pageData.value[6].data3 = mkdata.data[6].child.textnum;
  746. }
  747. if (mkdata.data.length > 7) {
  748. //模块8
  749. pageData.value[7].data = mkdata.data[7].child.imgnum;
  750. pageData.value[7].data2 = mkdata.data[7].child.textnum;
  751. }
  752. } else {
  753. ElMessage.error(mkdata.message)
  754. }
  755. }
  756. //4.页面数据 end ---------------------------------------->
  757. //5.设置seo信息 start---------------------------------------->
  758. const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
  759. method: 'GET',
  760. query: {
  761. 'catid': routeId
  762. },
  763. });
  764. if (setData.code == 200) {
  765. let seoTitle = setData.data.seo_title;
  766. let seoDescription = setData.data.seo_description;
  767. let seoKeywords = setData.data.seo_keywords;
  768. let seoSuffix = setData.data.suffix;
  769. let seoName = setData.data.website_name;
  770. useSeoMeta({
  771. title: seoTitle + "_" + seoName + "_" + seoSuffix,
  772. meta: [
  773. { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  774. { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  775. { name: 'viewport', content: 'width=device-width,initial-scale=1,user-scalable=no',tagPriority: 10 }
  776. ]
  777. });
  778. } else {
  779. console.log("设置频道页SEO出错!", setData.message)
  780. }
  781. //5.设置seo信息 end---------------------------------------->
  782. </script>
  783. <style lang="less" scoped>
  784. @import '@/assets/css/class.less';
  785. </style>
  786. <style lang="less" scoped>
  787. @media screen and (min-width:801px){/*pc*/
  788. .pc_none{display:none;}
  789. }
  790. @media screen and (max-width:800px){/*ipad_phone*/
  791. .index_main{width:100%;}
  792. .phone_box_1{
  793. width:92%;margin:0px auto 0px;
  794. .phone_box_1_head{
  795. height:50px;line-height:50px;background:#fff;border-bottom:1px solid #004564;
  796. margin-top:17px;width:100%;
  797. a{
  798. float:left;height:50px;line-height:50px;margin:0;position:relative;
  799. color:#004564;font-size:18px; font-weight:bold;box-sizing:border-box;
  800. }
  801. }
  802. .phone_box_1_ul{
  803. overflow:hidden;height:123px;margin-top:8px;
  804. >div{ width:100%;height:100%;
  805. }
  806. a{
  807. width:100%!important;display:block;height:40px;line-height:40px;
  808. border-bottom:1px solid #E6E6E6;display:block;position:relative;
  809. word-break: keep-all; white-space: nowrap;overflow:hidden;text-overflow:ellipsis;
  810. font-size:16px;color:#333;text-indent:18px;
  811. }
  812. a::after{
  813. content: '';display: block;
  814. position:absolute;left:0px;top:18px;background:#E6E6E6;
  815. width:6px;height:6px;
  816. border-radius:50%;
  817. }
  818. a:nth-of-type(n+4){display:none;}
  819. }
  820. }
  821. .phone_box_2{
  822. width:92%;margin:0px auto 0px;
  823. .phone_box_2_head{
  824. height:50px;line-height:50px;background:#fff;border-bottom:1px solid #004564;
  825. margin-top:17px;width:100%;
  826. a{
  827. float:left;height:50px;line-height:50px;margin:0;position:relative;
  828. color:#004564;font-size:18px; font-weight:bold;box-sizing:border-box;
  829. }
  830. }
  831. .phone_box_2_img_ul{
  832. height:55vw;overflow:hidden;margin-top:15px;
  833. div{width:100%;float:none;height:55vw;border-radius:10px;position:relative;overflow:hidden;}
  834. a{display:block;width:100%;height:100%;}
  835. img{display:block;width:100%;height:100%;}
  836. span{
  837. position:absolute;width:100%;height:66px;line-height:90px;color:#fff; font-size:16px;
  838. left:0px;bottom:0px;padding:0px 5%;box-sizing:border-box; display:block;
  839. background:linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .5));
  840. word-break: keep-all; white-space: nowrap;overflow:hidden;text-overflow:ellipsis;
  841. }
  842. >div:nth-of-type(n+2){display:none;}
  843. }
  844. .phone_box_2_ul{
  845. overflow:hidden;height:123px;margin-top:15px;
  846. >div{ width:100%;height:100%; }
  847. a{
  848. width:100%!important;display:block;height:40px;line-height:40px;
  849. border-bottom:1px solid #E6E6E6;display:block;position:relative;
  850. word-break: keep-all; white-space: nowrap;overflow:hidden;text-overflow:ellipsis;
  851. font-size:16px;color:#333;text-indent:18px;
  852. }
  853. a::after{
  854. content: '';display: block;
  855. position:absolute;left:0px;top:18px;background:#E6E6E6;
  856. width:6px;height:6px;border-radius:50%;
  857. }
  858. a:nth-of-type(n+4){display:none;}
  859. }
  860. }
  861. .phone_box_3{
  862. width:92%;margin:0px auto 0px;
  863. .phone_box_3_head{
  864. height:50px;line-height:50px;background:#fff;border-bottom:1px solid #004564;
  865. margin-top:17px;width:100%;
  866. a{
  867. float:left;height:50px;line-height:50px;margin:0;position:relative;
  868. color:#004564;font-size:18px; font-weight:bold;box-sizing:border-box;
  869. }
  870. }
  871. .phone_box_3_img_ul{
  872. height:55vw;overflow:hidden;margin-top:15px;
  873. div{width:100%;float:none;height:55vw;border-radius:10px;position:relative;overflow:hidden;}
  874. a{display:block;width:100%;height:100%;}
  875. img{display:block;width:100%;height:100%;}
  876. span{
  877. position:absolute;width:100%;height:66px;line-height:90px;color:#fff; font-size:16px;
  878. left:0px;bottom:0px;padding:0px 5%;box-sizing:border-box; display:block;
  879. background:linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .5));
  880. word-break: keep-all; white-space: nowrap;overflow:hidden;text-overflow:ellipsis;
  881. }
  882. >div:nth-of-type(n+2){display:none;}
  883. }
  884. .phone_box_3_ul{
  885. overflow:hidden;height:123px;margin-top:15px;
  886. >div{ width:100%;height:100%; }
  887. a{
  888. width:100%!important;display:block;height:40px;line-height:40px;
  889. border-bottom:1px solid #E6E6E6;display:block;position:relative;
  890. word-break: keep-all; white-space: nowrap;overflow:hidden;text-overflow:ellipsis;
  891. font-size:16px;color:#333;text-indent:18px;
  892. }
  893. a::after{
  894. content: '';display: block;
  895. position:absolute;left:0px;top:18px;background:#E6E6E6;
  896. width:6px;height:6px;border-radius:50%;
  897. }
  898. a:nth-of-type(n+4){display:none;}
  899. }
  900. }
  901. .phone_box_4{
  902. width:92%;margin:0px auto 15px;
  903. .phone_box_4_head{
  904. height:50px;line-height:50px;background:#fff;border-bottom:1px solid #004564;
  905. margin-top:17px;width:100%;
  906. a{
  907. float:left;height:50px;line-height:50px;margin:0;position:relative;
  908. color:#004564;font-size:18px; font-weight:bold;box-sizing:border-box;
  909. }
  910. }
  911. .phone_box_4_img_ul{
  912. height:55vw;overflow:hidden;margin-top:15px;
  913. div{width:100%;float:none;height:55vw;border-radius:10px;position:relative;overflow:hidden;}
  914. a{display:block;width:100%;height:100%;}
  915. img{display:block;width:100%;height:100%;}
  916. span{
  917. position:absolute;width:100%;height:66px;line-height:90px;color:#fff; font-size:16px;
  918. left:0px;bottom:0px;padding:0px 5%;box-sizing:border-box; display:block;
  919. background:linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .5));
  920. word-break: keep-all; white-space: nowrap;overflow:hidden;text-overflow:ellipsis;
  921. }
  922. >div:nth-of-type(n+2){display:none;}
  923. }
  924. .phone_box_4_ul{
  925. overflow:hidden;height:123px;margin-top:15px;
  926. >div{ width:100%;height:100%; }
  927. a{
  928. width:100%!important;display:block;height:40px;line-height:40px;
  929. border-bottom:1px solid #E6E6E6;display:block;position:relative;
  930. word-break: keep-all; white-space: nowrap;overflow:hidden;text-overflow:ellipsis;
  931. font-size:16px;color:#333;text-indent:18px;
  932. }
  933. a::after{
  934. content: '';display: block;
  935. position:absolute;left:0px;top:18px;background:#E6E6E6;
  936. width:6px;height:6px;border-radius:50%;
  937. }
  938. a:nth-of-type(n+4){display:none;}
  939. }
  940. }
  941. .channel_1{margin-top:0px;}
  942. .channel_box_2{width:100%;float:none;}
  943. .channel_1_box{width:100%;float:none;height:auto;}
  944. .channel_box_1{display:none;}
  945. .channel_2{display:none;}
  946. .channel_3{display:none;}
  947. .channel_4{display:none;}
  948. .phone_none{display:none;}
  949. }
  950. </style>