一、需求(环境vue2)
最近第一次接触到甘特图,原来项目上用的另一个插件,但样式不太美观并且和设计风格不搭,开始另寻出路。
二、尝试
1、echarts时间轴+表格混搭
开始按照UI分块,尝试用echarts配合表格来做。
1、对齐真的很头疼,而且对于2月份,表格是等分的……
2、用时间轴的话,不能堆叠,只能利用series覆盖,但对背景有要求的不友好
2、dhtmlX-gantt + iframe
同事推荐dhtmlx-gantt,且给了demo,很快就配好了。但众所周知,dhx pro版才能初始化实例,否则只有暴露的一个默认gantt
实例。为解决这个问题,经同事启发用iframe嵌套实现。
2.1 iframe通信
实际上,也是第一次用iframe去通信(虽然目前仅仅是同域的)。最开始学到了理论都是用hash、name或者localstorage。然后最新的postmessage很好用,但是兼容性差了点。经过同事指点,采用了以下方法
1)采用给iframe标签加属性传递数据
2)然后在iframe页面下通过frameElement
获取当前页面嵌入的iframe(就是当前页面所依赖的iframe dom)
注意的是传递的数据要JSON化,通过上面步骤就可以轻松获取到数据啦
2.2 样式调整
因为对皮肤切换要求比较高,所以无法用配置的我直接修改备份的css文件。
暂时注意到的影响是有一些事件,会重置手动添加的类:因为目前没有互动需求,故我屏蔽的该事件(从源头解决问题)
结尾
文档是英文的,故啃起来会费力一些。