mirror of https://github.com/ElemeFE/element
commit
315ba8c2ab
|
@ -248,9 +248,9 @@
|
||||||
|
|
||||||
## 带状态表格
|
## 带状态表格
|
||||||
|
|
||||||
通过在`data`对象数组中加入字段,可以给行加上状态,Element 提供了四种状态:`$positive`、`$info`、`$warning`以及`$negative`,在对象新增字段中把状态设为`true`表示启用该状态。
|
可以为行添加自定义背景色,表明该行处于某种状态。若某一行拥有`custom-criteria`数组中的某个字段且值为`true`,则为该行添加`custom-background-colors`数组中对应的背景色。
|
||||||
|
|
||||||
<el-table :data="tableData2" style="width: 520px">
|
<el-table :data="tableData2" style="width: 520px" :custom-criteria="['$info', '$positive']" :custom-background-colors="['#C9E5F5', '#E2F0E4']">
|
||||||
<el-table-column property="date" label="日期" width="120"></el-table-column>
|
<el-table-column property="date" label="日期" width="120"></el-table-column>
|
||||||
<el-table-column property="name" label="姓名" width="120"></el-table-column>
|
<el-table-column property="name" label="姓名" width="120"></el-table-column>
|
||||||
<el-table-column property="address" label="地址"></el-table-column>
|
<el-table-column property="address" label="地址"></el-table-column>
|
||||||
|
@ -258,7 +258,7 @@
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<template>
|
<template>
|
||||||
<el-table :data="tableData2">
|
<el-table :data="tableData2" :custom-criteria="['$info', '$positive']" :custom-background-colors="['#C9E5F5', '#E2F0E4']">
|
||||||
<el-table-column property="date" label="日期" width="120"></el-table-column>
|
<el-table-column property="date" label="日期" width="120"></el-table-column>
|
||||||
<el-table-column property="name" label="姓名" width="120"></el-table-column>
|
<el-table-column property="name" label="姓名" width="120"></el-table-column>
|
||||||
<el-table-column property="address" label="地址"></el-table-column>
|
<el-table-column property="address" label="地址"></el-table-column>
|
||||||
|
|
|
@ -43,13 +43,10 @@ export default {
|
||||||
<tr
|
<tr
|
||||||
on-click={ ($event) => this.handleClick($event, row) }
|
on-click={ ($event) => this.handleClick($event, row) }
|
||||||
on-mouseenter={ _ => this.handleMouseEnter($index) }
|
on-mouseenter={ _ => this.handleMouseEnter($index) }
|
||||||
|
style={ this.getCustomStyle(row) }
|
||||||
class={{
|
class={{
|
||||||
'current-row': row === this.$parent.selected,
|
'current-row': row === this.$parent.selected,
|
||||||
'hover': this.$parent.$parent.hoverRowIndex === $index,
|
'hover': this.$parent.$parent.hoverRowIndex === $index
|
||||||
'positive-row': row.$positive,
|
|
||||||
'info-row': row.$info,
|
|
||||||
'warning-row': row.$warning,
|
|
||||||
'negative-row': row.$negative
|
|
||||||
}}>
|
}}>
|
||||||
{
|
{
|
||||||
this._l(this.columns, (column) =>
|
this._l(this.columns, (column) =>
|
||||||
|
@ -75,6 +72,8 @@ export default {
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
criteria: this.$parent.customCriteria,
|
||||||
|
colors: this.$parent.customBackgroundColors,
|
||||||
tooltipDisabled: true
|
tooltipDisabled: true
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
@ -84,6 +83,25 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
checkProperty(row) {
|
||||||
|
if (this.criteria && this.criteria.length > 0) {
|
||||||
|
for (let i = 0, len = this.criteria.length; i < len; i++) {
|
||||||
|
if (row[this.criteria[i]] === true) {
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
},
|
||||||
|
|
||||||
|
getCustomStyle(row) {
|
||||||
|
if (!this.criteria || !this.colors || this.criteria.length !== this.colors.length) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
let criterionIndex = this.checkProperty(row);
|
||||||
|
return criterionIndex > -1 ? { 'background-color': this.colors[criterionIndex] } : {};
|
||||||
|
},
|
||||||
|
|
||||||
handleCellMouseEnter(event, row) {
|
handleCellMouseEnter(event, row) {
|
||||||
let grid = this.$parent;
|
let grid = this.$parent;
|
||||||
const cell = getCell(event);
|
const cell = getCell(event);
|
||||||
|
|
|
@ -81,7 +81,10 @@
|
||||||
|
|
||||||
gutterWidth: {
|
gutterWidth: {
|
||||||
default: 0
|
default: 0
|
||||||
}
|
},
|
||||||
|
|
||||||
|
customCriteria: Array,
|
||||||
|
customBackgroundColors: Array
|
||||||
},
|
},
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
|
|
|
@ -253,22 +253,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
& tr.positive-row {
|
|
||||||
background: #E2F0E4;
|
|
||||||
}
|
|
||||||
|
|
||||||
& tr.info-row {
|
|
||||||
background: #C9E5F5;
|
|
||||||
}
|
|
||||||
|
|
||||||
& tr.warning-row {
|
|
||||||
background: #FEEED9;
|
|
||||||
}
|
|
||||||
|
|
||||||
& tr.negative-row {
|
|
||||||
background: #F7D2D3;
|
|
||||||
}
|
|
||||||
|
|
||||||
& tr.current-row {
|
& tr.current-row {
|
||||||
background: #EFF7FF;
|
background: #EFF7FF;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue