@happy-table/vue3
Version:
A high-performance Vue 3 table component for B2B systems with TypeScript support
72 lines (71 loc) • 2.43 kB
TypeScript
/**
* 序号工具函数
* 用于表格行序号的计算和管理
*/
export interface SequenceConfig {
/** 起始序号 */
startIndex?: number;
/** 分页配置 */
pagination?: {
enabled: boolean;
continuous: boolean;
currentPage?: number;
pageSize?: number;
};
/** 自定义格式化函数 */
format?: (sequence: number, rowData?: any, paginationState?: any) => string | number;
}
export interface PaginationState {
currentPage: number;
pageSize: number;
total: number;
}
/**
* 计算序号的核心纯函数
*
* @param absoluteDataIndex - 数据在原始数组中的绝对索引(0开始)
* @param config - 序号配置
* @param paginationState - 分页状态(可选)
* @param rowData - 行数据(可选,用于格式化函数)
* @returns 计算后的序号(可能是数字或格式化后的字符串)
*/
export declare function calculateSequenceNumber(absoluteDataIndex: number, config?: SequenceConfig, paginationState?: PaginationState, rowData?: any): string | number;
/**
* 批量计算多个序号
* 用于虚拟滚动等需要批量计算的场景
*
* @param startAbsoluteIndex - 起始绝对索引
* @param count - 需要计算的数量
* @param config - 序号配置
* @param paginationState - 分页状态
* @param rowDataArray - 行数据数组(可选)
* @returns 序号数组
*/
export declare function calculateSequenceNumbers(startAbsoluteIndex: number, count: number, config?: SequenceConfig, paginationState?: PaginationState, rowDataArray?: any[]): (string | number)[];
/**
* 根据可见索引计算绝对索引
* 这个函数封装了虚拟滚动的索引转换逻辑
*
* @param visibleIndex - 在可见区域中的索引
* @param virtualState - 虚拟滚动状态
* @returns 绝对数据索引
*/
export declare function calculateAbsoluteIndex(visibleIndex: number, virtualState?: {
visibleStart: number;
visibleEnd: number;
}): number;
/**
* 创建简化的序号配置
* 用于快速创建常用的序号配置
*/
export declare function createSequenceConfig(options: {
startIndex?: number;
enablePagination?: boolean;
continuousPagination?: boolean;
formatter?: (seq: number) => string | number;
}): SequenceConfig;
/**
* 验证序号配置
* 用于开发时的配置验证
*/
export declare function validateSequenceConfig(config: SequenceConfig): boolean;