直接使用原生title属性实现,通过绑定在el-select上,然后选择后拿到所有的label进行数组切割,得到字符然后赋值给title展示下面我写了一个demo:<template> <div> <el-select v-model="value2" multiple :title="labelStr" @change="computeLabel" collapse-tags style="margin-left: 20px;" placeholder="请选择"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </div> </template> <script> export default { data() { return { options: [{ value: '选项1', label: '黄金糕' }, { value: '选项2', label: '双皮奶' }, { value: '选项3', label: '蚵仔煎' }, { value: '选项4', label: '龙须面' }, { value: '选项5', label: '北京烤鸭' }], value2: [], labelStr: '' } }, methods: { computeLabel() { // 获取所有标签列表 const labelList = [] this.options.forEach(item => { if (this.value2.includes(item.value)) labelList.push(item.label) }) this.labelStr = labelList.join(',') } } } </script>效果:
看了一下 el-select 的API没有开放这个功能,也去看了对应组件的源码,并没有开放对应的 slot。所以建议是直接使用 el-popover 包裹 el-select 组件,使鼠标悬停在选择组件上时展示全部已选项。
直接使用原生title属性实现,通过绑定在el-select上,然后选择后拿到所有的label进行数组切割,得到字符然后赋值给title展示
下面我写了一个demo:
效果: