feat(user): 新增收货地址管理及售后申请页面
- 新增地址类型定义,增强前端地址数据结构 - 新增地址编辑页面,支持地址智能识别和定位选点功能 - 地址编辑支持省市区选择及默认地址设置 - 新增地址列表页面,支持地址展示、删除、编辑和选择功能 - 实现售后申请页面,支持选择售后类型和退款原因 - 售后申请支持商品选择、退款金额计算和凭证上传 - 新增售后详情页面,支持售后状态展示及申请取消 - 优化页面加载和用户交互体验,增加错误提示和权限处理
This commit is contained in:
@@ -10,12 +10,11 @@ interface PayModalProps {
|
||||
}
|
||||
|
||||
const PAY_TYPES = [
|
||||
{ id: 1, name: '微信支付', desc: '推荐使用', icon: 'pay-wechat' },
|
||||
{ id: 0, name: '货到付款', desc: '使用账户余额', icon: 'pay-balance' },
|
||||
{ id: 0, name: '货到付款', desc: '送达时支付', icon: 'pay-cod' },
|
||||
]
|
||||
|
||||
const PayModal: React.FC<PayModalProps> = ({ visible, amount, onClose, onConfirm }) => {
|
||||
const [selected, setSelected] = useState<number>(1)
|
||||
const [selected, setSelected] = useState<number>(0)
|
||||
const [showOverlay, setShowOverlay] = useState(false)
|
||||
const [slideUp, setSlideUp] = useState(false)
|
||||
|
||||
@@ -60,7 +59,7 @@ const PayModal: React.FC<PayModalProps> = ({ visible, amount, onClose, onConfirm
|
||||
<View className='p-4'>
|
||||
{/* 关闭按钮 */}
|
||||
<View className='flex justify-end mb-2'>
|
||||
<View
|
||||
<View
|
||||
className='w-6 h-6 rounded-full bg-gray-100 flex items-center justify-center'
|
||||
onClick={handleClose}
|
||||
>
|
||||
@@ -86,7 +85,7 @@ const PayModal: React.FC<PayModalProps> = ({ visible, amount, onClose, onConfirm
|
||||
<View className='flex items-center gap-3'>
|
||||
<View className='w-8 h-8 rounded-full bg-green-50 flex items-center justify-center'>
|
||||
<Text className='text-sm'>
|
||||
{item.id === 1 ? '微' : '余'}
|
||||
{item.id === 0 ? '货' : (item.id === 1 ? '微' : '余')}
|
||||
</Text>
|
||||
</View>
|
||||
<View>
|
||||
|
||||
@@ -157,7 +157,7 @@ const SkuSelector: React.FC<SkuSelectorProps> = ({
|
||||
const fakeSku: ShopGoodsSku = {
|
||||
id: 0,
|
||||
goodsId: product.goodsId!,
|
||||
price: product.price || product.salePrice,
|
||||
price: product.salePrice || product.price,
|
||||
salePrice: product.salePrice || product.price,
|
||||
stock: product.stock,
|
||||
image: product.image,
|
||||
@@ -187,11 +187,7 @@ const SkuSelector: React.FC<SkuSelectorProps> = ({
|
||||
}
|
||||
}
|
||||
|
||||
// 价格优先级:SKU售价 > SKU原价 > 商品售价 > 商品原价 > 0
|
||||
// 注意:ShopGoods 模型中 price=商品价格(低), salePrice=销售/市场价(高)
|
||||
// ShopGoodsSku 模型中 price=商品价格, salePrice=市场价格(高)
|
||||
// 统一以 price 为准,salePrice 仅作兜底展示
|
||||
const currentPrice = selectedSku?.price || selectedSku?.salePrice || product?.price || product?.salePrice || '0'
|
||||
const currentPrice = selectedSku?.salePrice || selectedSku?.price || product?.salePrice || product?.price || '0'
|
||||
const currentStock = selectedSku?.stock ?? product?.stock ?? 0
|
||||
const currentImage = selectedSku?.image || product?.image || (product?.files?.split(',')[0]) || ''
|
||||
|
||||
|
||||
Reference in New Issue
Block a user