Commit Graph

25 Commits

Author SHA1 Message Date
zdl
a5e001d975 refactor: 优化分页存储架构和缓存逻辑... 2025-11-06 01:20:07 +08:00
zdl
b470a3184b fix: 添加 mockSocketService 缺失的事件订阅方法
修复控制台警告 "[useEventNotifications] socket.subscribeToEvents 方法不存在"

**问题原因**
- mockSocketService.js 中缺少 `subscribeToEvents`、`unsubscribeFromEvents` 等方法
- socketService.js 有这些方法,但 mock 版本没有实现
- 导致 useEventNotifications Hook 无法正常工作

**修复内容**
在 mockSocketService.js 中添加以下方法(lines 688-793):

1. **subscribeToEvents(options)** - 订阅事件推送
   - 参数:eventType, importance, onNewEvent, onSubscribed
   - Mock 实现:立即触发 onSubscribed 回调(100ms 延迟)
   - 注册 onNewEvent 监听器到 'new_event' 事件

2. **unsubscribeFromEvents(options)** - 取消订阅
   - 参数:eventType, onUnsubscribed
   - Mock 实现:移除 'new_event' 监听器
   - 立即触发 onUnsubscribed 回调(100ms 延迟)

3. **subscribeToAllEvents(onNewEvent)** - 快捷方法:订阅所有事件
   - 调用 subscribeToEvents,eventType='all', importance='all'

4. **subscribeToImportantEvents(importance, onNewEvent)** - 快捷方法:按重要性订阅
   - 调用 subscribeToEvents,eventType='all'

5. **subscribeToEventType(eventType, onNewEvent)** - 快捷方法:按类型订阅
   - 调用 subscribeToEvents,importance='all'

**实现方式**
- Mock 实现使用 setTimeout 模拟异步回调
- 使用现有的 EventEmitter 机制(on/off)
- 与 socketService.js 保持 API 一致

**测试结果**
-  编译成功
-  不再显示 "socket.subscribeToEvents 方法不存在" 警告
-  useEventNotifications Hook 可以正常调用订阅方法
-  Mock 模式下事件订阅功能可用

**文件修改**
- src/services/mockSocketService.js (+108 lines)
  - 新增 subscribeToEvents 方法
  - 新增 unsubscribeFromEvents 方法
  - 新增 3 个快捷订阅方法
2025-10-30 18:31:45 +08:00
zdl
f3c7e016ac Merge branch '1028_bugfix' into feature
* 1028_bugfix:
  手机号格式适配-前端修改
  添加微信扫码的几种其他状态
  整合register端口进入login端口
2025-10-29 16:27:31 +08:00
dd59cb6385 添加微信扫码的几种其他状态 2025-10-29 07:33:44 +08:00
zdl
b221c2669c feat: 微信登陆逻辑调整 2025-10-28 19:04:58 +08:00
zdl
e05ea154a2 feat: 文案调整 2025-10-28 14:16:30 +08:00
zdl
a9dc1191bf feat:. mockSocketService 添加 connecting 状态
- 新增 connecting 标志防止重复连接
  - 在 connect() 方法中检查 connected 和 connecting 状态
  - 连接成功或失败后清除 connecting 标志\
2. NotificationContext 调整监听器注册顺序

  - 在 useEffect 中重新排序初始化步骤
  - 第一步:注册所有事件监听器(connect, disconnect, new_event 等)
  - 第二步:获取最大重连次数
  - 第三步:调用 socket.connect()
  - 使用空依赖数组 [] 防止 React 严格模式重复执行\
3. logger 添加日志限流

  - 实现 shouldLog() 函数,1秒内相同日志只输出一次
  - 使用 Map 缓存最近日志,带最大缓存限制(100条)
  - 应用到所有 logger 方法:info, warn, debug, api.request, api.response
  - 错误日志(error, api.error)不做限流,始终输出\
修复 emit 时机确保事件被接收

  - 在 mockSocketService 的 connect() 方法中
  - 使用 setTimeout(0) 延迟 emit(connect) 调用
  - 确保监听器注册完毕后再触发事件\
2025-10-27 13:13:56 +08:00
zdl
094793c022 feat: 热门关键词UI调整 数据获取逻辑调整 接入redux 2025-10-25 18:22:41 +08:00
zdl
9dcd4bfbf3 feat: 调整行业请求数据结构 2025-10-23 14:24:26 +08:00
0b1591c3dd update /api/events/<int:event_id>/stocks resp format 2025-10-23 08:18:13 +08:00
zdl
23188d5690 feat: 修改文件 │
│                                                                                           │
     │ 1. src/services/socketService.js - 指数退避 + 无限重试                                    │
     │ 2. src/components/ConnectionStatusBar/index.js - UI 优化 + 自动消失                       │
     │ 3. src/App.js - handleClose 实现 + dismissed 状态管理                                     │
     │ 4. src/contexts/NotificationContext.js - 添加成功状态检测                                 │
     │ 5. NOTIFICATION_SYSTEM.md - v2.11.0 文档更新
2025-10-21 18:34:38 +08:00
zdl
09c9273190 feat: sockt 弹窗功能添加 2025-10-21 17:50:21 +08:00
zdl
c93f689954 Merge branch 'feature' of https://git.valuefrontier.cn/vf/vf_react into feature 2025-10-21 15:53:01 +08:00
zdl
38499ce650 feat: 添加消息推送能力 2025-10-21 15:48:38 +08:00
74968d5bc8 添加socketservice 2025-10-21 15:13:11 +08:00
zdl
5a3a3ad42b feat: 添加消息推送能力,添加新闻催化分析页的合规提示 2025-10-21 10:59:52 +08:00
zdl
6c96299b8f feat: 添加合规 2025-10-20 21:25:33 +08:00
zdl
a7695c7365 feat: 日志优化 2025-10-18 12:26:08 +08:00
zdl
36558e0715 feat: 1. 基础设施(2个文件)
-  src/utils/logger.js - 统一日志工具
    - API 请求/响应/错误日志
    - 组件错误/警告/调试日志
    - 开发环境详细分组,生产环境仅错误
  -  src/utils/axiosConfig.js - axios 全局拦截器
    - 自动记录所有请求/响应
    - 统一 baseURL 和 credentials 配置\
2. 核心文件重构(8个文件)\
 AuthFormContent.js |  保留登录/注册成功 toast 移除验证码发送 toast 添加 .trim() 所有 API 添加 logger |  完成 |
  | Center.js          |  移除所有 toast 移除 toast 依赖 添加错误 logger                         |  完成 |
  | Community/index.js |  移除所有 toast 和导入 移除 toast 依赖 添加错误 logger                     |  完成 |
  | authService.js     |  统一 apiRequest 函数 所有请求自动记录 移除 console.error                 |  完成 |
  | eventService.js    |  重构 apiRequest 所有方法添加 logger 移除 console.log/error           |  完成 |
  | stockService       |  所有方法添加 logger 移除 console 输出                                 |  完成 |
  | indexService       |  添加 logger 移除 console 输出                                     |  完成 |
  | AuthContext.js     |  保留注册/登出成功 toast 移除验证码发送 toast 所有方法添加 logger                |  完成 |\
3. Mock 数据完善(\
 Mock 数据完善(1个文件)

  -  src/mocks/handlers/account.js - 个人中心 Mock
    -  自选股列表 (GET /api/account/watchlist)
    -  实时行情 (GET /api/account/watchlist/realtime)
    -  添加自选股 (POST /api/account/watchlist/add)
    -  删除自选股 (DELETE /api/account/watchlist/:id)
    -  关注的事件 (GET /api/account/events/following)
    -  事件评论 (GET /api/account/events/comments)
    -  当前订阅 (GET /api/subscription/current)\
4. API 文档(1个文件)

  -  API_ENDPOINTS.md - 完整 API 接口文档
    - 认证相关: 4个接口
    - 个人中心: 12个接口
    - 事件相关: 12个接口
    - 总计: 28+个接口\
5。Toast 策略执行:
  -  保留: 3种(登录成功、注册成功、登出成功)
  -  移除: 15+处(验证码、数据加载等)

  Logger 替换:
  -  console.log → logger.debug/logger.info
  -  console.error → logger.error\- console.warn → logger.warn

  Mock 数据:
  已有: auth.js, event.js, users.js, events.js
  新增: account.js(7个新接口)
6.用户体验改进
  静默优化:不再弹出验证码发送成功提示(静默处理)不再弹出数据加载失败提示(console 记录) 仅在关键操作显示 toast(登录/注册/登出)

  开发体验: Console 中有清晰的分组日志(🌐 🔴 ⚠️ 等图标), 所有 API 请求/响应自动记录,错误日志包含完整上下文和堆栈,Mock 服务完善
 测试场景: 登录/注册 - 仅显示成功 toast,验证码静默发送 个人中心 - 加载自选股、实时行情、关注事件 社区页面 - 加载事件列表、Console 查看
9. 添加日志:API Request /  API Response /  API Error
2025-10-18 07:48:00 +08:00
zdl
081eb3c5c3 pref: 去除开发环境配置 2025-10-16 15:54:57 +08:00
zdl
7d283aab8e feat: 注册和登录兼容h5 2025-10-15 11:43:04 +08:00
zdl
e0ca328e1c feat: 调整注册逻辑 2025-10-14 16:02:33 +08:00
zdl
495ad758ea feat: 10.10线上最新代码提交 2025-10-11 16:16:02 +08:00
4d0dc109bc updated 2025-10-11 12:10:00 +08:00
8107dee8d3 Initial commit 2025-10-11 12:02:01 +08:00