@fish-render/gantt
v0.1.7
Published
Fish Render gantt component for Vue 3
Maintainers
Readme
@fish-render/gantt
Vue 3 gantt 组件,提供现代化的用户界面体验。
安装
npm install @fish-render/gantt
# 或
yarn add @fish-render/gantt
# 或
pnpm add @fish-render/gantt使用方法
方式一:自动引入样式(推荐)
当你引入组件时,样式会自动加载:
<template>
<Gantt>
<!-- 组件内容 -->
</Gantt>
</template>
<script setup>
import { Gantt } from '@fish-render/gantt'
// 样式会自动加载,无需额外引入
</script>方式二:手动引入样式
如果你想要手动控制样式的引入时机:
<template>
<Gantt>
<!-- 组件内容 -->
</Gantt>
</template>
<script setup>
import { Gantt } from '@fish-render/gantt'
</script>
<style lang="scss">
/* 手动引入样式(SCSS) */
@import '@fish-render/gantt/styles';
</style>方式三:在 main.js 中全局引入
import { createApp } from 'vue'
import App from './App.vue'
import { Gantt } from '@fish-render/gantt'
import '@fish-render/gantt/styles'
const app = createApp(App)
app.component('Gantt', Gantt)
app.mount('#app')方式四:使用插件方式
import { createApp } from 'vue'
import App from './App.vue'
import GanttPlugin from '@fish-render/gantt'
const app = createApp(App)
app.use(GanttPlugin)
app.mount('#app')示例
基础用法
<template>
<Gantt>
<!-- 组件内容 -->
</Gantt>
</template>Gantt
甘特图组件。
基本用法
<Gantt :tasks="tasks" view="hour" :unitWidth="80" :rowHeight="32" :barHeightRatio="0.7" :height="360" />Props
tasks: Task[]任务数据groups?: Group[]分组数据(可选)groupField?: string | ((task: Task) => string | number)分组字段或函数start?: Date | number开始时间(不传则从任务中推断)end?: Date | number结束时间(不传则从任务中推断)view?: 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year'视图类型,默认hourscale?: number缩放比例,默认1viewConfig?: { unitWidth?: { hour?: number }, minTickInterval?: { hour?: string | number } }视图配置unitWidth?: number单位宽度(优先级高于viewConfig.unitWidth.hour)minTickInterval?: string | number最小刻度间隔(优先级高于viewConfig.minTickInterval.hour)tickFormat?: (date: Date, view: string) => string刻度文本格式化rowHeight?: number行高,默认32barHeightRatio?: number任务条高度比例,默认0.7height?: string | number组件高度(例如360或'360px')。若不设置,则使用默认高度并可通过style覆盖。class?: string额外类名style?: Record<string, string | number>行内样式
说明
- 当设置了
height时,组件会将其应用到根容器上,并保持内部header置顶、viewport可滚动。 - 网格与表头均为 Canvas 绘制,纵向滚动由容器控制。
类型定义
// Gantt 组件 Props
interface GanttProps {
// 组件属性类型定义
}样式自定义
组件使用 CSS 类名,你可以通过覆盖这些类名来自定义样式:
/* gantt 组件样式 */
.fish-gantt {
/* 自定义组件样式 */
}注意事项
- 浏览器兼容性:组件使用了现代 CSS 特性,确保在现代浏览器中使用
- 样式加载:样式是全局的,会在应用启动时自动加载
- Tree Shaking:如果你使用 Tree Shaking,建议使用手动引入样式的方式
- TypeScript 支持:组件完全支持 TypeScript,提供完整的类型定义
许可证
MIT License
