热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

vue点击标签切换选中及互相排斥操作

这篇文章主要介绍了vue点击标签切换选中及互相排斥操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

单身和已婚不能同时选中,不了解保险和已了解保险不能同时选中。

同时各个标签点击可以取消选择

  //html
  
  • 与我相关
    {{item.title}}
  • 标签
    {{item.title}}
  • 数据

      myself: [
      { id: 1,title: "亲属", isFlag: false },
      {id: 2,title: "同乡",isFlag: false},
      {id: 3, title: "同学",isFlag: false },
      {id: 4,title: "同事", isFlag: false},],
      biaoqian: [
      {id: 1, title: "已婚",type: 1,isFlag: false },
      {id: 2,title: "单身",type: 1,isFlag: false },
      {id: 3,title: "有娃",isFlag: false },
      {id: 4,title: "有房", isFlag: false },
      {id: 5,title: "有车",isFlag: false},
      {id: 6,title: "不了解保险",isFlag: false,type: 2},
      {id: 7,title: "已了解保险",isFlag: false,type: 2} ],

    js

     //标签只能选中一个
     filterData(arr = [], index) {
      let val = "";
      arr.forEach(item => {
      if (item.id == index) {
       item.isFlag = !item.isFlag;
       val = item.isFlag ? item.title : "";
      } else {
       item.isFlag = false;
      }
      });
      return val;
     },
     checkButton(val, index) {
      if (val === "tag") {
      let data = [];
      this.biaoqian.forEach(item => {
       if (item.id == index) {
       // a 记录当前标签状态是否选中,为了取消标签状态
       let a = item.isFlag;
       item.isFlag = !item.isFlag;
       if (item.type) {
        this.biaoqian.forEach(e => {
        if ((e.type == 1 && index <3) || (e.type == 2 && index > 5)) {
         //先把同一个类型的标签都置为false
         e.isFlag = false;
         if (e.id == index) {
         e.isFlag = a &#63; false : !e.isFlag;
         }
        }
        });
       }
       }
      });
      let arr = this.biaoqian.filter(item => {
       return item.isFlag;
      });
      arr.forEach(item => {
       data.push(item.title);
      });
      this.personItem.labelList = data;
      } else if (val === "sex") {
      this.personItem.sex = this.filterData(this.sexArr, index);
      } else {
      this.personItem.relation = this.filterData(this.myself, index);
      }
     }
    

    补充知识:vue选中与取消简单实现

    我就废话不多说了,大家还是直接看代码吧~

  • selected(item) { if (!item.isShow) { item.isShow = true; this.selectedList.push(item.id) } else { item.isShow = false; let index = this.selectedList.indexOf(item.id); if (index > -1) { this.selectedList.splice(index, 1); } } },
  • 以上这篇vue点击标签切换选中及互相排斥操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


    推荐阅读
    • Docker的安全基准
      nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
    • 本文介绍如何通过SSH协议使用Xshell远程连接到Ubuntu系统。为了实现这一目标,需要确保Ubuntu系统已安装并配置好SSH服务器,并保证网络连通性。 ... [详细]
    • 优化局域网SSH连接延迟问题的解决方案
      本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
    • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
      Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
    • 本文详细介绍如何通过设置SSH密钥来获取连接GitHub远程仓库的权限,包括生成密钥、添加到GitHub账户以及验证连接等步骤。 ... [详细]
    • 本文探讨了如何通过最小生成树(MST)来计算严格次小生成树。在处理过程中,需特别注意所有边权重相等的情况,以避免错误。我们首先构建最小生成树,然后枚举每条非树边,检查其是否能形成更优的次小生成树。 ... [详细]
    • 深入解析 Spring Security 用户认证机制
      本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
    • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
    • Git管理工具SourceTree安装与使用指南
      本文详细介绍了Git管理工具SourceTree的安装、配置及团队协作方案,旨在帮助开发者更高效地进行版本控制和项目管理。 ... [详细]
    • 本文详细介绍如何在Linux系统中配置SSH密钥对,以实现从一台主机到另一台主机的无密码登录。内容涵盖密钥对生成、公钥分发及权限设置等关键步骤。 ... [详细]
    • 对象自省自省在计算机编程领域里,是指在运行时判断一个对象的类型和能力。dir能够返回一个列表,列举了一个对象所拥有的属性和方法。my_list[ ... [详细]
    • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
      本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
    • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
    • 本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ... [详细]
    • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
    author-avatar
    取个名字忒难le
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有