import React, { useState, useEffect } from 'react' import { View, Text, Image, ScrollView } from '@tarojs/components' import Taro from '@tarojs/taro' import EmptyState from '@/components/common/EmptyState' import LoadMore from '@/components/common/LoadMore' definePageConfig({ navigationBarTitleText: '浏览历史', }) interface HistoryItem { goodsId: number name?: string image?: string price?: string timestamp: number } const BrowseHistoryPage: React.FC = () => { const [list, setList] = useState([]) useEffect(() => { loadHistory() }, []) const loadHistory = () => { try { const history = Taro.getStorageSync('browse_history') || [] setList(history) } catch { setList([]) } } const handleItemClick = (goodsId: number) => { Taro.navigateTo({ url: `/pages/shop/product-detail?id=${goodsId}` }) } const handleClearHistory = () => { Taro.showModal({ title: '提示', content: '确定要清空浏览历史吗?', success: (res) => { if (res.confirm) { Taro.removeStorageSync('browse_history') setList([]) Taro.showToast({ title: '已清空', icon: 'success' }) } } }) } const formatTime = (timestamp: number) => { const date = new Date(timestamp) return `${date.getMonth() + 1}/${date.getDate()} ${date.getHours()}:${String(date.getMinutes()).padStart(2, '0')}` } return ( {/* 顶部操作栏 */} {list.length > 0 && ( 清空历史 )} {list.length > 0 ? ( {list.map(item => ( handleItemClick(item.goodsId)} > {item.name} ¥{item.price || '0'} {formatTime(item.timestamp)} ))} ) : ( )} ) } export default BrowseHistoryPage