树形控件加自定义图标样式及指引线

这篇具有很好参考价值的文章主要介绍了树形控件加自定义图标样式及指引线。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

记录一下留用,有错误请指正。

效果图如下:

自定义图标及指引线

树形控件加自定义图标样式及指引线,vue.js,elementui,javascript

代码:

<div class="head-container" style="margin-left: -15px;">
     <el-tree icon-class="none"
       style="height:100%; overflow-y: hidden;"
       node-key="id"
       class="tree-line"
       :data="deptOptions"
       :props="defaultProps"
       :expand-on-click-node="false"
       :filter-node-method="filterNode"
       ref="tree"
       default-expand-all
       highlight-current
       @node-click="handleNodeClick"
     >
       <span class="custom-icon" slot-scope="{ node,data }" :style="getStyle(node)">
          <span :class="getIconClass(node)" :style="getIconStyle(node)" 
            v-if="node.data.children.length!==0" @click.stop="handleClick(node)"></span>
          <span style="margin: 0px 5px 0px 15px;" v-else></span>
              <i class="el-icon-house" v-if="node.level == 1"></i>
              <i class="el-icon-folder" v-else-if="node.level == 2"></i>
              <i class="el-icon-document" v-else-if="node.level == 3"></i>
              <i class="el-icon-document-copy" v-else></i>
              {{ data.name }}
          </span>
    </el-tree>
</div>
deptOptions: [],
defaultProps: {
   children: "children",
   label: "label",
},

js部分:

// 筛选节点
filterNode(value, data) {
   if (!value) return true;
   return data.label.indexOf(value) !== -1;
},
// 节点单击事件
handleNodeClick(data) {
  this.queryParams.deptId = data.id;
  this.handleQuery(); // 这里的需求是点击节点,查询对应节点下的数据,根据需求来写
},
handleClick(node) {
  node.expanded = !node.expanded
},
// 以下为样式,此章的关键部分
getStyle(node) {
   return node.level === 1 ? this.style : null
},
getIconStyle(node) {
  return node.level === 1 ? 'padding: 0px;border: 0.8px solid red;margin: 0px 5px 0px 5px;' : 'padding: 0px;border: 0.8px solid #36383d;margin: 0px 5px 0px 2px;'
},
getIconClass(node) {
   return node.expanded ? 'el-icon-minus' : 'el-icon-plus'
},

css样式:文章来源地址https://www.toymoban.com/news/detail-706707.html

.custom-icon {
    color: #36383d;
    font-size: 13px;
    margin-left: 5px;
}

<style lang="scss">
.tree-line{
  .el-tree-node {
    position: relative;
    padding-left: 0px; // 缩进量
  }
  .el-tree-node__content{
    padding-left: 0px !important;
  }
  .el-tree-node__children {
    padding-left: 18px; // 缩进量
  }
  .el-tree-node__content>.el-tree-node__expand-icon {
    padding: 2px;
    margin: 0px 4px !important;
  }
  .theme_color_blue .el-tree-node__content>.el-tree-node__expand-icon {
    padding: 10px;
  }

  

  // 竖线
  .el-tree-node::before {
    content: "";
    height: 100%;
    width: 1px;
    position: absolute;
    left: 8px;
    top: -26px;
    border-width: 0.5px;
    border-left: 0.5px dashed #4386c6;
  }
  // 当前层最后一个节点的竖线高度固定
  .el-tree-node:last-child::before {
    height: 38px; // 可以自己调节到合适数值
  }

  // 横线
  .el-tree-node::after {
    content: "";
    width: 18px;
    height: 15px;
    position: absolute;
    left: 8px;
    top: 12px;
    border-width: 0.5px;
    border-top: 0.5px dashed #4386c6;
  }

  // 去掉最顶层的虚线,放最下面样式才不会被上面的覆盖了
  & > .el-tree-node::after {
    border-top: none;
  }
  & > .el-tree-node::before {
    border-left: none;
  }
	
  // 展开关闭的icon
  .el-tree-node__expand-icon{
    font-size: 16px;
    // 叶子节点(无子节点)
    &.is-leaf{
      color: transparent;
      // display: none; // 也可以去掉
    }
  }
}
</style>

到了这里,关于树形控件加自定义图标样式及指引线的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ElementUI之Tree树形控件使用

    以下列出的属性、事件、方法,可使用Tree控件实现节点的拖拽功能(可实现修改顺序、更换父级节点功能)、点击节点勾选复选框、只点击箭头图标展开和收缩节点、父子节点不级联勾选、默认展开全部节点功能 参数 说明 类型 可选值 默认值 data 展示数据 array 是 无 props 配

    2024年02月11日
    浏览(41)
  • elementUI Tree 树形控件单选实现

    在Element UI中,树形控件(el-tree)本身不支持单选功能。但是,你可以通过监听节点点击事件并手动更新选中状态来实现单选树。 以下是一个简单的例子,展示了如何实现单选功能: html相关: js方法: 义了一个currentNodeKey来存储当前选中节点的 key。每次点击节点时,我们首

    2024年03月25日
    浏览(55)
  • 使用videjs+vue2+elementui自定义播放器控件

    videojs依赖: npm install --save-dev video.js elementui依赖(这个图方便就不按需引入了): npm i element-ui -S 增加以下几行: 在components文件夹下创建两个组件videoComponent和videoPlayer—— videoComponent挂载到App组件上 videoPlayer挂载到videoComponent上 先把两个组件最基本的结构搭好 videoComponen

    2023年04月08日
    浏览(44)
  • Element UI-给树形控件添加图标

    element ui 提供的树形控件默认是不支持添加图标的,如下所示: 如果要想要在节点自定义树形控件的图标,可以使用slot-scope,代码如下: 其代码如下: 最终效果如下:

    2024年02月08日
    浏览(46)
  • vue3 + Element Plus自定义音频audio样式及控件

    由于 audio 标签原生样式不能修改UI样式,所以需要隐藏原生 audio 标签,重新写一个控件进行操作 audio 代码实现: 先封装一个组件 audioPlayer.vue 。注意:需提前安装了 Element Plus 在父组件内引用自定义组件 audioPlayer.vue 效果图:

    2024年02月06日
    浏览(47)
  • [vue]使用Element--Tree 树形控件使用props解决自定义slot-scope=“{ node, data }“的对象问题

     在未用props定义的情况下,slot-scope=\\\"{ node, data }\\\"解析data对象只有data含有lable和children才能识别出内容和子节点 当我获取的数据如下,没有lable和children,使用的是name和childList,如下图所示: 注意props是对象形式,        

    2024年02月11日
    浏览(52)
  • elementui树形组件自定义高亮颜色

    1、需求描述:点击按钮切换树形的章节,同时高亮 2、代码实现 1)style样式添加 3)事件 注:其他函数代码 (仅供自己参考,可忽略),大概的思路是通过当前的key判断,如果当前key是一级菜单,判断当前菜单下是否有二级菜单,如果有二级菜单直接高亮第一个二级菜单,如

    2024年04月11日
    浏览(36)
  • elementui-树形控件实现 两棵树的联动,两棵树有相同的id节点时节点的状态保持一致

    1、遇到一个情景:需要勾选用户的权限和回显用户的权限,权限分为两棵树形结构,这两颗树有一些节点的id是一样的,需要在第一个树勾选的时候,另外一棵树也勾选,不勾选的时候状态保持一致,回显也是一样的操作 2、代码 树形的代码: 树形节点点击的事件 data数据

    2024年02月02日
    浏览(42)
  • 【el-tree】树形组件图标的自定义

    饿了么树形组件的图标自定义 默认样式:  可以看到el-tree组件左侧自带展开与收起图标,咱们可以把它 隐藏 :: 我的全部代码 其中自定义左侧图标的方法:  我的每条数据都自带icon属性,你没有的话也可以在数据拿到之后手动遍历添加一条icon属性进去,然后再el-tree中使用: 如果需

    2024年02月11日
    浏览(46)
  • elementui自定义loading图标

    效果图如下: 一、在assets下新建一个mycss.css文件夹(图片大小以及文字样式,可以根据自己的需求进行微调) 二、在main.js中引入mycss.css(注意此样式需要放在elementui样式后面) 三、页面使用 注意:使用了自定义的加载图片,就不要再使用element-loading-spinner=\\\"xxx\\\"这个属性来定义

    2024年02月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包