IndexView.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065
  1. <script setup>
  2. import Layout from '../components/common/Layout.vue';
  3. import { onBeforeUnmount, onMounted, ref } from "vue";
  4. import { getstudentAPI } from '@/apis/studentlistAPI.js';
  5. import { getSlidephotoAPI, getAdvantageAPI, getServiceAPI } from '@/apis/indexAPI.js';
  6. import index1 from '../assets/images/newindex/lunbo1.png';
  7. import index2 from '../assets/images/newindex/lunbo2.png';
  8. import index3 from '../assets/images/newindex/lunbo3.png';
  9. import c1 from '../assets/images/newIndex/c1.png';
  10. import c2 from '../assets/images/newindex/c2.png';
  11. import c3 from '../assets/images/newindex/c3.png';
  12. import news from '../assets/images/newindex/news.png';
  13. import news1 from '../assets/images/newindex/news1.png';
  14. import news2 from '../assets/images/newindex/news2.png';
  15. import { useRouter } from 'vue-router';
  16. // 导入swiper组件
  17. import { Swiper, SwiperSlide } from "swiper/vue";
  18. // 引入swiper样式(按需导入)
  19. import "swiper/css";
  20. import "swiper/css/pagination"; // 轮播图底面的小圆点
  21. import "swiper/css/autoplay"; // 自动播放样式
  22. // 引入swiper核心和所需模块
  23. import { Mousewheel, Pagination, Autoplay } from "swiper/modules";
  24. const modules = [Mousewheel, Pagination, Autoplay];
  25. // swiper实例
  26. const homeSwiper = ref(null);
  27. // 初始化
  28. const onSwiper = (swiper) => {
  29. homeSwiper.value = swiper;
  30. };
  31. // swiper切换时触发
  32. const onSlideChange = (swiper) => {
  33. };
  34. const tabList = ref([
  35. { name: '家用电梯', desc: '一句话概括特点', icon: 'fa fa-arrows-h' },
  36. { name: '家用电梯', desc: '一句话概括特点', icon: 'am-icon-cog' },
  37. { name: '别墅电梯', desc: '一句话概括特点', icon: 'am-icon-lightbulb-o' },
  38. { name: '观光电梯', desc: '一句话概括特点', icon: 'am-icon-line-chart' },
  39. { name: '关于我们', desc: '一句话概括特点', icon: 'am-icon-hourglass-end' },
  40. ])
  41. const tabIndex = ref(0)
  42. const slideshow = ref([
  43. {
  44. ImageUrl: index3,
  45. // Name: 'eee',
  46. // Desc: '聚焦市场拓展',
  47. // Desc1: '聚力公司治理',
  48. // Desc2: '聚心社会价值',
  49. // Desc3: 'FOCUS ON MARKET EXPANSION',
  50. // Desc4: 'FOCUS ON CORPORATE GOVERNANCE',
  51. // Desc5: 'FOCUS ON SOCIAL VALUE',
  52. },
  53. {
  54. ImageUrl: index2,
  55. Name: 'aaa',
  56. Desc: '',
  57. Desc1: '',
  58. Desc2: ' ',
  59. Desc3: ' ',
  60. },
  61. {
  62. ImageUrl: index1,
  63. Name: '',
  64. // Desc: '更加绿色更可持续',
  65. // Desc1: 'More Green More Sustainable',
  66. }
  67. ])
  68. const advantageList = ref([
  69. { id: 1, Cover: c3, title: '烟叶业务', desc: '我们的烟叶业务是从全球主要烟叶产区采购各类型烟叶类产品,并销售至全球市场。。' },
  70. { id: 2, Cover: c2, title: '卷烟业务', desc: '我们的卷烟业务是从中国烟草旗下的卷烟生产企业采购卷烟产品,并销售至全球市场(中国内地除外)以及中国内地境内关外免税店。。' },
  71. { id: 3, Cover: c1, title: '新型烟草业务', desc: '我们的新型烟草业务是从中国烟草旗下的卷烟生产企业采购新型烟草制品,并独家销售至全球市场(中国内地除外)。' },
  72. ])
  73. const serviceList = ref([
  74. { id: 1, icon: 'am-icon-diamond', title: '多页面工作', desc: '标签栏可切换,不必为了新内容而被迫跳转界面,多项工作内容并行处理' },
  75. { id: 2, icon: 'am-icon-user', title: '多页面工作', desc: '标签栏可切换,不必为了新内容而被迫跳转界面,多项工作内容并行处理' },
  76. { id: 3, icon: 'am-icon-umbrella', title: '多页面工作', desc: '标签栏可切换,不必为了新内容而被迫跳转界面,多项工作内容并行处理' },
  77. { id: 4, icon: 'am-icon-briefcase', title: '多页面工作', desc: '标签栏可切换,不必为了新内容而被迫跳转界面,多项工作内容并行处理' },
  78. ]);
  79. const swiperList = ref([
  80. // {
  81. // title: '中烟香港亮相多特蒙德',
  82. // title1: 'InterTabac 2024国际烟草展会',
  83. // // img:,
  84. // content: '中烟香港统一组织66人的策展团队,代表中国烟草13家工业企业,携25个品牌、超100个品规的加热烟及30款雪茄产品参展,规模为历次之最。',
  85. // date: '2024.10.14'
  86. // },
  87. // {
  88. // title: '中烟香港亮相多特蒙德InterTabac 2024国际烟草展会 深化全球烟草市场布局',
  89. // title1: 'InterTabac 2024国际烟草展会',
  90. // content: '北京时间2024年9月19日,德国多特蒙德InterTabac 2024国际烟草展会开幕。',
  91. // date: '2024.09.16'
  92. // }
  93. {
  94. img: news,
  95. },
  96. {
  97. img: news1,
  98. },
  99. {
  100. img: news2,
  101. }
  102. ])
  103. const indexPhoto = ref()
  104. const changeTab = (ind) => {
  105. tabIndex.value = ind
  106. // indexPhoto.value.style.opcity = '1'
  107. }
  108. const getSlideshow = async () => {
  109. const { data: res } = await getSlidephotoAPI();
  110. console.log(res.Data);
  111. slideshow.value = res.Data
  112. }
  113. const getAdvantage = async () => {
  114. const { data: res } = await getAdvantageAPI();
  115. console.log(res);
  116. advantageList.value = res.Data
  117. }
  118. const getService = async () => {
  119. const { data: res } = await getServiceAPI();
  120. console.log(res);
  121. serviceList.value = res.Data
  122. }
  123. const timer = ref(null)
  124. const swiper = () => {
  125. if (timer.value) {
  126. return
  127. }
  128. let looper = (a) => {
  129. if (tabIndex.value >= slideshow.value.length - 1) {
  130. tabIndex.value = -1
  131. }
  132. changeTab(tabIndex.value + 1)
  133. }
  134. timer.value = setInterval(looper, 3000)
  135. }
  136. const clearData = () => {
  137. if (timer.value) {
  138. clearInterval(timer.value);
  139. timer.value = null
  140. }
  141. }
  142. const closeit = () => {
  143. clearData();
  144. }
  145. const openit = () => {
  146. swiper();
  147. }
  148. const goTo = (item) => {
  149. // 跳到别的网站怎么写
  150. window.open('https://www.dotdotnews.com/s/202409/14/AP66e52bdce4b0d645a76ba050.html')
  151. }
  152. const card = ref('');
  153. // 当屏幕小于640px时,设置为vertical
  154. if (window.innerWidth < 640) {
  155. card.value = '';
  156. } else {
  157. card.value = 'card';
  158. }
  159. // 数字翻牌器
  160. import { useTransition } from '@vueuse/core'
  161. const source = ref(0)
  162. const outputValue = useTransition(source, {
  163. duration: 1500,
  164. })
  165. source.value = 24900;
  166. const source1 = ref(0)
  167. const outputValue1 = useTransition(source1, {
  168. duration: 1500,
  169. })
  170. source1.value = 87;
  171. const source2 = ref(0)
  172. const outputValue2 = useTransition(source2, {
  173. duration: 1500,
  174. })
  175. source2.value = 31;
  176. const formatter = (value) => {
  177. // 使用toFixed保留小数点后两位
  178. return `${value.toFixed(2)}`;
  179. }
  180. const source3 = ref(0)
  181. const outputValue3 = useTransition(source3, {
  182. duration: 1500,
  183. })
  184. source3.value = 0.97;
  185. // const videoPlayer = ref(null);
  186. const newsList = ref([
  187. {
  188. id: 1,
  189. title: '国际集团组织员工参观沙头角禁区及香港回归纪念塔活动',
  190. content: '2025年6月27日,为庆祝香港回归祖国暨香港特别行政区成立二十八周年,国际集团组织全体员工赴新界沙头角禁区开展专题参观学习。队伍依次参观“沙头角之角”石碑,远眺中英街界碑及“一街两制”警戒线,随后考察沙头角口岸旅检大楼旧址,系统了解边境管理沿革与深港合作历程;',
  191. date: '2025-06-27'
  192. },
  193. {
  194. id: 2,
  195. title: '国际集团召开2025年一季度经济运行分析会',
  196. content: '4月15日,中烟国际集团有限公司召开一季度经济运行分析会,传达国家局、总公司经济运行分析会精神,分析研究国际集团一季度经济运行情况,安排部署下一步重点工作。国际集团党组书记、总经理邵岩同志指出,一季度国际',
  197. date: '2025-04-15'
  198. },
  199. // {
  200. // id:3,
  201. // title: '国际集团参加香港中企协保龄球邀请赛',
  202. // content: '为进一步加强与驻港中资企业交流,丰富员工文体生活,国际集团积极响应香港中企协的号召,组队参与3月29日在香港启德体育园举办的“‘龄’动精彩,球艺飞扬”中企保龄球邀请赛。国际集团代表队队员们全程投入,奋力拼搏',
  203. // date: '2025-04-01 10:30:00'
  204. // },
  205. // {
  206. // id:4,
  207. // title: '国际集团举办《哪吒2》主题观影活动',
  208. // content: '2025年2月26日,国际集团组织员工及家属集体观看国产动画《哪吒2》。影片以传统神话为根基,通过前沿数字技术与东方美学叙事的深度融合,以哪吒“逆天改命”的成长史诗,生动诠释了中华文明“自强不息”的精神内核。多名员工表示,这场视听盛宴不仅让传统文化“活起来”,更让文化自信“强起来”——既为中华文明“守正创新”的基因所震撼,也为身为文化传承者深感自豪。',
  209. // date: '2015-03-05 14:29:00'
  210. // }
  211. ])
  212. const groupList = ref([
  213. {
  214. id: 1,
  215. name: '中烟国际(香港)',
  216. nameEnglish: 'China Tobacco International (Hong Kong)',
  217. },
  218. {
  219. id: 2,
  220. name: '天泽烟草',
  221. nameEnglish: 'Tianze Tobacco',
  222. },
  223. {
  224. id: 3,
  225. name: '中烟国际巴西',
  226. nameEnglish: 'China Tobacco International Brazil',
  227. },
  228. {
  229. id: 4,
  230. name: '中烟国际(北美)',
  231. nameEnglish: 'China Tobacco International (North America)',
  232. },
  233. {
  234. id: 5,
  235. name: '中烟国际阿根廷',
  236. nameEnglish: 'China Tobacco International Argentina',
  237. },
  238. {
  239. id: 6,
  240. name: '中烟国际(中东)',
  241. nameEnglish: 'China Tobacco International (Middle East)',
  242. },
  243. {
  244. id: 7,
  245. name: '中烟英美国际',
  246. nameEnglish: 'China Tobacco British American International',
  247. },
  248. {
  249. id: 8,
  250. name: '中烟菲莫国际',
  251. nameEnglish: 'China Tobacco Philip Morris International',
  252. },
  253. {
  254. id: 9,
  255. name: '中烟国际(香港)制造',
  256. nameEnglish: 'China Tobacco International (Hong Kong) Manufacturing',
  257. },
  258. {
  259. id: 10,
  260. name: '中烟国际(澳门)制造',
  261. nameEnglish: 'China Tobacco International (Macau) Manufacturing',
  262. },
  263. {
  264. id: 11,
  265. name: '中烟国际(老挝)制造',
  266. nameEnglish: 'China Tobacco International (Laos) Manufacturing',
  267. },
  268. {
  269. id: 12,
  270. name: '中烟国际(柬埔寨)制造',
  271. nameEnglish: 'China Tobacco International (Cambodia) Manufacturing',
  272. },
  273. {
  274. id: 13,
  275. name: '中烟国际(罗马尼亚)制造',
  276. nameEnglish: 'China Tobacco International (Romania) Manufacturing',
  277. },
  278. {
  279. id: 14,
  280. name: '中烟国际(瑞士)',
  281. nameEnglish: 'China Tobacco International (Switzerland)',
  282. },
  283. {
  284. id: 15,
  285. name: '中烟国际(欧洲)',
  286. nameEnglish: 'China Tobacco International (Europe)',
  287. },
  288. ])
  289. const route = useRouter();
  290. const handleClick = (item) => {
  291. console.log('item', item);
  292. // 跳转到子公司详情页,使用路径参数传递
  293. route.push(`/subGroup/${item.id}`);
  294. console.log('点击了公司项:', item);
  295. }
  296. const handleGoNew = () => {
  297. // 跳转到新闻页面
  298. route.push('/news');
  299. }
  300. const goDetail = (id) => {
  301. route.push(`/newsDetail/${id}`);
  302. }
  303. // 移动端判断
  304. const isMobile = ref(false)
  305. // 检查是否为移动端
  306. const checkMobile = () => {
  307. isMobile.value = window.innerWidth <= 768
  308. }
  309. onMounted(() => {
  310. // videoPlayer.value.play();
  311. // getSlideshow();
  312. // getAdvantage();
  313. // getService();
  314. // 初始化检查移动端
  315. checkMobile()
  316. // 监听窗口大小变化
  317. window.addEventListener('resize', checkMobile)
  318. swiper();
  319. })
  320. onBeforeUnmount(() => {
  321. window.removeEventListener('resize', checkMobile)
  322. clearData();
  323. })
  324. </script>
  325. <template>
  326. <Layout>
  327. <div style="width: 100%">
  328. <div class="index-page">
  329. <!-- 使用Swiper替换原有的轮播 -->
  330. <Swiper :modules="modules" :slides-per-view="1" :space-between="0" :pagination="{ clickable: true }"
  331. :mousewheel="false" :allowTouchMove="true" :autoplay="{ delay: 3000, disableOnInteraction: false }"
  332. :loop="true" @swiper="onSwiper" @slideChange="onSlideChange" class="home-swiper">
  333. <SwiperSlide v-for="(slide, index) in slideshow" :key="index" class="swiper-slide-item" :style="{
  334. backgroundImage: `url(${slide.ImageUrl})`,
  335. backgroundRepeat: 'no-repeat',
  336. backgroundSize: 'cover',
  337. backgroundPosition: 'center'
  338. }">
  339. <div class="index-banner">
  340. <!-- 可以在这里添加轮播图上的内容 -->
  341. </div>
  342. </SwiperSlide>
  343. </Swiper>
  344. </div>
  345. </div>
  346. <div class="news-section">
  347. <div class="newsTitle" v-if="isMobile">{{ $t('message.t3') }}</div>
  348. <div>
  349. <img src="../assets/images/newIndex/news.jpg" alt="" style="width: 100%; height: 100%;"
  350. @click="goDetail(4)">
  351. </div>
  352. <div class="news-content">
  353. <div class="newsTitle" v-if="!isMobile">{{ $t('message.t3') }}</div>
  354. <div class="news-boxes">
  355. <div v-for="item in newsList" :key="item.title" class="news-item" @click="goDetail(item.id)">
  356. <div class="news-item-title">{{ item.title }}</div>
  357. <div class="news-item-content">{{ item.content }}</div>
  358. <span class="news-item-date">{{ item.date }}</span>
  359. </div>
  360. </div>
  361. <div class="newsBtn" @click="handleGoNew">{{ $t('message.gengduoxinwen') }}</div>
  362. </div>
  363. </div>
  364. <div class="group-section">
  365. <div class="group-title">{{ $t('message.suoshuqiye') }}</div>
  366. <div class="group-line"></div>
  367. <div class="group-list">
  368. <div v-for="(item, index) in groupList" class="group-item" :key="index" @click="handleClick(item)">
  369. <div>{{ item.name }}</div>
  370. <div></div>
  371. <!-- <div>{{ item.nameEnglish }}</div> -->
  372. <img src="../assets/images/newIndex/svg.png" alt="">
  373. </div>
  374. </div>
  375. </div>
  376. </Layout>
  377. </template>
  378. <style lang="scss" scoped>
  379. // Swiper轮播图样式
  380. .home-swiper {
  381. width: 100%;
  382. // height: 700px;
  383. // @media screen and (min-width: 768px) {
  384. // height: 500px;
  385. // }
  386. // @media screen and (min-width: 1024px) {
  387. // height: 600px;
  388. // }
  389. // 轮播项样式
  390. .swiper-slide-item {
  391. width: 100%;
  392. height: 100%;
  393. display: flex;
  394. align-items: center;
  395. justify-content: center;
  396. position: relative;
  397. }
  398. // 分页器样式
  399. :deep(.swiper-pagination) {
  400. bottom: 20px !important;
  401. .swiper-pagination-bullet {
  402. background: rgba(255, 255, 255, 0.9);
  403. opacity: 1;
  404. width: 0.8rem;
  405. height: 0.8rem;
  406. margin: 0 0.4rem;
  407. transition: all 0.3s ease;
  408. &.swiper-pagination-bullet-active {
  409. background: #F7B334;
  410. width: 3rem;
  411. /* 激活状态下的横线更长 */
  412. height: 0.6rem;
  413. transform: scale(1.1);
  414. border-radius: 3px;
  415. }
  416. }
  417. }
  418. }
  419. // 公司介绍部分响应式
  420. .section {
  421. padding: 40px 0;
  422. @media screen and (min-width: 768px) {
  423. padding: 60px 0;
  424. }
  425. @media screen and (min-width: 1024px) {
  426. padding: 80px 0;
  427. }
  428. .section--header {
  429. .section--title {
  430. font-size: 2rem;
  431. font-weight: 300;
  432. text-align: center;
  433. margin-bottom: 1rem;
  434. @media screen and (min-width: 768px) {
  435. font-size: 2.5rem;
  436. }
  437. @media screen and (min-width: 1024px) {
  438. font-size: 3rem;
  439. }
  440. }
  441. .english-title {
  442. font-size: 1.5rem;
  443. color: #007557;
  444. text-align: center;
  445. font-weight: bold;
  446. @media screen and (min-width: 768px) {
  447. font-size: 2rem;
  448. }
  449. @media screen and (min-width: 1024px) {
  450. font-size: 2.5rem;
  451. }
  452. }
  453. .english-title1 {
  454. font-size: 1rem;
  455. color: #007557;
  456. text-align: center;
  457. margin-bottom: 2rem;
  458. @media screen and (min-width: 768px) {
  459. font-size: 1.2rem;
  460. }
  461. @media screen and (min-width: 1024px) {
  462. font-size: 1.5rem;
  463. }
  464. }
  465. }
  466. .container1 {
  467. display: flex;
  468. align-items: center;
  469. gap: 2rem;
  470. @media screen and (max-width: 767px) {
  471. flex-direction: column;
  472. gap: 1rem;
  473. }
  474. .boxs {
  475. width: 100%;
  476. position: relative;
  477. top: -20px;
  478. box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  479. padding: 10px;
  480. background: white;
  481. border-radius: 8px;
  482. @media screen and (min-width: 768px) {
  483. width: 40%;
  484. }
  485. @media screen and (max-width: 767px) {
  486. top: 0;
  487. order: 2;
  488. }
  489. }
  490. .section--description-index {
  491. width: 100%;
  492. font-size: 1rem;
  493. line-height: 1.6;
  494. color: #9b9b9b;
  495. text-align: left;
  496. margin: 0;
  497. @media screen and (min-width: 768px) {
  498. width: 60%;
  499. font-size: 1.1rem;
  500. }
  501. @media screen and (min-width: 1024px) {
  502. width: 54%;
  503. font-size: 1.2rem;
  504. }
  505. @media screen and (max-width: 767px) {
  506. order: 1;
  507. text-align: center;
  508. }
  509. .moremore {
  510. color: #007557;
  511. cursor: pointer;
  512. margin-top: 1rem;
  513. font-weight: bold;
  514. &:hover {
  515. text-decoration: underline;
  516. }
  517. }
  518. }
  519. }
  520. }
  521. // 数字统计部分响应式
  522. .numberBox {
  523. display: flex;
  524. justify-content: space-around;
  525. margin-top: 2rem;
  526. flex-wrap: wrap;
  527. gap: 1rem;
  528. @media screen and (max-width: 767px) {
  529. flex-direction: column;
  530. align-items: center;
  531. }
  532. .number-item {
  533. text-align: center;
  534. flex: 1;
  535. min-width: 200px;
  536. @media screen and (max-width: 767px) {
  537. min-width: auto;
  538. width: 100%;
  539. }
  540. .number-value {
  541. display: flex;
  542. justify-content: center;
  543. align-items: center;
  544. gap: 0.5rem;
  545. }
  546. .number-label {
  547. font-size: 0.9rem;
  548. margin-top: 0.5rem;
  549. color: #666;
  550. @media screen and (min-width: 768px) {
  551. font-size: 1rem;
  552. }
  553. @media screen and (min-width: 1024px) {
  554. font-size: 1.1rem;
  555. }
  556. }
  557. .unit {
  558. font-size: 0.8rem;
  559. @media screen and (min-width: 768px) {
  560. font-size: 0.9rem;
  561. }
  562. @media screen and (min-width: 1024px) {
  563. font-size: 1rem;
  564. }
  565. }
  566. &:nth-child(1),
  567. &:nth-child(4) {
  568. .el-statistic__number {
  569. color: #c9082c;
  570. font-weight: bold;
  571. font-size: 1.5rem;
  572. @media screen and (min-width: 768px) {
  573. font-size: 1.8rem;
  574. }
  575. @media screen and (min-width: 1024px) {
  576. font-size: 2rem;
  577. }
  578. }
  579. }
  580. &:nth-child(2),
  581. &:nth-child(3) {
  582. .el-statistic__number {
  583. color: #006953;
  584. font-weight: bold;
  585. font-size: 1.5rem;
  586. @media screen and (min-width: 768px) {
  587. font-size: 1.8rem;
  588. }
  589. @media screen and (min-width: 1024px) {
  590. font-size: 2rem;
  591. }
  592. }
  593. }
  594. }
  595. }
  596. // 业务介绍部分响应式
  597. .index-container {
  598. .avdlayout {
  599. margin-top: 3rem;
  600. }
  601. .am-g {
  602. display: flex;
  603. flex-wrap: wrap;
  604. gap: 2rem;
  605. @media screen and (max-width: 767px) {
  606. flex-direction: column;
  607. gap: 1.5rem;
  608. }
  609. }
  610. .am-u-md-31 {
  611. flex: 1;
  612. min-width: 300px;
  613. @media screen and (max-width: 767px) {
  614. min-width: auto;
  615. }
  616. }
  617. .features_item {
  618. text-align: center;
  619. padding: 1.5rem;
  620. background: white;
  621. border-radius: 8px;
  622. box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  623. transition: transform 0.3s ease;
  624. &:hover {
  625. transform: translateY(-5px);
  626. }
  627. .imgg {
  628. width: 100%;
  629. height: 200px;
  630. border-radius: 8px;
  631. margin-bottom: 1rem;
  632. @media screen and (max-width: 767px) {
  633. height: 150px;
  634. }
  635. }
  636. .features_item--title {
  637. font-size: 1.2rem;
  638. font-weight: bold;
  639. color: #333;
  640. margin-bottom: 1rem;
  641. @media screen and (min-width: 768px) {
  642. font-size: 1.4rem;
  643. }
  644. @media screen and (min-width: 1024px) {
  645. font-size: 1.6rem;
  646. }
  647. }
  648. .features_item--text {
  649. font-size: 0.9rem;
  650. line-height: 1.6;
  651. color: #666;
  652. @media screen and (min-width: 768px) {
  653. font-size: 1rem;
  654. }
  655. @media screen and (min-width: 1024px) {
  656. font-size: 1.1rem;
  657. }
  658. }
  659. }
  660. }
  661. // 新闻部分响应式
  662. .news-section {
  663. padding-top: 0;
  664. width: 70%;
  665. display: flex;
  666. justify-content: space-between;
  667. margin-top: 1.8rem;
  668. @media screen and (min-width: 1024px) {
  669. width: 70%;
  670. display: flex;
  671. flex: 1;
  672. margin-top: 6rem;
  673. height: 46.6rem;
  674. }
  675. @media screen and (max-width: 767px) {
  676. width: 100%;
  677. flex-direction: column;
  678. margin-top: 0;
  679. }
  680. >div {
  681. @media screen and (min-width: 1024px) {
  682. width: 50%;
  683. }
  684. .newsTitle {
  685. @media screen and (min-width: 1024px) {
  686. font-size: 1.6rem;
  687. font-weight: 700;
  688. border-bottom: 0.2rem solid #F7B334;
  689. padding-bottom: 0.9rem;
  690. width: 46%;
  691. }
  692. }
  693. }
  694. >div:nth-child(1) {
  695. @media screen and (min-width: 1024px) {
  696. width: 57%;
  697. }
  698. @media screen and (max-width: 767px) {
  699. width: 80%;
  700. padding: 1.5rem 1rem;
  701. margin:0rem auto 2rem;
  702. font-size: 2.2rem;
  703. border-bottom: 0.3rem solid #F7B334;
  704. font-weight: 700;
  705. }
  706. }
  707. >div:nth-child(2) {
  708. @media screen and (min-width: 1024px) {
  709. width: 38%;
  710. }
  711. @media screen and (max-width: 767px) {
  712. width: 80%;
  713. margin: 0rem auto;
  714. }
  715. }
  716. >div:nth-child(3) {
  717. @media screen and (max-width: 767px) {
  718. width: 100%;
  719. margin: 1rem auto;
  720. }
  721. }
  722. .news-content {
  723. display: flex;
  724. flex-direction: column;
  725. // 上下两端对齐
  726. justify-content: space-between;
  727. @media screen and (min-width: 1024px) {
  728. margin-left: 3rem;
  729. margin-top: -50px;
  730. }
  731. }
  732. .news-boxes {
  733. @media screen and (min-width: 1024px) {
  734. // display: flex;
  735. // flex-wrap: wrap;
  736. }
  737. @media screen and (max-width: 767px) {
  738. width: 90%;
  739. margin: 1rem auto;
  740. >div:nth-child(1) {
  741. margin-top: 0;
  742. }
  743. }
  744. // >div:nth-child(even) {
  745. // @media screen and (min-width: 1024px) {
  746. // margin-left: 5%;
  747. // }
  748. // }
  749. // >div:nth-child(1),>div:nth-child(2) {
  750. // @media screen and (min-width: 1024px) {
  751. // margin-top: 0;
  752. // }
  753. // }
  754. }
  755. .news-item {
  756. color: #666666;
  757. cursor: pointer;
  758. @media screen and (min-width: 1024px) {
  759. position: relative;
  760. width: 100%;
  761. padding-bottom: 0.9rem;
  762. border-bottom: 1px solid #e9e9e9;
  763. margin-top: 2rem;
  764. font-size: 1.6rem;
  765. }
  766. @media screen and (max-width: 767px) {
  767. width: 100%;
  768. border-bottom: 1px solid #e9e9e9;
  769. margin-top: 1.5rem;
  770. font-size: 1.4rem;
  771. padding:0rem 0rem 1rem;
  772. }
  773. }
  774. .news-item-title {
  775. color: #555;
  776. font-size: 1.1rem;
  777. line-height: 1.6;
  778. height: 3.8rem;
  779. @media screen and (max-width: 767px) {
  780. font-size: 1.6rem;
  781. height: 5.8rem;
  782. }
  783. }
  784. .news-item-content {
  785. font-size: 0.9rem;
  786. // margin: 10px 0px 5px 0px;
  787. // 只显示3行剩下用...代替
  788. display: -webkit-box;
  789. -webkit-line-clamp: 3;
  790. line-clamp: 3;
  791. -webkit-box-orient: vertical;
  792. overflow: hidden;
  793. text-overflow: ellipsis;
  794. line-height: 1.4;
  795. max-height: 4.2em;
  796. /* 3行 × 1.4行高 = 4.2em */
  797. @media screen and (max-width: 767px) {
  798. font-size: 1.3rem;
  799. }
  800. }
  801. .news-item-date {
  802. @media screen and (min-width: 1024px) {
  803. font-size: 1rem;
  804. color: #999;
  805. }
  806. @media screen and (max-width: 767px) {
  807. font-size: 1.2rem;
  808. color: #999;
  809. margin-top: 0.5rem;
  810. }
  811. }
  812. .newsBtn {
  813. @media screen and (min-width: 1024px) {
  814. padding: 0.6rem 0rem;
  815. background-color: #F7B334;
  816. color: white;
  817. font-size: 1.1rem;
  818. text-align: center;
  819. width: 10rem;
  820. margin-top: 1rem;
  821. }
  822. @media screen and (max-width: 767px) {
  823. padding: 0.6rem 0rem;
  824. background-color: #F7B334;
  825. color: white;
  826. font-size: 1.2rem;
  827. text-align: center;
  828. width: 10rem;
  829. margin: 1rem auto;
  830. }
  831. }
  832. }
  833. .group-section {
  834. width: 70%;
  835. @media screen and (max-width: 767px) {
  836. width: 90%;
  837. display: flex;
  838. flex-direction: column;
  839. // margin:0 auto;
  840. }
  841. }
  842. .group-title {
  843. font-size: 2rem;
  844. font-weight: bold;
  845. text-align: center;
  846. margin-top: 4rem;
  847. @media screen and (min-width: 1024px) {
  848. font-size: 2rem;
  849. font-weight: bold;
  850. text-align: center;
  851. margin-top: 4rem;
  852. }
  853. @media screen and (max-width: 767px) {
  854. font-size: 1.8rem;
  855. font-weight: bold;
  856. text-align: center;
  857. margin-top: 1rem;
  858. }
  859. }
  860. .group-line {
  861. width: 6%;
  862. border-bottom: 0.3rem solid #F7B334;
  863. margin: 1.4rem auto;
  864. }
  865. .group-list {
  866. margin-top: 0.8rem;
  867. display: flex;
  868. flex-wrap: wrap;
  869. justify-content: space-between;
  870. text-align: center;
  871. @media screen and (min-width: 1024px) {
  872. margin-top: 0.8rem;
  873. display: flex;
  874. flex-wrap: wrap;
  875. justify-content: space-between;
  876. text-align: center;
  877. }
  878. }
  879. .group-item {
  880. // @media screen and (min-width: 1024px) {
  881. width: 17.5%;
  882. margin: 1rem 0rem;
  883. padding: 0.65rem 0.4rem;
  884. border: 1px solid #e9e9e9;
  885. border-radius: 8px;
  886. background-color: white;
  887. box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  888. color: #F7B334;
  889. font-size: 1.1rem;
  890. @media screen and (max-width: 767px) {
  891. width: 30%;
  892. margin: 0.5rem auto;
  893. padding: 0.65rem 0.4rem;
  894. border: 1px solid #e9e9e9;
  895. border-radius: 8px;
  896. background-color: white;
  897. box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  898. color: #F7B334;
  899. font-size: 1.2rem;
  900. }
  901. >div:nth-child(1) {
  902. @media screen and (min-width: 1024px) {
  903. margin-top: 1.3rem;
  904. font-size: 1.2rem;
  905. // font-weight: 550;
  906. border-bottom: 3px;
  907. }
  908. }
  909. >div:nth-child(2) {
  910. border: 1px solid #F7B334;
  911. width: 80%;
  912. margin: 0.5rem auto;
  913. }
  914. >img {
  915. width: 1.5rem;
  916. height: 1.5rem;
  917. margin-top: 0.3rem;
  918. }
  919. // }
  920. }
  921. // 响应式图片
  922. .responsive-img {
  923. max-width: 100%;
  924. height: auto;
  925. display: block;
  926. }
  927. // 高亮效果
  928. .highlight:hover {
  929. background: RGB(156, 214, 231);
  930. }
  931. .bgchover:hover {
  932. background: RGB(156, 214, 231);
  933. }
  934. // Swiper样式
  935. .swiper {
  936. width: 100%;
  937. height: 44.7rem;
  938. @media screen and (max-width: 767px) {
  939. height: 34rem;
  940. }
  941. }
  942. .swiper-slide {
  943. position: relative;
  944. background-color: #fafafa;
  945. width: 100%;
  946. }
  947. </style>