vue2 若依项目,使用plotly.js-dist图表库,将数据图表一键导出为图片

这篇具有很好参考价值的文章主要介绍了vue2 若依项目,使用plotly.js-dist图表库,将数据图表一键导出为图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

此代码适用的场景是一个页面有多个数据图表。

首先需要拿到你生成数据图表的数据, 然后赋值给一个数组,数组需要在data定义,还需要去重。

               // 检查是否有相同的parameter值
                const hasDuplicate = this.toImageArr.some(
                    iiem => iiem.parameter === element.parameter
                );
                // 如果没有重复,则添加到数组
                if (!hasDuplicate) {
                    this.toImageArr.push(element);
                }

 然后点击导出按钮的代码如下:

   // 导出图表为图片
        exportExcel() {
            const uniqueImageNames = new Set(this.toImageArr);
            for (const image of this.toImageArr) {
                const imageName = image.parameter;
                if (uniqueImageNames.has(imageName)) {
                    continue;
                }
                Plotly.toImage(`id${imageName}`, { format: 'png', width: 1600, height: 1000 })
                    .then(function (url) {
                     // 创建一个虚拟的下载链接
                        const link = document.createElement('a');
                        link.href = url;
                        link.download = `${imageName}.png`; 
                     //imageName图片名称,根据自己需求修改
                        link.style.display = 'none';
                     // 将下载链接添加到页面中并触发点击事件
                        document.body.appendChild(link);
                        link.click();
                     // 清理下载链接
                        document.body.removeChild(link);
                        uniqueImageNames.add(imageName);
                    })
                    .catch(function (error) {
                        console.log('Error exporting chart:', error);
                    });
            }
        }

单个下载可以点击数据图表的照相机,可以实现单个下载。

vue2 若依项目,使用plotly.js-dist图表库,将数据图表一键导出为图片,javascript,plotly,前端

如果数据图表做了分页和懒加载,无法获取第二页数据图表的dom, 使用以下代码:

exportExcel() {
  const uniqueImageNames = new Set();

  const promises = this.toImageArr.map((image) => {
    const imageName = image.parameter;
    if (uniqueImageNames.has(imageName)) {
      return Promise.resolve();
    }
    
    return Plotly.toImage(`id${imageName}`, { format: 'png', width: 1600, height: 1000 })
      .then(function (url) {
        const link = document.createElement('a');
        link.href = url;
        link.download = `${imageName}.png`;
        link.style.display = 'none';
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
        uniqueImageNames.add(imageName);
      })
      .catch(function (error) {
        console.log('Error exporting chart:', error);
      });
  });

  Promise.all(promises)
    .then(() => {
      console.log('All charts exported successfully');
    })
    .catch((error) => {
      console.log('Error exporting charts:', error);
    });
}

好用的话点赞支持一下,谢谢文章来源地址https://www.toymoban.com/news/detail-525150.html

到了这里,关于vue2 若依项目,使用plotly.js-dist图表库,将数据图表一键导出为图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue2 pdfjs-2.8.335-dist pdf文件在线预览功能

    1、首先先将 pdfjs-2.8.335-dist 文件夹从网上搜索下载,复制到public文件夹下. 2、在components下新建组件PdfViewer.vue文件 3、在el-upload 中调用 pdf-viewer 组件 4、在el-upload 中的 on-preview方法中加上对应的src路径  internalPreview(file) { //判断需要预览的地方加 props—pdfView                

    2024年01月19日
    浏览(15)
  • 使用vue-qr,报错in ./node_modules/vue-qr/dist/vue-qr.js

    找到node_modules— vue-qr/dist/vue-qr.js 文件,搜…e,将…去掉,然后重新运行项目。

    2024年02月03日
    浏览(14)
  • node.js版本过高,导致vue2 版本的项目无法正常启动

    node.js版本过高,导致vue2 版本的项目无法正常启动 node的版本是18 ,vue版本是2 ;npm install 失败 1、未采取提示的方式,而是利用了npx命令; 使用npx指定npm的版本 npx -p npm@6 npm i --legacy-peer-deps 注意:如果这不能立即起作用,也许可以先删除node_modules和package-lock.json。它们将被重

    2024年02月08日
    浏览(17)
  • Rspack 创建 vue2/3 项目接入 antdv(rspack.config.js 配置 less 主题)

    Rspack CLI 官方文档。 rspack.config.js 官方文档。 创建项目(文档中还提供了 Rspack 内置 monorepo 框架 Nx 的创建方式,根据需求进行选择) 创建好项目并运行,目前 Rspack 版本支持的工程模版: 默认创建的 vue 项目为 vue3 : 如果需要其他版本,或其他框架的基础工程,可到官方提

    2024年02月11日
    浏览(8)
  • vue2、vue3分别配置echarts多图表的同步缩放

    大家好!我是yma16,本文分享在vue2和vue3中配置echarts的多图表同步缩放 背景: 解决echarts的多图表x轴同步联动的问题 echarts的datazoom api对外暴露 原理: echarts的实例存在datazoom缩放的方法, 所以只需要在datazoom事件触发其他图表的datazoom即可实现同步缩放 注意: x轴的范围要一

    2024年02月09日
    浏览(28)
  • VUE3、ElementPlus 重构若依vue2 表单构建功能

    若依官方的Vue3 版本发布已经有段时间了,就是这个表单构建功能一直没有安排计划去适配到Vue3! 前段时间公司需要做个类似的功能,就直接借鉴若依Vue2的来直接改了 吐槽下:vuedraggable-vue3 坑真多,官方文档一言难尽,现在不推荐使用; vuedraggable-vue3官方文档 优秀文章:

    2024年02月15日
    浏览(5)
  • VUE2+Element-ui+封装Echarts图表

    封装Echarts图表,如下效果图 Home组件代码块,使用的mock.js模拟数据封装 Echarts图表组件 安装所需依赖 cnpm i axios -S 安装axios接口请求 cnpm i mockjs 或 yarn add mockjs 安装mockjs生成模拟随机数据 cnpm i echarts 或 yarn add echarts 安装echarts图表 cnpm i element-ui -S 安装element-ui组件库 安装less c

    2024年02月08日
    浏览(17)
  • 【Vue】Vue2创建移动端项目实战教程,创建移动端项目保姆级教程,设置axios,utils工具包,vue.fonfig.js配置项 (下)

    这里是创建移动端项目 【Vue】Vue2.x创建项目全程讲解,保姆级教程,手把手教,Vue2怎么创建项目(上) 【Vue】Vue2创建移动端项目实战教程,创建移动端项目保姆级教程,接上一篇创建Vue2项目(中) 【Vue】Vue2创建移动端项目实战教程,创建移动端项目保姆级教程,设置ax

    2024年02月13日
    浏览(14)
  • 若依框架(一)使用若依框架从0到1快速搭建springboot + vue 项目

    1、下载若依框架代码 进入若依官网,选择源码地址,软后选择RuoYi-Vue前端分离版本,这个版本是由SpringBoot + Vue进行前后端分离开发的。 点击之后进入到gitee,点击 “克隆/下载”,选择下载方式,可以实用git命令进行git克隆,也可以直接选择下载zip,这里推荐新手就下载z

    2024年02月16日
    浏览(12)
  • Vue3项目中使用ECharts图表并实现自适应效果

    在项目中输入如下代码: 安装完成可以在package.json中看到: 创建ECharts图表的文件barCharts.vue,将它引入并在父组件中使用。在使用setup时,我们把组件直接引入进来,就可以直接使用了,不用像Vue2那样需要注册了。 在父组件中创建一个有宽高的容器,里面放ECharts组件,ECh

    2024年02月03日
    浏览(20)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包