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 相关文章推荐
js禁止页面使用右键(简单示例代码)
Nov 13 Javascript
为指定的元素添加遮罩层的示例代码
Jan 15 Javascript
JS动态修改表格cellPadding和cellSpacing的方法
Mar 31 Javascript
jQuery实现复选框批量选择与反选的方法
Jun 17 Javascript
jquery mobile界面数据刷新的实现方法
May 28 Javascript
ES6中Math对象的部分扩展
Feb 20 Javascript
AngularJS 验证码60秒倒计时功能的实现
Jun 05 Javascript
Vue2几种常见开局方式详解
Sep 09 Javascript
JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】
Dec 12 Javascript
layer更改皮肤的实现方法
Sep 11 Javascript
JavaScript中作用域链的概念及用途讲解
Aug 06 Javascript
多个Vue项目部署到服务器的步骤记录
Oct 22 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
ThinkPHP利用PHPMailer实现邮件发送实现代码
2013/09/26 PHP
10个实用的PHP正则表达式汇总
2014/10/23 PHP
详解WordPress中添加友情链接的方法
2016/05/21 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
解决jquery的datepicker的本地化以及Today问题
2012/05/23 Javascript
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
$.each与$().each的区别示例介绍
2014/03/20 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
jQuery实现的网格线绘制方法
2016/06/20 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
2017/12/16 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
2020/06/11 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
Python中生成器和迭代器的区别详解
2018/02/10 Python
numpy.std() 计算矩阵标准差的方法
2018/07/11 Python
Python 之 Json序列化嵌套类方式
2020/02/27 Python
python如何写出表白程序
2020/06/01 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
2021/01/09 Python
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
2019史上最全Database工程师题库
2015/12/06 面试题
汽车服务工程专业自荐信
2014/09/02 职场文书
颐和园的导游词
2015/01/30 职场文书
求职自我推荐信
2015/03/24 职场文书
聘任通知书
2015/09/21 职场文书
交通安全学习心得体会
2016/01/18 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
mybatis调用sqlserver存储过程返回结果集的方法
2021/05/08 SQL Server
入门学习Go的基本语法
2021/07/07 Golang
Python使用BeautifulSoup4修改网页内容
2022/05/20 Python