<template>
  <el-table
    :data="tableData"
    style="width: 100%"
    ref="multipleTable"
    @selection-change="handleSelectionChange"
  >
    <el-table-column
      type="selection"
      width="55">
    </el-table-column>
    <!-- 其他列 -->
  </el-table>
</template>
 
<script>
export default {
  data() {
    return {
      tableData: [], // 表格数据
      selectedRows: [], // 已选行id数组
    };
  },
  methods: {
    // 数据初始加载后,可以根据已选行id数组回显复选框
    loadTableData() {
      // 模拟从API获取数据
      this.tableData = [
        // ...获取到的数据
      ];
      // 回显复选框
      this.tableData.forEach(row => {
        if (this.selectedRows.includes(row.id)) {
          this.$refs.multipleTable.toggleRowSelection(row, true);
        }
      });
    },
    handleSelectionChange(selection) {
      // 当复选框选项变化时更新已选行id数组
      this.selectedRows = selection.map(item => item.id);
    },
  },
  mounted() {
    this.loadTableData();
  },
};
</script>

方法二

//vue3写法
import { ref, reactive, defineProps, defineEmits, nextTick } from 'vue'

const multipleTable = ref(null)
const comonArr = ref([])
nextTick(() => {
    comonArr.value.forEach((row) => {
        const row = tableData.find((f) => f.id = row)
        multipleTable.toggleRowSelection(row, true);
    });
})
10-12 07:17