狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

Frappe Gantt,一款神奇的 JavaScript 開源甘特圖庫

admin
2024年10月12日 10:26 本文熱度 497

和大家分享一款神奇的 JavaScript 開源甘特圖庫 —— Frappe Gantt。為 Web 應用提供項目規劃的可視化工具。它以用戶友好的界面和靈活的配置,助力項目團隊跟蹤進度和管理資源。支持拖動、縮放和任務依賴設置,易于集成并支持多語言,適合國際化使用。

Github Star 4.5k[1]

Frappe Gantt 是什么?

Frappe Gantt 是一個開源的 JavaScript 庫,用于在 Web 應用中生成和管理甘特圖。它提供了豐富的功能,如交互式操作、任務依賴關系、時間刻度等,并且易于集成到不同的 Web 應用中。Frappe Gantt 支持多種語言,并允許用戶自定義顏色、列、時間跨度以適應不同項目的需求。它適用于項目管理、軟件開發、事件規劃和生產調度等多個場景,幫助用戶有效地組織和監控項目進度。

核心特點

  • 交互式操作:用戶可以通過拖動、縮放等方式對甘特圖進行操作,以便更好地展現項目進度。

  • 任務依賴關系:支持設置任務之間的依賴關系,以便更好地管理項目進度。

  • 時間刻度:支持按天、周、月等不同時間跨度進行刻度展示,方便用戶選擇合適的時間范圍。

  • 美觀易用:采用現代 UI 設計,支持多種樣式和主題,易于使用和集成到現有項目中。

  • 多語言支持:方便國際化應用。

  • 開源社區支持:由于其開源性質,有一個活躍的開發者社區,提供持續的更新和支持。

快速開始

1. 創建項目 

按照慣例,使用 Vite 創建一個純 JavaScript 項目。并運行命令安裝 Frappe Gantt

npm install frappe-gantt --save

目錄結構如下:

在 html 引入 main.js 并添加 DOM 元素。

<body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
</body>

2. 配置 Frappe Gantt

在 JavaScript 文件中引入 Frappe Gantt 注意別忘了引入樣式,并創建容器元素、配置甘特圖數據、初始化 Gantt 對象,并將其附加到容器元素上。

// 導入樣式文件,為甘特圖提供必要的CSS樣式
import './style.css'
import 'frappe-gantt/dist/frappe-gantt.css'
// 導入Gantt類,這是創建甘特圖的主要類
import Gantt from 'frappe-gantt'
// 向頁面中添加一個SVG元素,這個元素將作為甘特圖的容器
document.querySelector('#app').innerHTML = `
  <svg id="gantt"></svg>
`

// 定義任務數組,每個任務包含id、名稱、開始日期、結束日期、進度和依賴關系
const tasks = [
  {
    id'任務一'// 任務的唯一標識符
    name'搜索資料'// 任務的名稱
    start'2024-07-21'// 任務的開始日期
    end'2024-07-23'// 任務的結束日期
    progress40// 任務的完成進度,以百分比表示
  },
  {
    id'任務二',
    name'文章寫作',
    start'2024-07-23',
    end'2024-07-25',
    progress30,
    dependencies'任務一' // 表示任務二依賴于任務一的完成
  },
  {
    id'任務三',
    name'排版發表',
    start'2024-07-26',
    end'2024-07-28',
    progress10,
    dependencies'任務二' // 表示任務三依賴于任務二的完成
  }
]

// 創建甘特圖實例,傳入SVG元素的ID、任務數組和配置選項
const gantt = new Gantt('#gantt', tasks, {
  header_height50// 頭部的高度
  column_width30// 列的寬度
  step24// 時間軸的步長,以小時為單位
  view_modes: ["Quarter Day""Half Day""Day""Week""Month"], // 視圖模式
  bar_height20// 任務條的高度
  bar_corner_radius3// 任務條角的圓角
  arrow_curve5// 依賴箭頭的彎曲程度
  padding18// 甘特圖的內邊距
  view_mode"Day"// 默認視圖模式
  date_format"YYYY-MM-DD"// 日期格式
  language"zh"// 甘特圖的語言設置
  custom_popup_htmlnull // 自定義彈出框的HTML,這里設置為null表示使用默認
})

通過屬性 language 設置語言,支持的 'es', 'it', 'ru', 'ptBr', 'fr', 'tr', 'zh', 'de', 'hu'。

3. 切換模式

Frapper Gantt 支持多種模式 Quarter Day, Half Day, Day, Week, Month。如果切換模式,可以通過方法 change_view_mode 實現。

gantt.change_view_mode('Week'

4.添加事件監聽器

// main.js
const gantt = new Gantt('#gantt', tasks, {
    // ...
  // 點擊任務時觸發
  on_click: (task) => {
    console.log("Click", task)
  },
  // 拖動日期
  on_date_change: (task, start, end) => {
    console.log("Date Change", task, start, end)
  },
  // 拖動進度
  on_progress_change: (task, progress) => {
    console.log("Progress Change", task, progress)
  },
  // 視圖模式切換
  on_view_change: (mode) => {
    console.log("View Change", mode)
  },
})

5.更新 tasks

// main.js
// 新增任務
const newTask = [
  {
    id'任務四',
    name'回復反饋',
    start'2024-07-28',
    end'2024-07-30',
    progress80,
    dependencies'任務三'
  }
]
// 添加到任務列表中
tasks.push(...newTask)
// 刷新任務
gantt.refresh(tasks)

6. 自定義 Popup

// main.js
const gantt = new Gantt('#gantt', tasks, {
   // ... 省略
  // custom_popup_html選項用于自定義任務的彈出窗口內容
  custom_popup_html:  (task) => {
    // task參數是一個任務對象,包含任務的詳細信息
    // 這里使用moment.js庫的format方法來格式化日期
    // 獲取任務的結束日期,并格式化為月和日
    const end_date = moment(task._end).format('MM月DD日')
    // 返回一個HTML字符串,定義彈出窗口的內容
    return `
        <div class="details-container">
          <h2>${task.name}</h2>
          <p>截止日期 ${end_date}</p>
          <p>完成進度 ${task.progress}% </p>
        </div>
      `

  },
})

添加 CSS 樣式配置,如下:

// style.css
.details-container {
  min-width160px;
  padding14px;
}
h2,p {
  margin0;
}
.details-container > h2 {
  font-size14px;
  font-weight700;
  margin-bottom10px;
}
.details-container > p {
  font-size14px;
  margin-bottom6px;
}

效果如下:

總結

我們探索了 Frappe Gantt —— 一款功能強大且用戶友好的 JavaScript 甘特圖庫。不僅提供了豐富的交互特性和靈活的配置選項,還支持多語言,使其成為國際化項目團隊的理想選擇。通過簡單的步驟,我們展示了如何快速集成Frappe Gantt 到 Web 應用中,并利用其核心功能來提升項目管理的效率。


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