Vue2设置el-tree数据处理、点击事件、色彩调整

1.后端给的数据没有el-tree要求的label和children,所以需要自行处理一下

2.一级节点和二级节点需要不同的点击效果,需要设置

3.默认选中的背景色和字体色以及鼠标悬停的背景色都需调整

1.处理数据

<div class="PsyText-bottom-tbody">
    <el-tree :data="videoData" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
</div>

video_review(res.data.roomNo).then(res => {
   console.log(res);
   const data1 = res.data.map(item => ({
      id: item.id,
      beginTime: item.beginTime,
      endTime: item.endTime,
      label: `${item.interrogated}:${item.beginTime} 至${item.endTime}`,
      children: item.alertInfos.map(alert => ({
      id: alert.id,
      label: `报警时间:${alert.createTime}`
    })),
   videoUrl: item.videoUrl
 }))
    this.videoData = data1

2.点击事件

handleNodeClick(data, node, component) {
      if (node.level === 1) {
        this.handleFirstLevelClick(data, node, component);
      } else if (node.level === 2) {
        this.handleSecondLevelClick(data, node, component);
      }
},
handleFirstLevelClick(data, node, component) {
      // 处理一级节点的点击事件
      console.log('一级节点被点击:', data);
      if (data.videoUrl) {
        this.textvideoUrl = data.videoUrl
        this.videoBeginTime = data.beginTime
        this.videoEndTime = data.endTime
      }
},
handleSecondLevelClick(data, node, component) {
      // 处理二级节点的点击事件
      console.log('二级节点被点击:', data);
     
},

3.调整背景色

/* 正常显示时节点的背景颜色 */
::v-deep .el-tree-node__content {
  background-color: transparent;
}
/* 鼠标点击时节点的背景颜色 */
::v-deep .el-tree-node:focus>.el-tree-node__content {
  background-color: transparent
}

/* ::v-deep .is-current>.el-tree-node__content:first-child {
  background-color: #08a8a0
} */
/* 鼠标选中后节点的背景颜色 */
::v-deep .el-tree-node.is-current>.el-tree-node__content {
  background-color: #cccccc;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值