由于部分涉及到隐私,就打马赛克了

比如这个小问题,我有这个动态的class,里面是十几个类似btn的按钮,然后每个btn下面又有子多选框,一开始是我点击那个下面的子级他的父级就被选中,默认选中第一个父级btn的。

现在我需要展示那个下面有选中的多选框他的父级btn就被选中。

所以这句话的,前面的代码是点那个下面的子级他的父级就被选中,后面代码意思是子多选框如果存在选中的子级他父级btn就被选中,但是这样会出现一个问题他还是会默认选中第一个btn。

:class="[{active: item.open_kf_id == formState.staff_ids || selectedStaffIndex.includes(item.open_kf_id)  }]"

解决办法就是给我们的state.formState.staff_ids默认设置成我们第一个存在的值,后期返现个问题在没有state.selectedStaffIndex[0]的时候什么都没有显示了,得加个判断

//设置默认为我们第一个有被选中的btn
if(state.selectedStaffIndex[0]){
state.formState.staff_ids = state.selectedStaffIndex[0]
}

下面是html代码

 <div class="zm-staff-item zm-selected"
:class="[{active: item.open_kf_id == formState.staff_ids || selectedStaffIndex.includes(item.open_kf_id) }]"
v-for="(item,index) in staffs"
:key="index"
@click="changeStaff(item)"
style="margin: 8px 16px 8px 0">
<img class="zm-staff-avatar" :src="item.channel_logo"/>
<span class="zm-staff-name">{{ item.channel_name }}</span>
</div>

下面是逻辑代码

// //来显示btn下面是否有子级被选中
for(let k in selectedRowKeys.value){
let selectedStaffIds = selectedRowKeys.value[k].split(":")[0]
state.selectedStaffIndex.push(selectedStaffIds)
}
//设置默认为我们第一个有被选中的btn
state.formState.staff_ids = state.selectedStaffIndex[0]

为什么要遍历呢?

因为selectedRowKeys.value里面的值是这种形式的,我只需要前面的值即可。

Proxy {0: '1688858438367330:7881299760915111', 1: '1688857379337013:7881302848907550', 2: '1688857785347017:7881303547185489', 3: '1688857785347017:7881303527096379', 4: '1688857785347017:7881303349119228', 5: '1688857785347017:7881300212937189', 6: '1688857785347017:1688856975347519', 7: '1688857785347017:1688854059826920', 8: '1688857785347017:1688852014798866', 9: '1688858346379609:7881302170090986'}
[[Handler]]: Object
[[Target]]: Array(10)
0: "1688858438367330:7881299760915111"
1: "1688857379337013:7881302848907550"
2: "1688857785347017:7881303547185489"
3: "1688857785347017:7881303527096379"
4: "1688857785347017:7881303349119228"
5: "1688857785347017:7881300212937189"
6: "1688857785347017:1688856975347519"
7: "1688857785347017:1688854059826920"
8: "1688857785347017:1688852014798866"
9: "1688858346379609:7881302170090986"
length: 10
[[Prototype]]: Array(0)
[[IsRevoked]]: false

解决动态class展示问题的更多相关文章

  1. FineReport层式报表解决大数据集展示问题攻略

    本文以填报报表为例,通过分页的方式,来解决大数据集展示的问题. 实现的思想就是通过在SQL里筛选部分数据库数据,以达到浏览器可以合理的展示报表页面.(数据分段,语句我这采用的是MYSQL,如果要用其他 ...

  2. ecshop 完美解决动态ip登录超时和购物车清空问题

    ecshop 完美解决动态ip登录超时和购物车清空问题 ECSHOP模板/ecshop开发中心(www.68ecshop.com) / 2014-05-06 前一段时间,ECSHOP开发中心的一个客户 ...

  3. 《算法4》1.5 - Union-Find 算法解决动态连通性问题,Python实现

    Union-Find 算法(中文称并查集算法)是解决动态连通性(Dynamic Conectivity)问题的一种算法,作者以此为实例,讲述了如何分析和改进算法,本节涉及三个算法实现,分别是Quick ...

  4. ExtJs 通过分析源代码解决动态加载Controller的问题

    通过分析源代码解决动态加载Controller的问题 最近在研究ExtJs(4.2.0)的MVC开发模式,具体Extjs的MVC如何使用这里不解释,具体参见ExtJs的官方文档.这里要解决的问题是如何 ...

  5. scrapy-redis+selenium+webdriver解决动态代理ip和user-agent的问题(全网唯一完整代码解决方案)

    问题描述:在爬取一些反爬机制做的比较好的网站时,经常会遇见一个问题就网站代码是通过js写的,这种就无法直接使用一般的爬虫工具爬取,这种情况一般有两种解决方案 第一种:把js代码转为html代码,然后再 ...

  6. NG-ZORRO + angular-cli11 表格横纵向单元格合并,按需设置背景色,解决动态合并单元格动态colspan情况下,nzLeft固定列失效问题,也适用VUE,REACT

    NG-ZORRO + angular-cli11 实现表格横纵向单元格合并,按需设置背景色,并解决动态合并单元格动态colspan情况下,nzLeft固定列失效问题 HTML代码 <!-- 1. ...

  7. 如何使用DAX函数解决动态图表标题

    您可能知道,Power BI中的图表(以及许多其他可视化)具有可以设置为任何静态文本的标题.您可以通过选择图表,转到“可视化对象”窗格中的“格式”选项卡,然后更改“标题”部分中的属性(如下所示)来完成 ...

  8. arcgis server 10.1 发布动态图层展示海量及频繁更新的数据步骤

    Arcgis server  发布动态图层及调用动态图层 做这个动态图层功能的原由是 有一个30万的数据需要通过arcgis GP工具转成shp然后渲染加载进地图,原来的做法是遍历生成shp面要素,读 ...

  9. 2014-10-2 bug更新5 ecshop和ectouch解决动态ip登录超时和购物车清空问题

    有客户说登陆网站后台操作的时候,会时不时的掉一下,要重新登陆才能继续操作,自动登出的频率快和时间短,针对这个问题是因为: 购物车问题原因的产生是因为动态IP的SESSEION机制导致很多在公司或者其他 ...

  10. 自拉ADSL网线搭建站点server,解决动态IP、无公网IP、80port被封、HTTP被屏蔽的方法

    自己的server搭建站点应用,提供站点服务,能够不用备案,但可能会面对网络限制问题,如动态公网IP.无公网IP.80port被封.HTTP被屏蔽,这些复杂网络情况. 依据本地网络环境,能够针对不同的 ...

随机推荐

  1. LENGTH,LENGTHB

    LENGTH 1.语法 length(string) 2.说明: 统计字段的字符长度 3.示例: select length('abcd') from dual; --返回值:4 select len ...

  2. 27_wbpack_自定义Plugin

    Tapable 要想学会自定义Plugin就要先了解Tapable这个库 在我们的wbpack中有两个非常重要的两个类Compiler和Compilation 他们是通过注入插件的方式,来监听webp ...

  3. 【vcpkg】使用vcpkg安装库

    https://blog.csdn.net/cjmqas/article/details/79282847 使用vcpkg 查看vcpkg支持的开源库列表 执行命令 .\vcpkg.exe searc ...

  4. python3.7安装Anaconda3+tensorflow2.1中遇到的问题

    最近想搞深度学习,就开始装tensorflow,其中也是遇到了一些问题,希望给遇到同类问题的童鞋一些提示.... 因为之前一直用的python3.7,虽然网上很多建议装python3.5版本tenso ...

  5. boolean布尔型盲注

    mysql中limit的详细用法 1.用于强制返回指定的记录行数 在查询中,经常要返回前几条或者中间某几行数据时,用到limit 语法如下 select * from table_name limit ...

  6. uniapp与原生交互

    1.项目中引入 DSBridge.js 文件 var bridge = { default: this, call: function(b, a, c) { var e = ""; ...

  7. ksfitappUI自动化(准备+安装环境)

    一.原理+安装 https://blog.csdn.net/weixin_30624825/article/details/94803252 https://www.kancloud.cn/guanf ...

  8. MQTT QoS 0, 1, 2 介绍

    什么是 QoS 很多时候,使用 MQTT 协议的设备都运行在网络受限的环境下,而只依靠底层的 TCP 传输协议,并不能完全保证消息的可靠到达.因此,MQTT 提供了 QoS 机制,其核心是设计了多种消 ...

  9. 监控可视化nagios xi

    官网下载 https://www.nagios.com/downloads/nagios-xi/linux/ 也可以手动下载解压并安装 cd /tmp wget https://assets.nagi ...

  10. fetch 小分析

    includes\database\prefetch.inc line 385 public function fetchField($index = 0) { return $this->fe ...