import React, { useState, useEffect } from 'react' import { View, Text } from '@tarojs/components' import Price from '@/components/common/Price' interface PayModalProps { visible: boolean amount: string onClose: () => void onConfirm: (payType: number) => void } const PAY_TYPES = [ { id: 1, name: '微信支付', desc: '推荐使用', icon: 'pay-wechat' }, { id: 0, name: '货到付款', desc: '使用账户余额', icon: 'pay-balance' }, ] const PayModal: React.FC = ({ visible, amount, onClose, onConfirm }) => { const [selected, setSelected] = useState(1) const [showOverlay, setShowOverlay] = useState(false) const [slideUp, setSlideUp] = useState(false) // 控制动画 useEffect(() => { if (visible) { setShowOverlay(true) setTimeout(() => setSlideUp(true), 10) } else { setSlideUp(false) setTimeout(() => setShowOverlay(false), 300) } }, [visible]) const handleClose = () => { setSlideUp(false) setTimeout(() => { setShowOverlay(false) onClose() }, 300) } const handleConfirm = () => { handleClose() onConfirm(selected) } if (!showOverlay) return null return ( {/* 遮罩层 */} {/* 弹窗内容 */} {/* 关闭按钮 */} × 选择支付方式 {PAY_TYPES.map((item) => ( setSelected(item.id)} > {item.id === 1 ? '微' : '余'} {item.name} {item.desc} {selected === item.id && ( )} ))} 确认支付 ) } export default PayModal