Element ui Table表格匹配字典项中的数据

31 篇文章 0 订阅
13 篇文章 0 订阅

在工作中通常会遇到Table表格匹配字典项中的数据这里介绍几种方法大家仅供参考

    <el-table
      :data="tableData"
      style="width: 100%">
      <el-table-column prop="date" label="日期" width="180">
      </el-table-column>
      <el-table-column prop="type" label="类型" width="180">
      <template slot-scope="scope">  
      {{getChangeType(scope.row.type)}}
      </template>
      </el-table-column>
      <el-table-column prop="address" label=""
      :formatter="typeFormatter">
      </el-table-column>
      <el-table-column prop="address" label="地址">
      </el-table-column>
    </el-table>
data() {
        return {
        list: [{
          value: '1',
          label: '张三'
        }, {
          value: '2',
          label: '李四'
        }, {
          value: '3',
          label: '李二'
        }],
        }
      },
methods: {
	//1.使用插槽(个人推荐)
	getChangeType(e) {
      for (var i = 0; i < this.List.length; i++) {
        if (this.List[i].value == e) {
          return this.List[i].label;
        }
      }
    },
   //2.使用:formatter
   typeFormatter: function(row, column) {
        return row.type == 1
          ? "张三"
          : row.type == 2
            ? "李四"
            : row.type == 3 ? "李二" : "你猜?";
		}
	}
	//当然也可以用switch
	typeFormatter: function(row, column) {
      switch (row.type) {
        case "1":
          return "张三";
          break;
        case "2":
          return "李四";
          break;
        case "3":
          return "李二";
          break;
      }
}
  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现这个功能需要在 Element UI 表格的 `@selection-change` 事件中监听选中项的变化,并在选中的项中添加到新的数组中。同时,需要通过表格的 `:row-key` 属性指定每一行数据的唯一标识符,以便在多选时能够正确识别每一行数据。 下面是一个示例代码,实现了将选中的数据添加到新数组中的功能,并将已选中的数据的多选按钮置灰: ```vue <template> <div> <el-table :data="tableData" :row-key="row => row.id" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55"></el-table-column> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="age" label="年龄"></el-table-column> <el-table-column prop="gender" label="性别"></el-table-column> </el-table> <div> <p>已选中的数据:</p> <el-tag v-for="item in selectedData" :key="item.id" closable @close="handleTagClose(item)"> {{ item.name }} </el-tag> </div> </div> </template> <script> export default { data() { return { tableData: [ { id: 1, name: '张三', age: 20, gender: '男' }, { id: 2, name: '李四', age: 22, gender: '女' }, { id: 3, name: '王五', age: 25, gender: '男' }, { id: 4, name: '赵六', age: 27, gender: '女' }, ], selectedData: [], // 选中的数据 } }, methods: { handleSelectionChange(selected) { this.selectedData = selected }, handleTagClose(item) { // 在 selectedData 中移除该项 const index = this.selectedData.indexOf(item) if (index !== -1) { this.selectedData.splice(index, 1) } }, }, } </script> ``` 在模板中,我们通过 `@selection-change` 监听表格的选中项变化,将选中的数据存储到 `selectedData` 数组中。在已选中的数据部分,我们使用 `v-for` 遍历 `selectedData` 数组,将每一项用 `el-tag` 组件进行展示,并提供 `@close` 事件来移除已选中的数据。在 `el-tag` 组件中,我们使用 `closable` 属性来允许该标签可以被关闭。 需要注意的是,在表格中开启多选功能需要在表格中添加 `type="selection"` 的列,这一列会自动生成多选框,用来选择每一行数据。在表格组件中,我们可以通过 `@selection-change` 监听选中项的变化,同时在表格上通过 `v-bind:row-key` 属性指定每一行数据的唯一标识符。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值