index.vue 74 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586
  1. <template>
  2. <div>
  3. <HomePageHead></HomePageHead>
  4. <HomePageNavigation></HomePageNavigation>
  5. <HomePageMessage></HomePageMessage>
  6. <HomeAdvertising :imgurl="adImg1"></HomeAdvertising>
  7. <HomeMoreService></HomeMoreService>
  8. <div class="farming" >
  9. <div class="inner">
  10. <div class="farmerLeft" v-if="pageData.length>=1">
  11. <div class="farmer">
  12. <h3 v-if="pageData[0].cid">
  13. <NuxtLink
  14. class="active"
  15. v-if="pageData[0].cid"
  16. :href="getLinkPath(pageData[0])"
  17. :title="pageData[0].alias"
  18. >
  19. {{pageData[0].alias}}
  20. </NuxtLink>
  21. <NuxtLink
  22. v-if="pageData[0].cid"
  23. :href="getLinkPath(pageData[0])"
  24. :title="pageData[0].alias"
  25. >
  26. 查看更多
  27. </NuxtLink>
  28. </h3>
  29. <ul class="mode1ul_style1">
  30. <li v-for="(item,index) in boxData1" class="imgbg">
  31. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  32. <img :src="item.imgurl" :alt="item.title">
  33. <div>
  34. <p>
  35. <span v-if="index==0">专题</span>
  36. {{item.title}}
  37. </p>
  38. </div>
  39. </NuxtLink>
  40. </li>
  41. </ul>
  42. <ul class="mode1ul_style2">
  43. <li v-for="item in boxData1data2">
  44. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  45. <p class="title">{{ item.title }}</p>
  46. </NuxtLink>
  47. </li>
  48. </ul>
  49. </div>
  50. </div>
  51. <div class="farmerRight" v-if="pageData.length>=2">
  52. <div class="rich">
  53. <h3 v-if="pageData[1].cid">
  54. <NuxtLink
  55. v-if="pageData[1].cid"
  56. :href="getLinkPath(pageData[1])"
  57. class="active"
  58. :title="pageData[1].alias"
  59. >
  60. {{ pageData[1].alias }}
  61. </NuxtLink>
  62. <NuxtLink
  63. v-if="pageData[1].cid"
  64. :href="getLinkPath(pageData[1])"
  65. :title="pageData[1].alias"
  66. >
  67. 查看更多
  68. </NuxtLink>
  69. </h3>
  70. <ul>
  71. <li v-for="(item,index) in boxData2">
  72. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  73. <div class="index">{{index+1}}</div>
  74. <div class="title">{{item.title}}</div>
  75. </NuxtLink>
  76. </li>
  77. </ul>
  78. </div>
  79. </div>
  80. </div>
  81. </div>
  82. <div class="scienceEducation">
  83. <div class="inner">
  84. <div class="scienceLeft" v-if="pageData.length>=3">
  85. <HomeSlider :message="pageData[2]"></HomeSlider>
  86. </div>
  87. <div class="scienceRight" v-if="pageData.length>=4">
  88. <div class="adBox1" v-if="adImg3">
  89. <a href="http://nzgxw.org.cn/" v-if="adImg2.image_url==null" target="_blank">
  90. <img :src="adImg2.thumb" >
  91. </a>
  92. <a :href="adImg2.image_url" v-else>
  93. <img :src="adImg2.image_src">
  94. </a>
  95. </div>
  96. <h3 v-if="pageData[3].cid">
  97. <span>
  98. <NuxtLink
  99. v-if="pageData[3].cid"
  100. :href="getLinkPath(pageData[3])"
  101. class="active"
  102. :title="pageData[3].alias"
  103. >
  104. {{ pageData[3].alias }}
  105. </NuxtLink>
  106. </span>
  107. <NuxtLink
  108. v-if="pageData[3].cid"
  109. :href="getLinkPath(pageData[3])"
  110. :title="pageData[3].alias"
  111. >
  112. 查看更多
  113. </NuxtLink>
  114. </h3>
  115. <div class="banner_b_img">
  116. <ul>
  117. <li v-for="item in boxData4">
  118. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  119. <p class="title">{{ item.title }}</p>
  120. </NuxtLink>
  121. </li>
  122. </ul>
  123. </div>
  124. </div>
  125. </div>
  126. </div>
  127. <HomeTopTen :imgurl="adImg3" v-if="adImg3"></HomeTopTen>
  128. <div class="layoutCopy">
  129. <div class="layoutCopyLeft">
  130. <div class="layoutCopyLeftTop">
  131. <div class="layoutCopyLeft1" v-if="pageData.length>=5">
  132. <div class="layoutTitleBox" v-if="pageData[4]">
  133. <div class="layoutTitle" v-if="pageData[4].cid">
  134. <NuxtLink
  135. v-if="pageData[4].cid"
  136. :href="getLinkPath(pageData[4])"
  137. class="active"
  138. :title="pageData[4].alias"
  139. >
  140. {{ pageData[4].alias }}
  141. </NuxtLink>
  142. </div>
  143. <div class="layoutMore" v-if="pageData[4].cid">
  144. <NuxtLink
  145. v-if="pageData[4].cid"
  146. :href="getLinkPath(pageData[4])"
  147. :title="pageData[4].alias"
  148. >
  149. 查看更多
  150. </NuxtLink>
  151. </div>
  152. </div>
  153. <div class="layoutCopyData_style1" v-if="boxData5[0]">
  154. <NuxtLink :href="getLinkPathDetail(boxData5[0])" :title="boxData5[0].title" :target="boxData5[0].islink == 1 ? '_blank' : '_self'">
  155. <img :src="boxData5[0].imgurl" :alt="boxData5[0].title">
  156. <div>
  157. <span>{{ boxData5[0].title }}</span>
  158. </div>
  159. </NuxtLink>
  160. <NuxtLink :href="getLinkPathDetail(boxData5data2[0])" :title="boxData5data2[0]" :target="boxData5data2[0].islink == 1 ? '_blank' : '_self'">
  161. <p class="title">{{ boxData5data2[0].title }}</p>
  162. <p>&nbsp;</p>
  163. </NuxtLink>
  164. </div>
  165. </div>
  166. <div class="layoutCopyLeft2" v-if="pageData.length>=6">
  167. <div class="layoutTitleBox" v-if="pageData[5]">
  168. <div class="layoutTitle" v-if="pageData[5].cid">
  169. <NuxtLink
  170. v-if="pageData[5].cid"
  171. :href="getLinkPath(pageData[5])"
  172. class="active"
  173. :title="pageData[5].alias"
  174. >
  175. {{ pageData[5].alias }}
  176. </NuxtLink>
  177. </div>
  178. <div class="layoutMore" v-if="pageData[5].cid">
  179. <NuxtLink
  180. v-if="pageData[5].cid"
  181. :href="getLinkPath(pageData[5])"
  182. :title="pageData[5].alias"
  183. >
  184. 查看更多
  185. </NuxtLink>
  186. </div>
  187. </div>
  188. <div class="layoutCopyData_style2">
  189. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" v-for="item in boxData6" :target="item.islink == 1 ? '_blank' : '_self'">
  190. <p class="title">{{ item.title }}</p>
  191. </NuxtLink>
  192. </div>
  193. </div>
  194. </div>
  195. <div class="layoutCopyLeftBottom" v-if="pageData.length>=7">
  196. <div class="layoutTitleBox" v-if="pageData[6]">
  197. <div class="layoutTitle" v-if="pageData[6].cid">
  198. <NuxtLink
  199. v-if="pageData[6].cid"
  200. :href="getLinkPath(pageData[6])"
  201. class="active"
  202. :title="pageData[6].alias"
  203. >
  204. {{ pageData[6].alias }}
  205. </NuxtLink>
  206. </div>
  207. <div class="layoutMore" v-if="pageData[6].cid">
  208. <NuxtLink
  209. v-if="pageData[6].cid"
  210. :href="getLinkPath(pageData[6])"
  211. :title="pageData[6].alias"
  212. >
  213. 查看更多
  214. </NuxtLink>
  215. </div>
  216. </div>
  217. <div class="layoutCopyData_style3">
  218. <div v-for="(item,index) in boxData7">
  219. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" class="style3link1" v-if="index==0" :target="item.islink == 1 ? '_blank' : '_self'">
  220. <div class="time">
  221. <p>{{getTime(item.updated_at,'day',1)}}</p>
  222. <p>{{getTime(item.updated_at,'month',1)}}</p>
  223. </div>
  224. <div>
  225. <p class="title">{{ item.title }}</p>
  226. <p class="introduce">{{ item.introduce }}</p>
  227. </div>
  228. </NuxtLink>
  229. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" class="style3link2" v-if="index>0" :target="item.islink == 1 ? '_blank' : '_self'">
  230. <div>
  231. <b></b>
  232. <p class="title">{{item.title}}</p>
  233. </div>
  234. <p>&nbsp;</p>
  235. </NuxtLink>
  236. </div>
  237. </div>
  238. </div>
  239. </div>
  240. <div class="layoutCopyRight" v-if="pageData.length>=8">
  241. <div class="layoutTitleBox" v-if="pageData[7]">
  242. <div class="layoutTitle" v-if="pageData[7].cid">
  243. <NuxtLink
  244. v-if="pageData[7].cid"
  245. :href="getLinkPath(pageData[7])"
  246. class="active"
  247. :title="pageData[7].alias"
  248. >
  249. {{ pageData[7].alias }}
  250. </NuxtLink>
  251. </div>
  252. <div class="layoutMore" v-if="pageData[7].cid">
  253. <NuxtLink
  254. v-if="pageData[7].cid"
  255. :href="getLinkPath(pageData[7])"
  256. :title="pageData[7].alias"
  257. >
  258. 查看更多
  259. </NuxtLink>
  260. </div>
  261. </div>
  262. <div class="layoutCopyData_style4">
  263. <div class="layoutCopyData_pic">
  264. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" v-for="item in boxData8" :target="item.islink == 1 ? '_blank' : '_self'">
  265. <img :src="item.imgurl" :alt="item.title">
  266. <p>{{item.title}}</p>
  267. </NuxtLink>
  268. </div>
  269. <div class="layoutCopyData_text">
  270. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" v-for="item in boxData88" :target="item.islink == 1 ? '_blank' : '_self'">
  271. <div class="title">{{item.title}}</div>
  272. <div class="more">详</div>
  273. </NuxtLink>
  274. </div>
  275. </div>
  276. </div>
  277. </div>
  278. <div class="farming">
  279. <div class="inner">
  280. <div class="farmerLeft">
  281. <div class="farmer">
  282. <h3>
  283. <div class="titleBoxTabs" v-if="pageData.length>=9">
  284. <span class="active" v-if="pageData[8].cid">
  285. <NuxtLink :href="getLinkPath(pageData[8])" :title="pageData[8].alias" @mouseenter="tabsData1 = 1" :class="{ active: tabsData1 == 1 }">
  286. {{pageData[8].alias}}
  287. </NuxtLink>
  288. </span>
  289. <span v-if="pageData[9].cid">
  290. <NuxtLink :href="getLinkPath(pageData[9])" :title="pageData[9].alias" @mouseenter="tabsData1 = 2" :class="{ active: tabsData1 == 2 }">
  291. {{pageData[9].alias}}
  292. </NuxtLink>
  293. </span>
  294. </div>
  295. </h3>
  296. <ul class="mode1ul_style1" v-if="tabsData1==1">
  297. <li v-for="(item,index) in boxData9" class="imgbg">
  298. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  299. <div>
  300. <p>
  301. <span v-if="index==0">专题</span>
  302. {{ item.title }}
  303. </p>
  304. <p>&nbsp;</p>
  305. </div>
  306. </NuxtLink>
  307. </li>
  308. </ul>
  309. <ul class="mode1ul_style2" v-if="tabsData1==1">
  310. <li v-for="item in boxData9data2">
  311. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  312. <p class="title">{{ item.title }}</p>
  313. <p>&nbsp;</p>
  314. </NuxtLink>
  315. </li>
  316. </ul>
  317. <ul class="mode1ul_style1" v-if="tabsData1==2">
  318. <li v-for="(item,index) in boxData10" class="imgbg">
  319. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  320. <img :src="item.imgurl" :alt="item.title">
  321. <div>
  322. <p>
  323. <span v-if="index==0">专题</span>
  324. {{ item.title }}
  325. </p>
  326. <p>&nbsp;</p>
  327. </div>
  328. </NuxtLink>
  329. </li>
  330. </ul>
  331. <ul class="mode1ul_style2" v-if="tabsData1==2">
  332. <li v-for="item in boxData10data2">
  333. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  334. <p class="title">{{ item.title }}</p>
  335. <p>&nbsp;</p>
  336. </NuxtLink>
  337. </li>
  338. </ul>
  339. </div>
  340. </div>
  341. <div class="farmerRight">
  342. <div class="rich" v-if="pageData.length>=11">
  343. <h3 v-if="pageData[10]">
  344. <span v-if="pageData[10].cid">
  345. <NuxtLink
  346. v-if="pageData[10].cid"
  347. :href="getLinkPath(pageData[10])"
  348. class="active"
  349. :title="pageData[10].alias"
  350. >
  351. {{ pageData[10].alias }}
  352. </NuxtLink>
  353. </span>
  354. <NuxtLink
  355. v-if="pageData[10].cid"
  356. :href="getLinkPath(pageData[10])"
  357. :title="pageData[10].alias"
  358. >
  359. 查看更多
  360. </NuxtLink>
  361. </h3>
  362. <div class="richList">
  363. <div class="richListPic" v-if="boxData11[0]">
  364. <NuxtLink :href="getLinkPathDetail(boxData11[0])" :title="boxData11[0].title" :target="boxData11[0].islink == 1 ? '_blank' : '_self'">
  365. <img :src="boxData11[0].imgurl" :alt="boxData11[0].title">
  366. <div>
  367. <span>{{boxData11[0].title}}</span>
  368. </div>
  369. </NuxtLink>
  370. </div>
  371. <div class="richListText" v-if="boxData11data2[0]">
  372. <NuxtLink :href="getLinkPathDetail(boxData11data2[0])" :title="boxData11data2[0].title" :target="boxData11data2[0].islink == 1 ? '_blank' : '_self'">
  373. <span>{{boxData11data2[0].title}}</span>
  374. </NuxtLink>
  375. </div>
  376. <div class="richListText" v-if="boxData11data2[1]">
  377. <NuxtLink :href="getLinkPathDetail(boxData11data2[1])" :title="boxData11data2[1].title" :target="boxData11data2[1].islink == 1 ? '_blank' : '_self'">
  378. <span>{{boxData11data2[1].title}}</span>
  379. </NuxtLink>
  380. </div>
  381. <div class="richListPictow" v-if="boxData11[1]">
  382. <NuxtLink :href="getLinkPathDetail(boxData11[1])" :title="boxData11[1].title" :target="boxData11[1].islink == 1 ? '_blank' : '_self'">
  383. <img :src="boxData11[1].imgurl" :alt="boxData11[1].title">
  384. <div>
  385. <span>{{boxData11[1].title}}</span>
  386. </div>
  387. </NuxtLink>
  388. </div>
  389. <div class="richListText" v-if="boxData11data2[2]">
  390. <NuxtLink :href="getLinkPathDetail(boxData11data2[2])" :title="boxData11data2[2].title" :target="boxData11data2[2].islink == 1 ? '_blank' : '_self'">
  391. <span>{{boxData11data2[2].title}}</span>
  392. </NuxtLink>
  393. </div>
  394. <div class="richListText" v-if="boxData11data2[3]">
  395. <NuxtLink :href="getLinkPathDetail(boxData11data2[3])" :title="boxData11data2[3].title" :target="boxData11data2[3].islink == 1 ? '_blank' : '_self'">
  396. <span>{{boxData11data2[3].title}}</span>
  397. </NuxtLink>
  398. </div>
  399. </div>
  400. </div>
  401. </div>
  402. </div>
  403. </div>
  404. <section class="index_3 clearfix">
  405. <div class="index_3_box_left">
  406. <div class="index_2_head_box clearfix">
  407. <div class="index_1_head_box index_1_head_box_2 clearfix" v-if="pageData.length>=12">
  408. <div class="index_1_head index_1_head_only" v-if="pageData[11].cid">
  409. <NuxtLink
  410. v-if="pageData[11].cid"
  411. :href="getLinkPath(pageData[11])"
  412. @mouseenter="tabsData2 = 1"
  413. :class="{ active: tabsData2 == 1 }"
  414. :title="pageData[11].alias"
  415. >
  416. {{ pageData[11].alias }}
  417. </NuxtLink>
  418. </div>
  419. <div class="index_1_head" v-if="pageData[12].cid">
  420. <NuxtLink
  421. v-if="pageData[12].cid"
  422. :href="getLinkPath(pageData[12])"
  423. @mouseenter="tabsData2 = 2"
  424. :class="{ active: tabsData2 == 2 }"
  425. :title="pageData[12].alias"
  426. >
  427. {{ pageData[12].alias }}
  428. </NuxtLink>
  429. </div>
  430. </div>
  431. </div>
  432. <div class="index_3_ul clearfix" v-if="tabsData2==1">
  433. <div :class="['index_3_li',index < 2 ? 'index_3_li_color' : '']" v-for="(item, index) in boxData12">
  434. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  435. <p class="title">
  436. <b :class="['lis',index < 2 ? 'active' : '']"></b>
  437. {{item.title}}
  438. </p>
  439. </NuxtLink>
  440. </div>
  441. </div>
  442. <div class="index_3_ul clearfix" v-if="tabsData2==2">
  443. <div :class="['index_3_li',index < 2 ? 'index_3_li_color' : '']" v-for="(item, index) in boxData13">
  444. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  445. <p class="title">
  446. <b :class="['lis',index < 2 ? 'active' : '']"></b>
  447. {{item.title}}
  448. </p>
  449. </NuxtLink>
  450. </div>
  451. </div>
  452. </div>
  453. <div class="index_1_box_right">
  454. <img src="../public/index/sndc.png" alt="三农调查">
  455. <div class="index_3_box_vote">
  456. <div class="inquire" v-if="voteList.length>0">
  457. <p v-if="voteList.length>0">{{voteList[0].survey_name}}</p>
  458. <div class="radioBox">
  459. <div v-if="!isDisabled">
  460. <div class="radio" v-if="isRadio">
  461. <el-radio-group v-model="radio1" @change="handleRadioChange">
  462. <el-radio v-for="item in voteList" :key="item.id" :value="item.id" size="large">
  463. <span v-if="item.is_other == 0">{{item.choice_name}}</span>
  464. <span v-else>其他</span>
  465. </el-radio>
  466. </el-radio-group>
  467. <el-input
  468. v-if="showUserChoice"
  469. v-model="userChoice"
  470. :rows="2"
  471. type="textarea"
  472. resize="none"
  473. placeholder="请输入.."
  474. />
  475. </div>
  476. <div class="checkInputBox" v-else>
  477. <el-checkbox-group v-model="check1" @change="handleCheckboxChange">
  478. <span v-for="item in voteList" :key="item.id">
  479. <span v-if="item.is_other == 0">
  480. <el-checkbox size="large" :label="item.choice_name" :value="item.id"/>
  481. </span>
  482. <span v-else>
  483. <el-checkbox size="large" label="其他" :value="item.id"/>
  484. </span>
  485. </span>
  486. </el-checkbox-group>
  487. <el-input
  488. v-if="showUserChoice"
  489. v-model="userChoice"
  490. :rows="2"
  491. type="textarea"
  492. resize="none"
  493. placeholder="请输入.."
  494. />
  495. </div>
  496. </div>
  497. <div class="inquireData" v-else>
  498. <div v-for="item in websiteSurveyData.data" :key="item.id">
  499. <div class="inquireDataItem active" v-if="item.status == 1">
  500. <div class="inquireDataItemTitle">
  501. <span v-if="item.choice_name == ''">其他</span>
  502. <span v-else>{{item.choice_name}}</span>
  503. </div>
  504. <div class="inquireDataItemNum">{{item.results}}票</div>
  505. </div>
  506. <div class="inquireDataItem" v-else>
  507. <div class="inquireDataItemTitle">
  508. <span v-if="item.choice_name == ''">其他</span>
  509. <span v-else>{{item.choice_name}}</span>
  510. </div>
  511. <div class="inquireDataItemNum">{{item.results}}票</div>
  512. </div>
  513. </div>
  514. </div>
  515. </div>
  516. <div class="btn">
  517. <button class="voting" @click="addWebsiteSurvey" :disabled="isDisabled" v-if="!isDisabled">投票</button>
  518. </div>
  519. </div>
  520. </div>
  521. </div>
  522. </section>
  523. <div class="titleBox" v-if="adImg4">
  524. <a href="http://nzgxw.org.cn/" v-if="adImg4.image_url==null" target="_blank">
  525. <img :src="adImg4.thumb">
  526. </a>
  527. <a :href="adImg4.image_url" v-else target="_blank">
  528. <img :src="adImg4.image_src">
  529. </a>
  530. </div>
  531. <div class="lastPart3">
  532. <div class="inner">
  533. <div class="lastPartTitle" v-if="pageData.length>=14">
  534. <div class="left" >
  535. <span v-if="pageData[13].cid">
  536. <NuxtLink
  537. v-if="pageData[13].cid"
  538. :href="getLinkPath(pageData[13])"
  539. :class="{ active: tabsData3 == 1 }"
  540. @mouseenter="tabsData3=1"
  541. :title="pageData[13].alias"
  542. >
  543. {{ pageData[13].alias }}
  544. </NuxtLink>
  545. </span>
  546. <span v-if="pageData[14].cid">
  547. <NuxtLink
  548. v-if="pageData[14].cid"
  549. :href="getLinkPath(pageData[14])"
  550. :class="{ active: tabsData3 == 2 }"
  551. @mouseenter="tabsData3 = 2"
  552. :title="pageData[14].alias"
  553. >
  554. {{ pageData[14].alias }}
  555. </NuxtLink>
  556. </span>
  557. </div>
  558. <div class="right" v-if="tabsData3==1">
  559. <NuxtLink :to="{ path: `/newsList/${item.category_id}`}" v-if="pageData[13].cid" v-for="item in boxData14menu" :title="item.alias">
  560. {{item.alias}}
  561. </NuxtLink>
  562. </div>
  563. <div class="right" v-if="tabsData3==2">
  564. <NuxtLink :to="{ path: `/newsList/${item.category_id}`}" v-if="pageData[14].cid" v-for="item in boxData15menu" :title="item.alias">
  565. {{item.alias}}
  566. </NuxtLink>
  567. </div>
  568. </div>
  569. <div class="lastPartContext" v-if="tabsData3==1">
  570. <div class="left">
  571. <ul class="mode1ul_style1">
  572. <li v-for="(item,index) in boxData14" class="imgbg">
  573. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  574. <img :src="item.imgurl" :alt="item.title">
  575. <div>
  576. <p>
  577. <span v-if="index==0">专题</span>
  578. {{ item.title }}
  579. </p>
  580. </div>
  581. </NuxtLink>
  582. </li>
  583. </ul>
  584. <ul class="mode1ul_style2">
  585. <li v-for="item in boxData14data2">
  586. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  587. <p class="title">{{ item.title }}</p>
  588. </NuxtLink>
  589. </li>
  590. </ul>
  591. </div>
  592. <div class="right" v-if="pageData.length>=15">
  593. <div class="title">
  594. <h3 v-if="boxData14menu[0]">
  595. <NuxtLink
  596. :to="{ path: `/newsList/${boxData14menu[0].category_id}`}"
  597. v-if="boxData14menu[0]" class="leftTitle" :title="boxData14menu[0].alias">
  598. {{ boxData14menu[0].alias }}
  599. </NuxtLink>
  600. <NuxtLink
  601. :to="{ path: `/newsList/${boxData14menu[0].category_id}`}"
  602. v-if="boxData14menu[0]" :title="boxData14menu[0].alias">
  603. 查看更多
  604. </NuxtLink>
  605. </h3>
  606. </div>
  607. <ul class="content">
  608. <li v-for="item in boxData14mainData">
  609. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  610. <span>
  611. <strong>{{getTime(item.updated_at,'month',1)}}</strong>
  612. {{getTime(item.updated_at,'year',3)}}
  613. </span>
  614. <span class="text">{{ item.title }}</span>
  615. </NuxtLink>
  616. </li>
  617. </ul>
  618. </div>
  619. </div>
  620. <div class="lastPartContext" v-if="tabsData3==2">
  621. <div class="left">
  622. <ul class="mode1ul_style1">
  623. <li v-for="(item,index) in boxData15" class="imgbg">
  624. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  625. <img :src="item.imgurl" :alt="item.title">
  626. <div>
  627. <p>
  628. <span v-if="index==0">专题</span>
  629. {{ item.title }}
  630. </p>
  631. </div>
  632. </NuxtLink>
  633. </li>
  634. </ul>
  635. <ul class="mode1ul_style2">
  636. <li v-for="item in boxData15data2">
  637. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  638. <p class="title">{{ item.title }}</p>
  639. </NuxtLink>
  640. </li>
  641. </ul>
  642. </div>
  643. <div class="right" v-if="pageData.length>=15">
  644. <div class="title">
  645. <h3 v-if="boxData15menu[0]">
  646. <NuxtLink
  647. :to="{ path: `/newsList/${boxData15menu[0].category_id}`}"
  648. v-if="boxData15menu[0]" class="leftTitle" :title="boxData15menu[0].alias">
  649. {{ boxData15menu[0].alias }}
  650. </NuxtLink>
  651. <NuxtLink
  652. :to="{ path: `/newsList/${boxData15menu[0].category_id}`}"
  653. v-if="boxData15menu[0]" :title="boxData15menu[0].alias">
  654. 查看更多
  655. </NuxtLink>
  656. </h3>
  657. </div>
  658. <ul class="content">
  659. <li v-for="item in boxData15mainData">
  660. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  661. <span>
  662. <strong>{{getTime(item.updated_at,'month',1)}}</strong>
  663. {{getTime(item.updated_at,'year',3)}}
  664. </span>
  665. <span class="text">{{ item.title }}</span>
  666. </NuxtLink>
  667. </li>
  668. </ul>
  669. </div>
  670. </div>
  671. </div>
  672. </div>
  673. <section class="index_2 clearfix">
  674. <div class="index_2_head_box clearfix" v-if="pageData.length>=16">
  675. <div class="index_1_head_box index_1_head_box_2 clearfix">
  676. <div class="index_1_head index_1_head_only" v-if="pageData[15].cid">
  677. <NuxtLink
  678. v-if="pageData[15].cid"
  679. :href="getLinkPath(pageData[15])"
  680. :class="{ active: tabsData4 == 1 }"
  681. :title="pageData[15].alias"
  682. >
  683. {{ pageData[15].alias }}
  684. </NuxtLink>
  685. </div>
  686. </div>
  687. <div class="index_2_head_a_box clearfix">
  688. <NuxtLink :to="{ path: `/newsList/${item.category_id}`}" v-if="pageData[15].cid" v-for="item in boxData16menu" :title="item.alias">
  689. {{item.alias}}
  690. </NuxtLink>
  691. </div>
  692. </div>
  693. <div class=" clearfix">
  694. <div class=" clearfix">
  695. <div class="index_1_box">
  696. <div class="index_2_big_img_ul">
  697. <div class="index_2_big_img_li cover100" v-if="boxData16">
  698. <NuxtLink :href="getLinkPathDetail(boxData16[0])" :title="boxData16[0].title" :target="boxData16[0].islink == 1 ? '_blank' : '_self'">
  699. <img class="" :src="boxData16[0].imgurl" :alt="boxData16[0].title">
  700. <div class="index_2_big_img_li_dot2 dot2">
  701. <span class="index_2_big_img_li_dot2_tag">专题</span>
  702. {{boxData16[0].title}}
  703. </div>
  704. <div class="index_1_box_right_img_li_dot1 dot1"></div>
  705. </NuxtLink>
  706. </div>
  707. </div>
  708. <div class="index_1_box_right_img_ul index_1_box_right_img_ul_2 clearfix" v-if="boxData16[1]">
  709. <div class="index_1_box_right_img_li cover100">
  710. <NuxtLink :href="getLinkPathDetail(boxData16[1])" :title="boxData16[1].title" :target="boxData16[1].islink == 1 ? '_blank' : '_self'">
  711. <img class="" :src="boxData16[1].imgurl" :alt="boxData16[1].title">
  712. <div class="index_1_box_right_img_li_dot1 dot1">
  713. {{boxData16[1].title}}
  714. </div>
  715. </NuxtLink>
  716. </div>
  717. <div class="index_1_box_right_img_li cover100" v-if="boxData16[2]">
  718. <NuxtLink :href="getLinkPathDetail(boxData16[2])" :title="boxData16[2].title" :target="boxData16[2].islink == 1 ? '_blank' : '_self'">
  719. <img class="" :src="boxData16[2].imgurl" :alt="boxData16[2].title">
  720. <div class="index_1_box_right_img_li_dot1 dot1">
  721. {{boxData16[2].title}}
  722. </div>
  723. </NuxtLink>
  724. </div>
  725. </div>
  726. <div class="index_2_big_img_ul" v-if="boxData16[3]">
  727. <NuxtLink :href="getLinkPathDetail(boxData16[3])" :title="boxData16[3].title" :target="boxData16[3].islink == 1 ? '_blank' : '_self'">
  728. <div class="index_2_big_img_li cover100" v-if="boxData16[3]">
  729. <img class="" :src="boxData16[3].imgurl" :alt="boxData16[3].title">
  730. <div class="index_2_big_img_li_dot2 dot2">
  731. {{boxData16[3].title}}
  732. </div>
  733. </div>
  734. </NuxtLink>
  735. </div>
  736. </div>
  737. <div class="index_1_box">
  738. <div class="index_1_ul clearfix">
  739. <div class="index_1_li clearfix index_1_li_only" v-for="item in boxData16data2">
  740. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  741. <div class="index_1_li_dot2 dot2">
  742. {{ item.title }}
  743. </div>
  744. </NuxtLink>
  745. </div>
  746. </div>
  747. </div>
  748. <div class="index_1_box_right">
  749. <div class="index_1_head_box clearfix index_1_head_box_line_none">
  750. <NuxtLink
  751. :to="{ path: `/newsList/${boxData16menu[0].category_id}`}"
  752. v-if="boxData16menu[0]" class="leftTitle" :title="boxData16menu[0].alias">
  753. {{ boxData16menu[0].alias }}
  754. </NuxtLink>
  755. <NuxtLink
  756. :to="{ path: `/newsList/${boxData16menu[0].category_id}`}"
  757. v-if="boxData16menu[0]" :title="boxData16menu[0].alias">
  758. 查看更多
  759. </NuxtLink>
  760. </div>
  761. <div class="index_2_ul">
  762. <div class="index_2_li clearfix" v-for="item in boxData16mainData">
  763. <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
  764. <time class="index_2_li_time_box">
  765. <div class="index_2_li_time_head">
  766. {{getTime(item.updated_at,'day',1)}}
  767. </div>
  768. <div class="index_2_li_time_foot">
  769. {{getTime(item.updated_at,'year',2)}}
  770. </div>
  771. </time>
  772. <div class="index_2_li_dot2 dot2">
  773. {{item.title}}
  774. </div>
  775. </NuxtLink>
  776. </div>
  777. </div>
  778. </div>
  779. </div>
  780. </div>
  781. </section>
  782. <HomeFoot></HomeFoot>
  783. </div>
  784. </template>
  785. <script setup>
  786. //页面是否已经加载完毕
  787. const pageLoading = ref(false)
  788. //1.加载页面必备组件 start---------------------------------------->
  789. import { ref, onMounted } from 'vue';
  790. import { ElRadio, ElRadioGroup,ElCheckbox,ElCheckboxGroup,ElMessage,ElInput } from 'element-plus';
  791. import { useSeoMeta } from '#imports';
  792. //格式化跳转路径 - 标题
  793. //首页分类栏目标题,不需要考虑外链
  794. const getLinkPath = (item) => {
  795. if (item.children_count == 0) {
  796. return `/newsList/${item.cid}`;
  797. } else {
  798. return `/${item.url}/`;
  799. }
  800. }
  801. //首页跳转到详情,这里需要考虑外链
  802. const getLinkPathDetail = (item) => {
  803. if (item.islink == 1) {
  804. return `${item.linkurl}`;
  805. } else {
  806. return `/newsDetail/${item.id}`;
  807. }
  808. }
  809. //1.加载页面必备组件 end---------------------------------------->
  810. //2.交互方法 start---------------------------------------->
  811. //2.1 新闻图片切换
  812. const hoverStatus = ref(1)
  813. const qhPic = function (num) {
  814. hoverStatus.value = num;
  815. }
  816. //2.交互方法 end---------------------------------------->
  817. //3.投票 start---------------------------------------->
  818. //3.1 投票选择的值
  819. const radio1 = ref(''); //单选
  820. const check1 = ref([]); //多选
  821. const isDisabled = ref(false);//是否禁用提交按钮
  822. const isRadio = ref(true);//是否渲染单选
  823. const userSurId = ref('');//投票属于哪一篇文章
  824. const userChoice = ref('');//用于判断用户选择了其他选项以后,输入的值
  825. const userIsChoice = ref('');//用于判断其他选项目前是什么值
  826. const showUserChoice = ref(false);//是否显示其他输入框
  827. const websiteSurveyData = ref([]);//投票结果
  828. //3.2获得投票列表
  829. let voteList = ref([]);
  830. //广告改为客户端启动
  831. // async function getVoteList(){
  832. // const voteData = await requestHome('/web/getWebsiteSurvey',{method:'GET'});
  833. // //这里有问题,后台传入的数据已经发生了变化,按照传入的进行修改
  834. // if(voteData.code == 200){
  835. // voteList.value = voteData.data;
  836. // console.log(voteList.value)
  837. // //判断显示单选还是多选
  838. // //survey_type 0是单选 1是多选
  839. // if(voteData.data[0].survey_type == 0){
  840. // isRadio.value = true;
  841. // }else{
  842. // isRadio.value = false;
  843. // }
  844. // for(let item of voteData.data){
  845. // //如果含有其他
  846. // if(item.is_other==1){
  847. // userIsChoice.value = item.id;
  848. // }
  849. // }
  850. // //用户投票属于哪一篇文章
  851. // userSurId.value = voteData.data[0].sur_id;
  852. // }else{
  853. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  854. // console.log("错误位置:首页投票")
  855. // console.log("后端错误反馈:",voteData.message)
  856. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  857. // }
  858. // }
  859. //getVoteList()
  860. //3.2当用户选择了选项,判断是否展示其他输入框
  861. const handleRadioChange = (value) => {
  862. if(value == userIsChoice.value){
  863. showUserChoice.value = true;
  864. }else{
  865. showUserChoice.value = false;
  866. }
  867. }
  868. const handleCheckboxChange = (value) => {
  869. if (value.includes(userIsChoice.value)) {
  870. showUserChoice.value = true;
  871. } else {
  872. showUserChoice.value = false;
  873. }
  874. }
  875. //3.2发起投票
  876. async function addWebsiteSurvey(){
  877. //判断当前是单选还是多选
  878. console.log(isRadio.value)
  879. if(isRadio.value){
  880. console.log("用户单选!")
  881. if(radio1.value!=''){
  882. //先判断一下是否使用了其他选项
  883. if(showUserChoice.value){
  884. if(userChoice.value!=''){
  885. //文章id
  886. // console.log(userSurId.value)
  887. // 用户输入的值
  888. // console.log(userChoice.value)
  889. //如果使用了其他,其他的选项需要增加进去
  890. const ChoiceData = await requestHome('/web/addWebsiteSurveyOption',{
  891. method:'GET',
  892. query:{
  893. 'sur_id':userSurId.value,//投票的新闻id
  894. 'choice_name':userChoice.value,//投票的选项id
  895. }
  896. });
  897. if(ChoiceData.code == 200){
  898. //提交完其他选项以后,再正式发起投票
  899. const mkData = await requestHome('/web/addWebsiteSurveyVote',{
  900. method:'GET',
  901. query:{
  902. 'sur_id':userSurId.value,
  903. 'choice_id':ChoiceData.data
  904. }
  905. });
  906. if(mkData.code == 200){
  907. ElMessage.success('投票成功!')
  908. //把投票结果显示到页面上 禁用投票按钮
  909. isDisabled.value = true;
  910. websiteSurveyData.value = mkData.data;
  911. //遍历一下,把用户选中的那个设置status为1
  912. let data = mkData.data;
  913. //遍历一下,把用户选中的那个设置status为1
  914. for(let item of data.data){
  915. for(let i of data.choice){
  916. if(item.id == i){
  917. console.log(item.id)
  918. item.status = 1;
  919. }
  920. }
  921. }
  922. websiteSurveyData.value = data;
  923. }else{
  924. ElMessage.error(mkData.message)
  925. }
  926. }else{
  927. ElMessage.error('其他投票失败!')
  928. }
  929. }else{
  930. ElMessage.error('请输入选项内容!')
  931. }
  932. }else{
  933. //如果没选择其他,直接提交选择的内容
  934. const mkData = await requestHome('/web/addWebsiteSurveyVote',{
  935. method:'GET',
  936. query:{
  937. 'sur_id':userSurId.value,
  938. 'choice_id':radio1.value
  939. }
  940. });
  941. if(mkData.code == 200){
  942. ElMessage.success('投票成功!')
  943. //把投票结果显示到页面上 禁用投票按钮
  944. isDisabled.value = true;
  945. let data = mkData.data;
  946. //遍历一下,把用户选中的那个设置status为1
  947. for(let item of data.data){
  948. for(let i of data.choice){
  949. if(item.id == i){
  950. item.status = 1;
  951. }
  952. }
  953. }
  954. websiteSurveyData.value = data;
  955. }else{
  956. ElMessage.error('投票失败!')
  957. }
  958. }
  959. }else{
  960. ElMessage.error('请选择一个选项')
  961. }
  962. }else{
  963. console.log("多选!")
  964. //多选
  965. if(check1.value!=[]){
  966. //先判断一下是否使用了其他选项
  967. if(showUserChoice.value){
  968. if(userChoice.value!=''){
  969. //判断用户是否只选择了一个其他
  970. if(check1.value.length == 1){
  971. const ChoiceData = await requestHome('/web/addWebsiteSurveyOption',{
  972. method:'GET',
  973. query:{
  974. 'sur_id':userSurId.value,//投票的新闻id
  975. 'choice_name':userChoice.value,//用户输入的其他选项文字
  976. }
  977. });
  978. if(ChoiceData.code == 200){
  979. //提交完其他选项以后,再正式发起投票
  980. const mkData = await requestHome('/web/addWebsiteSurveyVote',{
  981. method:'GET',
  982. query:{
  983. 'sur_id':userSurId.value,
  984. 'choice_id':ChoiceData.data
  985. }
  986. });
  987. if(mkData.code == 200){
  988. ElMessage.success('投票成功!')
  989. //把投票结果显示到页面上 禁用投票按钮
  990. isDisabled.value = true;
  991. websiteSurveyData.value = mkData.data;
  992. //遍历一下,把用户选中的那个设置status为1
  993. let data = mkData.data;
  994. //遍历一下,把用户选中的那个设置status为1
  995. for(let item of data.data){
  996. for(let i of data.choice){
  997. if(item.id == i){
  998. console.log(item.id)
  999. item.status = 1;
  1000. }
  1001. }
  1002. }
  1003. websiteSurveyData.value = data;
  1004. }else{
  1005. ElMessage.error(mkData.message)
  1006. }
  1007. }else{
  1008. ElMessage.error('其他投票失败!')
  1009. }
  1010. }else{
  1011. //用户选择了除了其他以外,还包括别的选项
  1012. const ChoiceData = await requestHome('/web/addWebsiteSurveyOption',{
  1013. method:'GET',
  1014. query:{
  1015. 'sur_id':userSurId.value,//投票的新闻id
  1016. 'choice_name':userChoice.value,//用户输入的其他选项文字
  1017. }
  1018. });
  1019. if(ChoiceData.code == 200){
  1020. let data = check1.value;
  1021. //找到多选的数组,把其他默认值给替换掉
  1022. for (let i = 0; i < data.length; i++) {
  1023. if (data[i] == userIsChoice.value) {
  1024. data[i] = ChoiceData.data;
  1025. }
  1026. }
  1027. let jsonArray = JSON.stringify(data);
  1028. //提交完其他选项以后,再正式发起投票
  1029. const mkData = await requestHome('/web/addWebsiteSurveyVote',{
  1030. method:'GET',
  1031. query:{
  1032. 'sur_id':userSurId.value,
  1033. 'choice_id':jsonArray
  1034. }
  1035. });
  1036. if(mkData.code == 200){
  1037. ElMessage.success('投票成功!')
  1038. //把投票结果显示到页面上 禁用投票按钮
  1039. isDisabled.value = true;
  1040. websiteSurveyData.value = mkData.data;
  1041. //遍历一下,把用户选中的那个设置status为1
  1042. let data = mkData.data;
  1043. //遍历一下,把用户选中的那个设置status为1
  1044. for(let item of data.data){
  1045. for(let i of data.choice){
  1046. if(item.id == i){
  1047. //console.log(item.id)
  1048. item.status = 1;
  1049. }
  1050. }
  1051. }
  1052. websiteSurveyData.value = data;
  1053. }else{
  1054. ElMessage.error(mkData.message)
  1055. }
  1056. }else{
  1057. ElMessage.error('其他投票失败!')
  1058. }
  1059. }
  1060. }else{
  1061. ElMessage.error('请输入选项内容!')
  1062. }
  1063. }else{
  1064. let jsonArray = JSON.stringify(check1.value);
  1065. //如果没选择其他,直接提交选择的内容
  1066. const mkData = await requestHome('/web/addWebsiteSurveyVote',{
  1067. method:'GET',
  1068. query:{
  1069. 'sur_id':userSurId.value,
  1070. 'choice_id':jsonArray
  1071. }
  1072. });
  1073. if(mkData.code == 200){
  1074. ElMessage.success('投票成功!')
  1075. //把投票结果显示到页面上 禁用投票按钮
  1076. isDisabled.value = true;
  1077. websiteSurveyData.value = mkData.data;
  1078. //遍历一下,把用户选中的那个设置status为1
  1079. let data = mkData.data;
  1080. //遍历一下,把用户选中的那个设置status为1
  1081. for(let item of data.data){
  1082. for(let i of data.choice){
  1083. if(item.id == i){
  1084. console.log(item.id)
  1085. item.status = 1;
  1086. }
  1087. }
  1088. }
  1089. websiteSurveyData.value = data;
  1090. }else{
  1091. ElMessage.error('投票失败!')
  1092. }
  1093. }
  1094. }else{
  1095. ElMessage.error('请选择一个选项')
  1096. }
  1097. }
  1098. }
  1099. //3.投票 end---------------------------------------->
  1100. //4.广告 start---------------------------------------->
  1101. //获得所有广告
  1102. let adImg1 = ref({})
  1103. let adImg2 = ref({})
  1104. let adImg3 = ref({})
  1105. let adImg4 = ref({})
  1106. onMounted(async () => {
  1107. //从客户端获取行政职能部门 加快打开速度//从客户端获取行政职能部门 加快打开速度
  1108. const { $webUrl, $CwebUrl } = useNuxtApp();
  1109. //从客户端启动投票
  1110. //获得投票列表
  1111. let voteUrl = `${$webUrl}/web/getWebsiteSurvey`
  1112. const responseVote = await fetch(voteUrl, {
  1113. headers: {
  1114. 'Content-Type': 'application/json',
  1115. 'Userurl': $CwebUrl,
  1116. 'Origin': $CwebUrl
  1117. }
  1118. });
  1119. const voteData = await responseVote.json();
  1120. if(voteData.code == 200){
  1121. voteList.value = voteData.data;
  1122. //判断显示单选还是多选
  1123. //survey_type 0是单选 1是多选
  1124. if(voteData.data[0].survey_type == 0){
  1125. isRadio.value = true;
  1126. }else{
  1127. isRadio.value = false;
  1128. }
  1129. for(let item of voteData.data){
  1130. //如果含有其他
  1131. if(item.is_other==1){
  1132. userIsChoice.value = item.id;
  1133. }
  1134. }
  1135. //用户投票属于哪一篇文章
  1136. userSurId.value = voteData.data[0].sur_id;
  1137. }else{
  1138. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  1139. console.log("错误位置:首页投票")
  1140. console.log("后端错误反馈:",voteData.message)
  1141. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  1142. }
  1143. //从客户端启动广告
  1144. //广告1
  1145. let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_index_0001`
  1146. const responseAd1 = await fetch(url, {
  1147. headers: {
  1148. 'Content-Type': 'application/json',
  1149. 'Userurl': $CwebUrl,
  1150. 'Origin': $CwebUrl
  1151. }
  1152. });
  1153. const resultAd1 = await responseAd1.json();
  1154. adImg1.value = resultAd1.data[0];
  1155. //广告2
  1156. let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_index_0002`
  1157. const responseAd2 = await fetch(url2, {
  1158. headers: {
  1159. 'Content-Type': 'application/json',
  1160. 'Userurl': $CwebUrl,
  1161. 'Origin': $CwebUrl
  1162. }
  1163. });
  1164. const resultAd2 = await responseAd2.json();
  1165. adImg2.value = resultAd2.data[0];
  1166. //广告3
  1167. let url3 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_index_0003`
  1168. const responseAd3 = await fetch(url3, {
  1169. headers: {
  1170. 'Content-Type': 'application/json',
  1171. 'Userurl': $CwebUrl,
  1172. 'Origin': $CwebUrl
  1173. }
  1174. });
  1175. const resultAd3 = await responseAd3.json();
  1176. adImg3.value = resultAd3.data[0];
  1177. //广告4
  1178. let url4 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_index_0004`
  1179. const responseAd4 = await fetch(url4, {
  1180. headers: {
  1181. 'Content-Type': 'application/json',
  1182. 'Userurl': $CwebUrl,
  1183. 'Origin': $CwebUrl
  1184. }
  1185. });
  1186. const resultAd4 = await responseAd4.json();
  1187. adImg4.value = resultAd4.data[0];
  1188. })
  1189. //4.交互方法 end---------------------------------------->
  1190. //5.页面基本信息 start---------------------------------------->
  1191. //5.1 导航信息
  1192. const pageData = ref([
  1193. // { cid: "", title: "", data: [] ,children_count:""},
  1194. ]);
  1195. //5.2 模块数据
  1196. //注意前置变量 在nuxt3的ssr模式中,并不存在变量提升。
  1197. //模块1
  1198. const boxData1 = ref([])
  1199. const boxData1data2 = ref([])
  1200. //模块2
  1201. const boxData2 = ref([]);
  1202. //模块3 - 该数据已经在模块中请求
  1203. //const boxData3 = ref([]);
  1204. //模块4
  1205. const boxData4 = ref([]);
  1206. //模块5
  1207. const boxData5 = ref([]);
  1208. const boxData5data2 = ref([]);
  1209. //模块6
  1210. const boxData6 = ref([]);
  1211. //模块7
  1212. const boxData7 = ref([]);
  1213. //模块8
  1214. const boxData8 = ref([]);
  1215. const boxData88 = ref([]);
  1216. //模块9 模块10 切换
  1217. const tabsData1 = ref(1)
  1218. //模块9
  1219. const boxData9 = ref([]);
  1220. const boxData9data2 = ref([]);
  1221. //模块10
  1222. const boxData10 = ref([]);
  1223. const boxData10data2 = ref([]);
  1224. //模块11
  1225. const boxData11 = ref([]);
  1226. const boxData11data2 = ref([]);
  1227. //模块12 模块13 切换
  1228. const tabsData2 = ref(1)
  1229. //模块12
  1230. const boxData12 = ref([]);
  1231. //模块13 - 该模块只有一个入口
  1232. const boxData13 = ref([]);
  1233. //模块14 模块15 切换
  1234. const tabsData3 = ref(1)
  1235. //模块14 - 该模块含有子导航
  1236. const boxData14 = ref([]);
  1237. const boxData14data2 = ref([]);
  1238. const boxData14menu = ref([]);
  1239. const boxData14mainData = ref([]);
  1240. //模块15
  1241. const boxData15 = ref([]);
  1242. const boxData15data2 = ref([]);
  1243. const boxData15menu = ref([]);
  1244. const boxData15mainData = ref([]);
  1245. //模块16 模块17 切换
  1246. const tabsData4 = ref(1)
  1247. //模块16 - 该模块含有子导航
  1248. const boxData16 = ref([]);
  1249. const boxData16data2 = ref([]);
  1250. const boxData16menu = ref([]);
  1251. const boxData16mainData = ref([]);
  1252. //3.2获得导航数据
  1253. try {
  1254. const navigateData = await requestDataPromise('/web/getWebsiteModelCategory', {
  1255. method: 'GET',
  1256. query: {
  1257. 'placeid': 1,
  1258. 'pid': 0,
  1259. 'num':30
  1260. },
  1261. });
  1262. if(navigateData.code == 200){
  1263. // 遍历可用的导航池放到页面中
  1264. for (let index in navigateData.data) {
  1265. let data = {
  1266. title: navigateData.data[index].name,
  1267. cid: navigateData.data[index].category_id,
  1268. children_count: navigateData.data[index].children_count,
  1269. alias: navigateData.data[index].alias,
  1270. url: navigateData.data[index].aLIas_pinyin
  1271. };
  1272. //主体渲染 第一层
  1273. //新农村11
  1274. if(navigateData.data[index].category_id == 11){pageData.value[0]=data}
  1275. //农民工317
  1276. if(navigateData.data[index].category_id == 317){pageData.value[1]=data}
  1277. //第二层
  1278. //政策法规1
  1279. if(navigateData.data[index].category_id == 1){pageData.value[2]=data}
  1280. //三农之窗2
  1281. if(navigateData.data[index].category_id == 2){pageData.value[3]=data}
  1282. //第三层
  1283. //区域经济5
  1284. if(navigateData.data[index].category_id == 5){pageData.value[4]=data}
  1285. //三农投资6
  1286. if(navigateData.data[index].category_id == 12){pageData.value[5]=data}
  1287. //农贸信息13
  1288. if(navigateData.data[index].category_id == 13){pageData.value[6]=data}
  1289. //书刊信息24
  1290. if(navigateData.data[index].category_id == 24){pageData.value[7]=data}
  1291. //第四层
  1292. //三农科教14
  1293. if(navigateData.data[index].category_id == 14){pageData.value[8]=data}
  1294. //文化生活15
  1295. if(navigateData.data[index].category_id == 15){pageData.value[9]=data}
  1296. //三农服务27
  1297. if(navigateData.data[index].category_id == 27){pageData.value[10]=data}
  1298. //第五层
  1299. //三农探索16
  1300. if(navigateData.data[index].category_id == 16){pageData.value[11]=data}
  1301. //三农人物18
  1302. if(navigateData.data[index].category_id == 18){pageData.value[12]=data}
  1303. //第六层
  1304. //农资购销21
  1305. if(navigateData.data[index].category_id == 21){pageData.value[13]=data}
  1306. //农产购销153
  1307. if(navigateData.data[index].category_id == 153){pageData.value[14]=data}
  1308. //第七层
  1309. //打假维权26
  1310. if(navigateData.data[index].category_id == 26){pageData.value[15]=data}
  1311. }
  1312. }else{
  1313. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  1314. console.log("错误位置:首页导航池")
  1315. console.log("后端错误反馈:",navigateData.message)
  1316. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  1317. }
  1318. } catch (error) {
  1319. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  1320. console.log("错误位置:首页导航渲染阶段")
  1321. console.log("错误:导航池渲染执行接口出错!请检查首页的14的模块的具体执行方法!")
  1322. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  1323. }
  1324. //获得模块数据
  1325. async function getPageData(catid,img_num,text_num,modulesNum,childNavNum,childImgNum,childTextNum){
  1326. const mkdata = await requestDataPromise('/web/getWebsiteCatidArticle', {
  1327. method: 'GET',
  1328. query: {
  1329. 'catid': catid, //catid
  1330. 'img_num': img_num, //图片数量
  1331. 'text_num': text_num, //文字数量
  1332. 'child_catnum':childNavNum,//子级栏目菜单数量
  1333. 'child_imgnum':childImgNum,//子栏目展示图片新闻数量
  1334. 'child_textnum':childTextNum//子栏目展示文字新闻数量
  1335. },
  1336. });
  1337. //模块1新农村
  1338. if(modulesNum == 1){
  1339. if(mkdata.code==200){
  1340. boxData1.value = mkdata.data.img;
  1341. boxData1data2.value = mkdata.data.text;
  1342. }else{
  1343. ElMessage.error(mkdata.message)
  1344. }
  1345. }
  1346. //模块2农名工
  1347. if(modulesNum == 2){
  1348. if(mkdata.code==200){
  1349. boxData2.value = mkdata.data.text;
  1350. }else{
  1351. ElMessage.error(mkdata.message)
  1352. }
  1353. }
  1354. //模块4三农之窗
  1355. if(modulesNum == 4){
  1356. if(mkdata.code==200){
  1357. boxData4.value = mkdata.data.text;
  1358. }else{
  1359. ElMessage.error(mkdata.message)
  1360. }
  1361. }
  1362. //模块5区域经济
  1363. if(modulesNum == 5){
  1364. if(mkdata.code==200){
  1365. boxData5.value = mkdata.data.img;
  1366. boxData5data2.value = mkdata.data.text;
  1367. }else{
  1368. ElMessage.error(mkdata.message)
  1369. }
  1370. }
  1371. //模块6三农投资
  1372. if(modulesNum == 6){
  1373. if(mkdata.code==200){
  1374. boxData6.value = mkdata.data.text;
  1375. }else{
  1376. ElMessage.error(mkdata.message)
  1377. }
  1378. }
  1379. //模块7农贸信息
  1380. if(modulesNum == 7){
  1381. if(mkdata.code==200){
  1382. boxData7.value = mkdata.data.text;
  1383. }else{
  1384. ElMessage.error(mkdata.message)
  1385. }
  1386. }
  1387. //模块8书刊信息
  1388. if(modulesNum == 8){
  1389. if(mkdata.code==200){
  1390. boxData8.value = mkdata.data.img;
  1391. boxData88.value = mkdata.data.text;
  1392. }else{
  1393. ElMessage.error(mkdata.message)
  1394. }
  1395. }
  1396. //模块9三农科教
  1397. if(modulesNum == 9){
  1398. if(mkdata.code==200){
  1399. boxData9.value = mkdata.data.img;
  1400. boxData9data2.value = mkdata.data.text;
  1401. }else{
  1402. ElMessage.error(mkdata.message)
  1403. }
  1404. }
  1405. //模块10文化生活
  1406. if(modulesNum == 10){
  1407. if(mkdata.code==200){
  1408. boxData10.value = mkdata.data.img;
  1409. boxData10data2.value = mkdata.data.text;
  1410. }else{
  1411. ElMessage.error(mkdata.message)
  1412. }
  1413. }
  1414. //模块11三农服务
  1415. if(modulesNum == 11){
  1416. if(mkdata.code==200){
  1417. boxData11.value = mkdata.data.img;
  1418. boxData11data2.value = mkdata.data.text;
  1419. }else{
  1420. ElMessage.error(mkdata.message)
  1421. }
  1422. }
  1423. //模块12三农探索
  1424. if(modulesNum == 12){
  1425. if(mkdata.code==200){
  1426. boxData12.value = mkdata.data.text;
  1427. }else{
  1428. ElMessage.error(mkdata.message)
  1429. }
  1430. }
  1431. //模块13三农人物
  1432. if(modulesNum == 13){
  1433. if(mkdata.code==200){
  1434. boxData13.value = mkdata.data.text;
  1435. }else{
  1436. ElMessage.error(mkdata.message)
  1437. }
  1438. }
  1439. //模块14农资购销 该栏目含有子导航
  1440. if(modulesNum == 14){
  1441. if(mkdata.code==200){
  1442. boxData14.value = mkdata.data.img;
  1443. boxData14data2.value = mkdata.data.text;
  1444. }else{
  1445. ElMessage.error(mkdata.message)
  1446. }
  1447. }
  1448. if(modulesNum == 142){
  1449. if(mkdata.code==200){
  1450. boxData14menu.value = mkdata.data.child;
  1451. boxData14mainData.value = mkdata.data.child[0].text;
  1452. }else{
  1453. ElMessage.error(mkdata.message)
  1454. }
  1455. }
  1456. //模块14农产购销 该栏目含有子导航
  1457. if(modulesNum == 15){
  1458. if(mkdata.code==200){
  1459. boxData15.value = mkdata.data.img;
  1460. boxData15data2.value = mkdata.data.text;
  1461. }else{
  1462. ElMessage.error(mkdata.message)
  1463. }
  1464. }
  1465. if(modulesNum == 152){
  1466. if(mkdata.code==200){
  1467. boxData15menu.value = mkdata.data.child;
  1468. boxData15mainData.value = mkdata.data.child[0].text;
  1469. }else{
  1470. ElMessage.error(mkdata.message)
  1471. }
  1472. }
  1473. //模块15打假维权
  1474. if(modulesNum == 16){
  1475. if(mkdata.code==200){
  1476. boxData16.value = mkdata.data.img;
  1477. boxData16data2.value = mkdata.data.text;
  1478. }else{
  1479. ElMessage.error(mkdata.message)
  1480. }
  1481. }
  1482. if(modulesNum == 162){
  1483. if(mkdata.code==200){
  1484. boxData16menu.value = mkdata.data.child;
  1485. boxData16mainData.value = mkdata.data.child[0].text;
  1486. }else{
  1487. ElMessage.error(mkdata.message)
  1488. }
  1489. }
  1490. }
  1491. //模块1新农村 导航池11 图文2 文字8
  1492. await getPageData(11,2,8,1,0,0,0);
  1493. //模块2农民工 导航池317 文字8
  1494. await getPageData(317,0,8,2,0,0,0);
  1495. //----//组件 模块3政策法规 导航池1 图文4 文字8
  1496. //模块4三农之窗 文字8
  1497. await getPageData(2,0,5,4,0,0,0);
  1498. //模块5区域经济 图文1 文字1
  1499. await getPageData(5,1,1,5,0,0,0);
  1500. //模块6三农投资 导航池6 文字3
  1501. await getPageData(12,0,3,6,0,0,0);
  1502. //模块7农贸信息 导航池13 图片5
  1503. await getPageData(13,0,4,7,0,0,0);
  1504. //模块8书刊信息 导航池24 图片2 文字
  1505. await getPageData(24,2,8,8,0,0,0);
  1506. //模块9三农科教 图片2 文字8 (9和10是选项卡 如果只有9没有10就会报错)
  1507. await getPageData(14,2,8,9,0,0,0);////////////////////////////////////
  1508. //模块10文化生活 图片2 文字8 /////////////////////////////////////
  1509. await getPageData(15,2,8,10,0,0,0);///////////////////////////////////
  1510. //模块11三农服务27 图片2 文字4
  1511. await getPageData(27,2,4,11,0,0,0);
  1512. //模块12三农探索16 图片0 文字10(12和13是选项卡 如果只有12没有13就会报错)
  1513. await getPageData(16,0,14,12,0,0,0);//////////////////////////////////////
  1514. //模块13三农人物18 图片0 文字10;//////////////////////////////////////
  1515. await getPageData(18,0,14,13,0,0,0);//////////////////////////////////////
  1516. //模块14农资购销21 图片2 文字8 子导航8 子导航展示: 文字6
  1517. await getPageData(21,2,8,14,0,0,0);//////////////////////////////////////
  1518. await getPageData(21,0,0,142,8,0,5);/////////////////////////////////////
  1519. //模块15农产购销153 图片2 文字8 子导航8 子导航展示: 文字6
  1520. await getPageData(153,2,8,15,0,0,0);//////////////////////////////////////
  1521. await getPageData(153,0,0,152,8,0,5);/////////////////////////////////////
  1522. //模块16打假维权26 图片4 文字8 子导航8 子导航展示: 文字6
  1523. await getPageData(26,4,8,16,0,0,0);//////////////////////////////////////
  1524. await getPageData(26,0,0,162,8,0,5);/////////////////////////////////////
  1525. //5.页面基本信息 end---------------------------------------->
  1526. //6.设置seo数据 start---------------------------------------->
  1527. //获取seo数据
  1528. const setData = await requestDataPromise('/web/getWebsiteFootInfo', {
  1529. method: 'GET',
  1530. query: {},
  1531. });
  1532. if(setData.code == 200){
  1533. let seoTitle = setData.data.website_head.title;
  1534. let seoDescription = setData.data.website_head.description;
  1535. let seoKeywords = setData.data.website_head.keywords;
  1536. let seoSuffix = setData.data.website_head.suffix;
  1537. let seoName = setData.data.website_head.website_name;
  1538. useSeoMeta({
  1539. title: seoTitle + "_" + seoSuffix,
  1540. meta: [
  1541. { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  1542. { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
  1543. ]
  1544. });
  1545. }else{
  1546. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  1547. console.log("错误位置:设置首页SEO数据")
  1548. console.log("后端错误反馈:",setData.message)
  1549. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  1550. }
  1551. //6.设置seo数据 start---------------------------------------->
  1552. </script>
  1553. <style lang="less" scoped>
  1554. @import url('@/assets/css/index.less');
  1555. </style>