废话不多说,直接上代码
<template>
<uni-table ref="table" border stripe type="selection" emptyText="暂无更多数据" @selection-change="selectionChange">
<uni-tr>
<uni-th width="100" align="center" class="table-head">表号</uni-th>
<uni-th width="100" align="center" class="table-head">平台类型</uni-th>
<uni-th width="100" align="center" class="table-head">IMEI</uni-th>
<uni-th width="100" align="center" class="table-head">ICCID</uni-th>
<uni-th width="100" align="center" class="table-head">应用类型</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in tableData" :key="index">
<uni-td align="center">{{ item.date }}</uni-td>
<uni-td align="center">
<view class="name">{{ item.exponent }}</view>
</uni-td>
<uni-td align="center">{{ item.usage }}</uni-td>
<uni-td align="center">{{ item.gas_bill }}</uni-td>
<uni-td align="center">{{ item.type }}</uni-td>
</uni-tr>
</uni-table>
</template>
<script>
data() {
return {
tableData: [], // 表格数据
}
},
methods: {
selectionChange(e) {
console.log('选择的行数据', e)
}
}
</script>
我开是打印到这得时候也是有点蒙蔽,官方给的多选回调参数e,只是返回了当前选择的是哪一行的下标,而选择的当前行的数据并没有反给我们。
需要我们自己用返回的下标来获取当前对应表格哪一行的数据,思路如下
- 将选择的下标存在一个数组中,
- 遍历下标数组,将数组中的值,作为table表格数组的下标来获取对应的当前行数据
selectionChange(e) {
let arrList = [] // 选择的行数据
let selectedIndexs = [] // 选择的下标数组
selectedIndexs = e.detail.index
// 将数组中的值,作为table表格数组的下标来获取对应的当前行数据
selectedIndexs.map(i => {
arrList.push(this.tableData[i])
})
console.log('选中的当前行数据', arrList)
}