弹窗嵌套表格(表格可点击展开收起)

el-timeline嵌套el-timeline使用时,子级el-timeline节点时间线不显示 给嵌套使用的子级el-timeline组件的el-timeline-item增加属性区分当前节点是否为最后一个节点,一般来说接口会返回一个状态来区分当前节点是否已审批,顺序排列时,未审批节点即为最后一个节点,利用这个思路我们给子级el-timeline的末级节点单独书写样式来解决这一问题。父级el-timeline的第三个el-timeline-item在elementUI原生样式中会自动定义为末级节点,其中末级节点样式影响了子节点样式,故子节点时间线不显示。待实现效果如下图所示。 阅读详情
<template>
  <div>
    <el-dialog
      :visible.sync="dialogDetailInfo.show"
      width="48%"
      class="setDialog"
      :destroy-on-close="true"
      :modal-append-to-body="false"
      @close="closeDialog"
    >
      <div class="top">
        <div class="dian"></div>
        <div>指令详情</div>
        <div class="closImg" @click="closeDialog">
          <img src="../assets/images/nth/close.png" alt=""/>
        </div>
      </div>
      <el-scrollbar style="height: calc(48vh - 100px)">
        <div class="content">
          <el-table
            :data="tableData"
            style="width: 100%"
            class="setTable"
            :row-style="{height:'46px'}"
            :cell-style="{padding:'0px'}"
            ref="expandTable"
            :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
          >
            <el-table-column
              prop="zlly"
              label="指令来源"
            >
            </el-table-column>
            <el-table-column
              prop="jsry"
              label="接收人员"
            >
            </el-table-column>
            <el-table-column
              prop="zt"
              label="状态"
            >
            </el-table-column>
            <el-table-column
              label="时间轴"
            >
              <template slot-scope="scope">
                <el-button @click="handleClick(scope.row,scope)" type="text" size="small" style="color: #2AC5FF">
                  {{scope.row.isexpan?'收起':'展开'}}
                  <img :class="scope.row.isexpan?'changeRoate':''" src="../assets/images/nth/sjx.png"
                       style="width: 10px;height: 8px;transition: all .3s">
                </el-button>
              </template>
            </el-table-column>
            <el-table-column type="expand" width="1">
              <template slot-scope="props">
                <div class="block">
                  <el-timeline>
                    <el-timeline-item timestamp="2021-08-22 21:34:56" placement="top">
                      <div style="display: flex">
                        <div style="color: #FF622B;width: 100px;margin-left: 30px">审核未通过</div>
                        <div>签收文字备注文字文字文字</div>
                      </div>
                    </el-timeline-item>
                    <el-timeline-item timestamp="2021-08-22 21:34:56" placement="top">
                      <div style="display: flex">
                        <div style="color: #FFFFFF;width: 100px;margin-left: 30px">反馈</div>
                        <div>签收文字备注文字文字文字</div>
                      </div>
                    </el-timeline-item>
                    <el-timeline-item timestamp="2021-08-22 21:34:56" placement="top">
                      <div style="display: flex">
                        <div style="color: #FFFFFF;width: 100px;margin-left: 30px">签收</div>
                        <div>签收文字备注文字文字文字</div>
                      </div>
                    </el-timeline-item>
                  </el-timeline>
                </div>
              </template>
            </el-table-column>
          </el-table>
        </div>
      </el-scrollbar>
    </el-dialog>
  </div>
</template>

<script>
  export default {
    name: "dialogDetail",
    props: {
      dialogDetailInfo: {
        type: Object,
        default: () => {
        },
      },
    },
    data() {
      return {
        DialogVisible: false,
        tableData: [
          {
            zlly: '指令转发',
            jsry: '胡鑫',
            zt: '转发',
            isexpan: false,
            id: 1
          },
          {
            zlly: '指令转发',
            jsry: '胡鑫',
            zt: '转发',
            isexpan: false,
            id: 2
          }
        ]
      }
    },
    methods: {
      closeDialog() {
        this.$parent.dialogDetailInfoDialog()
      },
      handleClick(row, scope) {
        console.log(scope.$index);
        let $table = this.$refs.expandTable;
        $table.toggleRowExpansion(row)
        // this.tableData.map(item=>{
        //   item['isexpan']=false
        // })
        this.tableData[scope.$index]['isexpan'] = !this.tableData[scope.$index]['isexpan']
        console.log(this.tableData)
      },
    }
  }
</script>

<style scoped lang="scss">
  /*弹窗----------------------------------------------------*/
  /deep/ .setDialog {
    .el-dialog__header {
      display: none;
    }

    .el-dialog {
      background: #154476;
      border: 1px solid #3baaff;
      padding: 0px;
      height: 48vh;
      color: #ffffff;

      .el-dialog__body {
        padding: 0rem 0rem;
      }

      .closImg {
        cursor: pointer;


        img {
          width: 14px;
          height: 14px;
          position: absolute;
          top: 15px;
          right: 20px;
          transition: all .3s;

          &:hover {
            transform: rotate(90deg);
            transition: all .3s;
          }
        }

      }

      .head {
        height: 2.5rem;
        display: flex;
        align-items: center;
        justify-content: space-between;
        font-size: 1.2rem;
        font-weight: 600;
        color: #ffffff;
        text-shadow: 0 0 10px #0c8ac7;
      }
    }
  }

  /*表格样式----------------------------------------------------------*/
  /deep/ .setTable {
    font-size: 12px;
    font-family: Microsoft YaHei;
    font-weight: 400;
    color: #ffffff;
    background-color: transparent !important;

    //表头的样式
    thead {
      font-size: 12px;
      color: #d0e9ff;
      height: 40px;
      background-color: transparent !important;

      th {
        padding: 0;
        background: #009ee0;
      }
    }

    //表格下横线
    & th.is-leaf,
    & td {
      border-bottom: 1px solid rgba(23, 131, 199, 0.4);
    }

    //表格背景色透明
    tbody {
      tr {
        background: transparent;
        color: #ffffff;
      }

      td {
        background: transparent;
      }
    }

    //鼠标移入表格的颜色
    .el-table__body tr:hover > td {
      background-color: #0078d2;
    }

    //外边框颜色
    &::after,
    .el-table--border::after,
    &::before {
      background-color: transparent;
    }
  }

  .top {
    width: 100%;
    height: 40px;
    background-color: #009ee0;
    color: #ffffff;
    display: flex;
    align-items: center;
    font-size: 16px;
    margin-bottom: 15px;

    .dian {
      width: 4px;
      height: 4px;
      margin-right: 10px;
      margin-left: 20px;
      background: #ffffff;
      border-radius: 50%;
    }
  }

  .content {
    width: 95%;
    margin: 0 auto;
  }

  .changeRoate {
    transform: rotate(
        180deg
    );
    transition: all .3s;
  }
</style>

【Axure高保真原型】能增删改的嵌套表格 今天和大家分享能增删改的嵌套表格的原型模板~~~ 阅读详情

相关推荐

别再写死表格了!用ElementUI的el-table实现动态嵌套表格(附完整代码)

本文深度解析ElementUI中el-table的动态嵌套表格实现,从静态表格到智能交互的进阶实践。通过动态插槽、嵌套表格管理、CSS样式优化和性能提升四大维度,帮助开发者构建灵活高效的表格组件,适用于复杂业务场景的数据展示需求。

weixin_30315435的博客 356

el的嵌套使用

  首先声明:el无法嵌套使用!开发过程中遇到了需要el嵌套使用的情况,具体情况为 &lt;c:forEach begin="0" end="3" step="1" var="i"&gt; &lt;td style="width:19%"&gt; &lt;c:if test="${id&lt;i

qq_32810733的博客 503

ElementUI树形表格懒加载数据刷新:原理剖析与手动状态管理方案

在Vue.js的前端开发中,组件化与响应式数据驱动是构建复杂应用的基础。ElementUI作为流行的UI框架,其el-table组件通过懒加载机制优化了树形数据渲染性能,其原理在于结合Vue的响应式系统与组件内部状态管理,仅在节点展开时动态加载子数据。这一机制在提升初始加载速度的同时,也带来了数据更新后视图同步的技术挑战,其核心价值在于平衡性能与数据实时性。在实际工程实践中,尤其是在后台管理系统涉及组织架构、分类目录等动态数据场景时,开发者常需解决懒加载数据源变更后的视图刷新问题。本文深入探讨了通过手动管理

weixin_30915951的博客 448

VUE基础之:visible.sync-模态框显示隐藏、elementUI dialog组件报错或者visible属性不生效问题

VUE基础之:visible.sync-模态框显示隐藏、elementUI dialog组件报错或者visible属性不生效问题 这篇文档存成草稿2年了,最近终于有时间拉出来写完了。。。。 我们日常开发中经常遇到:visible.sync修饰符,特别是当你使用elementUI的时候,el-dialog组件如果不使用:visible.sync就会出现一些意想不到的问题,比如说疯狂报错给你看~~~ 场景: 父组件引用子组件 <child-dialog :visible="visible"><

tangdou369098655的博客 1万+

Vue项目管理后台:用vxe-gantt实现点击任务条弹出编辑表单

在项目管理系统中,甘特图是进行任务排期与资源分配的核心视图,它以横向时间轴直观呈现任务起止与进度,能显著降低团队沟通成本。前端实现甘特图时,直接使用图表库往往需要自行处理层级联动、拖拽、事件捕获等复杂交互,维护成本较高。而专业甘特图组件则内部封装了表格与时间轴的联动机制,通过数据驱动渲染,提供成熟的事件体系。本文从基础概念切入,介绍如何基于Vue技术栈,结合vxe-gantt组件构建可交互的项目管理甘特图,重点讲解任务条点击事件、表单回填、数据更新与自定义样式,帮助开发者快速实现“点一下弹编辑框”的高频业务

weixin_34110970的博客 331

jQuery树形表格插件包:带默认主题、完整示例和即开即用演示页

一个轻量级、开箱即用的jQuery树形表格组件,包含核心脚本jquery.treetable.js、基础样式jquery.treetable.css、默认主题样式jquery.treetable.theme.default.css,以及辅助显示样式screen.css。配套提供标准HTML入口index.html和必需的jquery.js依赖,所有文件结构清晰,无需编译或构建,直接双击index.html即可在浏览器中运行演示。‘treetable的例子’文件夹内含真实可用的示例代码,覆盖节点展开/折叠、父

qsc901234567的博客 240

vue中封装el-dialog为公共组件

一、首先封装一个组件 注意:el-dialog的关闭操作,使用before-close自己写,否则会导致子组件改变父组件的参数而报错; <template> <el-dialog title="数据详情" :visible.sync="dialogDetailVisible" :close-on-click-modal="false" :before-close="dialogClose"> <div class="top"> <p c

LAHM8963的博客 2336

嵌入式常见英文2500词总结

嵌入式常见英文总结

qq_28576837的博客 1万+

Element UI 时间轴组件(Timeline)使用详解

Element UI 时间轴组件(Timeline)使用详解 【免费下载链接】element A Vue.js 2.0 UI Toolkit for Web 项目地址: https://gitcode.com/gh_mirrors...

gitblog_00342的博客 1380

SAP采购含税价转换的底层逻辑解析:ABAP例程如何实现价税分离计算

本文深入解析SAP系统中采购含税价与不含税价的转换机制,重点介绍VOFM例程和ABAP代码实现价税分离计算的方法。通过详细讲解数学原理、税率体系及SAP定价引擎架构,为开发人员提供完整的解决方案,帮助提升采购业务中的价格处理效率和准确性。

weixin_29237635的博客 451

保姆级教程:用STM32CubeMX HAL库搞定ESP8266连接,附串口printf调试全流程

本文提供了一份详细的STM32CubeMX HAL库教程,指导开发者如何实现ESP8266无线模块的连接与调试。从开发环境搭建、串口配置到AT指令通信解析,涵盖了物联网开发中的关键步骤和常见问题解决方案,帮助开发者快速掌握STM32与ESP8266的集成技术。

weixin_28273593的博客 504

【Axure教程】能增删改的嵌套表格

今天教大家制作能增删改的嵌套表格的原型模版~~~

mushe93的博客 1394

告别复杂模型:用UFLD算法5分钟搞定车道线检测(附Python代码)

本文介绍了UFLD(Ultra Fast Lane Detection)算法在车道线检测中的高效应用,仅需5行核心代码即可实现实时检测,特别适合边缘计算设备。通过对比传统方法,UFLD在推理速度、模型大小和硬件需求上具有显著优势,是深度学习领域轻量级解决方案的典范。

weixin_27872611的博客 289

【Axure教程】能展开查看附件的嵌套表格

我们定义,如果zhankai列的值为展开,就显示附件内容,这里分成两部分,如果是父级,就是表格对应的行,那应该显示的收起附件的文本,因为已经打开了,所以我们用设置面板状态的交互,设置面板为收起附件页;这里需要注意的是如果在展开新的项目附件,想把之前的项目附件自动收起来,我们在展开之前就要先把所有的行都收起,我们用标记行的交互,标记所有行,然后用更新行的交互,将所有行展开列的值更新为收起,然后再执行上面的操作即可。——点击查看附件按钮,可以展开该查看该行对应的附件,收起附件按钮,可以收起该行对应的附件。

mushe93的博客 837

HDMI调试避坑指南:从AVI InfoFrame到通用控制包,这些DataIsland Packet细节千万别忽略

本文深入解析HDMI调试中DataIsland数据包的关键细节,包括AVI InfoFrame、通用控制包和音频时钟再生包(ACR)的配置与故障排查。通过实际案例和寄存器配置示例,帮助工程师快速定位显示异常、色彩失真和音频中断等问题,提升HDMI接口调试效率。

weixin_30897233的博客 637

北京途游游戏后端开发面经

北京途游游戏后端开发面经 我面试岗位是基于Python的后端开发工程师,主要是搞游戏的服务器开发。面试一共分了两轮,之后说是看看其他的候选人再定,感觉凉凉~~ 由于受到此次新型冠状病毒疫情的影响,本次面试采用视频面试的方式,下面是面试的时候面试官提的问题,python的基础知识还是问的比较多的。  一面:(32分钟微信视频)  简单做下自我介绍,   1.说一下你开发过的项目,挑一个说下你都做了...

weixin_45603043的博客 2128

技术深度解析:Element UI表格行展开架构设计与高性能数据渲染方案

在现代企业级数据可视化应用中,交互式数据展示已成为提升用户体验的核心需求。面对复杂业务场景中多层次数据结构的呈现挑战,传统表格组件往往难以平衡信息密度与用户操作效率。Element UI作为Vue.js生态中的企业级UI解决方案,其表格组件的行展开功能通过精巧的架构设计,为开发者提供了高性能数据渲染与可扩展表格组件的完整实现方案。 ## 企业级数据展示的架构挑战 在真实业务场景中,数据表格需要

gitblog_00460的博客 984

Arcgis中的高级模型构建器技术之图层按某一字段批量转KMZ

本文介绍在ArcGIS模型构建器中创建按属性批量转换KMZ的工具。通过迭代要素选择工具按字段属性分类,结合应用图层符号设置和图层转KML工具,实现将单个图层按指定属性(如规划地类)自动分批次转换为带符号的KMZ文件。关键步骤包括:1)设置迭代要素选择参数;2)应用预设符号系统;3)配置KMZ输出路径和命名规则。该工具可高效处理规划图斑等数据,保持分类符号化效果,输出结果为按属性值命名的多个KMZ文件。

weixin_44671081的博客 471

树形表格示例

展示父子层级结构支持展开/收起子项操作列(编辑、删除)自定义状态标签。

dreams_dream的博客 504

VS中的C#项目怎样引入另一个项目

场景 在C#项目A中需要引用项目B。 实现 将项目B手动复制到A所在的项目目录下的同一个解决方案中,即与项目A同级的目录下。 在VS中打开项目B,打开解决方案资源管理器--右击解决方案--添加--现有项目 然后找到项目B的.csproj文件打开。 然后看到资源管理器中已经将B添加进来了 点击项目A的引用-右键-添加 将项目下的解决方...

BADAO_LIUMANG_QIZHI的博客 9322

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【Axure高保真原型】嵌套表格_查看附件

今天和大家分享嵌套表格_查看附件的原型模版

mushe93的博客 299

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

泥人坊鸿蒙HarmonyOS ArkTS API 24 ArkTS应用技术解析,所有业务列表全部复用同一套手风琴交互逻辑,点击条目修改expandedIdx状态变量控制展开哪一条

在 HarmonyOS NEXT 正式商用的背景下,ArkTS 作为鸿蒙生态的官方应用开发语言,正在从传统的命令式 UI 开发范式向声明式 UI 范式全面迁移。ArkUI 框架以组件化、声明式、状态驱动为核心特征,要求开发者以"描述 UI 应该是什么样"而非"一步步操作 UI 怎么变"的思维方式构建界面。本文以一个名为"智能账单"的三标签页记账应用为切入点,逐层拆解其数据模型设计、@Builder 组件复用策略、@State 状态管理机制、条件渲染导航模式,以及静态写死渲染与动态循环渲染之间的性能权衡,为

jin123322的博客 182

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

LogicStack-LeetCode 题解:171. Excel表列序号——从“通用进制转换“看 26 进制模拟

本篇基于 LogicStack-LeetCode 仓库中「刷穿 LeetCode」系列第 171 篇题解文档,深入剖析 LeetCode 171. Excel 表列序号(简单)的解法:它本质上是一道"从 1 开始的 26 进制"字符串转数字模拟题。读完本文你将掌握通用的进制转换套路(从高位到低位逐位累加),并能结合仓库中的互逆题 168. Excel 表列名称 与 504. 七进制数 形成完整的进

gitblog_00396的博客 142

【Element UI】ElementUI 使用时遇到的坑以及解决办法

在使用element时 组件中可能遇到的坑和相应的解决办法

Gh的博客 6070

Element UI弹窗中表格高度异常变小?原理分析与解决方案

在前端工程实践中,弹窗(Dialog)与表格(Table)的组合是后台管理系统中最常见的交互形态之一。然而,许多开发者会遇到一个棘手问题:在弹窗中嵌入的表格,明明设置了固定高度,渲染出来的实际高度却明显缩水,甚至出现滚动条异常、布局错乱的情况。这背后的根源并非简单的样式冲突,而在于组件初始化时机与容器尺寸稳定时机的不匹配。浏览器渲染顺序、动画过渡、容器宽度测量等因素都会影响表格的高度计算。理解这一原理,不仅有助于解决Element UI/Plus中的表格高度问题,还能推广到echarts等依赖容器尺寸的组件

weixin_29009669的博客 269

Streamlit(十四)- API 参考文档(七)- 布局与容器组件

Streamlit布局与容器组件指南 本文介绍了Streamlit中9种常用的布局与容器组件,帮助开发者高效组织页面内容: 多列布局(st.columns):支持均分或自定义比例分栏,可调整间距与对齐方式 通用容器(st.container):无边框内容分组,支持固定高度滚动区域 弹窗对话框(st.dialog):模态弹窗,锁定页面主内容交互 动态占位器(st.empty):实时更新内容的空白容器 折叠面板(st.expander):可收起/展开的内容区块 表单容器(st.form):批量管理输入控件,统一

zcs2312852665的博客 409
上一篇: vue实现展开收起
下一篇: elementUI的form表单样式
长箭已搭弓
博客等级 码龄9年 51粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值