Commit Graph

244 Commits

Author SHA1 Message Date
c6062efb00 update ui 2025-11-13 22:21:59 +08:00
7e0358ede4 update ui 2025-11-13 21:59:33 +08:00
2edeeec497 update ui 2025-11-13 18:08:02 +08:00
716b4ba3bd update ui 2025-11-13 17:58:37 +08:00
dfa2635b2e update ui 2025-11-13 17:51:47 +08:00
8dc4ddac66 update ui 2025-11-13 17:45:09 +08:00
cb4c51a958 update ui 2025-11-13 17:38:54 +08:00
0e32076e71 update ui 2025-11-13 17:31:06 +08:00
4bb37c6e6d update ui 2025-11-13 17:18:33 +08:00
58d1e6f2ad update ui 2025-11-13 16:51:35 +08:00
9d6c0ac55c update ui 2025-11-13 16:34:34 +08:00
5ddf8d3c09 update ui 2025-11-13 16:17:32 +08:00
5aa0507a65 update ui 2025-11-13 16:07:14 +08:00
zdl
261a7bf329 fix(community): 修复 React Hooks 顺序错误
将 Alert 组件中的 useColorModeValue Hook 调用提取到组件顶层,
避免在条件渲染中调用 Hook 导致的顺序变化问题。

## 问题
- useColorModeValue 在 showNotificationBanner 条件渲染内部调用
- 当条件状态变化时,Hooks 调用顺序发生改变
- 触发 React 警告:Hooks 顺序改变(第 75 个 Hook 从 undefined 变为 useContext)

## 解决方案
- 将 alertBgColor 和 alertBorderColor 提取到组件顶层
- 确保所有 Hooks 在每次渲染时以相同顺序调用
- 符合 React Hooks 规则:只在顶层调用 Hooks

## 变更文件
src/views/Community/index.js:
- 新增 alertBgColor 常量(第 47 行)
- 新增 alertBorderColor 常量(第 48 行)
- Alert 组件使用变量替代直接调用 Hook

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 20:20:57 +08:00
zdl
9e23b370fe feat: 底部UI调整 2025-11-10 14:48:28 +08:00
46ba421f42 事件中心ui 2025-11-10 12:32:14 +08:00
6cd300b5ae 事件中心ui 2025-11-10 12:22:21 +08:00
25163789ca 事件中心不提示通知修复,增加开启/关闭通知按钮。修复edge或者opera浏览器登录扫码无跳转的问题 2025-11-10 10:36:29 +08:00
fbf6813615 事件中心有引用的相关详情样式调整 2025-11-10 10:18:55 +08:00
zdl
f01eff6eb7 feat: 优化股票卡片显示
d670b0a feat: 历史股票增加相关度数据
     02c03ab feat: 修改列表默认状态
     8bdc2aa feat: 处理mock数据
2025-11-07 20:05:14 +08:00
zdl
207701bbde feat: 修改列表默认状态 2025-11-07 20:05:14 +08:00
zdl
00aabfacea feat: DynamicNewsDetailPanel 支持无头部模式和精简模式优化
新增功能:
- 添加 showHeader prop 控制头部显示/隐藏(默认 true)
- 无头部模式下显示 CompactMetaBar 精简信息栏(右上角浮动)
- 相关股票支持精简模式(使用 CompactStockItem + Wrap 布局)
- 添加 showModeToggle 和 simpleContent props 到相关股票模块

Bug 修复和优化:
- 修复 isStocksOpen 初始值依赖未就绪变量的问题(改为 false)
- 优化股票加载逻辑:PRO 和 MAX 会员都默认展开和自动加载
- 更新日志文案:从"PRO会员"改为"PRO/MAX会员"

导入调整:
- 添加 Wrap, WrapItem(用于精简模式布局)
- 添加 CompactMetaBar(无头部模式信息栏)
- 添加 CompactStockItem(精简模式股票卡片)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 19:48:08 +08:00
zdl
4979293320 feat: RelatedConceptsSection 支持受控模式和优化
- 新增 isOpen, onToggle props 支持外部控制展开状态(受控模式)
- 添加 hasNoConcepts 判断,优化空数据处理逻辑
- 改进精简模式和详细模式的空状态显示
- 增强点击处理逻辑,支持受控/非受控两种模式

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-07 19:46:29 +08:00
zdl
b30cbd6c62 RelatedStocksSection 重构为纯详细模式组件 2025-11-07 19:32:36 +08:00
zdl
11789b5ec7 Commit 2: CollapsibleSection 支持精简/详细双模式 2025-11-07 19:32:10 +08:00
zdl
63fb8a3aa8 feat: 功能: │ │
│ │ - 新增 showModeToggle, currentMode, onModeToggle 等 props                                                                                      │ │
│ │ - 支持显示模式切换按钮("精简模式" / "查看详情")                                                                                              │ │
│ │ - 根据模式动态显示按钮文案和图标
2025-11-07 19:31:42 +08:00
zdl
2da71a3c03 feat: 相关股票添加合规 2025-11-07 19:29:19 +08:00
zdl
44b8c64907 feat(community): 列表模式事件卡片高度自适应 2025-11-07 19:25:10 +08:00
zdl
5ceffc53d6 feat: 事件中心详情面板Ui调整 2025-11-07 18:39:49 +08:00
zdl
3574f5391f feat: 动画调整 2025-11-07 15:17:57 +08:00
zdl
fef9087c47 feat: 调整事件详情滑动不触发外部页面滑动 2025-11-07 15:11:18 +08:00
zdl
b0b42e9d3d feat: 添加post postHog加上 2025-11-07 15:10:27 +08:00
zdl
3c060b7aa5 feat: 事件详情添加浏览量点击机制 2025-11-07 14:16:11 +08:00
zdl
9c93843f75 feat: 删除无用代码 2025-11-07 13:19:51 +08:00
83cd875690 事件中心UI优化 2025-11-07 11:20:45 +08:00
25d3bf4d95 事件中心UI优化 2025-11-07 11:08:06 +08:00
3eff0554f9 事件中心UI优化 2025-11-07 10:56:08 +08:00
2a122b0013 事件中心UI优化 2025-11-07 10:31:42 +08:00
663d73609a 事件中心UI优化 2025-11-07 10:16:21 +08:00
389a45fc0a 事件中心UI优化 2025-11-07 09:57:49 +08:00
67c7fa49e8 事件中心UI优化 2025-11-07 09:45:42 +08:00
zdl
6271736969 fix: 修复重置按钮不生效问题
问题描述:
- 用户选择所有筛选条件后,点击"重置"按钮无反应
- 筛选条件未被清空,事件列表未重新加载

根本原因:
- 当筛选条件从"有值"重置为"空值"或从"空值"重置为"空值"时
- 如果 filters 对象的字段值没有实质变化
- DynamicNewsCard 的 useEffect 依赖项检测不到变化,不会触发重新加载

解决方案:
1. UnifiedSearchBox.handleReset() 添加 _forceRefresh 时间戳标志
   - 每次重置都生成唯一的 Date.now() 时间戳
   - 确保 filters 对象每次重置都不同

2. DynamicNewsCard 筛选 useEffect 依赖数组添加 filters._forceRefresh
   - 监听强制刷新标志的变化
   - 即使其他筛选条件未变,也能触发重新加载

3. 增强调试日志
   - 添加完整的重置流程日志输出
   - 便于排查后续问题

修改文件:
- src/views/Community/components/UnifiedSearchBox.js (Line 505-536)
- src/views/Community/components/DynamicNewsCard.js (Line 264)

测试场景:
 选择所有筛选条件后点击重置 - 清空并重新加载
 未选择筛选条件时点击重置 - 强制刷新第1页
 重置后 Redux 缓存被清空 (clearCache: true)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 18:00:53 +08:00
zdl
319a78d34c fix: 修复分页、筛选和模式切换相关问题
主要修复:
1. 修复模式切换时 per_page 参数错误
   - 在 useEffect 内直接根据 mode 计算 per_page
   - 避免使用可能过时的 pageSize prop

2. 修复 DISPLAY_MODES 未定义错误
   - 在 DynamicNewsCard.js 中导入 DISPLAY_MODES 常量

3. 添加空状态显示
   - VerticalModeLayout 添加无数据时的友好提示
   - 显示图标和提示文字,引导用户调整筛选条件

4. 修复无限请求循环问题
   - 移除模式切换 useEffect 中的 filters 依赖
   - 避免筛选和模式切换 useEffect 互相触发

5. 修复筛选参数传递问题
   - usePagination 使用 useRef 存储最新 filters
   - 避免 useCallback 闭包捕获旧值
   - 修复时间筛选参数丢失问题

6. 修复分页竞态条件
   - 允许用户在加载时切换到不同页面
   - 只阻止相同页面的重复请求

涉及文件:
- src/views/Community/components/DynamicNewsCard.js
- src/views/Community/components/DynamicNewsCard/VerticalModeLayout.js
- src/views/Community/components/DynamicNewsCard/hooks/usePagination.js
- src/views/Community/hooks/useEventFilters.js
- src/store/slices/communityDataSlice.js
- src/views/Community/components/UnifiedSearchBox.js

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 17:39:03 +08:00
zdl
8799964961 refactor: 恢复 TradingTimeFilter 到原版本
- 移除 timeRange prop 及其同步逻辑
- 恢复原有的 value 同步逻辑
- 简化组件接口

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 15:33:54 +08:00
zdl
42808501b0 refactor: 删除 FilterModal 筛选弹窗组件
- 移除 FilterModal.js 文件
- 简化组件结构,筛选功能保留在 CardHeader 的 UnifiedSearchBox 中

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 15:33:36 +08:00
zdl
291362b88d feat: VerticalModeLayout 详情/列表模式自动切换
- 点击事件自动切换到详情模式
- 切换到列表模式时重置详情面板(通过 key 强制重新渲染)
- 添加独立滚动容器,支持左右两侧独立滚动
- 优化布局高度控制,使用 h="100%" 撑满父容器

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 14:13:06 +08:00
zdl
f5328ec3a1 fix: 修复 EventScrollList 和 EventDetailScrollPanel 布局问题
- EventScrollList.js: 添加 h="100%" 和 data-scroll-container 属性,支持独立滚动
- EventDetailScrollPanel.js: 移除 maxHeight 限制,允许详情面板撑满容器高度
- 修复布局显示问题,优化滚动体验

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 14:12:05 +08:00
zdl
52cf950b21 feat: 创建 FilterModal 筛选弹窗组件
- 新增 FilterModal.js 组件,用于在固定模式下显示筛选弹窗
- 复用 UnifiedSearchBox 组件实现筛选功能
- 支持 mode 和 pageSize 参数传递
- 添加 scrollBehavior="outside" 避免下拉菜单被遮挡

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 14:09:59 +08:00
zdl
8b25d5d91c feat: 时间筛选重置调整 2025-11-06 12:41:32 +08:00
zdl
c6b3b56cb8 feat: 搜索框布局调整 2025-11-06 12:40:58 +08:00