vue中使用el-tree组件,判断是节点还是叶子,添加图片

感谢我的同学来自小米的前端工程师-----冯昕

这个需求的要求是这样的,有一个树形结构的数据,我们需要在叶子前方添加一张图片,如果是节点,那么就没有这个图片,

现在的样子是这样的

现在我们需要将部门前面的图片去掉,只有设备才有这个图片

具体代码如下,el-tree组件有个插槽, slot-scope,插槽中可以自定义树节点的内容,参数为 { node, data },data就是当前节点的所有数据信息,是个对象{},接下来我们就可以通过部门和设备的不同点来控制前方图片的显示和隐藏,用了这个tree组件还是非常方便的,如果是自己封装的tree还需要用到递归

    <el-tree
                class="elTree"
                :data="data"
                :filter-node-method="filterNode"
                node-key="id"
                ref="tree"
                @node-click="handleNodeClick"
                :expand-on-click-node="false"
                :default-expand-all="false"
                accordion
              >
                <span class="custom-tree-node" slot-scope="{ node, data }">
                  //图片显示,判断是设备还是部门
                  <img
                    src="../../../assets/images/dianLog2.png"
                    alt=""
                    v-if="!data.children && !data.canClick"
                  />
                  <span>{{ data.label }}</span>
                  <span>
                    <el-button
                      style="margin-left: 2px; width: 19px; padding: 0px"
                      circle
                      type="text"
                      size="medium"
                      :disabled="false"
                      @click="() => edit(data)"
                      ><img src="../../../assets/images/修改.png" alt="" />
                    </el-button>
                    <el-button
                      style="margin-left: 2px; width: 19px; padding: 0px"
                      circle
                      type="text"
                      size="medium"
                      :disabled="false"
                      @click="() => append(data)"
                      ><img src="../../../assets/images/添加 (1).png" alt="" />
                    </el-button>
                    <el-button
                      type="text"
                      circle
                      size="mini"
                      style="padding: 1px; width: 1px; margin-left: 2px"
                      @click="() => remove(node, data)"
                    >
                      <img src="../../../assets/images/删除2.png" alt="" />
                    </el-button>
                  </span>
                </span>
              </el-tree>

完成以后,实现效果如下

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多看书少吃饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值