vue+Echarts实现多设备状态甘特图

本文介绍了如何使用ApacheECharts在网页上创建动态甘特图,包括展示设备状态的矩形图、代码实现、数据处理方法以及注意事项,特别提到了数据加载后更新图表的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.效果图

2.代码

3.注意事项


Apache ECharts ECharts官网,可在“快速上手”处查看详细安装方法

1.效果图

可鼠标滚轮图表和拉动下方蓝色的条条调节时间细节哦

(注:最后一个设备没有数据,所以不显示任何矩形)

2.代码

根据每个设备的不同的状态,和对应状态的持续时间渲染矩形

html部分

<div id="myechart" :style="{ float: 'left', width: '100%', height: '100%' }"></div>

js部分

        // 甘特图 数据处理及挂载函数,可在获取到数据或者数据更新时调用
        drawEchart() {
            // this.newEqp为数据集,从后端获取
            var data = this.newEqp
            // 设定状态对应显示的颜色
            var types = [
                { name: '辅料待料', color: '#07c160' },
                { name: '下游待料', color: '#269abc' },
                { name: '上游待料', color: '#edb217' },
                { name: '其他停机', color: '#f68ba7' },
                { name: '故障停机', color: '#ff3374' },
                { name: '运行', color: '#66E656' },
            ];
            var startTime;
            var datatemp = [];
            // 处理时间,x轴需要月、日、时、分
            for (let i = 0; i < data.length; i++) {
                startTime = new Date(data[i].Last_Eqpt_Update_Time).getTime();
                var typeItem = types.filter(a => a.name == data[i].Eqpt_State_Dsc)[0];
                datatemp.push({
                    name: typeItem.name,
                    value: [
                        parseInt(data[i].Index),
                        new Date(data[i].Last_Eqpt_Update_Time).getTime(),
                        new Date(data[i].Eqpt_Update_Time).getTime(),
                        //data[i].RUNTIME_TIMESTAMP,
                        //data[i].END_TIME_TIMESTAM
### 使用 ECharts 创建柱状图 ECharts 是一个强大的 JavaScript 图表库,能够轻松创建各种类型的图表。对于柱状图而言,其基本结构相对简单。 ```javascript option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [{ data: [120, 200, 150, 80, 70, 110, 130], type: 'bar' }] }; ``` 这段代码定义了一个简单的柱状图,其中 `xAxis` 设置了类别型横轴并赋予具体分类名称;`yAxis` 定义数值型纵轴;而 `series` 则描述了一系列数据及其展示形式,在这里指定为 `'bar'` 表明这是一个柱状序列[^1]。 ### 如何使用 ECharts 绘制甘特图 尽管 ECharts 并未直接提供甘特图组件,但可以通过巧妙利用现有功能来构建这种特殊类型的图表。主要思路在于模拟甘特图特有的条形布局特性: - **stack 属性**:用于控制多个系列在同一位置上的堆叠行为; - **z 属性**:决定绘图顺序以及层叠效果。 下面给出一段基于上述原理制作的简易甘特图实例代码片段: ```javascript var option = { tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } }, legend: {}, toolbox: { feature: {} }, grid: {left:'3%',right:'4%',bottom:'3%',containLabel:true}, xAxis: [ { type: "time", splitLine:{show:false} } ], yAxis: [ { type: "category", boundaryGap : false, data: ["任务A", "任务B"] } ], series: [ { name:"计划", type:"bar", stack:"总量", barWidth:'50%', itemStyle:{ color:'#d90429' }, encode: { x: 'end_time', y: 'task_name' }, data:[ {name:'任务A', value:[new Date('2023-06-01'), new Date('2023-06-05')]}, {name:'任务B', value:[new Date('2023-06-06'), new Date('2023-06-10')]} ] }, // 可继续添加更多任务... ] }; ``` 此段脚本展示了如何设置时间作为 X 轴,并通过自定义颜色区分不同类型的任务区间。值得注意的是,每个任务项都由一对日期组成,分别代表该阶段活动的开始时间和结束时间[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值