vue +echart 双圆角双环形图

记录工作,有需要类似效果,可以自取

主要是利用极坐标轴和bar,以及roundCap.用type:'pie’环形图也是可以,但是我想要是类似进度条的效果,还有圆角效果,用‘pie’来有点麻烦,(也可能是我了解不够多)

达到效果如图:(渐变色,圆角环形图,双环形图)

 

代码:

<template>
    <div>
        <div style="width: 240px;height:280px;float:left;" ref="chart"></div>
    </div>
</template>

<script>
export default {
    name: 'ringChart',
    data() {
        return {
            max: 16,
        };
    },
    methods: {
        initCharts() {
            let myLine = this.$echarts.init(this.$refs.chart);
            myLine.setOption({
                angleAxis: {
                    clockwise: true, // 是否按顺时针,默认顺时针(true)。
                    axisLine: {
                        show: false
                    },
                    axisLabel: {
                        show: false
                    },
                    splitLine: {
                        show: false
                    },
                    axisTick: {
                        show: false
                    },
                    min: 0,
                    max: this.max, //一圈的刻度值
                    startAngle: 270 //初始角度
                },
                radiusAxis: {
                    type: 'category',
                    data: ['3', '4'], // 极坐标径向轴中的类目,这也是两个环的关键!!!!
                    z: 10,
                    axisLine: {
                        show: false
                    },
                    axisTick: {
                        show: false
                    },
                    axisLabel: {
                        show: false
                    },
                },
                legend: {
                    icon: 'rect',//图例文字块的样式
                    show: true,
                    // data: ['A', 'B', 'C'],
                    bottom: '-6',
                    left: 'left',
                    textStyle: {
                        color: '#00FCF9',//图例文字的颜色
                    },
                },
                polar: {
                    center: ['50%', '40%'],//图形位置,类似margin或padding
                    radius: ['48%', '75%']//图形大小
                },
                series: [
                    {
                        type: 'bar',
                        data: [0, 12],
                        itemStyle: {//渐变色关键代码
                            color: new this.$echarts.graphic.LinearGradient(0, 1, 0, 0, [
                                { offset: 0, color: '#29D1D2' },
                                { offset: 1, color: '#0795DF' },
                            ])
                        },
                        barWidth: 16,//这边特别注意:我是用来调两个圆环的间距的,和polar.radius 一起来调
                        coordinateSystem: 'polar',
                        name: '科员及以下:905人',
                        roundCap: true,
                        stack: 'a',
                        z: 2,
                    }, {
                        type: 'bar',
                        data: [0, this.max - 8],
                        itemStyle: { color: 'rgba(55, 74, 132, 0.39)' },
                        coordinateSystem: 'polar',
                        roundCap: true,
                        stack: 'a',
                        z: 1
                    }, {
                        type: 'bar',
                        data: [2, 0],
                        itemStyle: {
                            color: new this.$echarts.graphic.LinearGradient(0, 1, 0, 0, [
                                { offset: 0, color: '#F05749' },
                                { offset: 1, color: '#CA3628' },
                            ])
                        },
                        coordinateSystem: 'polar',
                        name: '科级:100人',
                        stack: 'a',
                        roundCap: true,
                        z: 4,
                    }, {
                        type: 'bar',
                        data: [2, 0],
                        itemStyle: {
                            color: new this.$echarts.graphic.LinearGradient(0, 1, 0, 0, [
                                { offset: 0, color: '#4F33D3' },
                                { offset: 1, color: '#B48EF1' },
                            ])
                        },
                        coordinateSystem: 'polar',
                        name: '处级:31人',
                        stack: 'a',
                        roundCap: true,
                        z: 3
                    }, {
                        type: 'bar',
                        data: [2, 0],
                        coordinateSystem: 'polar',
                        itemStyle: {
                            color: new this.$echarts.graphic.LinearGradient(0, 1, 0, 0, [
                                { offset: 0, color: '#ED325F' },
                                { offset: 1, color: '#FF84BB' },
                            ])
                        },
                        name: '厅级:4人',
                        stack: 'a',
                        roundCap: true,
                        z: 2,
                    }, {
                        type: 'bar',
                        data: [10, 0],
                        itemStyle: {
                            color: '#1E2E61'
                        },
                        coordinateSystem: 'polar',
                        stack: 'a',
                        roundCap: true,
                        z: 1,
                    }],
            });
        }
    },
    mounted() {
        this.initCharts();
    },
};
</script>

注意:要是先引入echarts,

//main.js

import "../src/style/dark.css";
import * as echarts from "echarts";

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue是一种流行的JavaScript框架,用于构建用户界面。ECharts是一种用于创建交互性和可视化表的表库。在生产环境中,可以使用VueECharts来创建一个生产任务看板。 首先,我们可以使用Vue框架来构建用户界面。通过Vue的组件化架构,我们可以将任务看板拆分为多个可重用的组件,例如任务列表、进度条、功能按钮等。这样可以使代码更可维护和可扩展。同时,Vue提供了响应式的数据绑定机制,可以实时更新任务看板的数据,并与后端进行数据交互。 然后,我们可以使用ECharts表库来创建可视化表,以展示任务看板上的数据。例如,可以使用饼来显示任务的进度分布,柱状来展示各个任务的完成情况,折线来展示任务的趋势等。ECharts提供了丰富的表类型和交互功能,可以根据实际需求进行灵活配置。 在整个过程中,我们可以利用Vue的生命周期钩子函数来实现数据的获取、更新和渲染。当用户发起操作时,可以通过Vue的事件机制来触发相应的业务逻辑。例如,当用户点击任务列表中的某个任务时,可以发送请求获取该任务的详细信息,并在界面上展示出来。 最后,为了提高用户体验,我们可以将任务看板进行排版和样式的优化,使其在不同设备和浏览器上都能良好展示。同时,可以增加一些交互功能,例如拖拽任务、快速搜索任务等,以提高用户的生产效率。 总结而言,通过使用VueECharts,我们可以实现一个功能齐全、交互性强的生产任务看板。它可以直观展示任务的状态和进度,并提供方便的操作和管理功能,帮助用户更好地进行生产任务的监控和调度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值