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 订制自己的AlertBox(信息提示框)
Jan 09 Javascript
JavaScript 克隆数组最简单的方法
Feb 12 Javascript
Javascript变量作用域详解
Dec 06 Javascript
一个支持任意尺寸的图片上下左右滑动效果
Aug 24 Javascript
node.js中的fs.readlinkSync方法使用说明
Dec 17 Javascript
PHP守护进程实例
Mar 06 Javascript
AngularJS基础 ng-list 指令详解及示例代码
Aug 02 Javascript
Jquery组件easyUi实现表单验证示例
Aug 23 Javascript
JS常用函数和常用技巧小结
Oct 15 Javascript
Vue中如何实现轮播图的示例代码
Jul 27 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
Dec 22 Javascript
JS面向对象编程实现的Tab选项卡案例详解
Mar 03 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汉字转换拼音的类
2013/06/18 PHP
PHP简单生成缩略图相册的方法
2015/07/29 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
2016/03/01 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
tp5框架无刷新分页实现方法分析
2019/09/26 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
获取Javscript执行函数名称的方法
2006/12/22 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
js实现导航跟随效果
2018/11/17 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
Django models文件模型变更错误解决
2020/05/11 Python
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
工程造价与财务管理专业应届生求职信
2013/10/06 职场文书
商务英语广告词大全
2014/03/18 职场文书
《画风》教学反思
2014/04/16 职场文书
小学数学教研活动总结
2014/07/01 职场文书
授权委托书
2015/01/28 职场文书
教师年度考核个人总结
2015/02/12 职场文书
清洁员岗位职责
2015/02/15 职场文书
辣妈辣妹观后感
2015/06/10 职场文书
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js
如何在python中实现ECDSA你知道吗
2021/11/23 Python