element ui点击按钮弹出款_为element-ui的Select和Cascader添加弹层底部操作按钮

本文详细介绍了如何通过自定义函数为Element-UI的Select和Cascader组件添加底部操作按钮,无需等待官方更新或重写组件。通过插入特定HTML并监听弹层显示,实现了在弹层底部显示并处理点击事件的功能。这种方法虽然可能因官方版本升级而失效,但为当前需求提供了一个实用的解决方案。
摘要由CSDN通过智能技术生成

文章主要介绍了如何为element-ui的Select和Cascader添加弹层底部操作按钮,本文给大家介绍的非常详细,需要的朋友可以参考下

如下图这样把操作按钮放在 select 弹层底部是一种挺常见的设计方式

32db14210373078417dc2c150827dc0c.png

但是很遗憾 element-ui 没有给我们提供这个插槽,我们想实现这个功能只能重写组件或者等官方更新吗,答案当然是否定的!

花了一点时间通过一个函数实现这个功能,支持 el-select 和 el-cascader , 效果点击预览

ddaa677565fa01549854c3b835d19abd.png 

5ec03386621f2068a01a04b3aa793173.png

其实逻辑很简单,把下面这段 html 插入到指定位置就行了

  • 新增商品分类

我这里直接使用 el-cascader 的样式,实际使用中这段 html 可以根据自己的需求修改

上代码,在 methods 写入这段函数

/**

* 为element-ui的Select和Cascader添加弹层底部操作按钮

* @param visible

* @param refName 设定的ref名称

* @param onClick 底部操作按钮点击监听

*/

visibleChange(visible, refName, onClick) {

if (visible) {

const ref = this.$refs[refName];

let popper = ref.$refs.popper;

if (popper.$el) popper = popper.$el;

if (!Array.from(popper.children).some(v => v.className === 'el-cascader-menu__list')) {

const el = document.createElement('ul');

el.className = 'el-cascader-menu__list';

el.style = 'border-top: solid 1px #E4E7ED; padding:0; color: #606266;';

el.innerHTML = `

商品分类管理

`;

popper.appendChild(el);

el.onclick = () => {

// 底部按钮的点击事件 点击后想触发的逻辑也可以直接写在这

onClick && onClick();

// 以下代码实现点击后弹层隐藏 不需要可以删掉

if (ref.toggleDropDownVisible) {

ref.toggleDropDownVisible(false);

} else {

ref.visible = false;

}

};

}

}

},

el-select 跟 el-cascader 的调用方式一致,这里以 el-cascader 举例

:options="cascaderOptions"

v-model="cascaderValue"

@visible-change="v => visibleChange(v, 'cascader', cascaderClick)"

ref="cascader"

/>

提示:后期可能会随着官方版本升级失效,谨慎使用

总结

以上所述是小编给大家介绍的为element-ui的Select和Cascader添加弹层底部操作按钮,希望对大家有帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值