zdl
|
6c26f6dabc
|
fix: 微信H5登录Session改用Redis存储,解决多进程不共享问题
问题:Gunicorn 4 workers 多进程部署时,wechat_qr_sessions 内存字典
不共享,导致 H5 微信授权回调被不同 worker 处理时找不到 session,
用户点击允许后登录状态无法更新。
解决方案:
- 新增 Redis 客户端配置和 session 操作函数(set/get/update/delete/exists)
- 将 wechat_qr_sessions 内存字典改为 Redis 存储
- Session 自动过期(TTL 5分钟),无需手动清理
- 添加 Redis 不可用时的错误处理
修改的接口:
- /api/auth/wechat/qrcode - PC 扫码登录
- /api/auth/wechat/h5-auth - H5 授权登录
- /api/account/wechat/qrcode - 账号绑定
- /api/auth/wechat/check - 登录状态检查
- /api/account/wechat/check - 绑定状态检查
- /api/auth/wechat/callback - 微信回调
- /api/auth/login/wechat - 微信登录确认
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-11 11:12:05 +08:00 |
|
zdl
|
fba7a7ee96
|
docs: 更新 Company 模块目录结构文档
- 添加 DeepAnalysisTab 模块化重构记录(2025-12-11)
- 更新目录结构中 DeepAnalysisTab.js → DeepAnalysisTab/
- 添加组件依赖关系图
- 添加工具函数位置表
- 添加优化效果对比
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-11 10:59:12 +08:00 |
|
zdl
|
32a73efb55
|
refactor(DeepAnalysisTab): 模块化拆分为 21 个 TypeScript 文件
将 1,796 行单文件拆分为原子设计模式结构:
**atoms/** - 原子组件
- DisclaimerBox: 免责声明警告框
- ScoreBar: 评分进度条
- BusinessTreeItem: 业务树形项
- KeyFactorCard: 关键因素卡片
**components/** - Card 容器组件
- CorePositioningCard: 核心定位
- CompetitiveAnalysisCard: 竞争地位分析(含雷达图)
- BusinessStructureCard: 业务结构
- ValueChainCard: 产业链分析
- KeyFactorsCard: 关键因素
- TimelineCard: 发展时间线
- BusinessSegmentsCard: 业务板块详情
- StrategyAnalysisCard: 战略分析
**organisms/** - 复杂组件
- ValueChainNodeCard: 产业链节点(含 RelatedCompaniesModal)
- TimelineComponent: 时间线(含 EventDetailModal)
**utils/**
- chartOptions.ts: ECharts 图表配置
优化效果:主文件从 1,796 行减少到 117 行(-93%)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-11 10:59:05 +08:00 |
|
zdl
|
7819b4f8a2
|
feat(utils): 添加深度分析格式化工具函数
- formatCurrency: 货币格式化(支持亿/万单位)
- formatBusinessRevenue: 营收格式化(智能单位转换)
- formatPercentage: 百分比格式化
从 DeepAnalysisTab 提取合并到全局工具库
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-11 10:58:52 +08:00 |
|
|
|
29cf0d7013
|
update pay ui
|
2025-12-11 10:07:17 +08:00 |
|
|
|
d0c9d9b1fb
|
update pay ui
|
2025-12-11 08:46:09 +08:00 |
|
|
|
2ebc1cbc97
|
update pay ui
|
2025-12-11 08:33:56 +08:00 |
|
|
|
68c7b6232d
|
update pay ui
|
2025-12-11 08:06:23 +08:00 |
|
|
|
14514458ed
|
update pay ui
|
2025-12-11 07:54:01 +08:00 |
|
|
|
f23b859f77
|
update pay ui
|
2025-12-11 07:48:19 +08:00 |
|
|
|
8748e81a7b
|
update pay ui
|
2025-12-11 07:39:34 +08:00 |
|
|
|
2c5b3b7b50
|
Merge branch 'feature_bugfix/251201_py_h5_ui' of https://git.valuefrontier.cn/vf/vf_react into feature_bugfix/251201_py_h5_ui
|
2025-12-11 07:32:36 +08:00 |
|
|
|
8c6ebe01ed
|
update pay ui
|
2025-12-11 07:32:30 +08:00 |
|
zdl
|
6f74c1c1de
|
style: BranchesPanel 组件调整为黑金风格
- 卡片使用深色渐变背景,金色边框 + hover 发光效果
- 顶部添加金色渐变装饰线
- 状态徽章改为黑金风格(存续金色/非存续红色)
- 标题区域添加金色背景图标
- 信息项提取为 InfoItem 组件,优化布局
- 空状态使用金色圆形背景装饰
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 21:29:02 +08:00 |
|
zdl
|
fd0c614d90
|
feat: 调整公众号配置
|
2025-12-10 21:15:38 +08:00 |
|
zdl
|
3fed9d2d65
|
feat: 调整公众号配置
|
2025-12-10 19:59:37 +08:00 |
|
zdl
|
514917c0eb
|
fix: 添加mock数据
|
2025-12-10 19:57:21 +08:00 |
|
zdl
|
6ce913d79b
|
refactor: 整合 CompanyHeaderCard 到 StockQuoteCard,优化布局对齐
- 将公司基本信息整合到 StockQuoteCard 内部
- 采用 1:2 Flex 布局确保上下竖线对齐
- 删除废弃的 CompanyHeaderCard 组件
- 清理 types.ts 中的 CompanyHeaderCardProps
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 19:54:51 +08:00 |
|
zdl
|
6d5594556b
|
refactor: ManagementPanel 组件拆分重构
- 创建 management/ 子目录,模块化管理
- 拆分为 5 个 TypeScript 文件:types.ts、ManagementPanel.tsx、CategorySection.tsx、ManagementCard.tsx、index.ts
- 添加 useMemo 缓存分类计算结果
- 使用 React.memo 优化 ManagementCard 和 CategorySection
- 添加完整的 TypeScript 类型定义,消除 any
- 更新 STRUCTURE.md 同步目录结构
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 19:28:05 +08:00 |
|
zdl
|
c32091e83e
|
feat: 公司基础信息展示字段调整,公司概览调整为公司档案
|
2025-12-10 19:04:43 +08:00 |
|
zdl
|
2994de98c2
|
refactor: 财报披露日程独立为动态跟踪第三个 Tab
- 新建 DisclosureSchedulePanel 组件,独立展示财报披露日程
- 简化 AnnouncementsPanel,移除财报披露日程部分
- DynamicTracking 新增第三个 Tab:财报披露日程
- 更新 mock 数据字段名匹配组件需求
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 18:55:30 +08:00 |
|
zdl
|
c237a4dc0c
|
fix: 调整UI
|
2025-12-10 18:18:05 +08:00 |
|
zdl
|
395dc27fe2
|
refactor: ShareholderPanel 拆分为子组件 + 黑金主题优化
- 新增 ActualControlCard 实际控制人卡片组件
- 新增 ConcentrationCard 股权集中度卡片(含 ECharts 饼图)
- 新增 ShareholdersTable 合并表格(支持十大股东/十大流通股东)
- Mock 数据优化:股东名称改为真实格式
- Handler 修复:数组格式处理 + holding_ratio 百分比转换
- UI: 黑金主题统一、表格 hover 金色半透明
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 18:00:00 +08:00 |
|
|
|
f545c9ec15
|
update pay ui
|
2025-12-10 17:55:12 +08:00 |
|
|
|
b4791cbd4d
|
update pay ui
|
2025-12-10 17:45:32 +08:00 |
|
|
|
85c29483dd
|
update pay ui
|
2025-12-10 17:18:58 +08:00 |
|
|
|
beb349ac2f
|
update pay ui
|
2025-12-10 16:50:13 +08:00 |
|
zdl
|
3abee6b907
|
docs: 更新 STRUCTURE.md 目录结构说明
- 添加 BasicInfoTab/ 目录结构详情
- 补充各子组件功能注释:
- LoadingState: 加载状态组件
- ShareholderPanel: 股权结构面板
- ManagementPanel: 管理团队面板
- AnnouncementsPanel: 公告信息面板
- BranchesPanel: 分支机构面板
- BusinessInfoPanel: 工商信息面板
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 16:29:34 +08:00 |
|
zdl
|
d86cef9f79
|
fix: 修复股权结构 Mock 数据格式
- actualControl 改为数组格式(支持多个实控人)
- concentration 改为数组格式(按季度分组,含 stat_item)
- topShareholders 添加 shareholder_rank、end_date、share_nature 字段
- topCirculationShareholders 添加 shareholder_rank、end_date 字段
- 字段名与 ShareholderPanel 组件期望格式统一
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 16:29:18 +08:00 |
|
zdl
|
9aaf4400c1
|
refactor: BasicInfoTab 拆分为 TypeScript 模块化组件
- 删除旧的 BasicInfoTab.js (~1000行)
- 新建 BasicInfoTab/ 目录,拆分为 10 个 TypeScript 文件:
- index.tsx: 主组件(可配置 Tab)
- config.ts: Tab 配置 + 黑金主题
- utils.ts: 格式化工具函数
- components/: 5 个面板组件 + LoadingState
- 主组件支持 enabledTabs、defaultTabIndex、onTabChange
- 应用黑金主题,支持懒加载 (isLazy)
- 更新 types.ts 添加 ActualControl、Concentration 等类型字段
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 16:28:54 +08:00 |
|
|
|
7f5085ba8e
|
update pay ui
|
2025-12-10 16:26:36 +08:00 |
|
|
|
cca6f3a054
|
update pay ui
|
2025-12-10 16:05:53 +08:00 |
|
zdl
|
1cd8a2d7e9
|
fix: 颜色调整
|
2025-12-10 15:56:08 +08:00 |
|
zdl
|
af3cdc24b1
|
style: CompanyHeaderCard 黑金主题三区块布局重构
- 布局调整:从两栏(8:4)改为垂直三区块(身份分类 | 关键属性 | 公司介绍)
- 黑金主题:卡片背景 gray.800,金色强调色 #D4AF37
- 移除字段:法定代表人、董事长、总经理、邮箱、电话
- 保留字段:公司名称、代码、行业分类、成立日期、注册资本、所在地、官网、公司介绍
- CompanyTabs: TabPanel 去掉左右边距
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 15:53:50 +08:00 |
|
zdl
|
0bf2b01ca6
|
Merge branch 'feature_bugfix/251201_vf_h5_ui' into feature_bugfix/251201_py_h5_ui
* feature_bugfix/251201_vf_h5_ui:
feat: Company 页面搜索框支持拼音缩写搜索
|
2025-12-10 15:47:42 +08:00 |
|
zdl
|
b151400c65
|
feat: Company 页面搜索框支持拼音缩写搜索
- 新增 useStockSearch Hook,提取通用股票搜索能力
- 支持代码、名称、拼音缩写模糊搜索
- 内置 300ms 防抖,避免频繁 API 调用
- 使用 useRef 存储回调,防止防抖函数重建
- Company/index.js 使用新 Hook 替换本地搜索
- 搜索结果显示拼音缩写 (如 GZMT)
- 搜索框宽度调整为 280px
- Mock handler 添加拼音缩写支持
- 新增 PINYIN_MAP 字符映射表
- 搜索逻辑支持拼音匹配和排序
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 15:45:30 +08:00 |
|
|
|
14c61b4e88
|
update pay ui
|
2025-12-10 15:37:22 +08:00 |
|
|
|
19284f3677
|
update pay ui
|
2025-12-10 15:24:29 +08:00 |
|
zdl
|
bfb6ef63d0
|
refactor: MarketDataView TypeScript 重构 - 2060 行拆分为 12 个模块
- 将原 index.js (2060 行) 重构为 TypeScript 模块化架构
- 新增 types.ts: 383 行类型定义 (Theme, TradeDayData, MinuteData 等)
- 新增 services/marketService.ts: API 服务层封装
- 新增 hooks/useMarketData.ts: 数据获取 Hook
- 新增 utils/formatUtils.ts: 格式化工具函数
- 新增 utils/chartOptions.ts: ECharts 图表配置生成器 (698 行)
- 新增 components/: ThemedCard, MarkdownRenderer, StockSummaryCard, AnalysisModal
- 添加 Company/STRUCTURE.md 目录结构文档
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 15:14:23 +08:00 |
|
|
|
b838777a42
|
update pay ui
|
2025-12-10 14:49:37 +08:00 |
|
|
|
3adefc6225
|
update pay ui
|
2025-12-10 14:40:35 +08:00 |
|
zdl
|
722d038b56
|
Merge branch 'feature_bugfix/251201_py_h5_ui' into feature_2025/251209_stock_pref
* feature_bugfix/251201_py_h5_ui:
feat: Company 页面搜索框添加股票模糊搜索功能
update pay ui
update pay ui
fix: 个股中心bug修复
update pay ui
update pay ui
update pay ui
update pay ui
update pay ui
update pay ui
update pay ui
update pay ui
update pay ui
update pay ui
update pay ui
update pay ui
update pay ui
update pay ui
feat: 替换公众号文件
update pay ui
|
2025-12-10 14:30:25 +08:00 |
|
zdl
|
a01532ce65
|
Merge branch 'feature_bugfix/251201_vf_h5_ui' into feature_bugfix/251201_py_h5_ui
* feature_bugfix/251201_vf_h5_ui:
feat: Company 页面搜索框添加股票模糊搜索功能
fix: 个股中心bug修复
|
2025-12-10 14:26:36 +08:00 |
|
zdl
|
fbeb66fb39
|
feat: Company 页面搜索框添加股票模糊搜索功能
- 添加 AutoComplete 组件替换原 Input,支持下拉选择
- 集成 stockService.fuzzySearch 实现按代码/名称模糊匹配
- 从 Redux 获取 allStocks 数据,自动加载保障
- 选中股票自动触发查询并更新 URL 参数
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 14:26:16 +08:00 |
|
|
|
4fd1a24db4
|
update pay ui
|
2025-12-10 14:12:11 +08:00 |
|
|
|
3cb9b4237b
|
update pay ui
|
2025-12-10 14:01:38 +08:00 |
|
zdl
|
7c00763999
|
fix: 个股中心bug修复
|
2025-12-10 13:29:08 +08:00 |
|
|
|
d6d4bb8a12
|
update pay ui
|
2025-12-10 13:23:49 +08:00 |
|
zdl
|
5f6e4387e5
|
perf: CompanyOverview 内层 Tab 懒加载优化
- 将 useCompanyOverviewData(9个API)拆分为独立 Hooks:
- useBasicInfo: 基本信息(首屏唯一加载)
- useShareholderData: 股东信息(4个API)
- useManagementData: 管理层信息
- useAnnouncementsData: 公告数据
- useBranchesData: 分支机构
- useDisclosureData: 披露日程
- BasicInfoTab 使用子组件实现真正的懒加载:
- ShareholderTabPanel、ManagementTabPanel 等
- 配合 Chakra UI isLazy,切换 Tab 时才加载数据
- 首屏 API 请求从 9 个减少到 1 个
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 13:05:27 +08:00 |
|
|
|
1adbeda168
|
update pay ui
|
2025-12-10 12:22:40 +08:00 |
|