zdl
|
ee33f7ffd7
|
refactor: 重构 Community 目录,将公共组件迁移到 src/components/
- 迁移 klineDataCache.js 到 src/utils/stock/(被 StockChart 使用)
- 迁移 InvestmentCalendar 到 src/components/InvestmentCalendar/(被 Navbar、Dashboard 使用)
- 迁移 DynamicNewsDetail 到 src/components/EventDetailPanel/(被 EventDetail 使用)
- 更新所有相关导入路径,使用路径别名
- 保持 Community 目录其余结构不变
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-08 12:09:24 +08:00 |
|
zdl
|
2ffb8f9e83
|
feat: bug修复
|
2025-12-05 18:41:45 +08:00 |
|
zdl
|
61a5e56d15
|
fix: stocks 字段支持对象格式 {code, name}
- investment.ts: stocks 类型改为 Array<{code, name} | string>
- EventFormModal: 编辑时兼容对象格式,保存时附带股票名称
|
2025-12-05 18:24:18 +08:00 |
|
zdl
|
957f6dd37e
|
refactor: EventDetailCard 重命名为 EventCard,支持多变体模式
- 新增 EventCard.tsx 组件,支持 variant 属性(detail/compact)
- 删除 EventDetailCard.tsx(功能已合并到 EventCard)
- EventDetailModal 改用新的 EventCard 组件
|
2025-12-05 18:23:52 +08:00 |
|
zdl
|
cc7fdbff56
|
fix: UI调试
|
2025-12-05 18:04:28 +08:00 |
|
zdl
|
15487a8307
|
refactor: EventFormModal 从 Chakra UI 迁移到 Ant Design
- 使用 Ant Design Form/Modal/Select 组件
- 简化字段: 标题、日期、内容、关联股票
- 新增计划/复盘模板系统
- 股票选择支持前端模糊搜索 + 自选股快捷选择
- 新增响应式样式 (EventFormModal.less)
- EventPanel: 移除不再需要的 props
|
2025-12-05 17:24:06 +08:00 |
|
zdl
|
b74d88e592
|
fix: 适配 watchlist 新数据结构
- CompactSearchBox: 改用 Redux 获取股票列表
- useWatchlist: 适配 { stock_code, stock_name }[] 结构
- Center: 修复 watchlist key + H5 评论 Badge 溢出
|
2025-12-05 17:23:51 +08:00 |
|
zdl
|
a36ae5323e
|
style: EventFormModal 和 InvestmentCalendar H5 响应式适配
|
2025-12-05 15:09:14 +08:00 |
|
zdl
|
d926b60f03
|
style: EventFormModal 和 InvestmentCalendar H5 响应式适配
|
2025-12-05 15:07:24 +08:00 |
|
zdl
|
de30489076
|
feat: h5隐藏日历视图
|
2025-12-05 15:06:43 +08:00 |
|
zdl
|
df90fc258b
|
perf: EventPanel 性能优化,EventDetailCard H5适配,清理冗余类型
|
2025-12-05 15:03:56 +08:00 |
|
zdl
|
e283135ef8
|
refactor: CalendarPanel 性能优化,统一弹窗状态管理
|
2025-12-05 15:03:09 +08:00 |
|
zdl
|
0f7a3c0cc9
|
refactor: CalendarPanel 性能优化,统一弹窗状态管理
|
2025-12-05 14:44:22 +08:00 |
|
zdl
|
0adceb94f8
|
feat: 新增 EventDetailModal 和 EventEmptyState 组件
用于展示某一天的所有投资事件
|
2025-12-05 14:44:03 +08:00 |
|
zdl
|
c9801014c7
|
style: Dashboard Center 页面 H5 响应式适配
|
2025-12-05 14:42:37 +08:00 |
|
zdl
|
39f14fb148
|
fix: 兼容h5UI
|
2025-12-05 13:43:43 +08:00 |
|
zdl
|
0cc75462aa
|
feat: 日历空状态优化 - 添加高亮导航链接
- CalendarPanel: 移除底部关闭按钮,优化空状态文案
- 空状态添加日历图标和引导文案
- 「计划」「复盘」「投资日历」高亮可点击
- 点击计划/复盘切换到对应列表视图
- 点击投资日历打开投资日历弹窗
- 扩展 PlanningContextValue 类型支持导航方法
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-05 13:40:43 +08:00 |
|
zdl
|
863212f53f
|
feat: 添加投资日历mock数据
投资日历提取计划列表卡片组件
|
2025-12-05 13:35:12 +08:00 |
|
zdl
|
d296b0919c
|
refactor: 日历视图移除删除功能,仅保留查看
- 移除删除按钮和 handleDeleteEvent 函数
- 移除未使用的导入(FiTrash2, IconButton, logger, getApiBase, toast, loadAllData)
- 日历视图现在只用于查看事件,不支持编辑操作
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-05 13:09:38 +08:00 |
|
zdl
|
6272e50348
|
refactor: 抽取 EventFormModal 通用弹窗组件,修复视图切换弹窗自动打开 bug
- 新建 EventFormModal.tsx 通用弹窗组件(约 500 行)
- 支持通过 props 配置字段显示(日期、类型、状态、重要度、标签)
- 支持两种 API 端点(investment-plans / calendar/events)
- 支持两种股票输入模式(tag 标签形式 / text 逗号分隔)
- 重构 EventPanel.tsx 使用 EventFormModal
- 使用 useRef 修复弹窗自动打开 bug(视图切换时不再误触发)
- 移除内联 Modal 代码,减少约 200 行
- 重构 CalendarPanel.tsx 使用 EventFormModal
- 添加事件功能改用 EventFormModal
- 保留详情弹窗(只读展示当日事件列表)
- 移除内联表单代码,减少约 100 行
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-05 12:11:14 +08:00 |
|
zdl
|
2f04293c68
|
pref: 删除备份文件
|
2025-12-05 12:03:41 +08:00 |
|
zdl
|
1351d2626a
|
pref: PlansPanel 和 ReviewsPanel 代码高度重复,提取公共组件
创建通用 EventPanel 组件
新建 EventPanel.tsx (~420 行) - 通用事件面板组件
- 删除 PlansPanel.tsx (495 行 → 27 行,减少 94%)
- 删除 ReviewsPanel.tsx (496 行 → 27 行,减少 94%)
- 修复 CalendarPanel.tsx 中的 setActiveTab 引用
|
2025-12-05 11:29:16 +08:00 |
|
zdl
|
90a59e031c
|
fix: 清理未使用代码
InvestmentPlanningCenter.tsx | 移除 activeTab / setActiveTab state 和 Context
PlansPanel.tsx | 移除 FiPlus、FiTarget,统一使用 FiFileText
ReviewsPanel.tsx | 移除未使用的 FiPlus 导入
investment.ts | 移除 activeTab / setActiveTab 类型定义
|
2025-12-05 11:09:49 +08:00 |
|
zdl
|
f64c1ffb19
|
feat: 事件详情页 URL ID 加密,防止用户遍历
- 新增 idEncoder.ts 工具:使用 Base64 + 前缀混淆加密 ID
- 路由改为查询参数形式:/event-detail?id=xxx
- 更新所有入口使用 getEventDetailUrl() 生成加密链接
- 兼容旧链接:纯数字 ID 仍可正常访问
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-04 18:26:01 +08:00 |
|
|
|
4ba6fd34ff
|
update pay ui
|
2025-12-02 19:44:46 +08:00 |
|
|
|
2b3700369f
|
update pay ui
|
2025-12-02 17:55:01 +08:00 |
|
|
|
f60c6a8ae9
|
update pay ui
|
2025-12-02 17:36:35 +08:00 |
|
|
|
f24f37c50d
|
update pay ui
|
2025-12-02 17:30:52 +08:00 |
|
zdl
|
581e874b0d
|
fix:修复类型提示错误
|
2025-11-26 10:11:02 +08:00 |
|
|
|
e80d2cfcec
|
update pay function
|
2025-11-24 20:06:51 +08:00 |
|
zdl
|
de8d0ef1c3
|
pref: 备份旧文档
|
2025-11-18 18:22:31 +08:00 |
|
zdl
|
65c16d65ac
|
feat: 重构主组件 InvestmentPlanningCenter.tsx
重命名并重构: InvestmentPlanningCenter.js → InvestmentPlanningCenter.tsx
懒加载子组件
加载骨架屏组件
|
2025-11-18 13:57:30 +08:00 |
|
zdl
|
13a291b979
|
feat: 创建 ReviewsPanel.tsx
v
新建: src/views/Dashboard/components/ReviewsPanel.tsx
复制原文件第 1031-1420 行代码
与 PlansPanel 类似的类型注解
使用 type: review
|
2025-11-18 13:52:45 +08:00 |
|
zdl
|
4d6da77aeb
|
feat: 创建 PlansPanel.tsx
新建: src/views/Dashboard/components/PlansPanel.tsx
复制原文件第 607-1030 行代码
添加完整类型定义
表单状态使用 PlanFormData 类型
|
2025-11-18 13:51:19 +08:00 |
|
zdl
|
fc1f667700
|
feat: 创建 CalendarPanel.tsx 新建: src/views/Dashboard/components/CalendarPanel.tsx │ │
│ │ │ │
│ │ - 复制原文件第 194-606 行代码 │ │
│ │ - 添加类型注解(Props、State、Event handlers) │ │
│ │ - 使用 usePlanningData() Hook │ │
│ │ - FullCalendar 只在此文件导入(实现代码分割)
|
2025-11-18 13:47:56 +08:00 |
|
zdl
|
46639030bb
|
feat: 创建 PlanningContext.tsx
|
2025-11-18 13:43:08 +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
|
d69a32a320
|
fix: 修复个人中心不显示新发表的评论问题
问题描述:
- 用户在事件中心发表评论后,打开个人中心看不到新评论
- 个人中心"我的评论"区域始终为空或显示旧数据
根本原因:
- 项目存在两套独立的评论系统:
1. 旧系统(EventComment 表)- 个人中心查询此表
2. 新系统(Post 表)- 事件中心写入此表
- 创建评论时写入 Post 表,但个人中心查询 EventComment 表
- 两个表完全独立,数据不同步
修复方案(统一到 Post 系统):
1. 后端新增 API:GET /api/account/events/posts
- 查询 Post 表中当前用户的所有评论
- 返回格式完全兼容旧 EventComment.to_dict()
- 新增 event_title 字段(改进点,旧 API 没有)
2. 前端修改 API 调用:Center.js
- 将 /api/account/events/comments 改为 /api/account/events/posts
- 无需修改数据渲染逻辑(格式兼容)
修改文件:
- app.py (第 4144-4187 行) - 新增 get_my_event_posts API
- 查询 Post 表(user_id 过滤 + 按时间倒序)
- JOIN 查询关联的 Event(获取 event_title)
- 返回兼容格式:author(字符串), likes, created_at, event_title
- src/views/Dashboard/Center.js (第 105 行) - 修改 API 调用路径
- 修改前:GET /api/account/events/comments
- 修改后:GET /api/account/events/posts
数据兼容性:
- author 字段:字符串类型(与旧 EventComment 一致)
- likes 字段:映射自 likes_count
- created_at 字段:ISO 8601 格式
- 新增:event_title 字段(个人中心可显示评论关联的事件)
修复效果:
- 用户在事件中心发表评论 → 立即在个人中心看到新评论 ✅
- 评论显示完整信息:内容、时间、关联事件标题 ✅
- 前端无需修改渲染逻辑(完全兼容) ✅
🤖 Generated with Claude Code
|
2025-11-17 11:25:18 +08:00 |
|
zdl
|
5d8ad5e442
|
feat: bugfix
|
2025-10-31 10:33:53 +08:00 |
|
zdl
|
78e4b8f696
|
feat: Retention(留存)分析
1. 最受欢迎的功能
- 哪些功能用户使用最频繁?
- 新闻、事件、个股、模拟盘的使用对比
2. 用户行为路径
- 用户从哪里进入?
- 在每个页面停留多久?
- 从哪个环节流失?
3. 内容偏好
- 什么类型的新闻最受欢迎?
- 用户关注哪些行业?
- 哪些事件获得最多关注?
Revenue(收入)转化
1. 付费转化漏斗
个人中心查看 →
自选股/关注事件使用 →
订阅页面查看 →
升级按钮点击 →
(付费转化)
2. 模拟盘转化分析
模拟盘进入 →
搜索股票 →
下单操作 →
持续使用 →
(付费转化)
|
2025-10-29 11:48:29 +08:00 |
|
zdl
|
6f34cab6d1
|
feat: 优化依赖
|
2025-10-24 17:18:08 +08:00 |
|
zdl
|
6c96299b8f
|
feat: 添加合规
|
2025-10-20 21:25:33 +08:00 |
|
zdl
|
d695f8ff7b
|
feat: 登陆状态调整
|
2025-10-20 13:58:07 +08:00 |
|
zdl
|
b2681231b0
|
feat: 删除无用组件
|
2025-10-20 13:34:19 +08:00 |
|
zdl
|
44f9fea624
|
feat: 添加导航徽章
|
2025-10-20 13:28:37 +08:00 |
|
zdl
|
923611f3a8
|
feat: 个人中心页添加mock数据
|
2025-10-19 16:17:31 +08:00 |
|
zdl
|
47fcb570c0
|
feat: 日志优化
|
2025-10-18 17:33:15 +08:00 |
|
zdl
|
32121c416e
|
feat: 重构 TradingSimulation 和 Dashboard 组件
|
2025-10-18 09:03:10 +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
|
495ad758ea
|
feat: 10.10线上最新代码提交
|
2025-10-11 16:16:02 +08:00 |
|