ant-design中点击按钮下载a-table中的数据

思路

使用json2csv将后台json数据转化为csv格式数据

采用创建Blob(二进制大对象)的方式来存放缓存数据; 生成下载链接;

创建一个a标签,设置href和download属性

触发a标签的点击事件实现下载

实现如下

表格

 <a-table
   size="default"
   rowKey="index"
   :columns="columnsNoSort"
   :data-source="sortList"
   :pagination="pagination"
   :loading="loading"
   :scroll="{ x: 1000 }"
 >
 </a-table>

按钮

<a-button
    type="primary"
    icon="download"
    :disabled="!$auth('lineitem.edit')"
    @click="derive">导出</a-button>

点击按钮导出数据的方法

    derive () {
      const Parser = require('json2csv').Parser
      const fields = []
      this.columnsNoSort.map(col => {
        if (col.title && col.key) {
          const obj = {
            label: col.title, // 表头名称
            value: col.key // 表取值字段key
          }
          fields.push(obj)
        }
      })
      const fileName = '表格数据导出_' + new Date().toLocaleString('zh-CN')
      const json2csvParser = new Parser({ fields })
      const result = json2csvParser.parse(this.sortList)
      const blob = new Blob(['\ufeff' + result], { type: 'text/csv' })
      const a = document.createElement('a')
      a.setAttribute('href', URL.createObjectURL(blob))
      a.setAttribute('download', `${fileName}.csv`)
      a.click()
    },
Ant Design VueTable组件通常用于展示数据列表,并且支持通过点击某一行插入一个新的详情行。这通常涉及到表格的“编辑”或“详情查看”功能,可以分为以下几个步骤: 1. 安装依赖:首先确保已经安装了`@ant-design/vue-table`库。 2. 设置表头:在`<a-table>`标签内配置列定义,包括是否显示编辑按钮(如操作列),例如添加`editable`属性。 ```html <a-table :columns="columns" :data="tableData" :editable="{ type: 'cell', onCell: handleEditCell }"> ... </a-table> ``` 3. 编辑函数:定义`handleEditCell`函数,当用户点击编辑按钮时,会在这个函数里处理细节操作,比如打开新的模态框展示详情或允许用户输入新数据。 ```javascript methods: { handleEditCell(record) { // 打开编辑模态或跳转到详情页面 this.$router.push({ name: 'detail', params: { id: record.id } }); } } ``` 4. 插入详情页:创建一个新的路由组件`Detail.vue`或弹出式模态组件,用于显示或编辑详细的记录信息。 5. 返回或保存编辑:在详情页或模态完成编辑后,用户可以选择返回并更新原数据,这时需要将修改的数据传递回`tableData`数组。 请注意,以上代码示例简略,实际项目可能还需要处理更多复杂情况,例如使用Form组件收集用户输入、校验数据等。如果你需要在插入详情行后立即显示,可以考虑在`handleEditCell`直接合并数据,而不是新开页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值