diff --git a/src/pages/designList/index.scss b/src/pages/designList/index.scss index db62f6a..1f48841 100644 --- a/src/pages/designList/index.scss +++ b/src/pages/designList/index.scss @@ -5,7 +5,7 @@ .manage-btn { font-size: 28px; - color: var(--accent-blue); + color: var(--accent-secondary); font-weight: 500; } @@ -35,7 +35,7 @@ } .tab-item.active .tab-label { - color: var(--accent-pink); + color: var(--accent-primary); font-weight: 700; } @@ -46,7 +46,7 @@ transform: translateX(-50%); width: 40px; height: 4px; - background: var(--accent-pink); + background: var(--accent-primary); border-radius: 2px; } @@ -68,14 +68,14 @@ width: 36px; height: 36px; border-radius: 50%; - border: 3px dashed var(--text-secondary); + border: 2rpx solid var(--border-strong); flex-shrink: 0; transition: all 0.2s; } .batch-checkbox.checked { - border-color: var(--accent-pink); - background: var(--accent-pink); + border-color: var(--accent-primary); + background: var(--accent-primary); } .batch-text { @@ -90,7 +90,7 @@ } .batch-delete.active { - color: #ff4757; + color: var(--danger); font-weight: 600; } @@ -106,8 +106,8 @@ } .design-card.selected { - border-color: var(--accent-pink); - background: rgba(255, 154, 158, 0.06); + border-color: var(--accent-primary); + background: var(--accent-primary-soft); } .design-body { @@ -155,7 +155,7 @@ .design-total { font-size: 26px; font-weight: 600; - color: var(--accent-pink); + color: var(--accent-primary); } .design-actions { diff --git a/src/pages/designList/index.tsx b/src/pages/designList/index.tsx index f0eafa6..21de3e7 100644 --- a/src/pages/designList/index.tsx +++ b/src/pages/designList/index.tsx @@ -120,7 +120,7 @@ export default function DesignListPage() { - + Taro.navigateBack()}>← 我的设计清单 @@ -148,7 +148,7 @@ export default function DesignListPage() { {/* 批量管理工具栏 */} {managing && ( - + 0 ? 'checked' : ''}`} /> @@ -165,7 +165,7 @@ export default function DesignListPage() { {filtered.map(item => { const style = STATUS_STYLE[item.status] - const rawIcon = item.productIcon?.startsWith('/icon/') || /^https?:/i.test(item.productIcon || '') + const rawIcon = (item.productIcon || '').startsWith('/icon/') || /^https?:/i.test(item.productIcon || '') ? item.productIcon : PRODUCT_ICON_MAP[item.productId] || '/icon/四角星.svg' const iconSrc = assetUrl(rawIcon) @@ -173,7 +173,7 @@ export default function DesignListPage() { return ( managing ? toggleSelect(item.id) : undefined} > @@ -193,12 +193,12 @@ export default function DesignListPage() { {!managing && ( {item.status !== 'ordered' && ( - goDesign(item)}> + goDesign(item)}> {item.status === 'undesigned' ? '开始设计' : '继续设计'} )} {item.status === 'ordered' && ( - Taro.switchTab({ url: '/pages/orders/index' })}> + Taro.switchTab({ url: '/pages/orders/index' })}> 查看订单 )} @@ -213,7 +213,7 @@ export default function DesignListPage() { 还没有设计清单 去首页逛逛,找到喜欢的定制品 - Taro.switchTab({ url: '/pages/index/index' })}> + Taro.switchTab({ url: '/pages/index/index' })}> 去逛逛 diff --git a/src/pages/orderDetail/index.scss b/src/pages/orderDetail/index.scss index 750b2cb..52a8a9c 100644 --- a/src/pages/orderDetail/index.scss +++ b/src/pages/orderDetail/index.scss @@ -43,7 +43,7 @@ top: 8px; bottom: 8px; width: 2px; - background: var(--line-star); + background: var(--border); opacity: 0.3; } @@ -63,7 +63,7 @@ height: 18px; border-radius: 50%; background: var(--bg-card); - border: 3px solid var(--line-star); + border: 2rpx solid var(--border-strong); margin-right: 20px; flex-shrink: 0; margin-left: -20px; @@ -71,8 +71,8 @@ } .timeline-item.active .timeline-dot { - background: var(--accent-pink); - border-color: var(--accent-pink); + background: var(--accent-primary); + border-color: var(--accent-primary); } .timeline-content { @@ -112,12 +112,12 @@ .address-change { padding: 6px 16px; border-radius: 8px; - background: rgba(91, 140, 255, 0.08); + background: var(--accent-secondary-soft); } .change-text { font-size: 24px; - color: var(--accent-blue); + color: var(--accent-secondary); } .address-body { @@ -181,11 +181,11 @@ .addr-picker-item { padding: 20px 16px; - border-bottom: 1px dashed rgba(0, 0, 0, 0.05); + border-bottom: 1rpx solid var(--border); } .addr-picker-item.active { - background: rgba(91, 140, 255, 0.06); + background: var(--accent-secondary-soft); border-radius: 12px; } @@ -209,8 +209,8 @@ .addr-picker-default { font-size: 22px; - color: var(--accent-pink); - border: 1px solid var(--accent-pink); + color: var(--accent-primary); + border: 1rpx solid var(--accent-primary); padding: 2px 8px; border-radius: 6px; } @@ -231,13 +231,13 @@ margin-top: 16px; padding: 20px; text-align: center; - border: 2px dashed var(--accent-blue); + border: 1rpx solid var(--border-strong); border-radius: 12px; } .addr-picker-add-text { font-size: 28px; - color: var(--accent-blue); + color: var(--accent-secondary); } /* 卡片标题 icon(物流/地址) */ @@ -299,7 +299,7 @@ align-items: center; justify-content: space-between; padding: 16px 0; - border-top: 1px dashed rgba(0,0,0,0.06); + border-top: 1rpx solid var(--border); } .price-label { @@ -324,7 +324,7 @@ .total-value { font-size: 36px; font-weight: 800; - color: var(--accent-pink); + color: var(--accent-primary); } /* 信息卡片 */ @@ -365,7 +365,7 @@ justify-content: space-between; margin-bottom: 24px; padding-bottom: 16px; - border-bottom: 1px dashed rgba(0,0,0,0.06); + border-bottom: 1rpx solid var(--border); } .logistics-title { @@ -391,7 +391,7 @@ top: 8px; bottom: 8px; width: 2px; - background: var(--line-star); + background: var(--border); opacity: 0.3; } @@ -411,7 +411,7 @@ height: 18px; border-radius: 50%; background: var(--bg-card); - border: 3px solid var(--line-star); + border: 2rpx solid var(--border-strong); margin-right: 20px; flex-shrink: 0; margin-left: -20px; @@ -419,8 +419,8 @@ } .timeline-item.active .timeline-dot { - background: var(--accent-pink); - border-color: var(--accent-pink); + background: var(--accent-primary); + border-color: var(--accent-primary); } .timeline-content { @@ -479,10 +479,10 @@ .design-preview { position: relative; - background: linear-gradient(135deg, rgba(255, 154, 158, 0.08) 0%, rgba(160, 196, 255, 0.08) 100%); + background: var(--bg-input); border-radius: 16px; overflow: hidden; - border: 3px dashed var(--accent-blue); + border: 1rpx solid var(--border-strong); margin: 0 auto; } diff --git a/src/pages/orderDetail/index.tsx b/src/pages/orderDetail/index.tsx index 94fd9a8..eae78ee 100644 --- a/src/pages/orderDetail/index.tsx +++ b/src/pages/orderDetail/index.tsx @@ -1,4 +1,4 @@ -import { View, Text, Image, Button } from '@tarojs/components' +import { View, Text, Image } from '@tarojs/components' import Taro from '@tarojs/taro' import { useState, useEffect } from 'react' import './index.scss' @@ -14,8 +14,9 @@ export default function OrderDetailPage() { const { theme, resolvedTheme } = useThemeContext() const safe = useSafeArea() useStatusBar(resolvedTheme) - const params = Taro.getCurrentInstance().router?.params - const orderId = params?.orderId || '' + const router = Taro.getCurrentInstance().router + const params = router ? router.params : {} + const orderId = (params && params.orderId) || '' const [order, setOrder] = useState(null) const [address, setAddress] = useState(null) @@ -55,7 +56,7 @@ export default function OrderDetailPage() { - + 订单不存在 @@ -68,8 +69,7 @@ export default function OrderDetailPage() { - - + Taro.navigateBack()}>← 订单详情 @@ -78,8 +78,7 @@ export default function OrderDetailPage() { {/* 状态横幅 */} - - + {order.statusCode === 'pending' && '待付款'} {order.statusCode === 'paid' && '待发货'} @@ -96,8 +95,7 @@ export default function OrderDetailPage() { {/* 物流信息(仅 shipping/done) */} {(order.statusCode === 'shipping' || order.statusCode === 'done') && ( - - + @@ -135,13 +133,12 @@ export default function OrderDetailPage() { )} {/* 商品信息 */} - - + @@ -157,8 +154,7 @@ export default function OrderDetailPage() { {/* 收货地址 */} - - + @@ -175,7 +171,7 @@ export default function OrderDetailPage() { {address.phone} - {address.region?.join(' ')} {address.detail} + {(address.region || []).join(' ')} {address.detail} ) : ( @@ -186,8 +182,7 @@ export default function OrderDetailPage() { {/* 订单信息 */} - - + 订单信息 订单编号 @@ -208,7 +203,7 @@ export default function OrderDetailPage() { {/* 地址选择底部弹窗 */} {showAddrPicker && ( - + 选择收货地址 setShowAddrPicker(false)}>✕ @@ -217,7 +212,7 @@ export default function OrderDetailPage() { {addrList.map((addr) => ( handlePickAddress(addr)} > @@ -226,7 +221,7 @@ export default function OrderDetailPage() { {addr.isDefault && 默认} - {addr.region?.join(' ')} {addr.detail} + {(addr.region || []).join(' ')} {addr.detail} ))} diff --git a/src/pages/orders/index.scss b/src/pages/orders/index.scss index 5c8caef..d3a8abf 100644 --- a/src/pages/orders/index.scss +++ b/src/pages/orders/index.scss @@ -22,11 +22,11 @@ } .tab-label { font-size: 28px; - color: #b08d8d; + color: var(--text-secondary); font-weight: 500; } .tab-item.active .tab-label { - color: #ff9a9e; + color: var(--accent-primary); font-weight: 700; } .tab-underline { @@ -36,7 +36,7 @@ transform: translateX(-50%); width: 40px; height: 4px; - background: #ff9a9e; + background: var(--accent-primary); border-radius: 4px; } @@ -54,12 +54,12 @@ justify-content: space-between; align-items: center; padding-bottom: 20px; - border-bottom: 2px dashed #fce4ec; + border-bottom: 1rpx solid var(--border); margin-bottom: 20px; } .order-date { font-size: 24px; - color: #b08d8d; + color: var(--text-secondary); } .order-body { @@ -70,7 +70,7 @@ .order-icon-wrapper { width: 120px; height: 120px; - background: linear-gradient(135deg, #fff0f5 0%, #e3f2fd 100%); + background: var(--bg-input); border-radius: 16px; display: flex; align-items: center; @@ -91,25 +91,25 @@ .order-product { font-size: 30px; font-weight: 700; - color: #5c3a3a; + color: var(--text-primary); display: block; margin-bottom: 8px; } .order-sku { font-size: 24px; - color: #b08d8d; + color: var(--text-secondary); display: block; margin-bottom: 8px; } .order-meta { font-size: 22px; - color: #ccc; + color: var(--text-muted); display: block; } .order-footer { padding-top: 16px; - border-top: 2px dashed #fce4ec; + border-top: 1rpx solid var(--border); } .order-price-bar { display: flex; @@ -119,13 +119,13 @@ } .price-label { font-size: 24px; - color: #b08d8d; + color: var(--text-secondary); margin-right: 8px; } .price-value { font-size: 36px; font-weight: 800; - color: #ff6b81; + color: var(--accent-primary); } .order-actions { display: flex; @@ -135,7 +135,7 @@ .order-btn { padding: 14px 28px !important; font-size: 26px !important; - border-radius: 40px !important; + border-radius: 999rpx !important; } /* 空状态 */ diff --git a/src/pages/orders/index.tsx b/src/pages/orders/index.tsx index 0b326e8..df3cfe6 100644 --- a/src/pages/orders/index.tsx +++ b/src/pages/orders/index.tsx @@ -62,9 +62,15 @@ export default function OrdersPage() { // 页面每次显示时刷新(处理下单后同步) useEffect(() => { - Taro.eventCenter?.once?.('orders:refresh', load) + if (Taro.eventCenter) { + Taro.eventCenter.once('orders:refresh', load) + } load() - return () => { Taro.eventCenter?.off?.('orders:refresh', load) } + return () => { + if (Taro.eventCenter) { + Taro.eventCenter.off('orders:refresh', load) + } + } }, []) const filteredOrders = activeTab === 'all' @@ -81,8 +87,7 @@ export default function OrdersPage() { - - + 我的订单 @@ -106,13 +111,12 @@ export default function OrdersPage() { {filteredOrders.map((order) => { const status = STATUS_MAP[order.statusCode] || STATUS_MAP.pending - const rawIcon = order.productIcon?.startsWith('/icon/') || /^https?:/i.test(order.productIcon || '') + const rawIcon = (order.productIcon || '').startsWith('/icon/') || /^https?:/i.test(order.productIcon || '') ? order.productIcon : '/icon/四角星.svg' const iconSrc = assetUrl(rawIcon) return ( - goDetail(order)}> - + goDetail(order)}> {order.date} {status.label} @@ -134,36 +138,36 @@ export default function OrdersPage() { {order.statusCode === 'pending' && ( - + 立即付款 )} {order.statusCode === 'paid' && ( - + 催发货 )} {order.statusCode === 'shipping' && ( <> - { e.stopPropagation(); Taro.showToast({ title: '查看物流', icon: 'none' }) }}> + { e.stopPropagation(); Taro.showToast({ title: '查看物流', icon: 'none' }) }}> 查看物流 - { e.stopPropagation(); Taro.showToast({ title: '确认收货', icon: 'none' }) }}> + { e.stopPropagation(); Taro.showToast({ title: '确认收货', icon: 'none' }) }}> 确认收货 )} {order.statusCode === 'done' && ( <> - { e.stopPropagation(); Taro.showToast({ title: '申请售后', icon: 'none' }) }}> + { e.stopPropagation(); Taro.showToast({ title: '申请售后', icon: 'none' }) }}> 申请售后 - { e.stopPropagation(); Taro.showToast({ title: '再来一单', icon: 'none' }) }}> + { e.stopPropagation(); Taro.showToast({ title: '再来一单', icon: 'none' }) }}> 再来一单 )} - { e.stopPropagation(); goDetail(order) }}> + { e.stopPropagation(); goDetail(order) }}> 详情 @@ -177,7 +181,7 @@ export default function OrdersPage() { 暂无订单 去首页开始定制吧 - Taro.switchTab({ url: '/pages/index/index' })}> + Taro.switchTab({ url: '/pages/index/index' })}> 去定制