当前位置: 首页 > news >正文

VUE使用echarts编写甘特图(组件)

VUE使用echarts编写甘特图(组件)

直接上代码

<template><div ref="chartContainer" class="chart-container" style="width: 100%; height: 600px;"></div>
</template><script>
import * as echarts from 'echarts'export default {name: 'CustomGanttChart',data() {return {chartInstance: null,chartData: [{ category: '任务一', start: '2024/09/01 09:00', end: '2024/09/03 17:00', status: '可用' },{ category: '任务一', start: '2024/09/04 09:00', end: '2024/09/05 17:00', status: '故障' },{ category: '任务一', start: '2024/09/06 09:00', end: '2024/09/08 17:00', status: '可用' },{ category: '任务二', start: '2024/09/09 09:00', end: '2024/09/11 17:00', status: '故障' },{ category: '任务二', start: '2024/09/12 09:00', end: '2024/09/15 17:00', status: '可用' },{ category: '任务三', start: '2024/09/16 09:00', end: '2024/09/18 17:00', status: '可用' },{ category: '任务三', start: '2024/09/19 09:00', end: '2024/09/21 17:00', status: '故障' },{ category: '任务三', start: '2024/09/22 09:00', end: '2024/09/25 17:00', status: '可用' }]}},mounted() {this.initChart()window.addEventListener('resize', this.chartInstance.resize)},methods: {initChart() {const chartContainer = this.$refs.chartContainerthis.chartInstance = echarts.init(chartContainer)this.updateChart()},updateChart() {const colors = ['#2EC7C9']  // 只有一个颜色const states = ['可用']     // 只有一个状态名称const option = {color: colors,tooltip: {formatter: function (params) {return params.name + ': ' + params.value[1] + ' ~ ' + params.value[2]}},legend: {data: states,top: '1%',selectedMode: false,textStyle: {color: '#000'}},grid: {left: '3%',right: '3%',top: '10%',bottom: '15%',containLabel: true},xAxis: {type: 'time',interval: 3600 * 12 * 1000,axisLabel: {formatter: function (value) {const date = new Date(value)return `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}\n${date.getDate()}/${date.getMonth() + 1}`},rotate: 45 // 旋转标签}},yAxis: {type: 'category',data: [...new Set(this.chartData.map(data => data.category))]},dataZoom: [{type: 'inside',xAxisIndex: 0,start: 0,end: 100},{type: 'slider',xAxisIndex: 0,start: 0,end: 100}],series: [{name: states[0],type: 'bar',stack: 'status',data: [] // Empty series for legend},{type: 'custom',renderItem: function (params, api) {const categoryIndex = api.value(0)const start = api.coord([api.value(1), categoryIndex])const end = api.coord([api.value(2), categoryIndex])const height = 24return {type: 'rect',shape: echarts.graphic.clipRectByRect({x: start[0],y: start[1] - height / 2,width: end[0] - start[0],height: height}, {x: params.coordSys.x,y: params.coordSys.y,width: params.coordSys.width,height: params.coordSys.height}),style: api.style()}},encode: {x: [1, 2],y: 0},data: this.chartData.map(item => ({itemStyle: {color: item.status === '可用' ? colors[0] : 'transparent' // 设置可用为颜色,故障为透明},name: item.status,value: [item.category, item.start, item.end]}))}]}this.chartInstance.setOption(option)}}
}
</script><style scoped>
.chart-container {width: 100%;height: 600px;
}
</style>

ByeBye

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java重修笔记 第五十三天 坦克大战(一)绘图入门
  • Android - NDK:jni传递数组参数,获取数组的返回值
  • 【C++ 面试 - 新特性】每日 3 题(九)
  • Web3 项目安全手册
  • BEV学习---LSS-2
  • oceanbase(ob)基于备份集搭建备租户方式
  • Linux中常见的Docker问题及解决方法
  • 【基础知识复习 - 随机练习题】
  • Flask 第三课 -- 第一个应用
  • C++设计模式——Memento备忘录模式
  • 谷粒商城-P125【gulimall-search】:更改 elasticsearch 版本不生效
  • 【电子通识】半导体工艺——刻蚀工艺
  • C语言指针详解与应用
  • HTML/CSS/JS学习笔记 Day4(HTML--C3 表格)
  • AI预测地球未来,温室效应失控?地球变金星?
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Java,console输出实时的转向GUI textbox
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Java面向对象及其三大特征
  • php的插入排序,通过双层for循环
  • Redis中的lru算法实现
  • Redux系列x:源码分析
  • 当SetTimeout遇到了字符串
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 检测对象或数组
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 那些被忽略的 JavaScript 数组方法细节
  • 浅谈web中前端模板引擎的使用
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • #### go map 底层结构 ####
  • #NOIP 2014# day.1 T2 联合权值
  • #微信小程序:微信小程序常见的配置传旨
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (30)数组元素和与数字和的绝对差
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (java)关于Thread的挂起和恢复
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (函数)颠倒字符串顺序(C语言)
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (算法)N皇后问题
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转)四层和七层负载均衡的区别
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • (自用)仿写程序
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET WPF 抖动动画
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net反编译工具
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题