element-ui-plus el-tree 树形结构如何自定义内容

element-ui-plus el-tree 树形结构如何自定义内容

本文提及的 elementUI 版本 为 elementUI Plus 版本

在这里插入图片描述

一、需求

项目中遇到一个需要设置权限的地方,但目录和权限是放在一起的,这样就很不好区分类别,为了区分类别,就需要自定义树结构中每项的外观。

在这里插入图片描述

二、实现它

el-tree 自定义节点内容

查看官方文档中有两种方式

  • 一种是添加 render-content 方法,
  • 一种是使用模板的方式 <template>

这里我们使用第二种方式实现,感觉更好看一些,官方那个 render-content 的方法写的很*一样,不是人类看的。

原来是这样

<el-tree
    ref="refTree"
    node-key="id"
    :default-expand-all="true"
    :data="roleTreeData"
    :default-checked-keys="formRolePermission.ids"
    :props="{ label: 'name', children: 'children' }"
    show-checkbox
/>

现在使用 template

内容包含 TypeScript 内容 Enum

<el-tree
    ref="refTree"
    node-key="id"
    :default-expand-all="true"
    :data="roleTreeData"
    :default-checked-keys="formRolePermission.ids"
    :props="{ label: 'name', children: 'children' }"
    show-checkbox
>
    <template #default="{ node, data }">
        <div class="custom-tree-node">
            <el-tag size="small" type="primary" v-if="data.type === EnumMenuType.菜单">{{EnumMenuType[data.type]}}</el-tag>
            <el-tag size="small" type="warning" v-if="data.type === EnumMenuType.目录">{{EnumMenuType[data.type]}}</el-tag>
            <el-tag size="small" type="success" v-if="data.type === EnumMenuType.按钮">{{EnumMenuType[data.type]}}</el-tag>
            <span class="pl-1">{{data.name}}</span>
        </div>
    </template>
</el-tree>

三、结果

这样就相当明了了。
在这里插入图片描述

上一篇:Centos7.X服务器搭建VOS系统的REC录音转换MP3,并支持外呼系统wav转换MP3


下一篇:外包干了5天,技术退步明显.......