el-table 合并单元格:如何实现部分成功部分失败的效果?

el-table 合并单元格:如何实现部分成功部分失败的效果?

el-table合并部分成功部分不成功

我们希望可以实现以下效果:

效果图

代码实现:

      {{scope.row.name }}                              
{{ scope.row.symbol }}
export default {  data() {    return {      tableData:[        {name:'降水(mm)',factor:'0.7',grade:'',symbol: '1','':'','':'','':'','':'','':'','':''},        {name:'降水(mm)',factor:'0.7',grade:'',symbol: '1','':'','':'','':'','':'','':'','':''},        {name:'降水(mm)',factor:'0.7',grade:'',symbol: '1','':'','':'','':'','':'','':'','':''},        {name:'降水(mm)',factor:'0.7',grade:'',symbol: '1','':'','':'','':'','':'','':'','':''},        {name:'风速(m/s)',factor:'0.5',grade:'',symbol: '0','':'','':'','':'','':'','':'','':''},        {name:'风速(m/s)',factor:'0.5',grade:'',symbol: '0','':'','':'','':'','':'','':'','':''},        {name:'风速(m/s)',factor:'0.5',grade:'',symbol: '0','':'','':'','':'','':'','':'','':''},        {name:'风速(m/s)',factor:'0.5',grade:'',symbol: '0','':'','':'','':'','':'','':'','':''},      ],      colFields:['name','factor','grade','symbol','','','','','',''],      spanArr:[],      waterForm:{},    };  },  methods: {    getSpanArr() {      for (let i = 0; i < this.tableData.length; i++) {        let row = i;        // let col = i % this.colCount;        if (row === 0) {          // i 表示行 j表示列          for (let j = 0; j < this.colFields.length; j++) {            this.spanArr[i * this.colFields.length + j] = {              rowspan: 1,              colspan: 1,            };          }        } else {          for (let j = 0; j < this.colFields.length; j++) {            if (              this.colFields[j] == "name" ||              this.colFields[j] == "factor" ||              this.colFields[j] == "symbol"            ) { // 指定合并哪些列            /*this.tableData[row]["School"] !==                  this.tableData[row - 1]["School"]*/              if (                this.tableData[row][this.colFields[j]] !==                  this.tableData[row - 1][this.colFields[j]]              ) { // 哪些不合并:School不一样的,不合并                this.spanArr[row * this.colFields.length + j] = {                  rowspan: 1,                  colspan: 1,                };              } else if (                this.tableData[row][this.colFields[j]] ===                this.tableData[row - 1][this.colFields[j]]              ) {                let beforeItem =                  this.spanArr[(row - 1) * this.colFields.length + j];                this.spanArr[row * this.colFields.length + j] = {                  rowspan: 1 + beforeItem.rowspan,// 合并几列                  colspan: 1,// 合并几行                };                beforeItem.rowspan = 0;                beforeItem.colspan = 0;              } else {                // rowspan 和 colspan 都为1表格此单元格不合并                this.spanArr[row * this.colFields.length + j] = {                  rowspan: 1,                  colspan: 1,                };              }            }          }        }      }      // 对数据进行倒序      let stack = [];      for (let i = 0; i < this.colFields.length; i++) {        for (let j = 0; j  0) {                let pop = stack.pop();                let len = stack.length;                this.spanArr[(j - len) * this.colFields.length + i] = pop;              }            }          }        }      }      // console.log(this.spanArr);    },    objectSpanMethod({ row, column, rowIndex, columnIndex }) {        return this.spanArr[rowIndex * this.colFields.length + columnIndex];    },  },  mounted() {    this.getSpanArr();  },};

注意,以上代码中,我们定义了 handleSpanM 方法来处理表格合并。但是,代码中并没有使用这个方法。你可以根据需要修改代码来使用这个方法。

此外,如果你希望后几列表头不可编辑,可以修改以下代码:


改成:


以上就是el-table 合并单元格:如何实现部分成功部分失败的效果?的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月22日 04:57:36
下一篇 2025年12月22日 04:57:43

相关推荐

  • el-table 合并单元格为何部分成功,部分失败?

    el-table合并部分内容成功,部分不成功的问题探讨 问题详情:需要实现的表格效果如下图所示,前四列内容固定不变,采用新的表格合并方法。 [图片] 已有渲染代码如下: {{scope.row.name }} {{ scope.row.symbol }} 问题分析 系统能实现预期效果,但第4列一直无…

    2025年12月22日
    000
  • el-table 合并前四列:为什么第四列无法合并?

    el-table合并部分成功部分不成功? 问题描述: 需要合并el-table中前4列的内容,但是第4列无法合并。 渲染代码: {{scope.row.name }} {{ scope.row.symbol }} 解决方法: 可以使用自定义的合并方法来实现特定列的合并。 // 合并方法merge(t…

    2025年12月22日
    000
  • 动态渲染 Fieldlist 后按钮失效?如何解决?

    动态渲染fieldlist后追加按钮无效 使用Fieldlist组件进行动态渲染后,追加的按钮无法响应点击事件。 解决方案 为了解决此问题,需要在渲染完新元素后,使用事件委托给动态添加的按钮绑定点击事件。 演示代码 // 在文档加载后绑定点击事件$(document).ready(function(…

    2025年12月22日
    000
  • 使用 `span-method` 合并 el-table 表格时,为什么第四列无法合并?

    el-table合并部分成功 问题: 使用 span-method 方法合并 el-table 表格的某些列,但发现第四列无法合并。 原因: 原始实现中,第四列的合并判断条件不正确。 解决方案: 使用正确的合并逻辑,具体步骤如下: 在 data 中创建三个数组,用于跟踪第一列、第二列和第四列的可合并…

    2025年12月22日
    000
  • 键值组件动态渲染后追加按钮失效怎么办?

    键值组件动态渲染后追加按钮失效问题 键值组件(Fieldlist)使用 JavaScript 动态渲染后,追加的按钮可能会失效,点击没有反应。为了解决这个问题,可以按照以下步骤操作: 检查添加按钮和元素的顺序:确保在添加按钮之前,已经渲染了目标元素。否则,按钮将找不到相应的元素来绑定事件。使用事件委…

    2025年12月22日
    000
  • 键值组件动态追加按钮失效如何解决?

    键值组件动态追加按钮失效解决方法 使用键值组件(Fieldlist)动态渲染的表格中,追加按钮点击后不响应,如何解决? 解决方法: 文档中提供的解决方案可能无效,因为该组件需要绑定事件并追加新元素才能正常工作。 以下是一个演示如何绑定点击事件并追加新元素的代码示例: ID Chinese name …

    2025年12月22日
    000
  • 动态渲染的键值组件中,如何解决追加按钮点击无反应的问题?

    键值组件(fieldlist)在使用 js 动态渲染后,追加按钮可能会出现点击无反应的问题。解决方法如下: 演示如何绑定点击事件并追加新元素 … Append $(document).ready(function() { $(document).on(‘click’, ‘.btn-append’…

    2025年12月22日
    000
  • 除了使用 HTML 表格元素实现表格样式,还有哪些优雅的方式?

    是否有优雅的方式实现表格样式? 原帖中展示了一个表格样式,不采用一个个 div 格子画的方式。那是否有更加优雅的实现方式呢? HTML 表格 一种方法是使用 HTML 表格。表格元素为组织表格数据提供了便捷的方式,并允许设置边框、单元格对齐和颜色等样式属性。 示例: 立即学习“前端免费学习笔记(深入…

    2025年12月22日
    000
  • 如何使用 HTML 表格元素优雅地绘制数据表格?

    如何使用 html 优雅地绘制表格? 在构建网站时,经常需要在页面中呈现表格状数据。除了使用 元素逐个绘制表格格之外,HTML 还有更简洁优雅的方法来实现这一目标。 使用 HTML 表格元素 HTML 提供了 元素,专门用于创建表格结构。它包含以下子元素: : 表格标题 : 表头行: 表主体(内容行…

    好文分享 2025年12月22日
    000
  • 如何高效优雅地实现网页表格?

    如何优雅地实现表格? 图中表格的实现,采用div一个个格子画的方式并不优雅。那么有没有其他更好的实现方式呢? **html画一个表格 举个例子** html中表格 某小学一年级(三班)课程表 星期 星期一 星期二 星期三 星期四 星期五 上午8:00 – 11:30 语文 数学 美术 体育 音乐 语…

    2025年12月22日
    000
  • 如何用 HTML 表格实现下图展示的课程表?

    如何优雅地实现下图表格? 这个问题中给出的表格可以采用 HTML 表格轻松实现。下面是一个示例: HTML中表格 某小学一年级(三班)课程表 星期 星期一 星期二 星期三 星期四 星期五 上午8:00 – 11:30 语文 数学 美术 体育 音乐 语文 数学 美术 体育 音乐 语文 数学 美术 体育…

    2025年12月22日
    000
  • 如何用 HTML 表格元素优雅地实现课程表?

    优雅实现下图表格: 为了避免使用 格仔画出的方式,可以采用 HTML 的元素来创建表格。这允许我们以语义化和可访问的方式组织表格数据。 以下是如何实现此表格: HTML 中的表格 某小学一年级(三班)课程表 星期 星期一 星期二 星期三 星期四 星期五 上午8:00 – 11:30 语文 数学 美术…

    2025年12月22日
    000
  • 为什么变量 num 拼接日期时会变成 NaN?

    变量 num 不能成功的原因 在所提供的代码中,变量 num 被初始化为 0。但当它被用来拼接日期时,如下面的代码行所示: html += ” + year + ‘年’ + m + ‘ 月’; 此时,num 为 0,导致拼接结果为 NaN,无法正确显示日期。 解决方案 要解决这个问题,需要确保在拼…

    2025年12月22日
    000
  • 为什么使用“num”变量时,日历表无法正常显示日期?

    疑问:为什么使用“num”变量时出现问题? 问题描述: 在通过点击“∨”按钮增加日历表时,希望使用“num”变量来替换图片中的数字,但这样操作后会出现异常,导致日期无法正常显示。 原因分析: 初始化执行时,“num”为未定义,因此“month_now + 1 + num”的值为NaN,导致页面不显示…

    2025年12月22日
    000
  • 手机端布局异常,电脑端正常,Flexbox布局问题该如何解决?

    手机端布局异样之解 在电脑上调试正常,但在手机上访问却出错,布局代码如下所示: 卡片1 .cards { display: flex; } 问题的原因在于 Flexbox 的作用范围。在该代码中,Flexbox 属性应用于 .cards 类,但其作用范围仅限于表 (table) 层级。因此,Flex…

    2025年12月22日
    000
  • 电脑上正常结果在手机上失败,是因为 flex 布局失效了吗?

    电脑上正常结果在手机上失败的原因 你在手机上布局出错的原因可能是由于 flex 属性的生效范围。你在 .cards 上设置了 flex,但它的作用范围只适用于 table 这个层级,而不会延伸到 tr 和 td 层级。 在电脑端,你设置了 cellspacing=”19px”…

    2025年12月22日
    000
  • 移动设备上网页布局失败的原因是什么?

    在移动设备上布局失败的原因 在电脑端正常显示的布局,切换到移动设备后出现故障,通常原因如下: Flex 属性范围问题 从提供的代码中,可以在 .cards 上看到 flex 属性的设置。然而,flex 生效范围基于副属性。这意味着当在 .cards 上设置 flex 属性时,其作用范围只在 tabl…

    2025年12月22日
    000
  • 手机端网页布局错位:为什么电脑端正常,手机端却出现问题?

    手机端布局错位的疑惑 在一份手机端网页布局中,OP 在电脑上调试时,布局一切正常。然而,当访问该网页时,布局出现了错误,如图所示。OP 使用的是 table 布局,其中结构和样式如下。 cards cards cards cards .cards { width:200px; height: 200…

    2025年12月22日
    000
  • 如何合并 HTML 表格中具有相同数据的行?

    如何合并 html 表格中相同数据的行 问题: 您获取了一个 JSON 数据集,将其构建为 HTML 表格,但结果显示具有相同数据的行散落在表格中。您希望合并这些行以获得更紧凑的表格。您询问是否使用 Pandas 会更好。 答案: 为了合并 HTML 表格中相同数据的行,您需要允许单元格跨越多行和列…

    2025年12月22日
    000
  • 如何使用 HTML 表格的 rowspan 属性合并具有相同数据的行?

    合并 html 表格中具有相同数据的行 在 HTML 表格中遇到相同数据横向重复的问题时,可以使用跨越多行的单元格来解决。这里有如何实现的步骤: 代码修改: 使用 rowspan 属性跨越多行单元格。在代码中,对于具有相同数据的行,使用 rowspan 属性设置单元格跨越所有重复行。例如: 姓名 成…

    2025年12月22日
    000

发表回复

登录后才能评论
关注微信