vue3element如何通过表格外的按钮来控制表格内部的所有状态全选全不选
想要在vue3ui框架的表格外部来控制表格内部的所有状态的话,需要获取到表格的实例来进行控制。vue3如何获取表单的实例呢?
<template>
<div>
<el-table ref="multipleTableRef" :data="state.carlist" style="width: 100%"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column prop="name" label="商品名称" />
<el-table-column prop="dic" label="商品描述" />
<el-table-column prop="price" label="商品价格" />
<el-table-column prop="" label="商品小计">
<template #default="scope">{{ scope.row.price * scope.row.num }}¥</template>
</el-table-column>
<el-table-column label="Date" lable="购买数量">
<template #default="scope">
<el-input-number style="width: 150px;" v-model="scope.row.num" :min="1" :max="10" />
</template>
</el-table-column>
</el-table>
<p>
<span>
<input type="checkbox" v-model="state.allflag" @click="all">
全选
</span>
<span>总价:{{ getters.num.price }}</span>
<span>总数:{{ getters.num.num }}</span>
<el-button type="danger" @click="commit('delok')">删除选中</el-button>
</p>
</div>
</template>
<script setup >
import { useStore } from 'vuex';
import { ref } from 'vue';
const { state, commit, getters } = useStore()
const multipleTableRef = ref()
//选中的
const handleSelectionChange = (val) => {
commit('oklist', val)
}
const all = () => {
multipleTableRef.value.toggleAllSelection()
}
</script>
上面表格绑定的ref就是你下面定义的也就是这个表格的实例
ref="multipleTableRef"
const multipleTableRef = ref()
如果在表格外部切换表格内部的所有状态的话需要配合表格的toggleAllSelection事件来进行全选全不选,代码如下
//html片段
<el-button type="danger" @click="commit('delok')">删除选中</el-button>
//js片段
const all = () => {
multipleTableRef.value.toggleAllSelection()
}
这样就可以在表格外部来实现表格内部的全选全不选的状态切换了