import { View, Text, Image, Swiper, SwiperItem } from '@tarojs/components'
import Taro from '@tarojs/taro'
import { useState } from 'react'
import './index.scss'
import { getProductById } from '../../utils/productConfig'
import { addDesign } from '../../utils/store'
import { useThemeContext } from '../../context/ThemeContext'
import { useSafeArea } from '../../hooks/useSafeArea'
import { useStatusBar } from '../../hooks/useStatusBar'
import { getProductIconImg } from '../../utils/productConfig'
const HERO_COLORS = ['#FFE4EC', '#FFF0F5', '#FCE4EC']
export default function ProductPage() {
const { theme, resolvedTheme } = useThemeContext()
const safe = useSafeArea()
useStatusBar(resolvedTheme)
const [showModal, setShowModal] = useState(false)
const [quantity, setQuantity] = useState(1)
const params = Taro.getCurrentInstance().router?.params
const productId = params?.id || ''
const product = getProductById(productId)
if (!product) {
return (
商品未找到
)
}
const handleAddToList = () => {
setQuantity(1)
setShowModal(true)
}
const confirmAdd = () => {
addDesign(product, quantity)
setShowModal(false)
Taro.showToast({ title: `已加入设计清单 x${quantity}`, icon: 'success' })
setTimeout(() => Taro.navigateBack(), 1200)
}
const goToDIY = () => {
Taro.navigateTo({
url: `/pages/diy/index?source=product&productId=${product.id}&quantity=1`
})
}
const modQty = (delta: number) => {
setQuantity(q => Math.max(1, Math.min(99, q + delta)))
}
return (
Taro.navigateBack()}>←
商品详情
{/* 轮播 Hero */}
{product.images && product.images.length > 0 ? (
product.images.map((img, idx) => (
))
) : (
HERO_COLORS.map((color, idx) => (
{product.name}
))
)}
{/* 基本信息 */}
单价
¥{product.price}
工期
{product.leadTime}
尺寸
{product.mask.width} × {product.mask.height} px
{/* 详细介绍 */}
商品介绍
{product.description}
{/* 底部操作栏 */}
起价
¥{product.price}
加入设计清单
立即下单
{/* 安全区占位(防止内容被 action-bar 遮挡) */}
{/* 数量选择弹窗 */}
{showModal && (
加入设计清单
{product.name}
数量
modQty(-1)}>-
{quantity}
modQty(1)}>+
小计
¥{(product.price * quantity).toFixed(2)}
setShowModal(false)}>
取消
确定
)}
)
}