vxe-table合并单元格后增加选中效果

<vxe-table
      :data="retrievalList"
      :row-class-name="setRowClass"
       @cell-click="selectRow">
     <vxe-column field="name" title="姓名"></vxe-column>
</vxe-table>

后端返回的JSON格式 (合并单元格需要对数据处理后,通过setMergeCells合并)

注:

相关单元格全部选中

效果图:

 data() {
    return {
    	sourceList: [],  //  后端返回的JSON数据
        retrievalList: [],  //  格式化后的数据 [{},{},{}]
    }
 },
 methods: {
	//  设置已选中的单元格类名
    setRowClass({row}) {
      //  patId为JSON外层唯一主键,选中后根据主键动态设置类
      if (row.patId === this.currentRow.patId) {
        return 'current-pat';
      }
    },
    //  单击选中
    selectRow({row}) {
      //  获取当前合并的单元格整体信息,此处为多条数据的集合
      this.currentRow = this.sourceList.find(item => item.patId === row.patId);
    }
 }
//  scss
.vxe-table {
      .current-pat, .current-pat > td {
        background-color: #CBECFC !important;
      }
}

所选单元格整体增加背景色,但仅选中单元格特殊标识

注 :

(1)第一列被合并单元格选中样式默认跟随合并后的第一行。

(2)可自行变形,使首列单元格底色与单项选中的单元格一致。

(3)此处存在个BUG,首次点击单元格时未出现选中效果;由于已选择第一种方案,此处未深究,仅做记录。

 data() {
    return {
    	sourceList: [],  //  后端返回的JSON数据
        retrievalList: [],  //  格式化后的数据 [{},{},{}]
    }
 },
 methods: {
	//  设置行类名
    setRowClass({row}) {
      if (row.itemId === this.firstItemId) {
      	//  itemId为JSON内层nurseOptPatVoList内唯一主键,用于设置被合并列单元格底色
        return 'current-first'
      } else if (row.patId === this.currentRow.patId) {
        //  patId为JSON外层唯一主键,选中后根据主键动态设置类
        return 'current-pat'
      }
    },
    //  单击选中
    selectRow({row}) {
      //  获取当前合并的单元格整体信息,此处为多条数据的集合
      this.currentRow = this.sourceList.find(item => item.patId === row.patId);
      //  获取当前合并的单元格首条信息
      let firstItem = this.retrievalList.find(item => item.patId === row.patId);
      this.firstItemId = firstItem.itemId;
    }
.vxe-table {
      .current-pat {
        background-color: #f00;
      }
      .current-first {
        // 此处不使用important是为了避免背景与选中效果冲突
        background-color: #f00; 
        & > .vxe-body--column:first-child {
          background-color: #f00 !important;
        }
      }
}

vxe-table自动合并单元格

<vxe-table
    @cell-click="handleClickCell"
    :span-method="spanMethods"  //自动合并单元格
    :data="tableData2">
</vxe-table>
spanMethods({row, $rowIndex, column, data}){
      let fields = ["pcsname", "fjname"]
      let cellValue = row[column.property]
      if (cellValue && fields.includes(column.property)) {
        let prevRow = data[$rowIndex - 1]
        let nextRow = data[$rowIndex   1]
        if (prevRow && prevRow[column.property] === cellValue) {
          return {rowspan: 0, colspan: 0}
        } else {
          let countRowspan = 1
          while (nextRow && nextRow[column.property] === cellValue) {
            nextRow = data[  countRowspan   $rowIndex]
          }
          if (countRowspan > 1) {
            return {rowspan: countRowspan, colspan: 1}
          }
        }
      }
    },

以上为个人经验,希望能给大家一个参考,也希望大家多多支持Devmax。

使用vxe-table合并单元格后增加选中效果的更多相关文章

  1. html5教你做炫酷的碎片式图片切换 (canvas)

    本篇文章主要介绍了html5教你做炫酷的碎片式图片切换 (canvas) ,具有一定参考价值,有兴趣的可以了解一下

  2. ios – 如何将UICollectionViewCell从一个UICollectionView拖到另一个UICollectionView?

    如果是这样,我将如何实施它?

  3. xcode – 在自定义表视图单元格中嵌入集合视图

    我有一个故事板的图像,你可以看到自定义表格单元格然后底部是一个集合视图,我想填充图像–只是不知道如何?我也不确定哪些信息可能会有所帮助,所以如果有信息遗失,我很抱歉.解决方法您应该将UICollectionView的Delagate和DataSource放在自定义UITableViewCell类中.这是一个nicetutorial.它是关于tableview单元格中的tableview,但这个想法非常相似.祝好运!

  4. ios – 使用动态单元格高度时,将表格视图滚动到底部

    使用动态单元格高度时,如何将表格视图滚动到底部?出于某种原因,此代码在此方案中不起作用:谢谢!

  5. ios – 渲染模式设置为图像目录中的矢量pdf模板,但UIImageView不会在自定义单元格中设置图像

    我已将所有图像文件迁移到资产目录.所有这些都是大小为1x的pdf向量.它们设置为呈现为模板.它们在大小和颜色方面都显得很好.但是有一个来自xib的自定义TableViewCell,我有6个UIImageView链接到目录中的6个这些图像.不知何故,他们不尊重色调,既不是默认也不是自定义.尝试以编程方式更改它们,但也没有工作.这些相同的图像在主故事板内的静态单元格的另一个tableview中显示正常

  6. ios – 我的表视图在滚动时在SWIFT中重用所选单元格

    实例变量

  7. ios – 带图像而不是标题的UITableViewRowAction

    可以告诉我如何解决它,或者其他方式来做到这一点?

  8. iOS – 自定义表格单元格不是UITableView的全宽度

    我可能会犯这个错误.所以我创建了一个UITableView,它基本上有一个设置为主视图的自动布局尾随空间.我正在为这个表创建一个自定义单元格,所以我在原型单元格上进行了定制,定制了它,并为它创建了我的类.这一切都很好.我似乎无法解决的是自定义单元格不是实际表格单元格的全宽,因此只显示白色背景.如果我不使用自定义单元格,则可以使用整个宽度表单元格.我为单元格内容设置了约束,以便背景图像填充单元格.我究竟做错了什么?

  9. UITableViewCellAccessoryCheckmark涵盖iOS 7上的单元格分隔符

    在iOS7上使用此代码会导致分隔符视图被覆盖或缩短:如何修复分隔符视图?

  10. ios – 在UITableviewcell swift中设置水平渐变

    我想在每个单元格上从左到右创建一个水平渐变我使用CAGradientLayey创建自定义图层并将此图层添加到tableview单元格这是我在swift中的代码但是渐变并不覆盖所有tableview单元格,它在渐变单元格和正常单元格背景颜色之间切换,似乎渐变覆盖了单元格文本.我不知道我做错了什么有什么建议吗?谢谢解决方法而不是使用框架,使用单元格的边界,也在索引0处插入子图层,因此它将落后于包括您的标签在内的所有其他图层

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部