index.vue 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194
  1. <template>
  2. <div class="container">
  3. <!-- 页面头部 -->
  4. <HomePageHead></HomePageHead>
  5. <!-- 页面导航 -->
  6. <HomePageNavigation></HomePageNavigation>
  7. <!-- 新闻头条 -->
  8. <HomePageMessage></HomePageMessage>
  9. <!-- 第一部分 -->
  10. <div class="part1">
  11. <div class="part1Left">
  12. <div class="part1Left_title">
  13. <NuxtLink to="#">
  14. 法制资讯
  15. </NuxtLink>
  16. </div>
  17. <div class="part1Left_content">
  18. <div class="content_img">
  19. <NuxtLink to="#">
  20. <img src="../public/index/home01.jpg" alt="">
  21. </NuxtLink>
  22. </div>
  23. <div class="content_rightText">
  24. <div class="rightText_top">
  25. <NuxtLink to="#">
  26. <div class="title dot1">省法院召开2025年度河北法院援藏援疆干部座谈会</div>
  27. <div class="desc">
  28.   近日,省法院召开2025年度河北法院援藏援疆干部座谈会,回顾总结一段时期以来对口援助工作的开展情况,交流心得、梳理经验、凝聚共识,进一步推动援藏援疆工作提质增效。省法院党组书记、院长黄明耀出席会议<span>[详情]</span>
  29. </div>
  30. </NuxtLink>
  31. </div>
  32. <div class="rightText_bottom">
  33. <div>
  34. <NuxtLink to="#">
  35. <span></span>
  36. 临夏县巩固拓展脱贫攻坚成果同乡村振兴有效衔接链接
  37. </NuxtLink>
  38. </div>
  39. <div>
  40. <NuxtLink to="#">
  41. <span></span>
  42. 司法护航云咖“破浪”答卷|普洱:司法服务送达
  43. </NuxtLink>
  44. </div>
  45. <div>
  46. <NuxtLink to="#">
  47. <span></span>
  48. 湖北省高级人民法院发布6起交叉执行典型案例
  49. </NuxtLink>
  50. </div>
  51. <div>
  52. <NuxtLink to="#">
  53. <span></span>
  54. 省法院党组书记、代理院长何莉在临夏法院调研
  55. </NuxtLink>
  56. </div>
  57. <div>
  58. <NuxtLink to="#">
  59. <span></span>
  60. 德化县人民法院以“五色工作法”赋能县域发展
  61. </NuxtLink>
  62. </div>
  63. <div>
  64. <NuxtLink to="#">
  65. <span></span>
  66. 湖北省法院党组理论学习中心组专题学习《习近平
  67. </NuxtLink>
  68. </div>
  69. <div>
  70. <NuxtLink to="#">
  71. <span></span>
  72. 湖北十堰:“脱薄”绝不是茅箭区法院一家的事
  73. </NuxtLink>
  74. </div>
  75. <div>
  76. <NuxtLink to="#">
  77. <span></span>
  78. 旌德法院到广德法院考察交流工作
  79. </NuxtLink>
  80. </div>
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. <div class="part1Right">
  86. <div class="part1Right_title">
  87. <NuxtLink to="#">
  88. 政策法规
  89. </NuxtLink>
  90. </div>
  91. <div class="part1Right_content">
  92. <div v-for="item in newsList1" :key="item">
  93. <NuxtLink to="#">
  94. <em></em>
  95. {{ item.name }}
  96. </NuxtLink>
  97. </div>
  98. </div>
  99. </div>
  100. </div>
  101. <!-- 第二部分 -->
  102. <div class="part2">
  103. <div class="part2_left">
  104. <div class="part2_left_title">
  105. <NuxtLink to="#">
  106. 各地动态
  107. </NuxtLink>
  108. </div>
  109. <div class="part2_left_content">
  110. <div class="part2LeftContent_top">
  111. <div class="part2LeftContent_top_item">
  112. <NuxtLink to="#">
  113. <img src="../public/index/home02.jpg" alt="">
  114. <div class="left_text">
  115. <div class="left_text_title">青山梦:一位古稀企业家的春香柚之恋</div>
  116. <div class="left_text_desc dot3">
  117. 青山梦:一位古稀企业家的春香柚之恋一、浙商归野:千万投资换青山七十来岁的应总做出一个令所有人愕然的决定:他毅然转让了浙江经营多年的家庭企业,带着毕生积累的1200余万元,只身来到江西省宜春市袁州区新田
  118. <span>[详情]</span>
  119. </div>
  120. </div>
  121. </NuxtLink>
  122. </div>
  123. </div>
  124. <div class="part2LeftContent_bottom">
  125. <div v-for="item in newsList2" :key="item" class="dot1">
  126. <NuxtLink to="#">
  127. {{ item.name }}
  128. </NuxtLink>
  129. </div>
  130. </div>
  131. </div>
  132. </div>
  133. <div class="part2_right">
  134. <div class="part2_right_title">
  135. <NuxtLink to="#">
  136. 廉政时讯
  137. </NuxtLink>
  138. </div>
  139. <div class="part2_right_content">
  140. <NuxtLink to="#">
  141. <img src="../public/index/home03.png" alt="">
  142. <span class="right_title dot1"> 京津冀对在三地拟执业的司法鉴定人进行职业能力评估联考</span>
  143. <div class="right_text">
  144.   7月7日,北京市司法局举办北京司法鉴定理论与实践研讨会。北京市司法局局长崔杨表示,该局积极探索区域司法鉴定行业合作机制,推动京津冀司法鉴定协同创新、资源共享。  会上,北京、天津、河北三地司法鉴定...
  145. <span>[详情]</span>
  146. </div>
  147. </NuxtLink>
  148. </div>
  149. </div>
  150. </div>
  151. <!-- 第三部分 -->
  152. <div class="part3">
  153. <div class="part3_left">
  154. <div class="part3_left_title">
  155. <NuxtLink to="#">
  156. 政策解读
  157. </NuxtLink>
  158. </div>
  159. <div class="part3_left_content">
  160. <div class="part3LeftContent_top">
  161. <div class="part3LeftContent_top_item">
  162. <NuxtLink to="#">
  163. <img src="../public/index/home04.png" alt="">
  164. <div class="left_text">
  165. <div class="left_text_title dot1">别踩红线!民法典“帝王原则”管着所有民事纠纷</div>
  166. <div class="left_text_desc dot3">
  167. “买东西遇到商家隐瞒瑕疵?借钱给朋友被恶意拖欠?”这些民事纠纷里,都藏着一个民法典的核心准则——诚信原则。它被称为民法的“帝王条款”,贯穿合同、侵权、物权等所有民事领域,不管是个人还是企业,都得遵守。
  168. <span>[详情]</span>
  169. </div>
  170. </div>
  171. </NuxtLink>
  172. </div>
  173. </div>
  174. <div class="part3LeftContent_bottom">
  175. <div v-for="item in newsList3" :key="item" class="dot1">
  176. <NuxtLink to="#">
  177. {{ item.name }}
  178. </NuxtLink>
  179. </div>
  180. </div>
  181. </div>
  182. </div>
  183. <div class="part3_right">
  184. <div class="part3_right_title">
  185. <NuxtLink to="#">
  186. 通知公告
  187. </NuxtLink>
  188. </div>
  189. <div class="part3_right_content">
  190. <div class="part3RightContent_item dot1" v-for="item in newsList4" :key="item">
  191. <NuxtLink to="#">{{ item.name }}</NuxtLink>
  192. </div>
  193. </div>
  194. </div>
  195. </div>
  196. <!-- 第四部分 -->
  197. <div class="part4">
  198. <div class="part4Left">
  199. <div class="part4Left_title">
  200. <NuxtLink to="#">
  201. 今日说法
  202. </NuxtLink>
  203. </div>
  204. <div class="part4Left_content">
  205. <div class="part4Content_top">
  206. <NuxtLink to="#">
  207. <img src="../public/index/photo01.jpg" alt="">
  208. <div class="leftTop_text">
  209. <div class="leftTop_text_title dot2">《吉林省实施〈中华人民共和国反恐怖主义法〉办法》新闻发布会实录</div>
  210. <div class="leftTop_text_desc dot2">
  211.       省委宣传部新闻发布处处长
  212. 贾鹏锋:  各位媒体朋友,大家上午好!欢迎参加今天的新闻发布会。  为贯彻落实总体国家安全观,防范和惩治恐怖活动,加强反恐怖主义工作,维护国家安全、公共安全和人民...
  213. <span>[详情]</span>
  214. </div>
  215. </div>
  216. </NuxtLink>
  217. </div>
  218. <div class="part4Content_bottom">
  219. <div v-for="item in newsList1.slice(0, 7)" :key="item">
  220. <NuxtLink to="#">{{ item.name }}</NuxtLink>
  221. </div>
  222. </div>
  223. </div>
  224. </div>
  225. <div class="part4Mid">
  226. <div class="part4Left_title">
  227. <NuxtLink to="#">
  228. 典型案例
  229. </NuxtLink>
  230. </div>
  231. <div class="part4Left_content">
  232. <div class="part4Content_top">
  233. <NuxtLink to="#">
  234. <img src="../public/index/photo01.jpg" alt="">
  235. <div class="leftTop_text">
  236. <div class="leftTop_text_title dot2">《吉林省实施〈中华人民共和国反恐怖主义法〉办法》新闻发布会实录</div>
  237. <div class="leftTop_text_desc dot2">
  238.       省委宣传部新闻发布处处长
  239. 贾鹏锋:  各位媒体朋友,大家上午好!欢迎参加今天的新闻发布会。  为贯彻落实总体国家安全观,防范和惩治恐怖活动,加强反恐怖主义工作,维护国家安全、公共安全和人民...
  240. <span>[详情]</span>
  241. </div>
  242. </div>
  243. </NuxtLink>
  244. </div>
  245. <div class="part4Content_bottom">
  246. <div v-for="item in newsList1.slice(0, 7)" :key="item">
  247. <NuxtLink to="#">{{ item.name }}</NuxtLink>
  248. </div>
  249. </div>
  250. </div>
  251. </div>
  252. <div class="part2_right">
  253. <div class="part2_right_title">
  254. <NuxtLink to="#">
  255. 廉政时讯
  256. </NuxtLink>
  257. </div>
  258. <div class="part2_right_content">
  259. <NuxtLink to="#">
  260. <img src="../public/index/home03.png" alt="">
  261. <span class="right_title dot1"> 京津冀对在三地拟执业的司法鉴定人进行职业能力评估联考</span>
  262. <div class="right_text">
  263.   7月7日,北京市司法局举办北京司法鉴定理论与实践研讨会。北京市司法局局长崔杨表示,该局积极探索区域司法鉴定行业合作机制,推动京津冀司法鉴定协同创新、资源共享。会上,北京、天津、河北三地司法鉴定...
  264. <span>[详情]</span>
  265. </div>
  266. </NuxtLink>
  267. </div>
  268. </div>
  269. </div>
  270. <!-- 第五部分 -->
  271. <div class="part5">
  272. <div class="part5Left">
  273. <div class="part5Left_title">
  274. <NuxtLink to="#">
  275. 法纪通报
  276. </NuxtLink>
  277. </div>
  278. <div class="part5Left_content">
  279. <el-carousel :interval="5000" arrow="always">
  280. <el-carousel-item v-for="item in 3" :key="item">
  281. <div class="part5Left_item">
  282. <img src="../public/index/photo04.jpg" alt="">
  283. <div class="contentText">
  284. <div class="title dot1">石家庄市中级人民法院原党组书记、院长李勇被开除党籍和公职</div>
  285. <div class="desc dot4">
  286. 政讯通·全国法制资讯发布中心快讯:据河北省纪委监委5月25日消息,日前,经河北省委批准,河北省纪委监委对石家庄市中级人民法院原党组书记、院长李勇严重违纪违法问题进行了立案审查调查。
  287. </div>
  288. </div>
  289. </div>
  290. </el-carousel-item>
  291. </el-carousel>
  292. </div>
  293. </div>
  294. <div class="part5Right">
  295. <div class="part2_right_title">
  296. <NuxtLink to="#">
  297. 廉政时讯
  298. </NuxtLink>
  299. </div>
  300. <div class="part2_right_content">
  301. <NuxtLink to="#">
  302. <img src="../public/index/home03.png" alt="">
  303. <span class="right_title dot1"> 京津冀对在三地拟执业的司法鉴定人进行职业能力评估联考</span>
  304. <div class="right_text">
  305.   7月7日,北京市司法局举办北京司法鉴定理论与实践研讨会。北京市司法局局长崔杨表示,该局积极探索区域司法鉴定行业合作机制,推动京津冀司法鉴定协同创新、资源共享。  会上,北京、天津、河北三地司法鉴定...
  306. <span>[详情]</span>
  307. </div>
  308. </NuxtLink>
  309. </div>
  310. </div>
  311. </div>
  312. <!-- 网友留言 -->
  313. <HomeInternetMessage></HomeInternetMessage>
  314. <HomeFoot></HomeFoot>
  315. </div>
  316. </template>
  317. <script setup>
  318. const newsList1 = [
  319. {
  320. name: '淮北市:一杯清茶聚合力情理相融筑平安'
  321. },
  322. {
  323. name: '淮南市:法治赋能优环境双驱普法促发展'
  324. },
  325. {
  326. name: '六安市“宪法宣传周”活动全域覆盖'
  327. },
  328. {
  329. name: '池州市多维联动推动宪法宣传入脑入心'
  330. },
  331. {
  332. name: '无为市司法局构建立体普法矩阵厚植全民宪法信仰'
  333. },
  334. {
  335. name: '最高人民法院关于审理政府信息公开行政案件适用法律若干问...'
  336. },
  337. {
  338. name: '最高人民法院关于互联网法院案件管辖的规定'
  339. },
  340. {
  341. name: '最高人民法院最高人民检察院关于办理破坏黑土地资源刑事...'
  342. }
  343. ]
  344. const newsList2 = [
  345. {
  346. name: '“十四五”时期北京司法行政工作“成绩单”'
  347. },
  348. {
  349. name: '北京市司法局与西北政法大学签署合作协议'
  350. },
  351. {
  352. name: '北京市司法局举办基层立法联系点启动仪式'
  353. },
  354. {
  355. name: '全国人大代表黄超——以高水平法治护航高质'
  356. },
  357. {
  358. name: '倡廉洁家风筑廉洁防线|济源中院组织干警及'
  359. },
  360. {
  361. name: '安化:开展送法进校园活动'
  362. },
  363. {
  364. name: '保险合同引纠纷法院调解暖人心'
  365. },
  366. {
  367. name: '全国人大代表方能烈:推动法治宣传教育走深'
  368. },
  369. {
  370. name: '如我在诉|从“凭什么”到“我们服”判后答'
  371. },
  372. {
  373. name: '解纷“—盘棋”司法“三重奏”'
  374. },
  375. {
  376. name: '三门峡中院党组书记、院长周东方赴潘河乡调'
  377. },
  378. {
  379. name: '共话AMC参与困境企业重整投资新路径—'
  380. },
  381. {
  382. name: '直击执行|善意执行促主动履行'
  383. },
  384. {
  385. name: '为了大地的丰收——以法治护航“天下第一粮'
  386. },
  387. {
  388. name: '宪法点亮青春法治护航成长'
  389. },
  390. {
  391. name: '灵宝法院召开党的二十届四中全会精神专题宣'
  392. },
  393. {
  394. name: '安阳中院举办学习贯彻党的二十届四中全会精'
  395. },
  396. {
  397. name: '如我在诉|赔偿款当场给付!'
  398. },
  399. ]
  400. const newsList3 = [
  401. {
  402. name: '别踩红线!民法典“帝王原则”管着所有民事'
  403. },
  404. {
  405. name: '别再瞎找门路!政讯通·全国法制项目能解决大'
  406. },
  407. {
  408. name: '法院为啥“打回”案子?发回重审的2类情形'
  409. },
  410. {
  411. name: '强化科技支撑构建现代化森林草原防灭火体系'
  412. },
  413. {
  414. name: '全民阅读促进工作进入法治化新阶段'
  415. },
  416. {
  417. name: '别白跑一趟!这些情况不能申请再审'
  418. },
  419. {
  420. name: '丰台公安分局党委成员讲党课——第三讲:永'
  421. },
  422. {
  423. name: '上诉状想戳到法官痛点?就用判决书的逻辑反'
  424. },
  425. {
  426. name: '北京市法学会举办2024年第三期“百名法学青'
  427. },
  428. {
  429. name: '密云区检察院:益心守护“云水蓝”'
  430. },
  431. {
  432. name: '党建为纲“四通”护企北京市通州区检察院经'
  433. },
  434. {
  435. name: '丰台公安分局党委成员讲党课——第二讲:莲'
  436. },
  437. {
  438. name: '北京边检总站执勤六大队执勤二队党支部与首'
  439. },
  440. {
  441. name: '提审VS指令再审:改判的关键从不是“谁来'
  442. },
  443. {
  444. name: '不是矫情!这些情况主张精神赔偿合情合法'
  445. },
  446. {
  447. name: '加强党建引领打造保安铁军——丰台区成立'
  448. },
  449. {
  450. name: '中国方正出版社推出《中华人民共和国监察'
  451. },
  452. {
  453. name: '判决生效有异议?再审申请的4条路记好'
  454. },
  455. ]
  456. const newsList4 = [
  457. {
  458. name: '湖南省司法厅机关办公区物业服务项目成交结果公告'
  459. },
  460. {
  461. name: '湖南省关于2025年国家统一法律职业资格主观题考试成绩'
  462. },
  463. {
  464. name: '中共湖南省委全面依法治省委员会办公室关于征集法治建设问...'
  465. },
  466. {
  467. name: '湖南省司法厅机关办公区物业服务项目竞争性磋商公告'
  468. },
  469. {
  470. name: '湖南省司法厅停车场改造工程竞争性磋商邀请公告'
  471. },
  472. {
  473. name: '湖南省司法厅2025年度公开送选公务员拟递选人员公示'
  474. },
  475. {
  476. name: '湖南省律师事务所和律师2024年度考核结果公告'
  477. },
  478. {
  479. name: '湖南省基层法律服务所和基层法律服务工作者2024年度考核...'
  480. },
  481. {
  482. name: '湖南省戒毒管理局2025年度公开透选公务员拟透选人员公示'
  483. },
  484. {
  485. name: '湖南省司法厅政务新媒体运维和奥情监测服务采购项目竞争性...'
  486. }
  487. ]
  488. //页面是否已经加载完毕
  489. const pageLoading = ref(false)
  490. //1.加载页面必备组件 start---------------------------------------->
  491. import { ref, onMounted } from 'vue';
  492. import { ElRadio, ElRadioGroup, ElCheckbox, ElCheckboxGroup, ElMessage, ElInput, ElCarousel, ElCarouselItem } from 'element-plus';
  493. import { useSeoMeta } from '#imports';
  494. //格式化跳转路径 - 标题
  495. //首页分类栏目标题,不需要考虑外链
  496. const getLinkPath = (item) => {
  497. if (item.children_count == 0) {
  498. //return `/newsList/${item.cid}?page=1`;
  499. return `/${item.aLIas_pinyin}/list-1.html`;
  500. } else {
  501. //return `/primaryNavigation/${item.cid}`;
  502. return `/${item.aLIas_pinyin}/index.html`;
  503. }
  504. }
  505. //首页跳转到详情,这里需要考虑外链
  506. const getLinkPathDetail = (item) => {
  507. if (item.islink == 1) {
  508. return `${item.linkurl}`;
  509. } else {
  510. return `/${item.pinyin}/${item.id}.html`;
  511. }
  512. }
  513. //1.加载页面必备组件 end---------------------------------------->
  514. //2.交互方法 start---------------------------------------->
  515. //2.1 新闻图片切换
  516. const hoverStatus = ref(1)
  517. const qhPic = function (num) {
  518. hoverStatus.value = num;
  519. }
  520. //2.交互方法 end---------------------------------------->
  521. //3.投票 start---------------------------------------->
  522. //3.1 投票选择的值
  523. const radio1 = ref(''); //单选
  524. const check1 = ref([]); //多选
  525. const isDisabled = ref(false);//是否禁用提交按钮
  526. const isRadio = ref(true);//是否渲染单选
  527. const userSurId = ref('');//投票属于哪一篇文章
  528. const userChoice = ref('');//用于判断用户选择了其他选项以后,输入的值
  529. const userIsChoice = ref('');//用于判断其他选项目前是什么值
  530. const showUserChoice = ref(false);//是否显示其他输入框
  531. const websiteSurveyData = ref([]);//投票结果
  532. //3.2获得投票列表
  533. let voteList = ref([]);
  534. //广告改为客户端启动
  535. // async function getVoteList(){
  536. // const voteData = await requestHome('/web/getWebsiteSurvey',{method:'GET'});
  537. // //这里有问题,后台传入的数据已经发生了变化,按照传入的进行修改
  538. // if(voteData.code == 200){
  539. // voteList.value = voteData.data;
  540. // console.log(voteList.value)
  541. // //判断显示单选还是多选
  542. // //survey_type 0是单选 1是多选
  543. // if(voteData.data[0].survey_type == 0){
  544. // isRadio.value = true;
  545. // }else{
  546. // isRadio.value = false;
  547. // }
  548. // for(let item of voteData.data){
  549. // //如果含有其他
  550. // if(item.is_other==1){
  551. // userIsChoice.value = item.id;
  552. // }
  553. // }
  554. // //用户投票属于哪一篇文章
  555. // userSurId.value = voteData.data[0].sur_id;
  556. // }else{
  557. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  558. // console.log("错误位置:首页投票")
  559. // console.log("后端错误反馈:",voteData.message)
  560. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  561. // }
  562. // }
  563. //getVoteList()
  564. //3.2当用户选择了选项,判断是否展示其他输入框
  565. const handleRadioChange = (value) => {
  566. if (value == userIsChoice.value) {
  567. showUserChoice.value = true;
  568. } else {
  569. showUserChoice.value = false;
  570. }
  571. }
  572. const handleCheckboxChange = (value) => {
  573. if (value.includes(userIsChoice.value)) {
  574. showUserChoice.value = true;
  575. } else {
  576. showUserChoice.value = false;
  577. }
  578. }
  579. //3.2发起投票
  580. async function addWebsiteSurvey() {
  581. //判断当前是单选还是多选
  582. console.log(isRadio.value)
  583. if (isRadio.value) {
  584. console.log("用户单选!")
  585. if (radio1.value != '') {
  586. //先判断一下是否使用了其他选项
  587. if (showUserChoice.value) {
  588. if (userChoice.value != '') {
  589. //文章id
  590. // console.log(userSurId.value)
  591. // 用户输入的值
  592. // console.log(userChoice.value)
  593. //如果使用了其他,其他的选项需要增加进去
  594. const ChoiceData = await requestDataPromise('/web/addWebsiteSurveyOption', {
  595. method: 'GET',
  596. query: {
  597. 'sur_id': userSurId.value,//投票的新闻id
  598. 'choice_name': userChoice.value,//投票的选项id
  599. }
  600. });
  601. if (ChoiceData.code == 200) {
  602. //提交完其他选项以后,再正式发起投票
  603. const mkData = await requestDataPromise('/web/addWebsiteSurveyVote', {
  604. method: 'GET',
  605. query: {
  606. 'sur_id': userSurId.value,
  607. 'choice_id': ChoiceData.data
  608. }
  609. });
  610. if (mkData.code == 200) {
  611. ElMessage.success('投票成功!')
  612. //把投票结果显示到页面上 禁用投票按钮
  613. isDisabled.value = true;
  614. websiteSurveyData.value = mkData.data;
  615. //遍历一下,把用户选中的那个设置status为1
  616. let data = mkData.data;
  617. //遍历一下,把用户选中的那个设置status为1
  618. for (let item of data.data) {
  619. for (let i of data.choice) {
  620. if (item.id == i) {
  621. console.log(item.id)
  622. item.status = 1;
  623. }
  624. }
  625. }
  626. websiteSurveyData.value = data;
  627. } else {
  628. ElMessage.error(mkData.message)
  629. }
  630. } else {
  631. ElMessage.error('其他投票失败!')
  632. }
  633. } else {
  634. ElMessage.error('请输入选项内容!')
  635. }
  636. } else {
  637. //如果没选择其他,直接提交选择的内容
  638. const mkData = await requestDataPromise('/web/addWebsiteSurveyVote', {
  639. method: 'GET',
  640. query: {
  641. 'sur_id': userSurId.value,
  642. 'choice_id': radio1.value
  643. }
  644. });
  645. if (mkData.code == 200) {
  646. ElMessage.success('投票成功!')
  647. //把投票结果显示到页面上 禁用投票按钮
  648. isDisabled.value = true;
  649. let data = mkData.data;
  650. //遍历一下,把用户选中的那个设置status为1
  651. for (let item of data.data) {
  652. for (let i of data.choice) {
  653. if (item.id == i) {
  654. item.status = 1;
  655. }
  656. }
  657. }
  658. websiteSurveyData.value = data;
  659. } else {
  660. ElMessage.error('投票失败!')
  661. }
  662. }
  663. } else {
  664. ElMessage.error('请选择一个选项')
  665. }
  666. } else {
  667. console.log("多选!")
  668. //多选
  669. if (check1.value != []) {
  670. //先判断一下是否使用了其他选项
  671. if (showUserChoice.value) {
  672. if (userChoice.value != '') {
  673. //判断用户是否只选择了一个其他
  674. if (check1.value.length == 1) {
  675. const ChoiceData = await requestDataPromise('/web/addWebsiteSurveyOption', {
  676. method: 'GET',
  677. query: {
  678. 'sur_id': userSurId.value,//投票的新闻id
  679. 'choice_name': userChoice.value,//用户输入的其他选项文字
  680. }
  681. });
  682. if (ChoiceData.code == 200) {
  683. //提交完其他选项以后,再正式发起投票
  684. const mkData = await requestDataPromise('/web/addWebsiteSurveyVote', {
  685. method: 'GET',
  686. query: {
  687. 'sur_id': userSurId.value,
  688. 'choice_id': ChoiceData.data
  689. }
  690. });
  691. if (mkData.code == 200) {
  692. ElMessage.success('投票成功!')
  693. //把投票结果显示到页面上 禁用投票按钮
  694. isDisabled.value = true;
  695. websiteSurveyData.value = mkData.data;
  696. //遍历一下,把用户选中的那个设置status为1
  697. let data = mkData.data;
  698. //遍历一下,把用户选中的那个设置status为1
  699. for (let item of data.data) {
  700. for (let i of data.choice) {
  701. if (item.id == i) {
  702. console.log(item.id)
  703. item.status = 1;
  704. }
  705. }
  706. }
  707. websiteSurveyData.value = data;
  708. } else {
  709. ElMessage.error(mkData.message)
  710. }
  711. } else {
  712. ElMessage.error('其他投票失败!')
  713. }
  714. } else {
  715. //用户选择了除了其他以外,还包括别的选项
  716. const ChoiceData = await requestDataPromise('/web/addWebsiteSurveyOption', {
  717. method: 'GET',
  718. query: {
  719. 'sur_id': userSurId.value,//投票的新闻id
  720. 'choice_name': userChoice.value,//用户输入的其他选项文字
  721. }
  722. });
  723. if (ChoiceData.code == 200) {
  724. let data = check1.value;
  725. //找到多选的数组,把其他默认值给替换掉
  726. for (let i = 0; i < data.length; i++) {
  727. if (data[i] == userIsChoice.value) {
  728. data[i] = ChoiceData.data;
  729. }
  730. }
  731. let jsonArray = JSON.stringify(data);
  732. //提交完其他选项以后,再正式发起投票
  733. const mkData = await requestDataPromise('/web/addWebsiteSurveyVote', {
  734. method: 'GET',
  735. query: {
  736. 'sur_id': userSurId.value,
  737. 'choice_id': jsonArray
  738. }
  739. });
  740. if (mkData.code == 200) {
  741. ElMessage.success('投票成功!')
  742. //把投票结果显示到页面上 禁用投票按钮
  743. isDisabled.value = true;
  744. websiteSurveyData.value = mkData.data;
  745. //遍历一下,把用户选中的那个设置status为1
  746. let data = mkData.data;
  747. //遍历一下,把用户选中的那个设置status为1
  748. for (let item of data.data) {
  749. for (let i of data.choice) {
  750. if (item.id == i) {
  751. //console.log(item.id)
  752. item.status = 1;
  753. }
  754. }
  755. }
  756. websiteSurveyData.value = data;
  757. } else {
  758. ElMessage.error(mkData.message)
  759. }
  760. } else {
  761. ElMessage.error('其他投票失败!')
  762. }
  763. }
  764. } else {
  765. ElMessage.error('请输入选项内容!')
  766. }
  767. } else {
  768. let jsonArray = JSON.stringify(check1.value);
  769. //如果没选择其他,直接提交选择的内容
  770. const mkData = await requestHome('/web/addWebsiteSurveyVote', {
  771. method: 'GET',
  772. query: {
  773. 'sur_id': userSurId.value,
  774. 'choice_id': jsonArray
  775. }
  776. });
  777. if (mkData.code == 200) {
  778. ElMessage.success('投票成功!')
  779. //把投票结果显示到页面上 禁用投票按钮
  780. isDisabled.value = true;
  781. websiteSurveyData.value = mkData.data;
  782. //遍历一下,把用户选中的那个设置status为1
  783. let data = mkData.data;
  784. //遍历一下,把用户选中的那个设置status为1
  785. for (let item of data.data) {
  786. for (let i of data.choice) {
  787. if (item.id == i) {
  788. console.log(item.id)
  789. item.status = 1;
  790. }
  791. }
  792. }
  793. websiteSurveyData.value = data;
  794. } else {
  795. ElMessage.error('投票失败!')
  796. }
  797. }
  798. } else {
  799. ElMessage.error('请选择一个选项')
  800. }
  801. }
  802. }
  803. //3.投票 end---------------------------------------->
  804. //4.广告 start---------------------------------------->
  805. //获得所有广告
  806. let adImg1 = ref({})
  807. let adImg2 = ref({})
  808. let adImg3 = ref({})
  809. let adImg4 = ref({})
  810. onMounted(async () => {
  811. //从客户端获取行政职能部门 加快打开速度//从客户端获取行政职能部门 加快打开速度
  812. const { $webUrl, $CwebUrl } = useNuxtApp();
  813. //从客户端启动投票
  814. //获得投票列表
  815. let voteUrl = `${$webUrl}/web/getWebsiteSurvey`
  816. const responseVote = await fetch(voteUrl, {
  817. headers: {
  818. 'Content-Type': 'application/json',
  819. 'Userurl': $CwebUrl,
  820. 'Origin': $CwebUrl
  821. }
  822. });
  823. const voteData = await responseVote.json();
  824. if (voteData.code == 200) {
  825. voteList.value = voteData.data;
  826. //判断显示单选还是多选
  827. //survey_type 0是单选 1是多选
  828. if (voteData.data[0].survey_type == 0) {
  829. isRadio.value = true;
  830. } else {
  831. isRadio.value = false;
  832. }
  833. for (let item of voteData.data) {
  834. //如果含有其他
  835. if (item.is_other == 1) {
  836. userIsChoice.value = item.id;
  837. }
  838. }
  839. //用户投票属于哪一篇文章
  840. userSurId.value = voteData.data[0].sur_id;
  841. } else {
  842. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  843. // console.log("错误位置:首页投票")
  844. // console.log("后端错误反馈:",voteData.message)
  845. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  846. }
  847. //从客户端启动广告
  848. //广告1
  849. let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_index_0001`
  850. const responseAd1 = await fetch(url, {
  851. headers: {
  852. 'Content-Type': 'application/json',
  853. 'Userurl': $CwebUrl,
  854. 'Origin': $CwebUrl
  855. }
  856. });
  857. const resultAd1 = await responseAd1.json();
  858. adImg1.value = resultAd1.data[0];
  859. //广告2
  860. let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_index_0002`
  861. const responseAd2 = await fetch(url2, {
  862. headers: {
  863. 'Content-Type': 'application/json',
  864. 'Userurl': $CwebUrl,
  865. 'Origin': $CwebUrl
  866. }
  867. });
  868. const resultAd2 = await responseAd2.json();
  869. adImg2.value = resultAd2.data[0];
  870. //广告3
  871. let url3 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_index_0003`
  872. const responseAd3 = await fetch(url3, {
  873. headers: {
  874. 'Content-Type': 'application/json',
  875. 'Userurl': $CwebUrl,
  876. 'Origin': $CwebUrl
  877. }
  878. });
  879. const resultAd3 = await responseAd3.json();
  880. adImg3.value = resultAd3.data[0];
  881. //广告4
  882. let url4 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_index_0004`
  883. const responseAd4 = await fetch(url4, {
  884. headers: {
  885. 'Content-Type': 'application/json',
  886. 'Userurl': $CwebUrl,
  887. 'Origin': $CwebUrl
  888. }
  889. });
  890. const resultAd4 = await responseAd4.json();
  891. adImg4.value = resultAd4.data[0];
  892. })
  893. //4.交互方法 end---------------------------------------->
  894. //5.页面基本信息 start---------------------------------------->
  895. //5.1 导航信息
  896. const pageData = ref([
  897. // { cid: "", title: "", data: [] ,children_count:""},
  898. ]);
  899. //5.2 模块数据
  900. //注意前置变量 在nuxt3的ssr模式中,并不存在变量提升。
  901. //模块1
  902. const boxData1 = ref([])
  903. const boxData1data2 = ref([])
  904. //模块2
  905. const boxData2 = ref([]);
  906. //模块3 - 该数据已经在模块中请求
  907. //const boxData3 = ref([]);
  908. //模块4
  909. const boxData4 = ref([]);
  910. //模块5
  911. const boxData5 = ref([]);
  912. const boxData5data2 = ref([]);
  913. //模块6
  914. const boxData6 = ref([]);
  915. //模块7
  916. const boxData7 = ref([]);
  917. //模块8
  918. const boxData8 = ref([]);
  919. const boxData88 = ref([]);
  920. //模块9 模块10 切换
  921. const tabsData1 = ref(1)
  922. //模块9
  923. const boxData9 = ref([]);
  924. const boxData9data2 = ref([]);
  925. //模块10
  926. const boxData10 = ref([]);
  927. const boxData10data2 = ref([]);
  928. //模块11
  929. const boxData11 = ref([]);
  930. const boxData11data2 = ref([]);
  931. //模块12 模块13 切换
  932. const tabsData2 = ref(1)
  933. //模块12
  934. const boxData12 = ref([]);
  935. //模块13 - 该模块只有一个入口
  936. const boxData13 = ref([]);
  937. //模块14 模块15 切换
  938. const tabsData3 = ref(1)
  939. //模块14 - 该模块含有子导航
  940. const boxData14 = ref([]);
  941. const boxData14data2 = ref([]);
  942. const boxData14menu = ref([]);
  943. const boxData14childpinyin = ref([]);
  944. const boxData14mainData = ref([]);
  945. //模块15
  946. const boxData15 = ref([]);
  947. const boxData15data2 = ref([]);
  948. const boxData15menu = ref([]);
  949. const boxData15childpinyin = ref([]);
  950. const boxData15mainData = ref([]);
  951. //模块16 模块17 切换
  952. const tabsData4 = ref(1)
  953. //模块16 - 该模块含有子导航
  954. const boxData16 = ref([]);
  955. const boxData16data2 = ref([]);
  956. const boxData16menu = ref([]);
  957. const boxData16childpinyin = ref([]);
  958. const boxData16mainData = ref([]);
  959. //模块17 - 政策法规 本来这个是模块3 原来是单独放到一个模块中的,现在提出来了
  960. const boxData17 = ref({})
  961. //3.2获得导航数据
  962. try {
  963. const navigateData = await requestDataPromise('/web/getWebsiteModelCategory', {
  964. method: 'GET',
  965. query: {
  966. 'placeid': 1,
  967. 'pid': 0,
  968. 'num': 30
  969. },
  970. });
  971. if (navigateData.code == 200) {
  972. // 遍历可用的导航池放到页面中
  973. for (let index in navigateData.data) {
  974. let data = {
  975. title: navigateData.data[index].name,
  976. cid: navigateData.data[index].category_id,
  977. children_count: navigateData.data[index].children_count,
  978. alias: navigateData.data[index].alias,
  979. aLIas_pinyin: navigateData.data[index].aLIas_pinyin
  980. };
  981. //主体渲染 第一层
  982. //新农村11
  983. if (navigateData.data[index].category_id == 11) { pageData.value[0] = data }
  984. //农民工317
  985. if (navigateData.data[index].category_id == 317) { pageData.value[1] = data }
  986. //第二层
  987. //政策法规1
  988. if (navigateData.data[index].category_id == 2) { pageData.value[2] = data }
  989. //三农之窗2
  990. if (navigateData.data[index].category_id == 1) { pageData.value[3] = data }
  991. //第三层
  992. //区域经济5
  993. if (navigateData.data[index].category_id == 5) { pageData.value[4] = data }
  994. //三农投资6
  995. if (navigateData.data[index].category_id == 12) { pageData.value[5] = data }
  996. //农贸信息13
  997. if (navigateData.data[index].category_id == 13) { pageData.value[6] = data }
  998. //书刊信息24三农调查28
  999. if (navigateData.data[index].category_id == 28) { pageData.value[7] = data }
  1000. //第四层
  1001. //三农科教14
  1002. if (navigateData.data[index].category_id == 14) { pageData.value[8] = data }
  1003. //文化生活15
  1004. if (navigateData.data[index].category_id == 15) { pageData.value[9] = data }
  1005. //三农服务27
  1006. if (navigateData.data[index].category_id == 27) { pageData.value[10] = data }
  1007. //第五层
  1008. //三农探索16
  1009. if (navigateData.data[index].category_id == 16) { pageData.value[11] = data }
  1010. //三农人物18
  1011. if (navigateData.data[index].category_id == 18) { pageData.value[12] = data }
  1012. //第六层
  1013. //农资购销21
  1014. if (navigateData.data[index].category_id == 21) { pageData.value[13] = data }
  1015. //农产购销153
  1016. if (navigateData.data[index].category_id == 153) { pageData.value[14] = data }
  1017. //第七层
  1018. //打假维权26
  1019. if (navigateData.data[index].category_id == 26) { pageData.value[15] = data }
  1020. }
  1021. } else {
  1022. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  1023. console.log("错误位置:首页导航池")
  1024. console.log("后端错误反馈:", navigateData.message)
  1025. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  1026. }
  1027. } catch (error) {
  1028. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  1029. console.log("错误位置:首页导航渲染阶段")
  1030. console.log("错误:导航池渲染执行接口出错!请检查首页的14的模块的具体执行方法!")
  1031. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  1032. }
  1033. let getJson = [
  1034. { "parent": "11,2,8", "child": "" },//模块1新农村
  1035. { "parent": "317,0,8", "child": "" },//模块2农民工
  1036. { "parent": "1,0,5", "child": "" },//模块4三农之窗
  1037. { "parent": "5,1,1", "child": "" },//模块5区域经济
  1038. { "parent": "12,0,3", "child": "" },//模块6三农投资
  1039. { "parent": "13,0,4", "child": "" },//模块7农贸信息
  1040. { "parent": "28,2,7", "child": "" },//模块8书刊信息=三农调查
  1041. { "parent": "14,2,8", "child": "" },//模块9三农科教
  1042. { "parent": "15,2,8", "child": "" },//模块10文化生活
  1043. { "parent": "27,2,4", "child": "" },//模块11三农服务27
  1044. { "parent": "16,0,14", "child": "" },//模块12三农探索16
  1045. { "parent": "18,0,14", "child": "" },//模块13三农人物18
  1046. { "parent": "21,2,8", "child": "188,0,5" },//模块14农资购销
  1047. { "parent": "153,2,8", "child": "258,0,5" },//模块15农产购销
  1048. { "parent": "26,4,8", "child": "191,0,5" },//模块16打假维权
  1049. { "parent": "2,4,8", "child": "" },//模块3政策法规
  1050. ]
  1051. let jsonString = JSON.stringify(getJson);
  1052. async function getPageAllData() {
  1053. const mkdata = await requestDataPromise('/web/getWebsiteAllArticle', {
  1054. method: 'GET',
  1055. query: {
  1056. 'id': jsonString
  1057. },
  1058. });
  1059. console.log("makdata:", mkdata);
  1060. if (mkdata.code == 200) {
  1061. //模块1新农村
  1062. boxData1.value = mkdata.data[0].imgnum;
  1063. boxData1data2.value = mkdata.data[0].textnum;
  1064. //模块2农名工
  1065. boxData2.value = mkdata.data[1].textnum;
  1066. //模块4三农之窗
  1067. boxData4.value = mkdata.data[2].textnum;
  1068. //模块5区域经济
  1069. boxData5.value = mkdata.data[3].imgnum;
  1070. boxData5data2.value = mkdata.data[3].textnum;
  1071. //模块6三农投资
  1072. boxData6.value = mkdata.data[4].textnum;
  1073. //模块7农贸信息
  1074. boxData7.value = mkdata.data[5].textnum;
  1075. //模块8书刊信息
  1076. boxData8.value = mkdata.data[6].imgnum;
  1077. boxData88.value = mkdata.data[6].textnum;
  1078. //模块9三农科教
  1079. boxData9.value = mkdata.data[7].imgnum;
  1080. boxData9data2.value = mkdata.data[7].textnum;
  1081. //模块10文化生活
  1082. boxData10.value = mkdata.data[8].imgnum;
  1083. boxData10data2.value = mkdata.data[8].textnum;
  1084. //模块11三农服务
  1085. boxData11.value = mkdata.data[9].imgnum;
  1086. boxData11data2.value = mkdata.data[9].textnum;
  1087. //模块12三农探索
  1088. boxData12.value = mkdata.data[10].textnum;
  1089. //模块13三农人物
  1090. boxData13.value = mkdata.data[11].textnum;
  1091. //模块14农资购销 该栏目含有子导航
  1092. boxData14.value = mkdata.data[12].imgnum;
  1093. boxData14data2.value = mkdata.data[12].textnum;
  1094. boxData14menu.value = mkdata.data[12].child.all_childcat;
  1095. boxData14childpinyin.value = mkdata.data[12].child.pinyin;
  1096. boxData14mainData.value = mkdata.data[12].child.textnum;
  1097. //模块14农产购销
  1098. boxData15.value = mkdata.data[13].imgnum;
  1099. boxData15data2.value = mkdata.data[13].textnum;
  1100. boxData15menu.value = mkdata.data[13].child.all_childcat;
  1101. boxData15childpinyin.value = mkdata.data[13].child.pinyin;
  1102. boxData15mainData.value = mkdata.data[13].child.textnum;
  1103. //模块15打假维权
  1104. boxData16.value = mkdata.data[14].imgnum;
  1105. boxData16data2.value = mkdata.data[14].textnum;
  1106. boxData16menu.value = mkdata.data[14].child.all_childcat;
  1107. boxData16childpinyin.value = mkdata.data[14].child.pinyin;
  1108. boxData16mainData.value = mkdata.data[14].child.textnum;
  1109. //模块17政策法规
  1110. boxData17.value = mkdata.data[15];
  1111. } else {
  1112. ElMessage.error(mkdata.message)
  1113. }
  1114. }
  1115. getPageAllData();
  1116. //5.页面基本信息 end---------------------------------------->
  1117. //6.设置seo数据 start---------------------------------------->
  1118. //获取seo数据
  1119. const setData = await requestDataPromise('/web/getWebsiteFootInfo', {
  1120. method: 'GET',
  1121. query: {},
  1122. });
  1123. if (setData.code == 200) {
  1124. let seoTitle = setData.data.website_head.title;
  1125. let seoDescription = setData.data.website_head.description;
  1126. let seoKeywords = setData.data.website_head.keywords;
  1127. let seoSuffix = setData.data.website_head.suffix;
  1128. let seoName = setData.data.website_head.website_name;
  1129. useSeoMeta({
  1130. title: seoTitle + "_" + seoSuffix,
  1131. meta: [
  1132. { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  1133. { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  1134. { name: 'viewport', content: "width=device-width,initial-scale=1,user-scalable=no" }
  1135. ]
  1136. });
  1137. } else {
  1138. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  1139. // console.log("错误位置:设置首页SEO数据")
  1140. // console.log("后端错误反馈:",setData.message)
  1141. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  1142. }
  1143. //6.设置seo数据 start---------------------------------------->
  1144. </script>
  1145. <style lang="less" scoped>
  1146. @import url('@/assets/css/index.less');
  1147. </style>