<template>
<el-select v-model="data.roleIds" class="m-2" placeholder="Select" @change="changeRole" multiple size="large">
<li class="el-select-dropdown__item" ><span> <el-checkbox v-model="data.checkAllIsSelect" @change="checkAll">全选</el-checkbox></span></li>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</template>
<script lang="ts" setup>
import { ref,reactive } from 'vue'
const value = ref('')
const data = reactive({
checkAllIsSelect: false, //是否全选
roleIds: [],// 选中的数据
})
const options = [
{
value: 'Option1',
label: 'Option1',
},
{
value: 'Option2',
label: 'Option2',
},
{
value: 'Option3',
label: 'Option3',
}
]
function checkAll() {
data.roleIds = data.checkAllIsSelect? options.map(val=> val.value) :[]
}
function changeRole(val) {
data.checkAllIsSelect = options.length === val.length ? true: false
}
</script>