el-tab-pane切换组件,通过el-badge右上方显示数量

先看效果,需求做一个切换栏,并且切换栏的右上方显示数字,无数据显示0(现在为mock数据并不是真实数据,所以显示为0)

这个是真实数据通过条数,显示数量

常规的切换栏不需要显示数字很简单 ,通过name不同值进行切换传参,后台就可以通过传的不同name去返回对应的数据

   <el-tabs v-model="type" class="demo-tabs" @tab-change="resetQuery">
        <el-tab-pane label="A" name="00" />
        <el-tab-pane label="B" name="01" />
        <el-tab-pane label="C" name="02" />
        <el-tab-pane label="D" name="03" />
        <el-tab-pane label="E" name="04" />
      </el-tabs>



    /* 初始值,就是tab初始底部横线显示的位置,为默认数据 */
    const type = $ref('0')

    /* 表单绑定的ref */
    const queryRef = $ref<FormRef>(null)

    /** 搜索按钮操作 */
    function handleQuery() {
      queryParams.pageNum = 1
      getList()
    }

    /** 重置按钮操作 */
    function resetQuery() {
      queryRef?.resetFields()
      handleQuery()
    }


如果显示数量就需要使用插槽和el-badge 组件,并且通过computed计算属性计算是否有值,zeroNumber为下方script定义的计算属性

        <el-tab-pane name="00">
          <template #label>
            <span> A
              <el-badge :value="zeroNumber" />
            </span>
          </template>
        </el-tab-pane>

 

const zeroNumber = computed({
  get: () => {
    const temp = org?.find((e: any) => e.type === '00')

    if (temp)
      return temp.warningCountNumber

    return 0
  },
  set: (newValue) => {
    org.warningCountNumber = newValue
  },
})

Element Plus是一个基于Vue.js的开源UI组件库,它结合了Element UI的设计理念和最新的Web技术。当你想要在`<el-tabs>`(标签页)中配合`<el-dropdown>`(下拉菜单)实现点击每个标签页图标时展示对应下拉菜单,同时切换到新的标签页,你可以这样做: 首先,确保已安装Element Plus并引入相应的CSS和JS文件。然后,在HTML结构中设置这样的布局: ```html <template> <div> <el-tabs v-model="activeTab"> <el-tab-pane label="选项1" :key="1"> <el-button slot="icon" @click="showDropdown(1)">更多操作</el-button> <el-dropdown placement="bottom-end" v-if="dropdownVisible1"> <!-- 下拉菜单内容 --> </el-dropdown> </el-tab-pane> <el-tab-pane label="选项2" :key="2"> <el-button slot="icon" @click="showDropdown(2)">其他操作</el-button> <el-dropdown placement="bottom-end" v-if="dropdownVisible2"> <!-- 下拉菜单内容 --> </el-dropdown> </el-tab-pane> </el-tabs> </div> </template> <script> export default { data() { return { activeTab: 1, dropdownVisible1: false, dropdownVisible2: false, }; }, methods: { showDropdown(index) { this.dropdownVisible[index] = !this.dropdownVisible[index]; } } }; </script> ``` 在这个例子中,我们给每个`el-tab-pane`中的按钮添加了一个`slot="icon"`,并在按钮上绑定了`@click`事件,当点击时调用`showDropdown()`方法,控制对应的`dropdownVisible`状态。 每次切换到新的`el-tab-pane`时,通过改变`v-model`绑定的`activeTab`值,可以达到切换标签的效果,并保持当前下拉菜单的状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值