Commit Graph

1649 Commits

Author SHA1 Message Date
zdl
ec9c5af0be docs(Company): 添加组件模块总览 README
新增 Company/components/README.md:
- 组件概览表格(7 个核心组件)
- 完整目录结构说明
- 组件层级关系图
- 技术栈和主题系统说明
- 使用示例

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 13:44:03 +08:00
zdl
1532101cfd refactor(DeepAnalysis): TypeScript 重构,提取 useDeepAnalysisData Hook
- 新增 types.ts:API 类型定义、状态接口、Tab 映射常量
- 新增 hooks/useDeepAnalysisData.ts:提取数据获取逻辑
  - 懒加载:按 Tab 按需请求
  - 数据缓存:已加载数据不重复请求
  - 竞态处理:stockCode 变更时防止旧请求覆盖
- 重写 index.tsx:memo 优化,代码行数 229 → 81
- 新增 README.md:组件文档

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 13:42:16 +08:00
zdl
d9dc86f8e7 refactor(TradeDataPanel): 拆分 KLineModule 为独立子组件
- KLineModule: 611行精简至157行,专注状态管理
- 提取 KLineToolbar: 工具栏组件(模式切换、指标选择)
- 提取 DailyKLineChart: 日K图表(useMemo缓存配置)
- 提取 MinuteChartWithOrderBook: 分时图+五档盘口
- 提取 constants.ts: 指标选项常量
- 提取 styles.ts: 按钮样式常量
- 所有组件使用 React.memo 优化
- 更新 README.md 文档

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 13:37:15 +08:00
zdl
01ec5f184b docs(Company): 添加组件目录结构文档
为 Company 模块下的主要组件添加 README.md:
- CompanyHeader: 搜索栏组件
- CompanyOverview: 公司概览(基本信息 + 深度分析)
- FinancialPanorama: 财务全景
- ForecastReport: 盈利预测
- MarketDataView: 市场数据
- StockQuoteCard: 股票行情卡片

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 13:22:43 +08:00
zdl
dd23bb4817 fix: 修复 Antd 和 React 废弃 API 警告
- AutoComplete/Select: dropdownStyle -> styles.popup.root
- AutoComplete/Select: popupClassName -> classNames.popup.root
- 移除 WebkitBackdropFilter(Chakra backdropFilter 自动处理)
- Table rowKey: 使用唯一标识符替代 index 参数

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 13:15:09 +08:00
zdl
16e11f6615 refactor(MarketDataView): 提取共享组件,简化 Panel 结构
- 新增 shared 目录,提取重复组件:
  - DarkGoldCard: 黑金卡片容器
  - DarkGoldBadge: 黑金徽章组件
  - EmptyState: 空状态组件
  - styles.ts: 共享样式定义
- 简化各 Panel 组件,移除重复代码
- 优化 index.tsx componentProps 传递
- 调整 hooks/services 数据获取逻辑

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 13:09:20 +08:00
zdl
e9a41eba8a chore(StockQuoteCard): 删除未使用的组件
- 删除 CompanyInfo.tsx(未被引用)
- 删除 KeyMetrics.tsx(未被引用)
- 更新 index.ts 移除相关导出

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 13:06:08 +08:00
zdl
45a0ed1281 refactor(StockQuoteCard): 子组件提取与 DEEP_SPACE_THEME 统一
- PriceDisplay: 更新为 DEEP_SPACE_THEME,添加发光效果
- StockHeader: 更新为 DEEP_SPACE_THEME,金色边框和发光
- MetricRow: 新建指标行组件,支持普通和高亮模式
- 主组件从 321 行精简到 180 行(-44%)
- 统一使用提取的子组件,移除内联代码

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 13:03:21 +08:00
zdl
b600cf4a85 docs(useCompanyData): 添加 isInWatchlist 派生逻辑注释
说明 localStorage 缓存机制确保大多数情况下立即显示正确状态

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 12:54:32 +08:00
zdl
02fa24b685 fix(Company): 自选股状态同步到 Redux 全局状态
- useCompanyData 改用 Redux stockSlice 管理自选股状态
- isInWatchlist 从 Redux watchlist 中派生,确保全局同步
- toggleWatchlist 使用 Redux action,乐观更新 + localStorage 持久化
- 移除独立的 loadWatchlistStatus API 调用,复用 Redux 缓存

修复问题:Company 页面关注按钮与导航栏等其他组件状态不同步

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 11:39:50 +08:00
zdl
7b960d696e refactor(StockQuoteCard): 组件拆分与 FUI 光效统一
- 新增 CardGlow 组件到 @components/FUI,支持多种颜色主题 (gold/cyan/purple)
- 拆分 StockQuoteCard 子组件:GlassSection、LoadingSkeleton
- 更新 KeyMetrics、MainForceInfo、SecondaryQuote 使用 DEEP_SPACE_THEME
- 主组件从 540 行精简到 321 行(减少 40%)
- 删除重复的 GlowDecorations,统一使用 FUI/CardGlow

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 11:29:28 +08:00
zdl
cbb8db1c6b perf(CompanyHeader): 性能优化与代码重构
- 移除不必要的 PageTitle 子组件(纯静态内容,memo 无意义)
- 提取样式常量到 constants.ts,避免每次渲染重新创建对象
- 简化 SearchBox props,移除未使用的 stockCode
- 点击搜索图标支持发起搜索
- 移除未使用的 FUI_GLASS 导入
- 简化 CompanyHeaderProps 类型定义

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 11:08:01 +08:00
zdl
c2dd3984d4 refactor(Company): 简化 CompanyHeader,添加详细代码注释
- CompanyHeader: 移除冗余的股票信息展示(已在 StockQuoteCard 中)
- index.tsx: 添加完整的 JSDoc 注释和架构说明
- types.ts: 简化 CompanyHeaderProps,移除不再需要的属性
- useStockQuoteData: 优化数据获取逻辑

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 10:58:49 +08:00
zdl
73887a8590 Merge branch 'feature_bugfix/251217_stock' of https://git.valuefrontier.cn/vf/vf_react into feature_bugfix/251217_stock
* 'feature_bugfix/251217_stock' of https://git.valuefrontier.cn/vf/vf_react:
  更新Company页面的UI为FUI风格
  更新Company页面的UI为FUI风格
  更新Company页面的UI为FUI风格
  更新Company页面的UI为FUI风格
  更新Company页面的UI为FUI风格
  更新Company页面的UI为FUI风格
  更新Company页面的UI为FUI风格
  更新Company页面的UI为FUI风格
  更新Company页面的UI为FUI风格
  更新Company页面的UI为FUI风格
  更新Company页面的UI为FUI风格
  更新Company页面的UI为FUI风格
2025-12-19 10:16:07 +08:00
zdl
59a8fae523 feat: 新增 financialService 类型声明和 EChartsWrapper 组件
- financialService.d.ts: 为 JS 服务文件提供 TypeScript 类型声明
- EChartsWrapper.tsx: 按需引入的 ECharts 包装组件,减小打包体积

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 10:15:59 +08:00
zdl
425424cfe7 perf(Company): 优化渲染性能和 API 请求
- StockQuoteCard: 添加 memo 包装减少重渲染
- Company/index: componentProps 使用 useMemo 缓存
- useCompanyEvents: 页面浏览事件只触发一次,避免重复追踪
- useCompanyData: 自选股状态改用单股票查询接口,减少数据传输
- CompanyHeader: inputCode 状态下移到 SearchActions,减少父组件重渲染
- CompanyHeader: 移除重复环境光效果,由全局 AmbientGlow 统一处理

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-19 10:14:07 +08:00
a445a123f7 更新Company页面的UI为FUI风格 2025-12-18 22:06:22 +08:00
e4576904bf 更新Company页面的UI为FUI风格 2025-12-18 21:54:05 +08:00
c181cfc59c 更新Company页面的UI为FUI风格 2025-12-18 21:42:39 +08:00
dffa99edef 更新Company页面的UI为FUI风格 2025-12-18 21:39:52 +08:00
0ffbc0e43c 更新Company页面的UI为FUI风格 2025-12-18 21:33:47 +08:00
bb05194a42 更新Company页面的UI为FUI风格 2025-12-18 21:22:20 +08:00
bc08f4faf5 更新Company页面的UI为FUI风格 2025-12-18 21:10:11 +08:00
5d40ebce2a 更新Company页面的UI为FUI风格 2025-12-18 20:12:32 +08:00
a0388f73b0 更新Company页面的UI为FUI风格 2025-12-18 20:06:51 +08:00
bc319f63d0 更新Company页面的UI为FUI风格 2025-12-18 19:41:04 +08:00
zdl
1d3fab9c2d perf(Company): 恢复 CompanyContent 的 memo 包装
- 将主内容区提取为独立的 memo 包装组件
- 避免父组件状态变化导致不必要的重渲染
- 提升页面性能

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 18:43:05 +08:00
zdl
7496609d8c fix(types): 修复 ECharts 类型导出和组件类型冲突
- echarts.ts: 将 EChartsOption 改为 EChartsCoreOption 的类型别名
- FuiCorners: 移除 extends BoxProps,position 重命名为 corner
- KLineChartModal/TimelineChartModal/ConcentrationCard: 使用导入的 EChartsOption
- LoadingState: 新增骨架屏 variant 支持
- FinancialPanorama: 使用骨架屏加载状态
- useFinancialData/financialService: 优化数据获取逻辑
- Company/index: 简化组件结构

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 18:42:19 +08:00
zdl
b610a7dc9d perf: 优化各 Tab 数据加载为按需请求
MarketDataView (股票行情):
- 初始只加载 summary + tradeData(2个接口)
- funding/bigDeal/unusual/pledge 数据在切换 Tab 时按需加载
- 新增 loadDataByType 方法支持懒加载

FinancialPanorama (财务全景):
- 初始只加载 stockInfo + metrics + comparison + mainBusiness(4个接口)
- 从9个接口优化到4个接口

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 18:32:14 +08:00
zdl
96ee1a7f5c refactor(theme): 统一黑金主题常量,减少硬编码
- theme/index.ts: 添加 COLORS, GLOW, GLASS 便捷常量
- theme/index.ts: 导出 glassCardStyle 可复用样式
- BusinessInfoPanel: 迁移到使用统一主题常量

迁移指南:
- import { COLORS, GLASS, glassCardStyle } from '@views/Company/theme'
- 替换 rgba(212, 175, 55, x) → COLORS.border / COLORS.borderHover
- 替换硬编码背景 → GLASS.bgDark / COLORS.bgGlass

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 18:29:42 +08:00
zdl
722582e83a perf(DeepAnalysis): 优化初始加载,只请求 comprehensive 接口
- 移除初始加载时的 industryRank 请求
- 只加载默认 Tab(战略分析)需要的核心数据
- 其他数据按需懒加载

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 18:27:57 +08:00
zdl
aad73a18ed fix(SubTabContainer): 移除外层 Suspense,Tab 内容直接展示
- SubTabContainer 内部为每个 Tab 添加 Suspense fallback={null}
- 移除 Company/index.tsx 外层 Suspense 和 TabLoadingFallback
- 切换一级 Tab 时不再显示整体 loading,直接展示内容

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 18:23:16 +08:00
zdl
0eb97b1bce style(BusinessInfoPanel): 优化工商信息模块 UI
- 使用玻璃态卡片布局(Glassmorphism)
- 添加图标增强视觉效果
- 信息行使用悬停效果
- 服务机构使用独立卡片展示
- 主营业务/经营范围两列布局
- 统一 FUI 黑金主题风格

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 18:16:42 +08:00
zdl
6ba8cd05f5 fix(FinancialPanorama): 优化 loading 状态,Tabs 立即显示
- 移除 SubTabContainer 的 loading 条件渲染,Tabs 始终可见
- 各 Tab 组件内部处理 loading 状态,显示 Spinner
- 传递 loading 和 loadingTab 到 componentProps
- 修改 BalanceSheetTab、IncomeStatementTab、CashflowTab、
  FinancialMetricsTab、MetricsCategoryTab 支持 loading 属性

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 18:15:30 +08:00
zdl
cdc4179546 fix(mock): 修复股权集中度和实控人数据格式
- 移除 holding_ratio 除以 100 的错误转换
- 数据保持原始百分比格式(如 52.38 表示 52.38%)
- 修复饼图显示异常问题

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 18:14:42 +08:00
zdl
4ef4c38458 fix(SubTabContainer): 保持 Tab 面板挂载状态,防止切换时状态丢失
- 添加 lazyBehavior="keepMounted" 属性
- 修复切换一级 Tab 后二级 Tab 状态被完全重置的问题
- 组件仍然懒加载,但首次渲染后保持挂载

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 18:09:36 +08:00
zdl
8006e86b5f style(StockQuoteCard): 优化布局和样式
- 数据区块改为三列布局:估值指标 | 市值股本 | 主力动态
- 流通市值、发行总股本、52周波动 放在同一列
- 区块标题高亮显示(金色 + 发光效果)
- 注释掉公司信息模块(成立日期、注册资本、所在地等)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 18:03:28 +08:00
zdl
e3de248038 feat(mock): 完善 Mock 数据,修复 API 返回格式
- event.js: 修复 /api/events 返回格式,匹配 useEventData 期望的结构
- stock.js: 添加 /api/stock/:code/quote-detail handler(完整行情数据含买卖盘)
- stock.js: 添加 /api/flex-screen/quotes handler(指数行情)
- stock.js: 修复 /api/index/:code/kline 支持 minute 类型

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 18:03:21 +08:00
zdl
b71cb22d11 fix: 优化错误处理,减少控制台噪音
- axiosConfig: 忽略 CanceledError 错误日志(组件卸载时的正常行为)
- socketService: 首次连接失败使用 warn 级别,后续重试使用 debug 级别
- useEventData: 添加防御性检查,防止 pagination 为 undefined 时崩溃

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 18:03:10 +08:00
zdl
2e3c10c27e style: 移除主 Tab 内容区的 padding
- Company/index.tsx: contentPadding 从 6 改为 0

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 18:01:56 +08:00
zdl
13db56b69f style: 移除公司概览与股权结构之间的间距
- BasicInfoTab: 设置 contentPadding={0}

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 18:00:16 +08:00
zdl
737bde0254 style: 子 Tab 紧凑模式,移除多余边距
- SubTabContainer: 添加 compact 属性
  - 移除 TabList 的 mx/mb 外边距
  - 移除圆角和阴影
  - 减小垂直内边距
- BasicInfoTab: 启用 compact 模式,移除 Card 包裹

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 17:54:56 +08:00
zdl
79c36a1c62 feat: 将 StockQuoteCard 提升到 Tab 容器上方 + 修复 TS 警告
功能变更:
- 将 StockQuoteCard 从 CompanyOverview 移至 Company/index.tsx
- 股票行情卡片现在在切换 Tab 时始终可见

TypeScript 警告修复:
- SubTabContainer: WebkitBackdropFilter 改用 sx 属性
- DetailTable: 重新定义 TableRowData 类型,支持 boolean 索引
- SubscriptionContentNew: 添加类型安全的 AGREEMENT_URLS 索引访问

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-18 17:25:21 +08:00
0a84430eea 更新Company页面的UI为FUI风格 2025-12-18 16:41:17 +08:00
b557b76a93 更新Company页面的UI为FUI风格 2025-12-18 14:20:53 +08:00
a2b971f973 更新Company页面的UI为FUI风格 2025-12-18 09:07:26 +08:00
8f91246cfb 更新Company页面的UI为FUI风格 2025-12-18 08:34:16 +08:00
964d404bbf 更新Company页面的UI为FUI风格 2025-12-18 08:23:04 +08:00
9ef8229941 更新Company页面的UI为FUI风格 2025-12-18 07:26:10 +08:00
9fab36ddc0 更新Company页面的UI为FUI风格 2025-12-18 00:24:11 +08:00