index.vue 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104
  1. <template>
  2. <div class="home">
  3. <div class="home_t">
  4. <n-carousel :autoplay="true" :interval="3000">
  5. <template v-for="item in carouselList" :key="item">
  6. <n-carousel-item>
  7. <div class="img">
  8. <img class="carousel-img" :src="BaseUrl+'/carousel/'+item.name" />
  9. </div>
  10. <div class="desc">
  11. <div class="desc_title">{{item.title }}</div>
  12. <div class="desc_tig">{{ item.desc }}</div>
  13. <a href="/report-industries" class="desc_btn">Know More</a>
  14. </div>
  15. </n-carousel-item>
  16. </template>
  17. </n-carousel>
  18. </div>
  19. <div class="numList">
  20. <div class="item ">
  21. <span class="iconfont icon-analytics"></span>
  22. <div class="item_t">
  23. <n-number-animation ref="numberAnimationInstRef" :from="0" :to="15" />
  24. Years+
  25. </div>
  26. <div class="item_b">Segmented Industry Research Experience</div>
  27. </div>
  28. <div class="item ">
  29. <img class="item_img" src="/assets/images/img9.png" alt="">
  30. <div class="item_t">
  31. <n-number-animation ref="numberAnimationInstRef" :from="0" :to="20000" />
  32. +
  33. </div>
  34. <div class="item_b">Segmented Product Report Covering the Entire Industry</div>
  35. </div>
  36. <div class="item ">
  37. <span class="iconfont icon-yinhuanzhili-qiyezichayinhuan"></span>
  38. <div class="item_t">
  39. <n-number-animation ref="numberAnimationInstRef" :from="0" :to="10000" />
  40. +
  41. </div>
  42. <div class="item_b">Segmented Product Reports Covering the Entire Industry</div>
  43. </div>
  44. <div class="item ">
  45. <span class="iconfont icon-dinghuoshujufenxi"></span>
  46. <div class="item_t">
  47. <n-number-animation ref="numberAnimationInstRef" :from="0" :to="12000" />
  48. K+
  49. </div>
  50. <div class="item_b">Data Point Information</div>
  51. </div>
  52. <div class="item ">
  53. <span class="iconfont icon-dinghuoshujufenxi"></span>
  54. <div class="item_t">
  55. <n-number-animation ref="numberAnimationInstRef" :from="0" :to="12000" />
  56. K+
  57. </div>
  58. <div class="item_b">Data Point Information</div>
  59. </div>
  60. </div>
  61. <div class="marketBox">
  62. <div class="marketBox_title">Market Express</div>
  63. <n-carousel :autoplay="false" ref="swiperRef" :interval="3000">
  64. <!-- carouselList -->
  65. <template v-for="item in marketInfo1.list" :key="item">
  66. <n-carousel-item>
  67. <div class="img">
  68. <img class="carousel-img" :src="BaseUrl+'/fileupload/'+item.filePath+item.fileName" />
  69. <div class="desc">
  70. <div class="desc_title">{{item.title}}</div>
  71. <a class="desc_btn" :href="'/news/'+item.webTitle+'-'+item.id">View details</a>
  72. </div>
  73. </div>
  74. </n-carousel-item>
  75. </template>
  76. </n-carousel>
  77. <view class="direction carousel_l" @click="swiperPrev()">
  78. <span class="iconfont icon-dkw_guanbi-"></span>
  79. </view>
  80. <view class="direction carousel_r" @click="swiperNext()">
  81. <span class="iconfont icon-dkw_guanbi-"></span>
  82. </view>
  83. </div>
  84. <div class="popularBox">
  85. <div class="popularBox_l">
  86. <div class="popularBox_l_title">
  87. <div class="popularBox_l_title_l">Popular Research Reports</div>
  88. <a class="popularBox_l_title_r" href="/report-industries">Know More <span class="iconfont icon-jiantou24"></span> </a>
  89. </div>
  90. <div class="popularBox_l_list">
  91. <!-- reports -->
  92. <!-- marketInfo2.list -->
  93. <template v-for="(v,i) in reports" :key="i">
  94. <div class="popularBox_l_list_item" v-if="i<2">
  95. <a :href="'/reports/'+v.webTitle+'-'+v.id">
  96. <img :src="BaseUrl + '/report/' + v.fileName" alt="">
  97. </a>
  98. <div class="popularBox_l_list_item_box">
  99. <a class="popularBox_l_list_item_box_title" :href="'/reports/'+v.webTitle+'-'+v.id">{{v.title}}</a>
  100. <a class="popularBox_l_list_item_box_btn" :href="'/reports/'+v.webTitle+'-'+v.id">View details</a>
  101. </div>
  102. </div>
  103. </template>
  104. </div>
  105. </div>
  106. <div class="popularBox_r">
  107. <div class="popularBox_r_title">
  108. Report Coverage Areas
  109. </div>
  110. <div class="popularBox_r_list">
  111. <div v-for="(v, i) in professionList" :key="i">
  112. <img :src="v.imgUrl" :alt="v.title" />
  113. <div v-html="v.title"></div>
  114. </div>
  115. </div>
  116. </div>
  117. </div>
  118. <div class="hotBox">
  119. <div class="hotBox_title">Hot News</div>
  120. <div class="hotBox_list">
  121. <template v-for="(v,i) in markets" :key="i">
  122. <div class="hotBox_list_item" @click.prevent="viewNewsDetail(v)" v-if="i<3">
  123. <a :href="'news'+v.webTitle + '-' + v.id ">
  124. <img :src="BaseUrl + '/fileupload/' + v.filePath + v.fileName" alt="">
  125. </a>
  126. <div class="hotBox_list_item_box">
  127. <div class="hotBox_list_item_box_date">{{formatDateEn(v.publishDate)}}</div>
  128. <a :href="'news'+v.webTitle + '-' + v.id " class="hotBox_list_item_box_text">{{v.title}}</a>
  129. </div>
  130. </div>
  131. </template>
  132. </div>
  133. <a class="hotBox_btn" href="/news-categories">Know More</a>
  134. </div>
  135. <div class="researchBox">
  136. <div class="researchBox_title">Research Advantages</div>
  137. <div class="researchBox_list">
  138. <template v-for="(v,i) in list2" :key="i">
  139. <div class="researchBox_list_item ">
  140. <img class="imga" :src="v.imga" alt="">
  141. <img class="img" :src="v.img" alt="">
  142. <div>{{v.name}}</div>
  143. </div>
  144. </template>
  145. </div>
  146. </div>
  147. <div class="customersBox">
  148. <div class="customersBox_title">Customers Served</div>
  149. <div class="customersBox_subTitle">Trusted by Leading Companies Worldwide.</div>
  150. <div class="customersBox_carousel">
  151. <!-- draggable -->
  152. <n-carousel ref="card5SwiperRef" autoplay draggable :space-between="0" loop :interval="2000">
  153. <n-carousel-item class="customersBox_carousel_item " v-for="(v,i) in list3" :key="i">
  154. <img v-for="(k,j) in v" :key="'img'+j" :src="k" alt="">
  155. </n-carousel-item>
  156. </n-carousel>
  157. </div>
  158. </div>
  159. <ConnectUs />
  160. </div>
  161. </template>
  162. <script setup>
  163. import { useI18n } from "#imports"
  164. import { onMounted, ref } from "vue";
  165. import { useRouter } from "vue-router";
  166. import { useUserStore } from "@/store/user";
  167. import { MdEye, MdReorder, MdSearch } from "@vicons/ionicons4";
  168. import img01 from '@/assets/images/companyProfile/img01.png'
  169. import img02 from '@/assets/images/companyProfile/img02.png'
  170. import img03 from '@/assets/images/companyProfile/img03.png'
  171. import img04 from '@/assets/images/companyProfile/img04.png'
  172. import img05 from '@/assets/images/companyProfile/img05.png'
  173. import img06 from '@/assets/images/companyProfile/img06.png'
  174. import img07 from '@/assets/images/companyProfile/img07.png'
  175. import img08 from '@/assets/images/companyProfile/img08.png'
  176. import img09 from '@/assets/images/companyProfile/img09.png'
  177. import img10 from '@/assets/images/companyProfile/img10.png'
  178. import img11 from '@/assets/images/companyProfile/img11.png'
  179. import img12 from '@/assets/images/companyProfile/img12.png'
  180. import researchAdvantages1 from '@/assets/images/researchAdvantages/img1.png'
  181. import researchAdvantages2 from '@/assets/images/researchAdvantages/img2.png'
  182. import researchAdvantages3 from '@/assets/images/researchAdvantages/img3.png'
  183. import researchAdvantages4 from '@/assets/images/researchAdvantages/img4.png'
  184. import researchAdvantages5 from '@/assets/images/researchAdvantages/img5.png'
  185. import researchAdvantages6 from '@/assets/images/researchAdvantages/img6.png'
  186. import researchAdvantages1_a from '@/assets/images/researchAdvantages/img1_a.png'
  187. import researchAdvantages2_a from '@/assets/images/researchAdvantages/img2_a.png'
  188. import researchAdvantages3_a from '@/assets/images/researchAdvantages/img3_a.png'
  189. import researchAdvantages4_a from '@/assets/images/researchAdvantages/img4_a.png'
  190. import researchAdvantages5_a from '@/assets/images/researchAdvantages/img5_a.png'
  191. import researchAdvantages6_a from '@/assets/images/researchAdvantages/img6_a.png'
  192. import customersServed1 from '@/assets/images/customersServed/img1.png'
  193. import customersServed2 from '@/assets/images/customersServed/img2.png'
  194. import customersServed3 from '@/assets/images/customersServed/img3.png'
  195. import customersServed4 from '@/assets/images/customersServed/img4.png'
  196. import customersServed5 from '@/assets/images/customersServed/img5.png'
  197. import customersServed6 from '@/assets/images/customersServed/img6.png'
  198. import customersServed7 from '@/assets/images/customersServed/img7.png'
  199. import customersServed8 from '@/assets/images/customersServed/img8.png'
  200. import customersServed9 from '@/assets/images/customersServed/img9.png'
  201. import customersServed10 from '@/assets/images/customersServed/img10.png'
  202. import customersServed11 from '@/assets/images/customersServed/img11.png'
  203. import customersServed12 from '@/assets/images/customersServed/img12.png'
  204. import customersServed13 from '@/assets/images/customersServed/img13.png'
  205. import customersServed14 from '@/assets/images/customersServed/img14.png'
  206. import customersServed15 from '@/assets/images/customersServed/img15.png'
  207. import customersServed16 from '@/assets/images/customersServed/img16.png'
  208. import customersServed17 from '@/assets/images/customersServed/img17.png'
  209. import customersServed18 from '@/assets/images/customersServed/img18.png'
  210. import customersServed19 from '@/assets/images/customersServed/img19.png'
  211. import customersServed20 from '@/assets/images/customersServed/img20.png'
  212. import customersServed21 from '@/assets/images/customersServed/img21.png'
  213. import customersServed22 from '@/assets/images/customersServed/img22.png'
  214. import customersServed23 from '@/assets/images/customersServed/img23.png'
  215. import customersServed24 from '@/assets/images/customersServed/img24.png'
  216. import customersServed25 from '@/assets/images/customersServed/img25.png'
  217. import customersServed26 from '@/assets/images/customersServed/img26.png'
  218. import customersServed27 from '@/assets/images/customersServed/img27.png'
  219. import customersServed28 from '@/assets/images/customersServed/img28.png'
  220. import customersServed29 from '@/assets/images/customersServed/img29.png'
  221. import customersServed30 from '@/assets/images/customersServed/img30.png'
  222. const config = useRuntimeConfig();
  223. const BaseUrl = ref(config.public.baseUrl);
  224. const { t } = useI18n();
  225. const carouselList = ref(); // 轮播图数据
  226. const reports = ref(); //研究报告
  227. const markets = ref(); //市场资讯
  228. const reportDict = ref();
  229. const keyword = ref(""); //关键字
  230. const userStore = useUserStore();
  231. const lang = ref();
  232. const marketInfo1 = ref();
  233. const marketInfo2 = ref();
  234. const professionList = [
  235. {
  236. imgUrl: img01,
  237. title: 'Chemical and Materials',
  238. },
  239. {
  240. imgUrl: img02,
  241. title: 'Aerospace',
  242. },
  243. {
  244. imgUrl: img03,
  245. title: 'Agriculture',
  246. },
  247. {
  248. imgUrl: img04,
  249. title: 'Machinery and Equipment',
  250. },
  251. {
  252. imgUrl: img05,
  253. title: 'Medical and Bio-Health',
  254. },
  255. {
  256. imgUrl: img06,
  257. title: 'Electronics and Semiconductors',
  258. },
  259. {
  260. imgUrl: img07,
  261. title: 'Software and Services',
  262. },
  263. {
  264. imgUrl: img08,
  265. title: 'Consumer Products <br/> and Retail',
  266. },
  267. {
  268. imgUrl: img09,
  269. title: 'Automobile and Transportation',
  270. },
  271. {
  272. imgUrl: img10,
  273. title: 'Food and Beverage',
  274. },
  275. {
  276. imgUrl: img11,
  277. title: 'Emerging Industries',
  278. },
  279. {
  280. imgUrl: img12,
  281. title: 'Other Industries',
  282. },
  283. ]
  284. const list2 = ref([
  285. { name: 'Global Perspective', img: researchAdvantages1, imga: researchAdvantages1_a },
  286. { name: 'Multidimensional Research', img: researchAdvantages2, imga: researchAdvantages2_a },
  287. { name: 'Massive Database', img: researchAdvantages3, imga: researchAdvantages3_a },
  288. { name: 'Foresight Analyst Team', img: researchAdvantages4, imga: researchAdvantages4_a },
  289. { name: 'Customized Services', img: researchAdvantages5, imga: researchAdvantages5_a },
  290. { name: '24-Hour Support', img: researchAdvantages6, imga: researchAdvantages6_a },
  291. ])
  292. const list3 = ref([
  293. [customersServed1, customersServed2, customersServed3, customersServed4, customersServed5, customersServed6],
  294. [customersServed7, customersServed8, customersServed9, customersServed10, customersServed11, customersServed12],
  295. [customersServed13, customersServed14, customersServed15, customersServed16, customersServed17, customersServed18],
  296. [customersServed19, customersServed20, customersServed21, customersServed22, customersServed23, customersServed24],
  297. [customersServed25, customersServed26, customersServed27, customersServed28, customersServed29, customersServed30]
  298. ])
  299. //查询
  300. const router = useRouter();
  301. function handleSearch () {
  302. router.push({
  303. name: "reports",
  304. params: { keyword: keyword.value },
  305. });
  306. }
  307. // 资讯详情
  308. function viewNewsDetail (item) {
  309. router.push({
  310. name: "newsDetail",
  311. params: { webTitle: item.webTitle + "-" + item.id },
  312. });
  313. }
  314. // 报告详情
  315. function viewReportDetail (item) {
  316. router.push({
  317. name: "reportDetail",
  318. params: { webTitle: item.webTitle + "-" + item.id },
  319. });
  320. }
  321. // 报告列表
  322. function reportDetail () {
  323. router.push({ name: "reports" });
  324. }
  325. function handleReport (value) {
  326. router.push({ name: "reports", params: { category: value } });
  327. }
  328. const swiperRef = ref();
  329. const swiperPrev = () => {
  330. if (marketInfo1.value.list && marketInfo1.value.list.length > 4) {
  331. swiperRef.value.prev()
  332. }
  333. }
  334. const swiperNext = () => {
  335. if (marketInfo1.value.list && marketInfo1.value.list.length > 4) {
  336. swiperRef.value.next()
  337. }
  338. }
  339. lang.value = userStore.getLang
  340. // 轮播图
  341. const data = await carouselListData();
  342. carouselList.value = data;
  343. console.log(carouselList.value)
  344. // 研究报告分类
  345. reportDict.value = await getLocalSessionReport();
  346. // 研究报告列表
  347. const map = await reportAndMarketListData();
  348. console.log("map", map)
  349. reports.value = map.report;
  350. markets.value = map.market;
  351. // onMounted(async () => {
  352. reportDict.value = await getLocalSessionReport();
  353. // })
  354. let params1 = {
  355. marketTypeList: "market-dynamic,market-dynamic",
  356. pageNo: 1,
  357. pageSize: 5
  358. }
  359. const marketInfoRet1 = await marketInfoPageList(params1);
  360. marketInfo1.value = marketInfoRet1;
  361. console.log("marketInfo1", marketInfo1.value)
  362. // let params2 = {
  363. // marketTypeList: "industry-information,policy-interpretation",
  364. // pageNo: 1,
  365. // pageSize: 2
  366. // }
  367. // const marketInfoRet2 = await marketInfoPageList(params2);
  368. // marketInfo2.value = marketInfoRet2;
  369. useHead({
  370. title: t('defaultSettings.title'),
  371. viewport: "width=device-width,initial-scale=1,maximum-scale=1 ",
  372. charset: "utf-8",
  373. meta: [
  374. { hid: "keywords", name: "keywords", content: t('defaultSettings.keyword') },
  375. {
  376. hid: "description",
  377. name: "description",
  378. content: t('defaultSettings.desc'),
  379. },
  380. ],
  381. });
  382. </script>
  383. <style scoped lang="scss">
  384. @import "~/assets/css/tool.scss";
  385. .home {
  386. .home_t {
  387. height: calc(100vh - var(--size-265));
  388. .img {
  389. position: absolute;
  390. top: var(--size--50);
  391. bottom: var(--size--50);
  392. left: var(--size--50);
  393. right: var(--size--50);
  394. .carousel-img {
  395. width: 100%;
  396. height: 100%;
  397. object-fit: cover;
  398. }
  399. }
  400. .desc {
  401. padding: var(--size-60);
  402. display: flex;
  403. flex-direction: column;
  404. justify-content: center;
  405. position: relative;
  406. height: 100%;
  407. overflow: hidden;
  408. z-index: 100;
  409. .desc_title {
  410. font-size: var(--size-48);
  411. color: #ffffff;
  412. font-weight: 900;
  413. }
  414. .desc_tig {
  415. font-size: var(--size-24);
  416. color: #ffffff;
  417. font-weight: 700;
  418. margin-bottom: var(--size-20);
  419. }
  420. .desc_btn {
  421. width: var(--size-170);
  422. height: var(--size-60);
  423. background: linear-gradient(0deg, #7b9c4f 0%, #2da19d 100%), #1a1a1a;
  424. border-radius: var(--size-8);
  425. text-align: center;
  426. line-height: var(--size-60);
  427. font-size: var(--size-18);
  428. color: #ffffff;
  429. cursor: pointer;
  430. }
  431. }
  432. }
  433. .numList {
  434. display: flex;
  435. align-items: center;
  436. padding: 0 var(--size-75);
  437. background: #f5f5f5;
  438. .item {
  439. display: flex;
  440. flex-direction: column;
  441. justify-content: center;
  442. padding: 0 var(--size-70);
  443. height: var(--size-265);
  444. position: relative;
  445. &::after {
  446. position: absolute;
  447. right: 0;
  448. top: var(--size-62);
  449. display: block;
  450. content: "";
  451. width: var(--size-1);
  452. height: var(--size-142);
  453. background: #cccccc;
  454. }
  455. &:nth-child(1) {
  456. width: var(--size-357);
  457. }
  458. &:nth-child(2) {
  459. width: var(--size-354);
  460. }
  461. &:nth-child(3) {
  462. width: var(--size-356);
  463. }
  464. &:nth-child(4) {
  465. width: var(--size-343);
  466. }
  467. &:nth-child(5) {
  468. width: var(--size-342);
  469. &::after {
  470. display: none;
  471. }
  472. }
  473. .iconfont {
  474. font-size: var(--size-62);
  475. color: #808080;
  476. line-height: var(--size-62);
  477. }
  478. .item_img {
  479. width: var(--size-62);
  480. height: var(--size-62);
  481. }
  482. .item_t {
  483. color: transparent;
  484. background-image: linear-gradient(0deg, #7b9c4f 0%, #2da19d 100%);
  485. -webkit-background-clip: text;
  486. background-clip: text;
  487. display: inline-block;
  488. font-size: var(--size-40);
  489. font-family: FZZhengHeiS-B-GB, FZZhengHeiS-B-GB-Regular;
  490. font-weight: 700;
  491. margin-top: var(--size-10);
  492. }
  493. .item_b {
  494. font-size: var(--size-16);
  495. color: #1a1a1a;
  496. font-family: Arial, Arial-Regular;
  497. }
  498. }
  499. }
  500. .marketBox {
  501. padding: var(--size-60) var(--size-145) var(--size-100);
  502. background: #ffffff;
  503. position: relative;
  504. .direction {
  505. width: var(--size-73);
  506. height: var(--size-73);
  507. background: #ffffff;
  508. border-radius: 50%;
  509. position: absolute;
  510. top: 40%;
  511. display: flex;
  512. align-items: center;
  513. justify-content: center;
  514. cursor: pointer;
  515. }
  516. .carousel_l {
  517. left: var(--size-105);
  518. span {
  519. display: block;
  520. transform: rotateZ(-180deg);
  521. font-size: var(--size-42);
  522. color: #1a1a1a;
  523. }
  524. }
  525. .carousel_r {
  526. right: var(--size-105);
  527. span {
  528. display: block;
  529. font-size: var(--size-42);
  530. color: #1a1a1a;
  531. }
  532. }
  533. ::v-deep .n-carousel__slide,
  534. ::v-deep .n-carousel {
  535. // overflow: visible !important;
  536. }
  537. .marketBox_title {
  538. font-size: var(--size-48);
  539. color: #1a1a1a;
  540. font-family: Impact, Impact-Regular;
  541. font-weight: 400;
  542. text-align: center;
  543. margin-bottom: var(--size-10);
  544. }
  545. .img {
  546. position: relative;
  547. .carousel-img {
  548. width: 100%;
  549. height: var(--size-700);
  550. }
  551. .desc {
  552. position: absolute;
  553. top: 0;
  554. left: var(--size-108);
  555. bottom: 0;
  556. display: flex;
  557. flex-direction: column;
  558. justify-content: center;
  559. .desc_title {
  560. width: var(--size-695);
  561. font-size: var(--size-32);
  562. font-family: Impact, Impact-Regular;
  563. color: #ffffff;
  564. line-height: var(--size-42);
  565. }
  566. .desc_btn {
  567. width: var(--size-170);
  568. height: var(--size-60);
  569. background: linear-gradient(0deg, #7b9c4f 0%, #2da19d 100%), #1a1a1a;
  570. border-radius: var(--size-8);
  571. text-align: center;
  572. line-height: var(--size-60);
  573. font-size: var(--size-18);
  574. color: #ffffff;
  575. margin: var(--size-30) 0;
  576. }
  577. }
  578. }
  579. }
  580. .popularBox {
  581. background: linear-gradient(
  582. 141deg,
  583. rgba(73, 159, 129, 0.85) 0%,
  584. rgba(116, 156, 86, 0.85) 91%
  585. ),
  586. #e2f1ee;
  587. padding: var(--size-80) var(--size-145) var(--size-80);
  588. display: flex;
  589. .popularBox_l {
  590. width: var(--size-767);
  591. margin-right: var(--size-46);
  592. flex-shrink: 0;
  593. .popularBox_l_title {
  594. display: flex;
  595. justify-content: space-between;
  596. align-items: flex-end;
  597. .popularBox_l_title_l {
  598. font-size: var(--size-48);
  599. font-family: Impact, Impact-Regular;
  600. color: #1a1a1a;
  601. line-height: var(--size-58);
  602. }
  603. .popularBox_l_title_r {
  604. font-size: var(--size-18);
  605. font-family: Microsoft YaHei, Microsoft YaHei-Regular;
  606. color: #ffffff;
  607. border-bottom: 1px solid #ffffff;
  608. span {
  609. font-size: var(--size-32);
  610. position: relative;
  611. top: var(--size-6);
  612. }
  613. }
  614. }
  615. .popularBox_l_list {
  616. margin-top: var(--size-45);
  617. display: flex;
  618. .popularBox_l_list_item {
  619. width: var(--size-360);
  620. border-radius: var(--size-10);
  621. overflow: hidden;
  622. background: #ffffff;
  623. &:first-child {
  624. margin-right: var(--size-47);
  625. }
  626. img {
  627. width: var(--size-360);
  628. height: var(--size-404);
  629. display: block;
  630. // object-fit: contain;
  631. }
  632. .popularBox_l_list_item_box {
  633. background: #ffffff;
  634. padding: var(--size-20) var(--size-18) var(--size-35);
  635. .popularBox_l_list_item_box_title {
  636. font-size: var(--size-18);
  637. font-family: Microsoft YaHei, Microsoft YaHei-Regular;
  638. color: #1a1a1a;
  639. line-height: var(--size-28);
  640. margin-bottom: var(--size-34);
  641. overflow: hidden;
  642. text-overflow: ellipsis;
  643. display: -webkit-box;
  644. -webkit-line-clamp: 2;
  645. -webkit-box-orient: vertical;
  646. }
  647. .popularBox_l_list_item_box_btn {
  648. display: block;
  649. width: var(--size-170);
  650. height: var(--size-48);
  651. background: linear-gradient(0deg, #7b9c4f 0%, #2da19d 100%),
  652. #1a1a1a;
  653. border-radius: var(--size-8);
  654. font-size: var(--size-18);
  655. font-family: Microsoft YaHei, Microsoft YaHei-Regular;
  656. text-align: center;
  657. color: #ffffff;
  658. line-height: var(--size-49);
  659. cursor: pointer;
  660. }
  661. }
  662. }
  663. }
  664. }
  665. .popularBox_r {
  666. .popularBox_r_title {
  667. font-size: var(--size-48);
  668. font-family: Impact, Impact-Regular;
  669. text-align: right;
  670. color: #ffffff;
  671. line-height: var(--size-58);
  672. }
  673. .popularBox_r_list {
  674. display: flex;
  675. flex-wrap: wrap;
  676. margin-top: var(--size-45);
  677. > div {
  678. position: relative;
  679. img {
  680. width: var(--size-199);
  681. height: var(--size-199);
  682. display: block;
  683. object-fit: cover;
  684. }
  685. div {
  686. width: 100%;
  687. font-size: var(--size-16);
  688. font-family: Arial, Arial-Regular;
  689. font-weight: 400;
  690. text-align: center;
  691. padding: 0 0 var(--size-15);
  692. color: #ffffff;
  693. line-height: var(--size-20);
  694. position: absolute;
  695. left: 0;
  696. bottom: 0;
  697. }
  698. }
  699. }
  700. }
  701. }
  702. .hotBox {
  703. padding: var(--size-80) var(--size-145) var(--size-80);
  704. background: #f5f5f5;
  705. .hotBox_title {
  706. font-size: var(--size-48);
  707. font-family: Impact, Impact-Regular;
  708. text-align: center;
  709. color: #1a1a1a;
  710. }
  711. .hotBox_list {
  712. display: flex;
  713. margin-top: var(--size-20);
  714. .hotBox_list_item {
  715. display: block;
  716. cursor: pointer;
  717. width: var(--size-514);
  718. margin-right: var(--size-43);
  719. background: #ffffff;
  720. &:last-child {
  721. margin-right: 0;
  722. }
  723. img {
  724. width: var(--size-514);
  725. height: var(--size-372);
  726. display: block;
  727. // object-fit: contain;
  728. }
  729. .hotBox_list_item_box {
  730. padding: var(--size-30) var(--size-18) var(--size-41);
  731. background: #ffffff;
  732. border-bottom: var(--size-7) solid #ffffff;
  733. .hotBox_list_item_box_date {
  734. font-size: var(--size-18);
  735. font-family: Arial, Arial-Regular;
  736. font-weight: 400;
  737. text-align: left;
  738. color: #666666;
  739. padding: 0 var(--size-14);
  740. border-left: 1px solid #666666;
  741. border-right: 1px solid #666666;
  742. line-height: var(--size-20);
  743. display: inline-block;
  744. margin-left: var(--size-2);
  745. }
  746. .hotBox_list_item_box_text {
  747. font-size: var(--size-26);
  748. font-family: Arial, Arial-Bold;
  749. font-weight: 700;
  750. text-align: left;
  751. color: #1a1a1a;
  752. margin-top: var(--size-6);
  753. overflow: hidden;
  754. text-overflow: ellipsis;
  755. display: -webkit-box;
  756. -webkit-line-clamp: 2;
  757. -webkit-box-orient: vertical;
  758. }
  759. }
  760. &:hover {
  761. .hotBox_list_item_box {
  762. border-bottom: var(--size-7) solid #509f7a;
  763. .hotBox_list_item_box_date {
  764. color: #509f7a;
  765. border-left: 1px solid #509f7a;
  766. border-right: 1px solid #509f7a;
  767. }
  768. .hotBox_list_item_box_text {
  769. color: #509f7a;
  770. }
  771. }
  772. }
  773. }
  774. }
  775. .hotBox_btn {
  776. display: block;
  777. width: var(--size-217);
  778. height: var(--size-60);
  779. background: linear-gradient(0deg, #7b9c4f 0%, #2da19d 100%), #1a1a1a;
  780. border-radius: var(--size-8);
  781. text-align: center;
  782. line-height: var(--size-60);
  783. font-size: var(--size-18);
  784. color: #ffffff;
  785. margin: var(--size-40) auto 0;
  786. cursor: pointer;
  787. }
  788. }
  789. .researchBox {
  790. padding: var(--size-80) var(--size-145) var(--size-155);
  791. .researchBox_title {
  792. font-size: var(--size-48);
  793. font-family: Impact, Impact-Regular;
  794. text-align: center;
  795. color: #1a1a1a;
  796. }
  797. .researchBox_list {
  798. display: flex;
  799. justify-content: space-between;
  800. margin-top: var(--size-20);
  801. .researchBox_list_item {
  802. width: var(--size-253);
  803. height: var(--size-166);
  804. background: #fafafa;
  805. border-radius: var(--size-8);
  806. padding-top: var(--size-28);
  807. cursor: pointer;
  808. text-align: center;
  809. img {
  810. height: var(--size-70);
  811. margin: auto;
  812. }
  813. .imga {
  814. display: none;
  815. }
  816. div {
  817. font-size: var(--size-18);
  818. font-family: Arial, Arial-Bold;
  819. font-weight: 700;
  820. text-align: center;
  821. color: #1a1a1a;
  822. margin-top: var(--size-12);
  823. }
  824. &:hover {
  825. background: #e2f1ee;
  826. .imga {
  827. display: block;
  828. }
  829. .img {
  830. display: none !important;
  831. }
  832. div {
  833. color: #639e57;
  834. }
  835. }
  836. }
  837. // .active {
  838. // background: #e2f1ee;
  839. // div {
  840. // color: #639e57;
  841. // }
  842. // }
  843. }
  844. }
  845. .customersBox {
  846. background: #f6faf7;
  847. padding: var(--size-80) var(--size-145) var(--size-140);
  848. .customersBox_title {
  849. font-size: var(--size-48);
  850. font-family: Impact, Impact-Regular;
  851. text-align: center;
  852. color: #1a1a1a;
  853. }
  854. .customersBox_subTitle {
  855. font-size: var(--size-18);
  856. font-family: Arial, Arial-Regular;
  857. text-align: center;
  858. color: #666666;
  859. }
  860. .customersBox_carousel {
  861. margin-top: var(--size-45);
  862. .customersBox_carousel_item {
  863. display: flex;
  864. justify-content: space-between;
  865. img {
  866. height: var(--size-70);
  867. }
  868. }
  869. }
  870. }
  871. }
  872. @include responseTo("phone") {
  873. .home {
  874. .home_t {
  875. height: 100vh;
  876. .desc {
  877. padding: var(--size-30);
  878. .desc_title {
  879. font-size: var(--size-24);
  880. }
  881. .desc_tig {
  882. font-size: var(--size-12);
  883. }
  884. }
  885. }
  886. .numList {
  887. padding: 0 var(--size-30);
  888. display: block;
  889. .item {
  890. width: 100% !important;
  891. height: auto;
  892. padding: var(--size-20) 0;
  893. text-align: center;
  894. img {
  895. margin: auto;
  896. }
  897. &::after {
  898. display: none;
  899. }
  900. }
  901. }
  902. .marketBox {
  903. padding: var(--size-30) var(--size-30) var(--size-50);
  904. .marketBox_title {
  905. font-size: var(--size-24);
  906. font-weight: 700;
  907. }
  908. .img {
  909. .carousel-img {
  910. height: auto;
  911. }
  912. .desc {
  913. left: 0;
  914. padding: var(--size-20);
  915. .desc_title {
  916. width: 100%;
  917. font-size: var(--size-16);
  918. line-height: var(--size-18);
  919. }
  920. .desc_btn {
  921. width: var(--size-130);
  922. height: var(--size-45);
  923. border-radius: var(--size-4);
  924. text-align: center;
  925. line-height: var(--size-45);
  926. font-size: var(--size-14);
  927. color: #ffffff;
  928. margin: var(--size-15) auto;
  929. }
  930. }
  931. }
  932. .direction {
  933. width: var(--size-36);
  934. height: var(--size-36);
  935. top: 48%;
  936. span {
  937. font-size: var(--size-21);
  938. }
  939. }
  940. .carousel_l {
  941. left: var(--size-7);
  942. }
  943. .carousel_r {
  944. right: var(--size-7);
  945. }
  946. }
  947. .popularBox {
  948. display: block;
  949. padding: var(--size-30);
  950. .popularBox_l {
  951. margin-right: 0;
  952. .popularBox_l_title {
  953. display: block;
  954. .popularBox_l_title_l {
  955. font-size: var(--size-24);
  956. line-height: var(--size-29);
  957. margin-right: 0;
  958. font-weight: 700;
  959. }
  960. .popularBox_l_title_r {
  961. display: inline-block;
  962. font-size: var(--size-14);
  963. }
  964. }
  965. .popularBox_l_list {
  966. justify-content: space-between;
  967. .popularBox_l_list_item {
  968. width: 48%;
  969. margin: 0 !important;
  970. img {
  971. width: 100%;
  972. height: auto;
  973. }
  974. .popularBox_l_list_item_box {
  975. padding: var(--size-10) var(--size-10) var(--size-18);
  976. .popularBox_l_list_item_box_title {
  977. font-size: var(--size-14);
  978. line-height: var(--size-14);
  979. margin-bottom: var(--size-17);
  980. }
  981. .popularBox_l_list_item_box_btn {
  982. display: block;
  983. width: var(--size-80);
  984. height: var(--size-24);
  985. border-radius: var(--size-4);
  986. font-size: var(--size-12);
  987. line-height: var(--size-24);
  988. }
  989. }
  990. }
  991. }
  992. }
  993. .popularBox_r {
  994. .popularBox_r_title {
  995. font-size: var(--size-24);
  996. line-height: var(--size-30);
  997. font-weight: 700;
  998. text-align: left;
  999. margin-top: var(--size-20);
  1000. }
  1001. .popularBox_r_list {
  1002. margin-top: var(--size-22);
  1003. }
  1004. .popularBox_r_list {
  1005. display: flex;
  1006. > div {
  1007. width: 50%;
  1008. img {
  1009. width: 100%;
  1010. height: var(--size-105);
  1011. display: block;
  1012. }
  1013. div {
  1014. width: 100%;
  1015. font-size: var(--size-12);
  1016. padding: 0 0 var(--size-6);
  1017. }
  1018. }
  1019. }
  1020. }
  1021. }
  1022. .hotBox {
  1023. padding: var(--size-30);
  1024. .hotBox_title {
  1025. font-size: var(--size-24);
  1026. }
  1027. .hotBox_list {
  1028. display: block;
  1029. .hotBox_list_item {
  1030. width: var(--size-257);
  1031. margin: auto !important;
  1032. margin-bottom: var(--size-20) !important;
  1033. img {
  1034. width: var(--size-257);
  1035. height: var(--size-186);
  1036. }
  1037. .hotBox_list_item_box {
  1038. padding: var(--size-15) var(--size-9) var(--size-20);
  1039. .hotBox_list_item_box_date {
  1040. font-size: var(--size-12);
  1041. line-height: var(--size-16);
  1042. }
  1043. .hotBox_list_item_box_text {
  1044. font-size: var(--size-14);
  1045. }
  1046. }
  1047. }
  1048. }
  1049. }
  1050. .researchBox {
  1051. padding: var(--size-30);
  1052. .researchBox_title {
  1053. font-size: var(--size-24);
  1054. }
  1055. .researchBox_list {
  1056. flex-wrap: wrap;
  1057. justify-content: space-between;
  1058. .researchBox_list_item {
  1059. width: 48%;
  1060. height: var(--size-166);
  1061. background: #fafafa;
  1062. border-radius: var(--size-8);
  1063. padding-top: var(--size-28);
  1064. margin-bottom: var(--size-20);
  1065. }
  1066. }
  1067. }
  1068. .customersBox {
  1069. padding: var(--size-30) var(--size-10) !important;
  1070. .customersBox_title {
  1071. font-size: var(--size-24);
  1072. }
  1073. .customersBox_subTitle {
  1074. font-size: var(--size-14);
  1075. }
  1076. .customersBox_carousel {
  1077. .customersBox_carousel_item {
  1078. flex-wrap: wrap;
  1079. align-items: center;
  1080. img {
  1081. width: var(--size-105);
  1082. height: auto;
  1083. margin-bottom: var(--size-20);
  1084. }
  1085. }
  1086. }
  1087. }
  1088. }
  1089. }
  1090. ::v-deep .customersBox_carousel {
  1091. .n-carousel.n-carousel--bottom .n-carousel__dots {
  1092. display: none;
  1093. }
  1094. }
  1095. </style>