在 NocoBase 中集成 Frappe Gantt 甘特图插件需要开发自定义插件并注册相关区块。以下是具体步骤和实现方案:
一、前置条件
- 已搭建 NocoBase 开发环境(参考
yarn dev
启动项目); - 具备基础的 React 开发能力,熟悉 NocoBase 插件架构。
二、集成 Frappe Gantt
步骤 1:创建自定义插件
通过 NocoBase 的插件管理器初始化插件结构:
yarn pm create @your-project/plugin-frappe-gantt
创建完成后,生成插件目录 packages/plugins/@your-project/plugin-frappe-gantt
。
步骤 2:引入 Frappe Gantt 资源
- 下载 Frappe Gantt 文件
从 GitHub 获取frappe-gantt.js
和frappe-gantt.css
,存放至插件目录的src/client
下(例如src/client/gantt
文件夹)。 修改导出方式
在frappe-gantt.js
文件末尾添加导出语句:export default Gantt;
步骤 3:创建甘特图组件
在 src/client
下新建 React 组件 GanttBlock.tsx
:
import React from 'react';
import Gantt from './gantt/frappe-gantt';
import './gantt/frappe-gantt.css';
export const GanttBlock = () => {
// 示例数据配置
const tasks = [
{ id: 'Task 1', name: '任务示例', start: '2025-05-21', end: '2025-05-25' }
];
return (
<div>
<svg id="gantt-container"></svg>
<script>
{new Gantt("#gantt-container", tasks)}
</script>
</div>
);
};
步骤 4:注册区块与插件
在 src/client/index.tsx
中注册区块并导出插件:
import { Plugin } from '@nocobase/client';
import { GanttBlock } from './GanttBlock';
class FrappeGanttPlugin extends Plugin {
async load() {
this.app.addProvider(GanttBlock); // 注册为全局组件
this.app.schemaInitializerManager.add('gantt', {
title: '甘特图',
Component: GanttBlock,
});
}
}
export default FrappeGanttPlugin;
三、编译与启用插件
编译插件
执行构建命令生成独立插件包:yarn build --scope @your-project/plugin-frappe-gantt
- 部署插件
将编译后的插件文件夹复制到storage/plugins
目录下,或通过插件管理界面直接上传。 - 启用区块
在 NocoBase 界面中新建页面,通过区块选择器添加「甘特图」区块。
四、注意事项
- 兼容性问题:Frappe Gantt 的 CSS 和 JS 需避免与 NocoBase 现有样式冲突,必要时添加命名空间隔离;
- 数据绑定:需通过 NocoBase API 动态获取任务数据,参考
useCollection
钩子实现数据联动。
通过以上步骤,即可在 NocoBase 中实现 Frappe Gantt 甘特图功能。
引用链接:
1.【教程】第一章:界面和安装介绍——初识 NocoBase - NocoBase
2.Nocobase快速上手 - 用插件添加页面 - CSDN博客
3.Nocobase快速上手 - 开发第一个插件 - CSDN博客
4.nocobase甘特图插件怎么使用?nocobase甘特图区块使用教程说明(附案例) - 大壮同学
5.简化插件的添加和更新流程 - 博客园
6.frappe gantt开源js甘特图插件在Vue3.0中的应用 - 博客园
7.NocoBase: NocoBase 是一个极易扩展的开源无代码和低代码开发平台。 - gitee.com
8.开源无代码/低代码平台 NocoBase 1.0.0-alpha.15: 新增插件、改进「配置操作」交互 - CSDN博客
9.开源无代码 / 低代码平台 NocoBase 0.20:支持多数据源 - 博客园
10.开源项目 Frappe Gantt 使用教程 - CSDN博客
11.NocoBase 1.4.0 正式版发布 - NocoBase
12.如何使用 NocoBase 构建应用程序? - NocoBase
13.nocobase docker 安装 - 51CTO博客
14.10 个最受开发者喜爱的开源 ERP / CRM 项目(GitHub Star 榜单) - 专业技术博客社区
15.nocobase-plugin-ding-talk - www.npmjs.com
16.⭐️ GitHub 上星星数量前 11 的开源 CRM 项目 - 思否开发者社区
17.README.zh-CN.md · flankiee/NocoBase - Gitee.com - gitee.com
18.README.zh-CN.md · ace_rd/NocoBase - Gitee.com - gitee.com
19.NocoBase is an extensibility-first, open-source no-code/low-code platform for building business applications and enterprise solutions. - GitHub
20.fglterry/nocobase - gitee.com
评论区(暂无评论)