#bodyCellStyle
body单元格条件样式配置
全局样式或条件样式配置
支持图表类型:table, pivotTable#selector
数据筛选器
若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力
若未配置selector, 则样式全局生效.
#表格条件样式
const TableBodyCellStyle = memo(() => {
const vseed: VSeed = {
chartType: 'table',
dataset: [
{ date: '2019', type: 'A', goalProfit: 10, profit: 10, sales: 100, leftCount: 1, salesCount: 100 },
{ date: '2020', type: 'A', goalProfit: 30, profit: 30, sales: 320, leftCount: 2, salesCount: 200 },
{ date: '2021', type: 'A', goalProfit: 30, profit: 30, sales: 300, leftCount: 3, salesCount: 300 },
{ date: '2022', type: 'A', goalProfit: 50, profit: 50, sales: 240, leftCount: 4, salesCount: 400 },
{ date: '2023', type: 'A', goalProfit: 40, profit: 40, sales: 500, leftCount: 5, salesCount: 500 },
],
bodyCellStyle: [
{
selector: { type: 'A' },
backgroundColor: 'pink',
},
{
selector: { field: 'sales', operator: '>=', value: 150 },
textColor: 'red',
},
],
}
return <VTableTable vseed={vseed} />
})#表格条件样式 - 全局样式
const TableBodyCellStyleGlobal = memo(() => {
const vseed: VSeed = {
chartType: 'table',
dataset: [
{ date: '2019', type: 'A', goalProfit: 10, profit: 10, sales: 100, leftCount: 1, salesCount: 100 },
{ date: '2020', type: 'A', goalProfit: 30, profit: 30, sales: 320, leftCount: 2, salesCount: 200 },
{ date: '2021', type: 'A', goalProfit: 30, profit: 30, sales: 300, leftCount: 3, salesCount: 300 },
{ date: '2022', type: 'A', goalProfit: 50, profit: 50, sales: 240, leftCount: 4, salesCount: 400 },
{ date: '2023', type: 'A', goalProfit: 40, profit: 40, sales: 500, leftCount: 5, salesCount: 500 },
],
bodyCellStyle: {
backgroundColor: '#f8f9fa',
textColor: '#333',
},
}
return <VTableTable vseed={vseed} />
})#表格条件样式 - 根据度量值设置
const TableBodyCellStyleByValue = memo(() => {
const vseed: VSeed = {
chartType: 'table',
dataset: [
{ date: '2019', type: 'A', goalProfit: 10, profit: 10, sales: 100, leftCount: 1, salesCount: 100 },
{ date: '2020', type: 'A', goalProfit: 30, profit: 30, sales: 320, leftCount: 2, salesCount: 200 },
{ date: '2021', type: 'A', goalProfit: 30, profit: 30, sales: 300, leftCount: 3, salesCount: 300 },
{ date: '2022', type: 'A', goalProfit: 50, profit: 50, sales: 240, leftCount: 4, salesCount: 400 },
{ date: '2023', type: 'A', goalProfit: 40, profit: 40, sales: 500, leftCount: 5, salesCount: 500 },
],
bodyCellStyle: [
{
selector: { field: 'sales', operator: '>=', value: 300 },
backgroundColor: '#fff3cd',
textColor: '#a15c00',
},
],
}
return <VTableTable vseed={vseed} />
})#表格条件样式 - 多个条件
const TableBodyCellStyleMulti = memo(() => {
const vseed: VSeed = {
chartType: 'table',
dataset: [
{ date: '2019', type: 'A', goalProfit: 10, profit: 10, sales: 100, leftCount: 1, salesCount: 100 },
{ date: '2020', type: 'A', goalProfit: 30, profit: 30, sales: 320, leftCount: 2, salesCount: 200 },
{ date: '2021', type: 'A', goalProfit: 30, profit: 30, sales: 300, leftCount: 3, salesCount: 300 },
{ date: '2022', type: 'A', goalProfit: 50, profit: 50, sales: 240, leftCount: 4, salesCount: 400 },
{ date: '2023', type: 'A', goalProfit: 40, profit: 40, sales: 500, leftCount: 5, salesCount: 500 },
],
bodyCellStyle: [
{
// fallback/global style when no selector matched
backgroundColor: 'pink',
},
{
selector: { type: 'A' },
backgroundColor: 'red',
},
{
selector: { field: 'sales', operator: 'between', value: [200, 400] },
backgroundColor: '#e6fcf5',
textColor: '#0b7285',
},
],
}
return <VTableTable vseed={vseed} />
})#透视表条件样式 - 根据度量值设置
const PivotTableBodyCellStyleByValue = memo(() => {
const vseed: VSeed = {
chartType: 'pivotTable',
dataset: [
{ date: '2019', type: 'A', goalProfit: 10, profit: 10, sales: 100, leftCount: 1, salesCount: 100 },
{ date: '2020', type: 'A', goalProfit: 30, profit: 30, sales: 320, leftCount: 2, salesCount: 200 },
{ date: '2021', type: 'A', goalProfit: 30, profit: 30, sales: 300, leftCount: 3, salesCount: 300 },
{ date: '2022', type: 'A', goalProfit: 50, profit: 50, sales: 240, leftCount: 4, salesCount: 400 },
{ date: '2023', type: 'A', goalProfit: 40, profit: 40, sales: 500, leftCount: 5, salesCount: 500 },
],
bodyCellStyle: [
{
selector: { field: 'sales', operator: '>=', value: 300 },
backgroundColor: '#e3f2fd',
textColor: '#0d47a1',
},
],
dimensions: [
{ id: 'date', alias: '日期', encoding: 'column' },
{ id: 'type', alias: '类型', encoding: 'row' },
],
measures: [
{ id: 'profit', alias: '利润' },
{ id: 'sales', alias: '销售量' },
],
}
return <VTablePivotTable vseed={vseed} />
})#透视表条件样式 - 全局样式
const PivotTableBodyCellStyleBasic = memo(() => {
const vseed: VSeed = {
chartType: 'pivotTable',
dataset: [
{ date: '2019', type: 'A', goalProfit: 10, profit: 10, sales: 100, leftCount: 1, salesCount: 100 },
{ date: '2020', type: 'A', goalProfit: 30, profit: 30, sales: 320, leftCount: 2, salesCount: 200 },
{ date: '2021', type: 'A', goalProfit: 30, profit: 30, sales: 300, leftCount: 3, salesCount: 300 },
{ date: '2022', type: 'A', goalProfit: 50, profit: 50, sales: 240, leftCount: 4, salesCount: 400 },
{ date: '2023', type: 'A', goalProfit: 40, profit: 40, sales: 500, leftCount: 5, salesCount: 500 },
],
bodyCellStyle: {
backgroundColor: '#faf0e6',
textColor: '#4d342e',
},
}
return <VTablePivotTable vseed={vseed} />
})#透视表条件样式 - 符合条件
const PivotTableBodyCellStyleMulti = memo(() => {
const vseed: VSeed = {
chartType: 'pivotTable',
dataset: [
{ date: '2019', type: 'A', goalProfit: 10, profit: 10, sales: 100, leftCount: 1, salesCount: 100 },
{ date: '2020', type: 'A', goalProfit: 30, profit: 30, sales: 320, leftCount: 2, salesCount: 200 },
{ date: '2021', type: 'A', goalProfit: 30, profit: 30, sales: 300, leftCount: 3, salesCount: 300 },
{ date: '2022', type: 'A', goalProfit: 50, profit: 50, sales: 240, leftCount: 4, salesCount: 400 },
{ date: '2023', type: 'A', goalProfit: 40, profit: 40, sales: 500, leftCount: 5, salesCount: 500 },
],
bodyCellStyle: [
{
selector: { type: 'A' },
backgroundColor: 'pink',
},
{
selector: { field: 'date', operator: 'in', value: ['2019', '2023'] },
textColor: 'green',
},
],
dimensions: [
{ id: 'date', alias: '日期', encoding: 'column' },
{ id: 'type', alias: '类型', encoding: 'row' },
],
measures: [
{ id: 'profit', alias: '利润' },
{ id: 'sales', alias: '销售量' },
],
}
return <VTablePivotTable vseed={vseed} />
})