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实现的listview效果
Apr 28 Javascript
js 全兼容可高亮二级缓冲折叠菜单
Jun 04 Javascript
javascript禁制后退键(Backspace)实例代码
Nov 15 Javascript
浅谈JavaScript中运算符的优先级
Jul 07 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
Jul 17 Javascript
详解react-router4 异步加载路由两种方法
Sep 12 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
Oct 31 Javascript
基于 jQuery 实现键盘事件监听控件
Apr 04 jQuery
Echarts地图添加引导线效果(labelLine)
Sep 30 Javascript
JavaScript canvas实现雪花随机动态飘落
Feb 08 Javascript
es6中使用map简化复杂条件判断操作实例详解
Feb 19 Javascript
详解vue 组件注册
Nov 20 Vue.js
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入门速成(2)
2006/10/09 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
JavaScript 字符串连接性能优化
2008/12/20 Javascript
js实现单一html页面两套css切换代码
2013/04/11 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
nodejs教程之异步I/O
2014/11/21 NodeJs
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
微信小程序 首页制作简单实例
2017/04/07 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
JS数组操作中的经典算法实例讲解
2017/07/26 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
nodejs中express入门和基础知识点学习
2018/09/13 NodeJs
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
js实现全选和全不选
2020/07/28 Javascript
[05:08]第一届“网鱼杯”DOTA2比赛精彩集锦
2014/09/05 DOTA
开始着手第一个Django项目
2015/07/15 Python
简单理解Python中的装饰器
2015/07/31 Python
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
python使用openpyxl库修改excel表格数据方法
2018/05/03 Python
python三大神器之fabric使用教程
2019/06/10 Python
Python的条件锁与事件共享详解
2019/09/12 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
全网最全python库selenium自动化使用详细教程
2021/01/12 Python
python 基于UDP协议套接字通信的实现
2021/01/22 Python
css3和jquery实现自定义checkbox和radiobox组件
2014/04/22 HTML / CSS
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers
canvas实现贪食蛇的实践
2022/02/15 Javascript