feat(home): 更新首页布局并优化网站信息展示
- 移除首页业务板块服务卡片区域 - 为面板组件添加固定高度样式 - 更新底部关注我们区域的小程序二维码图片 - 将小程序描述从公众号/小程序调整为仅小程序 - 集成CMS系统获取网站备案号信息 - 优化头部品牌栏布局,使用固定Logo图片替换动态内容 - 移除品牌标题和副标题的显示 - 调整Logo样式移除宽度限制仅保留高度约束
This commit is contained in:
@@ -5,9 +5,9 @@
|
||||
<a-col :xs="24" :md="8">
|
||||
<div class="text-base font-semibold text-white">关注我们</div>
|
||||
<div class="mt-4 flex items-center gap-4">
|
||||
<a-avatar shape="square" :size="96" />
|
||||
<a-avatar shape="square" :size="96" src="https://oss.wsdns.cn/20260127/74041127623e4a8faa49a24e0818dae6.png" />
|
||||
<div class="text-sm leading-6 text-gray-400">
|
||||
公众号/小程序
|
||||
小程序
|
||||
<br />
|
||||
获取最新动态
|
||||
</div>
|
||||
@@ -49,12 +49,27 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { getCmsWebsiteFieldByCode } from '@/api/cms/cmsWebsiteField'
|
||||
|
||||
const { data: siteInfo } = useSiteInfo()
|
||||
const siteName = computed(() => String((siteInfo.value as any)?.data?.websiteName || '桂乐淘'))
|
||||
const icpText = computed(() => {
|
||||
const icp = (siteInfo.value as any)?.data?.icpNo
|
||||
return icp ? `备案号:${icp}` : '备案号:'
|
||||
|
||||
const { data: icpField } = useAsyncData('cms-website-field-icpNo', async () => {
|
||||
try {
|
||||
return await getCmsWebsiteFieldByCode('icpNo')
|
||||
} catch {
|
||||
return null
|
||||
}
|
||||
})
|
||||
|
||||
const icpNo = computed(() => {
|
||||
const v = icpField.value?.value ?? icpField.value?.defaultValue
|
||||
if (typeof v === 'string' && v.trim()) return v.trim()
|
||||
const fallback = (siteInfo.value as any)?.data?.icpNo
|
||||
return typeof fallback === 'string' ? fallback.trim() : ''
|
||||
})
|
||||
|
||||
const icpText = computed(() => (icpNo.value ? `备案号:${icpNo.value}` : '备案号:'))
|
||||
const year = new Date().getFullYear()
|
||||
</script>
|
||||
|
||||
|
||||
@@ -20,11 +20,7 @@
|
||||
<div v-if="showBrandbar" class="brandbar">
|
||||
<div class="mx-auto grid max-w-screen-xl grid-cols-12 items-center gap-6 px-4 py-8">
|
||||
<NuxtLink to="/" class="col-span-12 flex items-center gap-4 md:col-span-6">
|
||||
<img class="brand-logo" :src="logoUrl" :alt="siteName" />
|
||||
<div class="brand-title">
|
||||
<div class="brand-name">{{ siteName }}</div>
|
||||
<div class="brand-sub">{{ siteSlogan }}</div>
|
||||
</div>
|
||||
<img class="brand-logo" :src="`https://oss.wsdns.cn/20260127/989e5cf82b0847ed9168023baf68f4a9.png`" :alt="siteName" />
|
||||
</NuxtLink>
|
||||
|
||||
<div class="col-span-12 text-right md:col-span-6">
|
||||
@@ -320,7 +316,6 @@ const todayText = computed(() => {
|
||||
}
|
||||
|
||||
.brand-logo {
|
||||
width: 62px;
|
||||
height: 62px;
|
||||
object-fit: contain;
|
||||
display: block;
|
||||
|
||||
@@ -95,42 +95,42 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-6 grid grid-cols-12 gap-6">
|
||||
<div class="col-span-12 lg:col-span-7">
|
||||
<div class="panel">
|
||||
<div class="section-pill">
|
||||
<span class="pill-left">
|
||||
<AppstoreOutlined />
|
||||
业务板块
|
||||
</span>
|
||||
<span class="pill-right">SERVICES</span>
|
||||
</div>
|
||||
<!-- <div class="mt-6 grid grid-cols-12 gap-6">-->
|
||||
<!-- <div class="col-span-12 lg:col-span-7">-->
|
||||
<!-- <div class="panel">-->
|
||||
<!-- <div class="section-pill">-->
|
||||
<!-- <span class="pill-left">-->
|
||||
<!-- <AppstoreOutlined />-->
|
||||
<!-- 业务板块-->
|
||||
<!-- </span>-->
|
||||
<!-- <span class="pill-right">SERVICES</span>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<div class="mt-4 grid grid-cols-1 gap-4 sm:grid-cols-2">
|
||||
<a-card
|
||||
v-for="s in services"
|
||||
:key="s.title"
|
||||
class="guide-card service-card"
|
||||
:bordered="true"
|
||||
hoverable
|
||||
@click="navigateTo('/products')"
|
||||
>
|
||||
<a-space>
|
||||
<a-avatar :size="44" class="guide-icon service-icon">
|
||||
<component :is="s.icon" />
|
||||
</a-avatar>
|
||||
<div>
|
||||
<div class="guide-title">{{ s.title }}</div>
|
||||
<div class="guide-desc">{{ s.desc }}</div>
|
||||
</div>
|
||||
</a-space>
|
||||
</a-card>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="mt-4 grid grid-cols-1 gap-4 sm:grid-cols-2">-->
|
||||
<!-- <a-card-->
|
||||
<!-- v-for="s in services"-->
|
||||
<!-- :key="s.title"-->
|
||||
<!-- class="guide-card service-card"-->
|
||||
<!-- :bordered="true"-->
|
||||
<!-- hoverable-->
|
||||
<!-- @click="navigateTo('/products')"-->
|
||||
<!-- >-->
|
||||
<!-- <a-space>-->
|
||||
<!-- <a-avatar :size="44" class="guide-icon service-icon">-->
|
||||
<!-- <component :is="s.icon" />-->
|
||||
<!-- </a-avatar>-->
|
||||
<!-- <div>-->
|
||||
<!-- <div class="guide-title">{{ s.title }}</div>-->
|
||||
<!-- <div class="guide-desc">{{ s.desc }}</div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </a-space>-->
|
||||
<!-- </a-card>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
|
||||
</div>
|
||||
<!-- </div>-->
|
||||
</section>
|
||||
|
||||
<section class="banner">
|
||||
@@ -314,6 +314,7 @@ function scrollToCompany() {
|
||||
|
||||
.panel {
|
||||
background: #fff;
|
||||
height: 360px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.06);
|
||||
border-radius: 10px;
|
||||
overflow: hidden;
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 685 B |
Reference in New Issue
Block a user