<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>elementUI</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
</head>
<body>
<div id="app">
<el-button @click="openDialog">打开dialog</el-button>
<p>{{tableData}}</p>
<p>{{[tableData[2]]}}</p>
<p>{{multipleSelection}}</p>
<el-dialog title="表格" :visible.sync="dialogVisible">
<el-table ref="table" :data="tableData" border @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55">
</el-table-column>
<el-table-column prop="id" label="设备名称">
</el-table-column>
<el-table-column prop="name" label="门禁类型">
</el-table-column>
</el-table>
<br>
<!-- 只能用获取table下标这种写法 -->
<el-button @click="toggleSelection([tableData[2]], true)">测试1</el-button>
<!-- 下面这种写法不行 -->
<el-button @click="toggleSelection(multipleSelection, true)">测试2</el-button>
</el-dialog>
</div>
<script>
new Vue({
el: "#app",
data: {
tableData: [{
id: '1',
name: '张三'
},
{
id: '2',
data2: '李四'
},
{
id: '3',
data2: '王五'
}
],
dialogVisible: false,
multipleSelection: [{
id: '3',
data2: '王五'
}]
},
methods: {
openDialog() {
this.dialogVisible = true;
this.$nextTick(() => {
this.toggleSelection([this.tableData[2]], true);
});
},
toggleSelection(rows, selected) {
if (rows) {
rows.forEach(row => {
this.$refs["table"].toggleRowSelection(row, selected);
});
}
},
handleSelectionChange(val) {
this.multipleSelection = val;
}
}
})
</script>
</body>
</html>