**目标需求:**
点击el-select时,如果不满足操作条件,不能弹出下拉列表,同时要弹出错误提示
**实现方式:**
利用disabled控制el-select是否可操作,并给el-select添加{pointer-events:none}样式,当不满足条件时,就让el-select禁用,同时在<el-select>外面包一层<div>, 给div添加点击事件,el-select被禁用点击时无反应,但是div有反应,在div的点击事件里添加自己的提示逻辑即可
**出现的问题:**
可以实现想要的效果,但是会导致一个问题,当el-select可操作时,点击el-select的输入框时不能聚焦,也不能弹出下拉框,必须要点击下拉图标才会弹出下拉列表
**解决办法:**
动态控制{pointer-events:none}样式,当el-select禁用的时候再添加这个样式就可以了
代码如下:
<template>
<el-select
v-model="val"
placeholder="请输入"
size="mini"
:class="[isDisable ? 'pointer-style' : '']"
:disabled="isDisable"
clearable
filterable
@change="valChange">
<el-option
v-for="item in selectList"
:key="item.id"
:label="item.name"
:value="item.code">
</el-option>
</el-select>
</template>
<style>
.pointer-style{
pointer-events:none
}
<style>