当前位置: 首页 > news >正文

vue-cli中使用v-chart及导出chart图片

安装:

npm i v-charts echarts -S

组件中使用:

  1 <template>
  2     <div class="app-chart">
  3         <div id="print-content">
  4             <!--用于图标组件-->
  5             <ve-pie :data="chartData" :colors="colors"></ve-pie>
  6             <!--导出的图片box-->
  7             <div ref="box"></div>
  8         </div>
  9         <div class="foot">
 10             <!--打印操作-->
 11             <button type="primary" @click="doPrint">打 印</button>
 12         </div>
 13     </div>
 14 </template>
 15 
 16 <script>
 17     //引入图标组件
 18     import VePie from 'v-charts/lib/pie.common'
 19     
 20     export default {
 21         
 22         name: "app-pie",
 23         
 24         data(){
 25             
 26             return{
 27                 
 28                 //图标相关参数(详情见官方文档)
 29                 chartData:{
 30                             columns: ['日期', '销售量'],
 31                             
 32                             rows: [
 33                                 { '日期': '1月1日', '销售量': 123 },
 34                                 { '日期': '1月2日', '销售量': 207 },
 35                                 { '日期': '1月3日', '销售量': 167 },
 36                                 { '日期': '1月4日', '销售量': 193 },
 37                             ]
 38                             
 39                        },
 40                        
 41                 //图标样式的配置(相关配置查看官方文档)
 42                 colors:['#19d4ae','#fa6e86']
 43             }
 44             
 45         },
 46         
 47         //注册图标组件
 48         components:{
 49             VePie
 50         },
 51         
 52         methods:{
 53             
 54             //打印页面
 55             doPrint(){
 56                 
 57                 this.createImage();
 58                 
 59                 this.$nextTick(()=>{
 60                     
 61                     if(this.$refs.box.innerHTML){
 62                         
 63                         let PrintContent = document.getElementById('print-content');
 64                         let newContent =PrintContent.innerHTML;
 65                         let oldContent = document.body.innerHTML;
 66                         document.body.innerHTML = newContent;
 67                         window.print();
 68                         window.location.reload();
 69                         document.body.innerHTML = oldContent;
 70                         return false;
 71                         
 72                     }
 73                     
 74                 });
 75                 
 76             },
 77             
 78             //chart图标导出图片
 79             createImage(){
 80                 
 81 //              this.$nextTick(()=>{});
 82                 
 83                 const canvas = document.getElementsByTagName('canvas')[0];
 84                     
 85                 const box = this.$refs.box;
 86                 
 87                 let image = canvas.toDataURL({
 88                         type:"png",
 89                         pixelRatio: 2,
 90                         backgroundColor: '#fff',//不设置此项,导出图片的底色是黑色
 91                     });
 92                     
 93                 box.innerHTML = '<img src="'+image+'" alt="">';
 94             }
 95         },
 96     }
 97 </script>
 98 
 99 <style scoped>
100     @media print {
101         .no-print{
102             display: none;
103         }
104     }
105 </style>
 

转载于:https://www.cnblogs.com/zhaoxiaoying/p/9723538.html

相关文章:

  • 多研究些架构,少谈些框架(1):论微服务架构的核心概念
  • SpringMVC----使用POJO[普通的java类]对象绑定请求参数值
  • PAT乙级(Basic Level)练习题-NowCoder数列总结
  • KVO知识点
  • Selenium 对窗口对HTML的操作举例
  • 设计模式(十五)[结构模式] 合成模式(Composite)
  • Spring框架5.1将提供对Java 11的支持
  • Uber开源Marmaray:基于Hadoop的通用数据摄取和分散框架
  • LeetCode - 141. Linked List Cycle
  • kubernetes[2]-Pod
  • @jsonView过滤属性
  • vmware创建centos虚拟机
  • 福大软工1816 · 第六次作业 - 团队选题报告
  • 尝试解决微信小程序分页最后setData数据太大限制的问题
  • teragen/terasort_简化版
  • [LeetCode] Wiggle Sort
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • es6(二):字符串的扩展
  • git 常用命令
  • JavaScript实现分页效果
  • Python爬虫--- 1.3 BS4库的解析器
  • SOFAMosn配置模型
  • SpiderData 2019年2月25日 DApp数据排行榜
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 阿里研究院入选中国企业智库系统影响力榜
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 普通函数和构造函数的区别
  • 前端面试之闭包
  • 浅谈web中前端模板引擎的使用
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • !!java web学习笔记(一到五)
  • $GOPATH/go.mod exists but should not goland
  • (1)SpringCloud 整合Python
  • (1)常见O(n^2)排序算法解析
  • (a /b)*c的值
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (一)appium-desktop定位元素原理
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转) Face-Resources
  • (转)创业家杂志:UCWEB天使第一步
  • **PHP分步表单提交思路(分页表单提交)
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET Core引入性能分析引导优化
  • .Net Remoting常用部署结构
  • .net 生成二级域名
  • .NET 中让 Task 支持带超时的异步等待
  • .Net的C#语言取月份数值对应的MonthName值
  • .net反混淆脱壳工具de4dot的使用
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • /etc/fstab和/etc/mtab的区别