jordium-gantt-vue3
Version:
A Vue 3 Gantt chart component for project management, task scheduling, resource planning, calendar, resource usage and timeline visualization.
74 lines (73 loc) • 1.97 kB
TypeScript
/**
* Canvas 工具函数 - 支持 uni-app 和 Web 环境
*/
declare global {
interface Window {
uni?: {
createCanvasContext: (canvasId: string) => CanvasRenderingContext2D & {
draw?: () => void;
};
};
}
}
/**
* Canvas 上下文类型(兼容 uni-app 和 Web)
*/
export type CanvasContext = CanvasRenderingContext2D & {
draw?: () => void;
};
/**
* Canvas 初始化配置
*/
export interface CanvasInitOptions {
/** Canvas 元素引用(Web 环境) */
canvas: HTMLCanvasElement | null;
/** Canvas ID(uni-app 环境) */
canvasId: string;
/** 显示宽度 */
width: number;
/** 显示高度 */
height: number;
/** Canvas 上下文配置(仅 Web 环境) */
contextOptions?: CanvasRenderingContext2DSettings;
}
/**
* Canvas 缓存管理器
*/
export declare class CanvasContextManager {
private cachedCtx;
private cachedWidth;
private cachedHeight;
private isUniApp;
constructor();
/**
* 检测是否在 uni-app 环境
*/
get isUniAppEnvironment(): boolean;
/**
* 获取或初始化 Canvas 上下文
* @param options 初始化配置
* @returns Canvas 上下文,失败返回 null
*/
getContext(options: CanvasInitOptions): CanvasContext | null;
/**
* 清空画布
*/
clear(width: number, height: number): void;
/**
* 触发 uni-app 画布渲染(仅 uni-app 环境需要)
*/
draw(): void;
/**
* 重置缓存(例如 Canvas 元素被销毁时)
*/
reset(): void;
}
/**
* 检测是否在 uni-app 环境
*/
export declare function isUniAppEnvironment(): boolean;
/**
* 创建 Canvas 上下文(简化版 API)
*/
export declare function createCanvasContext(canvas: HTMLCanvasElement | null, canvasId: string, width: number, height: number, contextOptions?: CanvasRenderingContext2DSettings): CanvasContext | null;