element-plus的el-tag标签关闭标签时的高亮显示逻辑

这篇具有很好参考价值的文章主要介绍了element-plus的el-tag标签关闭标签时的高亮显示逻辑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.tag 实战步骤

  1. 首页的tag一开始就会存在,而且是不能进行删除的

  2. 当点击左侧栏的时候,如果tag没有该菜单名称则新增,如果已经有了那么当前tag背景为蓝色。

  3. 删除当前tag,如果是最后一个,那么路由调整到它前面那个标签并且背景变蓝,如果不是最后一个那么路由调整到它后面那个标签并且背景变蓝。

  4. 还有我们注意这个tag不论路由如何切换都是会存在的,所以这个tag一定要存在我们之前定义的Main.vue中。

element-plus的el-tag标签关闭标签时的高亮显示逻辑,Vue框架与实战,Vue,elmentplus,el-tag

2.实现分析

关闭时传入当前的tag和index;

首先删除标签(注意删除后数组数据会变化);

然后计算删除后的len值(如果删除前计算需要 -1 );

判断如果删除的不是当前项不做任何处理直接返回(不是当前项不会影响高亮显示);如果是当前项才做后续操作(route.name === tag);

判断len===index时,证明删除的项为当前项则高亮显示的索引需要减一;

否则证明高亮显示的为当前项(本来的一项被删除了,那么所以index就代表被删除后的当前项);

高亮显示通过,router.push()跳转到对应页面进行实现(首先高亮显示就是通过是否是当前路由来显示的);文章来源地址https://www.toymoban.com/news/detail-737395.html

3.代码:

 <div class="tags-box">
        <div class="tags" v-for="(tag,index) of tags" :key="tag.index">
          <el-tag
            :closable="tag==='首页'?false:true"
            :effect="tag === currentRoute ?'dark':'plain'"
            @close="handleClose(tag,index)"
            @click="clickTag(tag)"
          >{{tag}}</el-tag>
        </div>
      </div>
// 关闭tag标签
const handleClose = (tag, index) => {
  // 只有关闭当前标签才会影响显示(数据不会有任何影响)
  store.commit("layout/delTags", tag);

  // 判断如果关闭的不是当前标签不做任何处理
  console.log(route.meta.label, tag);

  if (route.meta.label !== tag) return;

  // 删除过后的数组长度
  let len = tags.value.length;

  // 长度=index说明是最后一个(最后一个要删除则高亮到前一个tag上)
  let routeList = router.getRoutes();
  
  if (len === index) {
    let path = routeList.find(item => item.meta.label === tags.value[index - 1])
      .path;
    router.push(path);
  } else {
    // 不相等时表明当前项后面还有tag,则将高亮索引设置为当前项的(删除后的index即原来高亮的下一个)
    let path = routeList.find(item => item.meta.label === tags.value[index])
      .path;
    router.push(path);
  }
};

到了这里,关于element-plus的el-tag标签关闭标签时的高亮显示逻辑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • vue 基于element-plus el-button封装按钮组件

    封装组件的原则是:组件只是数据流通的一个管道,不要糅合太多的逻辑在里面,是一个纯组件,还要根据自己项目的业务场景做具体的处理。

    2024年02月10日
    浏览(48)
  • element-plus 设置 el-date-picker 弹出框位置

    概述:el-date-picker 组件会自动根据空间范围进行选择比较好的弹出位置,但特定情况下,它自动计算出的弹出位置并不符合我们的实际需求,故需要我们手动设置。 存在的问题:element-plus 中 el-date-picker 文档中并没有提供明确的属性供我们设置弹出位置。 解决方案:我们可以

    2024年02月09日
    浏览(49)
  • vue使用element-ui或者element-plus固定 el-header 和 el-aside

    vue使用element-ui或者element-plus固定 el-header 和 el-aside 在使用element-plus做后台管理的时候,需要固定el-header和el-aside,特此记录以下。 只需要将el-main固定高度即可。 main.vue css 将 el-main 高度后,当 el-main 内容超出固定高度后就能显示滚轮了。将滚轮样式修改一下就好了。 效果:

    2024年02月13日
    浏览(48)
  • vue3 element-plus el-form的二次封装

    form表单的二次封装 vue3 element-plus el-form的二次封装 属性名 类型 默认值 说明 data Array [] 页面展示数据内容 onChange Function false 表单事件 bindProps Object {} 表单属性 formRef Object {} 表单ref ruleForm Object {} 数据

    2024年02月13日
    浏览(74)
  • element-plus el-table、动态添加、删除行、input输入框

    模板部分,使用 el-table 元素作为表格容器,绑定 data 属性传入表格数据。用 v-for 指令遍历每一项数据,使用普通文本或 el-input 组件渲染每个单元格。表格最后一列为操作列,包含 “Add” 和 “Delete” 两个按钮,点击它们可以增加或删除数据行: 逻辑部分,定义 tableData 数据

    2024年02月06日
    浏览(44)
  • element-plus指定el-date-picker的弹出框位置

    此处记录一下,通过popper-options指定popper出现的位置

    2024年02月10日
    浏览(37)
  • element-plus el-form 表单、表单验证 使用方法、注意事项

    element-plus@2.0.6 及之后的版本,表单验证不再是同步执行的了 另外, element-plus@2.1.4 及之后的版本,才可按照官方文档示例正常使用(使用的是两者的中间版本的话,最好先自行确认下正确的 上例中: 如果在“ 位置1 ”执行表单验证通过后的业务代码,可以去掉 async...await 如

    2024年02月05日
    浏览(63)
  • vue3+element-plus+el-image实现点击按钮预览大图

    需求:点击某个按钮实现el-image中预览大图的效果 官方文档:以下是官方的写法,并不能达到我们的要求,官方实现的功能是点击图片达到预览大图的效果。如果你的按钮就是图片,也可以达到目前的功能 el-image-viewer组件是element官方的组件,只是文档中没有写出来,这个组

    2024年02月12日
    浏览(58)
  • Vue3 element-plus el-select 无法选中,又不报错

    html 结构 js 代码 点击下拉选项,输入框无法选中 原因:ref=“conditionForm” 和 :model=“conditionForm” 冲突了, 4-1. 再Vue2里面 :model=“conditionForm” 绑定的是 conditionForm 变量, ref=“conditionForm” 绑定的是conditionForm字符串 v-model=“conditionForm.personnel” 绑定的 conditionForm 变量下属性

    2023年04月27日
    浏览(47)
  • vue3.0 element-plus 不同版本 el-popover 循环优化

    表格内循环el-popover  渲染以后的页面,数据量很大的时候页面会卡,生成的代码: 解决思路: 将el-popover提出来,不参与循环,让el-popover只渲染一次   1、以1.1.0-beta.24版为例(低版本) 红色下划线部分是关键点     v-popover的值与el-popover的ref值要一致 2、以2.3.9版为例(当前

    2024年02月12日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包