feat: 接入Ts配置

This commit is contained in:
zdl
2025-11-14 16:15:29 +08:00
parent e23feb3c23
commit 48fdca203c
10 changed files with 663 additions and 31 deletions

68
src/types/api.ts Normal file
View File

@@ -0,0 +1,68 @@
/**
* API 相关类型定义
*
* 包含通用的 API 请求/响应类型、错误类型等
*/
/**
* API 响应基础结构
*/
export interface ApiResponse<T = any> {
code: number;
message: string;
data: T;
}
/**
* API 错误类型
*/
export interface ApiError {
code: number;
message: string;
details?: any;
}
/**
* 分页请求参数
*/
export interface PaginationParams {
page: number;
pageSize: number;
total?: number;
}
/**
* 分页响应数据
*/
export interface PaginatedResponse<T> {
list: T[];
pagination: {
current: number;
pageSize: number;
total: number;
totalPages: number;
};
}
/**
* 排序参数
*/
export interface SortParams {
field: string;
order: 'asc' | 'desc';
}
/**
* 过滤参数
*/
export interface FilterParams {
[key: string]: any;
}
/**
* 通用列表查询参数
*/
export interface ListQueryParams extends Partial<PaginationParams> {
sort?: SortParams;
filters?: FilterParams;
}

40
src/types/index.ts Normal file
View File

@@ -0,0 +1,40 @@
/**
* 全局类型定义汇总导出
*
* 使用方式:
* import { StockQuote, UserInfo, ApiResponse } from '@/types';
*/
// API 相关类型
export type {
ApiResponse,
ApiError,
PaginationParams,
PaginatedResponse,
SortParams,
FilterParams,
ListQueryParams,
} from './api';
// 股票相关类型
export type {
StockInfo,
StockQuote,
KLineData,
StockFinancials,
StockPosition,
Sector,
StockSearchResult,
} from './stock';
// 用户相关类型
export type {
UserInfo,
AuthInfo,
LoginParams,
RegisterParams,
UserPermissions,
UserSubscription,
UserAccount,
UserSettings,
} from './user';

103
src/types/stock.ts Normal file
View File

@@ -0,0 +1,103 @@
/**
* 股票相关类型定义
*
* 包含股票数据、行情、指标等类型
*/
/**
* 股票基础信息
*/
export interface StockInfo {
code: string; // 股票代码(如 '600000.SH'
name: string; // 股票名称
market: 'SH' | 'SZ' | 'BJ'; // 市场(上海/深圳/北京)
industry?: string; // 所属行业
concept?: string[]; // 所属概念
listingDate?: string; // 上市日期
}
/**
* 股票行情数据
*/
export interface StockQuote {
code: string; // 股票代码
name: string; // 股票名称
current: number; // 当前价格
open: number; // 开盘价
close: number; // 收盘价(前一交易日)
high: number; // 最高价
low: number; // 最低价
volume: number; // 成交量
amount: number; // 成交额
change: number; // 涨跌额
changePercent: number; // 涨跌幅(百分比)
turnoverRate?: number; // 换手率
timestamp: number; // 时间戳
}
/**
* K 线数据(日线/分钟线)
*/
export interface KLineData {
date: string; // 日期YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss
open: number; // 开盘价
high: number; // 最高价
low: number; // 最低价
close: number; // 收盘价
volume: number; // 成交量
amount?: number; // 成交额
}
/**
* 股票财务指标
*/
export interface StockFinancials {
code: string; // 股票代码
reportDate: string; // 报告期
revenue: number; // 营业收入
netProfit: number; // 净利润
eps: number; // 每股收益EPS
roe: number; // 净资产收益率ROE
pe: number; // 市盈率PE
pb: number; // 市净率PB
grossProfitMargin?: number; // 毛利率
debtToAssetRatio?: number; // 资产负债率
}
/**
* 股票持仓
*/
export interface StockPosition {
code: string; // 股票代码
name: string; // 股票名称
quantity: number; // 持仓数量
availableQuantity: number; // 可用数量T+1
costPrice: number; // 成本价
currentPrice: number; // 当前价
marketValue: number; // 市值
profit: number; // 盈亏金额
profitPercent: number; // 盈亏比例
}
/**
* 概念/行业板块
*/
export interface Sector {
id: string; // 板块 ID
name: string; // 板块名称
type: 'industry' | 'concept'; // 类型(行业/概念)
changePercent: number; // 板块涨跌幅
leadingStock?: string; // 领涨股
stockCount?: number; // 成分股数量
description?: string; // 描述
}
/**
* 股票搜索结果
*/
export interface StockSearchResult {
code: string;
name: string;
market: string;
industry?: string;
}

108
src/types/user.ts Normal file
View File

@@ -0,0 +1,108 @@
/**
* 用户相关类型定义
*
* 包含用户信息、认证、权限等类型
*/
/**
* 用户基础信息
*/
export interface UserInfo {
id: string | number; // 用户 ID
username: string; // 用户名
email?: string; // 邮箱
phone?: string; // 手机号
avatar?: string; // 头像 URL
nickname?: string; // 昵称
realName?: string; // 真实姓名
gender?: 'male' | 'female' | 'other'; // 性别
birthday?: string; // 生日
createdAt?: string; // 注册时间
updatedAt?: string; // 更新时间
}
/**
* 用户认证信息
*/
export interface AuthInfo {
token: string; // 访问令牌
refreshToken?: string; // 刷新令牌
expiresIn?: number; // 过期时间(秒)
tokenType?: string; // 令牌类型(如 'Bearer'
}
/**
* 登录请求参数
*/
export interface LoginParams {
username: string; // 用户名或手机号
password: string; // 密码
captcha?: string; // 验证码
remember?: boolean; // 记住登录状态
}
/**
* 注册请求参数
*/
export interface RegisterParams {
username: string; // 用户名
password: string; // 密码
confirmPassword?: string; // 确认密码
phone?: string; // 手机号
email?: string; // 邮箱
verificationCode?: string; // 短信验证码
agreeTerm?: boolean; // 是否同意条款
}
/**
* 用户权限
*/
export interface UserPermissions {
roles: string[]; // 角色列表
permissions: string[]; // 权限列表
}
/**
* 用户订阅信息
*/
export interface UserSubscription {
userId: string | number; // 用户 ID
plan: 'free' | 'basic' | 'pro' | 'enterprise'; // 订阅套餐
status: 'active' | 'expired' | 'cancelled'; // 状态
startDate: string; // 开始日期
endDate: string; // 结束日期
autoRenew?: boolean; // 是否自动续费
features?: string[]; // 可用功能列表
}
/**
* 用户资金账户
*/
export interface UserAccount {
userId: string | number; // 用户 ID
balance: number; // 可用余额
frozenBalance: number; // 冻结资金
totalAssets: number; // 总资产
marketValue: number; // 持仓市值
profit: number; // 盈亏金额
profitPercent: number; // 盈亏比例
currency: string; // 币种(默认 'CNY'
}
/**
* 用户设置
*/
export interface UserSettings {
userId: string | number; // 用户 ID
theme?: 'light' | 'dark'; // 主题
language?: 'zh-CN' | 'en-US'; // 语言
notifications?: {
email: boolean; // 邮件通知
sms: boolean; // 短信通知
push: boolean; // 推送通知
};
privacy?: {
showProfile: boolean; // 显示个人资料
showPositions: boolean; // 显示持仓
};
}