feat(图表): 透视表支持控制行头冻结

This commit is contained in:
wisonic-s
2025-09-29 11:05:22 +08:00
committed by wisonic-s
parent d3a19d3fa5
commit 8adf5aac0d
4 changed files with 26 additions and 3 deletions

View File

@@ -532,6 +532,10 @@ declare interface ChartTableHeaderAttr {
name: string
}[]
}
/**
* 透视表行头冻结
*/
rowHeaderFreeze: boolean
}
/**
* 单元格属性

View File

@@ -769,6 +769,20 @@ onMounted(() => {
{{ t('chart.table_header_show_vertical_border') }}
</el-checkbox>
</el-form-item>
<el-form-item
class="form-item"
:class="'form-item-' + themes"
v-if="showProperty('rowHeaderFreeze')"
>
<el-checkbox
size="small"
:effect="themes"
v-model="state.tableHeaderForm.rowHeaderFreeze"
@change="changeTableHeader('rowHeaderFreeze')"
>
{{ t('chart.table_row_header_freeze') }}
</el-checkbox>
</el-form-item>
<el-form-item
v-if="!batchOptStatus && showProperty('headerGroup')"
class="form-item"

View File

@@ -478,7 +478,8 @@ export const DEFAULT_TABLE_HEADER: ChartTableHeaderAttr = {
headerGroup: false,
headerGroupConfig: {
columns: []
}
},
rowHeaderFreeze: true
}
export const DEFAULT_TABLE_CELL: ChartTableCellAttr = {
tableFontColor: '#000000',

View File

@@ -107,7 +107,8 @@ export class TablePivot extends S2ChartView<PivotSheet> {
'showColTooltip',
'showRowTooltip',
'showHorizonBorder',
'showVerticalBorder'
'showVerticalBorder',
'rowHeaderFreeze'
],
'table-total-selector': ['row', 'col'],
'basic-style-selector': [
@@ -193,7 +194,7 @@ export class TablePivot extends S2ChartView<PivotSheet> {
})
// total config
const { basicStyle, tooltip, tableTotal } = parseJson(chart.customAttr)
const { basicStyle, tooltip, tableTotal, tableHeader } = parseJson(chart.customAttr)
if (!tableTotal.row.subTotalsDimensionsNew || tableTotal.row.subTotalsDimensions == undefined) {
tableTotal.row.subTotalsDimensions = r
}
@@ -448,6 +449,9 @@ export class TablePivot extends S2ChartView<PivotSheet> {
return {
supportsCSSTransform: true
}
},
frozen: {
rowHeader: !(tableHeader.rowHeaderFreeze === false)
}
}
// options