UNPKG

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
/** * 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;