|
|
39cbf98d6a
|
update watchlist
|
2025-12-15 18:40:11 +08:00 |
|
|
|
50d881b889
|
update watchlist
|
2025-12-15 18:35:59 +08:00 |
|
|
|
8221180200
|
update watchlist
|
2025-12-15 18:28:35 +08:00 |
|
zdl
|
a9c21d8478
|
fix(UI): Profile 取消按钮样式、HotEvents 轮播箭头、Dashboard 按钮优化
- Profile: 取消按钮添加深色主题样式 (color, borderColor, hover)
- HotEvents: 轮播箭头添加 user-select: none 防止连续点击选中文本
- Dashboard: "查看更多"按钮改为图标按钮 (IconButton + FiPlus)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-15 15:20:02 +08:00 |
|
|
|
429c2a4531
|
update pay ui
|
2025-12-11 14:10:59 +08:00 |
|
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 |
|