Commit Graph

84 Commits

Author SHA1 Message Date
zdl
44fcef5eae refactor: Community 目录结构重组 + 修复导入路径 + 添加 Mock 数据
## 目录重构
- DynamicNewsCard/ → DynamicNews/(含 layouts/, hooks/ 子目录)
- EventCard 原子组件 → EventCard/atoms/
- EventDetailModal 独立目录化
- HotEvents 独立目录化(含 CSS)
- SearchFilters 独立目录化(CompactSearchBox, TradingTimeFilter)

## 导入路径修复
- EventCard/*.js: 统一使用 @constants/, @utils/, @components/ 别名
- atoms/*.js: 修复移动后的相对路径问题
- DynamicNewsCard.js: 更新 contexts, store, constants 导入
- EventHeaderInfo.js, CompactMetaBar.js: 修复 EventFollowButton 导入

## Mock Handler 添加
- /api/events/:eventId/expectation-score - 事件超预期得分
- /api/index/:indexCode/realtime - 指数实时行情

## 警告修复
- CitationMark.js: overlayInnerStyle → styles (Antd 5.x)
- CitedContent.js: 移除不支持的 jsx 属性

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-09 13:16:43 +08:00
zdl
aac031f17c feat: 添加mock数据 2025-12-09 11:34:07 +08:00
zdl
c3484d1fcc Merge branch 'feature_bugfix/251201_vf_h5_ui' into feature_bugfix/251201_py_h5_ui
* feature_bugfix/251201_vf_h5_ui: (31 commits)
  fix: CompactSearchBox 股票选择和行业筛选优化
  fix: stocks 字段支持对象格式 {code, name}
  refactor: EventDetailCard 重命名为 EventCard,支持多变体模式
  fix: UI调试
  fix: 修复 key 重复
  feat: 修复数据结构访问
  refactor: EventFormModal 从 Chakra UI 迁移到 Ant Design
  fix: 适配 watchlist 新数据结构
  refactor: 股票数据管理迁移到 Redux,新增类型化 Hooks
  fix: 修复ts报错
  feat: 添加mock数据
  style: EventFormModal 和 InvestmentCalendar H5 响应式适配
  style: EventFormModal 和 InvestmentCalendar H5 响应式适配
  fix: 补充 investment.ts 类型定义变更(df90fc2 遗漏)
  feat: h5隐藏日历视图
  perf: EventPanel 性能优化,EventDetailCard H5适配,清理冗余类型
  refactor: CalendarPanel 性能优化,统一弹窗状态管理
  feat: 添加"我的计划"和"我的复盘"的 mock 数据
  refactor: CalendarPanel 性能优化,统一弹窗状态管理
  feat: 新增 EventDetailModal 和 EventEmptyState 组件 用于展示某一天的所有投资事件
  ...
2025-12-05 18:29:05 +08:00
zdl
5f26ae0f77 feat: 修复数据结构访问 2025-12-05 17:29:32 +08:00
zdl
c681b511b4 refactor: 股票数据管理迁移到 Redux,新增类型化 Hooks
- stockSlice: 新增 loadAllStocks action(带缓存检查)
 - stockSlice: watchlist 结构升级为 { stock_code, stock_name }[]
 - store/hooks.ts: 新增 useAppDispatch, useAppSelector 类型化 hooks
 - stockService: 移除 getAllStocks(已迁移到 Redux)
 - mock: 股票搜索支持模糊匹配 + 相关性排序
2025-12-05 17:21:36 +08:00
zdl
cace21df71 feat: 添加mock数据 2025-12-05 15:28:15 +08:00
zdl
d3ff5c24da feat: 添加"我的计划"和"我的复盘"的 mock 数据 2025-12-05 15:00:24 +08:00
c70ba52c29 update pay ui 2025-12-05 13:46:27 +08:00
zdl
b81efc9d27 feat: 添加投资日历mock数据
投资日历提取计划列表卡片组件
2025-12-05 13:35:12 +08:00
98e975e755 update pay ui 2025-12-05 13:29:18 +08:00
zdl
d3cf8687d8 fix: 调整事件详情页面 2025-12-04 19:01:35 +08:00
zdl
f1b1e7523d feat: 田间mock数据 2025-12-04 16:51:07 +08:00
zdl
1225d332f7 fix: 修复自选股添加失败 405 错误
- useWatchlist.js: 修正 API 路径从 /api/account/watchlist/add 改为 /api/account/watchlist
- account.js: 同步修改 mock handler 路径

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 14:40:35 +08:00
zdl
69c1f66e57 feat: K线添加mock数据 2025-12-04 14:02:03 +08:00
zdl
bd0248cfb3 feat: 添加批量获取K线数据的 mock handler
- 新增 /api/stock/batch-kline POST 接口 mock
- 支持批量获取多只股票的分时图和日K线数据
- 修复事件详情页面相关股票的K线和分时图无数据问题

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 13:46:47 +08:00
zdl
db0a49fb4a fix:修复添加自选股没反应 2025-12-04 12:20:27 +08:00
zdl
0a2fff0ffc feat: 个股添加个股列表弹窗 2025-12-04 11:51:21 +08:00
zdl
f4157d3e4f fix: 去除个股中心动画,添加mock数据 2025-12-03 17:28:23 +08:00
zdl
b5126520cb feat: 添加mock数据 2025-12-03 15:56:24 +08:00
e950075f96 update pay ui 2025-12-02 12:01:59 +08:00
fe07032b13 update pay function 2025-11-28 16:08:31 +08:00
ff966c5cbe update pay function 2025-11-28 15:32:03 +08:00
17a76d3f7f update pay function 2025-11-28 14:49:16 +08:00
zdl
cdbc2b04b5 feat: 精简日志 2025-11-26 15:34:11 +08:00
zdl
73ed44037b feat: 修复 Mock 路径从 h5-auth-url → h5-auth 2025-11-26 14:52:05 +08:00
zdl
3e8f0d9866 pref: 删除调试工具 2025-11-26 13:16:30 +08:00
zdl
00d718ddba pref:点击手机登陆后日志优化 2025-11-26 11:43:16 +08:00
zdl
be8f563d1d :pref: 首屏优化 2025-11-26 11:30:12 +08:00
zdl
087defc84e fix:移除日志 2025-11-26 11:17:03 +08:00
zdl
ab6b0e983b feat: 客服接口mock添加 2025-11-26 10:55:18 +08:00
zdl
8c0a8e36d3 feat: 添加mock 2025-11-24 16:53:37 +08:00
zdl
c486bf1f43 feat: StockChartModal.tsx 替换 KLine 实现 2025-11-24 13:59:44 +08:00
zdl
79308cec48 feat: 实现评论分页功能并迁移到 TypeScript
- 创建通用分页 Hook (usePagination.ts) 支持任意数据类型
- 将 EventCommentSection 迁移到 TypeScript (.tsx)
- 添加"加载更多"按钮,支持增量加载评论
- 创建分页和评论相关类型定义 (pagination.ts, comment.ts)
- 增加 Mock 评论数据从 5 条到 15 条,便于测试分页

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 17:27:12 +08:00
zdl
f44c5d37ed feat: 添加评论功能 2025-11-14 16:15:13 +08:00
zdl
a3e7301074 feat: 处理mock数据 2025-11-07 20:05:14 +08:00
zdl
c6de3671cc fix: 修复 MSW 接口和调试代码清理... 2025-11-06 01:17:06 +08:00
zdl
cb5258b480 feat: 添加mock数据 2025-11-05 17:49:15 +08:00
zdl
a8d865f0d6 feat: 添加mock数据 2025-11-05 17:43:17 +08:00
zdl
a37d70a6d4 feat: 添加mock数据 2025-11-05 16:49:13 +08:00
zdl
d6d2057998 feat: mock数据添加 2025-11-05 15:20:59 +08:00
zdl
07600fb437 feat: 配置完全mock环境 2025-11-05 15:00:11 +08:00
zdl
6c20f201da feat: 导航栏关注事件弹窗增强显示信息
- 添加热度显示(🔥 图标 + 分数)
  - ≥80 红色,≥60 橙色,<60 灰色
- 添加关注数显示(👥 图标 + 人数)
- 保留原有涨跌幅显示(日均、周涨)
- mock 数据补充涨跌幅字段(related_avg_chg, related_max_chg, related_week_chg)
- 智能显示:字段存在时才显示对应 Badge
- 优化 Badge 间距和布局

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 11:05:32 +08:00
zdl
3e34eb884d feat: 调整mock数据 2025-11-04 20:17:56 +08:00
zdl
6872d7477f feat: 实现 Redux 全局状态管理事件关注功能
本次提交实现了滚动列表和事件详情的关注按钮状态同步:

 Redux 状态管理
- communityDataSlice.js: 添加 eventFollowStatus state
- 新增 toggleEventFollow AsyncThunk(复用 EventList.js 逻辑)
- 新增 setEventFollowStatus reducer 和 selectEventFollowStatus selector

 组件集成
- DynamicNewsCard.js: 从 Redux 读取关注状态并传递给子组件
- EventScrollList.js: 接收并传递关注状态给事件卡片
- DynamicNewsDetailPanel.js: 移除本地 state,使用 Redux 状态

 Mock API 支持
- event.js: 添加 POST /api/events/:eventId/follow 处理器
- 返回 { is_following, follower_count } 模拟数据

 Bug 修复
- EventDetail/index.js: 添加 useRef 导入
- concept.js: 导出 generatePopularConcepts 函数
- event.js: 添加 /api/events/:eventId/concepts 处理器

功能:
- 点击滚动列表的关注按钮,详情面板的关注状态自动同步
- 点击详情面板的关注按钮,滚动列表的关注状态自动同步
- 关注人数实时更新
- 状态在整个应用中保持一致

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 17:40:09 +08:00
zdl
2422e19eed feat: 添加mock接口 2025-11-03 17:31:25 +08:00
zdl
ca28596c0c fix: 修复 Mock 环境相关概念返回空结果问题
问题分析:
- Mock handler 的过滤逻辑过于严格
- 只保留概念名包含查询关键词的结果
- 导致大部分查询返回空数组

解决方案:
 移除字符串匹配过滤逻辑
- Mock 环境直接返回热门概念
- 模拟真实 API 的语义搜索行为
- 确保每次搜索都有结果展示

 添加详细调试日志
- RelatedConceptsSection 组件渲染日志
- useEffect 触发和参数日志
- 请求发送和响应详情
- 数据处理过程追踪

 完善 Mock 数据结构
- 添加 score, match_type, happened_times, stocks
- 支持详细卡片展示
- 数据结构与线上完全一致

修改文件:
- src/mocks/handlers/concept.js
- src/views/Community/components/DynamicNewsDetail/RelatedConceptsSection/index.js

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 16:40:25 +08:00
zdl
293d84e065 feat本次提交包含的优化
 StockChangeIndicators 组件优化

  - 调整 padding 使布局更紧凑
  - 修复窄卡片中的折行问题
  - 自动根据内容调整宽度

   重要性等级视觉优化

  - 统一使用红色系(S→A→B→C:从深红到浅红)
  - 添加 badgeBg 字段支持新的角标样式

   DynamicNewsEventCard 卡片改版

  - 左上角矩形角标显示重要性(镂空边框样式)
  - 悬浮显示所有等级说明
  - 标题限制两行显示

   Mock 数据完整性

  - 添加缺失的 related_week_chg 字段
  - 确保三个涨跌幅指标数据完整
2025-11-03 15:38:30 +08:00
zdl
b84eccb319 fix: 修改相关概念组件以匹配真实API数据结构
修改内容:
- SimpleConceptCard.js: 改用 concept.concept 和 concept.score 字段
- DetailedConceptCard.js: 改用 concept.concept、concept.score 和 concept.price_info.avg_change_pct
- RelatedConceptsSection/index.js: 导航时使用 concept.concept 字段
- events.js mock数据: 更新keywords生成函数,使用concept/score/price_info结构

数据结构变更:
- name → concept (概念名称)
- relevance (0-100) → score (0-1)
- avg_change_pct → price_info.avg_change_pct (嵌套结构)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 14:18:17 +08:00
zdl
3b5caf8a01 feat: 实现实时要闻服务端分页功能
功能新增:
- 实时要闻组件支持服务端分页,每次切换页码重新请求数据
- 分页控制器组件,支持数字页码、上下翻页、快速跳转
- Mock 数据量从 100 条增加到 200 条,支持分页测试

技术实现:

1. Redux 状态管理(communityDataSlice.js)
   - fetchDynamicNews 接收分页参数 { page, per_page }
   - 返回数据结构调整为 { events, pagination }
   - initialState 新增 dynamicNewsPagination 字段
   - Reducer 分别存储 events 和 pagination 信息
   - Selector 返回完整的 pagination 数据

2. 组件层(index.js → DynamicNewsCard → EventScrollList)
   - Community/index.js: 获取并传递 pagination 信息
   - DynamicNewsCard.js: 管理分页状态,触发服务端请求
   - EventScrollList.js: 接收服务端 totalPages,渲染当前页数据
   - 页码切换时自动选中第一个事件

3. 分页控制器(PaginationControl.js)
   - 精简版设计:移除首页/末页按钮
   - 上一页/下一页按钮,边界状态自动禁用
   - 智能页码列表(最多5个,使用省略号)
   - 输入框跳转功能,支持回车键
   - Toast 提示非法输入
   - 全部使用 xs 尺寸,紧凑布局

4. Mock 数据(events.js)
   - 总事件数从 100 增加到 200 条
   - 支持服务端分页测试(40 页 × 5 条/页)

分页流程:
1. 初始加载:请求 page=1, per_page=5
2. 切换页码:dispatch(fetchDynamicNews({ page: 2, per_page: 5 }))
3. 后端返回:{ events: [5条], pagination: { page, total, total_pages } }
4. 前端更新:显示新页面数据,更新分页控制器状态

UI 优化:
- 紧凑的分页控制器布局
- 移除冗余元素(首页/末页/总页数提示)
- xs 尺寸按钮,减少视觉负担
- 保留核心功能(翻页、页码、跳转)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 12:38:25 +08:00
zdl
0eeb6a8f21 feat: 提交历史事件对比组件 2025-11-02 16:37:46 +08:00