dhtmlxGantt 甘特图 一行展示多条任务类型

效果如图:

后台拿到数据 处理之后如图:

含义:

如上图所示, 如果一行需要展示多个 需要给父数据的那条添加render:split属性,

子数据的parent为父数据的Id即可

切记 父数据的id 别为0 为0 时 会出现错乱

因为有些小伙伴提出分段展示的数据结构还是有点问题,下面展示一个完整的demo

<template>

<div id="gantt" ref="gantt"></div>

</template>

<script>

import { gantt } from 'dhtmlx-gantt';

import "dhtmlx-gantt/codebase/dhtmlxgantt.css";

export default {

name: 'SpeadDomeGantt',

data() {

return {

};

},

mounted() {

this.init()

},

methods: {

init(){

gantt.config.xml_date = "%Y-%m-%d %H:%i";

gantt.config.scale_height = 50 //设置甘特图的表头高度

//鼠标移入展示信息

gantt.plugins({

tooltip: true

})

//时间展示 2021-10-11 07:22

gantt.templates.tooltip_date_format = gantt.date.date_to_str("%Y-%m-%d %H:%i")

//鼠标移入展示信息

gantt.config.readonly = true //甘蔗图只读属性

gantt.config.round_dnd_dates = false //将任务开始时间和结束时间自动"四舍五入'

gantt.config.root_id = "root"

//添加taba栏

gantt.config.columns = [

{name:"name", label:"名称", align: 'center', width: 120},

{name:"age", label:"年龄", align: 'center', width: 120}

]

//禁用拖拽项 拖拽类型

gantt.attachEvent("onBeforeTaskDrag", function(id, mode, e){

var modes = gantt.config.drag_mode;

switch (mode){

case modes.move:

break;

case modes.resize:

break;

case modes.progress:

break;

}

})

gantt.init(this.$refs.gantt)

//模拟数据

let datalist = [

//第一组 //整条数据需要带上render属性 里面多段的数据parent执行整条的id

{

id: 1, name: '小花', age: 18, render: 'split', text: ''

},

{

id: 100, parent: 1, start_date: '2022-08-19 07:20:00', end_date: '2022-08-20 20:00:00',

text: '玩游戏', color: '#F56C6C'

},

{

id: 101, parent: 1, start_date: '2022-08-20 23:20:00', end_date: '2022-08-21 20:00:00',

text: '事情一', color: '#67C23A'

},

{

id: 102, parent: 1, start_date: '2022-08-22 07:20:00', end_date: '2022-08-22 20:00:00',

text: '事情二', color: '#E6A23C'

},

{

id: 103, parent: 1, start_date: '2022-08-23 07:20:00', end_date: '2022-08-24 20:00:00',

text: '事情三', color: '#909399'

},

//第二组

{

id: 2, name: '小草', age: 16, render: 'split', text: ''

},

{

id: 104, parent: 2, start_date: '2022-08-19 02:20:00', end_date: '2022-08-20 18:00:00',

text: '玩游戏', color: '#E6A23C'

},

{

id: 105, parent: 2, start_date: '2022-08-20 22:10:00', end_date: '2022-08-21 10:00:00',

text: '事情四', color: '#909399'

},

{

id: 106, parent: 2, start_date: '2022-08-21 17:20:00', end_date: '2022-08-22 20:00:00',

text: '事情五', color: '#67C23A'

},

{

id: 107, parent: 2, start_date: '2022-08-23 00:20:00', end_date: '2022-08-23 20:00:00',

text: '事情六', color: '#F56C6C'

},

]

gantt.parse({data: datalist})

},

},

};

</script>

<style scoped>

#gantt {

height: 120px;

}

</style>

效果图如下:

ok, 有任何问题请联系我, 尽量给出详细的解答!

相关推荐
菜鸟国国36 分钟前
一步到位学 Compose + Paging3:从 0 到 1 实现分页加载(超详细新手教程)
android
TO_ZRG42 分钟前
Android Service基础
android
ECT-OS-JiuHuaShan2 小时前
功夫不负匠心人,渡劫代谢舞沧桑
android·开发语言·人工智能·算法·机器学习·kotlin·拓扑学
ZC跨境爬虫3 小时前
移动端爬虫工具Fiddler完整配置流程:PC+安卓模拟器全覆盖,零基础一次配置成功
android·前端·爬虫·测试工具·fiddler
巴德鸟3 小时前
DaVinci 常用技巧 关键帧 自动字幕 追踪 音频 冻结帧 快捷键 多轨道字幕 扩充边缘
android·编辑器·音视频·视频·davinci·davin
学习使我健康4 小时前
Android 广播介绍详情
android·开发语言·kotlin
dalancon5 小时前
AudioTrack Start 执行流程分析
android
众少成多积小致巨5 小时前
Android 初始化语言入门
android·linux·c++
Carson带你学Android5 小时前
谁才是地表最强 Android Agent 大模型?Google官方测评来了!
android·openai