element-ui Table組件結(jié)合checkbox實現(xiàn)單選

場景:最近在做一個需求,導出時選擇導出模版,要求是只能單選,如下圖:

image.png

解決方案:結(jié)合element的多選框方法

html代碼<template>

<div>
  <el-table
    :data="tableData">
    <el-table-column
      label="__">
      <template slot-scope="scope">
        <el-checkbox @change="checkboxChange(props.obj.row)" v-model="scope.row.checked"></el-checkbox> // 添加一個多選框,控制選中與否
      </template>
    </el-table-column>
    <el-table-column
      prop="name"
      label="模版名稱">
    </el-table-column>
    <el-table-column
      label="操作">
      <template slot-scope="scope">預覽模版</template>
    </el-table-column>
  </el-table>
</div>
</template>

js代碼:

export default {
    data () {
      return {
        tableData: [],
        currentSelectItem: {} // 當前選中的值
      }
    },

    created () {
      this.setTable()
    },

    methods: {
      setTable () {
        let resdata = [{
          id: 1,
          name: 'xxx'
        }, {
          id: 2,
          name: 'xxx',
        }]
        // 后臺數(shù)據(jù)返回后,手動添加一個checked屬性控制選中與否
        resdata.forEach(item => {
          item.checked = false
        })
        this.tableData = resdata
      },

      checkboxChange(row) {
          this.dataTable.data.forEach((item) => {
            // 排他,每次選擇時把其他選項都清除
            if (item.id !== row.id) {
              item.checked = false
            }
          })
          console.log(row) // 這里可以把當前選中的這一項先保存起來
          this.currentSelectItem = row.checked ? row : ''
      },
    }
  }

最后獲取的currentSelectItem值,就是選中的值。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容