96 lines
4.2 KiB
TypeScript
96 lines
4.2 KiB
TypeScript
import LottiePlayer from "@/components/LottiePlayer"
|
||
import Link from "next/link"
|
||
import { CONTACT_CHANNELS } from "@/lib/site-content"
|
||
|
||
const CONTACT_CARDS = [
|
||
{
|
||
title: "产品试用 / Demo",
|
||
description: "适合还在判断 DAL Code 是否匹配当前研发流程的团队,建议先从一个真实任务场景开始聊。",
|
||
linkText: "提交试用需求",
|
||
href: CONTACT_CHANNELS[0].href,
|
||
external: false,
|
||
lottie:
|
||
"/assets/cdn-prod-website-files-com/68a342b7066c56fa60eb3af1/68d28ff8a28b3e0d6614fe9b_help-support-animation-row-wave.json",
|
||
},
|
||
{
|
||
title: "企业方案 / 安全合规",
|
||
description: "适合已经明确关注私有化、审批流、权限治理、采购流程和团队协作边界的负责人。",
|
||
linkText: "说明企业约束",
|
||
href: CONTACT_CHANNELS[1].href,
|
||
external: false,
|
||
lottie:
|
||
"/assets/cdn-prod-website-files-com/68a342b7066c56fa60eb3af1/68d28ff844db76df2f0ca451_press-media-animation-row-wave.json",
|
||
},
|
||
{
|
||
title: "生态合作 / Skills 共建",
|
||
description: "适合希望围绕插件、模板、知识工作流和开发者社区共同建设产品生态的伙伴。",
|
||
linkText: "访问 DeepAILab",
|
||
href: CONTACT_CHANNELS[2].href,
|
||
external: true,
|
||
lottie:
|
||
"/assets/cdn-prod-website-files-com/68a342b7066c56fa60eb3af1/68d28ff8806a1552f46e35ac_sales-inquiries-animation-visual-row.json",
|
||
},
|
||
] as const
|
||
|
||
export default function FormSection() {
|
||
return (
|
||
<section className="section-small bg-neutral">
|
||
<div className="w-layout-blockcontainer container-default w-container">
|
||
<div data-w-id="37f8537e-c33a-f3ad-764c-d5c8b3ff1b64" style={{"opacity": "0", "filter": "blur(8px)"}} className="inner-container _650px center">
|
||
<div className="text-center">
|
||
<div className="subtitle">沟通入口</div>
|
||
<div className="mg-top-4x-extra-small">
|
||
<h2>
|
||
选择一个更适合你的沟通起点
|
||
</h2>
|
||
</div>
|
||
<div className="mg-top-4x-extra-small">
|
||
<p>
|
||
如果你能提前说明团队规模、技术栈、希望自动化的环节和安全约束,我们会更容易判断 DAL Code 适合从哪里切入。
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div className="mg-top-regular">
|
||
<div data-w-id="37f8537e-c33a-f3ad-764c-d5c8b3ff1b6a" style={{"opacity": "0", "filter": "blur(8px)"}} className="w-layout-grid contact-cards-grid-v1">
|
||
{CONTACT_CARDS.map((card) => {
|
||
const body = (
|
||
<>
|
||
<div className="contact-card-v1-content">
|
||
<LottiePlayer src={card.lottie} className="contact-card-v1-image" loop autoplay />
|
||
<div>
|
||
<h3 className="display-4">{card.title}</h3>
|
||
<div className="mg-top-5x-extra-small">
|
||
<p className="text-paragraph">{card.description}</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div className="contact-card-v1-link-wrapper">
|
||
<div className="contact-link-text">{card.linkText}</div>
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 17 17" fill="none" className="squared-icon">
|
||
<path d="M6.25391 3.45312L10.7458 8.01563L6.25391 12.5781" stroke="currentColor" strokeWidth="1.5" strokeLinecap="square">
|
||
</path>
|
||
</svg>
|
||
<div style={{"width": "0%", "height": "100%"}} className="contact-card-link-bg">
|
||
</div>
|
||
</div>
|
||
</>
|
||
)
|
||
|
||
return card.external ? (
|
||
<a key={card.title} data-w-id={`contact-card-${card.title}`} href={card.href} className="card contact-card-v1 w-inline-block" target="_blank" rel="noopener noreferrer">
|
||
{body}
|
||
</a>
|
||
) : (
|
||
<Link key={card.title} href={card.href} className="card contact-card-v1 w-inline-block">
|
||
{body}
|
||
</Link>
|
||
)
|
||
})}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
)
|
||
}
|