a-table 边框颜色修改;单元格点击等事件

案例:

<template>
    <div class="mod_table">
        <a-table 
        :columns="columns"
        :data-source="data" 
        bordered
        :pagination="false"
        >
        </a-table>
    </div>
</template>
<script>
export default {
   name: 'ModuleTable', 
   props: {
   },
   components: {

   },
   data () {
     return {
        columns : [
            {
                title: '姓名',
                dataIndex: 'name',
                align:"center"
            },
            {
                title: '年龄',
                dataIndex: 'age',
                align:"center"
            },
            {
                title: '地址',
                dataIndex: 'address',
                align:"center"
            },
        ],
        data : [
            {
                key: '1',
                name: 'Tony',
                age:"23",
                address: 'New York No. 1 Lake Park',
            },
            {
                key: '2',
                name: 'Alice',
                age:"26",
                address: 'London No. 1 Lake Park',
            },
            {
                key: '3',
                name: 'Louise',
                age:"26",

                address: 'Sidney No. 1 Lake Park',
            },
        ]
     }
   },
   methods: {
   },
   computed: {

   },
}
</script>
<style scoped lang='less'>
    .mod_table{
        /deep/.ant-table-thead > tr > th {
            border-top: 1px solid red;
            border-left: 1px solid red;
            border-bottom: 1px solid red;
        }
        /deep/.ant-table-thead > tr > th:last-of-type {
            border-right: 1px solid red;
        }
        /deep/.ant-table-tbody > tr > td{
            border-bottom: 1px solid red;
            border-left: 1px solid red;
        }
        /deep/.ant-table-tbody > tr > td:last-of-type{
            border-right: 1px solid red;
        }
    }
</style>

效果:

a-table 组件没有比较直接的修改边框的属性,需要根据不同的类依次修改。

可以声明一个颜色变量,便于直接修改,如下:

<style scoped lang='less'>
    .mod_table {
        --back-color: red;
      }
    .mod_table{
        /deep/.ant-table-thead > tr > th {
            padding: 7px 5px;
            border-top: 1px solid var(--back-color);
            border-left: 1px solid var(--back-color);
            border-bottom: 1px solid var(--back-color);
        }
        /deep/.ant-table-thead > tr > th:last-of-type {
            border-right: 1px solid var(--back-color);
        }
        /deep/.ant-table-tbody > tr > td{
            padding: 7px 5px;
            border-bottom: 1px solid var(--back-color);
            border-left: 1px solid var(--back-color);
        }
        /deep/.ant-table-tbody > tr > td:last-of-type{
            border-right: 1px solid var(--back-color);
        }
    }
</style>

如果要对指定列指定单元格进行样式修改可以这样:

并且添加相应的点击等事件

<template>
    <div class="mod_table">
        <a-table 
         :columns="renderColumns(columns)"
        :data-source="data" 
        bordered
        :pagination="false"
        >
        </a-table>

    </div>
</template>

<script>
export default {
   name: 'ModuleTable', 
   props: {
   },
   components: {

   },
   data () {
     return {
        columns : [
            {
                title: '姓名',
                dataIndex: 'name',
                align:"center"
            },
            {
                title: '年龄',
                dataIndex: 'age',
                align:"center"
            },
            {
                title: '地址',
                dataIndex: 'address',
                align:"center"
            },
        ],
        data : [
            {
                key: '1',
                name: 'Tony',
                age:"23",
                address: 'New York No. 1 Lake Park',
            },
            {
                key: '2',
                name: 'Alice',
                age:"26",
                address: 'London No. 1 Lake Park',
            },
            {
                key: '3',
                name: 'Louise',
                age:"26",

                address: 'Sidney No. 1 Lake Park',
            },
        ]
     }
   },
   methods: {
    renderColumns() {
    return this.columns.map(item => {
      return {
        ...item,
        customCell(record, index) {
            console.log("===",record,index)
          return {
            on:{
                click: (event) => {},
                dblclick: (event) => {},
                contextmenu: (event) => {},
                mouseenter: (event) => {},
                mouseleave: (event) => {}
            },
            style: {
                   // 单元格背景色
                  'background-color':item.title=="年龄" ? 'red':"white"
                }
          }
        },
        customHeaderCell(record, index){
          return {
            style: {
                   // 头部单元格背景色
                  'background-color':item.title=="地址" ? 'yellow':"white"
                }
          }
        }
      }
    })
  }
   },
   mounted() {

   },
   watch: {

   },
   computed: {

   },
   filters: {

   }
}
</script>

<style scoped lang='less'>
    .mod_table {
        --back-color: rgb(169, 169, 169);
      }
    .mod_table{
        /deep/.ant-table-thead > tr > th {
            padding: 7px 5px;
            border-top: 1px solid var(--back-color);
            border-left: 1px solid var(--back-color);
            border-bottom: 1px solid var(--back-color);
        }
        /deep/.ant-table-thead > tr > th:last-of-type {
            border-right: 1px solid var(--back-color);
        }
        /deep/.ant-table-tbody > tr > td{
            padding: 7px 5px;
            border-bottom: 1px solid var(--back-color);
            border-left: 1px solid var(--back-color);
        }
        /deep/.ant-table-tbody > tr > td:last-of-type{
            border-right: 1px solid var(--back-color);
        }
    }
</style>

效果:

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天命爱心职责~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值