index.vue 48 KB

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