Reactを使って、kintoneにガントチャートとカンバンを表示しよう!
はじめに
タスクやプロジェクトの管理でkintoneを利用している方も多いと思います。
ガントチャートとカンバンの機能でkintoneのデータを可視化できたら、より効率的にタスクを管理できます。
今回の記事はReactを使って、ガントチャートとカンバンをkintoneに表示するカスタマイズを紹介します。
デモ環境
デモ環境で実際に動作を確認できます。
https://dev-demo.cybozu.com/k/339/
ログイン情報は cybozu developer networkデモ環境 で確認してください。
完成イメージ
今回のカスタマイズを適用することで、kintoneに登録したタスクのデータを、ガントチャートとカンバンの形式で表示させることができます。
できること
タスクをガントチャート形式で表示
レコード一覧画面では、すべてのタスクを表示します。
レコード詳細画面では、関連する親子タスクを表示します。
ガントチャートで表示したときの機能の詳細は、次のとおりです。
- タスクの「タイトル」「開始日付」「完了日付」などの情報をチャートに表示します。
- タスクの「タイプ」によって、異なる色で各タスクのチャートを表示します。
- 「親タスクID」フィールドの登録で、タスクの親子関係を設定できます。親子関係はガントチャートの矢印で表示されます。
- タスクのチャートをドラッグすることで、タスクの「開始日付」「完了日付」を変更できます。
- タスクのチャートをダブルクリックした場合、該当タスクのレコード詳細画面に遷移します。
タスクをカンバン形式で表示
レコード一覧画面では、すべてのタスクを表示します。
カンバンで表示したときの機能の詳細は、次のとおりです。
- タスクの「タイトル」「担当者」「開始日付」「完了日付」「タイプ」などの情報をカンバンのカードに表示します。
- 「ステータス」ごとに列を分けて、タスクを表示します。
- タスクのカードをドラッグすることで、タスクの「ステータス」(列)を変更できます。
- タスクの「タイプ」によって、異なる色で各タスクのラベルを表示します。
- タスクのカードをクリックした場合、該当タスクのレコード詳細画面に遷移します。
アプリの準備
下準備として、まずはガントチャートとカンバンを表示するための「タスク管理」アプリを作成しましょう。
「はじめから作成」でアプリを新規作成し、次のすべてのフィールドをアプリに追加してください。
| フィールドの種類 | フィールド名 | フィールドコード | 備考 |
|---|---|---|---|
| ドロップダウン | Type | type | タスクのタイプ |
| ドロップダウン | Priority | priority | タスクの優先度 |
| ドロップダウン | Status | status | タスクのステータス(カンバンの列) |
| 日付 | Start | startDate | タスクの開始時間 |
| 日付 | End | endDate | タスクの完了時間 |
| ユーザー選択 | Assignee | assignee | タスクの担当者 |
| 文字列(1行) | Summary | summary | タスクのタイトル |
| 文字列 (複数行) | Detail | detail | 詳細情報 |
| 数値 | Parent Task | parent | 親タスクID |
| 関連レコード一覧 | Subtasks | subtasks | 同じ親タスクのレコードを表示します。
|
| スペース | addSub | 子タスク 追加ボタン |
サンプルコード
サンプルコードは、GitHubに公開されています。
SAMPLE-ganttchart-kanban
サンプルコードのリポジトリをcloneし、「SAMPLE-ganttchart-kanban」フォルダーで次のコマンドを実行してください。
|
|
コマンドを実行したら、「dist」フォルダーの中にファイルが生成されます。
- 「js」以下
- app.js
- commons.js
- 「css」以下
- app.css
- commons.css
今回のカスタマイズの適用には、この4つのファイルを利用します。
「SAMPLE-ganttchart-kanban」の「src」フォルダー内に、ビルド前のファイルがあります。
ソースコードに変更を加えたい方は、そちらのファイルを編集し、ビルドしたうえで環境に適用してください。
カスタマイズの適用
「タスク管理」アプリの設定画面を開き、[設定]タブの[JavaScript / CSSでカスタマイズ]をクリックします。
以下の画像を参考に、先ほど生成されたJavaScript、CSSファイルを「PC用のJavaScriptファイル」、「PC用のCSSファイル」からアップロードします。
設定を保存したら、アプリを更新します。
動作確認
次のサンプルレコードのように、ガントチャートとカンバンに表示させたいデータを「タスク管理」アプリに登録します。
レコードを登録したら、レコードの一覧画面と詳細画面を表示します。
完成イメージ
のようにガントチャート、カンバンが表示されれば成功です!
サンプルコードの解説
サンプルコードの解説をしていきます。
今回のカスタマイズは、kintoneアプリにガントチャートとカンバンを表示する処理に加え、該当アプリのデータの取得/更新、表示を切り替えるボタンの生成などの処理があります。
今回のプログラムはReactとTypeScriptを利用しています。
ReactとTypeScriptの使い方について確認したい方は、次の記事を合わせて確認してください。
アプリのデータを取得/更新する処理、ボタンを生成する処理
KintoneAppRepository.tsx
実際にkintoneからレコードを取得、更新する処理を定義しています。
|
|
App.tsx
ガントチャート、カンバンの表示を切り替えるボタンを生成する処理です。
デフォルトでは、カンバンの画面を表示する設定になっています。
|
|
AddSub.tsx
子タスクのレコードを追加するボタンを生成する処理です。
|
|
index.tsx
画面にボタンやコンポーネントを表示します。
- レコード一覧画面
- ガントチャートとカンバンを切り替えるボタン
- レコード詳細画面
- 開いたレコードに関連する、親子タスクのガントチャート
- 子タスクを追加するボタン
|
|
ガントチャートとカンバンを生成する処理
GanttCharts.tsx
ガントチャートで表示するときのコンポーネントを定義しています。
このコンポーネントでは、次の処理ができます。
- レコードのデータをガントチャートで表示する。
- タスクをドラッグ&ドロップして、「開始日付」「完了日付」を更新する。
- タスクをダブルクリックして、レコードの詳細画面に遷移する。
|
|
GanttViewSwitcher.tsx
ガントチャートのViewModeを調整するラジオボタンを生成する処理です。
|
|
Kanban.tsx
カンバンで表示するときのコンポーネントを定義しています。
|
|
このコンポーネントでは、次の処理ができます。
- カンバンのカードをドラッグ&ドロップして、ステータスを更新する。
- カードをクリックして、レコードの詳細画面に遷移する。
Card.tsx
カンバンのカードを生成する処理と、各タスクの担当者の情報をカードに表示する処理です。
|
|
おわりに
今回の記事は、Reactを使ってガントチャートとカンバンをkintoneに表示するカスタマイズを紹介しました。
統計ダッシュボードや、レーダーチャートなどをkintoneに表示するカスタマイズ
を紹介する記事もありますので、興味ある方はぜひ確認してみてください。
この記事で利用しているライブラリ
-
gantt-task-react
- version 0.3.9
-
react-trello
- version 2.2.11
-
ant-design
- version 4.7.0
-
string-to-color
- version 2.2.2
-
@kintone/rest-api-client
- version 5.7.4
-
@kintone/dts-gen
- version 8.1.2
このTipsは、2025年7月版cybozu.comで動作を確認しています。
