HomePage.vue 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233
  1. <template>
  2. <div id="HomePage">
  3. <!-- 轮播图 -->
  4. <div id="swiper" class="container-fuild">
  5. <div class="swiper-container banner-swiper">
  6. <div class="swiper-wrapper">
  7. <div class="swiper-slide" v-for="(item,index) in swiperList" :key="index">
  8. <img class="swiper-lazy" :data-src="item.img">
  9. <div class="swiper-lazy-preloader"></div>
  10. <div class="swiper-slide-title">
  11. <div class="slide-content">
  12. <h1 class="animate-title">{{ item.title }}</h1>
  13. <p class="animate-subtitle">{{ item.content }}</p>
  14. </div>
  15. </div>
  16. </div>
  17. </div>
  18. <!-- 如果需要分页器 -->
  19. <div class="swiper-pagination"></div>
  20. <!-- 如果需要导航按钮 -->
  21. <div class="swiper-button-prev">
  22. <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
  23. <polyline points="15 18 9 12 15 6"></polyline>
  24. </svg>
  25. </div>
  26. <div class="swiper-button-next">
  27. <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
  28. <polyline points="9 18 15 12 9 6"></polyline>
  29. </svg>
  30. </div>
  31. </div>
  32. </div>
  33. <!-- 解决方案列表索引 -->
  34. <div id="solutionsIndex" class="l-container-fluid l-section">
  35. <div class="container">
  36. <div class="section-header">
  37. <div class="section-tag">
  38. <span class="tag-dot"></span>
  39. <span>SOLUTIONS</span>
  40. </div>
  41. <h2 class="section-title">无人机行业解决方案</h2>
  42. <p class="section-subtitle">Professional Solutions</p>
  43. </div>
  44. <div class="solutions-grid">
  45. <router-link
  46. v-for="(item, index) in solutionsList"
  47. :key="index"
  48. :to="item.path"
  49. class="solution-card"
  50. >
  51. <div class="solution-image">
  52. <img :src="item.image" :alt="item.title">
  53. <div class="solution-overlay">
  54. <i class="solution-icon glyphicon glyphicon-link"></i>
  55. </div>
  56. </div>
  57. <div class="solution-content">
  58. <h3>{{ item.title }}</h3>
  59. <p>{{ item.description }}</p>
  60. </div>
  61. </router-link>
  62. </div>
  63. <div class="text-center">
  64. <a href="#/solutions" class="btn-view-all">
  65. 查看更多解决方案
  66. <i class="glyphicon glyphicon-chevron-right"></i>
  67. </a>
  68. </div>
  69. </div>
  70. </div>
  71. <!-- DJI Dock -->
  72. <div id="djiDock" class="l-container-fluid l-section">
  73. <div class="container">
  74. <div class="dock-grid">
  75. <div class="dock-image wow zoomIn">
  76. <div class="image-glow"></div>
  77. <img class="img-responsive" src="@/assets/img/dji-dock2.png" alt="大疆行业应用无人机">
  78. </div>
  79. <div class="dock-content wow fadeInRight">
  80. <div class="section-tag">
  81. <span class="tag-dot"></span>
  82. <span>ABOUT US</span>
  83. </div>
  84. <h2 class="dock-title">
  85. 关于我们
  86. <small>大疆行业应用经销商</small>
  87. </h2>
  88. <div class="dock-desc">
  89. <p>依托深圳市大疆创新科技有限公司一流的研发团队和齐配的供应链生产系统支持。上海展域航空技术有限公司已经在上海地区开拓了专业级大疆无人机行业应用服务市场。</p>
  90. <p>自2025年以来,随着人工智能和大语言模型的蓬勃兴起,展域航空为用户开发创造了一系列基于大模型的企业级智能体,专注于为企业提供私有化、安全、可定制的AI产品服务。并在监理行业、测绘行业取得多项成功案例和行业荣誉。</p>
  91. </div>
  92. <div class="dock-stats">
  93. <div class="stat-item">
  94. <div class="stat-number">10+</div>
  95. <div class="stat-label">行业经验</div>
  96. </div>
  97. <div class="stat-divider"></div>
  98. <div class="stat-item">
  99. <div class="stat-number">50+</div>
  100. <div class="stat-label">成功案例</div>
  101. </div>
  102. <div class="stat-divider"></div>
  103. <div class="stat-item">
  104. <div class="stat-number">24/7</div>
  105. <div class="stat-label">技术支持</div>
  106. </div>
  107. </div>
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. <!-- 您身边的无人机与AI解决方案专家 -->
  113. <div id="contactUs" class="container-fuild text-center">
  114. <div class="gradient-orb orb-1"></div>
  115. <div class="gradient-orb orb-2"></div>
  116. <div class="container contactUs-container wow slideInUp">
  117. <div class="glass-card">
  118. <h1 class="contact-title">上海展域航空技术有限公司</h1>
  119. <p class="contact-subtitle">您身边的无人机与AI解决方案专家</p>
  120. <div class="contact-actions">
  121. <router-link to="/contactus" class="btn-primary">
  122. <span>联系我们</span>
  123. <i class="arrow-right"></i>
  124. </router-link>
  125. <router-link to="/solutions" class="btn-secondary">
  126. <span>了解更多</span>
  127. </router-link>
  128. </div>
  129. </div>
  130. </div>
  131. </div>
  132. <!-- 为什么选择我们 -->
  133. <div id="whyChooseUs" class="l-container">
  134. <div class="whyChooseUs-title text-center">
  135. <div class="section-tag">
  136. <span class="tag-dot"></span>
  137. <span>SERVICES</span>
  138. </div>
  139. <p class="main-title">为什么选择我们的服务</p>
  140. <p class="sub-title">Professional Service Advantages</p>
  141. </div>
  142. <div class="row">
  143. <div
  144. class="col-xs-12 col-sm-6 col-md-4"
  145. v-for="(item,index) in serverList"
  146. :key="index"
  147. >
  148. <div class="server-card wow fadeInUp" :style="{animationDelay: index * 0.15 + 's'}">
  149. <div class="card-glow"></div>
  150. <div class="card-icon">
  151. <img :src="item.logo" alt="logo">
  152. </div>
  153. <h3 class="card-title">{{ item.title }}</h3>
  154. <div class="card-desc" v-html="item.content"></div>
  155. <div class="card-arrow">
  156. <i class="glyphicon glyphicon-chevron-right"></i>
  157. </div>
  158. </div>
  159. </div>
  160. </div>
  161. </div>
  162. <!-- 新增:技术优势展示区 -->
  163. <div id="techAdvantages" class="l-container-fluid l-section tech-section">
  164. <div class="gradient-bg"></div>
  165. <div class="container">
  166. <div class="whyChooseUs-title text-center">
  167. <div class="section-tag">
  168. <span class="tag-dot"></span>
  169. <span>ADVANTAGES</span>
  170. </div>
  171. <p class="main-title">技术优势</p>
  172. <p class="sub-title">Technical Advantages</p>
  173. </div>
  174. <div class="row tech-grid">
  175. <div class="col-xs-12 col-sm-6 col-md-3">
  176. <div class="tech-card wow zoomIn">
  177. <div class="tech-icon">
  178. <i class="glyphicon glyphicon-leaf"></i>
  179. </div>
  180. <h4>绿色环保</h4>
  181. <p>无人机作业零排放,符合可持续发展理念</p>
  182. </div>
  183. </div>
  184. <div class="col-xs-12 col-sm-6 col-md-3">
  185. <div class="tech-card wow zoomIn" style="animation-delay: 0.1s">
  186. <div class="tech-icon">
  187. <i class="glyphicon glyphicon-dashboard"></i>
  188. </div>
  189. <h4>高效作业</h4>
  190. <p>效率是传统人工方式的 5 至 10 倍</p>
  191. </div>
  192. </div>
  193. <div class="col-xs-12 col-sm-6 col-md-3">
  194. <div class="tech-card wow zoomIn" style="animation-delay: 0.2s">
  195. <div class="tech-icon">
  196. <i class="glyphicon glyphicon-screenshot"></i>
  197. </div>
  198. <h4>精准测绘</h4>
  199. <p>实现 1:500 免像控高精度测绘</p>
  200. </div>
  201. </div>
  202. <div class="col-xs-12 col-sm-6 col-md-3">
  203. <div class="tech-card wow zoomIn" style="animation-delay: 0.3s">
  204. <div class="tech-icon">
  205. <i class="glyphicon glyphicon-cloud"></i>
  206. </div>
  207. <h4>智能处理</h4>
  208. <p>AI 驱动的数据处理与分析</p>
  209. </div>
  210. </div>
  211. </div>
  212. </div>
  213. </div>
  214. </div>
  215. </template>
  216. <script>
  217. import Swiper from "swiper";
  218. import {WOW} from 'wowjs';
  219. export default {
  220. name: "HomePage",
  221. data() {
  222. return {
  223. swiperList: [
  224. {
  225. img: require("@/assets/img/banner-home.jpg"),
  226. path: "",
  227. title: '上海展域航空技术有限公司',
  228. content: '您身边的无人机与AI解决方案专家',
  229. },
  230. {
  231. img: require("@/assets/img/banner-dock-black.jpg"),
  232. path: "",
  233. title: '大疆机场 2',
  234. content: '轻担重任',
  235. },
  236. {
  237. img: require("@/assets/img/banner-m350rtk.jpg"),
  238. path: "",
  239. title: '大疆经纬 M350 RTK',
  240. content: '满载实力,一往无前',
  241. }
  242. ],
  243. // 解决方案列表
  244. solutionsList: [
  245. {
  246. path: '/solutions/surveying',
  247. title: '基础测绘',
  248. description: '快速进行大范围二维、三维建模,生成地形数据,降低外业成本',
  249. image: require('@/assets/img/service1.jpg')
  250. },
  251. {
  252. path: '/solutions/building',
  253. title: '建筑工程',
  254. description: '房屋建筑业(房建)和土木工程建筑业(基建)领域应用',
  255. image: require('@/assets/img/service2.jpg')
  256. },
  257. {
  258. path: '/solutions/safety',
  259. title: '安全生产',
  260. description: '提供可见光或红外热成像数据,全天候自动化安全巡检',
  261. image: require('@/assets/img/service3.jpg')
  262. },
  263. {
  264. path: '/solutions/emergency-rescue',
  265. title: '应急救援',
  266. description: '救援队伍使用无人机通过空中视角对灾情进行评估、研判',
  267. image: require('@/assets/img/service4.jpg')
  268. }
  269. ],
  270. serverList: [
  271. {
  272. logo: require("@/assets/img/tel.png"),
  273. title: "售前服务",
  274. content: "<p>由专业客服提供工作日全天人工服务负责疑难问题和故障受理</p>"
  275. },
  276. {
  277. logo: require("@/assets/img/computer.png"),
  278. title: "售后响应",
  279. content: "<p>利用远程工具,故障产生后 2 小时内线上响应协助客户进行调试、解决故障</p>"
  280. },
  281. {
  282. logo: require("@/assets/img/skill.png"),
  283. title: "研发优势",
  284. content: "<p>专业的技术工程师,负责提供解决方案和受理及定制化开发服务</p>"
  285. }
  286. ]
  287. };
  288. },
  289. mounted() {
  290. /* banner-swiper */
  291. new Swiper(".banner-swiper", {
  292. loop: true,
  293. effect: 'fade',
  294. autoplay: {
  295. delay: 4000,
  296. stopOnLastSlide: false,
  297. disableOnInteraction: false
  298. },
  299. pagination: {
  300. el: ".swiper-pagination",
  301. clickable: true
  302. },
  303. navigation: {
  304. nextEl: ".swiper-button-next",
  305. prevEl: ".swiper-button-prev"
  306. },
  307. lazy: {
  308. loadPrevNext: true
  309. },
  310. observer: true,
  311. observeParents: true
  312. });
  313. /* wowjs 动画 */
  314. var wow = new WOW({
  315. boxClass: 'wow',
  316. animateClass: 'animated',
  317. offset: 0,
  318. mobile: true,
  319. live: true
  320. })
  321. wow.init();
  322. }
  323. };
  324. </script>
  325. <style scoped>
  326. /* ===== CSS 变量 ===== */
  327. #HomePage {
  328. --primary-color: #1e73be;
  329. --primary-gradient: linear-gradient(135deg, #1e73be 0%, #3b82f6 100%);
  330. --tech-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  331. --dark-bg: #0f172a;
  332. --card-bg: rgba(255, 255, 255, 0.8);
  333. --glass-bg: rgba(255, 255, 255, 0.1);
  334. --glass-border: rgba(255, 255, 255, 0.2);
  335. --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
  336. --shadow-md: 0 8px 32px rgba(0, 0, 0, 0.12);
  337. --shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.15);
  338. --glow-blue: 0 0 40px rgba(30, 115, 190, 0.4);
  339. }
  340. /* 整体盒子 */
  341. #HomePage {
  342. width: 100%;
  343. background: #fafbfc;
  344. }
  345. /* ===== 轮播图 - 玻璃拟态风格 ===== */
  346. #swiper {
  347. position: relative;
  348. }
  349. #swiper .banner-swiper {
  350. width: 100%;
  351. height: auto;
  352. }
  353. #swiper .banner-swiper .swiper-slide {
  354. position: relative;
  355. overflow: hidden;
  356. }
  357. #swiper .banner-swiper .swiper-slide img {
  358. max-width: 100%;
  359. background-size: cover;
  360. }
  361. #swiper .banner-swiper .swiper-slide-title {
  362. position: absolute;
  363. top: 0;
  364. left: 0;
  365. z-index: 10;
  366. width: 100%;
  367. height: 100%;
  368. display: flex;
  369. align-items: center;
  370. justify-content: center;
  371. background: linear-gradient(
  372. 135deg,
  373. rgba(15, 23, 42, 0.7) 0%,
  374. rgba(15, 23, 42, 0.4) 100%
  375. );
  376. backdrop-filter: blur(3px);
  377. }
  378. #swiper .banner-swiper .swiper-slide-title .slide-content {
  379. text-align: center;
  380. padding: 40px;
  381. background: rgba(255, 255, 255, 0.05);
  382. border: 1px solid rgba(255, 255, 255, 0.1);
  383. border-radius: 20px;
  384. backdrop-filter: blur(20px);
  385. box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
  386. max-width: 800px;
  387. }
  388. #swiper .banner-swiper .swiper-slide-title h1 {
  389. font-size: 42px;
  390. font-weight: 700;
  391. margin: 0 0 20px;
  392. background: linear-gradient(90deg, #fff 0%, #e0e7ff 100%);
  393. -webkit-background-clip: text;
  394. -webkit-text-fill-color: transparent;
  395. background-clip: text;
  396. text-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
  397. letter-spacing: 2px;
  398. }
  399. #swiper .banner-swiper .swiper-slide-title p {
  400. font-size: 20px;
  401. font-weight: 400;
  402. color: rgba(255, 255, 255, 0.9);
  403. margin: 0;
  404. letter-spacing: 3px;
  405. }
  406. /* 分页器样式优化 */
  407. #swiper .banner-swiper .swiper-pagination-bullet {
  408. background: rgba(255, 255, 255, 0.5);
  409. opacity: 1;
  410. width: 10px;
  411. height: 10px;
  412. transition: all 0.3s ease;
  413. }
  414. #swiper .banner-swiper .swiper-pagination-bullet-active {
  415. background: #fff;
  416. width: 28px;
  417. border-radius: 5px;
  418. }
  419. /* 导航按钮样式 */
  420. #swiper .banner-swiper .swiper-button-next,
  421. #swiper .banner-swiper .swiper-button-prev {
  422. width: 50px;
  423. height: 50px;
  424. background: rgba(255, 255, 255, 0.1);
  425. border-radius: 50%;
  426. backdrop-filter: blur(10px);
  427. border: 1px solid rgba(255, 255, 255, 0.2);
  428. transition: all 0.3s ease;
  429. display: flex;
  430. align-items: center;
  431. justify-content: center;
  432. }
  433. #swiper .banner-swiper .swiper-button-next:hover,
  434. #swiper .banner-swiper .swiper-button-prev:hover {
  435. background: rgba(255, 255, 255, 0.25);
  436. transform: scale(1.1);
  437. }
  438. /* 箭头图标样式 */
  439. #swiper .banner-swiper .swiper-button-next svg,
  440. #swiper .banner-swiper .swiper-button-prev svg {
  441. width: 24px;
  442. height: 24px;
  443. stroke: #fff;
  444. fill: none;
  445. }
  446. #swiper .banner-swiper .swiper-button-next:hover svg,
  447. #swiper .banner-swiper .swiper-button-prev:hover svg {
  448. stroke: #fff;
  449. }
  450. /* 隐藏 Swiper 默认的 ::after 箭头 */
  451. #swiper .banner-swiper .swiper-button-next::after,
  452. #swiper .banner-swiper .swiper-button-prev::after {
  453. content: '';
  454. display: none;
  455. }
  456. /* ===== 解决方案列表索引 ===== */
  457. #solutionsIndex {
  458. background: linear-gradient(180deg, #fafbfc 0%, #f0f2f5 100%);
  459. padding: 80px 0;
  460. }
  461. #solutionsIndex .section-header {
  462. text-align: center;
  463. margin-bottom: 60px;
  464. }
  465. #solutionsIndex .section-title {
  466. font-size: 36px;
  467. font-weight: var(--font-weight-bold);
  468. color: var(--text-primary);
  469. margin: 16px 0 8px;
  470. }
  471. #solutionsIndex .section-subtitle {
  472. font-size: 16px;
  473. color: var(--text-muted);
  474. font-weight: var(--font-weight-regular);
  475. letter-spacing: 1px;
  476. }
  477. #solutionsIndex .solutions-grid {
  478. display: grid;
  479. grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  480. gap: 30px;
  481. margin-top: 40px;
  482. }
  483. #solutionsIndex .solution-card {
  484. display: block;
  485. background: #fff;
  486. border-radius: var(--radius-lg);
  487. overflow: hidden;
  488. box-shadow: var(--shadow-md);
  489. transition: var(--transition-bounce);
  490. text-decoration: none;
  491. color: inherit;
  492. }
  493. #solutionsIndex .solution-card:hover {
  494. transform: translateY(-10px);
  495. box-shadow: var(--shadow-lg), var(--glow-blue);
  496. }
  497. #solutionsIndex .solution-image {
  498. position: relative;
  499. height: 200px;
  500. overflow: hidden;
  501. }
  502. #solutionsIndex .solution-image img {
  503. width: 100%;
  504. height: 100%;
  505. object-fit: cover;
  506. transition: transform 0.5s ease;
  507. }
  508. #solutionsIndex .solution-card:hover .solution-image img {
  509. transform: scale(1.1);
  510. }
  511. #solutionsIndex .solution-overlay {
  512. position: absolute;
  513. top: 0;
  514. left: 0;
  515. width: 100%;
  516. height: 100%;
  517. background: rgba(30, 115, 190, 0.8);
  518. display: flex;
  519. align-items: center;
  520. justify-content: center;
  521. opacity: 0;
  522. transition: opacity 0.3s ease;
  523. }
  524. #solutionsIndex .solution-card:hover .solution-overlay {
  525. opacity: 1;
  526. }
  527. #solutionsIndex .solution-icon {
  528. color: #fff;
  529. font-size: 32px;
  530. }
  531. #solutionsIndex .solution-content {
  532. padding: 25px;
  533. }
  534. #solutionsIndex .solution-content h3 {
  535. font-size: 20px;
  536. font-weight: var(--font-weight-semibold);
  537. color: var(--text-primary);
  538. margin: 0 0 12px;
  539. }
  540. #solutionsIndex .solution-content p {
  541. font-size: 14px;
  542. line-height: 1.6;
  543. color: var(--text-tertiary);
  544. margin: 0;
  545. display: -webkit-box;
  546. -webkit-line-clamp: 2;
  547. -webkit-box-orient: vertical;
  548. overflow: hidden;
  549. }
  550. #solutionsIndex .btn-view-all {
  551. display: inline-flex;
  552. align-items: center;
  553. gap: 8px;
  554. padding: 14px 32px;
  555. background: var(--primary-gradient);
  556. color: #fff;
  557. border: none;
  558. border-radius: var(--radius-md);
  559. font-size: 15px;
  560. font-weight: var(--font-weight-semibold);
  561. text-decoration: none;
  562. cursor: pointer;
  563. transition: var(--transition-base);
  564. margin-top: 20px;
  565. box-shadow: var(--shadow-sm);
  566. }
  567. #solutionsIndex .btn-view-all:hover {
  568. transform: translateY(-3px);
  569. box-shadow: var(--shadow-md);
  570. }
  571. #solutionsIndex .btn-view-all i {
  572. font-size: 12px;
  573. }
  574. /* ===== DJI Dock - 现代化布局 ===== */
  575. #djiDock {
  576. padding: 100px 0;
  577. background: linear-gradient(180deg, #fafbfc 0%, #f0f2f5 100%);
  578. }
  579. #djiDock .dock-grid {
  580. display: grid;
  581. grid-template-columns: 1fr 1fr;
  582. gap: 60px;
  583. align-items: center;
  584. }
  585. #djiDock .dock-image {
  586. position: relative;
  587. padding: 40px;
  588. }
  589. #djiDock .dock-image .image-glow {
  590. position: absolute;
  591. top: 50%;
  592. left: 50%;
  593. transform: translate(-50%, -50%);
  594. width: 80%;
  595. height: 80%;
  596. background: radial-gradient(circle, rgba(30, 115, 190, 0.3) 0%, transparent 70%);
  597. filter: blur(40px);
  598. z-index: 0;
  599. animation: pulse 3s ease-in-out infinite;
  600. }
  601. @keyframes pulse {
  602. 0%, 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); }
  603. 50% { opacity: 0.8; transform: translate(-50%, -50%) scale(1.1); }
  604. }
  605. #djiDock .dock-image img {
  606. position: relative;
  607. z-index: 1;
  608. filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.15));
  609. transition: transform 0.5s ease;
  610. }
  611. #djiDock .dock-image:hover img {
  612. transform: translateY(-10px);
  613. }
  614. #djiDock .dock-content {
  615. padding: 20px;
  616. }
  617. #djiDock .section-tag {
  618. display: inline-flex;
  619. align-items: center;
  620. gap: 8px;
  621. padding: 8px 16px;
  622. background: rgba(30, 115, 190, 0.1);
  623. border-radius: 20px;
  624. margin-bottom: 20px;
  625. }
  626. #djiDock .tag-dot {
  627. width: 8px;
  628. height: 8px;
  629. background: var(--primary-color);
  630. border-radius: 50%;
  631. animation: blink 2s ease-in-out infinite;
  632. }
  633. @keyframes blink {
  634. 0%, 100% { opacity: 1; }
  635. 50% { opacity: 0.4; }
  636. }
  637. #djiDock .section-tag span {
  638. font-size: 12px;
  639. font-weight: 600;
  640. color: var(--primary-color);
  641. letter-spacing: 1px;
  642. }
  643. #djiDock .dock-title {
  644. font-size: 36px;
  645. font-weight: 700;
  646. color: #1a1a1a;
  647. margin-bottom: 24px;
  648. line-height: 1.3;
  649. }
  650. #djiDock .dock-title small {
  651. display: block;
  652. font-size: 16px;
  653. color: #666;
  654. margin-top: 12px;
  655. font-weight: 400;
  656. }
  657. #djiDock .dock-desc p {
  658. font-size: 16px;
  659. line-height: 2;
  660. color: #555;
  661. margin-bottom: 20px;
  662. }
  663. #djiDock .dock-stats {
  664. display: flex;
  665. align-items: center;
  666. gap: 30px;
  667. margin-top: 40px;
  668. padding-top: 40px;
  669. border-top: 1px solid #e0e0e0;
  670. }
  671. #djiDock .stat-item {
  672. text-align: center;
  673. }
  674. #djiDock .stat-number {
  675. font-size: 32px;
  676. font-weight: 700;
  677. background: var(--primary-gradient);
  678. -webkit-background-clip: text;
  679. -webkit-text-fill-color: transparent;
  680. background-clip: text;
  681. }
  682. #djiDock .stat-label {
  683. font-size: 14px;
  684. color: #666;
  685. margin-top: 8px;
  686. }
  687. #djiDock .stat-divider {
  688. width: 1px;
  689. height: 40px;
  690. background: #e0e0e0;
  691. }
  692. /* ===== 联系我们 - 玻璃拟态卡片 ===== */
  693. #contactUs {
  694. position: relative;
  695. overflow: hidden;
  696. padding: 120px 0;
  697. background: linear-gradient(135deg, #1e3c72 0%, #2a5298 50%, #764ba2 100%);
  698. }
  699. #contactUs .gradient-orb {
  700. position: absolute;
  701. border-radius: 50%;
  702. filter: blur(80px);
  703. opacity: 0.5;
  704. animation: float 6s ease-in-out infinite;
  705. }
  706. #contactUs .orb-1 {
  707. width: 400px;
  708. height: 400px;
  709. background: radial-gradient(circle, rgba(99, 102, 241, 0.6) 0%, transparent 70%);
  710. top: -100px;
  711. left: -100px;
  712. }
  713. #contactUs .orb-2 {
  714. width: 300px;
  715. height: 300px;
  716. background: radial-gradient(circle, rgba(168, 85, 247, 0.5) 0%, transparent 70%);
  717. bottom: -50px;
  718. right: -50px;
  719. animation-delay: 2s;
  720. }
  721. @keyframes float {
  722. 0%, 100% { transform: translate(0, 0); }
  723. 50% { transform: translate(30px, 30px); }
  724. }
  725. #contactUs .contactUs-container {
  726. position: relative;
  727. z-index: 10;
  728. }
  729. #contactUs .glass-card {
  730. display: inline-block;
  731. padding: 60px 80px;
  732. background: rgba(255, 255, 255, 0.1);
  733. border: 1px solid rgba(255, 255, 255, 0.2);
  734. border-radius: 24px;
  735. backdrop-filter: blur(20px);
  736. box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  737. }
  738. #contactUs .contact-title {
  739. font-size: 36px;
  740. font-weight: 700;
  741. color: #fff;
  742. margin: 0 0 16px;
  743. letter-spacing: 2px;
  744. }
  745. #contactUs .contact-subtitle {
  746. font-size: 18px;
  747. color: rgba(255, 255, 255, 0.8);
  748. margin: 0 0 40px;
  749. letter-spacing: 3px;
  750. }
  751. #contactUs .contact-actions {
  752. display: flex;
  753. gap: 16px;
  754. justify-content: center;
  755. }
  756. #contactUs .btn-primary,
  757. #contactUs .btn-secondary {
  758. position: relative;
  759. padding: 16px 40px;
  760. font-size: 16px;
  761. font-weight: 600;
  762. border-radius: 12px;
  763. cursor: pointer;
  764. transition: all 0.3s ease;
  765. overflow: hidden;
  766. text-decoration: none;
  767. display: inline-flex;
  768. align-items: center;
  769. justify-content: center;
  770. }
  771. #contactUs .btn-primary {
  772. background: #fff;
  773. color: #1e3c72;
  774. border: none;
  775. box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
  776. }
  777. #contactUs .btn-primary:hover {
  778. transform: translateY(-3px);
  779. box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
  780. color: #1e3c72;
  781. }
  782. #contactUs .btn-primary .arrow-right {
  783. display: inline-block;
  784. width: 0;
  785. height: 0;
  786. border-top: 6px solid transparent;
  787. border-bottom: 6px solid transparent;
  788. border-left: 8px solid #1e3c72;
  789. margin-left: 10px;
  790. transition: transform 0.3s ease;
  791. }
  792. #contactUs .btn-primary:hover .arrow-right {
  793. transform: translateX(5px);
  794. }
  795. #contactUs .btn-secondary {
  796. background: transparent;
  797. color: #fff;
  798. border: 2px solid rgba(255, 255, 255, 0.5);
  799. }
  800. #contactUs .btn-secondary:hover {
  801. background: rgba(255, 255, 255, 0.1);
  802. border-color: #fff;
  803. transform: translateY(-3px);
  804. color: #fff;
  805. }
  806. /* ===== 为什么选择我们 - 玻璃拟态卡片 ===== */
  807. #whyChooseUs {
  808. padding: 100px 0;
  809. background: #fafbfc;
  810. }
  811. #whyChooseUs .whyChooseUs-title {
  812. margin-bottom: 60px;
  813. }
  814. #whyChooseUs .main-title {
  815. font-size: 36px;
  816. font-weight: 700;
  817. color: #1a1a1a;
  818. margin: 16px 0 8px;
  819. }
  820. #whyChooseUs .sub-title {
  821. font-size: 16px;
  822. color: #999;
  823. font-weight: 400;
  824. letter-spacing: 1px;
  825. }
  826. #whyChooseUs .server-card {
  827. position: relative;
  828. padding: 40px 30px;
  829. margin: 20px;
  830. background: rgba(255, 255, 255, 0.8);
  831. border: 1px solid rgba(255, 255, 255, 0.5);
  832. border-radius: 20px;
  833. backdrop-filter: blur(10px);
  834. box-shadow: var(--shadow-md);
  835. transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  836. overflow: hidden;
  837. }
  838. #whyChooseUs .server-card .card-glow {
  839. position: absolute;
  840. top: 0;
  841. left: -100%;
  842. width: 100%;
  843. height: 100%;
  844. background: linear-gradient(90deg, transparent, rgba(30, 115, 190, 0.1), transparent);
  845. transition: left 0.6s ease;
  846. }
  847. #whyChooseUs .server-card:hover .card-glow {
  848. left: 100%;
  849. }
  850. #whyChooseUs .server-card:hover {
  851. transform: translateY(-10px);
  852. box-shadow: var(--shadow-lg), var(--glow-blue);
  853. border-color: rgba(30, 115, 190, 0.3);
  854. }
  855. #whyChooseUs .server-card .card-icon {
  856. width: 80px;
  857. height: 80px;
  858. margin: 0 auto 24px;
  859. background: linear-gradient(135deg, rgba(30, 115, 190, 0.1) 0%, rgba(59, 130, 246, 0.1) 100%);
  860. border-radius: 20px;
  861. display: flex;
  862. align-items: center;
  863. justify-content: center;
  864. transition: all 0.3s ease;
  865. }
  866. #whyChooseUs .server-card:hover .card-icon {
  867. background: var(--primary-gradient);
  868. transform: scale(1.1) rotate(5deg);
  869. }
  870. #whyChooseUs .server-card .card-icon img {
  871. width: 40px;
  872. height: 40px;
  873. filter: brightness(0) saturate(100%) invert(41%) sepia(96%) saturate(1752%) hue-rotate(190deg) brightness(94%) contrast(96%);
  874. transition: filter 0.3s ease;
  875. }
  876. #whyChooseUs .server-card:hover .card-icon img {
  877. filter: brightness(0) saturate(100%) invert(100%);
  878. }
  879. #whyChooseUs .server-card .card-title {
  880. font-size: 20px;
  881. font-weight: 600;
  882. color: #1a1a1a;
  883. text-align: center;
  884. margin: 0 0 16px;
  885. }
  886. #whyChooseUs .server-card .card-desc {
  887. font-size: 14px;
  888. line-height: 1.8;
  889. color: #666;
  890. text-align: center;
  891. margin-bottom: 20px;
  892. }
  893. #whyChooseUs .server-card .card-desc p {
  894. margin: 0;
  895. }
  896. #whyChooseUs .server-card .card-arrow {
  897. text-align: center;
  898. opacity: 0;
  899. transform: translateY(10px);
  900. transition: all 0.3s ease;
  901. }
  902. #whyChooseUs .server-card .card-arrow i {
  903. color: var(--primary-color);
  904. font-size: 18px;
  905. }
  906. #whyChooseUs .server-card:hover .card-arrow {
  907. opacity: 1;
  908. transform: translateY(0);
  909. }
  910. /* ===== 技术优势区域 ===== */
  911. #techAdvantages {
  912. position: relative;
  913. overflow: hidden;
  914. background: #0f172a;
  915. }
  916. #techAdvantages .gradient-bg {
  917. position: absolute;
  918. top: 0;
  919. left: 0;
  920. width: 100%;
  921. height: 100%;
  922. background:
  923. radial-gradient(circle at 20% 50%, rgba(99, 102, 241, 0.15) 0%, transparent 50%),
  924. radial-gradient(circle at 80% 80%, rgba(168, 85, 247, 0.15) 0%, transparent 50%);
  925. }
  926. #techAdvantages .whyChooseUs-title {
  927. position: relative;
  928. z-index: 10;
  929. }
  930. #techAdvantages .main-title,
  931. #techAdvantages .section-tag span {
  932. color: #fff;
  933. }
  934. #techAdvantages .sub-title {
  935. color: rgba(255, 255, 255, 0.5);
  936. }
  937. #techAdvantages .tech-grid {
  938. position: relative;
  939. z-index: 10;
  940. }
  941. #techAdvantages .tech-card {
  942. padding: 40px 30px;
  943. margin: 20px;
  944. background: rgba(255, 255, 255, 0.05);
  945. border: 1px solid rgba(255, 255, 255, 0.1);
  946. border-radius: 20px;
  947. backdrop-filter: blur(10px);
  948. text-align: center;
  949. transition: all 0.4s ease;
  950. }
  951. #techAdvantages .tech-card:hover {
  952. background: rgba(255, 255, 255, 0.1);
  953. transform: translateY(-8px);
  954. border-color: rgba(30, 115, 190, 0.5);
  955. box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
  956. }
  957. #techAdvantages .tech-icon {
  958. width: 70px;
  959. height: 70px;
  960. margin: 0 auto 24px;
  961. background: linear-gradient(135deg, #1e73be 0%, #3b82f6 100%);
  962. border-radius: 16px;
  963. display: flex;
  964. align-items: center;
  965. justify-content: center;
  966. box-shadow: 0 8px 20px rgba(30, 115, 190, 0.4);
  967. }
  968. #techAdvantages .tech-icon i {
  969. color: #fff;
  970. font-size: 28px;
  971. }
  972. #techAdvantages .tech-card h4 {
  973. font-size: 18px;
  974. font-weight: 600;
  975. color: #fff;
  976. margin: 0 0 12px;
  977. }
  978. #techAdvantages .tech-card p {
  979. font-size: 14px;
  980. line-height: 1.6;
  981. color: rgba(255, 255, 255, 0.7);
  982. margin: 0;
  983. }
  984. /* ===== 响应式设计 ===== */
  985. /* 平板端 */
  986. @media screen and (max-width: 996px) {
  987. #solutionsIndex {
  988. padding: 60px 0;
  989. }
  990. #solutionsIndex .section-title {
  991. font-size: 28px;
  992. }
  993. #solutionsIndex .solutions-grid {
  994. grid-template-columns: repeat(2, 1fr);
  995. gap: 20px;
  996. }
  997. #djiDock .dock-grid {
  998. grid-template-columns: 1fr;
  999. gap: 40px;
  1000. }
  1001. #djiDock .dock-image {
  1002. text-align: center;
  1003. }
  1004. #djiDock .dock-title {
  1005. font-size: 28px;
  1006. }
  1007. #contactUs .glass-card {
  1008. padding: 40px 50px;
  1009. }
  1010. #contactUs .contact-title {
  1011. font-size: 28px;
  1012. }
  1013. #contactUs .contact-actions {
  1014. flex-direction: column;
  1015. gap: 12px;
  1016. }
  1017. #whyChooseUs .server-card {
  1018. margin: 10px;
  1019. }
  1020. }
  1021. /* 手机端 */
  1022. @media screen and (max-width: 768px) {
  1023. #solutionsIndex {
  1024. padding: 40px 0;
  1025. }
  1026. #solutionsIndex .section-title {
  1027. font-size: 24px;
  1028. }
  1029. #solutionsIndex .section-subtitle {
  1030. font-size: 14px;
  1031. }
  1032. #solutionsIndex .solutions-grid {
  1033. grid-template-columns: 1fr;
  1034. }
  1035. #solutionsIndex .btn-view-all {
  1036. padding: 12px 24px;
  1037. font-size: 14px;
  1038. }
  1039. #swiper .banner-swiper .swiper-slide-title .slide-content {
  1040. padding: 20px;
  1041. margin: 0 20px;
  1042. }
  1043. #swiper .banner-swiper .swiper-slide-title h1 {
  1044. font-size: 20px;
  1045. }
  1046. #swiper .banner-swiper .swiper-slide-title p {
  1047. font-size: 14px;
  1048. }
  1049. #djiDock {
  1050. padding: 60px 20px;
  1051. }
  1052. #djiDock .dock-title {
  1053. font-size: 24px;
  1054. }
  1055. #djiDock .dock-desc p {
  1056. font-size: 14px;
  1057. }
  1058. #djiDock .dock-stats {
  1059. flex-wrap: wrap;
  1060. justify-content: center;
  1061. }
  1062. #contactUs {
  1063. padding: 80px 20px;
  1064. }
  1065. #contactUs .glass-card {
  1066. padding: 30px;
  1067. width: 100%;
  1068. }
  1069. #contactUs .contact-title {
  1070. font-size: 22px;
  1071. }
  1072. #contactUs .contact-subtitle {
  1073. font-size: 14px;
  1074. }
  1075. #whyChooseUs,
  1076. #techAdvantages {
  1077. padding: 60px 20px;
  1078. }
  1079. #whyChooseUs .main-title,
  1080. #techAdvantages .main-title {
  1081. font-size: 26px;
  1082. }
  1083. #whyChooseUs .server-card,
  1084. #techAdvantages .tech-card {
  1085. margin: 10px 0;
  1086. }
  1087. }
  1088. </style>