import React, { useEffect, useState } from 'react'; import { useParams, useNavigate, useSearchParams } from 'react-router-dom'; import { Typography, Button, Spin, Empty, Descriptions, Tag, Row, Col, Modal, Form, Input, message, Statistic } from 'antd'; import { ArrowLeftOutlined, ClockCircleOutlined, GiftOutlined, ShoppingCartOutlined } from '@ant-design/icons'; import { getServiceDetail, createServiceOrder } from '../api'; import { motion } from 'framer-motion'; const { Title, Paragraph } = Typography; const ServiceDetail = () => { const { id } = useParams(); const navigate = useNavigate(); const [searchParams] = useSearchParams(); const [service, setService] = useState(null); const [loading, setLoading] = useState(true); const [isModalOpen, setIsModalOpen] = useState(false); const [submitting, setSubmitting] = useState(false); const [form] = Form.useForm(); const refCode = searchParams.get('ref') || 'flw666'; useEffect(() => { const fetchDetail = async () => { try { const response = await getServiceDetail(id); setService(response.data); } catch (error) { console.error("Failed to fetch service detail:", error); } finally { setLoading(false); } }; fetchDetail(); }, [id]); const handlePurchase = async (values) => { setSubmitting(true); try { const orderData = { service: service.id, customer_name: values.customer_name, company_name: values.company_name, phone_number: values.phone_number, email: values.email, requirements: values.requirements, ref_code: refCode }; await createServiceOrder(orderData); message.success('需求已提交,我们的销售顾问将尽快与您联系!'); setIsModalOpen(false); } catch (error) { console.error(error); message.error('提交失败,请重试'); } finally { setSubmitting(false); } }; if (loading) { return (
); } if (!service) { return (
); } return (
{service.title} {service.description}
<div style={{ width: 4, height: 18, background: service.color, marginRight: 10, borderRadius: 2 }} /> 服务详情 交付周期}> {service.delivery_time || '待沟通'} 交付内容}> {service.delivery_content || '根据需求定制'}
{service.display_detail_image ? (
{service.title}
) : (
暂无详情图片
)}
服务报价
¥{service.price} / {service.unit} 起
{service.features_list && service.features_list.map((feat, i) => ( {feat} ))}

* 具体价格可能因需求复杂度而异,提交需求后我们将提供详细报价单

{/* Purchase Modal */} setIsModalOpen(false)} footer={null} destroyOnHidden >

请填写您的联系方式和需求,我们的技术顾问将在 24 小时内与您联系。

); }; export default ServiceDetail;