diff --git a/frontend/src/pages/Home.jsx b/frontend/src/pages/Home.jsx index 90c9aab..83a91e0 100644 --- a/frontend/src/pages/Home.jsx +++ b/frontend/src/pages/Home.jsx @@ -9,8 +9,47 @@ export default function Home() { const [seekStats, setSeekStats] = useState({ seekCount: 0, matchedCount: 0 }) const [recentPosts, setRecentPosts] = useState([]) const [dragonStats, setDragonStats] = useState({}) + const [dealStats, setDealStats] = useState({ total: 0, items: [] }) + const [dealVersion, setDealVersion] = useState('龙钞') + const [dealDetailItems, setDealDetailItems] = useState(null) const currentPath = window.location.hash.slice(1) || '/' + // 成交行情数据处理 + const categoryOrder = ['带4号', '带7号', '永恒号', '天马号', '天马王', '金山号', '金山王', '钻石号', '朦胧号', '朦胧王', '金马号', '金马王', '倒置号', '圆圆号'] + + const normalizeCat = (c) => { + if (c === '通货') return '带4号' + if (c === '无4') return '带7号' + return c + } + + const calcDealAvg = (pkg, cat) => { + const items = dealStats.items.filter(item => { + const content = item.content || '' + const p = content.includes('包装:') ? content.split('包装:')[1].split('\n')[0].trim() : (item.packaging || '') + let c = content.includes('分类:') ? content.split('分类:')[1].split('\n')[0].trim() : (item.category || '') + c = normalizeCat(c) + return p === pkg && c === cat + }) + if (items.length === 0) return null + const sum = items.reduce((a, b) => a + (b.deal_price || 0), 0) + return { avg: Math.round(sum / items.length), count: items.length, items } + } + + // 获取今日成交数据 + useEffect(() => { + const today = new Date() + const dealDate = `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, '0')}-${String(today.getDate()).padStart(2, '0')}` + fetch(`/api/information/list?info_type=deal&deal_date=${dealDate}&page_size=500`) + .then(res => res.json()) + .then(data => { + if (Array.isArray(data)) { + setDealStats({ total: data.length, items: data }) + } + }) + .catch(() => {}) + }, []) + useEffect(() => { const token = localStorage.getItem('token') const userData = localStorage.getItem('user') @@ -232,6 +271,60 @@ export default function Home() { + {/* 今日成交数据统计 */} + {dealStats && dealStats.total > 0 && ( +
| + {['标百', '标十', '单张'].map(p => ( + | {p} | + ))} +
|---|---|
| {cat} | + {rowData.map((d, i) => ( +
+ {d ? (
+ setDealDetailItems(d.items)}>
+ ¥{d.avg.toLocaleString()}
+ ({d.count})
+
+ ) : -}
+ |
+ ))}
+