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 相关文章推荐
很可爱的输入框
Aug 03 Javascript
IE事件对象(The Internet Explorer Event Object)
Jun 27 Javascript
js调用webservice中的方法实现思路及代码
Feb 25 Javascript
使用非html5实现js板连连看游戏示例代码
Sep 22 Javascript
jQuery中closest()函数用法实例
Jan 07 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
Oct 14 Javascript
详解js的事件代理(委托)
Dec 22 Javascript
js实现tab切换效果
Feb 16 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
Jul 21 Javascript
react-native使用react-navigation进行页面跳转导航的示例
Sep 07 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
Sep 30 Javascript
JavaScript事件冒泡机制原理实例解析
Jan 14 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 similar_text 字符串的相似性比较函数
2010/05/26 PHP
第二章 PHP入门基础之php代码写法
2011/12/30 PHP
解析dedeCMS验证码的实现代码
2013/06/07 PHP
PHP图片上传代码
2013/11/04 PHP
php中stdClass的用法分析
2015/02/27 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
JavaScript中的闭包原理分析
2010/03/08 Javascript
Javascript 面向对象 命名空间
2010/05/13 Javascript
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
如何让div span等元素能响应键盘事件操作指南
2012/11/13 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
微信小程序 radio单选框组件详解及实例代码
2017/01/10 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
JavaScript this在函数中的指向及实例详解
2019/10/14 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
详解Python中映射类型(字典)操作符的概念和使用
2015/08/19 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
python实现函数极小值
2019/07/10 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
以下的初始化有什么区别
2013/12/16 面试题
如何写出高质量、高性能的MySQL查询
2014/11/17 面试题
《我的伯父鲁迅先生》教学反思
2014/02/12 职场文书
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
电子工程专业毕业生求职信
2014/03/14 职场文书
承诺书的格式范文
2014/03/28 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
贷款承诺书范文
2014/05/19 职场文书
运动会广播稿200字
2014/10/18 职场文书
少先队工作总结2015
2015/05/13 职场文书
新手初学Java List 接口
2021/07/07 Java/Android
python和anaconda的区别
2022/05/06 Python