基于angular实现树形二级表格


Posted in Javascript onOctober 16, 2021

先看效果:

基于angular实现树形二级表格

代码:

1、html

<div class="userContent_content">
    <div>
      <table>
        <tr>
          <td>节点名称</td>
          <td>节点管理IP</td>
          <td>节点登录名</td> 
          <td>节点登录密码</td> 
        </tr>
        //使用ng-container作为空标签用于辅助放置for或者if事件,它在审查元素中是找不到的
        <ng-container *ngFor="let item of currentTotalList,let i = index">
          <tr>
            <td style="color: #04AEB4;cursor: pointer;" class="img">
              <div>
                <div>{{item.name}}</div>
                <div>
        //下面是箭头的图片,是展开和收起箭头的切换,通过判断当前点击索引与列表索引是否相等,相等则展开,否则收起
                  <img (click)="clickShowChildList(i,item.name)"
                    [attr.src]="i == currentClickOpenIndex?'../../assets/resource/img/bottom.png':'../../assets/resource/img/right.png'">
                </div>
              </div>
            </td>
            <td>{{item.ip}}</td>
            <td>{{item.username}}</td>
            <td>{{item.password}}</td>
          </tr>
        //再次使用ng-container标签嵌套表格的子级
          <ng-container *ngFor="let childItem of item.nodeList, let j = index">
        //由于在同一个标签内,for循环和if判断不能同时共存,因此我们的隐藏事件if放置tr标签内,通过判断当前点击的索引与列表索引是否一致,相等则收起,不等则显示的功能。
 
            <tr *ngIf="i == currentClickOpenIndex">
              <td style="color: #04AEB4;cursor: pointer;" class="img">
                <div>
                  <div>
                    {{childItem.masterIp}}</div>
                </div>
              </td>
              <td>{{childItem.ip}}</td>
              <td>{{childItem.username}}</td>
              <td>{{childItem.password}}</td>
            </tr>
          </ng-container>
        </ng-container>
 
      </table>
    </div>
    
  </div>

2、less

.userContent_content{
        width: 100%;
        height: calc(~"100% - 60px");
        overflow: auto;
        >div:nth-child(1){
          >table{
            width: 100%;
            tr{
              td{
                width: 25%;
                text-align: center;
                font-size: 14px;
                color: #fff;
                padding: 16px 0px;
                box-shadow: 0 1px #333;
              }
            }
            .img {
              >div {
                width: 100%;
                display: flex;
                position: relative;
  
                >div:nth-child(1) {
                  width: 85%;
                  white-space: nowrap;
                  text-overflow: ellipsis;
                  -o-text-overflow: ellipsis;
                  overflow: hidden;
                  margin: 0 auto;
  
                }
              }
  
              img {
                height: 10px !important;
                width: 10px !important;
                margin-left: 0 !important;
                position: absolute;
                right: 0;
                top: 3px;
              }
            }
          }
        }
  
        >div:nth-child(2){
          height: 80px;
          width: 90%;
          display: flex;
          align-items: center;
          margin: 0 auto;
          justify-content: flex-end;
          #page{
            display: table;
          }
        }
      }

3、js

(1)currentTotalList表格数据的格式类似如下(你们自己写个模拟数据吧):

基于angular实现树形二级表格

(2)初始化当前的点击索引变量currentClickOpenIndex 为-1

(3)是展开收起箭头的点击事件:

clickShowChildList = (i,item)=>{
    console.log(i,this.currentClickOpenIndex)
    if(this.currentClickOpenIndex==i){
      this.currentClickOpenIndex = -1
    }else{
      this.currentClickOpenIndex = i
    }
  }

然后就完成了……

到此这篇关于基于angular实现树形二级表格的文章就介绍到这了,更多相关angular树形二级表格内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Javascript 相关文章推荐
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
Dec 25 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
Aug 05 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
Feb 27 Javascript
js 三级关联菜单效果实例
Aug 13 Javascript
JavaScript中prototype为对象添加属性的误区介绍
Oct 15 Javascript
jQuery统计上传文件大小的方法
Jan 24 Javascript
JS实现的几个常用算法
Nov 12 Javascript
js中常用的Math方法总结
Jan 12 Javascript
微信小程序使用component自定义toast弹窗效果
Nov 27 Javascript
JavaScript中的null和undefined用法解析
Sep 30 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
Nov 13 Javascript
原生js实现随机点名
Jul 05 Javascript
ajax请求前端跨域问题原因及解决方案
浅谈TypeScript 索引签名的理解
JavaScript 反射学习技巧
Oct 16 #Javascript
JS的深浅复制详细
Oct 16 #Javascript
JS 基本概念详细介绍
Oct 16 #Javascript
AJAX实现指定部分页面刷新效果
AJAX实现省市县三级联动效果
Oct 16 #Javascript
You might like
php入门学习知识点三 PHP上传
2011/07/14 PHP
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
使用php-timeit估计php函数的执行时间
2015/09/06 PHP
php实现登陆模块功能示例
2016/10/20 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
扩展String功能方法
2006/09/22 Javascript
jQuery.query.js 取参数的两点问题分析
2012/08/06 Javascript
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
javascript控制台详解
2015/06/25 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
浅析Vue实例以及生命周期
2018/08/14 Javascript
在vue 中使用 less的教程详解
2018/09/26 Javascript
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
[02:18]DOTA2英雄基础教程 育母蜘蛛
2014/01/20 DOTA
35个Python编程小技巧
2014/04/01 Python
Python的净值数据接口调用示例分享
2016/03/15 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
python使用pyqt写带界面工具的示例代码
2017/10/23 Python
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
pandas针对excel处理的实现
2021/01/15 Python
css3的transform中scale缩放详解
2014/12/08 HTML / CSS
美国伴娘礼服商店:Evening Collective
2019/10/07 全球购物
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
酒店个人培训自我鉴定
2013/12/11 职场文书
学校就业推荐信范文
2014/05/19 职场文书
西岭雪山导游词
2015/02/06 职场文书
高一军训口号
2015/12/25 职场文书
Mysql 如何查询时间段交集
2021/06/08 MySQL
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android
Nebula Graph解决风控业务实践
2022/03/31 MySQL
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android