index.vue 30 KB

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