针对个人主页与照片显示做了修改

This commit is contained in:
2026-07-27 21:47:14 +08:00
parent 4d086758e8
commit fa781cc6a6
60 changed files with 2770 additions and 683 deletions
+95 -92
View File
@@ -5,6 +5,7 @@ import './index.scss'
import { getOrderList, type OrderItem } from '../../utils/store'
import ThemeToggle from '../../components/ThemeToggle'
import { useThemeContext } from '../../context/ThemeContext'
import LoginGuard from '../../components/LoginGuard'
const STATUS_TABS = [
{ code: 'all', label: '全部' },
@@ -70,110 +71,112 @@ export default function OrdersPage() {
return (
<View className={`theme-${theme}`}>
<View className='orders-page'>
<ThemeToggle />
<LoginGuard>
<View className='orders-page'>
<ThemeToggle />
<View className='page-header dashed-card mt-20'>
<View className='star-badge' />
<Text className='page-title'></Text>
</View>
<View className='page-header dashed-card mt-20'>
<View className='star-badge' />
<Text className='page-title'></Text>
</View>
{/* 状态筛选Tab */}
<View className='status-tabs'>
<ScrollView className='tabs-scroll' scrollX>
{STATUS_TABS.map((tab) => (
<View
key={tab.code}
className={`tab-item ${activeTab === tab.code ? 'active' : ''}`}
onClick={() => setActiveTab(tab.code)}
>
<Text className='tab-label'>{tab.label}</Text>
{activeTab === tab.code && <View className='tab-underline' />}
</View>
))}
</ScrollView>
</View>
{/* 订单列表 */}
<ScrollView className='orders-list' scrollY>
{filteredOrders.map((order) => {
const status = STATUS_MAP[order.statusCode] || STATUS_MAP.pending
return (
<View key={order.id} className='order-card dashed-card' onClick={() => goDetail(order)}>
<View className='star-badge' />
<View className='order-header'>
<Text className='order-date'>{order.date}</Text>
<Text className={`badge ${status.badge}`}>{status.label}</Text>
{/* 状态筛选Tab */}
<View className='status-tabs'>
<ScrollView className='tabs-scroll' scrollX>
{STATUS_TABS.map((tab) => (
<View
key={tab.code}
className={`tab-item ${activeTab === tab.code ? 'active' : ''}`}
onClick={() => setActiveTab(tab.code)}
>
<Text className='tab-label'>{tab.label}</Text>
{activeTab === tab.code && <View className='tab-underline' />}
</View>
<View className='order-body'>
<View className='order-icon-wrapper'>
<Text className='order-icon'>{order.productIcon}</Text>
))}
</ScrollView>
</View>
{/* 订单列表 */}
<ScrollView className='orders-list' scrollY>
{filteredOrders.map((order) => {
const status = STATUS_MAP[order.statusCode] || STATUS_MAP.pending
return (
<View key={order.id} className='order-card dashed-card' onClick={() => goDetail(order)}>
<View className='star-badge' />
<View className='order-header'>
<Text className='order-date'>{order.date}</Text>
<Text className={`badge ${status.badge}`}>{status.label}</Text>
</View>
<View className='order-info'>
<Text className='order-product'>{order.productName}</Text>
<Text className='order-sku'>{order.sku}</Text>
<Text className='order-meta'>: {order.count} | {order.id}</Text>
<View className='order-body'>
<View className='order-icon-wrapper'>
<Text className='order-icon'>{order.productIcon}</Text>
</View>
<View className='order-info'>
<Text className='order-product'>{order.productName}</Text>
<Text className='order-sku'>{order.sku}</Text>
<Text className='order-meta'>: {order.count} | {order.id}</Text>
</View>
</View>
</View>
<View className='order-footer'>
<View className='order-price-bar'>
<Text className='price-label'></Text>
<Text className='price-value'>{order.price}</Text>
</View>
<View className='order-actions'>
{order.statusCode === 'pending' && (
<View className='btn-gradient order-btn'>
<Text></Text>
<View className='order-footer'>
<View className='order-price-bar'>
<Text className='price-label'></Text>
<Text className='price-value'>{order.price}</Text>
</View>
<View className='order-actions'>
{order.statusCode === 'pending' && (
<View className='btn-gradient order-btn'>
<Text></Text>
</View>
)}
{order.statusCode === 'paid' && (
<View className='btn-outline order-btn'>
<Text></Text>
</View>
)}
{order.statusCode === 'shipping' && (
<>
<View className='btn-outline order-btn' onClick={(e) => { e.stopPropagation(); Taro.showToast({ title: '查看物流', icon: 'none' }) }}>
<Text></Text>
</View>
<View className='btn-gradient order-btn' onClick={(e) => { e.stopPropagation(); Taro.showToast({ title: '确认收货', icon: 'none' }) }}>
<Text></Text>
</View>
</>
)}
{order.statusCode === 'done' && (
<>
<View className='btn-outline order-btn' onClick={(e) => { e.stopPropagation(); Taro.showToast({ title: '申请售后', icon: 'none' }) }}>
<Text></Text>
</View>
<View className='btn-gradient order-btn' onClick={(e) => { e.stopPropagation(); Taro.showToast({ title: '再来一单', icon: 'none' }) }}>
<Text></Text>
</View>
</>
)}
<View className='btn-outline order-btn' onClick={(e) => { e.stopPropagation(); goDetail(order) }}>
<Text></Text>
</View>
)}
{order.statusCode === 'paid' && (
<View className='btn-outline order-btn'>
<Text></Text>
</View>
)}
{order.statusCode === 'shipping' && (
<>
<View className='btn-outline order-btn' onClick={(e) => { e.stopPropagation(); Taro.showToast({ title: '查看物流', icon: 'none' }) }}>
<Text></Text>
</View>
<View className='btn-gradient order-btn' onClick={(e) => { e.stopPropagation(); Taro.showToast({ title: '确认收货', icon: 'none' }) }}>
<Text></Text>
</View>
</>
)}
{order.statusCode === 'done' && (
<>
<View className='btn-outline order-btn' onClick={(e) => { e.stopPropagation(); Taro.showToast({ title: '申请售后', icon: 'none' }) }}>
<Text></Text>
</View>
<View className='btn-gradient order-btn' onClick={(e) => { e.stopPropagation(); Taro.showToast({ title: '再来一单', icon: 'none' }) }}>
<Text></Text>
</View>
</>
)}
<View className='btn-outline order-btn' onClick={(e) => { e.stopPropagation(); goDetail(order) }}>
<Text></Text>
</View>
</View>
</View>
</View>
)
})}
)
})}
{filteredOrders.length === 0 && (
<View className='empty-state'>
<Text className='empty-icon'>📦</Text>
<Text className='empty-text'></Text>
<Text className='empty-sub'></Text>
<View className='btn-gradient' onClick={() => Taro.switchTab({ url: '/pages/index/index' })}>
<Text></Text>
{filteredOrders.length === 0 && (
<View className='empty-state'>
<Text className='empty-icon'>📦</Text>
<Text className='empty-text'></Text>
<Text className='empty-sub'></Text>
<View className='btn-gradient' onClick={() => Taro.switchTab({ url: '/pages/index/index' })}>
<Text></Text>
</View>
</View>
</View>
)}
</ScrollView>
)}
</ScrollView>
<View style={{ height: '40px' }} />
</View>
<View style={{ height: '40px' }} />
</View>
</LoginGuard>
</View>
)
}