63 lines
2.1 KiB
Vue
63 lines
2.1 KiB
Vue
<script setup>
|
|
defineProps({
|
|
overview: {
|
|
type: Object,
|
|
required: true,
|
|
},
|
|
routes: {
|
|
type: Array,
|
|
default: () => [],
|
|
},
|
|
sectionId: {
|
|
type: String,
|
|
default: "service-overview",
|
|
},
|
|
});
|
|
</script>
|
|
|
|
<template>
|
|
<section :id="sectionId" class="bg-white py-16 md:py-20">
|
|
<div class="container-gm">
|
|
<div class="flex flex-col gap-5 md:flex-row md:items-end md:justify-between" data-reveal>
|
|
<div class="max-w-3xl">
|
|
<p class="text-sm uppercase tracking-[0.3em] text-[#999]">{{ overview.eyebrow }}</p>
|
|
<h2 class="section-title mt-4">{{ overview.title }}</h2>
|
|
<p class="mt-4 text-base leading-8 text-[#666]">{{ overview.description }}</p>
|
|
</div>
|
|
<SectionRouteLinks :routes="routes" />
|
|
</div>
|
|
|
|
<div class="mt-10 grid gap-6 lg:grid-cols-[1.15fr_0.85fr]">
|
|
<div class="rounded-lg border border-gm-border bg-[#f7f8f7] p-6 md:p-8" data-stagger>
|
|
<p class="text-xs uppercase tracking-[0.28em] text-[#999]">Service Value</p>
|
|
<div class="mt-6 space-y-4">
|
|
<div
|
|
v-for="item in overview.highlights"
|
|
:key="item"
|
|
class="flex gap-3 rounded-lg border border-gm-border bg-white px-4 py-4 text-sm leading-7 text-[#555]"
|
|
data-stagger-item
|
|
>
|
|
<span class="mt-2 size-2 shrink-0 rounded-full bg-gm-green" />
|
|
<span>{{ item }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="rounded-lg border border-gm-border bg-white p-6 md:p-8" data-reveal>
|
|
<p class="text-xs uppercase tracking-[0.28em] text-[#999]">Fit Clients</p>
|
|
<h3 class="mt-4 text-[22px] font-semibold text-[#262626]">适用客户场景</h3>
|
|
<div class="mt-6 flex flex-wrap gap-3">
|
|
<span
|
|
v-for="item in overview.audiences"
|
|
:key="item"
|
|
class="rounded-full border border-gm-border bg-gm-light px-4 py-2 text-sm text-[#555]"
|
|
>
|
|
{{ item }}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</template>
|