el-table 改变某一行的序号、改变某一行样式、改变某一个单元格样式、改变hover样式、改变点击样式


前言

最近在尝试做一个仿网易云的vue项目,记录下关于 element-ui 中 el-table 组件的一些功能或样式


一、改变行的hover样式

.el-table--enable-row-hover .el-table__body tr:hover > td {
  background-color: #f0f1f2 !important;
}
// <style> 不要加 scoped

二、改变点击样式

先在<el-table></e-table> 标签加上 highlight-current-row

<el-table highlight-current-row ></el-table>

然后设置样式

.el-table__body tr.current-row > td {
  background-color: #e5e5e5 !important;
}
// <style> 不要加 scoped

三、改变某一行的样式

利用 el-table 的 attribute:
row-style: 行的 style 的回调方法,也可以使用一个固定的 Object 为所有行设置一样的 Style。
类型: Function({row, rowIndex})/Object
在这里插入图片描述
函数返回一个 对象

方式一

所有行样式都会相同
<el-table :row-style="{ height: '0' }">

方式二

<el-table :row-style="fun">
methods:{
	fun({row, rowIndex}){
		if (根据row中的数据,或rowIndex判断要修改的行){
			return {
				color: 'red'
			}
		}
	}
}

四、改变某一个单元格的样式

在这里插入图片描述
使用方法同上,不同的是 函数有四个参数 row, column, rowIndex, columnIndex
挑选参数来判断要修改的单元格

// 播放音乐时,歌曲名变红
    toRed({ row, columnIndex }) {
      let style = { padding: "4px" };
      if (row.id === this.toRedRowId && columnIndex === 2) {
        style.color = "#ec4141";
      }
      return style;
    },

在这里插入图片描述

五、改变某一行序号

<el-table ... >
      <!-- type="index" :index="indexMethod" -->
      <el-table-column width="60">
        <template slot-scope="{ row, $index }">
        用 v-if 或 v-show 判断要显示的内容
          <i
            v-if="row.id === toRedRowId"    <!-- 当当前行的数据id等于双击的行数据id时 -->
            class="iconfont icon-yinliang"
            style="color: #ec4141; font-size: 13px; font-weight: 700"
          >
          </i>
          <!-- 自己写的函数 indexMethod 格式化序号的函数  -->
          <span v-else>{{ indexMethod($index) }}</span>
          <!--  改成
           		<span v-else>{{ $index }}</span> 
           		则是从0开始编号
           -->
        </template>
      </el-table-column>
</el-table>

在这里插入图片描述

要实现点击el-table中的某一行改变的颜色,你可以使用Vue的事件处理和样式绑定。 首先,你需要为el-table的每一行添加一个点击事件处理方法。在该方法中,你可以改变的颜色。可以在每一行的template中添加@click事件监听器,例如: ```html <el-table v-for="item in tableData" :key="item.id" :data="tableData"> <el-table-column prop="name" label="Name"></el-table-column> <el-table-column prop="age" label="Age"></el-table-column> <!-- 其他列 --> <el-table-column label="操作"> <template slot-scope="scope"> <el-button @click="changeRowColor(scope.row)">改变颜色</el-button> </template> </el-table-column> </el-table> ``` 然后,在Vue实例中定义changeRowColor方法来改变的颜色。你可以使用一个data属性来记录当前选中的的索引或其他标识符,然后在样式绑定中根据该属性来设置的颜色。例如: ```javascript data() { return { tableData: [...], // 表格数据 selectedRowIndex: -1 // 记录选中的索引,默认为-1 }; }, methods: { changeRowColor(row) { this.selectedRowIndex = row.$index; // 记录选中的索引 } } ``` 最后,在el-table模板中使用样式绑定来根据选中的索引来设置的颜色。例如: ```html <el-table-row :style="{'background-color': selectedRowIndex === $index ? 'red' : ''}" > <!-- 内容 --> </el-table-row> ``` 这样,当你点击"改变颜色"按钮时,对应的背景色将会变为红色。你可以根据需要自调整样式和更新逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值