feat: 接入Ts配置
This commit is contained in:
68
src/types/api.ts
Normal file
68
src/types/api.ts
Normal 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
40
src/types/index.ts
Normal 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
103
src/types/stock.ts
Normal 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
108
src/types/user.ts
Normal 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; // 显示持仓
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user