当前位置:   article > 正文

Element-UI Cascader组件 清除按钮位置的修改_input框删除按钮位置修改

input框删除按钮位置修改

众所周知,Elementui的级联选择器里有清空选项按钮,但缺点和是下拉的icon放在同一个位置,于是产品就不乐意了,要求整改

 目标效果如下图所示:

 

先说一下实现思路:

1.把组件自带的clearable禁用掉,然后给组件添加refs,步骤3会用到(见蓝色框);

2.用一个盒子包裹Cascader组件,然后在这个盒子里添加一个icon,然后使用子绝父相,调整好icon的位置(见红色框);

  1. <div class="cascader_box">
  2. <el-cascader
  3. placeholder="必填"
  4. ref="cascaderlabel"
  5. v-on:change='selectHandle'
  6. v-model="submitValue"
  7. :options="departmentList"
  8. :collapse-tags="true"
  9. :clearable="false"
  10. :props="casProps">
  11. </el-cascader>
  12. <i class="el-input__icon el-icon-circle-close clear_icon" v-on:click="clearCascader"></i>
  13. </div>
  14. <!-- 很想吐槽CSDN的缩进判断,每次贴代码都要调整半天 -->

3.调整CSS(至于为什么是原生CSS只能说这是个很老的项目了)使用:hover属性,当鼠标悬浮在包裹cascader组件的盒子时,清空图标显示。使用top和transform: translateY()以达到垂直居中效果:

  1. .cascader_box{
  2. position: relative;
  3. }
  4. .clear_icon{
  5. font-size: 14px;
  6. position: absolute;
  7. top: 50%;
  8. transform: translateY(-50%);
  9. right: 21px;
  10. /* right不固定,可以慢慢调整到自己喜欢的位置 */
  11. display: none;
  12. color: #ccc;
  13. }
  14. .cascader_box:hover .clear_icon{
  15. cursor: pointer;
  16. display: block;
  17. }
  18. .el-input__inner{
  19. width: 180px !important;
  20. /* 宽度不固定,具体看需求 */
  21. }

4.给icon添加一个v-on:click触发的函数,在函数里面调用清空方法,清空的代码我是上网查的,原文地址:element-ui cascader 重置按钮触发清空操作 - 不服憋着 - 博客园

  1. // js
  2. clearCascader(){
  3. let obj = {}
  4. obj.stopPropagation = () => {}
  5. try{
  6. this.$refs.cascaderlabel.clearValue(obj)
  7. }catch(err){
  8. this.$refs.cascaderlabel.handleClear(obj)
  9. }
  10. },

5.记得把$refs后面的名字改成自己在html里写的ref名字

 大功告成,希望这篇文章能够帮到你。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/120777?site
推荐阅读
相关标签
  

闽ICP备14008679号