- Debian-based api image (bookworm-slim), docker/debian mirrors, prisma binaryTargets for openssl 3.0 - nginx: admin SPA under /admin, TLS via acme.sh (ZeroSSL) + auto-renewal cron, http->https redirect - prisma: add origin_goods.delisted migration, sync missing schema (good_image/tag_font_color/good_tags), fix users.createdAt Timestamptz - api: CORS wildcard reflection, helmet CORP cross-origin, price backfill in persistProductDetail, categoryIcon ancestor fallback, mediaByColor per-color gallery in public goods detail - admin: /admin base path (vite + router) - import-data.mjs: udt_name casting, serial sequence advance fix
37 lines
1.4 KiB
Vue
37 lines
1.4 KiB
Vue
<template>
|
|
<section class="why-section py-10 lg:py-16 px-4 lg:px-6 bg-inkreach-homepage-2">
|
|
<div class="max-w-7xl mx-auto">
|
|
<h2 class="text-2xl md:text-4xl lg:text-5xl font-bold text-center mb-8 lg:mb-10">
|
|
为什么选择<span
|
|
style="background: linear-gradient(90deg, #000000, #ec6000); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;"
|
|
>inkreach?</span>
|
|
</h2>
|
|
<div class="grid grid-cols-2 lg:grid-cols-4 gap-4 lg:gap-6">
|
|
<div
|
|
v-for="item in reasons"
|
|
:key="item.title"
|
|
class="bg-white rounded-xl p-6 lg:p-10 text-center flex flex-col justify-center items-center gap-3"
|
|
>
|
|
<div class="rounded-full flex items-center justify-center">
|
|
<img :src="item.icon" :alt="item.title" class="w-8 h-8 lg:w-auto lg:h-auto" />
|
|
</div>
|
|
<h3 class="text-lg lg:text-2xl font-bold text-gray-900">{{ item.title }}</h3>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</template>
|
|
|
|
<script setup>
|
|
const reasons = [
|
|
{ title: '零库存', icon: '/零库存图标.png' },
|
|
{ title: '快速生产', icon: '/快速生产图标.png' },
|
|
{ title: '优质产品', icon: '/优质产品图标.png' },
|
|
{ title: '全球配送', icon: '/全球配送图标.png' },
|
|
];
|
|
</script>
|
|
|
|
<style scoped>
|
|
@media (min-width: 1024px) { .why-section { height: 430px; } }
|
|
</style>
|