首页 > 其他分享 >Element UI vue 上传文件、下载模板

Element UI vue 上传文件、下载模板

时间:2022-12-09 09:00:41浏览次数:47  
标签:vue false 上传 fileList Element UI file message data

样式

<el-upload
    class="upload-demo"
    action="/api/file/upload"
    :on-remove="handleRemove"
    multiple
    ref="uplpadFile"
    :limit="1"
    :on-exceed="handleExceed"
    :before-upload="beforeUpload"
    :file-list="fileList"
    accept="application/vnd.ms-excel"
  >
    <div>
      <el-button type="text" :loading="check">上传文件</el-button>
      <el-button type="text" @click.stop="downloadTpl">
        下载模板
      </el-button>
    </div>
    <div slot="tip" class="el-upload__tip">
      <div class="sms-upload-msg">1、支持Excel文件上传</div>
      <div class="sms-upload-msg">
        2、请将日期和时间相关列设置为【文本】类型再进行编辑
      </div>
    </div>
  </el-upload>

 // data 定义变量
fileList: []

JS 方法

// 上传的校验
beforeUpload(file) {
  this.check = true
  this.fileList = []
  let fd = new FormData()
  let size = parseFloat(file.size / 1048576)
  if (size > 10) {
    this.$message.error('上传文件最大不可超过10M')
    this.check = false
    return false
  }
  if (
    file.name.substring(file.name.lastIndexOf('.') + 1) !== 'xls' &&
    file.name.substring(file.name.lastIndexOf('.') + 1) !== 'xlsx'
  ) {
    this.$message.error('请上传Excel文件')
    this.check = false
    return false
  }
  fd.append('tag', 'robot-core')
  fd.append('files', file)
  if (size < 10) {
    this.$store.dispatch('uploadAudioFile', fd).then(res => {
      this.check = false
      this.$store.dispatch('uploadSmsTemplateCheck', {
        fileName: res.data.list[0].localName
      }).then((res) => {
        const { code, data } = res
        if (code === 1 && data.length) {
          data.forEach((val, index) => {
            const data = {
              ...val,
              show: false,
              id: uuidv4()
            }
            this.errorTableData.push(data)
          })
        }
      })
    })
  } else {
    this.$message.error('上传文件太大')
    this.check = false
  }
  return false
},
handleExceed(files, fileList) {
  this.$message.warning(
    `当前限制选择 1 个文件,本次选择了 ${
      files.length
    } 个文件,共选择了 ${files.length + fileList.length} 个文件`
  )
},
handleRemove(file, fileList) {
  this.fileList = []
  if (fileList.length === 1) {
    this.$confirm('确定删除吗?', '提示', {
      confirmButtonText: '确定',
      cancelButtonText: '取消',
      type: 'warning'
    })
      .then(() => {
        this.fileList = []
      })
      .catch(() => {
        this.$message({
          message: '取消了删除',
          center: true
        })
      })
  }
},

标签:vue,false,上传,fileList,Element,UI,file,message,data
From: https://www.cnblogs.com/DL-CODER/p/16967993.html

相关文章

  • vue的安装
    Vue-cli是vue官方出品的快速构建单页应用的脚手架,这里牵扯的东西很多,有webpack,npm,nodejs,babel等等。官网:https://cli.vuejs.org/guide/GitHub:https://github.com/vuejs/v......
  • vue组件介绍及应用
    一个.vue文件就是一个组件组件都是由三部分组成:html结构(html结构都是在template标签中)、js逻辑、css样式1)template只能解析一个根标签2)js逻辑都是在script标签中,必须设......
  • 使用vuedraggable实现拖拽式操作实战
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • Vue 官方文档2.x教程学习笔记 1 基础 1.8 列表渲染 1.8.1 用 v-for 把一个数组对应为
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • vue+elementUI 使用腾讯地图
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • WinUI(WASDK)使用MediaPipe检查手部关键点并通过ML.NET进行手势分类
    前言之所以会搞这个手势识别分类,其实是为了满足之前群友提的需求,就是针对稚晖君的ElectronBot机器人的上位机软件的功能丰富,因为本来擅长的技术栈都是.NET,也刚好试试全能......
  • 【Vue】代理服务配置
     Springboot 后台接口地址基础路径配置:server:port:8080servlet:context-path:/demo完整路径:localhost:8080/demo Vue无代理服务......
  • #yyds干货盘点#vue框架computed的原理
    computed原理,首先得讲vue响应式原理,因为computed的实现是基于​​Watcher​​​对象的。那么vue的响应式原理是什么呢?众所周知,vue是基于​​Object.definePrope......
  • element-ui表格组件的封装
    背景我们平常工作中需要用表格的形式来展示多行数据需求需求1:通过配置文件的形式来设置表格的列需求2:可以合并表头代码MyTable.vue<template><div><el-tabl......
  • MAUI新生3.5-深入理解XAML:行为Behavior
    通过行为Behavior,可以将功能附加到控件上,而不需要在宿主控件上定义,和扩展方法有异曲同功之妙。在MAUI中实现Behavior,有两种方式:①附加行为;②MAUI内置行为。附加行为,通过附......