|
|
900aff17df
|
update pay function
|
2025-11-27 11:28:57 +08:00 |
|
zdl
|
805d446775
|
feat: 调整搜索框UI
|
2025-11-26 19:33:00 +08:00 |
|
zdl
|
24ddfcd4b5
|
feat: 新增:H5 时左右 padding 改为 8px
|
2025-11-26 19:31:12 +08:00 |
|
zdl
|
a90158239b
|
feat: 模式切花移动到标题恻,通知UI调整
|
2025-11-26 19:11:33 +08:00 |
|
zdl
|
a8d4245595
|
pref: 文案调整
|
2025-11-26 17:49:39 +08:00 |
|
zdl
|
5aedde7528
|
feat:H5 移动端已隐藏整个顶部控制栏
|
2025-11-26 16:51:52 +08:00 |
|
zdl
|
f5f89a1c72
|
feat:箭头绝对定位
移除左右 padding
隐藏重复箭头
|
2025-11-26 16:50:46 +08:00 |
|
zdl
|
e0b7f8c59d
|
feat: 调整事件列表h5模式调整
|
2025-11-26 16:44:53 +08:00 |
|
zdl
|
d22d75e761
|
pref: h5 分页UI调整
|
2025-11-26 16:35:49 +08:00 |
|
zdl
|
30fc156474
|
fix: 移动端事件中心事件列表添加时间
|
2025-11-26 16:23:28 +08:00 |
|
zdl
|
a2831c82a8
|
feat: 移动端不显示政策标签
|
2025-11-26 16:02:59 +08:00 |
|
zdl
|
217551b6ab
|
feat: H5 移动端将隐藏"开启通知"组件,桌面端保持正常显示
|
2025-11-26 16:01:58 +08:00 |
|
zdl
|
9f907b3cba
|
移除 MidjourneyHeroSection 组件及其所有依赖
1: 删除组件文件 MidjourneyHeroSection.js
2: 修改 HomePage.js
3: 卸载相关 npm 包 @tsparticles/react 和 @tsparticles/slim
|
2025-11-25 17:04:30 +08:00 |
|
|
|
f76bd17160
|
update pay function
|
2025-11-25 11:22:34 +08:00 |
|
|
|
f873fdb9a6
|
update pay function
|
2025-11-25 10:09:47 +08:00 |
|
|
|
a2f33c2a8a
|
update pay function
|
2025-11-25 08:00:56 +08:00 |
|
|
|
177c1d6401
|
update pay function
|
2025-11-24 23:45:58 +08:00 |
|
|
|
fb066aa6b8
|
update pay function
|
2025-11-24 23:18:12 +08:00 |
|
|
|
96bedb8439
|
update pay function
|
2025-11-24 21:23:09 +08:00 |
|
|
|
7743a8a26a
|
update pay function
|
2025-11-24 19:22:22 +08:00 |
|
|
|
72e3e56a63
|
update pay function
|
2025-11-24 19:07:24 +08:00 |
|
|
|
ea166d59c4
|
update pay function
|
2025-11-24 16:39:36 +08:00 |
|
zdl
|
745b9caeee
|
feat: StockListItem.js - 分时/K线点击切换效果修复
|
2025-11-23 10:02:13 +08:00 |
|
|
|
a66d55237f
|
update pay function
|
2025-11-22 17:41:54 +08:00 |
|
zdl
|
1fc9f4790f
|
pref: 清理建议
6.1 立即可删除(安全)
以下文件可以立即删除,不会影响任何功能:
# 未使用的组件
src/views/Community/components/EventList.js
src/views/Community/components/EventListSection.js
src/views/Community/components/EventTimelineHeader.js
src/views/Community/components/MarketReviewCard.js
src/views/Community/components/UnifiedSearchBox.js
src/views/Community/components/ImportanceLegend.js
src/views/Community/components/IndustryCascader.js
src/views/Community/components/EventDetailModal.js
# 未使用的CSS
src/views/Community/components/EventList.css
# 备份文件
src/views/Community/components/EventList.js.bak
# 测试文档
src/views/Community/components/DynamicNewsDetail/1.md
预计减少代码量:~2000行代码
|
2025-11-19 21:27:24 +08:00 |
|
zdl
|
9b55610167
|
perf: 将 Moment.js 替换为 Day.js,优化打包体积
## 改动内容
- 替换所有 Moment.js 引用为 Day.js (29 个文件)
- 更新 Webpack 配置,调整 calendar-lib chunk
- 添加 Day.js 插件支持 (isSameOrBefore, isSameOrAfter)
- 移除 Moment.js 依赖
## 性能提升
- JavaScript 打包体积减少: ~50 KB (未压缩)
- gzip 后减少: ~15-18 KB
- 预计首屏加载时间提升: 15-20%
## 影响范围
- Dashboard 组件: 5 个文件
- Community 组件: 19 个文件
- 工具函数: tradingTimeUtils.js (添加插件)
- 其他组件: 5 个文件
## 测试状态
- ✅ 构建成功 (npm run build)
|
2025-11-17 19:27:45 +08:00 |
|
zdl
|
f33489f5d7
|
pref: useMemo优化
|
2025-11-17 16:54:26 +08:00 |
|
zdl
|
990d1ca0bc
|
perf: 使用 React.memo 优化社区组件渲染性能
**优化目标**:
- 减少组件卸载次数:从 6 次/刷新 → 1-2 次/刷新(↓ 66-83%)
- 减少渲染次数:从 9 次/刷新 → 4-5 次/刷新(↓ 44-55%)
**优化组件**(共 7 个):
1. ✅ ModeToggleButtons.js - 简单 UI 组件
2. ✅ DynamicNewsEventCard.js - 平铺模式卡片(被渲染 30+ 次)
3. ✅ HorizontalDynamicNewsEventCard.js - 纵向模式卡片(被渲染 10+ 次)
4. ✅ VerticalModeLayout.js - 布局组件
5. ✅ EventScrollList.js - 列表组件
6. ✅ VirtualizedFourRowGrid.js - 虚拟化网格(forwardRef)
7. ✅ DynamicNewsCard.js - 主组件(forwardRef)
**技术实现**:
- 普通组件:`React.memo(Component)`
- forwardRef 组件:`React.memo(forwardRef(...))`
- 所有回调函数已使用 useCallback 确保引用稳定
**预期效果**:
- 列表渲染的卡片组件收益最大(减少 90% 重渲染)
- 布局组件渲染次数从 9 次降到 1 次(减少 88%)
- 整体用户体验更流畅,无明显卡顿
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-17 15:00:46 +08:00 |
|
zdl
|
3cadd02492
|
fix: 修复 Socket 新事件通知后不刷新列表的问题
问题描述:
- 用户在第1页时收到新事件 Socket 通知
- 系统调用 handlePageChange(1) 想要刷新列表
- 但列表未刷新,新事件不显示
- 控制台日志显示"⚠️ 重复点击当前页: 1"
根本原因:
- usePagination 的 handlePageChange 函数有"重复点击"检查
- 当 newPage === currentPage 时直接 return(第 169-174 行)
- Socket 新事件触发刷新时,当前在第1页,调用 handlePageChange(1)
- 函数误认为是"用户重复点击分页按钮",阻止了刷新
设计冲突:
- 原始设计:防止用户重复点击分页按钮,避免不必要的 API 请求 ✅
- 副作用:阻止了 Socket 新事件触发的强制刷新逻辑 ❌
修复方案(添加 force 参数):
1. 修改 handlePageChange 函数签名:(newPage, force = false)
- force = true: 强制刷新(绕过"重复点击"检查)
- force = false: 正常翻页(保留原有检查)
2. 修改边界检查逻辑(第 173-184 行):
- 只有在非强制模式下才检查重复点击
- 强制模式下,即使页码相同也继续执行
- 添加日志:🔄 [翻页] 强制刷新当前页
3. 修改 Socket 新事件刷新调用(DynamicNewsCard.js:231):
- 修改前:handlePageChange(1)
- 修改后:handlePageChange(1, true) // force = true
修改文件:
- src/views/Community/components/DynamicNewsCard/hooks/usePagination.js
- 第 161 行:修改函数签名(添加 force 参数)
- 第 173-184 行:修改边界检查逻辑(添加 force 判断)
- src/views/Community/components/DynamicNewsCard.js
- 第 230-231 行:修改 handlePageChange 调用(传递 force: true)
修复效果:
- ✅ 收到新事件后,第1页强制刷新并显示新事件
- ✅ 保留原有的"重复点击"优化(普通翻页)
- ✅ 不影响其他页面的用户体验(第2页及以上不打断)
- ✅ 清晰的日志区分:
- 🔄 [翻页] 强制刷新当前页: 1(强制刷新)
- ⚠️ [翻页] 重复点击当前页: 2(阻止重复点击)
🤖 Generated with Claude Code
|
2025-11-17 12:12:01 +08:00 |
|
zdl
|
ddd6b2d4af
|
feat: 实现 Socket 触发的智能列表自动刷新功能(带防抖)
核心改动:
- 扩展 NotificationContext,添加事件更新回调注册机制
- VirtualizedFourRowGrid 添加 forwardRef 暴露 getScrollPosition 方法
- DynamicNewsCard 实现智能刷新逻辑(根据模式和滚动位置判断是否刷新)
- Community 页面注册 Socket 回调自动触发刷新
- 创建 TypeScript 通用防抖工具函数(debounce.ts)
- 集成防抖机制(2秒延迟),避免短时间内频繁请求
智能刷新策略:
- 纵向模式 + 第1页:自动刷新列表
- 纵向模式 + 其他页:不刷新(避免打断用户)
- 平铺模式 + 滚动在顶部:自动刷新列表
- 平铺模式 + 滚动不在顶部:仅显示 Toast 提示
防抖效果:
- 短时间内收到多个新事件,只执行最后一次刷新
- 减少服务器压力,提升用户体验
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-14 19:04:00 +08:00 |
|
zdl
|
9761ef9016
|
Merge branch 'feature_bugfix/251113_ui' into feature_bugfix/251113_bugfix
* feature_bugfix/251113_ui:
update ui
update ui
update ui
update ui
update ui
|
2025-11-14 16:16:10 +08:00 |
|
zdl
|
e23feb3c23
|
feat: 添加评论功能
|
2025-11-14 16:15:13 +08:00 |
|
|
|
e428caf578
|
update ui
|
2025-11-14 15:50:21 +08:00 |
|
|
|
ad8ff50001
|
update ui
|
2025-11-14 08:09:18 +08:00 |
|
|
|
8c93606769
|
update ui
|
2025-11-14 07:42:18 +08:00 |
|
|
|
eac3b09a95
|
update ui
|
2025-11-14 07:25:12 +08:00 |
|
|
|
5e70f4443d
|
update ui
|
2025-11-14 06:39:29 +08:00 |
|
|
|
1773c571ab
|
update ui
|
2025-11-13 23:44:37 +08:00 |
|
|
|
6452869968
|
update ui
|
2025-11-13 23:34:29 +08:00 |
|
|
|
3caa5f4c3a
|
update ui
|
2025-11-13 23:24:54 +08:00 |
|
|
|
d3b980b3ca
|
update ui
|
2025-11-13 23:06:19 +08:00 |
|
|
|
6113a3fefd
|
update ui
|
2025-11-13 22:57:24 +08:00 |
|
|
|
f0bb00a2ce
|
update ui
|
2025-11-13 22:35:33 +08:00 |
|
|
|
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 |
|