一個基于vue和element-ui的甘特圖組件,gantt、項目管理。

#?wl-gantt

#?簡介

??目前市面上最有名的幾個gantt插件占據江湖了非常久遠的時間,它們古老又強大。?

????但無一例外的是:它們收費或極其難用并且依賴非常古老的技術,其中有些技術現在入行的新手甚至從未聽聞。??

??????【jQueryGantt】【plusgantt】【dhtmlx】??

????????不可否認它們都非常的強大,不管是從性能還是功能性。但是大多的業務需求并不需要如此龐然大物才能滿足需求。????

??????????另一方面古老的技術稀缺的文檔又讓開發者無從下手(收費版甚至不提供文檔,而你的老板又肯定不會提供錢買下授權)。

??????????????`【wl-gantt】`出現的背景就是筆者在公司的Vue項目中使用B***Gantt插件所受到的巨大傷害:基于extjs(對于17年入行的我來說沒聽過)、不提供開發文檔、沒有中文資料、源碼加密,開發全靠打印實例找屬性。?

????????????wl-gantt是一個基于Vue及elementUi的gantt甘特圖插件,是一個896的碼奴在僅有的剩余的1中擠時間開發而成。???

??????????????它目前僅提供了很少的功能:自動檢查源數據是否符合project任務安排規則,結束后開始的前置任務規則。yearAndmonth的gantt時間跨度。????

????????????????但它絕對簡單易用,并且高度可配置。??

????????????????它的實際年齡才只有3天,它正在我和所有熱愛開源事業的朋友們手中逐漸長大。???

????????????????下個階段,它將學會:????

????????????????1.?yearAndMonth、monthAndDay、yearAndWeek時間跨度配置?【已完成,month及week格子起止位置待精確化】

????????????????2.?內置前置任務選擇器???

????????????????3.?整合樹表全選聯動功能

????????????????4.?任務連接線???

????????????????5.?任務自定義懸浮提示???

????????????????6.?和所有你覺得需要用到的需求?

##?[在線演示](https://hql7.github.io/)

##?[GitHub](https://github.com/hql7)

###?更新說明

??>?2019-12-3?更新gantt。1表格支持[el-table](https://element.eleme.cn/#/zh-CN/component/table)大部分`Attributes`和`Events`,詳細列表見下方;2名稱列增加`nameFormatter`格式化內容函數支持;3日期列改為點擊顯示編輯輸入框的形式。??

??>?2019-12-2?更新gantt.1日期支持`?yearAndMonth、monthAndDay、yearAndWeek`類型,詳見`版本記錄1`;2修復部分時間更改情況不回調的問題。

#####?Demo

![demo](public/demo.png)

####?已支持el-table參數及事件列表

```

????:fit="fit"

????:size="size"

????:border="border"

????:data="selfData"

????:stripe="stripe"

????:height="height"

????:row-key="rowKey"

????:row-style="rowStyle"

????:class="dateTypeClass"

????:cell-style="cellStyle"

????:max-height="maxHeight"

????:tree-props="selfProps"

????:current-row-key="rowKey"

????:row-class-name="rowClassName"

????:cell-class-name="cellClassName"

????:expand-row-keys="expandRowKeys"

????:header-row-style="headerRowStyle"

????:header-cell-style="headerCellStyle"

????:default-expand-all="defaultExpandAll"

????:header-row-class-name="headerRowClassName"

????:highlight-current-row="highlightCurrentRow"

????:header-cell-class-name="headerCellClassName"

????@header-contextmenu="handleHeaderContextMenu"

????@selection-change="handleSelectionChange"

????@row-contextmenu="handleRowContextMenu"

????@current-change="handleCurrentChange"

????@cell-mouse-enter="handleMouseEnter"

????@cell-mouse-leave="handleMouseLeave"

????@expand-change="handleExpandChange"

????@filter-change="handleFilterChange"

????@cell-dblclick="handleCellDbClick"

????@header-click="handleHeaderClick"

????@row-dblclick="handleRowDbClick"

????@sort-change="handleSortChange"

????@cell-click="handleCellClick"

????@select-all="handleSelectAll"

????@row-click="handleRowClick"

????@select="handleSelect"

```

##?快速上手

`npm?i?wl-gantt?--save`?


??或??


??`npm?i?wl-gantt?-S`?

`import?wlGantt?from?'wl-gantt'`??

`import?"wl-gantt/lib/wl-gantt.css"`??

`Vue.use(wlGantt)`??

##?文檔

###??Attributes

??|?序號?|?參數?|?說明?|?類型?|?可選值?|?默認值?|?注意?|

??|?----?|?----?|?----?|?----?|?----?|?----?|?----?|

??|?1?|?data?|?數據?|?Array?|?-?|?[]?|?-?|

??|?2?|?dateType?|?gantt圖區日期表頭類型?|?String?|?monthAndDay、yearAndMonth、yearAndDay?|?yearAndMonth?|?-?|

??|?3?|?treeProps?|?樹表配置項?|?Object?|?-?|?-?|?見下方props?|

??|?4?|?startDate?|?項目開始時間?|?String、Object?|?必填?|-|?注意:不要求任務時間線在項目開始時間內,并且當任務時間超出項目時間時,將更新項目時間?|

??|?5?|?endDate?|?項目結束時間?|?String、Object?|?必填?|?-?|?注意:不要求任務時間線在項目開始時間內,并且當任務時間超出項目時間時,將更新項目時間?|

??|?6?|?checkSource?|?是否檢查源數據符合規則?|?Boolean?|?-?|?-?|?檢查源數據為自動修改不符合規范的時間為符合規則的期望值?|

??|?7?|?treatIdAsIdentityId?|?是否使用id來作為自增id?|?Boolean?|?-?|?false?|?如果是請保證id本來就簡短的數字型而不是較長的字符串或guid?|

??|?8?|?autoGanttDateType?|?自動調整gantt時間跨度類型,具體規則見`版本記錄1`?|?Boolean?|?-?|?true?|?-?|

??|?9?|?nameFormatter?|?名稱列格式化內容函數?|?Function?|?-?|?-?|?Function(row,?column,?cellValue,?index)?|

??|?10?|?其他Table?Attributes?|?[文檔地址](https://element.eleme.cn/#/zh-CN/component/table)?|?-?|?-?|?-?|?-?|

###?props

|?序號?|?參數?|?說明?|?默認值?|

|?----?|?----?|?----?|?----?|

|?1?|?children?|?數據的子集children字段,表示為樹表?|?children?|

|?2?|?name?|?用于顯示名字的字段?|?name?|

|?3?|?id?|?每條數據的id,必須唯一?|?id?|

|?4?|?pid?|?每條數據的父節點id字段?|?pid?|

|?5?|?startDate?|?每條數據的開始時間字段?|?startDate?|

|?6?|?endDate?|?每條數據的結束時間字段|?endDate?|

|?7?|?identityId?|?數據自增id?|?identityId?|

|?8?|?parents?|?自增父級id樹,逗號分隔?|?parents?|

|?9?|?pre?|?前置任務字段,字段值應是前置任務的id?|?pre?|

|?10?|?hasChildren?|?指定哪些行是包含子節點?|?hasChildren?|

###?Events

??|?序號?|?事件名?|?說明?|?回調參數?|

??|?----?|?----?|?----?|?----?|

??|?1?|?timeChange?|?當任務時間發生更改時觸發?|?function(row)?依次為當前行數據?|

??|?2?|?其他Table?Events?|?[文檔地址](https://element.eleme.cn/#/zh-CN/component/table)?|?-?|?-?|

###?slot

??|?序號?|?名字?|?說明?|

??|?----?|?----?|?----?|

??|?1?|?prv?|?用于插入列表中名稱前的列,如不生效需加`fixed`?|

??|?2?|?-?|?插入在默認列及甘特圖之間的列?|

###?版本記錄

>?2.?0.1.6版本?更新gantt。1表格支持[el-table](https://element.eleme.cn/#/zh-CN/component/table)大部分`Attributes`和`Events`;2名稱列增加`nameFormatter`格式化內容函數支持;3日期列改為點擊顯示編輯輸入框的形式。注意樹表時`rowKey`參數必須傳,默認為`id`。

>?1.?0.1.5版本?更新gantt日期支持`?yearAndMonth、monthAndDay、yearAndWeek`類型,并自動調整,規則為:大于12個月的自動調整為`yearAndMonth`,3個月到12個月之間的,自動調整為`yearAndWeek`,?2個月及以內的自動調整為`monthAndDay`。新增參數`autoGanttDateType`可以管理是否自動調整,如果要關閉自動調整請保證時間跨度盡可能的少,否則會有明顯的性能問題。修復部分時間更改情況不回調的問題。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,572評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,071評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 175,409評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,569評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,360評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,895評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,979評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,123評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,643評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,559評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,742評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,250評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,981評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,363評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,622評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,354評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,707評論 2 370

推薦閱讀更多精彩內容