elemetUi 组件--el-upload实现上传Excel文件的实例


Posted in Javascript onOctober 27, 2017

elemetUi 组件--el-upload实现上传Excel文件的实例

【需求】实现上传Excel文件,在上传到服务器时,还要附加一个参数,在请求上传文件接口前,先要进行文件格式判断。

elemetUi 组件--el-upload实现上传Excel文件的实例

【知识点】

1、el-upload 官方文档中,主要用到了以下属性:

data 可选参数, 上传时附带的额外参数
name 可选参数, 上传的文件字段名
before-upload 可选参数, 上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传。

2、split进行字符串截取

【分析】

<template>
  <div class="panel admin-panel">
    <div class="panel-head" id="add"><strong><span class="el-icon-edit"></span><span class="title">上传数据</span></strong></div>
    <div class="body-content">
      <el-form :model="ruleForm" ref="ruleForm" label-width="100px" class="form uploadform">
        <el-form-item label="部门" prop="name">
          <el-select v-model="form.type" placeholder="请选择" style="width: 135px">
            <el-option
                v-for="item in options"
                :key="item.value"
                :label="item.label"
                :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>

        <el-form-item>

          <el-upload
              class="upload-demo"
              ref="upload"
              action="http://10.1.20.218:8088/gnh-webadmin-platfrom/api/v1/sendSalaryBillGeinihua"
              :on-preview="handlePreview"
              :before-upload="beforeAvatarUpload"
              :on-remove="handleRemove"
              :file-list="fileList"
              :auto-upload = 'false'
              :on-success = 'handleSuccess'
              :data="form"
              name="salaryBill">
            <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
            <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button>
            <div slot="tip" class="el-upload__tip">只能上传xls/xlsx文件</div>
          </el-upload>

        </el-form-item>
      </el-form>
    </div>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        options: [{
          value: '1',
          label: '帅哥部'
        }, {
          value: '2',
          label: '美女部'
        }],
        fileName:'',
        fileList:[],
        ruleForm: {
//          name: '',
          isShow: '0'
        },
        form:{
          type:'1'
        },

      };
    },
    methods: {
      submitUpload() {
        this.$refs.upload.submit();
      },

      beforeAvatarUpload(file) {

        let Xls = file.name.split('.');

        if(Xls[1] === 'xls'||Xls[1] === 'xlsx'){
          return file
        }else {
          this.$message.error('上传文件只能是 xls/xlsx 格式!')
          return false
        }

      },
      handleRemove(file, fileList) {
      },
      handlePreview(file) {
      },
      handleSuccess(res,file,fileList){

        if(res.code===20000){
          this.$message({
            message: '上传成功!',
            type: 'success'
          });
        }else {
          this.$message({
            message: res.msg,
            type: 'error'
          });
        }

      }
    }
  }
</script>
<style scope>
  input[type="file"] {
    display: none;
  }
  .el-upload-list{
    width: 200px;
  }
  .el-select {
    width: 135px;
  }

</style>

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
javascript下判断一个元素是否存在的代码
Mar 05 Javascript
Jquery截取中文字符串的实现代码
Dec 22 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
JavaScript实现的链表数据结构实例
Apr 02 Javascript
js实现不重复导入的方法
Mar 02 Javascript
JavaScript常用判断写法大全(推荐)
May 30 Javascript
Google 地图控件集详解及实例代码
Aug 06 Javascript
Canvas 绘制粒子动画背景
Feb 15 Javascript
angular中实现li或者某个元素点击变色的两种方法
Jul 27 Javascript
详解如何使用微信小程序云函数发送短信验证码
Mar 13 Javascript
js实现弹出框的拖拽效果实例代码详解
Apr 16 Javascript
layui下拉列表select实现可输入查找的方法
Sep 28 Javascript
node 利用进程通信实现Cluster共享内存
Oct 27 #Javascript
vue中v-model动态生成的实例详解
Oct 27 #Javascript
微信小程序 input输入及动态设置按钮的实现
Oct 27 #Javascript
js通过Date对象实现倒计时动画效果
Oct 27 #Javascript
vue-cli + sass 的正确打开方式图文详解
Oct 27 #Javascript
本地搭建微信小程序服务器的实现方法
Oct 27 #Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
Oct 27 #Javascript
You might like
php-accelerator网站加速PHP缓冲的方法
2008/07/30 PHP
非常好用的两个PHP函数 serialize()和unserialize()
2012/02/04 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
2013/06/27 PHP
php自动识别文件编码并转换为UTF-8的方法
2014/06/12 PHP
php注册登录系统简化版
2020/12/28 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
php写app用的框架整理
2019/09/29 PHP
JavaScript 指导方针
2007/04/05 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
JavaScript代码生成PDF文件的方法
2016/02/26 Javascript
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
解决vue 引入子组件报错的问题
2018/09/06 Javascript
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
React倒计时功能实现代码——解耦通用
2020/09/18 Javascript
Python深入学习之对象的属性
2014/08/31 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
python实现textrank关键词提取
2018/06/22 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
Python pandas库中的isnull()详解
2019/12/26 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
UML设计模式笔试题
2014/06/07 面试题
J2EE系统只能是基于web
2015/09/08 面试题
火锅店创业计划书范文
2014/02/02 职场文书
庆元旦广播稿
2014/02/10 职场文书
机械设计制造及其自动化专业求职信
2014/06/17 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
在职证明书模板
2015/06/15 职场文书
Python打包exe时各种异常处理方案总结
2021/05/18 Python
Win11开始菜单添加休眠选项
2022/04/19 数码科技
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js