element-ui实现table表格的嵌套(table表格嵌套)功能实现

最近在做电商类型的官网,希望实现的布局如下:有表头和表身,所以我首先想到的就是table表格组件。

在这里插入图片描述

表格组件中常见的就是:标题和内容一一对应:
在这里插入图片描述
像效果图中的效果,只用基础的表格布局是不行的,因此我想到了table表格中的展开功能:
在这里插入图片描述
然后通过:默认展开所有行
在这里插入图片描述
然后在里面的表格table中默认隐藏表头:
在这里插入图片描述
其他的则需要通过样式进行实现了

element-ui中table表格的嵌套(代码部分)

 <el-table v-bind:data="tableData" :default-expand-all="true" class="parentTable"
       ref="multipleTable"
       v-loading="loading"
       element-loading-text="拼命加载中">
 <el-table-column type="expand">
     <template slot-scope="props">
         <div class="conWrap" style="text-align: left;line-height: 16px;font-size: 14px;position: relative;top: -10px;">
             <span>订单包号:{{props.row.OrderNo}}</span>
             <span style="margin-left:42px;">付款时间:{{props.row.CreateTime}}</span>
         </div>
         <el-table v-bind:data="props.row.OrderDetails" :default-expand-all="true" stripe :show-header="false" class="childTable">
             <el-table-column prop="PartNo" align="center"
                              label="产品型号"
                              width="180">
                 <template slot-scope="scope">
                     <div class="name-b">{{scope.row.PartNo}}</div>
                 </template>
             </el-table-column>
             <el-table-column prop="Mfg"
                              label="品牌" width="199">
                 <template slot-scope="scope">
                     <div class="name-b">{{scope.row.Mfg}}</div>
                 </template>
             </el-table-column>
             <el-table-column prop="Package"
                              label="封装" width="114">
                 <template slot-scope="scope">
                     <div class="name-b">{{scope.row.Package}}</div>
                 </template>
             </el-table-column>
             <el-table-column prop="miaoshu"
                              label="描述" width="300">
                 <template slot-scope="scope">
                     <div class="name-b" style="width:100%;">72MHZ 20KB 37 2V~3.6V-40°C~85°CTA</div>
                 </template>
             </el-table-column>
             <el-table-column prop="ProductNum" align="center" width="120"
                              label="申请数量">
                 <template slot-scope="scope">
                     <div class="name-b">{{scope.row.ProductNum}}</div>
                 </template>
             </el-table-column>
             <el-table-column prop="maxNum"
                              label="申请状态">
                 <template slot-scope="scope">
                     <div>
                         <el-popover trigger="hover" placement="right" v-if="scope.row.State==20||scope.row.State==40">
                             <p v-if="scope.row.State==20">失败原因: {{ scope.row.FailReason }}</p>
                             <p v-if="scope.row.State==40">物流信息: {{ scope.row.ExpressNo }}</p>
                             <div slot="reference" class="name-wrapper">
                                 {{scope.row.State |fiterState(stateMenu)}}
                                 <span v-if="scope.row.State==40" style="margin-left:14px;color:#B77C20;">物流信息</span>
                                 <span v-if="scope.row.State==20" style="margin-left:14px;color:#B77C20;">查看原因</span>
                             </div>
                         </el-popover>
                         <div v-else>
                             {{scope.row.State |fiterState(stateMenu)}}
                         </div>
                     </div>
                 </template>
             </el-table-column>
             <el-table-column label="操作" width="162">
                 <template slot-scope="scope">
                     <div style="display:flex;">
                         <el-button type="text" size="small" v-on:click="cancel(scope.row)" v-if="scope.row.State==10||scope.row.State==20">取消</el-button>
                         <el-button type="text" size="small" v-on:click="sureHave(scope.row)" v-if="scope.row.State==40">确认收货</el-button>
                     </div>
                 </template>
             </el-table-column>
         </el-table>
     </template>
 </el-table-column>
 <el-table-column label="产品型号" align="center" width="180"></el-table-column>
 <el-table-column label="品牌" width="199"></el-table-column>
 <el-table-column label="封装" width="114"></el-table-column>
 <el-table-column label="描述"  width="300"></el-table-column>
 <el-table-column label="申请数量" align="center" width="120"></el-table-column>
 <el-table-column label="申请状态"></el-table-column>
 <el-table-column label="操作" align="center" width="118"></el-table-column>
</el-table>

最终效果图:
在这里插入图片描述

样式部分:

.el-table {
            border-top: none !important;
        }

        .el-table__expanded-cell {
            padding: 0 !important;
        }

        .tableWrap {
            width: 100%;
        }

        .el-tabs__nav-scroll {
            padding: 0 20px;
            box-sizing: border-box;
        }

        .tableWrap .el-table {
            width: 1240px;
            margin: 0 auto;
        }

        .el-icon.el-icon-arrow-right {
            color: #fff;
        }

        .el-table__row.expanded {
            background: #fff !important;
            position: relative !important;
            top: -100px !important;
            border: 1px solid red;
        }

        .el-tabs__content {
            display: none;
        }

        .el-table__row.expanded > td {
            padding: 7px 0;
        }

        .el-table__row.expanded {
            border: 1px solid #E5E5E5;
        }

            .el-table__row.expanded:first-child {
                border-bottom: none;
            }

        .childTable .el-table__body {
            border-top: 1px solid #E5E5E5;
        }

        .childTable .el-table__row.expanded > td:first-child {
            border-left: 1px solid #E5E5E5;
        }

        .childTable .el-table__row.expanded > td:last-child {
            border-right: 1px solid #E5E5E5;
        }

        .el-tabs__header.is-top {
            border-bottom: none;
        }

        .childTable .el-table__header-wrapper {
            display: none;
        }

        .conWrap {
            height: 44px;
            background: #E5E5E5;
            line-height: 44px;
            padding-left: 10px;
            font-size: 14px;
            font-family: Microsoft YaHei;
            line-height: 19px;
            color: #333333;
        }

            .conWrap > span {
                line-height: 44px;
            }

        .el-table .has-gutter .is-leaf {
            position: relative !important;
            left: -48px !important;
        }

            .el-table .has-gutter .is-leaf:last-child {
                position: relative !important;
                left: 0px !important;
            }

        .el-table__header-wrapper {
            background: #EBEBEB;
        }
        
        .el-table .has-gutter > tr > th {
            background: #EBEBEB;
            font-size: 14px;
            font-family: Microsoft YaHei;
            font-weight: bold;
            line-height: 19px;
            color: #333333;
        }

数据结构

{
    "Items":[
        {
            "OrderNo":"ICS-10390-1",
            "ProductIds":"[646,309118,331385,331393,331394]",
            "UserId":10390,
            "Applicant":"( ̄▽ ̄*)b",
            "ApplicantMobile":"18458192430",
            "Receiver":"123",
            "CompanyName":"卡卡卡卡卡12 32  26",
            "Post":"高管",
            "Industry":"工业设计",
            "Purpose":"332",
            "Province":"广东省",
            "City":"广州市",
            "Address":"123",
            "ContactMobile":"18458192430",
            "CreateTime":"2021/9/7 8:51",
            "OrderDetails":[
                {
                    "Id":1309,
                    "OrderNo":"ICS-10390-1",
                    "SupplierId":2,
                    "ProductId":331393,
                    "ProductNum":1,
                    "ExpressNo":null,
                    "SendTime":"",
                    "ReceiveTime":"",
                    "JpSkuNo":"JPC47B1332N331393",
                    "PartNo":"cs-454",
                    "Package":"21",
                    "Mfg":"Samsung(三星)",
                    "ProPics":"https://test-jpfile1.oss-cn-shenzhen.aliyuncs.com//IcMall/icmall/2021/4/30/2021043014452714515931.JPG",
                    "CreateTime":"2021/9/7 8:51",
                    "UpdateTime":"2021/9/7 8:51",
                    "IsDeleted":false,
                    "State":10,
                    "CheckTime":null,
                    "FailReason":null,
                    "SupplierName":"深圳前海宝利士科技有限公司",
                    "ExpressCompany":null,
                    "Ship":1
                }
            ]
        }
    ],
    "Queryable":null,
    "TotalCount":1,
    "Msg":null
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为TaurusDB与GaussDB:信创改造的“降本提效”之路

近年来&#xff0c;信创&#xff08;信息技术应用创新&#xff09;已成为中国国央企数字化转型的关键词。伴随这一浪潮&#xff0c;众多企业面临一个迫切问题&#xff1a;如何在兼顾性能与成本的前提下&#xff0c;完成核心系统的迁移改造&#xff1f;华为TaurusDB和GaussDB的加…

自然哲学的智能原理

一、自然哲学的智能原理 自然哲学的智能原理是一个跨学科的话题&#xff0c;它涉及哲学、自然科学、人工智能&#xff08;AI&#xff09;等多个领域的交集。自然哲学起源于古希腊&#xff0c;是探索自然界规律与现象的哲学分支&#xff0c;现代的“智能”概念则涉及到思维、学习…

硬件成本5元-USB串口采集电表数据完整方案-ThingsPanel快速入门

ThingsPanel开源物联网平台支持广泛的协议&#xff0c;灵活自由&#xff0c;本文介绍ThingsPanel通过串口来采集电表数据&#xff0c;简单易行&#xff0c;成本低廉&#xff0c;适合入门者学习试验&#xff0c;也适合一些特定的应用场景做数据采集。 适用场景&#xff1a; 降低…

在 Windows WSL 上部署 Ollama 和大语言模型:从镜像冗余问题看 Docker 最佳实践20241208

&#x1f6e0;️ 在 Windows WSL 上部署 Ollama 和大语言模型&#xff1a;从镜像冗余问题看 Docker 最佳实践 ⭐ 引言 随着大语言模型&#xff08;LLM&#xff09;和人工智能技术的迅猛发展&#xff0c;开发者们越来越多地尝试在本地环境中部署模型进行实验。 但部署过程中常…

数字化招聘系统如何帮助企业实现招聘效率翻倍提升?

众所周知&#xff0c;传统的招聘方式已经难以满足现代企业对人才的需求&#xff0c;而数字化招聘系统的出现&#xff0c;为企业提供了全新的解决方案。通过数字化招聘系统&#xff0c;企业可以自动化处理繁琐的招聘流程&#xff0c;快速筛选合适的候选人&#xff0c;从而大幅提…

【Email】基于SpringBoot3.4.x集成发送邮件功能

【Email】基于SpringBoot3.4.x集成发送邮件功能 摘要本地开发环境说明pom.xml启动类application.yaml写一个邮件模板定义模板引擎工具类定义一个邮件发送对象封装一个邮件发送器单元测试邮件模板单元测试发送邮件单元测试 邮件效果参考资料 摘要 在业务系统开发过程中&#xf…

如何在小米平板5上运行 deepin 23 ?

deepin 23 加入了 ARM64 支持&#xff0c;这里尝试将 deepin 系统刷入平板中&#xff0c;平常使用中&#xff0c;带个笔记本电脑有时候也会嫌比较麻烦&#xff0c;把 Linux 系统刷入平板中既满足了使用需要&#xff0c;又满足了轻便的需求。为什么不使用 Termux &#xff1f;虽…

java+springboot+mysql在线文件管理系统

项目介绍&#xff1a; 使用javaspringbootmysql开发的在线文件管理系统&#xff0c;系统包含管理员、使用员、监察员角色&#xff0c;功能如下&#xff1a; 管理员&#xff1a;使用员管理&#xff1b;监测员管理&#xff1b;留言管理&#xff08;回复&#xff09;&#xff1b…

网站多语言前端翻译translate.js 在vue项目中的使用方法

网站多语言前端翻译translate.js 在vue项目中的使用方法 需求 客户网站&#xff0c;想要多语言版本的&#xff0c;通常的解决办法有两种&#xff1a; 1、最直接的办法&#xff1a;编写两种&#xff0c;或者多种语言版本的网站&#xff0c;也就是一个网站有几种语言&#xff0…

《Django 5 By Example》阅读笔记:p493-p520

《Django 5 By Example》学习第 17 天&#xff0c;p493-p520 总结&#xff0c;总计 28 页。 一、技术总结 1.internationalization(国际化) vs localization(本地化) (1)18n&#xff0c;L10n&#xff0c;g11n 以前总觉得这两个缩写好难记&#xff0c;今天仔细看了下维基百科…

mycat2读写分离配置

逻辑库配置 登录mycat 创建逻辑库&#xff0c;配置数据源 mycat2安装和使用 create database mycar_db1;修改mycar_db1.schema.json配置文件 指定的数据’targetName’&#xff1a;‘prototype’&#xff0c;配置主机数据源 targetName的参数可以是数据源 也可以是集群 这儿…

.Net 多线程、异步、性能优化应用与心得

文章目录 概要多线程Thread方式创建线程:Task方式创建线程[C#5.0引入]&#xff08;推荐使用&#xff09;:线程池方式创建线程&#xff1a; 异步异步方法异步IO操作异步数据库操作异步Web请求取消异步ValueTask[C# 7.0引入]ValueTask<TResult> 和 Task 性能优化懒加载对象…

如何在项目中使用人大金仓替换mysql

文章目录 数据库连接配置调整驱动和连接字符串修改&#xff1a;用户名和密码&#xff1a; SQL 语法兼容性检查数据类型差异处理&#xff1a;函数差异&#xff1a;SQL语句客户端 SQL 交互工具 数据迁移数据库、用户移植数据迁移工具使用&#xff1a;迁移过程中的问题及解决方案 …

Docker 安装 sentinel

Docker 安装系列 1、拉取 [rootTseng ~]# docker pull bladex/sentinel-dashboard Using default tag: latest latest: Pulling from bladex/sentinel-dashboard 4abcf2066143: Pull complete 1ec1e81da383: Pull complete 56bccb36a894: Pull complete 7cc80011dc6f: Pull…

十一、容器化 vs 虚拟化-Docker 使用

文章目录 前言一、Docker Hello World二、Docker 容器使用三、Docker 镜像使用四、Docker 容器连接五、Docker 仓库管理六、Docker Dockerfile七、Docker Compose八、Docker Machine九、Swarm 集群管理 前言 Docker 使用‌ Docker 容器使用、镜像使用、容器连接、仓库管理、Do…

【报错】新建springboot项目时缺少resource

1.问题描述 在新建springboot项目时缺少resources,刚刚新建时的目录刚好就是去掉涂鸦的resources后的目录 2.解决方法 步骤如下&#xff1a;【文件】--【项目结构】--【模块】--【源】--在main文件夹右击选择新建文件夹并命名为resources--在test文件夹右击选择新建文件夹并命名…

Java面试之Happens-Before原则

此篇接上一篇的Java面试之volatile关键字。 首先&#xff0c;这是Java语言中的一个“先行发生”(Happens-Before)的原则。是判断数据是否存在竞争&#xff0c;线程是否安全的非常有用的手段&#xff0c;也是Java内存模型中定义的两项操作之间的偏序关系。 其次&#xff0c;Happ…

AB plc设备数据 转 opc ua项目案例

目录 1 案例说明 2 VFBOX网关工作原理 3 准备工作 4 网关采集AB PLC数据 5 启动OPC UA协议转发采集的数据 6 案例总结 1 案例说明 设置网关采集AB PLC数据把采集的数据转成opc ua协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协议转换网关&#xff0c;是把一种…

ASP.NET|日常开发中连接Sqlite数据库详解

ASP.NET&#xff5c;日常开发中连接Sqlite数据库详解 前言一、安装和引用相关库1.1 安装 SQLite 驱动1.2 引用命名空间 二、配置连接字符串2.1 连接字符串的基本格式 三、建立数据库连接3.1 创建连接对象并打开连接 四、执行数据库操作4.1 创建表&#xff08;以简单的用户表为例…

Redis篇-6--原理篇5--单线程模型

1、概述 Redis 采用单线程模型来处理客户端请求&#xff0c;这意味着在任意时刻只有一个命令被执行。这种设计简化了 Redis 的实现&#xff0c;并确保了高并发环境下的数据一致性。尽管 Redis 是单线程的&#xff0c;但它通过高效的内存管理和网络 I/O 操作&#xff0c;仍然能…