feat: CompanyOverview TypeScript 类型定义和工具函数
- types.ts: 添加公司基本信息、股东、管理层等接口定义 - utils.ts: 添加注册资本、日期格式化函数 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
118
src/views/Company/components/CompanyOverview/types.ts
Normal file
118
src/views/Company/components/CompanyOverview/types.ts
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
// src/views/Company/components/CompanyOverview/types.ts
|
||||||
|
// 公司概览组件类型定义
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公司基本信息
|
||||||
|
*/
|
||||||
|
export interface BasicInfo {
|
||||||
|
ORGNAME?: string;
|
||||||
|
SECNAME?: string;
|
||||||
|
SECCODE?: string;
|
||||||
|
sw_industry_l1?: string;
|
||||||
|
sw_industry_l2?: string;
|
||||||
|
sw_industry_l3?: string;
|
||||||
|
legal_representative?: string;
|
||||||
|
chairman?: string;
|
||||||
|
general_manager?: string;
|
||||||
|
establish_date?: string;
|
||||||
|
reg_capital?: number;
|
||||||
|
province?: string;
|
||||||
|
city?: string;
|
||||||
|
website?: string;
|
||||||
|
email?: string;
|
||||||
|
tel?: string;
|
||||||
|
company_intro?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实际控制人
|
||||||
|
*/
|
||||||
|
export interface ActualControl {
|
||||||
|
controller_name?: string;
|
||||||
|
controller_type?: string;
|
||||||
|
holding_ratio?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 股权集中度
|
||||||
|
*/
|
||||||
|
export interface Concentration {
|
||||||
|
top1_ratio?: number;
|
||||||
|
top5_ratio?: number;
|
||||||
|
top10_ratio?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 管理层信息
|
||||||
|
*/
|
||||||
|
export interface Management {
|
||||||
|
name?: string;
|
||||||
|
position?: string;
|
||||||
|
start_date?: string;
|
||||||
|
end_date?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 股东信息
|
||||||
|
*/
|
||||||
|
export interface Shareholder {
|
||||||
|
shareholder_name?: string;
|
||||||
|
holding_ratio?: number;
|
||||||
|
holding_amount?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分支机构
|
||||||
|
*/
|
||||||
|
export interface Branch {
|
||||||
|
branch_name?: string;
|
||||||
|
address?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公告信息
|
||||||
|
*/
|
||||||
|
export interface Announcement {
|
||||||
|
title?: string;
|
||||||
|
publish_date?: string;
|
||||||
|
url?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 披露计划
|
||||||
|
*/
|
||||||
|
export interface DisclosureSchedule {
|
||||||
|
report_type?: string;
|
||||||
|
disclosure_date?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* useCompanyOverviewData Hook 返回值
|
||||||
|
*/
|
||||||
|
export interface CompanyOverviewData {
|
||||||
|
basicInfo: BasicInfo | null;
|
||||||
|
actualControl: ActualControl[];
|
||||||
|
concentration: Concentration[];
|
||||||
|
management: Management[];
|
||||||
|
topCirculationShareholders: Shareholder[];
|
||||||
|
topShareholders: Shareholder[];
|
||||||
|
branches: Branch[];
|
||||||
|
announcements: Announcement[];
|
||||||
|
disclosureSchedule: DisclosureSchedule[];
|
||||||
|
loading: boolean;
|
||||||
|
dataLoaded: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CompanyOverview 组件 Props
|
||||||
|
*/
|
||||||
|
export interface CompanyOverviewProps {
|
||||||
|
stockCode?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CompanyHeaderCard 组件 Props
|
||||||
|
*/
|
||||||
|
export interface CompanyHeaderCardProps {
|
||||||
|
basicInfo: BasicInfo;
|
||||||
|
}
|
||||||
26
src/views/Company/components/CompanyOverview/utils.ts
Normal file
26
src/views/Company/components/CompanyOverview/utils.ts
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
// src/views/Company/components/CompanyOverview/utils.ts
|
||||||
|
// 公司概览格式化工具函数
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 格式化注册资本
|
||||||
|
* @param value - 注册资本(万元)
|
||||||
|
* @returns 格式化后的字符串
|
||||||
|
*/
|
||||||
|
export const formatRegisteredCapital = (value: number | null | undefined): string => {
|
||||||
|
if (!value && value !== 0) return "-";
|
||||||
|
const absValue = Math.abs(value);
|
||||||
|
if (absValue >= 100000) {
|
||||||
|
return (value / 10000).toFixed(2) + "亿元";
|
||||||
|
}
|
||||||
|
return value.toFixed(2) + "万元";
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 格式化日期
|
||||||
|
* @param dateString - 日期字符串
|
||||||
|
* @returns 格式化后的日期字符串
|
||||||
|
*/
|
||||||
|
export const formatDate = (dateString: string | null | undefined): string => {
|
||||||
|
if (!dateString) return "-";
|
||||||
|
return new Date(dateString).toLocaleDateString("zh-CN");
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user