diff --git a/app.css b/app.css index af12b00..770b133 100644 --- a/app.css +++ b/app.css @@ -228,3 +228,11 @@ page { .safe-bottom { padding-bottom: env(safe-area-inset-bottom); } + +/* 全局隐藏横向滚动条(scroll-view / webkit) */ +::-webkit-scrollbar { + display: none; + width: 0; + height: 0; + background: transparent; +} diff --git a/pages.json b/pages.json index b6fbd88..868336c 100644 --- a/pages.json +++ b/pages.json @@ -31,11 +31,15 @@ "list": [ { "pagePath": "pages/index/index", - "text": "首页" + "text": "首页", + "iconPath": "static/icons/tabbar/tab_home_gray.svg", + "selectedIconPath": "static/icons/tabbar/tab_home_orange.svg" }, { "pagePath": "pages/products/products", - "text": "产品" + "text": "产品", + "iconPath": "static/icons/tabbar/tab_product_gray.svg", + "selectedIconPath": "static/icons/tabbar/tab_product_orange.svg" } ] }, diff --git a/pages/index/components/CompanyIntro.vue b/pages/index/components/CompanyIntro.vue index 04a0ac6..b00fa64 100644 --- a/pages/index/components/CompanyIntro.vue +++ b/pages/index/components/CompanyIntro.vue @@ -1,68 +1,76 @@ @@ -75,12 +83,6 @@ export default { type: Array, default: () => [] } - }, - methods: { - getAbilityIcon(index) { - const icons = ['🎨', '🤖', '🏭', '📦'] - return icons[index] || '' - } } } @@ -94,17 +96,22 @@ export default { overflow: hidden; } -/* 背景图 */ +/* 背景图 - 模糊 + 0.5透明 */ .company-bg { position: absolute; top: 0; left: 0; width: 100%; + height: 1088rpx; z-index: 0; + overflow: hidden; } .bg-img { width: 100%; - display: block; + height: 100%; + opacity: 0.5; + filter: blur(30rpx); + -webkit-filter: blur(30rpx); } .company-content { @@ -113,53 +120,57 @@ export default { padding-top: 40rpx; } -/* 公司简介标题 - 设计稿 20px/400/#000000 居中 */ +/* 公司简介标题 - 20px Heavy #000000 居中 */ .section-title { display: block; text-align: center; - font-size: 38rpx; - font-weight: 700; - color: #1a1a1a; + font-size: 40rpx; + font-weight: 900; + color: #000000; + line-height: 1.4; margin-bottom: 40rpx; } -/* slogan - 设计稿 18px/400 */ +/* Slogan - 18px Heavy 渐变文字 */ .company-slogan { - padding: 0 32rpx; - margin-bottom: 24rpx; + padding: 0 20rpx; + margin-bottom: 30rpx; } .slogan-main { display: block; - font-size: 34rpx; - font-weight: 700; - color: #1a1a1a; + font-size: 36rpx; + font-weight: 900; + color: #000000; line-height: 1.4; } .slogan-sub { display: block; - font-size: 34rpx; - font-weight: 700; - color: #ff6800; + font-size: 36rpx; + font-weight: 900; line-height: 1.4; - margin-top: 6rpx; + margin-top: 4rpx; + background: linear-gradient(45deg, rgba(0, 0, 0, 1) 0%, rgba(255, 104, 0, 1) 100%); + -webkit-background-clip: text; + background-clip: text; + -webkit-text-fill-color: transparent; } -/* 公司描述 - 设计稿 12px/400/#000000 */ +/* 公司描述 - 12px Regular #000000 */ .company-desc { display: block; - padding: 0 32rpx; + padding: 0 20rpx; font-size: 24rpx; - color: #666666; - line-height: 1.7; + color: #000000; + line-height: 1.5; margin-bottom: 40rpx; } -/* 两栏 - 设计稿 14px/400/#000000 标题 */ +/* 两栏 - 14px Bold 标题 + 12px Regular 正文 */ .company-cols { display: flex; - padding: 0 32rpx; - gap: 24rpx; - margin-bottom: 50rpx; + padding: 0 20rpx; + gap: 32rpx; + margin-bottom: 60rpx; } .col-left, .col-right { @@ -167,92 +178,121 @@ export default { } .col-title { display: block; - font-size: 26rpx; - font-weight: 600; - color: #1a1a1a; - margin-bottom: 12rpx; + font-size: 28rpx; + font-weight: 700; + color: #000000; + line-height: 1.4; + margin-bottom: 16rpx; } .col-text { display: block; - font-size: 22rpx; - color: #666666; - line-height: 1.7; -} - -/* 核心能力卡片 - 2列网格 */ -.ability-grid { - padding: 0 32rpx; - display: flex; - flex-wrap: wrap; - justify-content: space-between; - margin-bottom: 70rpx; -} -.ability-card { - width: 330rpx; - padding: 32rpx 24rpx; - background: #ffffff; - border-radius: 12rpx; - border: 2rpx solid #f0f0f0; - margin-bottom: 20rpx; - display: flex; - flex-direction: column; - box-sizing: border-box; -} -.ability-icon { - width: 56rpx; - height: 56rpx; - margin-bottom: 16rpx; - display: flex; - align-items: center; - justify-content: center; -} -.icon-emoji { - font-size: 40rpx; -} -.ability-title { - font-size: 26rpx; - font-weight: 600; - color: #1a1a1a; - margin-bottom: 8rpx; -} -.ability-desc { - font-size: 22rpx; - color: #999999; + font-size: 24rpx; + color: #000000; line-height: 1.5; } -/* 底部CTA - 橙色背景 */ +/* 核心能力卡片 - 自适应2列(避免宽度+间距同时固定导致挤压) */ +.ability-grid { + padding: 0 20rpx; + display: flex; + flex-wrap: wrap; + gap: 20rpx; + margin-bottom: 60rpx; +} +.ability-card { + flex: 1 1 calc(50% - 10rpx); + min-width: 0; + height: 180rpx; + background: #ffffff; + border-radius: 12rpx; + margin-bottom: 20rpx; + padding: 32rpx 20rpx; + box-sizing: border-box; + display: flex; + align-items: flex-start; + gap: 22rpx; +} +/* 图标 24x24 */ +.ability-icon { + width: 48rpx; + height: 48rpx; + flex-shrink: 0; +} +.ability-text { + flex: 1; + display: flex; + flex-direction: column; +} +/* 标题 12px Bold #000000 */ +.ability-title { + font-size: 24rpx; + font-weight: 700; + color: #000000; + line-height: 1.4; +} +/* 描述 10px Regular #000000 */ +.ability-desc { + margin-top: 8rpx; + font-size: 20rpx; + color: #000000; + line-height: 1.45; +} + +/* 底部CTA - 橙色背景+图片叠加+二维码+文字 */ .cta-footer { position: relative; - z-index: 1; width: 100%; - padding: 60rpx 32rpx 80rpx; - background: #ff6800; display: flex; flex-direction: column; align-items: center; + padding: 0; box-sizing: border-box; } +/* 橙色背景层 - 391x200 */ +.cta-orange-bg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 400rpx; + background: #ff6800; + z-index: 0; +} +/* 图片叠加层 - 390x219 */ +.cta-overlay-img { + position: relative; + width: 100%; + z-index: 1; + display: block; +} +/* 二维码 - 104x104 居中 圆角10px 白底 */ .qr-wrap { - width: 260rpx; - height: 260rpx; + position: absolute; + top: 54rpx; + left: 50%; + transform: translateX(-50%); + width: 208rpx; + height: 208rpx; background: #ffffff; - border-radius: 16rpx; + border-radius: 20rpx; padding: 20rpx; - margin-bottom: 30rpx; + box-sizing: border-box; + z-index: 2; display: flex; align-items: center; justify-content: center; - box-sizing: border-box; } .qr-img { width: 100%; height: 100%; } -.cta-text { - font-size: 28rpx; - color: #ffffff; - font-weight: 500; - text-align: center; +/* 联系我们文字图 - 236x78 居中 */ +.cta-text-img { + position: absolute; + top: 256rpx; + left: 50%; + transform: translateX(-50%); + width: 472rpx; + z-index: 3; } diff --git a/pages/index/components/HeroBanner.vue b/pages/index/components/HeroBanner.vue index aab041e..013e083 100644 --- a/pages/index/components/HeroBanner.vue +++ b/pages/index/components/HeroBanner.vue @@ -1,38 +1,46 @@ @@ -44,6 +52,19 @@ export default { type: Array, default: () => [] } + }, + data() { + return { + statusBarHeight: 20 + } + }, + created() { + try { + const sysInfo = uni.getSystemInfoSync() + this.statusBarHeight = sysInfo.statusBarHeight || 20 + } catch (e) { + this.statusBarHeight = 20 + } } } @@ -52,87 +73,156 @@ export default { .hero { position: relative; width: 100%; - padding-top: 30rpx; - padding-bottom: 0; + height: 1196rpx; background: #ffffff; overflow: hidden; } -/* Logo */ -.hero-logo { - display: flex; - align-items: baseline; - padding: 0 32rpx; - margin-bottom: 40rpx; -} -.logo-en { - font-size: 36rpx; - font-weight: 700; - color: #ff6800; - letter-spacing: 1rpx; -} -.logo-cn { - margin-left: 12rpx; - font-size: 22rpx; - color: #ff6800; -} - -/* 标题 - 设计稿 28px/400/黑色 */ -.hero-title { - padding: 0 32rpx; - margin-bottom: 16rpx; -} -.title-main { - font-size: 54rpx; - font-weight: 700; - color: #1a1a1a; - line-height: 1.3; -} - -/* 副标题 - 设计稿 10px/400/#000000 */ -.hero-subtitle { - display: block; - padding: 0 32rpx; - font-size: 20rpx; - color: #999999; - line-height: 1.6; - margin-bottom: 36rpx; -} - -/* 4个指标 - 设计稿 16px/400/#ff6800 */ -.hero-stats { - display: flex; - padding: 0 32rpx; - gap: 24rpx; - margin-bottom: 40rpx; -} -.stat-item { - flex: 1; - display: flex; - flex-direction: column; - align-items: flex-start; -} -.stat-value { - font-size: 32rpx; - font-weight: 700; - color: #ff6800; - line-height: 1.2; -} -.stat-label { - margin-top: 8rpx; - font-size: 20rpx; - color: #999999; -} - -/* 地球图 - 全宽 */ -.hero-earth { +/* 渐变背景 - linear-gradient(180deg, rgba(255,228,210,1) 0%, rgba(255,255,255,1) 100%) */ +.hero-gradient-bg { + position: absolute; + top: 0; + left: 0; width: 100%; + height: 1196rpx; + background: linear-gradient(180deg, rgba(255, 228, 210, 1) 0%, rgba(255, 255, 255, 1) 100%); + z-index: 0; +} + +/* 地球图 - y:228 全宽 390x390 */ +.hero-earth { + position: absolute; + top: 456rpx; + left: 0; + width: 100%; + height: 780rpx; + z-index: 1; display: flex; align-items: center; justify-content: center; } .earth-img { width: 100%; + height: 100%; +} + +/* 顶部 Logo 栏 */ +.hero-top-bar { + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 3; + box-sizing: border-box; +} +.logo-wrap { + display: flex; + align-items: center; + height: 88rpx; + padding: 0 20rpx; + box-sizing: border-box; +} +/* 英文 logo 73x30 */ +.logo-en { + width: 146rpx; + height: 60rpx; +} +/* 中文 logo 72x12 - 左侧带分隔线 */ +.logo-cn { + width: 144rpx; + height: 24rpx; + margin-left: 12rpx; + padding-left: 12rpx; + border-left: 1rpx solid #ff6800; +} + +/* 内容层 */ +.hero-content { + position: relative; + z-index: 2; + padding: 0 20rpx; +} + +/* 大标题 - 28px Heavy gradient linear-gradient(90deg, #000000 0%, #7C3300 100%) 自动宽度居中 */ +.hero-title { display: block; + margin: 236rpx auto 0; + width: fit-content; + max-width: 100%; + font-size: 56rpx; + font-weight: 900; + color: #1a1a1a; + line-height: 1.4; + background: linear-gradient(90deg, rgba(0, 0, 0, 1) 0%, rgba(124, 51, 0, 1) 100%); + -webkit-background-clip: text; + background-clip: text; + -webkit-text-fill-color: transparent; + white-space: nowrap; +} + +/* 副标题 - 10px Regular #000000 自动宽度居中 */ +.hero-subtitle { + display: block; + margin: 12rpx auto 0; + width: fit-content; + max-width: calc(100% - 80rpx); + font-size: 20rpx; + color: #000000; + line-height: 1.4; + text-align: center; +} + +/* 4个指标 - 居中布局带分隔线 */ +.hero-stats { + display: flex; + align-items: flex-start; + justify-content: center; + margin-top: 64rpx; + padding: 0 20rpx; +} +.stat-item { + position: relative; + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + padding: 0 20rpx; +} +.stat-value-wrap { + display: flex; + align-items: baseline; + justify-content: center; +} +/* 数值 - 18px Bold #FF6800 */ +.stat-value { + font-size: 36rpx; + font-weight: 700; + color: #ff6800; + line-height: 1.2; +} +/* 单位 - 10px Bold #FF6800 */ +.stat-unit { + margin-left: 2rpx; + font-size: 20rpx; + font-weight: 700; + color: #ff6800; + line-height: 1.2; +} +/* 标签 - 8px Regular #000000 */ +.stat-label { + margin-top: 18rpx; + font-size: 16rpx; + color: #000000; + line-height: 1.2; + white-space: nowrap; +} +/* 分隔线 - 0.5px #D7D7D7 */ +.stat-divider { + position: absolute; + right: 0; + top: 20rpx; + width: 1rpx; + height: 40rpx; + background: #d7d7d7; } diff --git a/pages/index/components/PlatformFeatures.vue b/pages/index/components/PlatformFeatures.vue index c005597..771c8ab 100644 --- a/pages/index/components/PlatformFeatures.vue +++ b/pages/index/components/PlatformFeatures.vue @@ -1,5 +1,5 @@ @@ -59,38 +59,45 @@ export default { diff --git a/pages/index/components/PodCatalog.vue b/pages/index/components/PodCatalog.vue index d823d33..0101be1 100644 --- a/pages/index/components/PodCatalog.vue +++ b/pages/index/components/PodCatalog.vue @@ -1,6 +1,7 @@ @@ -75,97 +74,118 @@ export default { diff --git a/pages/index/components/StepsFlow.vue b/pages/index/components/StepsFlow.vue index 4618550..5821de3 100644 --- a/pages/index/components/StepsFlow.vue +++ b/pages/index/components/StepsFlow.vue @@ -1,5 +1,5 @@ @@ -59,91 +59,97 @@ export default { diff --git a/pages/index/components/WhyChoose.vue b/pages/index/components/WhyChoose.vue index 01a69b2..5d3fe4d 100644 --- a/pages/index/components/WhyChoose.vue +++ b/pages/index/components/WhyChoose.vue @@ -1,15 +1,14 @@