
npm install dhtmlx-gant
<div ref="gantt" class="left-container" />
// 高度设置
.left-container {
height: calc(100vh - 50px - 90px );
}
import gantt from 'dhtmlx-gantt'
import 'dhtmlx-gantt/codebase/dhtmlxgantt.css'
gantt.i18n.setLocale("cn")
gantt.init(this.$refs.gantt)
gantt.parse(this.tasks)
gantt.config.start_date = data.start_date;
gantt.config.end_date = data.end_date;
gantt.config.initial_scroll = false;
gantt.config.split = true;
gantt.config.date_format = "%Y-%m-%d";
gantt.config.drag_move = false
gantt.config.drag_links = false
gantt.config.drag_resize =false
gantt.config.show_progress = false;
gantt.config.columns = [
{
name: "name",
tree: true,
width: '200',
resize: true,
label: '策划名称',
template: function (obj) { return obj.name },
align: "center"
onrender: function(task, node) {
if(task.addNum && task.addNum > 0){
node.parentNode.style.height = `${ 35 * task.addNum }px`
node.childNodes[node.childNodes.length - 1].style.lineHeight = `${ 35 * task.addNum }px`
}else{
node.style.display = 'none'
}
},
}
]
gantt.config.scales = [
{unit: "day", step: 1, format: "%m-%d"}
];
gantt.plugins({
tooltip: true,
quick_info: true
});
gantt.attachEvent("onTaskDblClick", function (id, e) {
return false;
});
onTaskClick
gantt.attachEvent("onQuickInfo",function(taskId){
let item = gantt.getTask(taskId)
if(item.isNotClick){
gantt.ext.quickInfo.hide();
}else{
gantt.ext.quickInfo.show(taskId);
}
});
gantt.$click.buttons.delete = (id)=>{
}
gantt.$click.buttons.edit = (id)=>{
}
reload() {
gantt.clearAll();
gantt.parse(this.tasks);
gantt.render();
},
gantt.config.columns = [
{
name: "name",
tree: true,
width: '200',
resize: true,
label: '策划名称',
template: function (obj) { return obj.name },
align: "center",
onrender: function(task, node) {
if(task.addNum && task.addNum > 0){
node.parentNode.style.height = `${ 35 * task.addNum }px`
node.childNodes[node.childNodes.length - 1].style.lineHeight = `${ 35 * task.addNum }px`
}else{
node.style.display = 'none'
}
},
}
]