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

vue 导出,下载错误提示、blob与json数据转换

一、成功/失败 - 页面展示

  1. 失败
    在这里插入图片描述
  2. 成功
    在这里插入图片描述
    二、成功/失败 - 接口请求/响应展示
  3. 成功

在这里插入图片描述
在这里插入图片描述
2. 失败
在这里插入图片描述
在这里插入图片描述

三、解决

 // 导出列表exportReceivedExcel() {if (this.tableCheckedValue) {this.form.ids = this.tableCheckedValue.map(v => {return v.id || null})}this.loadingReceivedExcel = trueexportOgisticsTrackList(this.form).then((res) => {console.log('res', res.type, );if (res.type == 'application/json') {const data = new FileReader() // 文件API用于读取文件data.readAsText(res, 'utf-8') // 将文件以utf-8编码方式读取,结果为string文本data.onload = () => { // 文件读取完成触发console.log(data, data.result, '-----');let dataResult = data.result // result为读取后的结果const parseObj = JSON.parse(dataResult) // 将读取后的string文本转为json数据console.log('失败接口:', parseObj) // 失败接口:{code: 11, data: null, message: "请调整筛选条件", success: false}this.$message.error(parseObj.message || '操作失败') // 拿到后端错误提示信息并做弹框提示}} else {importErrorFileFormat(res)this.$message.success('导出成功')}this.loadingReceivedExcel = false}).finally(() => {this.loadingReceivedExcel = false})},importErrorFileFormat(data){let filenameif (!data.headers['content-disposition']) {filename = data.headers['Content-Disposition'].split(';')[1].split('filename=')[1]} else {filename = data.headers['content-disposition'].split(';')[1].split('filename=')[1]}const blob = new Blob([data.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8' })const temp = document.createElement('a')temp.href = window.URL.createObjectURL(blob)temp.download = window.decodeURI(filename)document.body.appendChild(temp)temp.click()document.body.removeChild(temp)window.URL.revokeObjectURL(temp)}
http://www.lryc.cn/news/302889.html

相关文章:

  • 代码随想录算法训练营|二叉树总结
  • rtt的io设备框架面向对象学习-uart设备
  • PyCharm - Script parameters (脚本参数)
  • Security6.2 中的SpEL 表达式应用(权限注解使用)
  • 软考笔记--信息系统开发方法(下)
  • 从 AGP 4.1.2 到 7.5.1——XmlParser、GPathResult、QName 过时
  • spring boot 使用AOP实现是否已登录检测
  • 为什么从没有负值的数据中绘制的小提琴图(Violin Plot)会出现负值部分?
  • 有哪几种行为会导致服务器被入侵
  • Redis RabbitMQ
  • http 和 https 的区别?
  • C++中线程的创建
  • 基于JavaWeb开发的家政服务平台计算机毕业设计[附源码]
  • 性能调优:容易忽视的JavaScript标签属性及其性能影响
  • 【机器学习笔记】7 KNN算法
  • mysql 2-20
  • Unity3D Shader 素描风格渲染管线实现详解
  • WordPress站点如何实现发布文章即主动推送到百度快速收录和普通收录?
  • C++11---(3)
  • 【常识】大数据设计基础知识
  • Vue:Vuex模块化编码(非常实用)
  • springboot 异步执行方法详细介绍
  • 拿捏c语言指针(下)
  • Spring源码笔记之SpringIOC--(3)什么是BeanFactory?
  • 微信小程序之会议OA个人中心后台交互
  • 代码随想录算法训练营第52天(动态规划09 ● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III
  • 微服务篇之负载均衡
  • wayland(xdg_wm_base) + egl + opengles 使用FBO渲染到纹理实例(六)
  • 基于 RisingWave、Instaclustr 和 Apache Superset 对维基百科实时监控
  • 建站用帝国CMS好还是WordPress好