超碰人人人人人,亚洲AV午夜福利精品一区二区,亚洲欧美综合区丁香五月1区,日韩欧美亚洲系列

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

[點晴永久免費(fèi)OA]WEB瀏覽器中用mermaid.js純JS畫甘特圖

admin
2023年4月15日 10:45 本文熱度 2554

今天簡單總結(jié)一下 mermaid 的甘特圖(gantt chart)語法, 因為昨天感覺mermaid 官網(wǎng)的 gantt 文檔[1] 只給了幾個例子 不太適合上手.

mermaid.js

mermaid.js[2]是一個用來在網(wǎng)頁中生成圖表的庫. 使用簡單的語法來描述圖表, 通過 Javascript 渲染.

支持生成多種類型的圖表, 例如流程圖/時序圖/甘特圖等等.

Mermaid.js 的目標(biāo)是讓生成圖表變得簡單而且易于使用, 讓用戶能夠更專注于圖表的內(nèi)容和信息的傳遞而不是圖表的排版.

它的理念和 markdown/graphviz 一樣, 用代碼代替富文本(word/powerpoint/畫圖工具), 這樣做的好處有:

  • 文件超小(只是文本文件), 打開和修改很方便
  • 生成的圖片是 SVG, 不但美觀還可以無損縮放
  • 方便版本管理(git)

之前我試過 mermaid 的流程圖(flow chart), 感覺不如 graphviz 靈活(雖然語法更簡潔). 但是 mermaid 被許多 markdown 編輯器支持, 而且覆蓋了很多類型的圖表, 所以相當(dāng)值得一試.

有幾個方式可以使用 mermaid:

  • mermaid.js 官方在線編輯器[3]
  • 筆記軟件obsidian[4]默認(rèn)支持 mermaid 語法的代碼塊嵌入 markdown 文件中
  • 使用VSCode 編輯器[5], 只需要安裝mermaid VSCode 插件[6]就可以使用了

甘特圖

Gantt chart (甘特圖) 是一種用來展示項目進(jìn)度和任務(wù)分配的圖表.
它常常被用來展示在一個時間范圍內(nèi)任務(wù)的開始時間, 持續(xù)時間以及前置任務(wù)之間的關(guān)系.
Gantt chart 可以幫助團(tuán)隊成員更好地理解項目進(jìn)度.并有效地協(xié)調(diào)任務(wù)之間的依賴關(guān)系.

=> 用來做時間線圖表剛剛好

mermaid 甘特圖語法

Mermaid.js 使用類似于 markdown 的語法來生成 Gantt 圖. 可以劃分不同章節(jié), 每個章節(jié)包含若干任務(wù)信息.

關(guān)鍵字有:

  • title: 圖表標(biāo)題
  • section: 章節(jié)
    • 章節(jié)下包含若干任務(wù), 每行一個任務(wù)信息
  • excludes: 排除若干日期, 可以是特定的日期(yyyy-mm-dd 格式), 也可以是星期幾或"weekends"
    • 排除的日期會顯示為灰色

描述任務(wù)起止時間

"任務(wù)" 在這里指一項事件或者工程, 表現(xiàn)為甘特圖中的一條.

mermaid 每一行內(nèi)容作為一個任務(wù)(或者事件)的描述, 大概語法為:

<task_name> : [<id>,] [<modifier(s)>,], <start_time>, <end_time|duration>

描述任務(wù)的開始和截止時間, 既可以都用實際的時間(start_time, end_time), 也可以用開始時間+進(jìn)行長度(start_time, duration).
如果不給出開始時間, 默認(rèn)從上一個任務(wù)結(jié)束開始算起.

雖然下面的例子都是以日期為單位, 其實它也支持小時/分鐘的時間段, 比如可以用甘特圖畫一天的工作日志.

修飾符(modifier)

描述任務(wù)除了給出開始/結(jié)束的時間外, 還可以進(jìn)行修飾修改其顯示效果.

任務(wù)修飾符:

  • milestone: 里程碑
  • crit: 關(guān)鍵 -- 任務(wù)顏色變?yōu)榧t色
  • done: 已完成任務(wù) -- 任務(wù)變?yōu)榛疑?/section>
  • active: 進(jìn)行中的任務(wù)
  • 另外這些關(guān)鍵字可以進(jìn)行組合, 用逗號分隔.

任務(wù)依賴關(guān)系

由于甘特圖用于展示項目進(jìn)度和任務(wù)分配, 對任務(wù)之間的依賴關(guān)系也有支持.
可以在冒號后面給任務(wù)起一個 id, 然后用after關(guān)鍵字描述任務(wù)之間的依賴關(guān)系.

以房地產(chǎn)開發(fā)為例, 幾個環(huán)節(jié)(拿地/設(shè)計/施工/裝修/宣傳/銷售)的依賴關(guān)系可以這樣搞定:

完整示例代碼

gantt
 dateFormat  YYYY-MM-DD
 axisFormat %m/%d
 tickInterval 1week
 title       Mermaid甘特圖實例
 excludes    weekends


 section 任務(wù)描述
   %% 開始/結(jié)束時間
   task1: 2022-01-01, 2022-01-09
   %% 開始時間+長度
   task2: 2022-01-11, 30d
   %% 只提供長度 默認(rèn)開始時間為上一行任務(wù)的結(jié)束時間
   task3: 30d


 section 修飾符
   task1-無修飾 : 2022-01-01, 7d
   task2-已完成('done') : done, 2022-01-02, 10d
   task3-關(guān)鍵任務(wù)('crit') : crit, 2022-01-10, 10d
   task4-進(jìn)行中('active) : active, 2022-01-20, 10d
   %% 里程碑 -- 注意里程碑也需要提供結(jié)束時間(可以設(shè)置duration=0d)
   task5-里程碑 : milestone, 2022-01-30, 0d
   %% 修飾符可以組合使用
   task6-組合(done+crit) : done, crit, 2022-01-15, 7d
   task6-組合(active+crit) : active, crit, 7d


 section 任務(wù)依賴
   %% 給任務(wù)起一個代號("nd"), 方便依賴時引用
   拿地: nd, 2022-01-05, 8d
   設(shè)計: sj, 2022-01-01, 14d
   %% 依賴多個任務(wù)時, 空格分開
   施工: sg, after nd sj, 30d
   裝修: zx, after sg, 10d
   宣傳: xc, after nd, 20d
   銷售: after xc, 30d

參考資料

[1]

mermaid官網(wǎng)的gantt文檔: https://mermaid.js.org/syntax/gantt.html

[2]

mermaid.js: https://mermaid.js.org/

[3]

mermaid.js官方在線編輯器: https://mermaid.live/

[4]

obsidian: https://obsidian.md/

[5]

VSCode編輯器: https://code.visualstudio.com/

[6]

mermaid VSCode插件: https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid


該文章在 2023/4/15 10:45:24 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊、財務(wù)費(fèi)用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved