element-plus 表格-自定义样式实现2

javascript 复制代码
<template>
  <h2>表格修改样式利用属性修改</h2>
  <h3>row-style 行样式</h3>
  <h3>row-style header-row-style 不能改背景色</h3>
  <h3>cell-style header-cell-style能改背景色</h3>

  <el-table
    ref="tableRef"
    :data="tableData"
    border
    style="width: 100%"
    highlight-current-row
    height="200"
    :row-style="rowState"
    :cell-style="cellState"
    :header-row-style="headerRowState"
    :header-cell-style="headerCellState"
  >
    <el-table-column type="index" label="序号" width="100" />
    <el-table-column prop="date" label="Date" width="180" />
    <el-table-column prop="name" label="Name" width="180" />
    <el-table-column prop="address" label="Address" />
  </el-table>

  <div>测试2================</div>
  <h3>header-row-class-name 不能改背景色</h3>
  <h3>header-cell-class-name能改背景色</h3>

  <el-table
    :data="tableData"
    border
    style="width: 100%"
    highlight-current-row
    height="200"
    header-row-class-name="myHeaderClass"
    header-cell-class-name="myHeaderCellClass"
    row-class-name="myRowClass"
    cell-class-name="myCellClass"
  >
    <el-table-column type="index" label="序号" width="100" />
    <el-table-column prop="date" label="Date" width="180" />
    <el-table-column prop="name" label="Name" width="180" />
    <el-table-column prop="address" label="Address" />
  </el-table>
</template>

<script lang="ts" setup >
import { getCurrentInstance, onMounted, reactive, ref, inject } from "vue";

const install = getCurrentInstance();
const tableRef = ref();
const tableData = reactive<any>([]);

const allDableData = reactive<any>([]);

const pageSize4 = ref(10);
const currentPage4 = ref(1);

onMounted(() => {
  for (let i = 0; i < 100; i++) {
    let obj = {
      date: "2016-05-01",
      name: "Tom" + i,
      address: "No. 189, Grove St, Los Angeles",
      color_index: i,
    };
    allDableData.push(obj);
  }

  tableData.push(...allDableData.slice(currentPage4.value - 1, pageSize4.value));
});

function rowState({ row }) {
  let style = {};
  //console.log(row.color_index)
  switch (row.color_index % 4) {
    case 0:
      style = {
        backgroundColor: "red",
        color: "white",
      };
      break;
    case 1:
      style = {
        backgroundColor: "blue",
      };
      break;
    case 2:
      style = {
        backgroundColor: "purple",
      };
      break;
  }

  return style;
}

function cellState(row) {
  // row, column, rowIndex, columnIndex
  //console.log(row.rowIndex,row.columnIndex)
  let style = { backgroundColor: "rgb(16, 95, 95)", color: "blueviolet" };
  if (row.columnIndex == 1) {
    return style;
  }
}

function headerRowState(item) {
  //  row, column, rowIndex, columnIndex
  //console.log("不能改背景,需要利用header-cell-style")
  return { backgroundColor: "rgb(160, 950, 950)", color: "blueviolet" };
}

function headerCellState(item) {
  return { backgroundColor: "rgb(160, 950, 950)", color: "blueviolet" };
}
</script> 


<style >
.myHeaderClass {
  background-color: rgb(16, 95, 95) !important;
  color: blueviolet;
}
.myHeaderCellClass {
  background-color: rgb(16, 95, 95) !important;
}

.myRowClass {
  background-color: rgb(16, 95, 95);
  color: rgb(203, 184, 221);
}
.myCellClass {
  background-color: rgb(16, 95, 95);
}

/* 表格整体背景色 */
::v-deep .el-table,
::v-deep .el-table__expanded-cell {
  /* background-color: transparent !important;
   */
  background-color: rgb(16, 95, 95);
}

/* 表格内tr背景色修改 */
::v-deep .el-table tr {
  background-color: rgb(16, 95, 95) !important;
  border: 0;
  /* 设置字体大小 */
  font-size: 14px;
}

/*表格内td背景色修改*/
::v-deep .el-table td {
  background-color: rgb(16, 95, 95) !important;
  border: 0;
  /* 设置字体大小 */
  font-size: 14px;
}

::v-deep .current-row {
  /* 选中时的图片显示 */
  background: rgb(16, 95, 95);
  background-size: 100% 100% !important;
}

/* 用来设置当前页面element全局table 鼠标移入某行时的背景色*/
::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td {
  background-color: rgb(66, 11, 11) !important;
  /* color: #f19944; */ /* 设置文字颜色,可以选择不设置 */
}
</style>
相关推荐
爱上妖精的尾巴27 分钟前
8-5 WPS JS宏 match、search、replace、split支持正则表达式的字符串函数
开发语言·前端·javascript·wps·jsa
小温冲冲29 分钟前
通俗且全面精讲单例设计模式
开发语言·javascript·设计模式
意法半导体STM321 小时前
【官方原创】FDCAN数据段波特率增加后发送失败的问题分析 LAT1617
javascript·网络·stm32·单片机·嵌入式硬件·安全
为什么不问问神奇的海螺呢丶1 小时前
n9e categraf redis监控配置
前端·redis·bootstrap
云飞云共享云桌面1 小时前
推荐一些适合10个SolidWorks设计共享算力的服务器硬件配置
运维·服务器·前端·数据库·人工智能
Liu.7741 小时前
vue开发h5项目
vue.js
咔咔一顿操作1 小时前
轻量无依赖!autoviwe 页面自适应组件实战:从安装到源码深度解析
javascript·arcgis·npm·css3·html5
刘联其2 小时前
.net也可以用Electron开发跨平台的桌面程序了
前端·javascript·electron
韩曙亮2 小时前
【jQuery】jQuery 选择器 ④ ( jQuery 筛选方法 | 方法分类场景 - 向下找后代、向上找祖先、同级找兄弟、范围限定查找 )
前端·javascript·jquery·jquery筛选方法
前端 贾公子2 小时前
Node.js 如何处理 ES6 模块
前端·node.js·es6