vue项目文件导入导出的方法总结

2023-11-12

文件导入

点击文件上传时点击按钮的结构:用element ui组件的el-upload组件,点击时的方法需要传入一个file文件的参数下来

// 按钮结构
<el-upload
    class="elUpload"
    :before-upload="handleBeforeUpload"
    :limit="1"
>
   <el-button type="primary">导入</el-button>
</el-upload>


// 点击按钮对应方法
handleBeforeUpload(file) {
    this.importExcel(file);
    return false;
},

封装需要上传文件后端的接口

// 导入专项认定数据
export const importspecialInfo = (file) => {
  // new 一个formDate表单对象
  const formData = new FormData();
  // 把文件添加到表单对象中
  formData.append('file', file);
  return request({
    headers: {
      "Content-Type": "multipart/form-data"
    },
    url: '/api/special/import',
    method: 'post',
    data: formData
  })
}

接下来就是调用后端接口进行文件导入操作

importExcel(file) {
      importspecialInfo(file).then((res) => {
        // 导入成功地后端返回数据结果
        let { code, data, msg } = res.data;
        if (code == 200) {
          this.$message({
            message: "导入成功",
            type: "success",
          });
          // 成功后重新拉取列表数据
          this.getList();
        } else {
          // 假设 data 是返回来的二进制数据
          // 下面操作就是导入失败之后的下载表格的操作
          const data = res.data;
          const url = window.URL.createObjectURL(
            new Blob([data], {
              type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            })
          );
          const link = document.createElement("a");
          link.style.display = "none";
          link.href = url;
          link.setAttribute("download", "excel.xlsx");
          document.body.appendChild(link);
          link.click();
          document.body.removeChild(link);
        }
      });
    },

文件导出

封装导出接口

// 导出专项认定统计数据
export const enterpriseList = (data) => {
  return request({
    url: '/api/special/exprotlist',
    method: 'get',
    data
  })
}

 点击导出时的操作

<el-button type="primary" @click="downLoadList">导出数据</el-button>
获取token的方法
import { getToken } from "@/util/auth";

downLoadList() {
      this.$confirm("是否导出用户数据?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      }).then((res) => {
        window.open(
          `/api/special/exprotlist?${
            this.website.tokenHeader
          }=${getToken()}&orgcode=${this.searchForm.orgcode}&orgname=${
            this.searchForm.orgname
          }&startdate=${this.searchForm.startdate}&enddate=${
            this.searchForm.enddate
          }`
        );
      });
    },

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue项目文件导入导出的方法总结 的相关文章

  • AngularJS 使用 $apply 而不使用 $scope

    我开始使用 AngularJS 并且接受了用它来编写控制器的约定 而不是用 scope 所以我的控制器看起来像这样 myApp controller SomeController function this myModel id 1 nam
  • JavaScript 对象引用缓存

    我们的代码库中有很多对象 它们的名称空间是为了避免冲突 Example App local view MyView 在我在代码库中看到的大多数地方 我们使用完整路径来获取对对象的引用 并且这在同一函数中重复多次 Example functi
  • 在javascript中使用“return !0”有什么意义吗?

    如果您转到谷歌结果页面并运行rwt toString 你会看到这个函数的返回调用是 return 0 我想不出任何理由为什么这不会总是如此true 这只是一个简写吗true 还是还有更多事情发生 总是如此 但下载需要 2 个字节 0是 2
  • 零作为 IIFE 中的第一个参数[重复]

    这个问题在这里已经有答案了 In babeljs v6 5 1 class Foo 编译为 use strict var classCallCheck2 require babel runtime helpers classCallChec
  • Three.js - 在代码中包含网格数据

    我有这个 Three js 代码 其中 JSON 加载器从文件 models mountain json 加载网格 var Three new function this scene new THREE Scene this camera
  • JavaScript 变量赋值与 OR 对比 if 检查[重复]

    这个问题在这里已经有答案了 在 JavaScript 中 我最近意识到你可以使用 OR 赋值的逻辑运算符 我想知道这是否被认为是不好的做法 特别是 我有一些具有可选数组输入的函数 如果输入是null or undefined我应该将它设置为
  • JQuery 动画文本

    找到简单 简单的动画文本是非常困难的 喜欢这个网站上的 内爆 http codecanyon net item jquery text animation full screen preview 233445 http codecanyon
  • 是否可以覆盖 javaScript 原始数据类型?

    问题是不言自明的 我知道可以扩展原始数据类型 例如string但有可能覆盖它吗 这是在采访中被问到的一个问题 不 你不能覆盖任何东西 Ecma脚本定义原始类型 http es5 github com x4 3 2 Undefined Nul
  • 在 Angular2 项目中集成 Treant-js

    我正在尝试在 Angular2 项目中使用 treant js 但我正在努力解决如何正确集成它的问题 我有一个工作正常的 JavaScript HTML 示例 我正在尝试在 Angular2 中工作 我创建了一个组件 从 npm 添加了 t
  • Bing.com 如何创建放大的缩略图?

    当我使用 Bing com 搜索图像时 我发现它们的图像经过精心裁剪和排序 当您将鼠标放在图像上时 会弹出另一个窗口 其中显示放大的图像 我想在我的程序中做同样的事情 我检查了他们页面的源代码 他们正在使用 javascript 但我仍然不
  • 提交前验证表单(比检查空字段更复杂)

    我有一个包含时间输入的表单 具体来说 开放时间和结束时间 当按下提交按钮时 它会转到一个 php 页面 其中这些输入将添加到数据库中 在允许提交表单之前我想检查一些事情 例如 我想确保开始时间早于 小于 结束时间 这是表格 Opens
  • 空 URL 哈希导致页面在 js 事件上跳转

    我有一个带有下一个和上一个按钮的照片库 如果我的某个 javascript 方法由于某种原因被破坏 那么当单击其中一个按钮时 它会向 url 添加一个哈希值 即 www google com 我知道可以给散列一个 div id 来跳转到页面
  • 对象数组 - 在 Vue.js 生态系统中更新对象的正确方法

    我不确定问题到底出在哪里 但我会看看是否有人可以帮助我理解我的代码出了什么问题 我正在利用 Vuex 商店来跟踪某些不断变化的状态 我这样做如下 import Vue from vue import Vuex from vuex Vue u
  • 将 NPM 包客户端与 nuxt 结合使用

    我对 nuxt 和 javascript 非常陌生 我正在尝试弄清楚如何在客户端使用我的应用程序的依赖项 我将它们列在我的 nuxt config js 中并使用 npm 安装 我也有一个文件 plugins导入它们的目录 不确定这是否好
  • 元素中优先考虑 ngclick 而非 nghref

    tl dr 如何强制 Angular 只执行 ngclick 指令 a 元素而不清空 删除href 我的网站在某些元素上有一些自定义行为 模式打开 位置栏更新等 但对于 SEO 索引我also需要它成为一个 a 元素与href包含有效链接的
  • RTCDataChannel发送方法不发送数据

    我的 RTCDataChannel 遇到一个奇怪的问题 我正在对 WebRTC 进行一些研究 并且已经可以进行 WebRTC 音频 视频聊天 现在我想使用 RTCDataChannel 添加文本聊天和文件共享 我已经像这样创建了 RTCDa
  • 使用Promise而不拒绝它会导致内存泄漏吗? [复制]

    这个问题在这里已经有答案了 代码如下 function test value return new Promise function fulfill reject try fulfill true catch e throw e 我担心的是
  • 在声明组件选择器时添加指令 - Angular 7

    我正在学习 Angular 并通过单击按钮动态创建组件 我正在尝试使用 Angular Material 的拖放功能来拖动这些创建的组件以对它们进行排序 我的基本组件 html 中有以下代码 div style margin 20px di
  • 错误:创建 React Native 项目版本 0.59.9 时找不到 template.config.js

    当我尝试创建 React Native 项目版本 0 59 9 时 出现以下错误 错误错误 无法在 react native 模板中找到 var folders zc h93bvpb573q24 5ynvgkn1wc0000gn T rnc
  • 使用 Lodash 将对象键转换为具有键值数量的数组[重复]

    这个问题在这里已经有答案了 我有一个产品对象 products bread 1 milk 2 cheese 2 chicken 1 我想要一个包含产品名称的数组 如下所示 products bread milk milk cheese ch

随机推荐

  • JS异常: Uncaught RangeError: Maximum call stack size exceeded

    今天被一个bug弄得头大 找了无数资料 网上说是递归函数的原因 https blog csdn net qq 30100043 article details 72642205 还是未能解决问题 继续找 最后在 https blog csd
  • 【故障集合】综合架构rsync服务与nfs服务错误集合(持续补充中)

    一 rsync服务 1 1 not a regular file 不是普通文件 scp跟cp类型 默认只能复制普通文件 复制目录 加上 r参数即可 root backup scp etc 172 16 1 31 tmp root 172 1
  • 软件设计七大原则

    在软件开发中 为了提高软件系统的可维护性和可复用性 增加软件的可扩展性和灵活性 程序员要尽量根据 7 条原则来开发程序 从而提高软件开发效率 节约软件开发成本和维护成本 我来依次来总结这 7 条原则 这 7 种设计原则是软件设计模式必须尽量
  • uni-app 框架超详细新手入门

    什么是uni app 介绍 uni app 是一个使用 Vue js 开发跨平台应用的前端框架 开发者通过编写 Vue js 代码 uni app 将其编译到iOS Android 微信小程序等多个平台 保证其正确运行并达到优秀体验 uni
  • 公网远程访问宝塔面板和网页【内网穿透】

    1 ngrok 限制带宽 不限制流量 进入ngrok官网 Sunny Ngrok内网转发内网穿透 国内内网映射服务器 1 注册 2 开通隧道 3 穿透网页 1 配置ngrok 输入网页本地地址和端口号 2 运行ngrok sunny cli
  • IntelliJ IDEA下载安装教程(超详细图解)

    1 IDEA的下载 官网链接 https www jetbrains com idea l 1 点击上面链接进入官网 点击Developer Tools 再点击 Intellij IDEA 2 点击Download 进入IDEA下载界面 3
  • Vue:数据双向绑定和v-系列指令

    Vue js是当下最火的一款前端框架了 学习的时候要多动手实践以帮助理解 我是通过例子来学习的 这样记的快一些 目录 Vue js介绍 如何引入Vue 何为声明式渲染 如何实现 文本插值 message v html v bind 绑定元素
  • 数组的添加和删除过滤方法总结es6 filter()

    es6 filter 数组过滤方法总结 Array every x gt x 是每一个都要满足 Array some x gt x 是有一个满足 Array find findIndex 返回符合条件的第一个值 Array filter 过
  • C语言,文件定位问题详解

    最近在完成上机题碰到文件操作 要求能够修改某一行的数据 关于这个问题 我们自然就会想到用fseek来定位然后修改这一行的内容 可是问题就来了 具体啥问题请往下看 比如说text txt的内容为 这时我想把第二内容改为24 很明显用fseek
  • union关键字,理解-应用场景-优点

    C语言共用体 C语言union用法 详解 biancheng net 理解为 需求场景 某变量可具有多重身份 然而在使用某变量时 它只能确定为其中一种身份 union关键字 这种好处是 既可以满足需求 又可以不浪费内存 union关键字创建
  • Spring MVC 起步

    一 MVC 首先http的请求到达前端控制器 前端知道具体的请求 将代理给到控制器 控制器了解具体的业务细节 因此调用业务逻辑 生成业务数据 并将业务数据返回给前端控制器 然后前端控制器将数据分发给我们的业务视图 由业务视图来呈现业务页面返
  • JS对于字符串的切割截取

    1 slice start end 方法 start 起始索引 开始位置 end 终止索引 结束位置 如果某个参数为负 则从字符串的结尾开始计数 如果省略第二个参数 则该方法将裁剪字符串的剩余部分 var str Apple Banana
  • Hash 函数及其重要性

    不时会爆出网站的服务器和数据库被盗取 考虑到这点 就要确保用户一些敏感数据 例如密码 的安全性 今天 我们要学的是 hash 背后的基础知识 以及如何用它来保护你的 web 应用的密码 申明 密码学是非常复杂的一门学科 我不是这方面的专家
  • 如何在 Python 中开始机器学习?(小白必看)

    其实学习机器学习的最好方法是设计和完成小项目 Python 是一种流行且功能强大的解释型语言 与 R 不同 Python 是一种完整的语言和平台 可用于研究和开发以及开发生产系统 还有很多模块和库可供选择 提供多种方式来完成每项任务 开始使
  • INTERNALERROR> AttributeError: ‘CollectReport‘ object has no attribute ‘description‘问题解决

    隔一段时间没写脚本 今天又写新的脚本 写完之后执行报错 INTERNALERROR gt AttributeError CollectReport object has no attribute description 执行了下之前写的脚本
  • adadelta算法_机器学习中的优化算法(3)-AdaGrad, Adadelta(附Python示例)

    import math import numpy as np import matplotlib pyplot as plt RATIO 3 椭圆的长宽比 LIMIT 1 2 图像的坐标轴范围 class PlotComparaison o
  • 在分页式管理方式下实现主存空间的分配和回收

    转自 在分页式管理方式下采用位示图来表示主存分配情况 实现主存空间的分配和回收 呱呱乐编程 CSDN博客 方便学习 如有侵权 联系本人 立即删除 include
  • 5e服务器信息被拦截,5e登陆csgo总被拦截什么意思(5e进csgo提示被拦截)

    办法1 验证游戏完整性重启steam 2 重启计算机 3 可能是系统兼容性问题win10 64 建议更换系统 4 到游戏目录里用管理员身份启动试试 希望能够帮助你 望采纳 好像是进程里有多个steam客户端进程 或者你5e配置的游戏路径不对
  • Vue使用AntV/G2例子

  • vue项目文件导入导出的方法总结

    文件导入 点击文件上传时点击按钮的结构 用element ui组件的el upload组件 点击时的方法需要传入一个file文件的参数下来 按钮结构