设为首页收藏本站
天天打卡

 找回密码
 立即注册
搜索
查看: 106|回复: 11

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

[复制链接]

4

主题

69

回帖

215

积分

中级会员

积分
215
发表于 2024-4-20 10:31:50 | 显示全部楼层 |阅读模式
如下图这样把操作按钮放在
  1. select
复制代码
弹层底部是一种挺常见的设计方式

但是很遗憾
  1. element-ui
复制代码
没有给我们提供这个插槽,我们想实现这个功能只能重写组件或者等官方更新吗,答案当然是否定的!
花了一点时间通过一个函数实现这个功能,支持
  1. el-select
复制代码
  1. el-cascader
复制代码
, 效果点击预览

其实逻辑很简单,把下面这段
  1. html
复制代码
插入到指定位置就行了
  1. <ul class="el-cascader-menu__list" style="border-top: solid 1px #E4E7ED;padding:0">
  2.   <li class="el-cascader-node" style="height:38px;line-height: 38px">
  3.     <i class="el-icon-plus"></i>
  4.     <span class="el-cascader-node__label">新增商品分类</span>
  5.     <i class="el-icon-arrow-right el-cascader-node__postfix"/>
  6.   </li>
  7. </ul>
复制代码
我这里直接使用
  1. el-cascader
复制代码
的样式,实际使用中这段
  1. html
复制代码
可以根据自己的需求修改
上代码,在
  1. methods
复制代码
写入这段函数
  1. /**
  2. * 为element-ui的Select和Cascader添加弹层底部操作按钮
  3. * @param visible
  4. * @param refName  设定的ref名称
  5. * @param onClick  底部操作按钮点击监听
  6. */
  7. visibleChange(visible, refName, onClick) {
  8.   if (visible) {
  9.     const ref = this.$refs[refName];
  10.     let popper = ref.$refs.popper;
  11.     if (popper.$el) popper = popper.$el;
  12.     if (!Array.from(popper.children).some(v => v.className === 'el-cascader-menu__list')) {
  13.       const el = document.createElement('ul');
  14.       el.className = 'el-cascader-menu__list';
  15.       el.style = 'border-top: solid 1px #E4E7ED; padding:0; color: #606266;';
  16.       el.innerHTML = `<li class="el-cascader-node" style="height:38px;line-height: 38px">
  17. <i class="el-icon-menu"></i>
  18. <span class="el-cascader-node__label">商品分类管理</span>
  19. <i class="el-icon-arrow-right el-cascader-node__postfix"/>
  20. </li>`;
  21.       popper.appendChild(el);
  22.       el.onclick = () => {
  23.         // 底部按钮的点击事件 点击后想触发的逻辑也可以直接写在这
  24.         onClick && onClick();

  25.         // 以下代码实现点击后弹层隐藏 不需要可以删掉
  26.         if (ref.toggleDropDownVisible) {
  27.           ref.toggleDropDownVisible(false);
  28.         } else {
  29.           ref.visible = false;
  30.         }
  31.       };
  32.     }
  33.   }
  34. },
复制代码
  1. el-select
复制代码
  1. el-cascader
复制代码
的调用方式一致,这里以
  1. el-cascader
复制代码
举例
  1. <el-cascader
  2.     :options="cascaderOptions"
  3.     v-model="cascaderValue"
  4.     @visible-change="v => visibleChange(v, 'cascader', cascaderClick)"
  5.     ref="cascader"
  6. />
复制代码
提示:后期可能会随着官方版本升级失效,谨慎使用
总结
以上所述是小编给大家介绍的为element-ui的Select和Cascader添加弹层底部操作按钮,希望对大家有帮助!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

0

主题

42

回帖

84

积分

注册会员

积分
84
发表于 2024-4-25 11:59:22 | 显示全部楼层
666666666666

2

主题

61

回帖

166

积分

注册会员

积分
166
发表于 2024-6-1 22:02:28 | 显示全部楼层
同意!

2

主题

43

回帖

131

积分

注册会员

积分
131
发表于 2024-6-7 01:10:15 | 显示全部楼层
牛逼
  • 打卡等级:偶尔看看
  • 打卡总天数:9
  • 打卡月天数:0
  • 打卡总奖励:120
  • 最近打卡:2024-09-12 14:48:46

2

主题

65

回帖

314

积分

中级会员

积分
314

热心会员付费会员

发表于 2024-6-20 00:58:02 | 显示全部楼层
我不确定这个信息的准确性,请再确认一下

0

主题

59

回帖

119

积分

注册会员

积分
119
发表于 2024-7-17 19:37:10 | 显示全部楼层
6666666666

4

主题

48

回帖

186

积分

注册会员

积分
186
发表于 2024-8-1 08:31:14 | 显示全部楼层
嘎嘎嘎嘎嘎嘎嘎

1

主题

55

回帖

133

积分

注册会员

积分
133
发表于 2024-8-12 22:21:53 | 显示全部楼层
666666666666666666

2

主题

42

回帖

130

积分

注册会员

积分
130
发表于 2024-8-18 23:16:34 | 显示全部楼层
已测试,非常不错

1

主题

56

回帖

136

积分

注册会员

积分
136
发表于 2024-9-16 16:36:31 | 显示全部楼层
牛逼
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|爱云论坛 - d.taiji888.cn - 技术学习 免费资源分享 ( 蜀ICP备2022010826号 )|天天打卡

GMT+8, 2024-11-24 09:55 , Processed in 0.104654 second(s), 28 queries .

Powered by i云网络 Licensed

© 2023-2028 正版授权

快速回复 返回顶部 返回列表