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 程序库的比较(一)之DOM功能
Apr 07 Javascript
Jquery选择子控件&quot;大于号&quot;和&quot; &quot;区别介绍及使用示例
Jun 25 Javascript
JS中把字符转成ASCII值的函数示例代码
Nov 21 Javascript
node.js中的fs.stat方法使用说明
Dec 16 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
Mar 06 Javascript
原生js实现电商侧边导航效果
Jan 19 Javascript
js中toString()和String()区别详解
Mar 23 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
Apr 28 Javascript
JQuery 选择器、DOM节点操作练习实例
Sep 28 jQuery
简单实现vue验证码60秒倒计时功能
Oct 11 Javascript
layui 阻止图片上传的实例(before方法)
Sep 26 Javascript
vue中使用elementUI组件手动上传图片功能
Dec 13 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 实例化类的一点摘记
2008/03/23 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
2018/03/01 Javascript
原生js封装的ajax方法示例
2018/08/02 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
layui 弹出层值回传解决方式
2019/11/14 Javascript
解决vue字符串换行问题(绝对管用)
2020/08/06 Javascript
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
Python实现将Excel转换为json的方法示例
2017/08/05 Python
Python内置模块ConfigParser实现配置读写功能的方法
2018/02/12 Python
解决phantomjs截图失败,phantom.exit位置的问题
2018/05/17 Python
python将一组数分成每3个一组的实例
2018/11/14 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
python 猴子补丁(monkey patch)
2019/06/26 Python
Django中的cookie和session
2019/08/27 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
python脚本定时发送邮件
2020/12/22 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
年度考核表个人总结
2015/03/06 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python
在Docker容器中部署SQL Server
2022/04/11 Servers
nginx设置资源请求目录的方式详解
2022/05/30 Servers