vue样式
<el-select
v-model="checkedValues"
multiple
placeholder="Please select"
style="width: 640px"
@focus="editUserRole()">
<el-checkbox v-model="isAllSelected" style="padding-left: 18px" @change="selectAll"
>Select All</el-checkbox
>
<el-option
v-for="(item, index) in roleOptions"
:key="index"
:label="item.roleName"
:value="item.id">
</el-option>
</el-select>
调用的方法
<script setup>
// 是否全选
const isAllSelected = ref(false);
// 下拉框中选中的值
const checkedValues = ref([]);
/** 下拉框中获取值的方法 */
function editUserRole() {
roleOptions.value = [];
const params = {
userIds: ids.value
};
//下面是调用后端接口的方法
getRoleListByBU(params).then((res) => {
roleOptions.value = res.data;
});
}
function selectAll() {
isAllSelected.value = false;
if (checkedValues.value.length === roleOptions.value.length) {
checkedValues.value = []; // 全选状态下,取消全部选择
isAllSelected.value = false;
} else {
checkedValues.value = roleOptions.value.map((item) => item.id); // 全选
isAllSelected.value = true;
}
}
</script>