index.vue 123 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538
  1. <template>
  2. <div>
  3. <!--logo-->
  4. <HomePageHead></HomePageHead>
  5. <!--导航-->
  6. <HomePageNavigation></HomePageNavigation>
  7. <!--首页顶部滚动新闻-->
  8. <div class="swiper-container">
  9. <Swiper :slides-per-view="5" :space-between="20" :loop="true" :autoplay="{
  10. delay:3000,
  11. disableOnInteraction: false,
  12. pauseOnMouseEnter: true,
  13. stopOnLastSlide: false,
  14. waitForTransition: true
  15. }" :speed="600" :modules="modules" @slide-change="swiperHandleSlideChange" @swiper="onSwiper"
  16. class="custom-swiper" :navigation="true">
  17. <SwiperSlide v-for="(item, index) in imagelist" :key="index">
  18. <NuxtLink :to="`/${item.pinyin}/${item.id}.html`" :title="item.title" class="slide-link"
  19. :data-index="index">
  20. <div class="image-container">
  21. <!-- <img
  22. :src="item.imgurl || '/index/news.png'"
  23. :alt="item.title"
  24. class="slide-image"
  25. loading="lazy"
  26. /> -->
  27. <!-- <img src="/public/index/news.png" :alt="item.title" class="slide-image" loading="lazy" /> -->
  28. <img :src="item.imgurl" :alt="item.title" class="slide-image" loading="lazy"/>
  29. <span class="image-title"> {{ item.title }}</span>
  30. </div>
  31. </NuxtLink>
  32. </SwiperSlide>
  33. </Swiper>
  34. </div>
  35. <!--首页顶部新闻-->
  36. <div class="index—layer-1">
  37. <!--左侧焦点图新闻-->
  38. <div class="index—layer-1-left">
  39. <div class="nuxt-swiper" v-if="imagelist">
  40. <el-carousel :interval="3000" :touchable="true" arrow="never" indicator-class="custom-indicator"
  41. class="custom-carousel roll_in" @change="handleIndicatorChange">
  42. <el-carousel-item v-for="(item, index) in imagelist" :key="index">
  43. <NuxtLink :to="`/${item.pinyin}/${item.id}.html`" :title="item.title">
  44. <!-- <img :src="item.imgurl" :alt="item.title"> -->
  45. <img src="/public/index/news.png" :alt="item.title">
  46. <span>{{ item.title }}</span>
  47. </NuxtLink>
  48. </el-carousel-item>
  49. <template #indicator="{ index }">
  50. <button :class="{ 'active-indicator': currentIndex === index }">{{ index + 1 }}</button>
  51. </template>
  52. </el-carousel>
  53. </div>
  54. </div>
  55. <!--中央选项卡-->
  56. <div class="index-layer-1-middle">
  57. <div class="index-tabs">
  58. <div class="tabtlt">
  59. <div @mouseenter="indexTabs = 1" :class="indexTabs == 1 ? 'intabtltbg' : ''">
  60. <NuxtLink
  61. v-if="pageData[0].cid"
  62. :href="getLinkPath(pageData[0])"
  63. :title="pageData[0].alias" >
  64. {{pageData[0].title}}
  65. </NuxtLink>
  66. </div>
  67. <div @mouseenter="indexTabs = 2" :class="indexTabs == 2 ? 'intabtltbg' : ''">
  68. <NuxtLink v-if="pageData[1].cid"
  69. :href="getLinkPath(pageData[1])"
  70. :title="pageData[1].alias" >
  71. {{pageData[1].title}}
  72. </NuxtLink>
  73. </div>
  74. </div>
  75. <div>
  76. <div v-if="indexTabs == 1" class="coninfoitem">
  77. <div class="coninfoitem_img" v-if="boxData1.length !=0">
  78. <NuxtLink
  79. :href="getLinkPathDetail(boxData1[0])"
  80. :title="boxData1[0].title"
  81. class="coninfoitem_title">
  82. <img :src="boxData1[0].imgurl"/>
  83. <div class="coninfoitem_img_text">
  84. <h3>
  85. {{boxData1[0].title}}
  86. </h3>
  87. <p>
  88. {{boxData1[0].introduce}}
  89. </p>
  90. </div>
  91. </NuxtLink>
  92. </div>
  93. <NuxtLink
  94. v-for="(item, index) in boxData1data2.slice(0, 5)" :key="index"
  95. :href="getLinkPathDetail(item)"
  96. :title="item.title"
  97. class="coninfoitem_title">
  98. <span>{{ item.title }}</span>
  99. <!-- <span>{{getTime(item.updated_at,'month',1)}}</span> -->
  100. </NuxtLink>
  101. </div>
  102. <div v-if="indexTabs == 2" class="coninfoitem">
  103. <div class="coninfoitem_img" v-if="boxData2.length !=0">
  104. <NuxtLink
  105. :href="getLinkPathDetail(boxData2[0])"
  106. :title="boxData2[0].title"
  107. :target="boxData2[0].islink == 1 ? '_blank' : '_self'"
  108. class="coninfoitem_title" >
  109. <img :src="boxData2[0].imgurl"/>
  110. <div class="coninfoitem_img_text">
  111. <h3>
  112. {{boxData2[0].title}}
  113. </h3>
  114. <p>
  115. {{boxData2[0].introduce}}
  116. </p>
  117. </div>
  118. </NuxtLink>
  119. </div>
  120. <NuxtLink
  121. v-for="(item, index) in boxData2data2.slice(0, 5)" :key="index"
  122. :href="getLinkPathDetail(item)"
  123. :title="item.title"
  124. class="coninfoitem_title">
  125. <span>{{ item.title }}</span>
  126. </NuxtLink>
  127. </div>
  128. </div>
  129. </div>
  130. </div>
  131. <!--右侧新闻列表-->
  132. <div class="index-layer-1-right">
  133. <div class="imgtlt">
  134. <NuxtLink v-if="pageData[2].cid" class="coninfoitem_title"
  135. :href="getLinkPath(pageData[2])"
  136. :title="pageData[2].alias" >
  137. {{pageData[2].title}}
  138. </NuxtLink>
  139. </div>
  140. <div class="con_img_list">
  141. <NuxtLink :href="getLinkPathDetail(boxData2[0])" v-for="(per_obj,per_index) in boxData1.slice(0, 4)">
  142. <img :src="per_obj.imgurl" />
  143. <div class="con_img_list_rgba">用google把《孙傲龙传》翻译20遍!</div>
  144. </NuxtLink>
  145. </div>
  146. </div>
  147. </div>
  148. <!--首页中央新闻2-->
  149. <div class="index—layer-2">
  150. <div class="index—layer-2-left">
  151. <div class="index—layer-2-title">
  152. <div :class="indexTabs2 == 1 ? 'active' : ''" @mouseenter="indexTabs2 = 1">
  153. <NuxtLink
  154. v-if="pageData[3].cid"
  155. :href="getLinkPath(pageData[3])"
  156. :title="pageData[3].alias" >
  157. {{pageData[3].title}}
  158. </NuxtLink>
  159. </div>
  160. <div :class="indexTabs2 == 2 ? 'active' : ''" @mouseenter="indexTabs2 = 2">
  161. <NuxtLink
  162. v-if="pageData[1].cid"
  163. :href="getLinkPath(pageData[1])"
  164. :title="pageData[1].alias" >
  165. {{pageData[1].title}}
  166. </NuxtLink>
  167. </div>
  168. </div>
  169. <div v-if="indexTabs2 == 1">
  170. <div class="index-tabs2-top">
  171. <NuxtLink :href="getLinkPathDetail(boxData4[0])" >
  172. <img :src="boxData4[0].imgurl"/>
  173. </NuxtLink>
  174. <div>
  175. <h3>
  176. <NuxtLink :href="getLinkPathDetail(boxData4[0])">
  177. {{boxData4[0].title}}
  178. </NuxtLink>
  179. </h3>
  180. <p>
  181. <NuxtLink :href="getLinkPathDetail(boxData4[0])">
  182. {{boxData4[0].introduce}}
  183. </NuxtLink>
  184. </p>
  185. </div>
  186. </div>
  187. <div class="index-tabs2-bottom" >
  188. <NuxtLink :href="getLinkPathDetail(per_obj)" v-for="(per_obj,per_index) in boxData4data2.slice(0, 5)" >
  189. <span>{{ per_obj.title }}</span>
  190. <!-- <span>{{getTime(per_obj.updated_at,'month',1)}}</span> -->
  191. </NuxtLink>
  192. </div>
  193. </div>
  194. <div v-if="indexTabs2 == 2">
  195. <div class="index-tabs2-top" v-if="boxData2.length !=0">
  196. <NuxtLink :href="getLinkPathDetail(boxData2[0])" >
  197. <img :src="boxData2[0].imgurl"/>
  198. </NuxtLink>
  199. <div>
  200. <h3>
  201. <NuxtLink :href="getLinkPathDetail(boxData2[0])">
  202. {{boxData2[0].title}}
  203. </NuxtLink>
  204. </h3>
  205. <p>
  206. <NuxtLink :href="getLinkPathDetail(boxData2[0])">
  207. {{boxData2[0].introduce}}
  208. </NuxtLink>
  209. </p>
  210. </div>
  211. </div>
  212. <div class="index-tabs2-bottom" >
  213. <NuxtLink :href="getLinkPathDetail(per_obj)" v-for="(per_obj,per_index) in boxData2data2.slice(0, 5)" >
  214. <span>{{ per_obj.title }}</span>
  215. <span>{{getTime(per_obj.updated_at,'month',1)}}</span>
  216. </NuxtLink>
  217. </div>
  218. </div>
  219. </div>
  220. <div class="index—layer-2-right">
  221. <div class="index—layer-2-title">
  222. <div :class="indexTabs3 == 1 ? 'active' : ''" @mouseenter="indexTabs3 = 1">
  223. <NuxtLink
  224. v-if="pageData[0].cid"
  225. :href="getLinkPath(pageData[0])"
  226. :title="pageData[0].alias" >
  227. {{pageData[0].title}}
  228. </NuxtLink>
  229. </div>
  230. <div :class="indexTabs3 == 2 ? 'active' : ''" @mouseenter="indexTabs3 = 2">
  231. <NuxtLink
  232. v-if="pageData[1].cid"
  233. :href="getLinkPath(pageData[1])"
  234. :title="pageData[1].alias" >
  235. {{pageData[1].title}}
  236. </NuxtLink>
  237. </div>
  238. </div>
  239. <div v-if="indexTabs3 == 1">
  240. <div class="index-tabs2-top" v-if="boxData1.length !=0">
  241. <NuxtLink
  242. :href="getLinkPathDetail(boxData1[0])"
  243. :title="boxData1[0].title">
  244. <img :src="boxData1[0].imgurl"/>
  245. </NuxtLink>
  246. <div>
  247. <h3>
  248. <NuxtLink :href="getLinkPathDetail(boxData1[0])">
  249. {{boxData1[0].title}}
  250. </NuxtLink>
  251. </h3>
  252. <p>
  253. <NuxtLink :href="getLinkPathDetail(boxData1[0])">
  254. {{boxData1[0].introduce}}
  255. </NuxtLink>
  256. </p>
  257. </div>
  258. </div>
  259. <div class="index-tabs2-bottom">
  260. <NuxtLink v-for="(item, index) in boxData1data2.slice(0, 5)" :key="index"
  261. :href="getLinkPathDetail(item)"
  262. :title="item.title" >
  263. <span>{{ item.title }}</span>
  264. <!-- <span>2026-01-06</span> -->
  265. </NuxtLink>
  266. </div>
  267. </div>
  268. <div v-if="indexTabs3 == 2">
  269. <div class="index-tabs2-top" v-if="boxData2.length !=0">
  270. <NuxtLink
  271. :href="getLinkPathDetail(boxData2[0])"
  272. :title="boxData2[0].title">
  273. <img :src="boxData2[0].imgurl"/>
  274. </NuxtLink>
  275. <div>
  276. <h3>
  277. <NuxtLink :href="getLinkPathDetail(boxData2[0])">
  278. {{boxData2[0].title}}
  279. </NuxtLink>
  280. </h3>
  281. <p>
  282. <NuxtLink :href="getLinkPathDetail(boxData2[0])">
  283. {{boxData2[0].introduce}}
  284. </NuxtLink>
  285. </p>
  286. </div>
  287. </div>
  288. <div class="index-tabs2-bottom">
  289. <NuxtLink
  290. v-for="(item, index) in boxData2data2.slice(0, 5)" :key="index"
  291. :href="getLinkPathDetail(item)"
  292. :title="item.title" >
  293. <span>{{ item.title }}</span>
  294. <!-- <span>2026-01-06</span> -->
  295. </NuxtLink>
  296. </div>
  297. </div>
  298. </div>
  299. </div>
  300. <!--首页中央新闻3-->
  301. <div class="index—layer-3">
  302. <div class="index—layer-3-line">
  303. <!--选项卡类型-->
  304. <div class="index—layer-3-tabs-box">
  305. <div class="index—layer-3-tabs-box-title">
  306. <div @mouseenter="indexTabs4 = 1" :class="indexTabs4 == 1 ? 'active' : ''">
  307. <NuxtLink
  308. v-if="pageData[0].cid"
  309. :href="getLinkPath(pageData[0])"
  310. :title="pageData[0].alias" >
  311. {{pageData[0].title}}
  312. </NuxtLink>
  313. </div>
  314. <div @mouseenter="indexTabs4 = 2" :class="indexTabs4 == 2 ? 'active' : ''">
  315. <NuxtLink
  316. v-if="pageData[1].cid"
  317. :href="getLinkPath(pageData[1])"
  318. :title="pageData[1].alias" >
  319. {{pageData[1].title}}
  320. </NuxtLink>
  321. </div>
  322. </div>
  323. <div v-if="indexTabs4 == 1" class="index—layer-3-news-body" >
  324. <div class="index—layer-3-news-body-title" v-if="boxData1.length !=0">
  325. <div class="news-body-left">
  326. <NuxtLink
  327. :href="getLinkPathDetail(boxData1[0])"
  328. :title="boxData1[0].title">
  329. <img :src="boxData1[0].imgurl"/>
  330. </NuxtLink>
  331. </div>
  332. <div class="news-body-right">
  333. <NuxtLink
  334. :href="getLinkPathDetail(boxData1[0])"
  335. :title="boxData1[0].title">
  336. {{boxData1[0].title}}
  337. </NuxtLink>
  338. <p>
  339. <NuxtLink
  340. :href="getLinkPathDetail(boxData1[0])"
  341. :title="boxData1[0].title">
  342. {{boxData1[0].introduce}}
  343. </NuxtLink>
  344. </p>
  345. </div>
  346. </div>
  347. <div class="index—layer-3-news-body-main">
  348. <NuxtLink
  349. v-for="(item, index) in boxData1data2.slice(0, 5)"
  350. :href="getLinkPathDetail(item)"
  351. :title="item.title">
  352. <span>{{ item.title }}</span>
  353. <!-- <span>2026-01-06</span> -->
  354. </NuxtLink>
  355. </div>
  356. </div>
  357. <div v-if="indexTabs4 == 2" class="index—layer-3-news-body" >
  358. <div class="index—layer-3-news-body-title" v-if="boxData2.length !=0">
  359. <div class="news-body-left">
  360. <NuxtLink
  361. :href="getLinkPathDetail(boxData2[0])"
  362. :title="boxData2[0].title">
  363. <img :src="boxData2[0].imgurl"/>
  364. </NuxtLink>
  365. </div>
  366. <div class="news-body-right">
  367. <NuxtLink
  368. :href="getLinkPathDetail(boxData2[0])"
  369. :title="boxData2[0].title">
  370. {{boxData2[0].title}}
  371. </NuxtLink>
  372. <p>
  373. <NuxtLink
  374. :href="getLinkPathDetail(boxData2[0])"
  375. :title="boxData2[0].title">
  376. {{boxData2[0].introduce}}
  377. </NuxtLink>
  378. </p>
  379. </div>
  380. </div>
  381. <div class="index—layer-3-news-body-main">
  382. <NuxtLink
  383. v-for="(item, index) in boxData2data2.slice(0, 7)"
  384. :href="getLinkPathDetail(item)"
  385. :title="item.title">
  386. <span>{{ item.title }}</span>
  387. <!-- <span>2026-01-06</span> -->
  388. </NuxtLink>
  389. </div>
  390. </div>
  391. </div>
  392. <!--常规类型-->
  393. <div class="index—layer-3-news-box">
  394. <div class="index—layer-3-news-box-title">
  395. <div>
  396. <NuxtLink
  397. v-if="pageData[0].cid"
  398. :href="getLinkPath(pageData[0])"
  399. :title="pageData[0].alias" >
  400. {{pageData[0].title}}
  401. </NuxtLink>
  402. </div>
  403. </div>
  404. <div class="index—layer-3-news-body">
  405. <div class="index—layer-3-news-body-title" v-if="boxData1.length !=0">
  406. <div class="news-body-left">
  407. <NuxtLink
  408. :href="getLinkPathDetail(boxData1[0])"
  409. :title="boxData1[0].title">
  410. <img :src="boxData1[0].imgurl"/>
  411. </NuxtLink>
  412. </div>
  413. <div class="news-body-right">
  414. <NuxtLink
  415. :href="getLinkPathDetail(boxData1[0])"
  416. :title="boxData1[0].title">
  417. {{boxData1[0].title}}
  418. </NuxtLink>
  419. <p>
  420. <NuxtLink
  421. :href="getLinkPathDetail(boxData1[0])"
  422. :title="boxData1[0].title">
  423. {{boxData1[0].introduce}}
  424. </NuxtLink>
  425. </p>
  426. </div>
  427. </div>
  428. <div class="index—layer-3-news-body-main">
  429. <NuxtLink
  430. v-for="(item, index) in boxData1data2.slice(0, 7)"
  431. :href="getLinkPathDetail(item)"
  432. :title="item.title">
  433. <span>公证人员“三个特别”助力群众办好心头事</span>
  434. <!-- <span>2026-01-06</span> -->
  435. </NuxtLink>
  436. </div>
  437. </div>
  438. </div>
  439. <div class="index—layer-3-news-box">
  440. <div class="index—layer-3-news-box-title">
  441. <div>
  442. <NuxtLink
  443. v-if="pageData[1].cid"
  444. :href="getLinkPath(pageData[1])"
  445. :title="pageData[1].alias" >
  446. {{pageData[1].title}}
  447. </NuxtLink>
  448. </div>
  449. </div>
  450. <div class="index—layer-3-news-body" v-if="boxData2.length !=0">
  451. <div class="index—layer-3-news-body-title">
  452. <div class="news-body-left">
  453. <NuxtLink
  454. :href="getLinkPathDetail(boxData2[0])"
  455. :title="boxData2[0].title">
  456. <img :src="boxData2[0].imgurl"/>
  457. </NuxtLink>
  458. </div>
  459. <div class="news-body-right">
  460. <NuxtLink :href="getLinkPathDetail(boxData2[0])">
  461. {{boxData2[0].title}}
  462. </NuxtLink>
  463. <p>
  464. <NuxtLink :href="getLinkPathDetail(boxData2[0])">
  465. {{boxData2[0].introduce}}
  466. </NuxtLink>
  467. </p>
  468. </div>
  469. </div>
  470. <div class="index—layer-3-news-body-main">
  471. <NuxtLink
  472. v-for="(item, index) in boxData2data2.slice(0, 7)"
  473. :href="getLinkPathDetail(item)"
  474. :title="item.title">
  475. <span>{{ item.title }}</span>
  476. <!-- <span>2026-01-06</span> -->
  477. </NuxtLink>
  478. </div>
  479. </div>
  480. </div>
  481. </div>
  482. <div class="index—layer-3-line">
  483. <div class="index—layer-3-news-box">
  484. <div class="index—layer-3-news-box-title">
  485. <div>
  486. <NuxtLink
  487. v-if="pageData[0].cid"
  488. :href="getLinkPath(pageData[0])"
  489. :title="pageData[0].alias" >
  490. {{pageData[0].title}}
  491. </NuxtLink>
  492. </div>
  493. </div>
  494. <div class="index—layer-3-news-body">
  495. <div class="index—layer-3-news-body-title" v-if="boxData1.length !=0">
  496. <div class="news-body-left">
  497. <NuxtLink
  498. :href="getLinkPathDetail(boxData1[0])"
  499. :title="boxData1[0].title">
  500. <img :src="boxData1[0].imgurl"/>
  501. </NuxtLink>
  502. </div>
  503. <div class="news-body-right">
  504. <NuxtLink :href="getLinkPathDetail(boxData1[0])">
  505. {{boxData1[0].title}}
  506. </NuxtLink>
  507. <p>
  508. <NuxtLink :href="getLinkPathDetail(boxData1[0])">
  509. {{boxData1[0].introduce}}
  510. </NuxtLink>
  511. </p>
  512. </div>
  513. </div>
  514. <div class="index—layer-3-news-body-main">
  515. <NuxtLink
  516. v-for="(item, index) in boxData1data2.slice(0, 7)"
  517. :href="getLinkPathDetail(item)"
  518. :title="item.title">
  519. <span>{{ item.title }}</span>
  520. <!-- <span>2026-01-06</span> -->
  521. </NuxtLink>
  522. </div>
  523. </div>
  524. </div>
  525. <div class="index—layer-3-news-box">
  526. <div class="index—layer-3-news-box-title">
  527. <div>
  528. <NuxtLink
  529. v-if="pageData[1].cid"
  530. :href="getLinkPath(pageData[1])"
  531. :title="pageData[1].alias" >
  532. {{pageData[1].title}}
  533. </NuxtLink>
  534. </div>
  535. </div>
  536. <div class="index—layer-3-news-body">
  537. <div class="index—layer-3-news-body-title" v-if="boxData1.length !=0">
  538. <div class="news-body-left">
  539. <NuxtLink
  540. :href="getLinkPathDetail(boxData2[0])"
  541. :title="boxData2[0].title">
  542. <img :src="boxData2[0].imgurl"/>
  543. </NuxtLink>
  544. </div>
  545. <div class="news-body-right">
  546. <NuxtLink :href="getLinkPathDetail(boxData1[0])">
  547. {{boxData2[0].title}}
  548. </NuxtLink>
  549. <p>
  550. <NuxtLink :href="getLinkPathDetail(boxData1[0])">
  551. {{boxData2[0].introduce}}
  552. </NuxtLink>
  553. </p>
  554. </div>
  555. </div>
  556. <div class="index—layer-3-news-body-main">
  557. <NuxtLink
  558. v-for="(item, index) in boxData1data2.slice(0, 7)"
  559. :href="getLinkPathDetail(item)"
  560. :title="item.title">
  561. <span>{{ item.title }}</span>
  562. <!-- <span>2026-01-06</span> -->
  563. </NuxtLink>
  564. </div>
  565. </div>
  566. </div>
  567. <div class="index—layer-3-news-box">
  568. <div class="index—layer-3-news-box-title">
  569. <div>
  570. <NuxtLink
  571. v-if="pageData[0].cid"
  572. :href="getLinkPath(pageData[0])"
  573. :title="pageData[0].alias" >
  574. {{pageData[0].title}}
  575. </NuxtLink>
  576. </div>
  577. </div>
  578. <div class="index—layer-3-news-body">
  579. <div class="index—layer-3-news-body-title" v-if="boxData1.length !=0">
  580. <div class="news-body-left">
  581. <NuxtLink
  582. :href="getLinkPathDetail(boxData1[0])"
  583. :title="boxData1[0].title">
  584. <img :src="boxData1[0].imgurl"/>
  585. </NuxtLink>
  586. </div>
  587. <div class="news-body-right">
  588. <NuxtLink :href="getLinkPathDetail(boxData1[0])">
  589. {{boxData1[0].title}}
  590. </NuxtLink>
  591. <p>
  592. <NuxtLink :href="getLinkPathDetail(boxData1[0])">
  593. {{boxData1[0].introduce}}
  594. </NuxtLink>
  595. </p>
  596. </div>
  597. </div>
  598. <div class="index—layer-3-news-body-main">
  599. <NuxtLink
  600. v-for="(item, index) in boxData1data2.slice(0, 7)"
  601. :href="getLinkPathDetail(item)"
  602. :title="item.title">
  603. <span>{{ item.title }}</span>
  604. <!-- <span>2026-01-06</span> -->
  605. </NuxtLink>
  606. </div>
  607. </div>
  608. </div>
  609. </div>
  610. </div>
  611. <!--网友留言-->
  612. <div class="index-layer-4">
  613. <div class="index-layer-4-title">
  614. <NuxtLink to="/">
  615. 网友留言
  616. </NuxtLink>
  617. <NuxtLink to="/">
  618. 在线留言
  619. </NuxtLink>
  620. </div>
  621. <div class="index-layer-4-body">
  622. <ul class="post_nr liuyan">
  623. <li>
  624. <span class="name">熊先生:<b>网站名称问题</b> 2025-12-29 16:18:48</span>
  625. <p class="nr">内容:看你们的介绍,政讯通•全国法制调研中心,网站名称不让用全国,你们怎么可以用啊?</p>
  626. <p class="hfnr">
  627. <span style="color:#f00;">回复:</span>
  628. 工信部不审批带全国的网站。我们所有带全国字样的名称前都加了“政讯通”,意思是北京政讯通法律咨询有限公司在全国范围内开展的法制调研工作。网站显示没有全国字样,在文字资料或者口头表述时会有加全国,使用名称都是政讯通·全国法制资讯发布中心、政讯通•全国法制调研中心、政讯通•全国法制舆情监测中心和政讯通•全国法制发展促进中心。
  629. </p>
  630. </li>
  631. <li>
  632. <span class="name">zhang:<b>我从网上搜搜到你们这个网站,我看了下网站没看明白你们主要是做什么的?能简单介绍下吗?</b> 2025-12-26
  633. 17:43:46</span>
  634. <p class="nr">内容:我从网上搜搜到你们这个网站,我看了下网站没看明白你们主要是做什么的?能简单介绍下吗?</p>
  635. <p class="hfnr">
  636. <span style="color:#f00;">回复:</span>
  637. 不知道您看到的是我们的哪个网站,我们法制调研项目有200多个网站。主要业务分四大部分:
  638. 资讯与信息化业务:面向全国党政机关、企事业单位及相关经济组织发展法制信息化会员为主的网络资讯信息服务,提供200个网站资讯发布平台。同步为法制领域提供信息交流与沟通的平台,可以实现一对一、一对多和多对多的沟通交流。
  639. 法制与调研业务:依法开展法制领域的课题调研、法制宣传、法律援助、法律咨询和公益活动等服务。
  640. 舆情服务业务:面向全国法制党政机关、企事业单位等法人单位或组织依法提供网络舆情方面的监测、处理、公关等服务。
  641. 行业与发展业务:综合管理与辅助各地市级中心的运营、面向社会提供法制领域的活动策划与企业发展定制服务。
  642. </p>
  643. </li>
  644. </ul>
  645. </div>
  646. </div>
  647. <!--底部-->
  648. <HomeFoot></HomeFoot>
  649. </div>
  650. </template>
  651. <script setup>
  652. //页面是否已经加载完毕
  653. const pageLoading = ref(false)
  654. //1.加载页面必备组件 start---------------------------------------->
  655. import { ref, onMounted } from 'vue';
  656. import { ElRadio, ElRadioGroup, ElCheckbox, ElCheckboxGroup, ElMessage, ElInput } from 'element-plus';
  657. import { useSeoMeta } from '#imports';
  658. //格式化跳转路径 - 标题
  659. //首页分类栏目标题,不需要考虑外链
  660. const getLinkPath = (item) => {
  661. if (item.children_count == 0) {
  662. //return `/newsList/${item.cid}?page=1`;
  663. return `/${item.aLIas_pinyin}/list-1.html`;
  664. } else {
  665. //return `/primaryNavigation/${item.cid}`;
  666. return `/${item.aLIas_pinyin}/index.html`;
  667. }
  668. }
  669. //首页跳转到详情,这里需要考虑外链
  670. const getLinkPathDetail = (item) => {
  671. if (item.islink == 1) {
  672. return `${item.linkurl}`;
  673. } else {
  674. return `/${item.pinyin}/${item.id}.html`;
  675. }
  676. }
  677. //1.加载页面必备组件 end---------------------------------------->
  678. //2.交互方法 start---------------------------------------->
  679. //2.1 新闻图片切换
  680. const hoverStatus = ref(1)
  681. const qhPic = function (num) {
  682. hoverStatus.value = num;
  683. }
  684. //2.交互方法 end---------------------------------------->
  685. //3.页面基本信息 start---------------------------------------->
  686. //3.1 导航信息
  687. const pageData = ref([]);
  688. //3.2 模块数据
  689. //模块1
  690. const boxData1 = ref([])//图片新闻
  691. const boxData1data2 = ref([]);//文字新闻
  692. //模块2
  693. const boxData2 = ref([]);//图片新闻
  694. const boxData2data2 = ref([]);//文字新闻
  695. //模块3
  696. const boxData3 = ref([]);
  697. const boxData3data2 = ref([]);
  698. //模块4
  699. const boxData4 = ref([]);
  700. const boxData4data2 = ref([]);
  701. //模块5
  702. const boxData5 = ref([]);
  703. const boxData5data2 = ref([]);
  704. //模块6
  705. const boxData6 = ref([]);
  706. const boxData6data2 = ref([]);
  707. //模块7
  708. const boxData7 = ref([]);
  709. const boxData7data2 = ref([]);
  710. //模块9
  711. const boxData9 = ref([]);
  712. const boxData9data2 = ref([]);
  713. //模块12
  714. const boxData12 = ref([]);
  715. const boxData12data2 = ref([]);
  716. //模块14
  717. const boxData14 = ref([]);
  718. const boxData14data2 = ref([]);
  719. //模块19
  720. const boxData19 = ref([]);
  721. const boxData19data2 = ref([]);
  722. //3.3获得导航数据
  723. try {
  724. const navigateData = await requestDataPromise('/web/getWebsiteModelCategory', {
  725. method: 'GET',
  726. query: {
  727. 'placeid': 1,
  728. 'pid': 0,
  729. 'num': 30
  730. },
  731. });
  732. if (navigateData.code == 200) {
  733. // 遍历可用的导航池放到页面中
  734. for (let index in navigateData.data) {
  735. let data = {
  736. title: navigateData.data[index].name,
  737. cid: navigateData.data[index].category_id,
  738. children_count: navigateData.data[index].children_count,
  739. alias: navigateData.data[index].alias,
  740. aLIas_pinyin: navigateData.data[index].aLIas_pinyin
  741. };
  742. //1法制资讯
  743. if (navigateData.data[index].category_id == 1) { pageData.value[0] = data }
  744. //2各地动态
  745. if (navigateData.data[index].category_id == 2) { pageData.value[1] = data }
  746. //3特别关注
  747. if (navigateData.data[index].category_id == 3) { pageData.value[2] = data }
  748. //4媒体视点
  749. if (navigateData.data[index].category_id == 4) { pageData.value[3] = data }
  750. //7政策法规
  751. if (navigateData.data[index].category_id == 7) { pageData.value[6] = data }
  752. //9政策解读
  753. if (navigateData.data[index].category_id == 9) { pageData.value[8] = data }
  754. // 12执法在线
  755. if (navigateData.data[index].category_id == 12) { pageData.value[11] = data }
  756. // 14社会调硏
  757. if (navigateData.data[index].category_id == 14) { pageData.value[13] = data }
  758. // 19百家争鸣
  759. if (navigateData.data[index].category_id == 19) { pageData.value[18] = data }
  760. }
  761. }
  762. } catch (error) {
  763. }
  764. let getJson = [
  765. { "parent": "1,1,1", "child": "" },//模块1法制资讯
  766. { "parent": "2,1,1", "child": "" },//模块2各地动态
  767. { "parent": "3,1,1", "child": "" },//模块3特别关注
  768. { "parent": "4,1,1", "child": "" },//模块4媒体视点
  769. { "parent": "7,1,1", "child": "" },//模块7政策法规
  770. { "parent": "9,1,1", "child": "" },//模块9政策解读
  771. { "parent": "12,1,1", "child": "" },//模块12执法在线
  772. { "parent": "14,1,1", "child": "" },//模块14社会调硏
  773. { "parent": "19,1,1", "child": "" },//模块19百家争鸣
  774. ]
  775. let jsonString = JSON.stringify(getJson);
  776. async function getPageAllData() {
  777. const mkdata = await requestDataPromise('/web/getWebsiteAllArticle', {
  778. method: 'GET',
  779. query: {
  780. 'id': jsonString
  781. },
  782. });
  783. console.log("makdata:", mkdata);
  784. if (mkdata.code == 200) {
  785. //模块1法制资讯
  786. boxData1.value = mkdata.data[0].imgnum;
  787. boxData1data2.value = mkdata.data[0].textnum;
  788. //模块2各地动态
  789. boxData2.value = mkdata.data[1].imgnum;
  790. boxData2data2.value = mkdata.data[1].textnum;
  791. //模块3特别关注
  792. boxData3.value = mkdata.data[2].imgnum;
  793. boxData3data2.value = mkdata.data[2].textnum;
  794. //模块4媒体视点
  795. boxData4.value = mkdata.data[3].imgnum;
  796. boxData4data2.value = mkdata.data[3].textnum;
  797. //模块7政策法规
  798. boxData7.value = mkdata.data[6].imgnum;
  799. boxData7data2.value = mkdata.data[6].textnum;
  800. //模块9政策解读
  801. boxData9.value = mkdata.data[8].imgnum;
  802. boxData9data2.value = mkdata.data[8].textnum;
  803. //模块12执法在线
  804. boxData12.value = mkdata.data[11].imgnum;
  805. boxData12data2.value = mkdata.data[11].textnum;
  806. //模块14社会调硏
  807. boxData14.value = mkdata.data[13].imgnum;
  808. boxData14data2.value = mkdata.data[13].textnum;
  809. //模块19百家争鸣
  810. boxData19.value = mkdata.data[18].imgnum;
  811. boxData19data2.value = mkdata.data[18].textnum;
  812. } else {
  813. ElMessage.error(mkdata.message)
  814. }
  815. }
  816. getPageAllData();
  817. //5.页面基本信息 end---------------------------------------->
  818. //6.设置seo数据 start---------------------------------------->
  819. //获取seo数据
  820. const setData = await requestDataPromise('/web/getWebsiteFootInfo', {
  821. method: 'GET',
  822. query: {},
  823. });
  824. if (setData.code == 200) {
  825. let seoTitle = setData.data.website_head.title;
  826. let seoDescription = setData.data.website_head.description;
  827. let seoKeywords = setData.data.website_head.keywords;
  828. let seoSuffix = setData.data.website_head.suffix;
  829. let seoName = setData.data.website_head.website_name;
  830. useSeoMeta({
  831. title: seoTitle + "_" + seoSuffix,
  832. meta: [
  833. { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  834. { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  835. { name: 'viewport', content: "width=device-width,initial-scale=1,user-scalable=no" }
  836. ]
  837. });
  838. }
  839. //6.设置seo数据 start---------------------------------------->
  840. //7.官网新增 start---------------------------------------->
  841. //swiper焦点图start---------------------------------------->
  842. const imagelist = ref("")
  843. async function getModelData1() {
  844. const mkdata = await requestDataPromise('/web/getWebsiteArticlett', {
  845. method: 'GET',
  846. query: {
  847. 'imgnum': 10,
  848. 'textnum': 0,
  849. 'level': 2,
  850. 'placeid': 0,
  851. 'id': ''
  852. },
  853. });
  854. if (mkdata.code == 200) {
  855. imagelist.value = mkdata.data.img;
  856. } else {
  857. }
  858. }
  859. getModelData1()
  860. //使用swiper
  861. import { computed } from 'vue'
  862. import { Swiper, SwiperSlide } from 'swiper/vue'
  863. import { Autoplay, Navigation } from 'swiper/modules' // 增加 Navigation
  864. // 导入 Swiper 样式
  865. import 'swiper/css'
  866. import 'swiper/css/navigation' // 增加导航样式
  867. const props = defineProps({
  868. imagelist: {
  869. type: Array,
  870. default: () => []
  871. }
  872. })
  873. const emit = defineEmits(['slide-change'])
  874. const swiperCurrentIndex = ref(0)
  875. const swiperInstance = ref(null)
  876. // 使用哪些模块
  877. const modules = [Autoplay, Navigation] // 添加 Navigation
  878. // 响应式断点设置(可选)
  879. const breakpoints = computed(() => ({
  880. // 当屏幕宽度 >= 320px
  881. 320: {
  882. slidesPerView: 1,
  883. spaceBetween: 10
  884. },
  885. // 当屏幕宽度 >= 768px
  886. 768: {
  887. slidesPerView: 3,
  888. spaceBetween: 15
  889. },
  890. // 当屏幕宽度 >= 1024px
  891. 1024: {
  892. slidesPerView: 5,
  893. spaceBetween: 20
  894. },
  895. // 当屏幕宽度 >= 1440px
  896. 1440: {
  897. slidesPerView: 6,
  898. spaceBetween: 25
  899. }
  900. }))
  901. const swiperHandleSlideChange = (swiper) => {
  902. swiperCurrentIndex.value = swiper.activeIndex
  903. emit('swiperSlideChange', swiper.activeIndex)
  904. }
  905. const goToSlide = (index) => {
  906. console.log(index)
  907. if (swiperInstance.value) {
  908. swiperInstance.value.slideTo(index, 500) // 500ms 动画时间
  909. }
  910. }
  911. const onSwiper = (swiper) => {
  912. swiperInstance.value = swiper
  913. console.log('Swiper实例已初始化:', swiper)
  914. }
  915. // 如果需要手动控制自动播放
  916. const pauseAutoplay = () => {
  917. if (swiperInstance.value && swiperInstance.value.autoplay) {
  918. swiperInstance.value.autoplay.pause()
  919. }
  920. }
  921. const startAutoplay = () => {
  922. if (swiperInstance.value && swiperInstance.value.autoplay) {
  923. swiperInstance.value.autoplay.resume()
  924. }
  925. }
  926. //swiper焦点图 end---------------------------------------->
  927. //轮播图 start---------------------------------------->
  928. import { ElCarousel, ElCarouselItem } from 'element-plus'
  929. let currentIndex = ref(0)
  930. let handleIndicatorChange = (val) => {
  931. currentIndex.value = val
  932. }
  933. //轮播图 end---------------------------------------->
  934. //选项卡 start---------------------------------------->
  935. //1.首页顶部新闻-中央选项卡
  936. const indexTabs = ref(1)
  937. //2.首页中央新闻2-左侧选项卡
  938. const indexTabs2 = ref(1)
  939. //3.首页中央新闻2-右侧选项卡
  940. const indexTabs3 = ref(1)
  941. //3.首页中央新闻3-左侧选项卡
  942. const indexTabs4 = ref(1)
  943. //选项卡 end---------------------------------------->
  944. //7.官网新增 end---------------------------------------->
  945. </script>
  946. <style lang="less" scoped>
  947. @media screen and (min-width: 1401px) {
  948. //swiper轮播图 start---------------------------------------->
  949. .swiper-container {
  950. width: 100%;
  951. padding: 20PX 0;
  952. position: relative;
  953. max-width: 1400PX;
  954. margin: 0 auto;
  955. }
  956. .custom-swiper {
  957. width: 100%;
  958. height: 100%;
  959. padding: 10PX 5PX; //给两侧留出空间
  960. }
  961. .custom-swiper :deep(.swiper-wrapper) {
  962. align-items: stretch; //使所有幻灯片高度一致
  963. }
  964. .custom-swiper :deep(.swiper-slide) {
  965. height: auto;
  966. transition: transform 0.3s ease;
  967. }
  968. //悬停效果
  969. .custom-swiper :deep(.swiper-slide:hover) {
  970. transform: translateY(-5PX);
  971. z-index: 10;
  972. }
  973. .slide-link {
  974. display: block;
  975. text-decoration: none;
  976. color: inherit;
  977. height: 100%;
  978. width: 100%;
  979. }
  980. .image-container {
  981. position: relative;
  982. width: 100%;
  983. height: 118PX; //根据需求调整
  984. overflow: hidden;
  985. box-shadow: 0 4PX 12PX rgba(0, 0, 0, 0.1);
  986. transition: all 0.3s ease;
  987. background: #f5f5f5; //加载时的背景色
  988. }
  989. .image-container:hover {
  990. box-shadow: 0 8PX 24PX rgba(0, 0, 0, 0.15);
  991. }
  992. .slide-image {
  993. // width: 100%;
  994. // height: 100%;
  995. width: 264PX;
  996. height: 118PX;
  997. object-fit: cover;
  998. transition: transform 0.5s ease;
  999. }
  1000. .image-container:hover .slide-image {
  1001. transform: scale(1.05);
  1002. }
  1003. .image-title {
  1004. position: absolute;
  1005. bottom: 0;
  1006. left: 0;
  1007. right: 0;
  1008. color: white;
  1009. padding: 12PX 15PX;
  1010. font-size: 14PX;
  1011. line-height: 1.4;
  1012. text-align: center;
  1013. overflow: hidden;
  1014. text-overflow: ellipsis;
  1015. white-space: nowrap;
  1016. background: rgba(0, 0, 0, .6)
  1017. }
  1018. .custom-indicators {
  1019. display: flex;
  1020. justify-content: center;
  1021. gap: 8PX;
  1022. margin-top: 25PX;
  1023. padding: 15PX 10PX;
  1024. flex-wrap: wrap;
  1025. background: rgba(255, 255, 255, 0.9);
  1026. border-radius: 50PX;
  1027. max-width: 90%;
  1028. margin-left: auto;
  1029. margin-right: auto;
  1030. }
  1031. .indicator-btn {
  1032. width: 36PX;
  1033. height: 36PX;
  1034. border-radius: 50%;
  1035. border: 2PX solid #e0e0e0;
  1036. background: white;
  1037. color: #333;
  1038. cursor: pointer;
  1039. transition: all 0.3s ease;
  1040. font-size: 14PX;
  1041. font-weight: 500;
  1042. display: flex;
  1043. align-items: center;
  1044. justify-content: center;
  1045. outline: none;
  1046. }
  1047. .indicator-btn:hover {
  1048. background: #f0f9ff;
  1049. border-color: #409eff;
  1050. transform: scale(1.1);
  1051. }
  1052. .indicator-btn.active-indicator {
  1053. background: #409eff;
  1054. color: white;
  1055. border-color: #409eff;
  1056. box-shadow: 0 4PX 12PX rgba(64, 158, 255, 0.3);
  1057. }
  1058. //swiper加载动画
  1059. .image-container:empty::before {
  1060. content: '';
  1061. position: absolute;
  1062. top: 0;
  1063. left: 0;
  1064. width: 100%;
  1065. height: 100%;
  1066. background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  1067. background-size: 200% 100%;
  1068. animation: loading 1.5s infinite;
  1069. border-radius: 12PX;
  1070. }
  1071. @keyframes loading {
  1072. 0% {
  1073. background-position: 200% 0;
  1074. }
  1075. 100% {
  1076. background-position: -200% 0;
  1077. }
  1078. }
  1079. //swiper箭头颜色
  1080. .custom-swiper :deep(.swiper-button-prev),
  1081. .custom-swiper :deep(.swiper-button-next) {
  1082. color: white !important; //箭头颜色改为白色
  1083. }
  1084. .custom-swiper :deep(.swiper-button-prev):after,
  1085. .custom-swiper :deep(.swiper-button-next):after {
  1086. color: white !important; //确保箭头图标也是白色
  1087. }
  1088. //swiper轮播图 end---------------------------------------->
  1089. //轮播图 start---------------------------------------->
  1090. .nuxt-swiper {
  1091. width: 100%;
  1092. height: 300PX;
  1093. position: relative;
  1094. img {
  1095. width: 100%;
  1096. height: 300PX;
  1097. }
  1098. span {
  1099. display: inline-block;
  1100. width: 100%;
  1101. height: 40PX;
  1102. line-height: 40PX;
  1103. padding-left: 20PX;
  1104. box-sizing: border-box;
  1105. position: absolute;
  1106. bottom: 0;
  1107. left: 0;
  1108. font-family: Source Han Sans, Source Han Sans;
  1109. font-size: 16PX;
  1110. color: #FFFFFF;
  1111. //background: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
  1112. background: rgba(0, 0, 0, .6);
  1113. }
  1114. }
  1115. .el-carousel {
  1116. // 左右箭头按钮
  1117. .el-carousel__arrow--right :deep(.class-name),
  1118. .el-carousel__arrow--left :deep(.class-name) {
  1119. width: 68PX;
  1120. height: 68PX;
  1121. }
  1122. //左右箭头图片
  1123. /deep/.el-icon svg {
  1124. height: 1em;
  1125. width: 1em;
  1126. background-color: transparent;
  1127. }
  1128. /deep/.el-carousel__arrow {
  1129. border-radius: 0;
  1130. background-color: transparent;
  1131. }
  1132. /deep/.el-carousel__arrow i {
  1133. font-size: 68PX !important;
  1134. }
  1135. /deep/ .el-carousel__indicators {
  1136. // 指示器
  1137. left: unset;
  1138. transform: unset;
  1139. right: 41%;
  1140. }
  1141. /deep/ .el-carousel__button {
  1142. // 指示器按钮
  1143. width: 15PX;
  1144. height: 15PX;
  1145. border-radius: 50%;
  1146. border: none;
  1147. opacity: 1;
  1148. background-color: #FFFFFF;
  1149. bottom: 30PX;
  1150. }
  1151. /deep/ .is-active .el-carousel__button {
  1152. // 指示器激活按钮
  1153. background: #158d91;
  1154. }
  1155. /deep/.custom-indicators {
  1156. position: absolute;
  1157. bottom: 10PX;
  1158. left: 50%;
  1159. transform: translateX(-50%);
  1160. }
  1161. /deep/ .el-carousel__indicators {
  1162. right: 3%;
  1163. bottom: 10%;
  1164. }
  1165. /deep/ .el-carousel__arrow {
  1166. top: 50%;
  1167. }
  1168. }
  1169. //轮播图 end---------------------------------------->
  1170. //第一层 start---------------------------------------->
  1171. .index—layer-1 {
  1172. width: 1400PX;
  1173. height: auto;
  1174. overflow: hidden;
  1175. margin: 20PX auto;
  1176. display: flex;
  1177. align-items: flex-start;
  1178. justify-content: space-between;
  1179. .index—layer-1-left {
  1180. width: 31%;
  1181. border: 1PX solid #ccc;
  1182. }
  1183. .index-layer-1-middle {
  1184. width: 31%;
  1185. border: 1PX solid #ccc;
  1186. box-sizing: border-box;
  1187. padding: 0 10PX;
  1188. padding-bottom: 5PX;
  1189. .tabtlt {
  1190. width: 100%;
  1191. height: auto;
  1192. outline: hidden;
  1193. border-bottom: 1PX solid #f0f0f0;
  1194. margin: 7PX 0 18PX;
  1195. overflow: hidden;
  1196. display: flex;
  1197. align-self: center;
  1198. justify-content: space-between;
  1199. a {
  1200. color: #337ab7;
  1201. text-decoration: none;
  1202. }
  1203. div {
  1204. width: 50%;
  1205. text-align: center;
  1206. width: 100%;
  1207. height: 50PX;
  1208. line-height: 50PX;
  1209. font-size: 20PX;
  1210. color: #000;
  1211. background: #f3f3f3;
  1212. text-align: center;
  1213. cursor: pointer;
  1214. }
  1215. div.intabtltbg {
  1216. background: url(public/index/current.gif) no-repeat center bottom !important;
  1217. }
  1218. }
  1219. .coninfoitem {
  1220. width: 100%;
  1221. overflow: hidden;
  1222. margin: 0PX auto;
  1223. >div {
  1224. &.coninfoitem_img {
  1225. height: 86PX;
  1226. overflow: hidden;
  1227. margin-bottom: 5PX;
  1228. display: flex;
  1229. align-items: flex-start;
  1230. justify-content: space-between;
  1231. }
  1232. &.coninfoitem_img {
  1233. a{
  1234. }
  1235. }
  1236. h3 {
  1237. line-height: 0;
  1238. a {
  1239. font-size: 13PX;
  1240. color: #333;
  1241. font-weight: bold;
  1242. width: 100%;
  1243. height: 26PX;
  1244. line-height: 26PX;
  1245. overflow: hidden;
  1246. }
  1247. }
  1248. img {
  1249. width: 120PX;
  1250. height: 86PX;
  1251. float: left;
  1252. margin-right: 11PX;
  1253. }
  1254. p {
  1255. line-height: 0;
  1256. a {
  1257. color: #333;
  1258. font-size: 13PX;
  1259. line-height: 20PX;
  1260. }
  1261. }
  1262. }
  1263. .coninfoitem_title {
  1264. width: 100%;
  1265. height: 28PX;
  1266. line-height: 28PX;
  1267. overflow: hidden;
  1268. position: relative;
  1269. list-style-position: inside;
  1270. color: #000;
  1271. display: block;
  1272. font-size: 13PX;
  1273. display: flex;
  1274. align-items: center;
  1275. justify-content: space-between;
  1276. span:nth-child(1) {
  1277. width: 70%;
  1278. height: 28PX;
  1279. text-align: left;
  1280. overflow: hidden;
  1281. display: block;
  1282. font-size: 14PX;
  1283. }
  1284. span:nth-child(2) {
  1285. width: 30%;
  1286. height: 28PX;
  1287. text-align: right;
  1288. display: block;
  1289. font-size: 12PX;
  1290. }
  1291. }
  1292. }
  1293. }
  1294. .index-layer-1-right {
  1295. width: 31%;
  1296. border: 1PX solid #ccc;
  1297. box-sizing: border-box;
  1298. padding: 0 10PX;
  1299. padding-bottom: 16PX;
  1300. .imgtlt {
  1301. width: 100%;
  1302. height: 43PX;
  1303. border-bottom: 1PX solid #e7e7e7;
  1304. a {
  1305. display: block;
  1306. width: 92PX;
  1307. height: 42PX;
  1308. line-height: 42PX;
  1309. text-align: center;
  1310. font-size: 20PX;
  1311. color: #333;
  1312. border-bottom: 2PX solid #158d91;
  1313. }
  1314. }
  1315. .con_img_list {
  1316. display: flex;
  1317. flex-wrap: wrap;
  1318. a {
  1319. width: 48%;
  1320. float: left;
  1321. overflow: hidden;
  1322. height: 100PX;
  1323. margin: 20PX auto 0;
  1324. display: block;
  1325. position: relative;
  1326. img {
  1327. display: block;
  1328. width: 100%;
  1329. height: 100%;
  1330. }
  1331. .con_img_list_rgba {
  1332. position: absolute;
  1333. width: 100%;
  1334. height: 22PX;
  1335. line-height: 21PX;
  1336. box-sizing: border-box;
  1337. padding: 0PX 10PX;
  1338. text-align: center;
  1339. bottom: 0PX;
  1340. left: 0PX;
  1341. color: #fff;
  1342. font-size: 16PX;
  1343. z-index: 11;
  1344. background: rgba(0, 0, 0, .6);
  1345. display: block;
  1346. word-break: keep-all;
  1347. white-space: nowrap;
  1348. overflow: hidden;
  1349. text-overflow: ellipsis;
  1350. }
  1351. }
  1352. }
  1353. }
  1354. }
  1355. //第一层 end---------------------------------------->
  1356. //第二层 start---------------------------------------->
  1357. .index—layer-2 {
  1358. width: 1400PX;
  1359. height: auto;
  1360. overflow: hidden;
  1361. margin: 20PX auto;
  1362. display: flex;
  1363. align-items: flex-start;
  1364. justify-content: space-between;
  1365. .index—layer-2-left,
  1366. .index—layer-2-right {
  1367. width: 49%;
  1368. border: 1PX solid #ddd;
  1369. height: auto;
  1370. overflow: hidden;
  1371. .index—layer-2-title {
  1372. display: flex;
  1373. align-items: center;
  1374. justify-content: flex-start;
  1375. background: #fff;
  1376. >div {
  1377. &.active {
  1378. background: #158d91;
  1379. color: #fff;
  1380. a {
  1381. color: #fff;
  1382. }
  1383. }
  1384. width: 118PX;
  1385. height: 44PX;
  1386. line-height: 44PX;
  1387. background: #fff;
  1388. text-align: center;
  1389. color: #808080;
  1390. font-size: 16PX;
  1391. font-weight: bold;
  1392. border-bottom: 2PX solid #158d91;
  1393. a {
  1394. font-size: 20PX;
  1395. color: #808080;
  1396. }
  1397. }
  1398. }
  1399. .index-tabs2-top {
  1400. background: #f8f8f8;
  1401. padding: 20PX 20PX;
  1402. box-sizing: border-box;
  1403. display: flex;
  1404. border-bottom: 1PX dashed #ddd;
  1405. >a {
  1406. margin-right: 11PX;
  1407. img {
  1408. display: block;
  1409. width: 120PX;
  1410. height: 86PX;
  1411. }
  1412. }
  1413. h3 {
  1414. width: 100%;
  1415. height: 26PX;
  1416. line-height: 26PX;
  1417. overflow: hidden;
  1418. a {
  1419. font-size: 13PX;
  1420. color: #333;
  1421. font-weight: bold;
  1422. }
  1423. }
  1424. p {
  1425. width: 100%;
  1426. height: 60PX;
  1427. line-height: 20PX;
  1428. overflow: hidden;
  1429. a {
  1430. color: #333;
  1431. font-size: 13PX;
  1432. }
  1433. }
  1434. }
  1435. .index-tabs2-bottom {
  1436. padding: 20PX;
  1437. margin: 0;
  1438. a {
  1439. display: block;
  1440. width: 100%;
  1441. overflow: hidden;
  1442. position: relative;
  1443. list-style-position: inside;
  1444. color: #333;
  1445. line-height: 28PX;
  1446. display: flex;
  1447. align-items: center;
  1448. justify-content: space-between;
  1449. span:nth-child(1) {
  1450. width: 70%;
  1451. height: 28PX;
  1452. text-align: left;
  1453. overflow: hidden;
  1454. display: block;
  1455. font-size: 14PX;
  1456. }
  1457. span:nth-child(2) {
  1458. width: 30%;
  1459. height: 28PX;
  1460. text-align: right;
  1461. display: block;
  1462. font-size: 12PX;
  1463. }
  1464. }
  1465. }
  1466. }
  1467. }
  1468. //第二层 end---------------------------------------->
  1469. //第三层 start---------------------------------------->
  1470. .index—layer-3 {
  1471. .index—layer-3-line {
  1472. width: 1400PX;
  1473. display: flex;
  1474. // align-items: center;
  1475. justify-content: space-between;
  1476. margin: 0 auto;
  1477. box-sizing: border-box;
  1478. //选项卡类型
  1479. .index—layer-3-tabs-box {
  1480. width: 31%;
  1481. height: auto;
  1482. border: 1PX solid #ddd;
  1483. border-top: 2PX solid #158d91;
  1484. margin: 1%;
  1485. padding: 0 10PX;
  1486. box-sizing: border-box;
  1487. .index—layer-3-tabs-box-title {
  1488. display: flex;
  1489. align-items: center;
  1490. width: 100%;
  1491. border-bottom: 1PX solid #f0f0f0;
  1492. >div {
  1493. &.active {
  1494. background: url(../public/index/current2.png) no-repeat center bottom;
  1495. }
  1496. width: 87PX;
  1497. height: 54PX;
  1498. line-height: 55PX;
  1499. overflow: hidden;
  1500. float: left;
  1501. margin-right: 10PX;
  1502. text-align: center;
  1503. font-size: 20PX;
  1504. color: #333;
  1505. font-weight: bold;
  1506. a {
  1507. color: #333;
  1508. }
  1509. }
  1510. }
  1511. .index—layer-3-news-body-main {
  1512. margin-bottom: 20PX;
  1513. a {
  1514. width: 100%;
  1515. height: 26PX;
  1516. line-height: 26PX;
  1517. list-style-position: inside;
  1518. font-size: 13PX;
  1519. color: #333;
  1520. display: flex;
  1521. align-items: center;
  1522. justify-content: space-between;
  1523. span:nth-child(1) {
  1524. width: 70%;
  1525. height: 28PX;
  1526. text-align: left;
  1527. overflow: hidden;
  1528. display: block;
  1529. font-size: 14PX;
  1530. }
  1531. span:nth-child(2) {
  1532. width: 30%;
  1533. height: 28PX;
  1534. text-align: right;
  1535. display: block;
  1536. font-size: 12PX;
  1537. }
  1538. }
  1539. }
  1540. }
  1541. //常规类型
  1542. .index—layer-3-news-box {
  1543. width: 31%;
  1544. height: auto;
  1545. border: 1PX solid #ddd;
  1546. border-top: 2PX solid #158d91;
  1547. margin: 1%;
  1548. padding: 0 10PX;
  1549. box-sizing: border-box;
  1550. .index—layer-3-news-box-title {
  1551. display: flex;
  1552. align-items: center;
  1553. width: 100%;
  1554. border-bottom: 1PX solid #f0f0f0;
  1555. >div {
  1556. &.active {
  1557. background: url(../public/index/current2.png) no-repeat center bottom;
  1558. }
  1559. width: 87PX;
  1560. height: 54PX;
  1561. line-height: 55PX;
  1562. overflow: hidden;
  1563. float: left;
  1564. margin-right: 10PX;
  1565. text-align: center;
  1566. font-size: 20PX;
  1567. color: #333;
  1568. font-weight: bold;
  1569. a {
  1570. color: #333;
  1571. }
  1572. }
  1573. }
  1574. .index—layer-3-news-body-main {
  1575. margin-bottom: 20PX;
  1576. a {
  1577. width: 100%;
  1578. height: 26PX;
  1579. line-height: 26PX;
  1580. list-style-position: inside;
  1581. font-size: 13PX;
  1582. color: #333;
  1583. display: flex;
  1584. align-items: center;
  1585. justify-items: center;
  1586. span:nth-child(1) {
  1587. width: 70%;
  1588. height: 28PX;
  1589. text-align: left;
  1590. overflow: hidden;
  1591. display: block;
  1592. font-size: 14PX;
  1593. }
  1594. span:nth-child(2) {
  1595. width: 30%;
  1596. height: 28PX;
  1597. text-align: right;
  1598. display: block;
  1599. font-size: 12PX;
  1600. }
  1601. }
  1602. }
  1603. }
  1604. }
  1605. .index—layer-3-news-body-title {
  1606. display: flex;
  1607. align-items: center;
  1608. justify-content: flex-start;
  1609. margin: 20PX 0 14PX;
  1610. padding-bottom: 20PX;
  1611. border-bottom: 1PX dashed #e1e1e1;
  1612. >div {
  1613. &.news-body-left {
  1614. margin-right: 11PX;
  1615. img {
  1616. display: block;
  1617. width: 120PX;
  1618. height: 86PX;
  1619. }
  1620. }
  1621. &.news-body-right {
  1622. >a {
  1623. display: block;
  1624. width: 100%;
  1625. height: 40PX;
  1626. line-height: 40PX;
  1627. font-size: 16PX;
  1628. font-weight: bold;
  1629. overflow: hidden;
  1630. color: #000;
  1631. text-decoration: none;
  1632. }
  1633. p {
  1634. width: 100%;
  1635. height: 46PX;
  1636. line-height: 23PX;
  1637. overflow: hidden;
  1638. font-size: 14PX;
  1639. color: #333;
  1640. a {
  1641. color: #333;
  1642. }
  1643. }
  1644. }
  1645. }
  1646. }
  1647. }
  1648. //第三层 end---------------------------------------->
  1649. //第四层 start---------------------------------------->
  1650. .index-layer-4 {
  1651. width: 1400PX;
  1652. border: 1PX solid #ccc;
  1653. border-radius: 20PX;
  1654. padding: 10PX 20PX;
  1655. box-sizing: border-box;
  1656. margin: 20PX auto;
  1657. .index-layer-4-title {
  1658. display: flex;
  1659. align-items: center;
  1660. justify-content: space-between;
  1661. width: 100%;
  1662. height: 40PX;
  1663. line-height: 40PX;
  1664. border-bottom: 1PX solid #ccc;
  1665. a {
  1666. &:first-child {
  1667. font-size: 22PX;
  1668. color: #1476bd;
  1669. }
  1670. &:last-child {
  1671. font-size: 16PX;
  1672. color: #f00;
  1673. border: none;
  1674. float: right;
  1675. }
  1676. display: block;
  1677. }
  1678. }
  1679. .index-layer-4-body {
  1680. .post_nr {
  1681. width: 100%;
  1682. height: auto;
  1683. margin: 20PX auto;
  1684. border: 1PX solid #ccc;
  1685. border-radius: 10PX;
  1686. padding: 20PX !important;
  1687. box-sizing: border-box;
  1688. .name {
  1689. display: block;
  1690. width: 100%;
  1691. height: auto;
  1692. line-height: 40PX;
  1693. font-size: 16PX;
  1694. color: #333;
  1695. }
  1696. b {
  1697. font-size: 17PX;
  1698. margin: 0 10PX;
  1699. }
  1700. li {
  1701. border-bottom: 1PX solid #ccc;
  1702. padding-bottom: 15PX;
  1703. margin-bottom: 10PX;
  1704. box-sizing: border-box;
  1705. p {
  1706. margin: 0;
  1707. height: auto;
  1708. line-height: 25PX;
  1709. font-size: 15PX;
  1710. color: #000;
  1711. &.hfnr {
  1712. font-weight: bold;
  1713. span {
  1714. color: #f00;
  1715. }
  1716. }
  1717. }
  1718. }
  1719. }
  1720. }
  1721. }
  1722. //第四层 end---------------------------------------->
  1723. }
  1724. .index—layer-1 .index-layer-1-middle .coninfoitem > div.coninfoitem_img{display:block!important;}
  1725. .index—layer-1 .index-layer-1-middle .coninfoitem .coninfoitem_title{
  1726. display:block!important;width:100%!important;overflow:hidden!important;height:auto!important;}
  1727. .index—layer-1 .index-layer-1-middle .coninfoitem > div img{height:85PX!important;}
  1728. .index—layer-1 .index-layer-1-middle .coninfoitem .coninfoitem_title img{height:85PX!important;width: 120PX;
  1729. height: 86PX;
  1730. float: left;
  1731. margin-right: 11PX;}
  1732. .index—layer-1 .index-layer-1-middle .coninfoitem > div h3{display:block;height: 26PX;line-height: 26PX;overflow: hidden;font-size: 14PX;color: #333;font-weight: bold;
  1733. display:block;word-break: keep-all; white-space: nowrap;overflow:hidden;text-overflow:ellipsis;
  1734. }
  1735. .index—layer-1 .index-layer-1-middle .coninfoitem > div p{display:block;color: #333;font-size: 14PX;height: 60PX;line-height: 20PX;overflow: hidden;
  1736. overflow:hidden;display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:3;
  1737. }
  1738. .index—layer-1 .index-layer-1-middle .coninfoitem .coninfoitem_title .coninfoitem_img_text{}
  1739. .index—layer-1 .index-layer-1-right .con_img_list a:nth-of-type(odd){float:left;}
  1740. .index—layer-1 .index-layer-1-right .con_img_list a:nth-of-type(even){float:right;}
  1741. .index—layer-1 .index-layer-1-right .con_img_list{display:block;}
  1742. .index—layer-2 .index—layer-2-left .index-tabs2-top h3 a, .index—layer-2 .index—layer-2-right .index-tabs2-top h3 a{line-height:26PX;height:26PX;display:block;}
  1743. @media screen and (min-width: 801px) and (max-width: 1400px) {
  1744. //swiper轮播图 start---------------------------------------->
  1745. .swiper-container {
  1746. width: 100%;
  1747. padding: 20PX 0;
  1748. position: relative;
  1749. margin: 0 auto;
  1750. box-sizing: border-box;
  1751. }
  1752. .custom-swiper {
  1753. width: 100%;
  1754. height: 100%;
  1755. padding: 10px 5px; //给两侧留出空间
  1756. box-sizing: border-box;
  1757. }
  1758. .custom-swiper :deep(.swiper-wrapper) {
  1759. align-items: stretch; //使所有幻灯片高度一致
  1760. }
  1761. .custom-swiper :deep(.swiper-slide) {
  1762. height: auto;
  1763. transition: transform 0.3s ease;
  1764. }
  1765. //悬停效果
  1766. .custom-swiper :deep(.swiper-slide:hover) {
  1767. transform: translateY(-5px);
  1768. z-index: 10;
  1769. }
  1770. .slide-link {
  1771. display: block;
  1772. text-decoration: none;
  1773. color: inherit;
  1774. height: 100%;
  1775. width: 100%;
  1776. }
  1777. .image-container {
  1778. position: relative;
  1779. width: 100%;
  1780. height: 120PX; //根据需求调整
  1781. overflow: hidden;
  1782. box-shadow: 0 4PX 12PX rgba(0, 0, 0, 0.1);
  1783. transition: all 0.3s ease;
  1784. background: #f5f5f5; //加载时的背景色
  1785. }
  1786. .image-container:hover {
  1787. box-shadow: 0 8PX 24PX rgba(0, 0, 0, 0.15);
  1788. }
  1789. .slide-image {
  1790. // width: 100%;
  1791. // height: 100%;
  1792. width: 264PX;
  1793. height: 118PX;
  1794. object-fit: cover;
  1795. transition: transform 0.5s ease;
  1796. }
  1797. .image-container:hover .slide-image {
  1798. transform: scale(1.05);
  1799. }
  1800. .image-title {
  1801. position: absolute;
  1802. bottom: 0;
  1803. left: 0;
  1804. right: 0;
  1805. color: white;
  1806. padding: 12PX 15PX;
  1807. font-size: 14PX;
  1808. line-height: 1.4;
  1809. text-align: center;
  1810. overflow: hidden;
  1811. text-overflow: ellipsis;
  1812. white-space: nowrap;
  1813. background: rgba(0, 0, 0, .6)
  1814. }
  1815. .custom-indicators {
  1816. display: flex;
  1817. justify-content: center;
  1818. gap: 8PX;
  1819. margin-top: 25PX;
  1820. padding: 15PX 10PX;
  1821. flex-wrap: wrap;
  1822. background: rgba(255, 255, 255, 0.9);
  1823. border-radius: 50PX;
  1824. max-width: 90%;
  1825. margin-left: auto;
  1826. margin-right: auto;
  1827. }
  1828. .indicator-btn {
  1829. width: 36PX;
  1830. height: 36PX;
  1831. border-radius: 50%;
  1832. border: 2PX solid #e0e0e0;
  1833. background: white;
  1834. color: #333;
  1835. cursor: pointer;
  1836. transition: all 0.3s ease;
  1837. font-size: 14PX;
  1838. font-weight: 500;
  1839. display: flex;
  1840. align-items: center;
  1841. justify-content: center;
  1842. outline: none;
  1843. }
  1844. .indicator-btn:hover {
  1845. background: #f0f9ff;
  1846. border-color: #409eff;
  1847. transform: scale(1.1);
  1848. }
  1849. .indicator-btn.active-indicator {
  1850. background: #409eff;
  1851. color: white;
  1852. border-color: #409eff;
  1853. box-shadow: 0 4PX 12PX rgba(64, 158, 255, 0.3);
  1854. }
  1855. //swiper加载动画
  1856. .image-container:empty::before {
  1857. content: '';
  1858. position: absolute;
  1859. top: 0;
  1860. left: 0;
  1861. width: 100%;
  1862. height: 100%;
  1863. background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  1864. background-size: 200% 100%;
  1865. animation: loading 1.5s infinite;
  1866. border-radius: 12PX;
  1867. }
  1868. @keyframes loading {
  1869. 0% {
  1870. background-position: 200% 0;
  1871. }
  1872. 100% {
  1873. background-position: -200% 0;
  1874. }
  1875. }
  1876. //swiper箭头颜色
  1877. .custom-swiper :deep(.swiper-button-prev),
  1878. .custom-swiper :deep(.swiper-button-next) {
  1879. color: white !important; //箭头颜色改为白色
  1880. }
  1881. .custom-swiper :deep(.swiper-button-prev):after,
  1882. .custom-swiper :deep(.swiper-button-next):after {
  1883. color: white !important; //确保箭头图标也是白色
  1884. }
  1885. //swiper轮播图 end---------------------------------------->
  1886. //轮播图 start---------------------------------------->
  1887. .nuxt-swiper {
  1888. width: 100%;
  1889. height: 300PX;
  1890. position: relative;
  1891. img {
  1892. width: 100%;
  1893. height: 100%;
  1894. }
  1895. span {
  1896. display: inline-block;
  1897. width: 100%;
  1898. height: 40PX;
  1899. line-height: 40PX;
  1900. padding: 0 10PX;
  1901. box-sizing: border-box;
  1902. position: absolute;
  1903. bottom: 0;
  1904. left: 0;
  1905. font-family: Source Han Sans, Source Han Sans;
  1906. font-size: 16PX;
  1907. color: #FFFFFF;
  1908. //background: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
  1909. background: rgba(0, 0, 0, .6);
  1910. }
  1911. }
  1912. .el-carousel {
  1913. // 左右箭头按钮
  1914. .el-carousel__arrow--right :deep(.class-name),
  1915. .el-carousel__arrow--left :deep(.class-name) {
  1916. width: 68PX;
  1917. height: 68PX;
  1918. }
  1919. //左右箭头图片
  1920. /deep/.el-icon svg {
  1921. height: 1em;
  1922. width: 1em;
  1923. background-color: transparent;
  1924. }
  1925. /deep/.el-carousel__arrow {
  1926. border-radius: 0;
  1927. background-color: transparent;
  1928. }
  1929. /deep/.el-carousel__arrow i {
  1930. font-size: 68PX !important;
  1931. }
  1932. /deep/ .el-carousel__indicators {
  1933. // 指示器
  1934. left: unset;
  1935. transform: unset;
  1936. right: 41%;
  1937. }
  1938. /deep/ .el-carousel__button {
  1939. // 指示器按钮
  1940. width: 15PX;
  1941. height: 15PX;
  1942. border-radius: 50%;
  1943. border: none;
  1944. opacity: 1;
  1945. background-color: #FFFFFF;
  1946. bottom: 30PX;
  1947. }
  1948. /deep/ .is-active .el-carousel__button {
  1949. // 指示器激活按钮
  1950. background: #158d91;
  1951. }
  1952. /deep/.custom-indicators {
  1953. position: absolute;
  1954. bottom: 10PX;
  1955. left: 50%;
  1956. transform: translateX(-50%);
  1957. }
  1958. /deep/ .el-carousel__indicators {
  1959. right: 3%;
  1960. bottom: 10%;
  1961. }
  1962. /deep/ .el-carousel__arrow {
  1963. top: 50%;
  1964. }
  1965. }
  1966. //轮播图 end---------------------------------------->
  1967. //第一层 start---------------------------------------->
  1968. .index—layer-1 {
  1969. width: 100%;
  1970. height: auto;
  1971. padding: 0px 10px;
  1972. box-sizing: border-box;
  1973. overflow: hidden;
  1974. margin: 20PX auto;
  1975. display: flex;
  1976. align-items: flex-start;
  1977. justify-content: space-between;
  1978. .index—layer-1-left {
  1979. width: 31%;
  1980. border: 1PX solid #ccc;
  1981. }
  1982. .index-layer-1-middle {
  1983. width: 31%;
  1984. border: 1PX solid #ccc;
  1985. box-sizing: border-box;
  1986. padding: 0 10PX;
  1987. padding-bottom: 5PX;
  1988. .tabtlt {
  1989. width: 100%;
  1990. height: auto;
  1991. outline: hidden;
  1992. border-bottom: 1PX solid #f0f0f0;
  1993. margin: 7PX 0 18PX;
  1994. overflow: hidden;
  1995. display: flex;
  1996. align-self: center;
  1997. justify-content: space-between;
  1998. a {
  1999. color: #337ab7;
  2000. text-decoration: none;
  2001. }
  2002. div {
  2003. width: 50%;
  2004. text-align: center;
  2005. width: 100%;
  2006. height: 50PX;
  2007. line-height: 50PX;
  2008. font-size: 20PX;
  2009. color: #000;
  2010. background: #f3f3f3;
  2011. text-align: center;
  2012. cursor: pointer;
  2013. }
  2014. div.intabtltbg {
  2015. background: url(public/index/current.gif) no-repeat center bottom !important;
  2016. }
  2017. }
  2018. .coninfoitem {
  2019. width: 100%;
  2020. overflow: hidden;
  2021. margin: 0PX auto;
  2022. >div {
  2023. &.coninfoitem_img {
  2024. height: 86PX;
  2025. overflow: hidden;
  2026. margin-bottom: 5PX;
  2027. display: flex;
  2028. align-items: flex-start;
  2029. }
  2030. h3 {
  2031. line-height: 26PX;
  2032. a {
  2033. font-size: 13PX;
  2034. color: #333;
  2035. font-weight: bold;
  2036. width: 100%;
  2037. height: 26PX;
  2038. line-height: 26PX;
  2039. overflow: hidden;
  2040. display: block;
  2041. }
  2042. }
  2043. img {
  2044. width: 120PX;
  2045. height: 86PX;
  2046. float: left;
  2047. margin-right: 11PX;
  2048. }
  2049. p {
  2050. line-height: 0;
  2051. a {
  2052. line-height: 20PX;
  2053. color: #333;
  2054. font-size: 13PX;
  2055. text-indent: 2em;
  2056. display: block;
  2057. }
  2058. }
  2059. }
  2060. .coninfoitem_title {
  2061. width: 100%;
  2062. height: 28PX;
  2063. line-height: 28PX;
  2064. overflow: hidden;
  2065. position: relative;
  2066. list-style-position: inside;
  2067. color: #000;
  2068. display: flex;
  2069. align-items: center;
  2070. justify-content: space-between;
  2071. span:nth-child(1) {
  2072. width: 70%;
  2073. height: 28PX;
  2074. text-align: left;
  2075. overflow: hidden;
  2076. display: block;
  2077. font-size: 14PX;
  2078. }
  2079. span:nth-child(2) {
  2080. width: 30%;
  2081. height: 28PX;
  2082. text-align: right;
  2083. display: block;
  2084. font-size: 12PX;
  2085. color: #666;
  2086. }
  2087. }
  2088. }
  2089. }
  2090. .index-layer-1-right {
  2091. width: 31%;
  2092. border: 1PX solid #ccc;
  2093. box-sizing: border-box;
  2094. padding: 0 10PX;
  2095. padding-bottom: 16PX;
  2096. .imgtlt {
  2097. width: 100%;
  2098. height: 43PX;
  2099. border-bottom: 1PX solid #e7e7e7;
  2100. a {
  2101. display: block;
  2102. width: 92PX;
  2103. height: 42PX;
  2104. line-height: 42PX;
  2105. text-align: center;
  2106. font-size: 20PX;
  2107. color: #333;
  2108. border-bottom: 2PX solid #158d91;
  2109. }
  2110. }
  2111. .con_img_list {
  2112. display: flex;
  2113. flex-wrap: wrap;
  2114. a {
  2115. width: 48%;
  2116. float: left;
  2117. overflow: hidden;
  2118. height: 100PX;
  2119. margin: 20PX auto 0;
  2120. display: block;
  2121. position: relative;
  2122. img {
  2123. display: block;
  2124. width: 100%;
  2125. height: 100%;
  2126. }
  2127. .con_img_list_rgba {
  2128. position: absolute;
  2129. width: 100%;
  2130. height: 22PX;
  2131. line-height: 21PX;
  2132. box-sizing: border-box;
  2133. padding: 0PX 10PX;
  2134. text-align: center;
  2135. bottom: 0PX;
  2136. left: 0PX;
  2137. color: #fff;
  2138. font-size: 16PX;
  2139. z-index: 11;
  2140. background: rgba(0, 0, 0, .6);
  2141. display: block;
  2142. word-break: keep-all;
  2143. white-space: nowrap;
  2144. overflow: hidden;
  2145. text-overflow: ellipsis;
  2146. }
  2147. }
  2148. }
  2149. }
  2150. }
  2151. //第一层 end---------------------------------------->
  2152. //第二层 start---------------------------------------->
  2153. .index—layer-2 {
  2154. width: 100%;
  2155. height: auto;
  2156. overflow: hidden;
  2157. margin: 20PX auto;
  2158. display: flex;
  2159. align-items: flex-start;
  2160. justify-content: space-between;
  2161. .index—layer-2-left,
  2162. .index—layer-2-right {
  2163. width: 49%;
  2164. border: 1PX solid #ddd;
  2165. height: auto;
  2166. overflow: hidden;
  2167. .index—layer-2-title {
  2168. display: flex;
  2169. align-items: center;
  2170. justify-content: flex-start;
  2171. background: #fff;
  2172. >div {
  2173. &.active {
  2174. background: #158d91;
  2175. color: #fff;
  2176. a {
  2177. color: #fff;
  2178. }
  2179. }
  2180. width: 118PX;
  2181. height: 44PX;
  2182. line-height: 44PX;
  2183. background: #fff;
  2184. text-align: center;
  2185. color: #808080;
  2186. font-size: 16PX;
  2187. font-weight: bold;
  2188. border-bottom: 2PX solid #158d91;
  2189. a {
  2190. font-size: 20PX;
  2191. color: #808080;
  2192. }
  2193. }
  2194. }
  2195. .index-tabs2-top {
  2196. background: #f8f8f8;
  2197. padding: 20PX 20PX;
  2198. box-sizing: border-box;
  2199. display: flex;
  2200. border-bottom: 1PX dashed #ddd;
  2201. >a {
  2202. margin-right: 11PX;
  2203. img {
  2204. display: block;
  2205. width: 120PX;
  2206. height: 86PX;
  2207. }
  2208. }
  2209. h3 {
  2210. width: 100%;
  2211. height: 26PX;
  2212. line-height: 26PX;
  2213. overflow: hidden;
  2214. a {
  2215. font-size: 13PX;
  2216. color: #333;
  2217. font-weight: bold;
  2218. }
  2219. }
  2220. p {
  2221. width: 100%;
  2222. height: 60PX;
  2223. line-height: 20PX;
  2224. overflow: hidden;
  2225. display: -webkit-box !important;
  2226. -webkit-box-orient: vertical;
  2227. -webkit-line-clamp: 3;
  2228. a {
  2229. color: #333;
  2230. font-size: 13PX;
  2231. }
  2232. }
  2233. }
  2234. .index-tabs2-bottom {
  2235. padding: 20PX;
  2236. margin: 0;
  2237. a {
  2238. display: block;
  2239. width: 100%;
  2240. height: 28PX;
  2241. line-height: 28PX;
  2242. color: #333;
  2243. font-size: 13PX;
  2244. display: flex;
  2245. align-items: center;
  2246. justify-content: space-between;
  2247. span:nth-child(1) {
  2248. width: 70%;
  2249. height: 28PX;
  2250. text-align: left;
  2251. overflow: hidden;
  2252. display: block;
  2253. font-size: 14PX;
  2254. }
  2255. span:nth-child(2) {
  2256. width: 30%;
  2257. height: 28PX;
  2258. text-align: right;
  2259. display: block;
  2260. font-size: 12PX;
  2261. }
  2262. }
  2263. }
  2264. }
  2265. }
  2266. //第二层 end---------------------------------------->
  2267. //第三层 start---------------------------------------->
  2268. .index—layer-3 {
  2269. .index—layer-3-line {
  2270. width: 100%;
  2271. display: flex;
  2272. align-items: center;
  2273. justify-content: space-between;
  2274. margin: 0 auto;
  2275. box-sizing: border-box;
  2276. //选项卡类型
  2277. .index—layer-3-tabs-box {
  2278. width: 31%;
  2279. height: auto;
  2280. border: 1PX solid #ddd;
  2281. border-top: 2PX solid #158d91;
  2282. margin: 1%;
  2283. padding: 0 10PX;
  2284. box-sizing: border-box;
  2285. .index—layer-3-tabs-box-title {
  2286. display: flex;
  2287. align-items: center;
  2288. width: 100%;
  2289. border-bottom: 1PX solid #f0f0f0;
  2290. >div {
  2291. &.active {
  2292. background: url(../public/index/current2.png) no-repeat center bottom;
  2293. }
  2294. width: 87PX;
  2295. height: 54PX;
  2296. line-height: 55PX;
  2297. overflow: hidden;
  2298. float: left;
  2299. margin-right: 10PX;
  2300. text-align: center;
  2301. font-size: 20PX;
  2302. color: #333;
  2303. font-weight: bold;
  2304. a {
  2305. color: #333;
  2306. }
  2307. }
  2308. }
  2309. .index—layer-3-news-body-main {
  2310. margin-bottom: 20PX;
  2311. a {
  2312. width: 100%;
  2313. height: 26PX;
  2314. line-height: 26PX;
  2315. list-style-position: inside;
  2316. font-size: 13PX;
  2317. color: #333;
  2318. display: block;
  2319. word-break: keep-all;
  2320. white-space: nowrap;
  2321. overflow: hidden;
  2322. text-overflow: ellipsis;
  2323. width: 66%;
  2324. }
  2325. }
  2326. }
  2327. //常规类型
  2328. .index—layer-3-news-box {
  2329. width: 31%;
  2330. height: auto;
  2331. border: 1PX solid #ddd;
  2332. border-top: 2PX solid #158d91;
  2333. margin: 1%;
  2334. padding: 0 10PX;
  2335. box-sizing: border-box;
  2336. .index—layer-3-news-box-title {
  2337. display: flex;
  2338. align-items: center;
  2339. width: 100%;
  2340. border-bottom: 1PX solid #f0f0f0;
  2341. >div {
  2342. &.active {
  2343. background: url(../public/index/current2.png) no-repeat center bottom;
  2344. }
  2345. width: 87PX;
  2346. height: 54PX;
  2347. line-height: 55PX;
  2348. overflow: hidden;
  2349. float: left;
  2350. margin-right: 10PX;
  2351. text-align: center;
  2352. font-size: 20PX;
  2353. color: #333;
  2354. font-weight: bold;
  2355. a {
  2356. color: #333;
  2357. }
  2358. }
  2359. }
  2360. .index—layer-3-news-body-main {
  2361. margin-bottom: 20PX;
  2362. a {
  2363. width: 100%;
  2364. height: 26PX;
  2365. line-height: 26PX;
  2366. list-style-position: inside;
  2367. font-size: 13PX;
  2368. color: #333;
  2369. display: flex;
  2370. align-items: center;
  2371. justify-content: space-between;
  2372. span:nth-child(1) {
  2373. width: 70%;
  2374. height: 28PX;
  2375. text-align: left;
  2376. overflow: hidden;
  2377. display: block;
  2378. font-size: 14PX;
  2379. }
  2380. span:nth-child(2) {
  2381. width: 30%;
  2382. height: 28PX;
  2383. text-align: right;
  2384. display: block;
  2385. font-size: 12PX;
  2386. }
  2387. }
  2388. }
  2389. }
  2390. }
  2391. .index—layer-3-news-body-title {
  2392. display: flex;
  2393. align-items: center;
  2394. justify-content: flex-start;
  2395. margin: 20PX 0 14PX;
  2396. padding-bottom: 20PX;
  2397. border-bottom: 1PX dashed #e1e1e1;
  2398. >div {
  2399. &.news-body-left {
  2400. margin-right: 11PX;
  2401. img {
  2402. display: block;
  2403. width: 120PX;
  2404. height: 86PX;
  2405. }
  2406. }
  2407. &.news-body-right {
  2408. >a {
  2409. display: block;
  2410. width: 100%;
  2411. height: 40PX;
  2412. line-height: 40PX;
  2413. font-size: 16PX;
  2414. font-weight: bold;
  2415. overflow: hidden;
  2416. color: #000;
  2417. text-decoration: none;
  2418. }
  2419. p {
  2420. width: 100%;
  2421. height: 46PX;
  2422. line-height: 23PX;
  2423. overflow: hidden;
  2424. font-size: 14PX;
  2425. color: #333;
  2426. a {
  2427. color: #333;
  2428. }
  2429. }
  2430. }
  2431. }
  2432. }
  2433. }
  2434. //第三层 end---------------------------------------->
  2435. //第四层 start---------------------------------------->
  2436. .index-layer-4 {
  2437. width: 100%;
  2438. border: 1PX solid #ccc;
  2439. border-radius: 20PX;
  2440. padding: 10PX 20PX;
  2441. box-sizing: border-box;
  2442. margin: 20PX auto;
  2443. .index-layer-4-title {
  2444. display: flex;
  2445. align-items: center;
  2446. justify-content: space-between;
  2447. width: 100%;
  2448. height: 40PX;
  2449. line-height: 40PX;
  2450. border-bottom: 1PX solid #ccc;
  2451. a {
  2452. &:first-child {
  2453. font-size: 22PX;
  2454. color: #1476bd;
  2455. }
  2456. &:last-child {
  2457. font-size: 16PX;
  2458. color: #f00;
  2459. border: none;
  2460. float: right;
  2461. }
  2462. display: block;
  2463. }
  2464. }
  2465. .index-layer-4-body {
  2466. .post_nr {
  2467. width: 100%;
  2468. height: auto;
  2469. margin: 20PX auto;
  2470. border: 1PX solid #ccc;
  2471. border-radius: 10PX;
  2472. padding: 20PX !important;
  2473. box-sizing: border-box;
  2474. .name {
  2475. display: block;
  2476. width: 100%;
  2477. height: auto;
  2478. line-height: 40PX;
  2479. font-size: 16PX;
  2480. color: #333;
  2481. }
  2482. b {
  2483. font-size: 17PX;
  2484. margin: 0 10PX;
  2485. }
  2486. li {
  2487. border-bottom: 1PX solid #ccc;
  2488. padding-bottom: 15PX;
  2489. margin-bottom: 10PX;
  2490. box-sizing: border-box;
  2491. p {
  2492. margin: 0;
  2493. height: auto;
  2494. line-height: 25PX;
  2495. font-size: 15PX;
  2496. color: #000;
  2497. &.hfnr {
  2498. font-weight: bold;
  2499. span {
  2500. color: #f00;
  2501. }
  2502. }
  2503. }
  2504. }
  2505. }
  2506. }
  2507. }
  2508. //第四层 end---------------------------------------->
  2509. .index—layer-2 {
  2510. padding: 0px 10px;
  2511. box-sizing: border-box;
  2512. }
  2513. .index-layer-4 {
  2514. margin: 0px auto;
  2515. width: 98%;
  2516. }
  2517. }
  2518. @media screen and (max-width: 800px) {
  2519. //swiper轮播图 start---------------------------------------->
  2520. .swiper-container {
  2521. width: 100%;
  2522. padding: 20px 0;
  2523. position: relative;
  2524. max-width: 1400px;
  2525. margin: 0 auto;
  2526. display: none;
  2527. }
  2528. .custom-swiper {
  2529. width: 100%;
  2530. height: 100%;
  2531. padding: 10px 5px; //给两侧留出空间
  2532. }
  2533. .custom-swiper :deep(.swiper-wrapper) {
  2534. align-items: stretch; //使所有幻灯片高度一致
  2535. }
  2536. .custom-swiper :deep(.swiper-slide) {
  2537. height: auto;
  2538. transition: transform 0.3s ease;
  2539. }
  2540. //悬停效果
  2541. .custom-swiper :deep(.swiper-slide:hover) {
  2542. transform: translateY(-5px);
  2543. z-index: 10;
  2544. }
  2545. .slide-link {
  2546. display: block;
  2547. text-decoration: none;
  2548. color: inherit;
  2549. height: 100%;
  2550. width: 100%;
  2551. }
  2552. .image-container {
  2553. position: relative;
  2554. width: 100%;
  2555. height: 118px; //根据需求调整
  2556. overflow: hidden;
  2557. box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  2558. transition: all 0.3s ease;
  2559. background: #f5f5f5; //加载时的背景色
  2560. }
  2561. .image-container:hover {
  2562. box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
  2563. }
  2564. .slide-image {
  2565. // width: 100%;
  2566. // height: 100%;
  2567. width: 264px;
  2568. height: 118px;
  2569. object-fit: cover;
  2570. transition: transform 0.5s ease;
  2571. }
  2572. .image-container:hover .slide-image {
  2573. transform: scale(1.05);
  2574. }
  2575. .image-title {
  2576. position: absolute;
  2577. bottom: 0;
  2578. left: 0;
  2579. right: 0;
  2580. color: white;
  2581. padding: 12px 15px;
  2582. font-size: 14px;
  2583. line-height: 1.4;
  2584. text-align: center;
  2585. overflow: hidden;
  2586. text-overflow: ellipsis;
  2587. white-space: nowrap;
  2588. background: rgba(0, 0, 0, .6)
  2589. }
  2590. .custom-indicators {
  2591. display: flex;
  2592. justify-content: center;
  2593. gap: 8px;
  2594. margin-top: 25px;
  2595. padding: 15px 10px;
  2596. flex-wrap: wrap;
  2597. background: rgba(255, 255, 255, 0.9);
  2598. border-radius: 50px;
  2599. max-width: 90%;
  2600. margin-left: auto;
  2601. margin-right: auto;
  2602. }
  2603. .indicator-btn {
  2604. width: 36px;
  2605. height: 36px;
  2606. border-radius: 50%;
  2607. border: 2px solid #e0e0e0;
  2608. background: white;
  2609. color: #333;
  2610. cursor: pointer;
  2611. transition: all 0.3s ease;
  2612. font-size: 14px;
  2613. font-weight: 500;
  2614. display: flex;
  2615. align-items: center;
  2616. justify-content: center;
  2617. outline: none;
  2618. }
  2619. .indicator-btn:hover {
  2620. background: #f0f9ff;
  2621. border-color: #409eff;
  2622. transform: scale(1.1);
  2623. }
  2624. .indicator-btn.active-indicator {
  2625. background: #409eff;
  2626. color: white;
  2627. border-color: #409eff;
  2628. box-shadow: 0 4px 12px rgba(64, 158, 255, 0.3);
  2629. }
  2630. //swiper加载动画
  2631. .image-container:empty::before {
  2632. content: '';
  2633. position: absolute;
  2634. top: 0;
  2635. left: 0;
  2636. width: 100%;
  2637. height: 100%;
  2638. background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  2639. background-size: 200% 100%;
  2640. animation: loading 1.5s infinite;
  2641. border-radius: 12px;
  2642. }
  2643. @keyframes loading {
  2644. 0% {
  2645. background-position: 200% 0;
  2646. }
  2647. 100% {
  2648. background-position: -200% 0;
  2649. }
  2650. }
  2651. //swiper箭头颜色
  2652. .custom-swiper :deep(.swiper-button-prev),
  2653. .custom-swiper :deep(.swiper-button-next) {
  2654. color: white !important; //箭头颜色改为白色
  2655. }
  2656. .custom-swiper :deep(.swiper-button-prev):after,
  2657. .custom-swiper :deep(.swiper-button-next):after {
  2658. color: white !important; //确保箭头图标也是白色
  2659. }
  2660. //swiper轮播图 end---------------------------------------->
  2661. //轮播图 start---------------------------------------->
  2662. .nuxt-swiper {
  2663. width: 100%;
  2664. height: 330px;
  2665. position: relative;
  2666. img {
  2667. width: 100%;
  2668. height: 100%;
  2669. }
  2670. span {
  2671. display: inline-block;
  2672. width: 100%;
  2673. height: 55px;
  2674. line-height: 55px;
  2675. padding-left: 20px;
  2676. box-sizing: border-box;
  2677. position: absolute;
  2678. bottom: 0;
  2679. left: 0;
  2680. font-family: Source Han Sans, Source Han Sans;
  2681. font-size: 20px;
  2682. color: #FFFFFF;
  2683. //background: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
  2684. background: rgba(0, 0, 0, .6);
  2685. }
  2686. }
  2687. .el-carousel {
  2688. // 左右箭头按钮
  2689. .el-carousel__arrow--right :deep(.class-name),
  2690. .el-carousel__arrow--left :deep(.class-name) {
  2691. width: 68px;
  2692. height: 68px;
  2693. }
  2694. //左右箭头图片
  2695. /deep/.el-icon svg {
  2696. height: 1em;
  2697. width: 1em;
  2698. background-color: transparent;
  2699. }
  2700. /deep/.el-carousel__arrow {
  2701. border-radius: 0;
  2702. background-color: transparent;
  2703. }
  2704. /deep/.el-carousel__arrow i {
  2705. font-size: 68px !important;
  2706. }
  2707. /deep/ .el-carousel__indicators {
  2708. // 指示器
  2709. left: unset;
  2710. transform: unset;
  2711. right: 41%;
  2712. }
  2713. /deep/ .el-carousel__button {
  2714. // 指示器按钮
  2715. width: 15px;
  2716. height: 15px;
  2717. border-radius: 50%;
  2718. border: none;
  2719. opacity: 1;
  2720. background-color: #FFFFFF;
  2721. bottom: 30px;
  2722. }
  2723. /deep/ .is-active .el-carousel__button {
  2724. // 指示器激活按钮
  2725. background: #158d91;
  2726. }
  2727. /deep/.custom-indicators {
  2728. position: absolute;
  2729. bottom: 10px;
  2730. left: 50%;
  2731. transform: translateX(-50%);
  2732. }
  2733. /deep/ .el-carousel__indicators {
  2734. right: 3%;
  2735. bottom: 14%;
  2736. }
  2737. /deep/ .el-carousel__arrow {
  2738. top: 50%;
  2739. }
  2740. /deep/ .el-carousel__container {
  2741. height: 330px;
  2742. }
  2743. }
  2744. //轮播图 end---------------------------------------->
  2745. //第一层 start---------------------------------------->
  2746. .index—layer-1 {
  2747. width: 100%;
  2748. height: auto;
  2749. overflow: hidden;
  2750. margin: 20px auto;
  2751. display: flex;
  2752. align-items: flex-start;
  2753. justify-content: space-between;
  2754. flex-wrap: wrap;
  2755. box-sizing: border-box;
  2756. padding: 0 10px;
  2757. .index—layer-1-left {
  2758. width: 100%;
  2759. margin: 10px 0;
  2760. border: 1px solid #ccc;
  2761. }
  2762. .index-layer-1-middle {
  2763. width: 100%;
  2764. border: 1px solid #ccc;
  2765. box-sizing: border-box;
  2766. padding: 0 10px;
  2767. padding-bottom: 5px;
  2768. margin: 10px 0;
  2769. .tabtlt {
  2770. width: 100%;
  2771. height: auto;
  2772. outline: hidden;
  2773. border-bottom: 1px solid #f0f0f0;
  2774. margin: 7px 0 18px;
  2775. overflow: hidden;
  2776. display: flex;
  2777. align-self: center;
  2778. justify-content: space-between;
  2779. a {
  2780. color: #337ab7;
  2781. text-decoration: none;
  2782. }
  2783. div {
  2784. width: 50%;
  2785. text-align: center;
  2786. width: 100%;
  2787. height: 50px;
  2788. line-height: 50px;
  2789. font-size: 30px;
  2790. color: #000;
  2791. background: #f3f3f3;
  2792. text-align: center;
  2793. cursor: pointer;
  2794. }
  2795. div.intabtltbg {
  2796. background: url(public/index/current.gif) no-repeat center bottom !important;
  2797. }
  2798. }
  2799. .coninfoitem {
  2800. width: 100%;
  2801. overflow: hidden;
  2802. margin: 0px auto;
  2803. >div {
  2804. &.coninfoitem_img {
  2805. height: 220px;
  2806. overflow: hidden;
  2807. margin-bottom: 5px;
  2808. display: flex;
  2809. align-items: flex-start;
  2810. justify-content: space-between;
  2811. }
  2812. h3 {
  2813. width: 100%;
  2814. height: 40px;
  2815. line-height: 40px;
  2816. line-height: 0;
  2817. overflow: hidden;
  2818. a {
  2819. font-size: 30px;
  2820. color: #333;
  2821. font-weight: bold;
  2822. width: 100%;
  2823. height: 44px;
  2824. line-height: 44px;
  2825. overflow: hidden;
  2826. display: block;
  2827. }
  2828. }
  2829. img {
  2830. width: 440px;
  2831. height: 220px;
  2832. float: left;
  2833. margin-right: 11px;
  2834. }
  2835. p {
  2836. a {
  2837. color: #333;
  2838. font-size: 26px;
  2839. height: 90px;
  2840. line-height: 30px;
  2841. margin-top: 11px;
  2842. display: block;
  2843. text-indent: 2em;
  2844. overflow: hidden;
  2845. display: -webkit-box !important;
  2846. -webkit-box-orient: vertical;
  2847. -webkit-line-clamp: 3;
  2848. }
  2849. }
  2850. }
  2851. .coninfoitem_title {
  2852. width: 100%;
  2853. height: 70px;
  2854. line-height: 70px;
  2855. color: #333;
  2856. display: block;
  2857. font-weight: normal;
  2858. display: flex;
  2859. align-items: center;
  2860. justify-content: space-between;
  2861. span:nth-child(1) {
  2862. width: 70%;
  2863. height: 50px;
  2864. text-align: left;
  2865. overflow: hidden;
  2866. display: block;
  2867. font-size: 28px;
  2868. }
  2869. span:nth-child(2) {
  2870. width: 30%;
  2871. height: 50px;
  2872. text-align: right;
  2873. display: block;
  2874. font-size: 24px;
  2875. color: #666;
  2876. }
  2877. }
  2878. }
  2879. }
  2880. .index-layer-1-right {
  2881. width: 100%;
  2882. border: 1px solid #ccc;
  2883. box-sizing: border-box;
  2884. padding-bottom: 16px;
  2885. padding: 10px;
  2886. .imgtlt {
  2887. width: 100%;
  2888. height: 43px;
  2889. border-bottom: 1px solid #e7e7e7;
  2890. a {
  2891. display: block;
  2892. width: auto;
  2893. float: left;
  2894. height: 42px;
  2895. line-height: 42px;
  2896. text-align: center;
  2897. font-size: 30px;
  2898. color: #333;
  2899. border-bottom: 2px solid #158d91;
  2900. }
  2901. }
  2902. .con_img_list {
  2903. display: flex;
  2904. flex-wrap: wrap;
  2905. a {
  2906. width: 48%;
  2907. float: left;
  2908. overflow: hidden;
  2909. height: 200px;
  2910. margin: 20px auto 0;
  2911. display: block;
  2912. position: relative;
  2913. img {
  2914. display: block;
  2915. width: 100%;
  2916. height: 100%;
  2917. }
  2918. .con_img_list_rgba {
  2919. position: absolute;
  2920. width: 100%;
  2921. height: 33px;
  2922. line-height: 33px;
  2923. box-sizing: border-box;
  2924. padding: 0 10px;
  2925. text-align: center;
  2926. bottom: 0px;
  2927. left: 0px;
  2928. color: #fff;
  2929. font-size: 20px;
  2930. z-index: 11;
  2931. background: rgba(0, 0, 0, .6);
  2932. display: block;
  2933. word-break: keep-all;
  2934. white-space: nowrap;
  2935. overflow: hidden;
  2936. text-overflow: ellipsis;
  2937. }
  2938. }
  2939. }
  2940. }
  2941. }
  2942. //第一层 end---------------------------------------->
  2943. //第二层 start---------------------------------------->
  2944. .index—layer-2 {
  2945. width: 100%;
  2946. height: auto;
  2947. overflow: hidden;
  2948. margin: 20px auto;
  2949. display: flex;
  2950. align-items: flex-start;
  2951. justify-content: space-between;
  2952. flex-wrap: wrap;
  2953. padding: 0 10px;
  2954. box-sizing: border-box;
  2955. .index—layer-2-left,
  2956. .index—layer-2-right {
  2957. width: 100%;
  2958. border: 1px solid #ddd;
  2959. height: auto;
  2960. overflow: hidden;
  2961. margin: 10px 0;
  2962. .index—layer-2-title {
  2963. display: flex;
  2964. align-items: center;
  2965. justify-content: flex-start;
  2966. background: #fff;
  2967. >div {
  2968. &.active {
  2969. background: #158d91;
  2970. color: #fff;
  2971. a {
  2972. color: #fff;
  2973. }
  2974. }
  2975. width:auto;
  2976. float:left;
  2977. height: 55px;
  2978. line-height: 55px;
  2979. background: #fff;
  2980. text-align: center;
  2981. color: #808080;
  2982. font-size: 30px;
  2983. padding:0px 18px;
  2984. font-weight: bold;
  2985. border-bottom: 2px solid #158d91;
  2986. a {
  2987. font-size: 30px;
  2988. color: #808080;
  2989. }
  2990. }
  2991. }
  2992. .index-tabs2-top {
  2993. background: #f8f8f8;
  2994. padding: 20px 20px;
  2995. box-sizing: border-box;
  2996. display: flex;
  2997. border-bottom: 1px dashed #ddd;
  2998. >a {
  2999. margin-right: 11px;
  3000. img {
  3001. display: block;
  3002. width: 330px;
  3003. height: 220px;
  3004. }
  3005. }
  3006. h3 {
  3007. width: 100%;
  3008. height: 40px;
  3009. line-height: 40px;
  3010. line-height: 0;
  3011. overflow: hidden;
  3012. a {
  3013. font-size: 26px;
  3014. color: #333;
  3015. font-weight: bold;
  3016. width: 100%;
  3017. height: 44px;
  3018. line-height: 44px;
  3019. overflow: hidden;
  3020. display: block;
  3021. }
  3022. }
  3023. p {
  3024. a {
  3025. color: #333;
  3026. font-size: 24px;
  3027. height: 90px;
  3028. line-height: 30px;
  3029. margin-top: 11px;
  3030. display: block;
  3031. text-indent: 2em;
  3032. overflow: hidden;
  3033. display: -webkit-box !important;
  3034. -webkit-box-orient: vertical;
  3035. -webkit-line-clamp: 3;
  3036. }
  3037. }
  3038. }
  3039. .index-tabs2-bottom {
  3040. padding: 20px;
  3041. margin: 0;
  3042. box-sizing: border-box;
  3043. a {
  3044. display: block;
  3045. width: 100%;
  3046. height: 50px;
  3047. line-height: 50px;
  3048. overflow: hidden;
  3049. position: relative;
  3050. list-style-position: inside;
  3051. color: #333;
  3052. font-size: 32px;
  3053. display: flex;
  3054. align-items: center;
  3055. justify-content: space-between;
  3056. span:nth-child(1) {
  3057. width: 70%;
  3058. height: 50px;
  3059. text-align: left;
  3060. overflow: hidden;
  3061. display: block;
  3062. font-size: 28px;
  3063. }
  3064. span:nth-child(2) {
  3065. width: 30%;
  3066. height: 50px;
  3067. text-align: right;
  3068. display: block;
  3069. font-size: 24px;
  3070. color: #666;
  3071. }
  3072. }
  3073. }
  3074. }
  3075. }
  3076. //第二层 end---------------------------------------->
  3077. //第三层 start---------------------------------------->
  3078. .index—layer-3 {
  3079. .index—layer-3-line {
  3080. width: 100%;
  3081. display: flex;
  3082. align-items: center;
  3083. justify-content: space-between;
  3084. margin: 0 auto;
  3085. box-sizing: border-box;
  3086. flex-wrap: wrap;
  3087. padding: 0 10px;
  3088. //选项卡类型
  3089. .index—layer-3-tabs-box {
  3090. width: 100%;
  3091. height: auto;
  3092. border: 1px solid #ddd;
  3093. border-top: 2px solid #158d91;
  3094. margin: 1%;
  3095. padding: 0 10px;
  3096. box-sizing: border-box;
  3097. margin: 10px 0;
  3098. .index—layer-3-tabs-box-title {
  3099. display: flex;
  3100. align-items: center;
  3101. width: 100%;
  3102. border-bottom: 1px solid #f0f0f0;
  3103. >div {
  3104. &.active {
  3105. background: url(../public/index/current2.png) no-repeat center bottom;
  3106. }
  3107. width:auto;
  3108. height: 54px;
  3109. line-height: 55px;
  3110. overflow: hidden;
  3111. float: left;
  3112. margin-right: 10px;
  3113. text-align: center;
  3114. font-size: 30px;
  3115. color: #333;
  3116. font-weight: bold;
  3117. a {
  3118. color: #333;
  3119. }
  3120. }
  3121. }
  3122. .index—layer-3-news-body-main {
  3123. margin-bottom: 20px;
  3124. a {
  3125. width: 100%;
  3126. height: 70px;
  3127. line-height: 70px;
  3128. font-size: 26px;
  3129. color: #333;
  3130. display: flex;
  3131. align-items: center;
  3132. justify-content: space-between;
  3133. span:nth-child(1) {
  3134. width: 70%;
  3135. height: 50px;
  3136. text-align: left;
  3137. overflow: hidden;
  3138. display: block;
  3139. font-size: 28px;
  3140. }
  3141. span:nth-child(2) {
  3142. width: 30%;
  3143. height: 50px;
  3144. text-align: right;
  3145. display: block;
  3146. font-size: 24px;
  3147. color: #666;
  3148. }
  3149. }
  3150. }
  3151. }
  3152. //常规类型
  3153. .index—layer-3-news-box {
  3154. width: 100%;
  3155. height: auto;
  3156. border: 1px solid #ddd;
  3157. border-top: 2px solid #158d91;
  3158. margin: 1%;
  3159. padding: 0 10px;
  3160. box-sizing: border-box;
  3161. margin: 10px 0;
  3162. .index—layer-3-news-box-title {
  3163. display: flex;
  3164. align-items: center;
  3165. width: 100%;
  3166. border-bottom: 1px solid #f0f0f0;
  3167. >div {
  3168. &.active {
  3169. background: url(../public/index/current2.png) no-repeat center bottom;
  3170. }
  3171. width:auto;
  3172. float:left;
  3173. height: 54px;
  3174. line-height: 55px;
  3175. overflow: hidden;
  3176. float: left;
  3177. margin-right: 10px;
  3178. text-align: center;
  3179. font-size: 30px;
  3180. color: #333;
  3181. font-weight: bold;
  3182. a {
  3183. color: #333;
  3184. }
  3185. }
  3186. }
  3187. .index—layer-3-news-body-main {
  3188. margin-bottom: 20px;
  3189. a {
  3190. width: 100%;
  3191. height: 70px;
  3192. line-height: 70px;
  3193. font-size: 26px;
  3194. color: #333;
  3195. display: flex;
  3196. align-items: center;
  3197. justify-content: space-between;
  3198. span:nth-child(1) {
  3199. width: 70%;
  3200. height: 50px;
  3201. text-align: left;
  3202. overflow: hidden;
  3203. display: block;
  3204. font-size: 28px;
  3205. }
  3206. span:nth-child(2) {
  3207. width: 30%;
  3208. height: 50px;
  3209. text-align: right;
  3210. display: block;
  3211. font-size: 24px;
  3212. color: #666;
  3213. }
  3214. }
  3215. }
  3216. }
  3217. }
  3218. .index—layer-3-news-body-title {
  3219. overflow: hidden;
  3220. align-items: center;
  3221. justify-content: flex-start;
  3222. margin: 20px 0 14px;
  3223. padding-bottom: 20px;
  3224. border-bottom: 1px dashed #e1e1e1;
  3225. >div {
  3226. &.news-body-left {
  3227. float: left;
  3228. margin-right: 11px;
  3229. img {
  3230. display: block;
  3231. width: 330px;
  3232. height: 220px;
  3233. }
  3234. }
  3235. &.news-body-right {
  3236. width: 350px;
  3237. float: right;
  3238. >a {
  3239. height: 40px;
  3240. line-height: 40px;
  3241. line-height: 0;
  3242. overflow: hidden;
  3243. font-size: 26px;
  3244. color: #333;
  3245. font-weight: bold;
  3246. width: 100%;
  3247. height: 44px;
  3248. line-height: 44px;
  3249. overflow: hidden;
  3250. display: block;
  3251. }
  3252. p {
  3253. a {
  3254. color: #333;
  3255. font-size: 24px;
  3256. height: 90px;
  3257. line-height: 30px;
  3258. margin-top: 11px;
  3259. display: block;
  3260. text-indent: 2em;
  3261. overflow: hidden;
  3262. display: -webkit-box !important;
  3263. -webkit-box-orient: vertical;
  3264. -webkit-line-clamp: 3;
  3265. }
  3266. }
  3267. }
  3268. }
  3269. }
  3270. }
  3271. //第三层 end---------------------------------------->
  3272. //第四层 start---------------------------------------->
  3273. .index-layer-4 {
  3274. width: 100%;
  3275. border: 1px solid #ccc;
  3276. border-radius: 20px;
  3277. padding: 10px 20px;
  3278. box-sizing: border-box;
  3279. display: none;
  3280. .index-layer-4-title {
  3281. display: flex;
  3282. align-items: center;
  3283. justify-content: space-between;
  3284. width: 100%;
  3285. height: 40px;
  3286. line-height: 40px;
  3287. border-bottom: 1px solid #ccc;
  3288. a {
  3289. &:first-child {
  3290. font-size: 22px;
  3291. color: #1476bd;
  3292. }
  3293. &:last-child {
  3294. font-size: 16px;
  3295. color: #f00;
  3296. border: none;
  3297. float: right;
  3298. }
  3299. display: block;
  3300. }
  3301. }
  3302. .index-layer-4-body {
  3303. .post_nr {
  3304. width: 100%;
  3305. height: auto;
  3306. margin: 20px auto;
  3307. border: 1px solid #ccc;
  3308. border-radius: 10px;
  3309. padding: 20px !important;
  3310. box-sizing: border-box;
  3311. .name {
  3312. display: block;
  3313. width: 100%;
  3314. height: auto;
  3315. line-height: 40px;
  3316. font-size: 16px;
  3317. color: #333;
  3318. }
  3319. b {
  3320. font-size: 17px;
  3321. margin: 0 10px;
  3322. }
  3323. li {
  3324. border-bottom: 1px solid #ccc;
  3325. padding-bottom: 15px;
  3326. margin-bottom: 10px;
  3327. box-sizing: border-box;
  3328. p {
  3329. margin: 0;
  3330. height: auto;
  3331. line-height: 25px;
  3332. font-size: 15px;
  3333. color: #000;
  3334. &.hfnr {
  3335. font-weight: bold;
  3336. span {
  3337. color: #f00;
  3338. }
  3339. }
  3340. }
  3341. }
  3342. }
  3343. }
  3344. }
  3345. //第四层 end---------------------------------------->
  3346. .index—layer-1 .index-layer-1-middle .coninfoitem .coninfoitem_title img{
  3347. width:300px;height:200px!important;
  3348. }
  3349. .index—layer-1 .index-layer-1-middle .coninfoitem > div h3{
  3350. width:auto;
  3351. height:33px;line-height:33px;margin-top:11px;font-size:26px;
  3352. }
  3353. .index—layer-1 .index-layer-1-middle .coninfoitem > div p{
  3354. height:60px;line-height:30px;margin-top:11px;font-size:24px;
  3355. }
  3356. .index—layer-1 .index-layer-1-right .con_img_list{display:block;overflow:hidden;}
  3357. }
  3358. </style>