当前位置:   article > 正文

vue table 点击单元格修改单元格背景色 使用 customCell 改变单元格背景色(样式)

customcell

解决思路是定义一个可选颜色数组,一个当前颜色字段,一个已设置颜色数组(对象属性包含name: 属性名,value:属性值,index:下标行,color:显示颜色,实际有属性名和下标就可以定义到哪行哪列的单元格了),点击事件(自己定,我用的双击)。

1.data内定义以下属性

  1. colorData: ['red', 'orange', 'yellow', 'green','#7777ff','#a028f8','violet', '#ff8b91', '#ffd47d', '#6bff6b', '#ffff9b', '#80fffd', '#b5b5b5', '#fafafa'],
  2. nowColor: 'red',
  3. // name: 属性名,value:属性值,index:下标行,color:显示颜色
  4. setColorData: [],

2.在columns里定义customCell(这里是一列)。

  1. {
  2. title: '物料供应商',
  3. dataIndex: 'customerName',
  4. key: 'customerName',
  5. customCell: (record, index) => {
  6. return {
  7. style: {
  8. 'background-color': this.getColor(record, index, 'customerName')
  9. },
  10. on: {
  11. dblclick: () => {
  12. this.customCell(record, index, 'customerName')
  13. }
  14. }
  15. }
  16. },
  17. scopedSlots: {
  18. filterDropdown: 'string',
  19. filterIcon: 'filterIcon'
  20. }
  21. },

3.methods内定义方法

  1. customCell(record, index, colName) {
  2. const find = this.setColorData.find(ele => {
  3. return ele.name === colName && ele.value === record[colName] && ele.index === index
  4. })
  5. if (find) {
  6. find.color = this.nowColor
  7. } else {
  8. const line = {
  9. name: colName,
  10. value: record[colName],
  11. index: index,
  12. color: this.nowColor
  13. }
  14. this.setColorData.push(line)
  15. }
  16. },
  17. getColor (record, index, colName) {
  18. const find = this.setColorData.find(ele => {
  19. return ele.name === colName && ele.value === record[colName] && ele.index === index
  20. })
  21. if (find) {
  22. return find.color
  23. }
  24. return ''
  25. },

4.选择颜色组件

  1. <a-row>
  2. <a-col :span="24">
  3. <a-radio-group v-model="nowColor">
  4. <a-radio-button
  5. v-for="item in colorData"
  6. :style="{'background': item, 'color': item === nowColor ? item : 'black'}"
  7. :key="item"
  8. :value="item">{{ item }}</a-radio-button>
  9. </a-radio-group>
  10. </a-col>
  11. </a-row>

4.效果图,可以点击颜色按钮切换颜色,双击单元格改变成对应的背景色。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/692114
推荐阅读
相关标签
  

闽ICP备14008679号