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 相关文章推荐
jQuery焦点图切换特效插件封装实例
Aug 18 Javascript
Extjs表单常见验证小结
Mar 07 Javascript
使用jQuery获得内容以及内容的属性
Feb 26 Javascript
JS动态添加iframe的代码
Sep 14 Javascript
Bootstrap 实现查询的完美方法
Oct 26 Javascript
Require.JS中的几种define定义方式示例
Jun 01 Javascript
js字符串处理之绝妙的代码
Apr 05 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
Jan 06 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
Jan 26 Javascript
JavaScript中的this妙用实例分析
May 09 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
Aug 24 Javascript
openlayers实现地图弹窗
Sep 25 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写的获取各搜索蜘蛛爬行记录代码
2012/08/21 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
php curl操作API接口类完整示例
2019/05/21 PHP
window.open的功能全解析
2006/10/10 Javascript
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
2014/06/20 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
js智能获取浏览器版本UA信息的方法
2016/08/08 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
JavaScript设计模式之装饰者模式定义与应用示例
2018/07/25 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
this在vue和小程序中的使用详解
2019/01/28 Javascript
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
python统计cpu利用率的方法
2015/06/02 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
Pyecharts绘制全球流向图的示例代码
2020/01/08 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
没编程基础可以学python吗
2020/06/17 Python
一款纯css3实现的鼠标悬停动画按钮
2014/12/29 HTML / CSS
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
办公室内勤工作职责
2013/12/11 职场文书
优秀教师单行材料
2014/12/16 职场文书
2015年中学图书馆工作总结
2015/07/22 职场文书
Python机器学习之基础概述
2021/05/19 Python
python spilt()分隔字符串的实现示例
2021/05/21 Python
Java数据结构之链表相关知识总结
2021/06/18 Java/Android
Java SSH 秘钥连接mysql数据库的方法
2021/06/28 Java/Android