diff --git a/frontend/src/pages/YichensBoard.jsx b/frontend/src/pages/YichensBoard.jsx
index f01b819..6d59a1b 100644
--- a/frontend/src/pages/YichensBoard.jsx
+++ b/frontend/src/pages/YichensBoard.jsx
@@ -1,7 +1,7 @@
/**
* YichensBoard - 一尘看板页面
- * Version: 0.0.2
- * 更新:新增号码特色筛选按钮(带4、无4、无47等)
+ * Version: 1.2.70x
+ * 更新:
*/
import React, { useState, useEffect } from 'react'
@@ -96,3 +96,196 @@ export default function YichensBoard() {
}
}
// 确保data是数组
+ if (!Array.isArray(data)) {
+ data = data.posts || data.data || []
+ }
+ console.log('YichensBoard: posts data count', data.length)
+ if (currentCat && Array.isArray(data)) {
+ if (currentCat === '龙') {
+ data = data.filter(p => p.category && (p.category.includes('龙') || p.category.includes('纪念钞')))
+ } else if (currentCat === '蛇') {
+ data = data.filter(p => p.category && p.category.includes('蛇'))
+ } else if (currentCat === '马') {
+ data = data.filter(p => p.category && p.category.includes('马'))
+ } else if (currentCat === '其他') {
+ data = data.filter(p => p.category && !p.category.includes('龙') && !p.category.includes('纪念钞') && !p.category.includes('蛇') && !p.category.includes('马'))
+ }
+ }
+ // 支持新格式 {posts:[], total:xxx} 或旧格式 [{},{}]
+ const postsArray = Array.isArray(data) ? data : (data.posts || [])
+ const totalCount = data.total || todayStats.total || postsArray.length
+ setPosts(postsArray)
+ setTotalPosts(totalCount)
+ } catch(e) {
+ console.error('YichensBoard: fetchPosts error', e)
+ setError(e.message)
+ setPosts([])
+ } finally {
+ setLoading(false)
+ }
+ }
+
+ useEffect(() => {
+ if (todayStats.total > 0) {
+ fetchPosts(1, categoryFilter, searchKeyword)
+ }
+ }, [todayStats, categoryFilter, postTypeFilter, numberFilter])
+
+ useEffect(() => {
+ setPage(1)
+ fetchPosts(1, categoryFilter, searchKeyword)
+ }, [searchKeyword, numberFilter])
+
+ const togglePost = id => setExpandedPosts(p => ({ ...p, [id]: !p[id] }))
+
+ const StatCard = ({ label, value, color, onClick }) => (
+
+
+
+ 📈 连体钞/纪念钞 {dateStr}
+
+
+ { setPostTypeFilter('all'); setCategoryFilter(''); setPage(1); }} />
+ { setPostTypeFilter('deal'); setCategoryFilter(''); setPage(1); }} />
+ { setPostTypeFilter('want'); setCategoryFilter(''); setPage(1); }} />
+ { setPostTypeFilter('other'); setCategoryFilter(''); setPage(1); }} />
+
+
+
+
+
📊 今日分类统计
+
龙: {todayStats.dragons || 0} | 马: {todayStats.horses || 0} | 蛇: {todayStats.snakes || 0} | 天马: {todayStats.tianma || 0}
+
+
+
+
+ { const kw = e.target.value; setSearchKeyword(kw); setPage(1); fetchPosts(1, '', kw) }}
+ style={{ flex: 1, padding: '10px 14px', borderRadius: 8, border: '1px solid #374151', background: '#1f2937', color: '#fff', fontSize: 13, outline: 'none' }}
+ />
+
+
+ {searchKeyword &&
搜索: "{searchKeyword}",共找到 {totalPosts} 条结果
}
+
+
+
+ {[{key:'all',label:'全部'},{key:'deal',label:'出售'},{key:'want',label:'求购'},{key:'other',label:'其他'}].map(k => (
+
+ ))}
+
+
+
+ {[{key:'',label:'全部'},{key:'龙',label:'龙钞'},{key:'蛇',label:'蛇钞'},{key:'马',label:'马钞'},{key:'其他',label:'其他'}].map(k => (
+
+ ))}
+
+
+
+ {[{key:'',label:'全部'},{key:'带4',label:'带4'},{key:'无4',label:'无4'},{key:'无47',label:'无47'},{key:'无247',label:'无247'},{key:'无347',label:'无347'},{key:'年份',label:'年份'},{key:'特色',label:'其他'}].map(k => (
+
+ ))}
+
+
+ {loading ?
加载中...
: (
+
+
+ {posts.length === 0 ? (
+
暂无帖子数据
+ ) : (
+ posts.map(post => (
+
+
togglePost(post.post_id)} style={{ cursor: 'pointer' }}>
+
+
{post.title||'无标题'}
+
+
+ {post.post_type==='deal'?'出售':post.post_type==='want'?'求购':post.post_type==='normal'?'其他':'普通'}
+
+
+ {post.category || '-'}
+
+
+
+
+ {post.author_username||'未知'}
+ {post.post_time?.substring(0,16)||''}
+
+
+ {expandedPosts[post.post_id] && post.content && (
+
+
+ {post.content}
+
+ {post.url &&
查看原帖}
+
+ )}
+
+ ))
+ )}
+
+
+
+
+ 共 {totalPosts} 条结果,{Math.ceil(totalPosts / 390)} 页,当前第 {page} 页
+
+
+ {page > 1 ? (
+
+ ) : (
+ 上一页
+ )}
+ {posts.length >= 390 && totalPosts > page * 390 ? (
+
+ ) : (
+ 下一页
+ )}
+
+
+
+ )}
+
+ )
+}