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>
This commit is contained in:
@@ -30,7 +30,12 @@ src/views/Company/
|
||||
│ │ │ ├── index.ts # 组件统一导出
|
||||
│ │ │ ├── LoadingState.tsx # 加载状态组件(黑金主题 Spinner)
|
||||
│ │ │ ├── ShareholderPanel.tsx # 股权结构面板(实控人、十大股东、股权集中度)
|
||||
│ │ │ ├── ManagementPanel.tsx # 管理团队面板(高管列表表格)
|
||||
│ │ │ ├── management/ # 管理团队模块(拆分重构)
|
||||
│ │ │ │ ├── index.ts # 模块导出
|
||||
│ │ │ │ ├── types.ts # 类型定义(ManagementPerson 等)
|
||||
│ │ │ │ ├── ManagementPanel.tsx # 主组件(useMemo 优化)
|
||||
│ │ │ │ ├── CategorySection.tsx # 分类区块(memo 优化)
|
||||
│ │ │ │ └── ManagementCard.tsx # 人员卡片(memo 优化)
|
||||
│ │ │ ├── AnnouncementsPanel.tsx # 公告信息面板(公告列表 + 披露日程)
|
||||
│ │ │ ├── BranchesPanel.tsx # 分支机构面板(分支列表表格)
|
||||
│ │ │ └── BusinessInfoPanel.tsx # 工商信息面板(注册资本、成立日期等)
|
||||
@@ -468,4 +473,37 @@ MarketDataView/
|
||||
- **TypeScript 类型安全**:所有数据结构有完整类型定义
|
||||
- **服务层分离**:API 调用统一在 `marketService.ts` 中管理
|
||||
- **图表配置抽离**:复杂的 ECharts 配置集中在 `chartOptions.ts`
|
||||
- **组件复用**:通用组件(ThemedCard、MarkdownRenderer)可在其他模块使用
|
||||
- **组件复用**:通用组件(ThemedCard、MarkdownRenderer)可在其他模块使用
|
||||
|
||||
### 2025-12-10 ManagementPanel 拆分重构
|
||||
|
||||
**改动概述**:
|
||||
- `ManagementPanel.tsx` 从 **180 行** 拆分为 **5 个 TypeScript 文件**
|
||||
- 创建 `management/` 子目录,模块化管理
|
||||
- 添加性能优化(`useMemo`、`React.memo`)
|
||||
|
||||
**拆分后文件结构**:
|
||||
```
|
||||
components/management/
|
||||
├── index.ts # 模块导出
|
||||
├── types.ts # 类型定义(~35 行)
|
||||
├── ManagementPanel.tsx # 主组件(~105 行,useMemo 优化)
|
||||
├── CategorySection.tsx # 分类区块组件(~65 行,memo)
|
||||
└── ManagementCard.tsx # 人员卡片组件(~100 行,memo)
|
||||
```
|
||||
|
||||
**类型定义**(`types.ts`):
|
||||
- `ManagementPerson` - 管理人员信息
|
||||
- `ManagementCategory` - 分类类型(高管/董事/监事/其他)
|
||||
- `CategorizedManagement` - 分类后的数据结构
|
||||
- `CategoryConfig` - 分类配置(图标、颜色)
|
||||
|
||||
**性能优化**:
|
||||
- `useMemo` - 缓存 `categorizeManagement()` 分类计算结果
|
||||
- `React.memo` - `ManagementCard` 和 `CategorySection` 使用 memo 包装
|
||||
- 常量提取 - `CATEGORY_CONFIG` 和 `CATEGORY_ORDER` 提取到组件外部
|
||||
|
||||
**设计原则**:
|
||||
- **职责分离**:卡片渲染、分类区块、数据处理各自独立
|
||||
- **类型安全**:消除 `any` 类型,完整的 TypeScript 类型定义
|
||||
- **可复用性**:`ManagementCard` 可独立使用
|
||||
Reference in New Issue
Block a user