基于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 相关文章推荐
js拖动div 当鼠标移动时整个div也相应的移动
Nov 21 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
Jun 09 Javascript
jQuery控制TR显示隐藏的三种常用方法
Aug 21 Javascript
Lab.js初次使用笔记
Feb 28 Javascript
js简单获取表单中单选按钮值的方法
Aug 23 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
Jan 04 Javascript
JavaScript实现两个select下拉框选项左移右移
Mar 09 Javascript
Angular 开发学习之Angular CLI的安装使用
Dec 31 Javascript
浅谈React碰到v-if
Nov 04 Javascript
js实现导航跟随效果
Nov 17 Javascript
JavaScript ES2019中的8个新特性详解
Feb 20 Javascript
10种JavaScript最常见的错误(小结)
Jun 21 Javascript
ajax请求前端跨域问题原因及解决方案
浅谈TypeScript 索引签名的理解
JavaScript 反射学习技巧
Oct 16 #Javascript
JS的深浅复制详细
Oct 16 #Javascript
JS 基本概念详细介绍
Oct 16 #Javascript
AJAX实现指定部分页面刷新效果
AJAX实现省市县三级联动效果
Oct 16 #Javascript
You might like
桌面中心(四)数据显示
2006/10/09 PHP
基于MySQL体系结构的分析
2013/05/02 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
WordPress中的shortcode短代码功能使用详解
2016/05/17 PHP
PHP编程一定要改掉的5个不良习惯
2020/09/18 PHP
jQuery的deferred对象使用详解
2011/08/20 Javascript
jquery异步跨域访问代码
2013/06/28 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
关于Javascript 对象(object)的prototype
2014/05/09 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
node.js发送邮件email的方法详解
2017/01/06 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
JavaScript实现区块链
2018/03/14 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
python 队列详解及实例代码
2016/10/18 Python
Python闭包函数定义与用法分析
2018/07/20 Python
opencv python统计及绘制直方图的方法
2019/01/21 Python
python自动化测试之如何解析excel文件
2019/06/27 Python
python3获取url文件大小示例代码
2019/09/18 Python
Python 实现顺序高斯消元法示例
2019/12/09 Python
pytorch中的inference使用实例
2020/02/20 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
接口中的方法可以是abstract的吗
2015/07/23 面试题
法律专业自我鉴定
2013/10/03 职场文书
学前教育求职自荐信范文
2013/12/25 职场文书
承德避暑山庄导游词
2015/02/03 职场文书
《月光曲》教学反思
2016/02/16 职场文书
使用CSS连接数据库的方式
2022/02/28 HTML / CSS
Java中的随机数Random
2022/03/17 Java/Android
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏
DSP接收机前端设想
2022/04/05 无线电