VUE+elementui组件在table-cell单元格中绘制微型echarts图


Posted in Javascript onApril 20, 2020

需求效果图示例

VUE+elementui组件在table-cell单元格中绘制微型echarts图

实际完成效果图

VUE+elementui组件在table-cell单元格中绘制微型echarts图**

代码实现

注:table表格为二次封装的子组件
-在table表格中 根据 scope.$index动态设置元素的id ,便于指定单元格的echarts初始化;

-在单元格中触发一个方法,传入当前的scope.row数据或者指定其他数据,并且传入 scope.$index 以及一个字符串便于识别当前是哪条数据的charts

-在方法中绘制echarts**

<el-table-column align="center">
    	 <template slot="header" slot-scope="scope">
      <div v-if="tableTitle == 'sale'">
       <p v-if="dateType != '1'">
        近{{ dateType }}天累计
        <br />
        / 日均销量
       </p>
       <p v-if="dateType == '1'">昨日累计销量</p>
      </div>
      <div v-if="tableTitle == 'fav'">
       <p v-if="dateType != '1'">
        近{{ dateType }}天累计
        <br />
        / 日均收藏量
       </p>
       <p v-if="dateType == '1'">昨日累计收藏</p>
      </div>
     </template>
     <div slot-scope="scope" style="white-space:nowrap;">
      <span class="xiao-red-color">{{ realRowName(scope.row, '0') || '-' }}</span>
      <span v-if="dateType != '1'" class="xiao-red-color">
       /
       {{ isNaN(realRowName(scope.row, '0')) ? '-' : (realRowName(scope.row, '0') / (parseInt(dateType) - calcShelfTime(scope.row.real_created_time, '0') < 0 ? parseInt(dateType): calcShelfTime(scope.row.real_created_time, '0'))).toFixed(0)}}
      </span>
     </div>
    </el-table-column>
    <el-table-column label="每日销量趋势" align="center" v-if="dateType != '1'">
     <template slot-scope="scope">
      {{ drawEcharts(scope.row, scope.$index, 'sale') }}
      <div :id="`tiger-sale-trend-index` + scope.$index" class="tiger-trend-charts"></div>
     </template>
    </el-table-column>

绘制echarts的方法(数据仅为示例,实际开发根据传进来的scope.row数据)注意此处初始化echarts对象时采用VUE的this.$nextTick方法,以防获取不到未渲染的节点元素。

drawEcharts() {
   //绘制趋势echarts
   // console.log(arguments)
   let option = {
    tooltip: {
     trigger: 'axis'
    },
    // legend: {
    //  data: ['每日30天销量分析']
    // },
    grid: {
     left: '10px',
     right: '30px',
     top: '40px',
     bottom: '10px',
     containLabel: true
    },
    xAxis: {
     show: false,
     type: 'category',
     boundaryGap: false,
     data: ['03-21', '03-22', '03-23', '03-24', '03-25', '03-26', '03-27']
    },
    yAxis: {
     show: false,
     type: 'value'
    },
    series: [
     {
      name: '每日30天销量分析',
      type: 'line',
      data: [120, 500, 101, 86, 173, 230, 6]
     }
    ]
   };
   let chartId = 'tiger-' + arguments[2] + '-trend-index' + arguments[1];
   this.$nextTick(() => {
    let myChart = this.echarts.init(document.getElementById(chartId), 'macarons');
    myChart.setOption(option);
    myChart.resize();
   });
  },

AND 不要忘记设置echarts的高度,否则一辈子也出不来图形(示例,根据实施开发调整)

&-frame {
  display: flex;
  flex-flow: column nowrap;
  justify-content: space-between;

  .price-bar {
   color: red !important;
  }
  .tiger-trend-charts {
   height: 60px;
   min-width: 100px;
  }
 }

到此这篇关于VUE+elementui组件在table-cell单元格中绘制微型echarts图的文章就介绍到这了,更多相关VUE elementui 单元格echarts图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
理解JSON:3分钟课程
Oct 28 Javascript
基于jQuery的倒计时实现代码
May 30 Javascript
javascript时间函数基础介绍
Mar 28 Javascript
关于JS中的闭包浅谈
Aug 23 Javascript
JS实现单行文字不间断向上滚动的方法
Jan 29 Javascript
headjs实现网站并行加载但顺序执行JS
Nov 29 Javascript
原生JS实现《别踩白块》游戏(兼容IE)
Feb 20 Javascript
通俗易懂地解释JS中的闭包
Oct 23 Javascript
Vue+webpack项目基础配置教程
Feb 12 Javascript
JS实现监控微信小程序的原理
Jun 15 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
Sep 10 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
Feb 24 Javascript
Vue的全局过滤器和私有过滤器的实现
Apr 20 #Javascript
深入浅析JavaScript中的in关键字和for-in循环
Apr 20 #Javascript
vue实现购物车功能(商品分类)
Apr 20 #Javascript
vue实现淘宝购物车功能
Apr 20 #Javascript
javascript利用键盘控制小方块的移动
Apr 20 #Javascript
vue实现购物车的监听
Apr 20 #Javascript
详解微信小程序工程化探索之webpack实战
Apr 20 #Javascript
You might like
防止用户利用PHP代码DOS造成用光网络带宽
2011/03/01 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
2011/04/12 PHP
php代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
php实现的双向队列类实例
2014/09/24 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
Javascript this指针
2009/07/30 Javascript
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
javascrip关于继承的小例子
2013/05/10 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
2015/02/05 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
JS通过位运算实现权限加解密
2018/08/14 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
Python实现扩展内置类型的方法分析
2017/10/16 Python
Django 重写用户模型的实现
2019/07/29 Python
python定时任务 sched模块用法实例
2019/11/04 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
校园招聘策划书
2014/01/09 职场文书
大学生赌博检讨书
2014/09/22 职场文书
优秀员工推荐材料
2014/12/20 职场文书
安全先进个人材料
2014/12/29 职场文书
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python
vue封装数字翻牌器
2022/04/20 Vue.js