vue树组件循环表格

news2024/11/24 12:33:50

最近做项目需要实现循环表格这个需求,其中实用到了循环组件,特此记录一下,这是需要实现的功能,如下图:
在这里插入图片描述

vue中实现组件循环

父组件

<template>
	<div>
		<ul>
			<li v-for="(item,index) in asideList" ::key = "index" >
				<p class="main-title">
					<span class="title">{{item.title}}</span>
					<span class="iconfont icon-arrow-right-1"></span>
				</p>
				<ul v-if="item.children" >
					<AsideItem :asideChildren="item.children" ></AsideItem>
				</ul>
			</li>
		</ul>
	</div>
</template>

循环组件


<template>
	<div>
		<li v-for="(item,index) in asideChildren" v-bind:key="index" >
			<p class="secondary-title" @click.prevent="secondaryDropDown" >
				<span>{{item.title}}</span>
			</p>
			<ul v-if="item.children">
				<AsideItem :asideChildren="item.children"></AsideItem>
			</ul>			
		</li>
	</div>
</template>
 
<script>
	export default{
		name: 'AsideItem',
		props: {
			asideChildren: {
				type: Array
			}
		},
	}
</script>

表格实现

父组件:

<template>
  <div>
    <div class="title"><span>信息统计:已提交1{{  }}条,未提交:1{{  }}条,置回1{{ }}条,统计时间:1{{  }}</span></div>
    <div class="table_box border_righttopleft">
      <!-- thead -->
      <div class="head_box">
        <div class="head_title head_1 border_bottomright content">类别权重</div>
        <div class="head_title head_2 border_bottomright">序号</div>
        <div class="head_title head_3 border_bottomright">指标权重</div>
        <div class="head_title head_4 border_bottomright">评分内容</div>
        <div class="head_title head_6 border_bottomright">提示内容</div>
        <div class="head_title head_7 border_bottomright">信息录入</div>
      </div>
      <div class="tableBody" v-for="(item,index) in dataInfo" :key="index">
        <div class="clow">
          <!-- 类别权重 -->
          <div class="clow1" :style="{ height:item.total*40 + 'px' }">{{ item.name }}</div>
          <!-- 序号 -->
          <div class="clow2">
            <div v-for="(item2,index2) in item.children" :style="{ height: item2.lengths*40 + 'px' }">
              <div class="clow2Bottom" :style="{height:item2.length*40+'px'}">{{ index2+1 }}</div>
            </div>
          </div>
          <!-- 指标权重 -->
          <div class="clow3">
            <div v-for="(item2,index2) in item.children">
              <div style="float: left;" class="clow3Top" :style="{height:item2.length*40+'px'}">
                {{ item2.name }}
              </div>
              <!-- 树最近组件 -->
              <div v-if="item2.children" style="float: left;width: 1018px;">
                <AsideItem :asideChildren="item2.children"></AsideItem>
              </div>
            </div>
          </div>

        </div>

      </div>
    </div>
  </div>
</template>
<script>
import AsideItem from "./tree.vue";
export default {
  name: "environmentEntry",
  components: { ceshi, AsideItem },
  data() {
    return {
      Tabheight: 440,
      total: 14,
      dataInfo: [
        {
          id: "1",
          name: "单位环境管理信息20分",
          total: 14,
          children: [
            {
              id: "2",
              name: "环保责任制3分",
              length: 7,
              // 数据看这
              children: [
                {
                  id: "31",
                  name: "1-1",
                  length: 4,
                  children: [
                    {
                      id: "41",
                      name: "21",
                      length: 2,
                      children: [
                        {
                          id: "51",
                          name: "最后一层",
                        },
                        {
                          id: "52",
                          name: "大花脸",
                        },
                      ],
                    },
                    {
                      id: "41",
                      name: "地二层",
                    },
                    {
                      id: "41",
                      name: "第二程2层",
                    },
                  ],
                },
                { id: "32", name: "1-2" },
                { id: "33", name: "1-3" },
                { id: "34", name: "1-4" },
              ],
            },
            {
              id: "3",
              name: " 2分",
              length: 2,
              children: [
                { id: "35", name: "2" },
                {
                  id: "36",
                  name: "2",
                },
              ],
            },
            {
              id: "4",
              name: "3",
              length: 3,
              children: [
                { id: "37", name: "3" },
                { id: "38", name: "3" },
                { id: "39", name: "3" },
              ],
            },
            {
              id: "5",
              name: "4",
              length: 2,
              children: [
                { id: "40", name: "4" },
                { id: "41", name: "4" },
              ],
            },
          ],
        },
        {
          id: "6",
          name: "环保行政管理信息75分",
          total: 8,
          // 最后一层所有的条数
          children: [
            {
              id: "7",
              name: "环保行政许可管理25分",
              length: 8,
              children: [
                {
                  id: "8",
                  name: "建设项目环境影响评价文件审批",
                  length: 2,
                  children: [
                    { id: "9", name: "登记表类项目未依法备案" },
                    {
                      id: "11",
                      name: "报告书类项目(未依法报批、未重新报批、未报请重新审核,未经批准、未经原审批部门重新审核)",
                    },
                  ],
                },
                {
                  id: "12",
                  name: "排污许可证管理",
                  length: 1,
                  children: [{ name: "实行排污许可重点管理的企业事业单位" }],
                },
                {
                  id: "13",
                  name: "危险废物经营许可证管理",
                  length: 1,
                  children: [
                    {
                      name: "实行排污许可重点管理的企业事业单位",
                      id: "56",
                      length: 1,
                      children: [{ name: "hihuihuihuihiuh" }],
                    },
                  ],
                },
                { id: "14", name: "危险废物转移审批" },
                { id: "15", name: "危险废物转移审批23" },
                { id: "16", name: "危险废物转移审批45" },
                { id: "17", name: "危险废物转移审批45" },
              ],
            },
          ],
        },
      ],
    };
  },
  mounted() {},
  watch: {},
  created() {},
  methods: {
    tips(data) {
      console.log(1111111);
      console.log(data, "pppp");
    },
    manage(data) {
      console.log(data, "pppp");
    },
  },
};
</script>
<style lang="less" scoped>
.title {
  text-align: center;
  font-size: 16px;
}
.table_box {
  width: 1361px;
  margin: 0 auto;
}
.tableBody {
  // border-bottom: 1px solid #888888;
  border-right: 1px solid #888888;
}
.border_righttopleft {
  border-top: 1px solid #888888;
  border-left: 1px solid #888888;
}
.clow {
  display: flex;
  text-align: center;
  align-items: center;
  // div{border:1px solid #888888;}
}
.clow1 {
  width: 141px;
  border-right: 1px solid #888888;
  border-bottom: 1px solid #888888;
}
.clow2 {
  width: 60px;
  border-right: 1px solid #888888;
}
.clow2Bottom {
  border-bottom: 1px solid #888888;
}
.clow3 {
  width: 1160px;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
}
.clow4 {
  width: 900px;
}
.clow5 {
  width: 60px;
}
.clow6 {
  width: 60px;
}
.clow3Top {
  width: 140px;
  border-right: 1px solid #888888;
  border-bottom: 1px solid #888888;
}
.clow3Top:last-child {
  // border-bottom: none;
}
.content {
  border-right: 1px, solid #888888;
  border-bottom: 1px solid #888888;
}
.content:last-child {
  // border-bottom:none;
}
.button {
  border-left: 1px, solid #888888;
}
.border_bottomright {
  border-bottom: 1px solid #888888;
  border-right: 1px solid #888888;
}

.border_bottom {
  border-bottom: 1px solid #888888;
}

.border_bottomleft {
  border-bottom: 1px solid #888888;
  border-left: 1px solid #888888;
  border-right: 1px solid #888888;
}

/* 头部样式 */
.head_box {
  display: flex;
}

.head_title {
  font-size: 12px;
  text-align: center;
}

.border_bottomleft {
  font-size: 12px;
}

.head_1 {
  width: 140px;
  height: 30px;
  line-height: 30px;
}

.head_2 {
  width: 60px;
  height: 30px;
  line-height: 30px;
  text-align: center;
}

.head_3 {
  width: 140px;
  height: 30px;
  line-height: 30px;
}

.head_4 {
  width: 900px;
  height: 30px;
  line-height: 30px;
}

/*  .head_5 {
	width: 170px;
	height: 30px;
	line-height: 30px;
}  */
.head_6 {
  width: 60px;
  height: 30px;
  line-height: 30px;
}

.head_7 {
  width: 60px;
  height: 30px;
  line-height: 30px;
}

/*  .body_5 {
	width:170px;
} */
.body_6 {
  width: 60px;
}

.body_1 {
  width: 140px;
}
.secondText {
  border-bottom: 1px solid #888888;
  border-right: 1px solid #888888;
}
.thirdText {
  border-bottom: 1px solid #888888;
}
</style>

子组件

<template>
  <div class="clowTable">
    <div class="clotableList" v-if="asideChildren" v-for="(item,index) in asideChildren" v-bind:key="index">
      <div v-if="item.children" class="content" :style="{height:item.length*40+'px',with:900-(item.ceng)*200+'px'}">
        <div class="secondary-title" style="text-align: left;width: 200px;" :style="{height:item.length*40+'px'}">
          {{item.name}}
        </div>
        <div>
          <AsideItem :asideChildren="item.children"></AsideItem>
        </div>
      </div>
      <!-- 无子集 -->
      <!-- 层数 -->
      <div v-if="!item.children" class="content" style="height: 40px;" :style="{with:1018-(item.ceng)*200+'px'}">
        <div style="float: left;"> {{ item.name }}</div>
        <div style="float: right;width: 120px;display: flex;height: 40px;">
          <div class="button" style="width: 58px;border-left: 1px solid #888888;"><Button type="primary" size="small"
              @click="tips(item)">提示</Button></div>
          <div class="button" style="width: 58px; border-left: 1px solid #888888;"><Button type="primary" size="small"
              @click="manage(item)">管理</Button></div>
        </div>
      </div>
    </div>
  </div>
</template>
 
<script>
export default {
  name: "AsideItem",
  props: {
    asideChildren: {
      type: Array,
    },
  },
  methods:{
    tips(data) {
      console.log(1111111);
      console.log(data, "pppp");
    },
    manage(data) {
      console.log(data, "pppp");
    },
  }
};
</script>
<style scoped>
.clowTable {
}
.content {
  border-bottom: 1px solid #88888888;
}
.secondary-title {
  border-right: 1px solid #888888;
  float: left;
}
</style>


最终实现功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/772150.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Zabbix 自动发现及注册

1、依次选择 Configuratio、Discovery、Create discovery rule&#xff08;配置、自动发现、创建发现规则&#xff09; 创建客户端发现规则 2、zabbix客户端安装 agent zabbix客户端一键安装脚本 脚本参考链接 #!/bin/bash #Zabbix-Agent 5.0Zabbix_Service192.168.63.20#安…

2023牛客暑期多校训练营1(D/H/J/K/M)

目录 D.Chocolate H.Matches J.Roulette K.Subdivision M.Water D.Chocolate 思路&#xff1a;当n1且m1时候先手必输&#xff0c;然后1*k&#xff08;k>2&#xff09;的情况下后手必输&#xff0c;因为先手可以选到只剩下一个格子。而在其它情况里先手第一步可以先选(…

使用对象解构赋值,将对象的某些属性赋值给另一个对象

在处理接口返回的数据时&#xff0c;我需要将接口返回的数据&#xff08;对象&#xff09;的某些属性用另一个对象进行接收&#xff0c;学习对象解构赋值之前&#xff0c;我一直使用的都是最笨的方法&#xff1a; this.formData.projectId res.data.projectId this.formData.…

奖牌数领跑是为何?解码长沙华中医卫科技中等职业学校的国防教育成功之道

近些年&#xff0c;越来越多的学生、家长、企业开始重新审视职业教育的价值。在产教融合的大背景下&#xff0c;职业教育已经成为了高新产业发展的人才引擎&#xff0c;职业教育的教学模式、软硬件配置乃至未来毕业生的就业情况&#xff0c;已完全变了模样。 实际上&#xff0…

Linux环境下的开发工具(yum、vim、gdb、make/Makefile)

目录 yum vim GDB调试 Makefile yum 在Linux系统上安装软件的方式有 下载到程序的源代码&#xff0c;自行进行编译&#xff0c;得到可执行程序。 获取rpm安装包&#xff0c;通过rpm命令进行安装。&#xff08;未解决软件的依赖关系&#xff09; 通过yum进行安装软件。&…

Android APP性能及专项测试

Android篇 1. 性能测试 Android性能测试分为两类&#xff1a; 1、一类为rom版本&#xff08;系统&#xff09;的性能测试 2、一类为应用app的性能测试Android的app性能测试包括的测试项比如&#xff1a; 1、资源消耗 2、内存泄露 3、电量功耗 4、耗时 5、网络流量消耗 6、移动…

evenloop事件循环机制

宏任务&#xff1a;script&#xff08;整体代码&#xff09;&#xff0c;setTimeout&#xff0c;setInterval&#xff0c;setImmediate&#xff0c;i/o&#xff0c;UIrendering 微任务&#xff1a;promise&#xff0c;async/await&#xff0c;Object.observe&#xff0c;Mutati…

Leetcode-每日一题【19.删除链表的倒数第N个结点】

题目 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2输出&#xff1a;[1,2,3,5] 示例 2&#xff1a; 输入&#xff1a;head [1], n 1输出&#xff1a;[] 示例 3&#x…

没有人能真正精通C++

任何说自己很懂C的人可能都是在夸大其词。 我想你可能已经注意到了&#xff0c;是的&#xff0c;今天的大多数程序员都在使用Python、Rust、Go或是其他新的编程语言。大部分人已经不再需要掌握C、C等古老的编程语言了&#xff0c;甚至很多程序员已经从手动编码开始向AI编码转型…

050、事务设计之Percolator事务模型

Percolator 背景 Bigtable: 大表打散每行到各个节点&#xff0c;每一行作为一个kv。解决的问题 一个事务涉及的行在多个节点&#xff0c;如何用单行对一个事务进行控制&#xff0c;实现原子性。 快照隔离级别&#xff08;snapshot &#xff09; 白色点&#xff1a;代表事务开始…

.Net5 mvc项目UseBrowserLink插件功能失效的原因

前期基于.Net Framework创建的Web项目&#xff0c;使用了BrowserLink插件协助前端开发&#xff0c;功能一直都比较稳定&#xff0c;后来项目迁到.Net5 &#xff0c;发现BrowserLink 已经失去了从浏览器定位到项目源代码的功能&#xff0c;希望在后面的版本还能继续支持此版本&a…

分区类型ID一键变身!快速改变分区类型ID的简单方法

分区类型ID是什么&#xff1f; 想要改变分区类型ID&#xff0c;先得明白分区类型ID是什么。大多数电脑用户可能只熟悉分区和分区类型&#xff0c;实际上有5种分区类型&#xff1a;主分区、可扩展固件接口&#xff08;EFI&#xff09;、扩展分区、逻辑分区和Microsoft保留分…

gitbash2.41安装教程——2023.07

文章目录 1、下载安装包2、安装 1、下载安装包 进入官网下载&#xff0c;官网链接 上面有多种系统可以选择&#xff0c;我是windows&#xff0c;点击windows进行下载 这里可以直接下载最新版本的git 2.41.0 64位。 下载可能有点慢&#xff0c;耐心等待。 2、安装 下载完…

什么是云应用程序?

应用程序优先的云服务的日益普及导致应用程序与云服务的融合程度比以前更深。应用程序和云之间的运行时边界正在从虚拟机转移到容器和函数。集成边界正在从仅访问数据库和消息代理转向应用程序的机械部分混合并在云中运行的边界。在这个最终架构中&#xff0c;应用程序是“云绑…

02 QPushButton的基本使用

Tips: 在使用控件的时候如果没有智能提示&#xff0c;可能是没有包含头文件 在运行时&#xff0c;报【invalid use of xxx】可能是没有包含相关头文件 如果出现中文乱码&#xff1a;设置编译器的编码格式为UTF-8 本节主要包含创建一个按钮控件、显示按钮、设置按钮的父窗口、设…

【java】【基础2】程序流程控制

目录 一、最经典的三种执行顺序 二、分支结构 2.1 if 2.2 switch 2.3 if与switch区别 三、循环结构 3.1 for循环 3.2 while循环 3.3 do-while循环 3.4 三种循环区别 3.5 补充知识&#xff1a;死循环 3.6 补充知识&#xff1a;循环嵌套 四、跳转关键字&#xff1a;br…

轮廓提取demo

note 步骤&#xff1a; 1.滤波(使用高斯核对原图卷积) 2.取梯度(使用sobel核对步骤1之后的图卷积得到x,y两个方向的梯度分量) 3.合成梯度图(x,y两个方向的梯度分量相加) 4.取梯度平方和矩阵(x*x y*y) 5.取八邻域掩膜(3x3矩阵) 6.根据掩膜&#xff0c;合成梯度图&#x…

AIC8800 WIFI调试记录

问题&#xff1a;AIC8800 USB 接口WIFI模块无法识别 现象&#xff1a; 上层&#xff1a;WIFI打不开 驱动层&#xff1a;usb无法识别到AIC8800模块 A133P:/ $ lsusb Bus 001 Device 001: ID 1d6b:0002 Bus 001 Device 002: ID 1a40:0101 Bus 002 Device 001: ID 1d6b:0001 Bus…

postgresql regular lock常规锁申请与释放 内幕 以及fastpath快速申请优化的取舍

​专栏内容&#xff1a; postgresql内核源码分析 手写数据库toadb 并发编程 个人主页&#xff1a;我的主页 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 定义 每种常规锁都需要定义几个要素&#xff0c;它由结构体 Lo…

MySQL中这14个小玩意,让人眼前一亮!!!

前言 我最近几年用MYSQL数据库挺多的&#xff0c;发现了一些非常有用的小玩意&#xff0c;今天拿出来分享到大家&#xff0c;希望对你会有所帮助。 1.group_concat 在我们平常的工作中&#xff0c;使用group by进行分组的场景&#xff0c;是非常多的。 比如想统计出用户表中…