自主封装Echarts水球图

项目中需要用到动态波纹的水球图,在网站上没找到合适的,于是自己封装了一个,需要的自取。

var path ='path://M82.6,85.5c0-1.1,0.4-2.1,1.4-2.9s2-1.3,3.1-1.3l19.5,0c1.1,0,2,0.4,2.9,1.3c0.9,0.9,1.3,1.8,1.3,2.9l0.1,54.1c0,1-0.4,1.9-1.3,2.8c-0.9,0.9-1.8,1.3-2.9,1.3l-19.5,0c-1.1,0-2.2-0.4-3.1-1.3c-0.9-0.9-1.4-1.7-1.4-2.8L82.6,85.5z M91.5,80.5z';
option = {
    backgroundColor:"rgba(0, 0, 0,)",
     grid: { y:0,x:0,x2:-100,y2:-100},
    series: [
        {
        type: 'liquidFill',
        // center: center,
        data:[0.42,0.4],
        radius: '45%',
        waveLength: '99%',
        waveHeight: '10',
        amplitude: 10,
        outline: {show: false},
        backgroundStyle: {
 
              color: {
                  type:'radial',
                    x: 0.5, 
                    y: 0.5,
                    r: 1.1,
                    colorStops: [
                        {
                            offset: 0,
                            color: 'rgba(105, 158, 230, 0.1)',
                        },
                        {
                            offset: 0.75,
                            color: 'rgba(105, 158, 230, 0.2)',
                        },
                        {
                            offset: 1,
                            color: 'rgba(105, 158, 230, 0.25)',
                        },
                    ],
                    globalCoord: false,
                },
            borderColor: 'rgba(105, 158, 230, 0.25)',
            borderWidth: 1,
        },
        shape: path,
       color: ['rgba(255, 255, 255, 0.2)',
              {
                type: "linear",
                x: 0,
                y: 1,
                x2: 0,
                y2: 0,
                colorStops: [
                  {
                    offset: 1,
                    color: ["rgba(249, 250, 251, 1)"], // 0% 处的颜色
                  },
                  {
                    offset: 0,
                    color: ["rgba(134, 160, 196, 1)"], // 100% 处的颜色
                  },
                ],
                global: false, // 缺省为 false
              },
            ],
        label: {normal: {formatter:'',}}
     }
    ],
};

效果展示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 封装 Echarts 的方法: 1. 安装 Echarts 使用 npm 安装 Echarts: ``` npm install echarts --save ``` 2. 创建 Vue 组件 创建一个 Vue 组件,例如 `Echarts.vue`。 3. 引入 Echarts 在 `Echarts.vue` 中引入 Echarts: ``` import echarts from 'echarts' ``` 4. 初始化 Echarts 在 `mounted` 钩子函数中初始化 Echarts: ``` mounted() { this.initChart() }, methods: { initChart() { const container = this.$refs.container this.chart = echarts.init(container) } } ``` 5. 配置 Echarts 在 `initChart` 方法中配置 Echarts: ``` initChart() { const container = this.$refs.container this.chart = echarts.init(container) const option = { // 配置项 } this.chart.setOption(option) } ``` 6. 监听组件大小变化 为了保证 Echarts 表在组件大小变化时能够自适应,需要监听组件大小变化,并重新渲染 Echarts 表。 ``` mounted() { this.initChart() window.addEventListener('resize', this.resizeHandler) }, beforeDestroy() { window.removeEventListener('resize', this.resizeHandler) }, methods: { resizeHandler() { this.chart.resize() } } ``` 7. 封装成可复用的组件 将以上步骤封装成一个可复用的 Vue 组件,供其他组件使用。例如: ``` <template> <div ref="container" style="width: 100%; height: 300px;"></div> </template> <script> import echarts from 'echarts' export default { name: 'Echarts', props: { option: { type: Object, required: true } }, mounted() { this.initChart() window.addEventListener('resize', this.resizeHandler) }, beforeDestroy() { window.removeEventListener('resize', this.resizeHandler) }, methods: { initChart() { const container = this.$refs.container this.chart = echarts.init(container) this.chart.setOption(this.option) }, resizeHandler() { this.chart.resize() } } } </script> ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值