From 514917c0eb33d5222093074015d04aac07181d7e Mon Sep 17 00:00:00 2001 From: zdl <3489966805@qq.com> Date: Wed, 10 Dec 2025 19:57:21 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0mock=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mocks/data/company.js | 33 +++++++----- src/views/Company/STRUCTURE.md | 97 ++++++++++++++++++++++------------ 2 files changed, 81 insertions(+), 49 deletions(-) diff --git a/src/mocks/data/company.js b/src/mocks/data/company.js index 41184bea..66d0267f 100644 --- a/src/mocks/data/company.js +++ b/src/mocks/data/company.js @@ -315,18 +315,20 @@ export const PINGAN_BANK_DATA = { { shareholder_rank: 10, shareholder_name: '嘉实沪深300交易型开放式指数证券投资基金', holding_shares: 87654300, total_share_ratio: 0.45, shareholder_type: '基金', share_nature: '流通A股', end_date: '2024-09-30' } ], - // 分支机构 + // 分支机构(字段与 BranchesPanel 组件匹配) branches: [ - { name: '北京分行', address: '北京市朝阳区建国路88号SOHO现代城', phone: '010-85806888', type: '一级分行', establish_date: '2007-03-15' }, - { name: '上海分行', address: '上海市浦东新区陆家嘴环路1366号', phone: '021-38637777', type: '一级分行', establish_date: '2007-05-20' }, - { name: '广州分行', address: '广州市天河区珠江新城珠江东路32号', phone: '020-38390888', type: '一级分行', establish_date: '2007-06-10' }, - { name: '深圳分行', address: '深圳市福田区益田路5033号', phone: '0755-82538888', type: '一级分行', establish_date: '1995-01-01' }, - { name: '杭州分行', address: '杭州市江干区钱江路1366号', phone: '0571-87028888', type: '一级分行', establish_date: '2008-09-12' }, - { name: '成都分行', address: '成都市武侯区人民南路四段13号', phone: '028-85266888', type: '一级分行', establish_date: '2009-04-25' }, - { name: '南京分行', address: '南京市建邺区江东中路359号', phone: '025-86625888', type: '一级分行', establish_date: '2010-06-30' }, - { name: '武汉分行', address: '武汉市江汉区建设大道568号', phone: '027-85712888', type: '一级分行', establish_date: '2011-08-15' }, - { name: '西安分行', address: '西安市高新区唐延路35号', phone: '029-88313888', type: '一级分行', establish_date: '2012-10-20' }, - { name: '天津分行', address: '天津市和平区南京路189号', phone: '022-23399888', type: '一级分行', establish_date: '2013-03-18' } + { branch_name: '平安银行股份有限公司北京分行', business_status: '存续', register_capital: '20亿元', legal_person: '张伟', register_date: '2007-03-15', related_company_count: 156 }, + { branch_name: '平安银行股份有限公司上海分行', business_status: '存续', register_capital: '25亿元', legal_person: '李明', register_date: '2007-05-20', related_company_count: 203 }, + { branch_name: '平安银行股份有限公司广州分行', business_status: '存续', register_capital: '18亿元', legal_person: '王芳', register_date: '2007-06-10', related_company_count: 142 }, + { branch_name: '平安银行股份有限公司深圳分行', business_status: '存续', register_capital: '30亿元', legal_person: '陈强', register_date: '1995-01-01', related_company_count: 287 }, + { branch_name: '平安银行股份有限公司杭州分行', business_status: '存续', register_capital: '15亿元', legal_person: '刘洋', register_date: '2008-09-12', related_company_count: 98 }, + { branch_name: '平安银行股份有限公司成都分行', business_status: '存续', register_capital: '12亿元', legal_person: '赵静', register_date: '2009-04-25', related_company_count: 76 }, + { branch_name: '平安银行股份有限公司南京分行', business_status: '存续', register_capital: '14亿元', legal_person: '周涛', register_date: '2010-06-30', related_company_count: 89 }, + { branch_name: '平安银行股份有限公司武汉分行', business_status: '存续', register_capital: '10亿元', legal_person: '吴磊', register_date: '2011-08-15', related_company_count: 65 }, + { branch_name: '平安银行股份有限公司西安分行', business_status: '存续', register_capital: '8亿元', legal_person: '郑华', register_date: '2012-10-20', related_company_count: 52 }, + { branch_name: '平安银行股份有限公司天津分行', business_status: '存续', register_capital: '10亿元', legal_person: '孙丽', register_date: '2013-03-18', related_company_count: 71 }, + { branch_name: '平安银行股份有限公司重庆分行', business_status: '存续', register_capital: '9亿元', legal_person: '钱峰', register_date: '2014-05-08', related_company_count: 58 }, + { branch_name: '平安银行股份有限公司苏州分行', business_status: '存续', register_capital: '6亿元', legal_person: '冯雪', register_date: '2015-07-22', related_company_count: 45 }, ], // 公告列表 @@ -1230,9 +1232,12 @@ export const generateCompanyData = (stockCode, stockName = '示例公司') => { { shareholder_rank: 10, shareholder_name: '嘉实沪深300交易型开放式指数证券投资基金', holding_shares: 15000000, total_share_ratio: 0.95, shareholder_type: '基金', share_nature: '流通A股', end_date: '2024-09-30' } ], branches: [ - { name: '北京分公司', address: '北京市朝阳区某路123号', phone: '010-12345678', type: '分公司', establish_date: '2012-05-01' }, - { name: '上海分公司', address: '上海市浦东新区某路456号', phone: '021-12345678', type: '分公司', establish_date: '2013-08-15' }, - { name: '广州分公司', address: '广州市天河区某路789号', phone: '020-12345678', type: '分公司', establish_date: '2014-03-20' }, + { branch_name: `${stockName}北京分公司`, business_status: '存续', register_capital: '5000万元', legal_person: '张伟', register_date: '2012-05-01', related_company_count: 23 }, + { branch_name: `${stockName}上海分公司`, business_status: '存续', register_capital: '8000万元', legal_person: '李明', register_date: '2013-08-15', related_company_count: 35 }, + { branch_name: `${stockName}广州分公司`, business_status: '存续', register_capital: '3000万元', legal_person: '王芳', register_date: '2014-03-20', related_company_count: 18 }, + { branch_name: `${stockName}深圳分公司`, business_status: '存续', register_capital: '6000万元', legal_person: '陈强', register_date: '2015-06-10', related_company_count: 28 }, + { branch_name: `${stockName}成都分公司`, business_status: '存续', register_capital: '2000万元', legal_person: '刘洋', register_date: '2018-09-25', related_company_count: 12 }, + { branch_name: `${stockName}武汉子公司`, business_status: '注销', register_capital: '1000万元', legal_person: '赵静', register_date: '2016-04-18', related_company_count: 5 }, ], announcements: [ { title: `${stockName}2024年第三季度报告`, announce_date: '2024-10-28', info_type: '定期报告', format: 'PDF', file_size: 1850, url: '#' }, diff --git a/src/views/Company/STRUCTURE.md b/src/views/Company/STRUCTURE.md index ea13c2d8..d6185f0b 100644 --- a/src/views/Company/STRUCTURE.md +++ b/src/views/Company/STRUCTURE.md @@ -6,49 +6,69 @@ ``` src/views/Company/ -├── index.js # 页面入口(95行,纯组合层) +├── index.js # 页面入口(纯组合层) ├── STRUCTURE.md # 本文档 │ ├── components/ # UI 组件 +│ │ │ ├── CompanyHeader/ # 页面头部 │ │ ├── index.js # 组合导出 -│ │ ├── SearchBar.js # 股票搜索栏 -│ │ └── WatchlistButton.js # 自选股按钮 +│ │ └── SearchBar.js # 股票搜索栏 │ │ │ ├── CompanyTabs/ # Tab 切换容器 │ │ ├── index.js # Tab 容器(状态管理 + 内容渲染) │ │ └── TabNavigation.js # Tab 导航栏 │ │ -│ ├── CompanyOverview/ # Tab: 公司概览(TypeScript 拆分) -│ │ ├── index.tsx # 主组件(组合层,约 50 行) -│ │ ├── CompanyHeaderCard.tsx # 头部卡片组件(黑金主题,约 200 行) -│ │ ├── BasicInfoTab/ # 基本信息 Tab(TypeScript 可配置化重构) -│ │ │ ├── index.tsx # 主组件(可配置,约 120 行) -│ │ │ ├── config.ts # Tab 配置 + 黑金主题(约 90 行) -│ │ │ ├── utils.ts # 格式化工具函数(约 50 行) -│ │ │ └── components/ # 子组件 -│ │ │ ├── index.ts # 组件统一导出 -│ │ │ ├── LoadingState.tsx # 加载状态组件(黑金主题 Spinner) -│ │ │ ├── ShareholderPanel.tsx # 股权结构面板(实控人、十大股东、股权集中度) -│ │ │ ├── management/ # 管理团队模块(拆分重构) -│ │ │ │ ├── index.ts # 模块导出 -│ │ │ │ ├── types.ts # 类型定义(ManagementPerson 等) -│ │ │ │ ├── ManagementPanel.tsx # 主组件(useMemo 优化) -│ │ │ │ ├── CategorySection.tsx # 分类区块(memo 优化) -│ │ │ │ └── ManagementCard.tsx # 人员卡片(memo 优化) -│ │ │ ├── AnnouncementsPanel.tsx # 公告信息面板(公告列表 + 披露日程) -│ │ │ ├── BranchesPanel.tsx # 分支机构面板(分支列表表格) -│ │ │ └── BusinessInfoPanel.tsx # 工商信息面板(注册资本、成立日期等) +│ ├── StockQuoteCard/ # 股票行情卡片(TypeScript) +│ │ ├── index.tsx # 主组件 +│ │ ├── types.ts # 类型定义 +│ │ └── mockData.ts # Mock 数据 +│ │ +│ ├── CompanyOverview/ # Tab: 公司概览(TypeScript) +│ │ ├── index.tsx # 主组件(组合层) +│ │ ├── types.ts # 类型定义 +│ │ ├── utils.ts # 格式化工具 │ │ ├── DeepAnalysisTab.js # 深度分析 Tab │ │ ├── NewsEventsTab.js # 新闻事件 Tab -│ │ ├── types.ts # 类型定义(约 120 行) -│ │ ├── utils.ts # 格式化工具(约 20 行) -│ │ └── hooks/ -│ │ └── useCompanyOverviewData.ts # 数据 Hook(约 100 行) +│ │ │ +│ │ ├── hooks/ # 数据 Hooks +│ │ │ ├── useBasicInfo.ts # 基本信息 Hook +│ │ │ ├── useShareholderData.ts # 股权结构 Hook(4 APIs) +│ │ │ ├── useManagementData.ts # 管理团队 Hook +│ │ │ ├── useAnnouncementsData.ts # 公告数据 Hook +│ │ │ ├── useBranchesData.ts # 分支机构 Hook +│ │ │ ├── useDisclosureData.ts # 披露日程 Hook +│ │ │ └── useCompanyOverviewData.ts # [已废弃] 原合并 Hook +│ │ │ +│ │ ├── components/ # 股权结构子组件 +│ │ │ └── shareholder/ +│ │ │ ├── index.ts # 导出 +│ │ │ ├── ActualControlCard.tsx # 实控人卡片 +│ │ │ ├── ConcentrationCard.tsx # 股权集中度卡片 +│ │ │ └── ShareholdersTable.tsx # 股东表格 +│ │ │ +│ │ └── BasicInfoTab/ # 基本信息 Tab(可配置化) +│ │ ├── index.tsx # 主组件(可配置) +│ │ ├── config.ts # Tab 配置 + 黑金主题 +│ │ ├── utils.ts # 格式化工具函数 +│ │ └── components/ # 子组件 +│ │ ├── index.ts # 组件统一导出 +│ │ ├── LoadingState.tsx # 加载状态组件 +│ │ ├── ShareholderPanel.tsx # 股权结构面板 +│ │ ├── AnnouncementsPanel.tsx # 公告信息面板 +│ │ ├── BranchesPanel.tsx # 分支机构面板 +│ │ ├── BusinessInfoPanel.tsx # 工商信息面板 +│ │ ├── DisclosureSchedulePanel.tsx # 披露日程面板 +│ │ └── management/ # 管理团队模块 +│ │ ├── index.ts # 模块导出 +│ │ ├── types.ts # 类型定义 +│ │ ├── ManagementPanel.tsx # 主组件(useMemo) +│ │ ├── CategorySection.tsx # 分类区块(memo) +│ │ └── ManagementCard.tsx # 人员卡片(memo) │ │ -│ ├── MarketDataView/ # Tab: 股票行情(TypeScript 拆分) -│ │ ├── index.tsx # 主组件入口(~1049 行) -│ │ ├── types.ts # 类型定义(~383 行) +│ ├── MarketDataView/ # Tab: 股票行情(TypeScript) +│ │ ├── index.tsx # 主组件入口 +│ │ ├── types.ts # 类型定义 │ │ ├── constants.ts # 主题配置、常量 │ │ ├── services/ │ │ │ └── marketService.ts # API 服务层 @@ -56,7 +76,7 @@ src/views/Company/ │ │ │ └── useMarketData.ts # 数据获取 Hook │ │ ├── utils/ │ │ │ ├── formatUtils.ts # 格式化工具函数 -│ │ │ └── chartOptions.ts # ECharts 图表配置生成器 +│ │ │ └── chartOptions.ts # ECharts 图表配置 │ │ └── components/ │ │ ├── index.ts # 组件导出 │ │ ├── ThemedCard.tsx # 主题化卡片 @@ -64,16 +84,23 @@ src/views/Company/ │ │ ├── StockSummaryCard.tsx # 股票概览卡片 │ │ └── AnalysisModal.tsx # 涨幅分析模态框 │ │ -│ ├── FinancialPanorama/ # Tab: 财务全景(2153 行,待拆分) +│ ├── DeepAnalysis/ # Tab: 深度分析 │ │ └── index.js │ │ -│ └── ForecastReport/ # Tab: 盈利预测(161 行,待拆分) +│ ├── DynamicTracking/ # Tab: 动态跟踪 +│ │ └── index.js +│ │ +│ ├── FinancialPanorama/ # Tab: 财务全景(待拆分) +│ │ └── index.js +│ │ +│ └── ForecastReport/ # Tab: 盈利预测(待拆分) │ └── index.js │ -├── hooks/ # 自定义 Hooks +├── hooks/ # 页面级 Hooks │ ├── useCompanyStock.js # 股票代码管理(URL 同步) │ ├── useCompanyWatchlist.js # 自选股管理(Redux 集成) -│ └── useCompanyEvents.js # PostHog 事件追踪 +│ ├── useCompanyEvents.js # PostHog 事件追踪 +│ └── useStockQuote.js # 股票行情数据 Hook │ └── constants/ # 常量定义 └── index.js # Tab 配置、Toast 消息、默认值