?效果展示:
<el-table style="height: 500px;" :data="tableData" border empty-text="暫無數據" v-loading="loading":header-cell-style="{ 'text-align': 'center' }" :cell-style="{ 'text-align': 'center' }" show-overflow-tooltipref="multipleTable" @select="handleSelection" @select-all="handleCount"><el-table-column type="selection" width="40" fixed="left" />
</el-table>
// 多選
const checkId = ref([]);
const multipleTable = ref()
// 手動勾選單選的情況
const handleSelection = (val) => {if (checkId.value.length > val.length) {// 取消選中let checkAll = checkId.value;checkId.value = val;checkAll.forEach((item) => {let v = val.find(i => i.qdfphm === item.gl_qdfphm); //關聯的條件if (v === undefined && item.gl_qdfphm != '') {multipleTable.value.toggleRowSelection(item, false);checkId.value = val.filter(v => item.id != v.id)}})} else {// 選中checkId.value = val;let v = val[val.length - 1];if (v.gl_qdfphm != '') {let vv = tableData.value.find(item => item.qdfphm == v.gl_qdfphm) //關聯的條件multipleTable.value.toggleRowSelection(vv, true);checkId.value.push(vv);}}if (chooseTab.value == 1) {badgeTotal.value.total_supply = checkId.value.length} else if (chooseTab.value == 2) {badgeTotal.value.total_delete = checkId.value.length}
}
// 手動勾選全選情況(計算總數)
const handleCount = (val) => {checkId.value = val;
}
總結:重點在toggleRowSelection()方法