Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
如何使用 Vue3 + Element Plus 的 el-table 组件实现带两级分类、部分单元格合并的复杂表格?_创想鸟

如何使用 Vue3 + Element Plus 的 el-table 组件实现带两级分类、部分单元格合并的复杂表格?

如何使用 vue3 + element plus 的 el-table 组件实现带两级分类、部分单元格合并的复杂表格?

vue3 + element plus 实现复杂表格渲染

问题:如何使用 vue3 + element plus 的 el-table 组件实现下图所示的复杂表格?横、列都是动态的,且包含两级分类,部分单元格需要合并。

解决方案:

html 代码:

立即学习“前端免费学习笔记(深入)”;

                  {{ scope.row[item.prop][list.prop] }}      

js 代码:

// 模拟后台返回的表格头部信息const headerList = ref([  {    label: '达飞',    prop: 'column1',    subList: [      {        label: '保理当日',        prop: 'day'      },      {        label: '保理累计',        prop: 'total'      }    ]  },  {    label: '农行',    prop: 'column2',    subList: [      {        label: '农行秦分当日',        prop: 'day'      },      {        label: '农行秦分累计',        prop: 'total'      }    ]  }])// 模拟后台返回的表格数据信息const tableData1 = ref([  {    group: '海港组',    total: 123,    person: 'aa',    column1: {      day: '500',      total: 3000    },    column2: { day: 100, total: 3000 }  },  {    group: '海港组',    total: 123,    person: 'bb',    column1: {      day: '500',      total: 3000    },    column2: { day: 100, total: 3000 }  },  {    group: '海港组',    total: 123,    person: 'cc',    column1: {      day: '500',      total: 3000    },    column2: { day: 100, total: 3000 }  },  {    group: '其他组',    total: 123,    person: 'cc',    column1: {      day: '500',      total: 3000    },    column2: { day: 100, total: 3000 }  },  {    group: '其他组',    total: 123,    person: 'cc',    column1: {      day: '500',      total: 3000    },    column2: { day: 100, total: 3000 }  },  {    group: '其他组',    total: 234,    person: 'cc',    column1: {      day: '500',      total: 3000    },    column2: { day: 100, total: 3000 }  }])const groupArr = ref([]) // 用于合并组const groupPos = ref(0) // 合并行数默认值const totalArr = ref([]) // 用于合并生产单const totalPos = ref(0) // 合并生产单默认值// 表格行合并方法const merge = (tableData) => {  // 要合并的数组的方法  groupArr.value = []  groupPos.value = 0  totalArr.value = []  totalPos.value = 0  for (var i = 0; i  {  if (columnIndex === 0) {    // 合并组    const _row_1 = groupArr.value[rowIndex]    const _col_1 = _row_1 > 0 ? 1 : 0 // 如果被合并了_row=0则它这个列需要取消    return {      rowspan: _row_1,      colspan: _col_1    }  } else if (columnIndex === 1) {    // 第二列的合并方法,合并生产单    const _row_2 = totalArr.value[rowIndex]    const _col_2 = _row_2 > 0 ? 1 : 0    return {      rowspan: _row_2,      colspan: _col_2    }  }}merge(tableData.value)

说明:

表格头部数据的处理使用 headerlist,其中的 sublist 存储了二级分类数据。表格行合并通过 arrayspanmethod 函数实现,其中 grouparr 和 totalarr 分别用于合并组和生产单。merge 函数用于执行数据的先预处理,根据组和生产单信息计算出合并行数和列数。

注意:

目前此解决方案支持前两列相同数据的合并。动态列可以根据实际需求添加更多字段。

以上就是如何使用 Vue3 + Element Plus 的 el-table 组件实现带两级分类、部分单元格合并的复杂表格?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1494337.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Nuxt 中的请求上下文
上一篇 2025年12月19日 16:28:11
如何在 Vue3 + Element Plus 中实现复杂的 el-table 表格功能,如横、列动态渲染,含有二级分类,并支持合并行和列?
下一篇 2025年12月19日 16:28:18

相关推荐

  • PHP/MySQL:高效合并订单商品并按日期分组显示

    本教程将指导如何在PHP/MySQL应用中,将同一日期的订单商品合并显示在同一行,以提高数据展示的清晰度。核心解决方案是利用MySQL的GROUP_CONCAT函数在数据库层面进行高效聚合,避免复杂的PHP逻辑处理,从而简化代码并优化性能。 订单数据展示的常见挑战 在开发在线购物平台时,通常需要向用…

    2026年9月21日
    100
  • VSCode代码空格怎么解决_VSCode缩进与格式处理教程

    解决VSCode代码空格和缩进问题,需配置settings.json中的缩进规则并引入外部格式化工具。首先设置”editor.tabSize”、”editor.insertSpaces”和”editor.detectIndentation&…

    2026年9月21日
    200
  • VSCode代码编辑器在线使用_VSCode网页版免安装直接进入编辑

    答案:无需安装即可在浏览器使用VSCode,主要方式包括GitHub Codespaces、Gitpod、StackBlitz、CodeSandbox和自托管code-server,适用于不同场景,如GitHub集成、前端开发或完全控制环境;但存在网络依赖、性能限制、插件兼容性、文件访问和安全等局限…

    2026年9月21日
    200
  • mysql如何实现后台管理系统

    答案:基于MySQL的%ignore_a_1%需设计用户、权限、日志等表结构,通过后端语言实现安全的CRUD接口与JWT认证,前端展示数据并控制权限,确保系统安全稳定。 实现一个基于 MySQL 的后台管理系统,核心是构建一个安全、稳定、可扩展的系统架构,将数据库作为数据存储层,配合后端语言和前端界…

    2026年9月21日
    000
  • 如何配置VSCode来完美支持Vue.js开发?

    安装Volar、TypeScript Vue Plugin、ESLint和Prettier扩展,禁用Vetur,在settings.json中配置vetur.enabled为false,设置ESLint保存时自动修复并指定Prettier为默认格式化工具,关联.vue文件语言,启用TypeScrip…

    2026年9月21日
    000
  • VSCode的代码折叠功能好用吗?

    VSCode代码折叠功能支持多种方式:点击箭头、快捷键、命令面板及按区域类型折叠;可自定义基于缩进的折叠、默认层级和提示装饰器;集成语言服务后能智能识别JSX、Vue组件等结构,提升大型文件编辑效率。 VSCode 的代码折叠功能非常实用,尤其在处理大型文件或复杂结构时能显著提升阅读和编辑效率。 支…

    2026年9月21日
    200
  • 自定义组件(Component)的开发方法

    开发自定义组件的步骤包括:1. 使用html和css定义组件结构和样式;2. 用javascript实现动态效果和状态管理;3. 确保跨浏览器和设备兼容性;4. 采用模块化设计和外部状态管理工具;5. 进行性能优化和测试驱动开发。通过这些步骤,可以创建出优雅且高效的自定义组件,提升用户体验。 在开发…

    2026年9月21日
    100
  • VSCode怎么生成项目模板_VSCode使用自定义代码片段创建项目模板教程

    答案:VSCode可通过自定义代码片段高效生成文件模板,结合工作区设置与脚手架工具实现项目初始化。利用用户代码片段(User Snippets)定义常用代码结构,如React组件或HTML骨架,通过prefix触发,支持制表位快速编辑;推荐将团队共享片段设为工作区级并提交至Git,确保规范统一;配合…

    2026年9月21日
    700
  • Laravel与Vue.js/React前端框架集成

    laravel可以与vue.js或react集成。1) 使用命令“php artisan preset vue”或“php artisan preset react”设置开发环境。2) 在laravel视图中引入编译后的javascript文件。3) 通过laravel的api路由和前端框架的htt…

    2026年9月21日
    100
  • VSCode有哪些必备的插件?

    EditorConfig for VS Code统一代码风格,2. Prettier自动格式化多语言代码,3. ESLint检查JS/TS错误并集成Prettier,4. GitLens增强Git可视化,5. Path Intellisense补全文件路径,6. 括号高亮提升嵌套识别,7. Auto…

    2026年9月20日
    1000
  • VSCode的扩展推荐是怎么工作的?

    VSCode的扩展推荐基于用户行为和项目环境智能生成,当你打开.py文件时会推荐Python相关工具,打开.ts、.vue等文件则触发对应语言插件;系统通过分析package.json、requirements.txt等依赖文件识别技术栈,推荐Docker、ESLint等匹配扩展;同时记录常用操作如…

    2026年9月20日
    000
  • VSCode的扩展推荐是基于什么?

    答案是VSCode根据文件类型、项目配置、用户行为和社区流行度智能推荐扩展。打开.py文件时提示Python扩展,存在package.json则推荐JS工具,频繁格式化代码会推荐Prettier,安装ESLint后可能推荐Prettier,高评分和官方扩展优先展示。 VSCode的扩展推荐主要基于你…

    2026年9月20日
    000
  • 如何在Laravel中管理静态资源

    在laravel中管理静态资源的核心方法是使用public目录结合vite或laravel mix等构建工具实现高效加载和版本控制。1. public目录作为所有公开访问资源的根目录,由web服务器直接提供服务;2. 使用asset()、vite()或mix()辅助函数生成带版本哈希的url,确保浏…

    2026年9月13日
    100
  • 如何在Laravel中实现数据分组

    在laravel中实现数据分组,主要有两种方式:1. 使用collection的groupby()方法对已获取的数据在内存中进行灵活分组,适合数据量小或逻辑复杂的情况;2. 使用数据库的group by子句通过eloquent或query builder在数据库层面高效处理大数据集并配合聚合函数进行…

    2026年9月13日
    000
  • MySQL GROUP_CONCAT函数实现订单项按日期合并显示

    本教程详细阐述了如何利用MySQL的GROUP_CONCAT函数,将同一日期下的多个订单项合并为一行显示,并以逗号分隔。文章将涵盖从数据库查询优化到PHP数据处理的完整流程,旨在帮助开发者高效地在购物网站等场景中展示分组后的订单信息,提升数据可读性。 在构建在线购物平台时,展示客户订单详情是一个常见…

    2026年9月13日
    100
  • 如何让VSCode自动识别项目类型?

    VSCode通过项目中的文件和配置自动识别类型,需提供线索如package.json、requirements.txt等标志性文件,结合安装对应语言扩展、配置.vscode/settings.json及使用.code-workspace文件,即可让编辑器正确识别并支持Node.js、Python、R…

    2026年9月12日
    300
  • 如何为VSCode设置代码自动补全?

    如何为VSCode设置代码自动补全?如何为VSCode设置代码自动补全?如何为VSCode设置代码自动补全?如何为VSCode设置代码自动补全?

    启用LSP智能提示确保语言服务器激活;2. 检查设置中自动补全触发选项;3. 按Ctrl+Space手动触发建议框以提升补全效率。 VSCode 默认已支持基础的代码自动补全,但要获得更智能、高效的补全体验,需要根据语言和开发需求进行适当配置。以下是设置自动补全的关键步骤和建议。 启用内置智能提示 …

    2026年9月12日 • 用户投稿
    000
  • 怎样通过扩展API自定义鼠标悬停提示的样式和内容?

    通过HTML、CSS和JavaScript可自定义tooltip样式与内容,支持静态展示与动态渲染;利用data属性或UI库(如Ant Design、Element Plus)的API实现灵活扩展,结合事件监听与DOM操作可创建富文本提示;建议封装通用模块以统一管理,兼顾可访问性与多端兼容。 通过扩…

    2026年9月12日
    200
  • 怎样使用VSCode的Problems面板快速定位和跳转项目中的所有错误和警告?

    Problems面板可集中查看项目错误和警告,点击左侧感叹号图标或使用Ctrl+Shift+M(Windows/Linux)/Cmd+Shift+M(macOS)打开,支持按文件、级别分类及关键词过滤,结合ESLint、Pylint等语言工具实现实时检测,通过上下箭头、回车、F8键可快速导航与批量处…

    2026年9月12日
    900
  • Linux系统目录sys的作用解析

    Linux系统目录sys的作用解析Linux系统目录sys的作用解析Linux系统目录sys的作用解析Linux系统目录sys的作用解析

    /sys是sysfs文件系统的挂载点,用于向用户空间结构化展示内核设备、驱动等层次信息,支持查看设备拓扑、读写硬件属性、配合udev实现热插拔,其内容位于内存不占磁盘空间。 Linux系统中的/sys目录是sysfs文件系统的挂载点,主要用于向用户空间导出内核中设备、驱动和子系统的层次化信息。它不是…

    2026年9月12日 • 用户投稿
    200

发表回复

登录后才能评论
关注微信