插槽和 filter 联用处理表格数据

插槽和 filter 联用处理表格数据

全部代码

<template>
  <el-table :data="tableData" style="width: 100%">
    
    <el-table-column label="flag" prop="flag" width="180">
      <template slot-scope="scope">
        {{ scope.row.flag | flagFilter }}
      </template>
    </el-table-column>


  </el-table>
</template>

<script>
export default {
  data () {
    return {
      tableData: [
        {
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄',
          flag: 1
        },
        {
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1517 弄',
          flag: 1
        },
        {
          date: '2016-05-01',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1519 弄',
          flag: 0
        },
        {
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1516 弄',
          flag: 0
        }
      ]
    }
  },
  filters: {
    flagFilter (val) {
      switch (val) {
        case 0:
          val = '入驻'
          break
        case 1:
          val = '毕业'
          break
        default:
          val = ''
      }
      return val
    }
  },

}
</script>

      <template slot-scope="scope">
        {{ scope.row.flag | flagFilter }}
      </template>

| 为管道符,管道符左侧的数据为待处理的数据,会作为第一个参数传给 filter,也就是如下的 val

    flagFilter (val) {
      switch (val) {
        case 0:
          val = '入驻'
          break
        case 1:
          val = '毕业'
          break
        default:
          val = ''
      }
      return val
    }

{{data | methodsFun(arg2)}},该情况下,arg2会作为第二个参数传给methodsFun

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于vxe-table动态改变列插槽,可以通过以下步骤实现: 1. 创建一个表格实例,并设置表格数据源和列信息。 2. 在需要动态改变列的地方,使用v-if或v-show等指令来控制列的显示和隐藏。 3. 在表格中使用<template>标签定义插槽,并根据需要添加相应的列组件。 4. 在动态改变列的时候,通过修改表格的columns属性来动态改变表格的列信息。 5. 使用表格的refresh方法来更新表格的显示。 下面是一个示例代码: ```html <template> <div> <vxe-table :data="tableData" :columns="tableColumns"> <template v-for="column in dynamicColumns" :slot="column.key"> <vxe-table-column :key="column.key" :field="column.field" :title="column.title" :width="column.width"/> </template> </vxe-table> <button @click="toggleColumn('age')">Toggle Age Column</button> </div> </template> <script> import { VXETable, Table, Column } from 'vxe-table' export default { data () { return { tableData: [ { id: 1, name: 'John', age: 20 }, { id: 2, name: 'Jane', age: 25 }, { id: 3, name: 'Bob', age: 30 } ], tableColumns: [ { field: 'id', title: 'ID', width: 80 }, { field: 'name', title: 'Name', width: 100 }, { field: 'age', title: 'Age', width: 80 } ], dynamicColumns: [ { key: 'age', field: 'age', title: 'Age', width: 80 } ], isAgeColumnVisible: true } }, components: { 'vxe-table': Table, 'vxe-table-column': Column }, methods: { toggleColumn (field) { this.isAgeColumnVisible = !this.isAgeColumnVisible if (this.isAgeColumnVisible) { this.dynamicColumns.push({ key: 'age', field: 'age', title: 'Age', width: 80 }) } else { this.dynamicColumns = this.dynamicColumns.filter(column => column.field !== field) } VXETable.initColumn(this.dynamicColumns) this.$refs.table.refresh() } } } </script> ``` 在上面的代码中,我们创建了一个包含3列数据表格,并且动态添加一个Age列。通过点击按钮,我们可以控制Age列的显示和隐藏。在插槽中,我们定义了一个vxe-table-column组件,用于动态添加列。在toggleColumn方法中,我们通过修改dynamicColumns数组来动态改变Age列的显示和隐藏,并且使用VXETable.initColumn方法来重新初始化列信息,从而实现动态添加或删除列。最后,我们调用了表格的refresh方法来更新表格的显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值