zoukankan      html  css  js  c++  java
  • element-ui当中table组件的合并行和列的属性:span-method的用法

    背景


    最近基本上都是以Vue来构建项目,而UI框架也基本上都是使用的element-ui,所以里面组件用的也是越来越多,今天想记录的是非常非常小的一个属性的用法。

    Table组件


    Table组件用了真的太多次了,里面各种属性也基本上都用过了,今天就又用到了一个属性:span-method

    官方介绍:

    通过给table传入span-method方法可以实现合并行或列,方法的参数是一个对象,里面包含当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性。该函数可以返回一个包含两个元素的数组,第一个元素代表rowspan,第二个元素代表colspan。 也可以返回一个键名为rowspan和colspan的对象。

    也给了示例,截取其中的代码:

    objectSpanMethod ({ row, column, rowIndex, columnIndex }) {
      if (columnIndex === 0) {
        if (rowIndex % 2 === 0) {
          return {
            rowspan: 2,
            colspan: 1
          }
        } else {
          return {
            rowspan: 0,
            colspan: 0
          }
        }
      }
    }
    

    这里以行合并为例:

    就这么看这个例子,结合文档说明,说能看明白吧,还是有一部分人看不明白的(我就属于没看明白的这一类)。

    但是,如果加上一行注释,非常简短的注释,那真的是再明白不过的了。

    if (rowIndex % 2 === 0) { // 用于设置合并开始的行号

    关键点在于这个if判断仅仅是需要找到合并开始的行,而不需要我们找到合并在一起的所有行。

    只要找到开始合并的行,在返回值当中,返回合并的行的数量,并且利用最后一个else,返回return {rowspan: 0, colspan: 0},就能够完成我们合并行的需求。

    看一个具体的例子,加上注释:

    if (columnIndex === 0) {
    	if (rowIndex === 0) {  // 合并第一行到第四行,从第一行开始,共4行
    	  return {
    	    rowspan: 4,
    	    colspan: 1
    	  }
    	} else if (rowIndex === 4) { // 合并第五行到第九行,从第五行开始,共5行
    	  return {
    	    rowspan: 5,
    	    colspan: 1
    	  }
    	} else if (rowIndex === 9) { //  合并第10行到第14行,从第10行开始,共5行
    	  return {
    	    rowspan: 5,
    	    colspan: 1
    	  }
    	} else { // 其余被合并的行,诸如1、2、3、5、6、7、8、10、11、12、13全都设为0
    	  return {
    	    rowspan: 0,
    	    colspan: 0
    	  }
    	}
    }
    

    是不是明白多了。说白了,这个方法中if所要判断的是仅仅是从哪一行开始合并,然和返回结果为合并多少行、多少列

  • 相关阅读:
    Block为什么使用Copy?
    iOS运行时,如何增加成员变量
    安卓长按交互onCreateContextMenu的简单 用法
    iOS 检查版本号的代码
    git的基本使用
    svn的使用
    const 关键字及作用
    常见的内存分配
    保存字符串的方法
    指针的总结一(指针的定义)
  • 原文地址:https://www.cnblogs.com/zhuhuoxingguang/p/11646257.html
Copyright © 2011-2022 走看看