最近遇到的一个需求是在次联选择中只能选择有三级的列表选项、不能选一级和二级的,对于这一问题;起初想到的方案是将数据做处理筛选出只有三级数据的,后来发现el-cascader中有个emitPath属性,而这个属性的作用则是在选中节点改变时,是否返回由该节点所在的各级菜单的值所组成的数组,若设置 false,则只返回该节点的值。所以直接上代码吧
<rep-form-item label="所属分组" prop="groupId" required extra-class="col-lg-12 col-md-12">
<el-cascader ref="cascader" v-model="formModel.groupId" :options="groupOption" :props="{'value': 'id','label': 'name', emitPath:false}" @change="handleChange" />
</rep-form-item>
const cascader = ref()
const handleChange = (value) => {
const nodesInfo = cascader.value.getCheckedNodes()
if (nodesInfo[0]?.level !== 3) {
formModel.value.groupId = ''
ElMessage({
showClose: true,
message: '请选择三级分组',
type: 'info',
duration: 3000
})
return
}
}
getCheckedNodes是属性中自带的一个方法,具体内容大家可直接将内容打印出来查看;希望可以给大家带来一些帮助,下回再见~~