element-ui在下拉选项框中添加一个按钮,实现子选项的添加

这篇具有很好参考价值的文章主要介绍了element-ui在下拉选项框中添加一个按钮,实现子选项的添加。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

element-ui带下拉框的按钮,vue,# elementUI,javascript,开发语言,ecmascript文章来源地址https://www.toymoban.com/news/detail-839596.html

父组件
<el-select
                    v-model="value"
                    placeholder="请选择"
                    ref="add"
                    @visible-change="
                      (v) =>
                        visibleChange(
                          v,
                          'add',
                          //() => {
                           // categoriesClick(temp);//需要传递参数
                         // },
                         categoriesClick,//无需参数
                          '添加设备'
                        )
                    "
                  >
                    <el-option
                      v-for="itemin options"
                      :key="item.value"
      				  :label="item.label"
    			 	  :value="item.value"
                    />
                  </el-select>


<el-dialog
        title="添加子选项"
        :visible.sync="openOff"
        width="70%"
        append-to-body
      >
        <childrenVue 
          @closeHandle="closeHandle"
        />
      </el-dialog>

<script>
import childrenVue from "子组件路径";
  export default {
  components: { childrenVue  },
    data() {
      return {
        openOff:false,
        options: [{
          value: '选项1',
          label: '黄金糕'
        }, {
          value: '选项2',
          label: '双皮奶'
        }, {
          value: '选项3',
          label: '蚵仔煎'
        }, {
          value: '选项4',
          label: '龙须面'
        }, {
          value: '选项5',
          label: '北京烤鸭'
        }],
        value: ''
      }
    }
    methods:{
// 关闭弹窗(传递给子组件处理弹窗关闭)
    closeHandle() {
      this.openOff = false;
    },
    // 弹出添加子选项弹窗(value未传递的参数)
    categoriesClick(value) {   
      this.openOff = true;
    },
    // 在下拉框处显示添加按钮
    visibleChange(visible, refName, onClick, addname) {
      if (visible) {
        const ref = this.$refs[refName];
        let popper = ref[0].$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 =
            `<li class="el-cascader-node text-center" style="height:50px;line-height: 50px">
                <span class="el-cascader-node__label"><i class="font-blue el-icon-plus"></i>` +
            addname +
            `</span>
                </li>`;
          popper.appendChild(el);
          el.onclick = () => {
            // 底部按钮的点击事件 点击后想触发的逻辑也可以直接写在这
            onClick && onClick();

            // 以下代码实现点击后弹层隐藏 不需要可以删掉
            if (ref[0].toggleDropDownVisible) {
              ref[0].toggleDropDownVisible(false);
            } else {
              ref[0].visible = false;
            }
          };
        }
      }
    },
	}
  }
</script>
子组件
<template>
  <div>
   <el-button
        type="primary"
        size="small"
        @click="close"
        >点击关闭</el-button
      >
  </div>
</template>

<script>
  export default {
    data() {
      return {
      }
    }
    methods:{
		close(){
			this.$emit("closeHandle");
		}
	}
  }
</script>

到了这里,关于element-ui在下拉选项框中添加一个按钮,实现子选项的添加的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element-ui select下拉框滚动加载更多

    当下拉框数据过多时,加载会非常慢,所以使用分页去显示,通过监听滚动事件来达到分页效果。 我是使用Vue自定义指令来做的。 一、首先在src下创建一个js文件,完成自定义指令的编写 有没有大神告诉我,自定义指令为啥在同一个页面不能使用多次? 二、在main.js中引入进来

    2024年02月16日
    浏览(48)
  • vue+element-ui 实现下拉框滚动加载

    该功能是由 自定义滚动指令 结合下拉框 :remote-method 远程搜索 实现的 开启远程搜索 参考官方文档 绑定自定义指令 v-el-select-loadmore=“loadmore”

    2024年02月14日
    浏览(60)
  • 页面滚动时隐藏element-ui下拉框/时间弹框

    场景 在类后台管理的系统中,当(有垂直滚动时)点击下拉框后滚动页面,会发现下拉项会遮盖住 layout 正常页面: 滚动后: 解决 在页面滚动或者缩放时隐藏下拉项即可(借助点击目标元素,下拉项会自动隐藏的特点) 使用

    2024年02月12日
    浏览(55)
  • 【vue组件】使用element-ui 实现三级联动下拉选择

    实现的思路是第一个下拉选择在选择了选项后将该选项的信息传递到接口请求下一个选项的内容,依次类推 然后在清除了上一级选择的选项后要将其次级和子孙级的选项都清除(包括选择里的列表内容) 下面看具体代码: 效果图:

    2024年02月11日
    浏览(59)
  • element-ui ,el-upload 文件上传必选项校验

    代码

    2024年02月11日
    浏览(63)
  • Element-ui自定义组件:可折叠按钮列表

    1、工具栏的功能按钮要超宽不换行,宽度不够折叠进”更多“按钮; 2、下拉菜单按钮和纯图标按钮默认不折叠; 3、折叠前后按钮组顺序保持不变。 1、默认展开全量按钮,并对其宽度进行缓存; 2、循环计算展开按钮的总宽度 与 容器宽度 的差值,并进行按钮的折叠与释放

    2024年02月11日
    浏览(51)
  • vue+element-ui Dropdown下拉菜单(获取某行数据)

    1、通过command方法直接传当前选中行的整个数据 html js 效果:

    2024年02月16日
    浏览(59)
  • 基于Element-ui 封装带分页的下拉选择器组件

    使用 Element-ui的 el-select组件时,如果下拉选项过多,一是查找选项困难,二是数据量超大(比如1w+)组件直接会卡死,所以考虑做一个带分页的下拉选择器(样式还可以再优化)

    2024年02月11日
    浏览(40)
  • element-ui 动态渲染input输入框、下拉框并校验

    先看效果: 代码实现: HTML JS

    2024年02月16日
    浏览(43)
  • 修改Element-ui中的Sidebar列表下拉框子项的宽度

    vue项目引入element-ui的侧边栏时,当调整sidebar侧边栏大小为180px时,下拉列表子项的宽度会超出(默认为200px)。 加入方式二进行修改更简便 如图所示: 列表的默认样式中的子项宽度未能正确修改成和父级的一样, 即 ul 下的 li 未能和 ul 保持一样的宽度。 1、浏览器F12打开元

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包