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-世界上误解最深的语言分析
Aug 12 Javascript
jQuery移动和复制dom节点实用DOM操作案例
Dec 17 Javascript
深入理解JavaScript高级之词法作用域和作用域链
Dec 10 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
Apr 02 Javascript
详解js中构造流程图的核心技术JsPlumb
Dec 08 Javascript
JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别
May 31 Javascript
JavaScript和JQuery获取DIV值的方法示例
Mar 07 Javascript
浅谈手写node可读流之流动模式
Jun 01 Javascript
微信小程序如何获取用户收货地址
Nov 27 Javascript
JS选取DOM元素常见操作方法实例分析
Dec 10 Javascript
用Node写一条配置环境的指令
Nov 14 Javascript
如何用JS实现简单的数据监听
May 06 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
PHPMYADMIN导入数据最大为2M的解决方法
2012/04/23 PHP
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
PHP中串行化用法示例
2016/11/16 PHP
070823更新的一个[消息提示框]组件 兼容ie7
2007/08/29 Javascript
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
2013/06/24 Javascript
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
jQuery中ajax的load()方法用法实例
2014/12/26 Javascript
在Javascript中处理字符串之big()方法的使用
2015/06/08 Javascript
Javascript实现快速排序(Quicksort)的算法详解
2015/09/06 Javascript
Angularjs中UI Router全攻略
2016/01/29 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
node中使用es5/6以及支持性与性能对比
2017/08/11 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
在Python中使用元类的教程
2015/04/28 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
python利用正则表达式提取字符串
2016/12/08 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
Python标准库之collections包的使用教程
2017/04/27 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
python2与python3爬虫中get与post对比解析
2019/09/18 Python
Python的形参和实参使用方式
2019/12/24 Python
多个python文件调用logging模块报错误
2020/02/12 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
运动会广播稿30字
2014/01/21 职场文书
财务信息服务专业自荐书范文
2014/02/08 职场文书
房产委托公证书
2014/04/08 职场文书
恋恋笔记本观后感
2015/06/16 职场文书