vue和element-ui配合导出table表格

1 安装两个依赖

npm install -S file-saver xlsx
npm install -D script-loader

2 在build----webpack.base.conf.js中resolve的alias加入 'vendor': path.resolve(__dirname, '../src/vendor')

3 在src下新建一个文件夹vendor,引入两个文件Blob.js 和 Export2Excel.js (https://gitee.com/quruonan/vender.git

4 vue文件里写入该方法

// 导出表格
    exportClick () {
      let obj = {
        searchField: this.reqParams.query,
        status: this.status === '0' ? '' : this.status,
        startTime: this.startDate,
        endTime: this.endDate,
        pageFlag: 0
      }
      api.getList(obj, res => {
        this.exportList = res.data
        this.export2Excel()
      }, err => {
        console.log(err)
      })
    },
    export2Excel () {
      require.ensure([], () => {
        const { exportJsonToExcel } = require('../../../vendor/Export2Excel')
        // 对应表格输出的title
        const tHeader = ['订单号', '收货人', '手机号', '收货地址', '会员名', '下单人手机号', '上级用户', '上级用户手机号', '商品名称', '总数量', '总金额', '实付金额', '订单状态', '支付方式', '下单时间']
        // 对应表格输出的数据
        const filterVal = ['orderNo', 'name', 'mobile', 'address', 'userName', 'userMobile', 'inviterName', 'inviterMobile', 'goodsName', 'quantity', 'orderAmount', 'paymentAmount', 'status', 'payment', 'ctime']
        const list = this.exportList
        list.forEach(el => {
          el['payment'] = el['payment'] === 0 ? (el['paymentText'] = '待付款') : (el['payment'] === 1 ? (el['paymentText'] = '微信支付') : (el['payment'] === 2 ? (el['paymentText'] = '支付宝') : el['paymentText'] = '抵用券'))
          el.ctime = util.formatDate(el.ctime)
          el.status = el.status === 1 ? (el.status = '待付款') : (el.status === 2 ? '待发货': (el.status === 3 ? '待收货': (el.status === 4 ? '已收货' : '已取消')))
        })
        const data = this.formatJson(filterVal, list)
        // 对应下载文件的名字
        exportJsonToExcel(tHeader, data, '订单列表')
      })
    },
    formatJson (filterVal, jsonData) {
      return jsonData.map(v => filterVal.map(j => v[j]))
    }

5 点击按钮 <el-button @click="exportClick">导出</el-button>  调用exportClick方法

element-ui是一套基于Vue.js的UI框架,其中的table表格组件提供了许多强大的功能和骚操作。 首先,element-uitable表格支持对数据进行排序操作。只需设置column的sortable属性为true,即可实现对某一列数据的升降序排列,方便用户快速找到所需的信息。 其次,table表格还支持对数据进行筛选操作。通过设置filters属性,可以在表头中显示可选的筛选项,用户可以选择自己需要的筛选条件,从而快速过滤数据,提高表格的可读性和实用性。 此外,element-uitable表格还支持分页功能。通过设置pagination属性,可以实现表格数据的分页展示,方便用户浏览大量数据,同时也可以通过自定义分页器的样式和布局,满足不同项目的需求。 另外,table表格还提供了自定义列模板的功能。通过设置scoped slot,可以自定义表格中每一列的展示方式,包括渲染不同的DOM元素、添加操作按钮等,非常灵活。 此外,element-uitable表格还提供了可编辑的功能。通过设置column的editable属性为true,可以实现编辑表格数据的功能,用户可以直接在表格中进行数据的修改,提高数据的编辑效率。 最后,element-uitable表格还支持表格数据的导出和导入。通过设置导出按钮和导入事件,可以方便地将表格数据导出为Excel或导入Excel数据到表格中,提高了数据的共享和交互性。 综上所述,element-ui中关于table表格的这些骚操作,使得我们可以更方便地对表格数据进行排序、筛选、分页、自定义列模板、编辑、导出和导入等操作,提高了表格的可读性、编辑效率和交互性,满足了不同项目的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值