zoukankan      html  css  js  c++  java
  • iview table导出功能

    因为感觉从服务端导出表格太繁琐了,所以想直接从客户端导出,接下来介绍一下iview table如何导出,本文引用了https://blog.csdn.net/zcfzfc123456789/article/details/99569513的代码,只是感觉这个作者写的有点难懂,所以在他的基础上修改了一下(如有侵权,可以联系我删除该文章)

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>Title</title>
      6     <link rel="stylesheet" href="../resources/iview.css">
      7 </head>
      8 <body>
      9 
     10 <div id="app">
     11     <div>
     12         <i-button type="primary" @click="exportTable(false)">导出选中</i-button>
     13         <i-button type="primary" @click="exportTable(true)">导出全部</i-button>
     14     </div>
     15     <i-table border stripe ref="tables" :columns="tableColumns" :data="tableData" @on-selection-change='selectChange'></i-table>
     16 </div>
     17 
     18 <script src="../resources/vue.min.js"></script>
     19 <script src="../resources/iview.min.js"></script>
     20 <script>
     21     const app = new Vue({
     22         el: "#app",
     23         data: {
     24             selectList:[],
     25             tableColumns: [
     26                 {
     27                     type: 'selection',
     28                      60,
     29                     align: 'center'
     30                 },
     31                 {
     32                     title: '姓名',
     33                     key: 'name'
     34                 },
     35                 {
     36                     title: '年龄',
     37                     key: 'age'
     38                 },
     39                 {
     40                     title: '地址',
     41                     key: 'address'
     42                 },
     43                 {
     44                     title: '日期',
     45                     key: 'date'
     46                 }
     47             ],
     48             tableData: [
     49                 {
     50                     name: 'John Brown',
     51                     age: 18,
     52                     address: 'New York No. 1 Lake Park',
     53                     date: '2016-10-03'
     54                 },
     55                 {
     56                     name: 'Jim Green',
     57                     age: 24,
     58                     address: 'London No. 1 Lake Park',
     59                     date: '2016-10-01'
     60                 },
     61                 {
     62                     name: 'Joe Black',
     63                     age: 30,
     64                     address: 'Sydney No. 1 Lake Park',
     65                     date: '2016-10-02'
     66                 },
     67                 {
     68                     name: 'Jon Snow',
     69                     age: 26,
     70                     address: 'Ottawa No. 2 Lake Park',
     71                     date: '2016-10-04'
     72                 }
     73             ]
     74         },
     75         methods: {
     76             exportTable(status){
     77                 if(status){
     78                     this.$refs.tables.selectAll(status);
     79                 }
     80                 this.$refs.tables.exportCsv({
     81                     filename: `二手业绩报表.csv`,
     82                     columns: this.tableColumns.filter((col, index) => index > 0),
     83                     data: this.tableData.filter((data, index) => {
     84                         for (let i = 0; i < this.selectList.length; i++) {
     85                             if (this.compareObject(data, (this.selectList)[i])) {
     86                                 return true
     87                             }
     88                         }
     89                         return false
     90                     })
     91                 })
     92             },
     93             compareObject(obj1, obj2) {
     94                 var attrs1 = Object.keys(obj1)
     95                 var attrs2 = Object.keys(obj2)
     96                 if (attrs1.length !== attrs2.length) {
     97                     return false
     98                 }
     99                 for (var j = 0; j < attrs1.length; j++) {
    100                     var attrNames = attrs1[j]
    101                     if (obj1[attrNames] !== obj2[attrNames]) {
    102                         return false
    103                     }
    104                 }
    105                 return true
    106             },
    107             selectChange() {
    108                 //  选中的项
    109                 this.selectList = []
    110                 this.selectList = this.$refs.tables.getSelection()
    111             }
    112         }
    113     })
    114 </script>
    115 </body>
    116 </html> 
  • 相关阅读:
    Codeforces 1355 D. Game With Array
    Codeforces 1355 C. Count Triangles
    Codeforces Round #641 (Div. 2)
    Codeforces 1345 D
    hdu6787(骰子+往回推的传输带问通过方案,dp)
    hdu6745(渐减1过程的最多互质对数,dp)
    D Points Construction Problem(思维构造,等周定理)
    Codeforces Round #658 (Div. 2)D(01背包)
    Codeforces Round #655 (Div. 2)E(矩阵范围dp)
    hdu4622([u,v]内有多少个子串)
  • 原文地址:https://www.cnblogs.com/CodeBunny/p/14301356.html
Copyright © 2011-2022 走看看