feat: 创建类型定义文件
This commit is contained in:
122
src/components/StockChart/types/chart.types.ts
Normal file
122
src/components/StockChart/types/chart.types.ts
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
/**
|
||||||
|
* KLineChart 图表类型定义
|
||||||
|
*
|
||||||
|
* 适配 klinecharts@10.0.0-beta1
|
||||||
|
* 文档: https://github.com/klinecharts/KLineChart
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* K 线数据点(符合 KLineChart 10.0 规范)
|
||||||
|
*
|
||||||
|
* 注意: 10.0 版本要求 timestamp 为数字类型(毫秒时间戳)
|
||||||
|
*/
|
||||||
|
export interface KLineDataPoint {
|
||||||
|
/** 时间戳(毫秒) */
|
||||||
|
timestamp: number;
|
||||||
|
/** 开盘价 */
|
||||||
|
open: number;
|
||||||
|
/** 最高价 */
|
||||||
|
high: number;
|
||||||
|
/** 最低价 */
|
||||||
|
low: number;
|
||||||
|
/** 收盘价 */
|
||||||
|
close: number;
|
||||||
|
/** 成交量 */
|
||||||
|
volume: number;
|
||||||
|
/** 成交额(可选) */
|
||||||
|
turnover?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 后端原始数据格式
|
||||||
|
*
|
||||||
|
* 支持多种时间字段格式(time/date/timestamp)
|
||||||
|
*/
|
||||||
|
export interface RawDataPoint {
|
||||||
|
/** 时间字符串(分时图格式:HH:mm) */
|
||||||
|
time?: string;
|
||||||
|
/** 日期字符串(日线格式:YYYY-MM-DD) */
|
||||||
|
date?: string;
|
||||||
|
/** 时间戳字符串或数字 */
|
||||||
|
timestamp?: string | number;
|
||||||
|
/** 开盘价 */
|
||||||
|
open: number;
|
||||||
|
/** 最高价 */
|
||||||
|
high: number;
|
||||||
|
/** 最低价 */
|
||||||
|
low: number;
|
||||||
|
/** 收盘价 */
|
||||||
|
close: number;
|
||||||
|
/** 成交量 */
|
||||||
|
volume: number;
|
||||||
|
/** 均价(分时图专用) */
|
||||||
|
avg_price?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图表类型枚举
|
||||||
|
*/
|
||||||
|
export type ChartType = 'timeline' | 'daily';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图表配置接口
|
||||||
|
*/
|
||||||
|
export interface ChartConfig {
|
||||||
|
/** 图表类型 */
|
||||||
|
type: ChartType;
|
||||||
|
/** 显示技术指标 */
|
||||||
|
showIndicators: boolean;
|
||||||
|
/** 默认技术指标列表 */
|
||||||
|
defaultIndicators?: string[];
|
||||||
|
/** 图表高度(px) */
|
||||||
|
height?: number;
|
||||||
|
/** 是否显示网格 */
|
||||||
|
showGrid?: boolean;
|
||||||
|
/** 是否显示十字光标 */
|
||||||
|
showCrosshair?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件标记接口
|
||||||
|
*
|
||||||
|
* 用于在 K 线图上标记重要事件发生时间点
|
||||||
|
*/
|
||||||
|
export interface EventMarker {
|
||||||
|
/** 唯一标识 */
|
||||||
|
id: string;
|
||||||
|
/** 时间戳(毫秒) */
|
||||||
|
timestamp: number;
|
||||||
|
/** 标签文本 */
|
||||||
|
label: string;
|
||||||
|
/** 标记位置 */
|
||||||
|
position: 'top' | 'middle' | 'bottom';
|
||||||
|
/** 标记颜色 */
|
||||||
|
color: string;
|
||||||
|
/** 图标(可选) */
|
||||||
|
icon?: string;
|
||||||
|
/** 是否可拖动(默认 false) */
|
||||||
|
draggable?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DataLoader 回调参数(KLineChart 10.0 新增)
|
||||||
|
*/
|
||||||
|
export interface DataLoaderCallbackParams {
|
||||||
|
/** K 线数据 */
|
||||||
|
data: KLineDataPoint[];
|
||||||
|
/** 是否还有更多数据 */
|
||||||
|
more: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DataLoader getBars 参数(KLineChart 10.0 新增)
|
||||||
|
*/
|
||||||
|
export interface DataLoaderGetBarsParams {
|
||||||
|
/** 回调函数 */
|
||||||
|
callback: (data: KLineDataPoint[], options?: { more: boolean }) => void;
|
||||||
|
/** 范围参数(可选) */
|
||||||
|
range?: {
|
||||||
|
from: number;
|
||||||
|
to: number;
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user