首页 > 其他分享 >element plus el-table表格合并

element plus el-table表格合并

时间:2023-12-08 09:22:29浏览次数:31  
标签:el const dayjs 合并 param element plus time return

el-table表格合并实现都是使用表格的span-method属性绑定操作函数

  <el-table :data="table.data"  :span-method="objectSpanMethod" > </el-table>

操作函数格式

const objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => {
}

相同值行合并

对于相同的值进行行合并是最常见的合并需求,实现思路就是先统计相同的值,然后进行合并。以下提供一种封装思路

import dayjs from 'dayjs'
/**
 * 范围日期禁用方法
 * @param {String} disanledDay //before after 今天之前还是今天之后
 * @param {Boolean} includingToday=false // 是否包含今天
 * @returns {any}
 */
export const useDateRangeRule = (disanledDay = '', includingToday = false) => {
  let datePockStar = ''
  /**
   * 限制时间区间选择范围,起始点不限,结束点限制
   * @param {Date} time
   * @param {String} timeType='year' //year month week day 类型参考 dayjs
   * @param {Number} timeNum=1 // 默认1
   * @returns {any}
   */
  const disabledDate = (time, timeType = 'year', timeNum = 1) => {
    // 限制选择今天之前还是之后
    if (disanledDay) {
      const before = dayjs().isBefore(includingToday ? dayjs(time) : dayjs(time).add(1, 'day'))
      if (disanledDay === 'before' && before) {
        return before
      }
      const after = dayjs().isAfter(includingToday ? dayjs(time).add(1, 'day') : dayjs(time))
      if (disanledDay === 'after' && after) {
        return after
      }
    }
    if (datePockStar) {
      const diff = Math.abs(dayjs(datePockStar).diff(time, timeType, true))
      if (diff > timeNum) {
        return true
      }
    }
  }
  /**
   * 记录日期范围选择第一个日期
   * @param {Date} val
   * @returns {any}
   */
  const calendarChange = val => {
    if (val && val.length > 0 && !val[1]) {
      datePockStar = val[0]
    } else {
      datePockStar = ''
    }
  }
  return {
    disabledDate,
    calendarChange
  }
}

使用也比较简单

import  引入 useDateRangeRule 

const objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => {
 return useDateRangeRule(table.data,['name','area'])({ row, column, rowIndex, columnIndex })
}

指定列的合并

首先需要对数据进行处理,思路也是让要合并的数据知道自己占多少格。被合并的单元格所占格数为0。
数据处理的格式可随意,只要能判断出当前单元格占几格即可。最后进行合并函数处理。

const objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => {
  // 要合并的列
  const spanColumns = ['area', 'elePrice', 'lineLoseRate']
  if (spanColumns.includes(column.property)) {
    return {
      rowspan: row.rowspan,
      colspan: 1
    }
  }
}

标签:el,const,dayjs,合并,param,element,plus,time,return
From: https://www.cnblogs.com/Cxymds/p/17884431.html

相关文章

  • python如何提取excel表格中的超链接
    importxlrddefget_wb(path):wb=xlrd.open_workbook(path)returnwbdefget_wb(path):wb=xlrd.open_workbook(path)returnwbdefget_hyperlink(wb,sheet_name,cell):worksheet=wb.sheet_by_name(sheet_name)hyperlink=worksheet.......
  • python将图片写入excel
    importjsonimportpandasaspdfromopenpyxlimportWorkbookfromopenpyxl.drawing.imageimportImageexcel_col_map={1:"A",2:"B",3:"C",4:"D",5:"E",6:"F&quo......
  • Python-xlrd读取Excel指定列a~b行数据并绘图
    importxlrd#读取Excel文件wb=xlrd.open_workbook(r"E:\PythonStudyAll\TestD20231130\1111.xlsx")data=wb.sheet_by_name('Sheet1')#定义要读取的列和行范围column_index_x=0#第一列的索引为0column_index_y=1#第一列的索引为0start_row=2#起始行索......
  • pip 安装 mysqlclient报错ERROR: Could not build wheels for mysqlclient, which is
    这是本地环境中没有安装C++的环境,安装好后再次运行报错:国内网站上找了半天,试了又试,不能根本上解决问题,最后从国外的网站上找到的:下载安装MariaDBCConnector,地址:DownloadMariaDBConnectorsfordataaccess&analysis|MariaDB,安装到默认路径下,关闭重新打开cmd,输入:pi......
  • # yyds干货盘点 # 盘点一个Pandas处理Excel表格实战问题(上篇)
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Pandas实战的问题,一起来看看吧。问题描述:大佬们~ 请问下这个数据怎么实现呢?有2组数据:第一个数据《获取的数据.xlsx》:每13行数据为一组,要实现一列数据拆分成多列数据(这边简称表1),见截图第二个数......
  • 盘点一个Pandas处理Excel表格实战问题(上篇)
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Pandas实战的问题,一起来看看吧。问题描述:大佬们~ 请问下这个数据怎么实现呢?有2组数据:第一个数据《获取的数据.xlsx》:每13行数据为一组,要实现一列数据拆分成多列数据(这边简称表1),见截图第二......
  • 多重条件判断,if与else的成对匹配问题
    今天刷题犯了一个错误,本来三个条件是互斥的,但想偷懒,直接将最后一个elseif写成else,结果发生错误。比如针对num为1,执行xxx;num为2,执行xxx;num为3或以上,执行xxx。这三个条件是互斥的。应该写成这样:if(num==1){}elseif(num==2){}elseif(num==3){}而不是下面这样:if(num==1){}......
  • GMMSeg: Gaussian Mixture based Generative Semantic Segmentation Models
    前置知识:【EM算法深度解析-CSDNApp】http://t.csdnimg.cn/r6TXMMotivation目前的语义分割通常采用判别式分类器,然而这存在三个问题:这种方式仅仅学习了决策边界,而没有对数据分布进行建模;每个类仅学习一个向量,没有考虑到类内差异;OOD数据效果不好。生成式分类器通过对联合分布......
  • Java 读取EXCEL表格中的数据,将数据转为SQL语句
    **[参考文档](https://blog.csdn.net/wl_Honest/article/details/83985751?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-0-83985751-blog-81103171.pc_relevant_paycolumn_v3&spm=1001.2101.3001.4242.1&utm_relevant_index=3)......
  • 在HTML或者JSP中使用Element Plus
    我们都知道如何在node项目中,使用ElementPlus等UI框架,但在单页面中我们该如何引入ElementPlus呢?以下我们以HTML或JSP引入ElementPlus为例,需要按照以下步骤进行引用:步骤一下载ElementPlus首先,您需要下载ElementPlus的文件。您可以通过以下方式下载ElementPlus:访问ElementPlus......