feat(视图-表格): AntV 明细表/汇总表支持冻结行。

This commit is contained in:
wisonic-s 2023-12-21 15:31:07 +08:00
parent 14d118ba3e
commit 8b6afd41a6
8 changed files with 35 additions and 17 deletions

View File

@ -1386,9 +1386,9 @@ export default {
filter_value_can_not_str: 'Value type can not input string',
enum_value_can_not_null: 'Enum Value can not empty.',
column: 'Column',
table_freeze: 'Table Freeze',
table_config: 'Table Config',
table_column_width_config: 'Column Width',
table_column_freeze: 'Column Freeze',
table_column_adapt: 'Adapt',
table_column_custom: 'Custom',
chart_table_pivot: 'Pivot Table',

View File

@ -1386,7 +1386,7 @@ export default {
column: '列',
table_config: '表格配置',
table_column_width_config: '列寬調整',
table_column_freeze: '列凍結',
table_freeze: '表格凍結',
table_column_adapt: '自適應',
table_column_custom: '自定義',
chart_table_pivot: '透視表',

View File

@ -1384,9 +1384,9 @@ export default {
filter_value_can_not_str: '数值类型字段过滤值不能包含文本',
enum_value_can_not_null: '字段枚举值不能为空',
column: '列',
table_freeze: '表格冻结',
table_config: '表格配置',
table_column_width_config: '列宽调整',
table_column_freeze: '列冻结',
table_column_adapt: '自适应',
table_column_custom: '自定义',
chart_table_pivot: '透视表',

View File

@ -172,7 +172,8 @@ export const DEFAULT_SIZE = {
quotaSuffixLetterSpace: '0',
quotaSuffixFontShadow: false,
tableColumnFreezeHead: 0,
tableColumnFreezeTail: 0
tableColumnFreezeTail: 0,
tableRowFreezeHead: 0
}
export const DEFAULT_SUSPENSION = {
show: true

View File

@ -92,7 +92,8 @@ export function baseTableInfo(s2, container, chart, action, tableData, pageInfo)
showSeriesNumber: customAttr.size.showIndex,
style: getSize(chart),
conditions: getConditions(chart),
frozenColCount: customAttr.size.tableColumnFreezeHead ?? 0
frozenColCount: customAttr.size.tableColumnFreezeHead ?? 0,
frozenRowCount: customAttr.size.tableRowFreezeHead ?? 0
}
// 开启序号之后,第一列就是序号列,修改 label 即可
if (s2Options.showSeriesNumber) {
@ -285,16 +286,16 @@ export function baseTableNormal(s2, container, chart, action, tableData) {
showSeriesNumber: customAttr.size.showIndex,
style: getSize(chart),
conditions: getConditions(chart),
frozenColCount: customAttr.size.tableColumnFreezeHead ?? 0
frozenColCount: customAttr.size.tableColumnFreezeHead ?? 0,
frozenRowCount: customAttr.size.tableRowFreezeHead ?? 0
}
// 开启序号之后,第一列就是序号列,修改 label 即可
if (s2Options.showSeriesNumber) {
s2Options.colCell = (node) => {
if (node.colIndex === 0) {
if (!customAttr.size.indexLabel) {
node.label = customAttr.size.indexLabel
if (!customAttr.size.indexLabel || customAttr.size.showTableHeader === false) {
node.label = ' '
} else {
node.label = customAttr.size.indexLabel
}
}
}
@ -310,6 +311,11 @@ export function baseTableNormal(s2, container, chart, action, tableData) {
colCellVertical: false
}
}
s2Options.colCell = (node) => {
if (node.colIndex === 0) {
node.label = ' '
}
}
}
// 开始渲染

View File

@ -63,7 +63,7 @@ export const TYPE_CONFIGS = [
'tableTitleHeight',
'tableItemHeight',
'tableColumnMode',
'tableColumnFreeze',
'tableFreeze',
'showIndex',
'indexLabel',
'tableColTooltip',
@ -121,7 +121,7 @@ export const TYPE_CONFIGS = [
'indexLabel',
'tableColTooltip',
'showTableHeader',
'tableColumnFreeze'
'tableFreeze'
],
'title-selector-ant-v': [
'show',
@ -2083,7 +2083,7 @@ export const TYPE_CONFIGS = [
'tableTitleHeight',
'tableItemHeight',
'tableColumnWidth',
'tableColumnFreeze',
'tableFreeze',
'showIndex',
'indexLabel',
'tableAutoBreakLine',
@ -2133,7 +2133,7 @@ export const TYPE_CONFIGS = [
'tableColumnWidth',
'showIndex',
'indexLabel',
'tableColumnFreeze',
'tableFreeze',
'tableAutoBreakLine',
'showTableHeader'
],

View File

@ -330,8 +330,8 @@
/>
</el-form-item>
<el-form-item
v-if="showProperty('tableColumnFreeze')"
:label="$t('chart.table_column_freeze')"
v-if="showProperty('tableFreeze')"
:label="$t('chart.table_freeze')"
class="form-item"
>
<span>{{ $t('dynamic_time.before') }} </span>

View File

@ -296,8 +296,8 @@
/>
</el-form-item>
<el-form-item
v-if="showProperty('tableColumnFreeze')"
:label="$t('chart.table_column_freeze')"
v-if="showProperty('tableFreeze')"
:label="$t('chart.table_freeze')"
class="form-item"
>
<span>{{ $t('dynamic_time.before') }} </span>
@ -309,6 +309,16 @@
@change="changeBarSizeCase('tableColumnFreezeHead')"
/>
<span> {{ $t('chart.column') }}</span>
<div style="margin: 5px 0" />
<span>{{ $t('dynamic_time.before') }} </span>
<el-input-number
v-model="sizeForm.tableRowFreezeHead"
:min="0"
:max="1000"
:step-strictly="true"
@change="changeBarSizeCase('tableRowFreezeHead')"
/>
<span> {{ $t('deDataset.row') }}</span>
</el-form-item>
<el-form-item
v-if="showProperty('showIndex')"
@ -1697,6 +1707,7 @@ export default {
this.sizeForm.tableColTooltip = this.sizeForm.tableColTooltip ?? DEFAULT_SIZE.tableColTooltip
this.sizeForm.tableColumnFreezeHead = this.sizeForm.tableColumnFreezeHead ?? DEFAULT_SIZE.tableColumnFreezeHead
this.sizeForm.tableColumnFreezeTail = this.sizeForm.tableColumnFreezeTail ?? DEFAULT_SIZE.tableColumnFreezeTail
this.sizeForm.tableRowFreezeHead = this.sizeForm.tableRowFreezeHead ?? DEFAULT_SIZE.tableRowFreezeHead
this.sizeForm.showIndex = this.sizeForm.showIndex ? this.sizeForm.showIndex : DEFAULT_SIZE.showIndex
this.sizeForm.showTableHeader = this.sizeForm.showTableHeader !== false