树结构自定义内容(例如:只有部门下的员工可以勾选)

本文介绍了如何在Vue项目中使用el-tree组件,实现对节点的自定义图标处理,以及如何控制多选框的显示和通过CSS样式自定义内容。作者展示了如何通过`popper-class`属性和自定义`customNodeClass`函数来定制节点样式。
摘要由CSDN通过智能技术生成
一:自定义图标和多选框

<template>   
    <el-tree
      ref="staffTreeRef"
      check-strictly
      :data="staffData"
      :default-checked-keys="checkedData"
      default-expand-all
      node-key="pid"
      popper-class="el_tree_select"
      :props="{
        children: 'children',
        label: 'deptName',
        class: customNodeClass,
        disabled: 'selectable',
      }"
      show-checkbox
      @check="handleNodeClick"
     />
</template>
<script>
  const staffData = ref([
    {
      pid: 0,
      deptName: '销售部',
      spread: false,
      children: [
        {
          pid: 01,
          deptName: '销售一部',
          spread: false,
          children: [
            {
              pid: 0101,
              deptName: '123',
              spread: false,
            },
            {
              pid: 0102,
              deptName: 'pc新增员工',
              spread: true,
            },
            {
              pid: 0103,
              deptName: '测试',
              spread: true,
            },
            {
              pid: 0104,
              deptName: '测试',
              spread: true,
            },
            {
              pid: 0105,
              deptName: '张凉凉',
              spread: true,
            },
            {
              pid: 0106,
              deptName: '2',
              spread: true,
            },
          ],
        },
      ],
    },
  ])
 // 只有员工展示复选框与前面加图标
  const customNodeClass = (data) => {
    if (!data.spread) {
      return 'is-spread'
    }
    return null
  }
</script>
<style lang="scss" scoped>
  :deep(.el-checkbox) {
    position: absolute;
    right: 10px;
    opacity: 0;
  }
  :deep(.is-spread .el-checkbox) {
    opacity: 1;
  }

  :deep(.is-spread .el-tree-node__expand-icon.is-leaf::before) {
    display: block;
    width: 16px;
    height: 16px;
    font-size: 16px;
    content: '';
    background: url('https://oss.sxcszl.com/enterprise/static/image/default_user.png')
      no-repeat 0 0;
    background-size: 16px;
  }
</style>

标注:popper-class:自定义节点类名

  

功能采用给符合的节点添加class类名,通过css样式实现。

二:自定义内容

  1. 如果想自定义树结构的显示内容,可以使用template方法

           

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值