beehive/app/components/product/knowledge/Hero.vue

130 lines
4.3 KiB
Vue

<script lang="ts" setup>
import TitleDescription from "~/components/TitleDescription.vue";
const cardItems = ref([
{
title: "可防伪的溯源标签码",
description: "每件商品都将生成唯一的二维码作为“身份证”标识,一物一码、无法复制、有效防伪,提升品牌效应。",
image: "/img/product/knowledge/yfbl.png"
},
{
title: "全流程精准快捷追溯",
description: "可随时通过扫码跳转至溯源页面,对产品从生产到流通全流程信息实现数字化记录和溯源查询,买的放心,吃的安心。",
image: "/img/product/knowledge/yfbk.png"
},
{
title: "蜂产品质量安全追溯平台",
description: "为开展蜂产品质量安全管理提供有效的监管工具,集成高清环境监控设备,完成对蜂产品从养殖到采收、加工、销售全产业链信息数字化采集和追溯查询,强化产品质量安全保障。",
image: "/img/product/knowledge/lzt.png"
}, {
title: "可防伪的溯源标签码",
description: "每件商品都将生成唯一的二维码作为“身份证”标识,一物一码、无法复制、有效防伪,提升品牌效应。",
image: "/img/product/knowledge/dyj.png"
},
{
title: "全流程精准快捷追溯",
description: "可随时通过扫码跳转至溯源页面,对产品从生产到流通全流程信息实现数字化记录和溯源查询,买的放心,吃的安心。",
image: "/img/product/knowledge/fqry.png"
},
{
title: "蜂产品质量安全追溯平台",
description: "为开展蜂产品质量安全管理提供有效的监管工具,集成高清环境监控设备,完成对蜂产品从养殖到采收、加工、销售全产业链信息数字化采集和追溯查询,强化产品质量安全保障。",
image: "/img/product/knowledge/zswd.png"
},
])
</script>
<template>
<img alt="" class="w-max" src="/img/product/knowledge/banner.png">
<!-- 标题描述 - 从左侧滑入 -->
<Motion
:in-view-options="{ once: true }"
:initial="{ opacity: 0, x: -50 }"
:transition="{ duration: 0.6, delay: 0.2 }"
:while-in-view="{ opacity: 1, x: 0 }"
>
<TitleDescription
description="为消费者、蜂产品生产企业或质量监管部门提供的一种蜂产品质量追溯手段,实现对蜂产品从养殖到销售全流程信息追溯,提高全产业链
透明度,极大提升产品品牌效应和宣传力度。已在北京、新疆、湖北、广东、浙江、四川等地推广应用。"
subtitle="SERVICE INTRODUCTION"
title="服务简介"
/>
</Motion>
<!-- 卡片网格 - 交错动画 -->
<view class="grid grid-cols-1 md:grid-cols-3 md:grid-rows-2 gap-6 px-4 md:py-16">
<Motion
v-for="(item, index) in cardItems"
:key="index"
:in-view-options="{ once: true }"
:initial="{
opacity: 0,
y: 50,
scale: 0.8,
rotateY: -15
}"
:transition="{
duration: 0.6,
delay: 0.1 * index,
ease: 'easeOut'
}"
:while-hover="{
scale: 1.05,
rotateY: 5,
transition: { duration: 0.3 }
}"
:while-in-view="{
opacity: 1,
y: 0,
scale: 1,
rotateY: 0
}"
class="transform-gpu"
>
<UPageCTA
:description="item.description"
:title="item.title"
:ui="{
title: 'font-semibold text-lg text-primary',
}"
class="shadow-lg hover:shadow-2xl transition-shadow duration-300 h-full"
reverse
>
<img
:src="item.image"
alt="Illustration"
class="w-full shadow-2xl rounded-2xl"
>
</UPageCTA>
</Motion>
</view>
<!-- 底部图片 - 从下方滑入并带有弹性效果 -->
<Motion
:in-view-options="{ once: true }"
:initial="{ opacity: 0, y: 100, scale: 0.8 }"
:transition="{
duration: 0.8,
delay: 0.3,
stiffness: 100,
damping: 15
}"
:while-hover="{
scale: 1.02,
transition: { duration: 0.3 }
}"
:while-in-view="{ opacity: 1, y: 0, scale: 1 }"
class="pt-6"
>
<img alt="" src="/img/product/knowledge/dingzhipng.png">
</Motion>
</template>