vue2&Element-ui实现表格单元格合并

这篇具有很好参考价值的文章主要介绍了vue2&Element-ui实现表格单元格合并。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

由于项目需要实现单元格合并目前只是单页没有做分页处理先上效果图
element表格合计栏合并单元格,ui,vue.js,javascript
element表格合计栏合并单元格,ui,vue.js,javascript
element表格合计栏合并单元格,ui,vue.js,javascript
看下数据结构
element表格合计栏合并单元格,ui,vue.js,javascript
Element table提供的api arraySpanMethod
element表格合计栏合并单元格,ui,vue.js,javascript
element表格合计栏合并单元格,ui,vue.js,javascript
columnIndex=0表示从第一列开始 rowIndex表示需要操作的行数
同济医院加上合计有12行从0开始<=11
判断条件是rowIndex余12===0
element表格合计栏合并单元格,ui,vue.js,javascript
我们打印一下
element表格合计栏合并单元格,ui,vue.js,javascript
element表格合计栏合并单元格,ui,vue.js,javascript
或者改成element表格合计栏合并单元格,ui,vue.js,javascript
表示从0开始到12行合并为一行
效果已实现后期在详细分析下下面是代码


```javascript
在这里插入代码片
<template>
  <div>
    <div class="table">
      <el-table
        :header-row-style="{
          height: '40px',
        }"
        :row-style="{ height: '40px' }"
        :cell-style="{ padding: '1px', background: '#oldlace' }"
        :data="tableData1"
        style="width: 100%"
        :span-method="arraySpanMethod"
        empty-text="统计中"
        :row-class-name="tableRowClassName"
      >
        <el-table-column
          align="center"
          prop="v0"
          label="名称"
        ></el-table-column>
        <el-table-column
          algin="center"
          prop="leader"
          label="市领导"
        ></el-table-column>
        <el-table-column
          align="center"
          prop="v1"
          label="问题数量"
        ></el-table-column>
        <el-table-column align="center" label="问题类型">
          <el-table-column align="center" prop="v2" label="基础设施">
          </el-table-column>
          <el-table-column
            align="center"
            prop="v3"
            label="民生保障"
          ></el-table-column>
          <el-table-column
            align="center"
            prop="v4"
            label="社会治理"
          ></el-table-column>
          <el-table-column
            align="center"
            prop="v5"
            label="生产经营"
          ></el-table-column>
          <el-table-column
            align="center"
            prop="v6"
            label="生态环保"
          ></el-table-column>
        </el-table-column>
        <el-table-column
          align="center"
          prop="v7"
          label="办结数量"
        ></el-table-column>
        <el-table-column align="center" prop="v8" label="办结率">
          <template slot-scope="scope">
            <span>{{ scope.row | rate }}</span>
          </template>
        </el-table-column>
        <el-table-column align="center" label="群众满意度">
          <el-table-column
            align="center"
            prop="v9"
            label="满意"
          ></el-table-column>
          <el-table-column
            align="center"
            prop="v10"
            label="一般"
          ></el-table-column>
          <el-table-column
            align="center"
            prop="v11"
            label="不满意"
          ></el-table-column>
        </el-table-column>
      </el-table>
    </div>
  </div>
</template>

```javascript
在这里插入代码片
  arraySpanMethod({ row, column, rowIndex, columnIndex }) {
      //同济医院
      if (columnIndex === 0 && rowIndex <= 11) {
        console.log(rowIndex % 12)
        if (rowIndex === 0) {
          return {
            rowspan: 12,
            colspan: 1,
          }
        } else {
          return {
            rowspan: 0,
            colspan: 0,
          }
        }
      }
      //同济医院第二行合并
      if (columnIndex === 1 && rowIndex <= 9) {
        if (rowIndex % 2 === 0) {
          return {
            rowspan: 2,
            colspan: 1,
          }
        } else {
          return {
            rowspan: 0,
            colspan: 0,
          }
        }
      }
      //协和医院
      if (columnIndex === 0 && rowIndex > 11 && rowIndex <= 19) {
        // if (rowIndex % 4 === 0) {
        //   return [4, 1]
        // } else {
        //   return [0, 0]
        // }
        if ((rowIndex - 4) % 8 === 0) {
          return [8, 1]
        } else {
          return [0, 0]
        }
      }
      //妇幼保健院
      if (columnIndex === 0 && rowIndex > 19 && rowIndex <= 29) {
        if (rowIndex % 10 === 0) {
          return [10, 1]
        } else {
          return [0, 0]
        }
      }
      //人民医院
      if (columnIndex === 0 && rowIndex > 29 && rowIndex <= 35) {
        if (rowIndex % 6 === 0) {
          return [6, 1]
        } else {
          return [0, 0]
        }
      }
    },

代码仓库
码云: https://gitee.com/db121/vue_admin
github: https://github.com/121066/vue-admin-pc文章来源地址https://www.toymoban.com/news/detail-651318.html

到了这里,关于vue2&Element-ui实现表格单元格合并的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue element ui 表格有相同数据合并单元格

    先看效果     前提是你的数据是扁平的数据因为要根据上下数据是否一样才合并的  如果是子级数据需要改一下数据格式了 下面是数据的样式    合并单元格的重点属性就是 :summary-method=\\\"\\\" 这个是关键 完整代码

    2024年02月11日
    浏览(35)
  • element-ui el-table 如何实现合并单元格

    el-table的组件的可以合并单元格,先定义参数span-method 方法objectSpanMethod。在方法内控制当前单元格渲染成几个单元格或者删除掉当前单元格。 比如:代码中定义:span-method=\\\"objectSpanMethod\\\" objectSpanMethod实现是在方法区,具体内容是根据变量rowSpanList 去决定当前单元格是展示还是删

    2024年02月03日
    浏览(34)
  • element-ui 表格一行显示多行内容并实现多行内某一行列合并

    这是加上边框的, 去掉边框后这个表格看着更明显一点,表格一行放多行内容,并让第二行进行列合并,第一行不合并 该方法其实就是普通的列合并,只不过使用了row和col使效果看着像是第一行没合并,第二行才合并

    2024年02月11日
    浏览(47)
  • Vue+Element-UI 中 el-table 动态合并单元格 :span-method 方法

    记录一下工作时遇到的 el-table 合并单元格的需求,超详细😊 el-table官方提供了合并单元格的方法与返回格式 如下: 根据叙述有了如下思路: 因为后端返回的数据非统一, 可能不是按照类别排好的😨, 所以官网的例子满足不了所有的需求所以我们通过遍历table的数据比较前后两

    2024年02月12日
    浏览(52)
  • Vue+Element-ui实现表格嵌套表格(表头不同)

    data中integrateList根据后端返回的json数据确定,其格式为:

    2024年02月14日
    浏览(57)
  • Vue2 +Element-ui实现前端页面

    以一个简单的前端页面为例。主要是利用vue和element-ui实现。 里面涉及的主要包括:新建vue项目、一行多个输入框、页面实现等。   ①首先安装nodejs,这部分在此就不讲啦。 ②然后安装vue-cli: 查看是否安装成功: 安装成功之后就输出vue的版本 ③在cmd窗口新建一个vue2脚手架

    2024年02月16日
    浏览(35)
  • vue2+element-ui实现侧边导航栏

    编写 client/src/components/LeftMenu.vue ,创建侧边导航栏: 编辑 client/src/views/Index.vue ,引入侧边导航栏:

    2024年02月02日
    浏览(36)
  • vue2+element-ui 实现国际化

    在src目录下创建一个lang文件夹,同时创建zh.js(中文),en.js(英文),ja.js(日文),fr.js(法文)四个语言包js文件,并创建一个index.js文件,用来整合语言包 对于一个项目来说,一个语言包需要包含所有页面以及组件;在语言包以页面为单位,创建一个对象;对公共的title或者按钮名

    2024年02月02日
    浏览(39)
  • (vue)element-ui 表格实现勾选单选

    效果: 重选后: 解决参考:https://blog.csdn.net/m0_58373910/article/details/125912828

    2024年02月12日
    浏览(37)
  • vue搭配element-ui前端实现表格分页

    如果不从后台请求数据,那么就需要在前端手动管理数据。可以使用以下步骤实现该功能: 在 Vue 组件的 data 中定义一个数组来存放所有数据(不分页)。 在 mounted 钩子函数中,手动获取数据并存放到上一步定义的数组中。 在模板中使用 element-ui 的表格组件来展示数据,同

    2024年02月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包