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判断IE6等浏览器的代码
Apr 05 Javascript
javascript动态加载三
Aug 22 Javascript
javascript性能优化之DOM交互操作实例分析
Dec 12 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
Apr 20 Javascript
RequireJS简易绘图程序开发
Oct 28 Javascript
Centos7 中 Node.js安装简单方法
Nov 02 Javascript
js实现日历与定时器
Feb 22 Javascript
Angular2使用vscode断点调试ts文件的方法
Dec 13 Javascript
vue-router传递参数的几种方式实例详解
Nov 13 Javascript
vue地址栏直接输入路由无效问题的解决
Nov 15 Javascript
Node使用Selenium进行前端自动化操作的代码实现
Oct 10 Javascript
封装Vue Element的table表格组件的示例详解
Aug 19 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
使用GD库生成带阴影文字的图片
2015/03/27 PHP
Laravel服务容器绑定的几种方法总结
2020/06/14 PHP
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
javascript innerHTML使用分析
2010/12/03 Javascript
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
2014/03/18 NodeJs
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
原生js开发的日历插件
2017/02/04 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
关于ES6尾调用优化的使用
2020/09/11 Javascript
python中异常捕获方法详解
2017/03/03 Python
读取本地json文件,解析json(实例讲解)
2017/12/06 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
python 限制函数执行时间,自己实现timeout的实例
2019/01/12 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
Python使用scrapy爬取阳光热线问政平台过程解析
2019/08/14 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
Python实现手绘图效果实例分享
2020/07/22 Python
美国在线宠物用品商店:Entirely Pets
2017/01/01 全球购物
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
非功能性需求都包括哪些方面
2013/10/29 面试题
小学生家长评语大全
2014/02/10 职场文书
运动会报道稿300字
2014/10/02 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
幼儿园园长工作总结2015
2015/05/25 职场文书
企业催款函范本
2015/06/24 职场文书
2016大学生党校学习心得体会
2016/01/06 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
广告文案的撰写技巧(实用干货)
2019/08/23 职场文书
php 原生分页
2021/04/01 PHP