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 相关文章推荐
JavaScript CSS修改学习第三章 修改样式表
Feb 19 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
Apr 12 Javascript
JS 获取select(多选下拉)中所选值的示例代码
Aug 02 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
Sep 28 Javascript
JS提交form表单实例分析
Dec 10 Javascript
javascript计算对象长度的方法
Oct 25 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
Feb 24 Javascript
解决vue 路由变化页面数据不刷新的问题
Mar 13 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
Mar 13 Javascript
深入理解Antd-Select组件的用法
Feb 25 Javascript
微信小程序拖拽排序列表的示例代码
Jul 08 Javascript
通过实例了解Render Props回调地狱解决方案
Nov 04 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
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
一个php作的文本留言本的例子(六)
2006/10/09 PHP
php Ajax乱码
2008/04/09 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
2009/05/27 PHP
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
2009/09/30 PHP
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
php强制运行广告的方法
2014/12/01 PHP
PHP如何读取由JavaScript设置的Cookie
2017/03/22 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
thinkPHP5框架导出Excel文件简单操作示例
2018/08/03 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
广告切换效果(缓动切换)
2009/05/27 Javascript
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
AJAX分页的代码(后台asp.net)
2011/02/14 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
document.addEventListener使用介绍
2014/03/07 Javascript
jQuery中noconflict函数的实现原理分解
2015/02/03 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
2018/07/23 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
2018/09/14 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
python实现BackPropagation算法
2017/12/14 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
Python3.7实现验证码登录方式代码实例
2020/02/14 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
企业优秀员工事迹材料
2014/05/28 职场文书
综治工作汇报材料
2014/10/27 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书