vue2-element组件封装el-button-groups

前言

63272be0a1686d6c2aa043007dcf5dd3.png

大家好 我是歌谣 今天继续给大家带来element ui组件el-button的封装

  使用方法

6efbf94ff59d9fe8cf5bfbb7e6522234.png

<btn-groups :btns="btns" :max="max" class="page-btns">
  </btn-groups>

参数部分

fdaaba9799cc6c2456dea6c006728e17.png

  name控制属性名

550dcf74b3af3cdfbfcfb7fdedc48aa9.png

  显示按钮的名称

{{ item.name }}
btns:[{
                //按钮名称
                name:"歌谣",
                //按钮类型
            },{
                name:"歌谣1"
            },{
                name:"歌谣2"
            },{
                name:"歌谣3"
            }],

 展示

77c6e0fb4d30c09ea414b51a39062d0b.png

bbb2938a350722cd04137702fa06aeb3.png

 type控制按钮样式

4f028fada7031892e1219595c6104fb4.png

 显示按钮的不同样式类型

:type="item.type ? (item.type === 'default' ? '' : 
item.type) : 'primary'"
btns:[{
                //按钮名称
                name:"歌谣",
                //按钮类型
                type:"primary"
            },{
                name:"歌谣1",
                 type:"default"
            },{
                name:"歌谣2",
                type:"primary"
            },{
                name:"歌谣3",
                type:"default"
            }],

运行结果

3ce1a1a7370b8e9866e087e8ed909658.png

649702f95cabf67ddd4352451b735104.png

 多个按钮的产生 

6abab4563aecd685238b2d1f2b4ca672.png

  传入的是数组

btns: {
      type: Array,
      default() {
        return [];
      }
    },
v-for="(item, index) in mainBtns"

 运行结果

5474081395cddadbcf2d61c2599627ea.png

5eeb5756909e1757e54fecab36a95e88.png

 hide处理按钮隐藏

60ba267b32e5fa5498d343fa7139c63f.png

btns:[{
                //按钮名称
                name:"歌谣",
                //按钮类型
                type:"primary",
                //按钮是否隐藏
                hide:true
            },{
                name:"歌谣1",
                 type:"default"
            },{
                name:"歌谣2",
                type:"primary"
            },{
                name:"歌谣3",
                type:"default"
            }],

 运行结果

e353493a06d8d8ec4bf73bce91bac30a.png

e4985bb21c3121157bcba4d2a2abcf60.png

 icon颜色

e602b18beacb1816dc1867118bc59bd4.png

btns:[{
                //按钮名称
                name:"歌谣",
                //按钮类型
                type:"primary",
                //按钮是否隐藏
                hide:false,
                // icon颜色
                icon:"icon-back"
            },{
                name:"歌谣1",
                 type:"default",
                 icon:"icon-back"
            },{
                name:"歌谣2",
                type:"primary"
            },{
                name:"歌谣3",
                type:"default"
            }],

 运行结果

5361b3ea190b2c6afd76bea0458020c6.png

a71722cb91a9659efb3e3c28ecb31ba1.png

 背景颜色属性color

9b91d69200b082bf899780299bc9b8c4.png

:style="
        item.color ? { background: item.color, borderColor: 
        item.color } : {}
      "
btns:[{
                //按钮名称
                name:"歌谣",
                //按钮类型
                type:"primary",
                //按钮是否隐藏
                hide:false,
                // icon颜色
                icon:"icon-back",
                //背景颜色
                color:"pink"
            },{
                name:"歌谣1",
                 type:"default",
                 icon:"icon-back"
            },{
                name:"歌谣2",
                type:"primary"
            },{
                name:"歌谣3",
                type:"default",
                 //背景颜色
                color:"pink"
            }],

 运行结果

f3b1014bcf8ca7848592f4b7bf0149d2.png

84047c692dc3aaeb2f5821d48636a101.png

 控制按钮是否禁用

2468a6727b45c8d2459aa13c5bbfe9f6.png

:disabled="disabled(item)"
disabled(btn) {
      if (typeof btn.disabled === 'function') {
        return btn.disabled();
      }
      return btn.disabled;
    },

 运行结果

e586536aa6759f7ac05eff45ae3f5b74.png

7221cab31daebe971015f8e7c9b251b5.png

点击事件btnClick

aa05221b8ca8838b293dbbcad0602451.png

@click="btnClick(item, $event)"
btnClick(btn, event) {
      console.log(btn,event,"btn event is ")
      if (typeof btn.click === 'function') {
        btn.click(event, btn);
      }
    }
btns:[{
                //按钮名称
                name:"歌谣",
                //按钮类型
                type:"primary",
                //按钮是否隐藏
                hide:false,
                // icon颜色
                // icon:"icon-back",
                //背景颜色
                color:"pink",
                 disabled:true
            },{
                name:"歌谣1",
                 type:"default",
                 icon:"icon-back"
            },{
                name:"歌谣2",
                type:"primary",
                disabled:true
            },{
                name:"歌谣3",
                type:"default",
                 //背景颜色
                color:"pink",
                 click: this.handleCreate
            }],

运行结果

d929e36f95c22e52fd64a437482f7799.png

d8c4b8e45985bcbe844372d692673583.png

720c21d10b5d4d027995493573738344.png

 下拉菜单max属性

f23f4959b57ff1590a336feba08b0d64.png

btns:[{
                //按钮名称
                name:"歌谣",
                //按钮类型
                type:"primary",
                //按钮是否隐藏
                hide:false,
                // icon颜色
                // icon:"icon-back",
                //背景颜色
                color:"pink",
                 disabled:true
            },{
                name:"歌谣1",
                 type:"default",
                 icon:"icon-back"
            },{
                name:"歌谣2",
                type:"primary",
                disabled:true
            },{
                name:"歌谣3",
                type:"default",
                 //背景颜色
                color:"pink",
                 click: this.handleCreate
            },{
                name:"歌谣3",
                type:"default",
                 //背景颜色
                color:"pink",
                 click: this.handleCreate
            },{
                name:"歌谣3",
                type:"default",
                 //背景颜色
                color:"pink",
                 click: this.handleCreate
            }],
            max:3
<el-dropdown v-if="dropDownBtns.length" class="dropdown">
      <el-button size="mini" type="primary">
        更多
        <i class="el-icon-arrow-down el-icon--right"></i>
      </el-button>
      <el-dropdown-menu slot="dropdown">
        <el-dropdown-item
          v-for="(item, index) in dropDownBtns"
          @click.native="btnClick(item, $event)"
          :disabled="disabled(item)"
          :key="index"
          :icon="item.icon"
          >{{ item.name }}</el-dropdown-item
        >
      </el-dropdown-menu>
    </el-dropdown>
dropDownBtns() {
      const list = this.btns.filter(
        (item) =>
          !(item.permissions && this.permissions[item.permissions] !== true)
      );




      const end = list.length - this.max;
      if (end <= 0) {
        return [];
      }




      return list.slice(0, end + 1);
    }

运行结果

d43d999eaf8991f5a63300a64fb44582.png

6bae0cf355ccaf8f1db77896f2cff279.png

总结

0e8022ebb54e62ac8de15eec4c44e978.png

我是歌谣 想加入前后端不闲聊技术群统一加geyaoisnice 分享技术 分享快乐

outside_default.png

点击上方蓝字关注我们

outside_default.png

abda2d9716988cc22f423da8b0cfe1e0.png

下方查看历史文章

10be127ef9c12177c6f7a3adbede2728.png

node之http模块之fs模块(续)

node之http模块之fs模块

node之http模块之爬虫和event

ES6模块化探究tab切换新模式

vue2+element环境搭建实现table编辑效果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值