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 内置对象属性及方法集合
Jul 04 Javascript
MooTools 页面滚动浮动层智能定位实现代码
Aug 23 Javascript
JS实现距离上次刷新已过多少秒示例
May 23 Javascript
AngularJS中取消对HTML片段转义的方法例子
Jan 04 Javascript
JavaScript学习笔记之JS对象
Jan 22 Javascript
JS实现点击按钮后框架内载入不同网页的方法
May 05 Javascript
js小数运算出现多位小数如何解决
Oct 08 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
Nov 29 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
Oct 09 Javascript
vue组件命名和props命名代码详解
Sep 01 Javascript
微信小程序实现多行文字超出部分省略号显示功能
Oct 23 Javascript
vue 自定义右键样式的实例代码
Nov 06 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中的串行化变量和序列化对象
2006/09/05 PHP
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
php面向对象全攻略 (十四) php5接口技术
2009/09/30 PHP
php的字符串用法小结
2010/06/08 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
PHP 安全检测代码片段(分享)
2013/07/05 PHP
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
jquery如何改变html标签的样式(两种实现方法)
2013/01/16 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
jQuery中scrollTop()方法用法实例
2015/01/16 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
bootstrap-treeview自定义双击事件实现方法
2016/01/09 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
AngularJS 自定义过滤器详解及实例代码
2016/09/14 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
Vue.js组件间通信方式总结【推荐】
2018/11/23 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
微信头像地址失效踩坑记附带解决方案
2019/09/23 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
2020/02/11 Javascript
用Python输出一个杨辉三角的例子
2014/06/13 Python
用python实现将数组元素按从小到大的顺序排列方法
2018/07/02 Python
python3射线法判断点是否在多边形内
2019/06/28 Python
python实现ip代理池功能示例
2019/07/05 Python
新手学python应该下哪个版本
2020/06/11 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
英文简历中的自我评价
2013/10/06 职场文书
技术负责人任命书
2014/06/05 职场文书
2014年招生工作总结
2014/11/26 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书