From c55bd2b4ae904977f77ae726472e7b8272a91901 Mon Sep 17 00:00:00 2001 From: fangsmile <892739385@qq.com> Date: Thu, 13 Jun 2024 15:11:12 +0800 Subject: [PATCH 1/7] chore: update issue yml and highlightMode type --- .github/ISSUE_TEMPLATE/feaure_request.yml | 2 +- .../demo/en/cell-type/list-table-chart.md | 426 ++++++++--------- .../demo/zh/cell-type/list-table-chart.md | 434 +++++++++--------- packages/vtable/src/ts-types/base-table.ts | 4 +- 4 files changed, 433 insertions(+), 433 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/feaure_request.yml b/.github/ISSUE_TEMPLATE/feaure_request.yml index 479a5c2b1..34d0f3eb4 100644 --- a/.github/ISSUE_TEMPLATE/feaure_request.yml +++ b/.github/ISSUE_TEMPLATE/feaure_request.yml @@ -1,7 +1,7 @@ name: Feature Request description: Request a new feature from @VisActor/vtable title: '[Feature] ' -labels: [new-feature] +labels: [feature] body: - type: markdown attributes: diff --git a/docs/assets/demo/en/cell-type/list-table-chart.md b/docs/assets/demo/en/cell-type/list-table-chart.md index 15c514a11..9343de817 100644 --- a/docs/assets/demo/en/cell-type/list-table-chart.md +++ b/docs/assets/demo/en/cell-type/list-table-chart.md @@ -21,233 +21,233 @@ Combine vchart chart library and render it into tables to enrich visual display ## Code Demo ```javascript livedemo template=vtable - VTable.register.chartModule('vchart', VChart); - const records = [ - { - projectName: 'Project No.1', - startTime: '2023/5/1', - endTime: '2023/5/10', - estimateDays: 10, - goal: 0.6, - progress: [ - { - value: 0.5, - label: '50%', - goal: 0.6 - } - ], - master:'Julin' +VTable.register.chartModule('vchart', VChart); +const records = [ + { + projectName: 'Project No.1', + startTime: '2023/5/1', + endTime: '2023/5/10', + estimateDays: 10, + goal: 0.6, + progress: [ + { + value: 0.5, + label: '50%', + goal: 0.6 + } + ], + master: 'Julin' + }, + { + projectName: 'Project No.2', + startTime: '2023/5/1', + endTime: '2023/5/5', + estimateDays: 5, + goal: 0.5, + progress: [ + { + value: 0.5, + label: '50%', + goal: 0.5 + } + ], + master: 'Jack' + }, + { + projectName: 'Project No.3', + startTime: '2023/5/7', + endTime: '2023/5/8', + estimateDays: 3, + goal: 0.2, + progress: [ + { + value: 0.3, + label: '30%', + goal: 0.2 + } + ], + master: 'Mary' + }, + { + projectName: 'Project No.4', + startTime: '2023/5/11', + endTime: '2023/5/12', + estimateDays: 2, + goal: 0.8, + progress: [ + { + value: 0.9, + label: '90%', + goal: 0.8 + } + ], + master: 'Porry' + }, + { + projectName: 'Project No.5', + startTime: '2023/5/0', + endTime: '2023/5/10', + estimateDays: 2, + goal: 1, + progress: [ + { + value: 0.8, + label: '80%', + goal: 1 + } + ], + master: 'Sheery' + } +]; +const columns = [ + { + field: 'projectName', + title: 'Project Name', + width: 'auto', + style: { + color: '#ff689d', + fontWeight: 'bold' + } + }, + { + field: 'progress', + title: 'Schedule', + width: 300, + cellType: 'chart', + chartModule: 'vchart', + style: { + padding: 1 }, - { - projectName: 'Project No.2', - startTime: '2023/5/1', - endTime: '2023/5/5', - estimateDays: 5, - goal: 0.5, - progress: [ - { - value: 0.5, - label: '50%', - goal: 0.5 + chartSpec: { + type: 'linearProgress', + progress: { + style: { + fill: '#32a645', + lineCap: '' } - ], - master:'Jack' - }, - { - projectName: 'Project No.3', - startTime: '2023/5/7', - endTime: '2023/5/8', - estimateDays: 3, - goal: 0.2, - progress: [ + }, + data: { + id: 'id0' + }, + direction: 'horizontal', + xField: 'value', + yField: 'label', + seriesField: 'type', + cornerRadius: 20, + bandWidth: 12, + padding: 10, + axes: [ { - value: 0.3, - label: '30%', - goal: 0.2 - } - ], - master:'Mary' - }, - { - projectName: 'Project No.4', - startTime: '2023/5/11', - endTime: '2023/5/12', - estimateDays: 2, - goal: 0.8, - progress: [ + orient: 'right', + type: 'band', + domainLine: { visible: false }, + tick: { visible: false }, + label: { + formatMethod: val => val, + style: { + fontSize: 14, + fontWeight: 'bold', + fill: '#32a645' + } + }, + maxWidth: '60%' // 配置坐标轴的最大空间 + }, { - value: 0.9, - label: '90%', - goal: 0.8 + orient: 'bottom', + label: { visible: true, inside: true }, + type: 'linear', + visible: false, + grid: { + visible: false + } } ], - master:'Porry' - }, - { - projectName: 'Project No.5', - startTime: '2023/5/0', - endTime: '2023/5/10', - estimateDays: 2, - goal: 1, - progress: [ + extensionMark: [ { - value: 0.8, - label: '80%', - goal: 1 - } - ], - master:'Sheery' - } - ]; - const columns = [ - { - field: 'projectName', - title: 'Project Name', - width: 'auto', - style: { - color: '#ff689d', - fontWeight: 'bold' - } - }, - { - field: 'progress', - title: 'Schedule', - width: 300, - cellType: 'chart', - chartModule: 'vchart', - style: { - padding: 1 - }, - chartSpec: { - type: 'linearProgress', - progress: { + type: 'rule', + dataId: 'id0', + visible: true, style: { - fill: '#32a645', - lineCap: '' + x: (datum, ctx, elements, dataView) => { + debugger; + return ctx.valueToX([datum.goal]); + }, + y: (datum, ctx, elements, dataView) => { + return ctx.valueToY([datum.label]) - 5; + }, + x1: (datum, ctx, elements, dataView) => { + return ctx.valueToX([datum.goal]); + }, + y1: (datum, ctx, elements, dataView) => { + return ctx.valueToY([datum.label]) + 5; + }, + stroke: 'red', + lineWidth: 2 } }, - data: { - id: 'id0' - }, - direction: 'horizontal', - xField: 'value', - yField: 'label', - seriesField: 'type', - height: 150, - cornerRadius: 20, - bandWidth: 12, - axes: [ - { - orient: 'right', - type: 'band', - domainLine: { visible: false }, - tick: { visible: false }, - label: { - formatMethod: val => val, - style: { - fontSize: 14, - fontWeight: 'bold', - fill: '#32a645' - } + { + type: 'symbol', + dataId: 'id0', + visible: true, + style: { + symbolType: 'triangleDown', + x: (datum, ctx, elements, dataView) => { + return ctx.valueToX([datum.goal]); }, - maxWidth: '60%' // 配置坐标轴的最大空间 - }, - { - orient: 'bottom', - label: { visible: true, inside: true }, - type: 'linear', - visible: false, - grid: { - visible: false - } - } - ], - extensionMark: [ - { - type: 'rule', - dataId: 'id0', - visible: true, - style: { - x: (datum, ctx, elements, dataView) => { - debugger; - return ctx.valueToX([datum.goal]); - }, - y: (datum, ctx, elements, dataView) => { - return ctx.valueToY([datum.label]) - 5; - }, - x1: (datum, ctx, elements, dataView) => { - return ctx.valueToX([datum.goal]); - }, - y1: (datum, ctx, elements, dataView) => { - return ctx.valueToY([datum.label]) + 5; - }, - stroke: 'red', - lineWidth: 2 - } - }, - { - type: 'symbol', - dataId: 'id0', - visible: true, - style: { - symbolType: 'triangleDown', - x: (datum, ctx, elements, dataView) => { - return ctx.valueToX([datum.goal]); - }, - y: (datum, ctx, elements, dataView) => { - return ctx.valueToY([datum.label]) - 10; - }, - size: 15, - scaleY: 0.5, - fill: 'red' - } + y: (datum, ctx, elements, dataView) => { + return ctx.valueToY([datum.label]) - 10; + }, + size: 15, + scaleY: 0.5, + fill: 'red' } - ] - } - }, - { - field: 'goal', - title: 'Target', - width: 'auto', - fieldFormat(rec) { - return rec.goal * 100 + '%'; - }, - style: { - color: 'red', - fontWeight: 'bold' - } - }, - { - field: 'startTime', - title: 'Start Time', - width: 'auto' - }, - { - field: 'endTime', - title: 'End Time', - width: 'auto' + } + ] + } + }, + { + field: 'goal', + title: 'Target', + width: 'auto', + fieldFormat(rec) { + return rec.goal * 100 + '%'; }, - { - field: 'master', - title: 'Master', - width: 'auto', - style: { - color: 'purple', - fontWeight: 'bold' - } + style: { + color: 'red', + fontWeight: 'bold' + } + }, + { + field: 'startTime', + title: 'Start Time', + width: 'auto' + }, + { + field: 'endTime', + title: 'End Time', + width: 'auto' + }, + { + field: 'master', + title: 'Master', + width: 'auto', + style: { + color: 'purple', + fontWeight: 'bold' } - ]; + } +]; - const option = { - records, - columns, - widthMode: 'standard', - hover: { - highlightMode: 'cross' - }, - defaultRowHeight: 60, - autoFillWidth:true, - }; -const tableInstance = new VTable.ListTable(document.getElementById(CONTAINER_ID),option); +const option = { + records, + columns, + widthMode: 'standard', + hover: { + highlightMode: 'cross' + }, + defaultRowHeight: 60, + autoFillWidth: true +}; +const tableInstance = new VTable.ListTable(document.getElementById(CONTAINER_ID), option); window['tableInstance'] = tableInstance; ``` diff --git a/docs/assets/demo/zh/cell-type/list-table-chart.md b/docs/assets/demo/zh/cell-type/list-table-chart.md index d8da3789f..a8d0e8743 100644 --- a/docs/assets/demo/zh/cell-type/list-table-chart.md +++ b/docs/assets/demo/zh/cell-type/list-table-chart.md @@ -9,245 +9,245 @@ option: ListTable-columns-chart#cellType # 基本表格集成图表 -将vchart图表库结合渲染到表格中,丰富可视化展示形式,提升多图表渲染性能。该示例引用了vchart的条形进度条,具体可参考:https://visactor.io/vchart/demo/progress/linear-progress-with-target-value +将 vchart 图表库结合渲染到表格中,丰富可视化展示形式,提升多图表渲染性能。该示例引用了 vchart 的条形进度条,具体可参考:https://visactor.io/vchart/demo/progress/linear-progress-with-target-value ## 关键配置 -- `VTable.register.chartModule('vchart', VChart)` 注册绘制图表的图表库 目前支持VChart -- `cellType: 'chart'` 指定类型chart +- `VTable.register.chartModule('vchart', VChart)` 注册绘制图表的图表库 目前支持 VChart +- `cellType: 'chart'` 指定类型 chart - `chartModule: 'vchart'` 指定注册的图表库名称 -- `chartSpec: {}` 图表spec +- `chartSpec: {}` 图表 spec ## 代码演示 ```javascript livedemo template=vtable - VTable.register.chartModule('vchart', VChart); - const records = [ - { - projectName: 'Project No.1', - startTime: '2023/5/1', - endTime: '2023/5/10', - estimateDays: 10, - goal: 0.6, - progress: [ - { - value: 0.5, - label: '50%', - goal: 0.6 - } - ], - master:'Julin' +VTable.register.chartModule('vchart', VChart); +const records = [ + { + projectName: 'Project No.1', + startTime: '2023/5/1', + endTime: '2023/5/10', + estimateDays: 10, + goal: 0.6, + progress: [ + { + value: 0.5, + label: '50%', + goal: 0.6 + } + ], + master: 'Julin' + }, + { + projectName: 'Project No.2', + startTime: '2023/5/1', + endTime: '2023/5/5', + estimateDays: 5, + goal: 0.5, + progress: [ + { + value: 0.5, + label: '50%', + goal: 0.5 + } + ], + master: 'Jack' + }, + { + projectName: 'Project No.3', + startTime: '2023/5/7', + endTime: '2023/5/8', + estimateDays: 3, + goal: 0.2, + progress: [ + { + value: 0.3, + label: '30%', + goal: 0.2 + } + ], + master: 'Mary' + }, + { + projectName: 'Project No.4', + startTime: '2023/5/11', + endTime: '2023/5/12', + estimateDays: 2, + goal: 0.8, + progress: [ + { + value: 0.9, + label: '90%', + goal: 0.8 + } + ], + master: 'Porry' + }, + { + projectName: 'Project No.5', + startTime: '2023/5/0', + endTime: '2023/5/10', + estimateDays: 2, + goal: 1, + progress: [ + { + value: 0.8, + label: '80%', + goal: 1 + } + ], + master: 'Sheery' + } +]; +const columns = [ + { + field: 'projectName', + title: 'Project Name', + width: 'auto', + style: { + color: '#ff689d', + fontWeight: 'bold' + } + }, + { + field: 'progress', + title: 'Schedule', + width: 300, + cellType: 'chart', + chartModule: 'vchart', + style: { + padding: 1 }, - { - projectName: 'Project No.2', - startTime: '2023/5/1', - endTime: '2023/5/5', - estimateDays: 5, - goal: 0.5, - progress: [ - { - value: 0.5, - label: '50%', - goal: 0.5 + chartSpec: { + type: 'linearProgress', + progress: { + style: { + fill: '#32a645', + lineCap: '' } - ], - master:'Jack' - }, - { - projectName: 'Project No.3', - startTime: '2023/5/7', - endTime: '2023/5/8', - estimateDays: 3, - goal: 0.2, - progress: [ + }, + data: { + id: 'id0' + }, + direction: 'horizontal', + xField: 'value', + yField: 'label', + seriesField: 'type', + cornerRadius: 20, + bandWidth: 12, + padding: 10, + axes: [ { - value: 0.3, - label: '30%', - goal: 0.2 - } - ], - master:'Mary' - }, - { - projectName: 'Project No.4', - startTime: '2023/5/11', - endTime: '2023/5/12', - estimateDays: 2, - goal: 0.8, - progress: [ + orient: 'right', + type: 'band', + domainLine: { visible: false }, + tick: { visible: false }, + label: { + formatMethod: val => val, + style: { + fontSize: 14, + fontWeight: 'bold', + fill: '#32a645' + } + }, + maxWidth: '60%' // 配置坐标轴的最大空间 + }, { - value: 0.9, - label: '90%', - goal: 0.8 + orient: 'bottom', + label: { visible: true, inside: true }, + type: 'linear', + visible: false, + grid: { + visible: false + } } ], - master:'Porry' - }, - { - projectName: 'Project No.5', - startTime: '2023/5/0', - endTime: '2023/5/10', - estimateDays: 2, - goal: 1, - progress: [ + extensionMark: [ { - value: 0.8, - label: '80%', - goal: 1 - } - ], - master:'Sheery' - } - ]; - const columns = [ - { - field: 'projectName', - title: 'Project Name', - width: 'auto', - style: { - color: '#ff689d', - fontWeight: 'bold' - } - }, - { - field: 'progress', - title: 'Schedule', - width: 300, - cellType: 'chart', - chartModule: 'vchart', - style: { - padding: 1 - }, - chartSpec: { - type: 'linearProgress', - progress: { + type: 'rule', + dataId: 'id0', + visible: true, style: { - fill: '#32a645', - lineCap: '' + x: (datum, ctx, elements, dataView) => { + debugger; + return ctx.valueToX([datum.goal]); + }, + y: (datum, ctx, elements, dataView) => { + return ctx.valueToY([datum.label]) - 5; + }, + x1: (datum, ctx, elements, dataView) => { + return ctx.valueToX([datum.goal]); + }, + y1: (datum, ctx, elements, dataView) => { + return ctx.valueToY([datum.label]) + 5; + }, + stroke: 'red', + lineWidth: 2 } }, - data: { - id: 'id0' - }, - direction: 'horizontal', - xField: 'value', - yField: 'label', - seriesField: 'type', - height: 150, - cornerRadius: 20, - bandWidth: 12, - axes: [ - { - orient: 'right', - type: 'band', - domainLine: { visible: false }, - tick: { visible: false }, - label: { - formatMethod: val => val, - style: { - fontSize: 14, - fontWeight: 'bold', - fill: '#32a645' - } + { + type: 'symbol', + dataId: 'id0', + visible: true, + style: { + symbolType: 'triangleDown', + x: (datum, ctx, elements, dataView) => { + return ctx.valueToX([datum.goal]); }, - maxWidth: '60%' // 配置坐标轴的最大空间 - }, - { - orient: 'bottom', - label: { visible: true, inside: true }, - type: 'linear', - visible: false, - grid: { - visible: false - } - } - ], - extensionMark: [ - { - type: 'rule', - dataId: 'id0', - visible: true, - style: { - x: (datum, ctx, elements, dataView) => { - debugger; - return ctx.valueToX([datum.goal]); - }, - y: (datum, ctx, elements, dataView) => { - return ctx.valueToY([datum.label]) - 5; - }, - x1: (datum, ctx, elements, dataView) => { - return ctx.valueToX([datum.goal]); - }, - y1: (datum, ctx, elements, dataView) => { - return ctx.valueToY([datum.label]) + 5; - }, - stroke: 'red', - lineWidth: 2 - } - }, - { - type: 'symbol', - dataId: 'id0', - visible: true, - style: { - symbolType: 'triangleDown', - x: (datum, ctx, elements, dataView) => { - return ctx.valueToX([datum.goal]); - }, - y: (datum, ctx, elements, dataView) => { - return ctx.valueToY([datum.label]) - 10; - }, - size: 15, - scaleY: 0.5, - fill: 'red' - } + y: (datum, ctx, elements, dataView) => { + return ctx.valueToY([datum.label]) - 10; + }, + size: 15, + scaleY: 0.5, + fill: 'red' } - ] - } - }, - { - field: 'goal', - title: 'Target', - width: 'auto', - fieldFormat(rec) { - return rec.goal * 100 + '%'; - }, - style: { - color: 'red', - fontWeight: 'bold' - } - }, - { - field: 'startTime', - title: 'Start Time', - width: 'auto' - }, - { - field: 'endTime', - title: 'End Time', - width: 'auto' + } + ] + } + }, + { + field: 'goal', + title: 'Target', + width: 'auto', + fieldFormat(rec) { + return rec.goal * 100 + '%'; }, - { - field: 'master', - title: 'Master', - width: 'auto', - style: { - color: 'purple', - fontWeight: 'bold' - } + style: { + color: 'red', + fontWeight: 'bold' + } + }, + { + field: 'startTime', + title: 'Start Time', + width: 'auto' + }, + { + field: 'endTime', + title: 'End Time', + width: 'auto' + }, + { + field: 'master', + title: 'Master', + width: 'auto', + style: { + color: 'purple', + fontWeight: 'bold' } - ]; + } +]; - const option = { - records, - columns, - widthMode: 'standard', - hover: { - highlightMode: 'cross' - }, - defaultRowHeight: 60, - autoFillWidth:true, - }; -const tableInstance = new VTable.ListTable(document.getElementById(CONTAINER_ID),option); +const option = { + records, + columns, + widthMode: 'standard', + hover: { + highlightMode: 'cross' + }, + defaultRowHeight: 60, + autoFillWidth: true +}; +const tableInstance = new VTable.ListTable(document.getElementById(CONTAINER_ID), option); window['tableInstance'] = tableInstance; ``` diff --git a/packages/vtable/src/ts-types/base-table.ts b/packages/vtable/src/ts-types/base-table.ts index 527269e2e..7e6dc7f3f 100644 --- a/packages/vtable/src/ts-types/base-table.ts +++ b/packages/vtable/src/ts-types/base-table.ts @@ -317,7 +317,7 @@ export interface BaseTableConstructorOptions { /** hover交互配置 */ hover?: { /** hover交互响应模式:十字交叉 整列 整行 或者单个单元格 */ - highlightMode: 'cross' | 'column' | 'row' | 'cell'; + highlightMode?: 'cross' | 'column' | 'row' | 'cell'; /** 不响应鼠标hover交互 */ disableHover?: boolean; /** 单独设置表头不响应鼠标hover交互 */ @@ -328,7 +328,7 @@ export interface BaseTableConstructorOptions { /** 选择单元格交互配置 */ select?: { /** 高亮范围模式:十字交叉 整列 整行 或者单个单元格。默认`cell` */ - highlightMode: 'cross' | 'column' | 'row' | 'cell'; + highlightMode?: 'cross' | 'column' | 'row' | 'cell'; /** 点击表头单元格时连带body整行或整列选中 或仅选中当前单元格,默认或整行或整列选中*/ headerSelectMode?: 'inline' | 'cell'; /** 不响应鼠标select交互 */ From 6fe2943bd8bfcc124de143744d81fb407a442f11 Mon Sep 17 00:00:00 2001 From: fangsmile <892739385@qq.com> Date: Thu, 13 Jun 2024 19:32:54 +0800 Subject: [PATCH 2/7] docs: update changlog of rush --- ...t-beyond-table-occur-error_2024-06-13-11-32.json | 11 +++++++++++ packages/vtable/src/event/listener/container-dom.ts | 13 +++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-32.json diff --git a/common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-32.json b/common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-32.json new file mode 100644 index 000000000..5b8cb06d9 --- /dev/null +++ b/common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-32.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "fix: fix frozenColCount large than colCount error #1872\n\n", + "type": "none", + "packageName": "@visactor/vtable" + } + ], + "packageName": "@visactor/vtable", + "email": "892739385@qq.com" +} \ No newline at end of file diff --git a/packages/vtable/src/event/listener/container-dom.ts b/packages/vtable/src/event/listener/container-dom.ts index b2d0dab8f..7f095cc0c 100644 --- a/packages/vtable/src/event/listener/container-dom.ts +++ b/packages/vtable/src/event/listener/container-dom.ts @@ -649,14 +649,11 @@ export function bindContainerDomListener(eventManager: EventManager) { } } table.stateManager.updateInteractionState(InteractionState.grabing); - table.stateManager.updateSelectPos( - table.getTargetColAtConsiderRightFrozen(selectX, considerFrozenX).col, - table.getTargetRowAtConsiderBottomFrozen(selectY, considerFrozenY).row, - false, - false, - false, - true - ); + const targetCol = table.getTargetColAtConsiderRightFrozen(selectX, considerFrozenX); + const targetRow = table.getTargetRowAtConsiderBottomFrozen(selectY, considerFrozenY); + if (isValid(targetCol) && isValid(targetRow)) { + table.stateManager.updateSelectPos(targetCol.col, targetRow.row, false, false, false, true); + } }); } else if (table.eventManager.inertiaScroll.isInertiaScrolling()) { table.eventManager.inertiaScroll.endInertia(); From 40e7a21463588c4867bda9c15f4908110d22cbed Mon Sep 17 00:00:00 2001 From: fangsmile <892739385@qq.com> Date: Thu, 13 Jun 2024 19:33:48 +0800 Subject: [PATCH 3/7] docs: update changlog of rush --- ...ect-beyond-table-occur-error_2024-06-13-11-33.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-33.json diff --git a/common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-33.json b/common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-33.json new file mode 100644 index 000000000..cafdf6299 --- /dev/null +++ b/common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-33.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "docs: update changlog of rush\n\n", + "type": "none", + "packageName": "@visactor/vtable" + } + ], + "packageName": "@visactor/vtable", + "email": "892739385@qq.com" +} \ No newline at end of file From 49a12b334f44ff6e802706891d5cc127fbd56bba Mon Sep 17 00:00:00 2001 From: Rui-Sun Date: Thu, 13 Jun 2024 19:58:43 +0800 Subject: [PATCH 4/7] fix: optimize row height update when useOneRowHeightFillAll --- packages/vtable/src/ListTable.ts | 7 +++++++ packages/vtable/src/PivotChart.ts | 4 ++++ packages/vtable/src/PivotTable.ts | 4 ++++ packages/vtable/src/core/BaseTable.ts | 1 + packages/vtable/src/layout/pivot-header-layout.ts | 1 + packages/vtable/src/layout/row-height-map.ts | 4 ++++ .../vtable/src/scenegraph/layout/compute-row-height.ts | 4 ++++ packages/vtable/src/scenegraph/scenegraph.ts | 1 + packages/vtable/src/state/cell-move/index.ts | 1 + packages/vtable/src/state/sort/index.ts | 1 + packages/vtable/src/ts-types/base-table.ts | 3 +++ 11 files changed, 31 insertions(+) diff --git a/packages/vtable/src/ListTable.ts b/packages/vtable/src/ListTable.ts index 058e66b7c..1c213561d 100644 --- a/packages/vtable/src/ListTable.ts +++ b/packages/vtable/src/ListTable.ts @@ -88,6 +88,7 @@ export class ListTable extends BaseTable implements ListTableAPI { this.editorManager = new EditManeger(this); } this.refreshHeader(); + this.internalProps.useOneRowHeightFillAll = false; if (options.dataSource) { _setDataSource(this, options.dataSource); @@ -164,6 +165,7 @@ export class ListTable extends BaseTable implements ListTableAPI { this.internalProps.headerHelper.setTableColumnsEditor(); this._hasAutoImageColumn = undefined; this.refreshHeader(); + this.internalProps.useOneRowHeightFillAll = false; this.scenegraph.clearCells(); this.headerStyleCache = new Map(); this.bodyStyleCache = new Map(); @@ -190,6 +192,7 @@ export class ListTable extends BaseTable implements ListTableAPI { this.internalProps.columns = header; this.options.header = header; this.refreshHeader(); + this.internalProps.useOneRowHeightFillAll = false; //需要异步等待其他事情都完成后再绘制 this.renderAsync(); } @@ -408,6 +411,7 @@ export class ListTable extends BaseTable implements ListTableAPI { this.transpose = options.transpose ?? false; // 更新表头 this.refreshHeader(); + this.internalProps.useOneRowHeightFillAll = false; // this.hasMedia = null; // 避免重复绑定 // 清空目前数据 @@ -459,6 +463,7 @@ export class ListTable extends BaseTable implements ListTableAPI { pagination.perPageCount && (this.pagination.perPageCount = pagination.perPageCount || this.pagination.perPageCount); this.internalProps.layoutMap.clearCellRangeMap(); + this.internalProps.useOneRowHeightFillAll = false; // 清空单元格内容 this.scenegraph.clearCells(); //数据源缓存数据更新 @@ -796,6 +801,7 @@ export class ListTable extends BaseTable implements ListTableAPI { this.clearCellStyleCache(); this.internalProps.layoutMap.clearCellRangeMap(); + this.internalProps.useOneRowHeightFillAll = false; this.scenegraph.updateHierarchyIcon(col, row); this.scenegraph.updateRow(diffPositions.removeCellPositions, diffPositions.addCellPositions); if (checkHasChart) { @@ -891,6 +897,7 @@ export class ListTable extends BaseTable implements ListTableAPI { // clear cell range cache this.internalProps.layoutMap.clearCellRangeMap(); + this.internalProps.useOneRowHeightFillAll = false; this.scenegraph.sortCell(); } } diff --git a/packages/vtable/src/PivotChart.ts b/packages/vtable/src/PivotChart.ts index e6510485d..866484242 100644 --- a/packages/vtable/src/PivotChart.ts +++ b/packages/vtable/src/PivotChart.ts @@ -223,6 +223,7 @@ export class PivotChart extends BaseTable implements PivotChartAPI { this.internalProps.layoutMap = new PivotHeaderLayoutMap(this, this.dataset, columnDimensionTree, rowDimensionTree); this.refreshHeader(); + this.internalProps.useOneRowHeightFillAll = false; // this.internalProps.frozenColCount = this.options.frozenColCount || this.rowHeaderLevelCount; // 生成单元格场景树 this.scenegraph.createSceneGraph(); @@ -438,6 +439,7 @@ export class PivotChart extends BaseTable implements PivotChartAPI { // 更新表头 this.refreshHeader(); + this.internalProps.useOneRowHeightFillAll = false; // this.hasMedia = null; // 避免重复绑定 // 清空目前数据 @@ -760,6 +762,7 @@ export class PivotChart extends BaseTable implements PivotChartAPI { // 清空单元格内容 this.scenegraph.clearCells(); this.refreshHeader(); + this.internalProps.useOneRowHeightFillAll = false; // 生成单元格场景树 this.scenegraph.createSceneGraph(); this.render(); @@ -1387,6 +1390,7 @@ export class PivotChart extends BaseTable implements PivotChartAPI { // 更新表头 this.refreshHeader(); + this.internalProps.useOneRowHeightFillAll = false; // 清空单元格内容 this.scenegraph.clearCells(); diff --git a/packages/vtable/src/PivotTable.ts b/packages/vtable/src/PivotTable.ts index 5dd6de83a..b368a734b 100644 --- a/packages/vtable/src/PivotTable.ts +++ b/packages/vtable/src/PivotTable.ts @@ -198,6 +198,7 @@ export class PivotTable extends BaseTable implements PivotTableAPI { } this.refreshHeader(); + this.internalProps.useOneRowHeightFillAll = false; this.stateManager.initCheckedState(records); // this.internalProps.frozenColCount = this.options.frozenColCount || this.rowHeaderLevelCount; @@ -392,6 +393,7 @@ export class PivotTable extends BaseTable implements PivotTableAPI { // 更新表头 this.refreshHeader(); + this.internalProps.useOneRowHeightFillAll = false; // this.hasMedia = null; // 避免重复绑定 // 清空目前数据 @@ -983,6 +985,7 @@ export class PivotTable extends BaseTable implements PivotTableAPI { // 清空单元格内容 this.scenegraph.clearCells(); this.refreshHeader(); + this.internalProps.useOneRowHeightFillAll = false; // 生成单元格场景树 this.scenegraph.createSceneGraph(); this.render(); @@ -1479,6 +1482,7 @@ export class PivotTable extends BaseTable implements PivotTableAPI { // 更新表头 this.refreshHeader(); + this.internalProps.useOneRowHeightFillAll = false; // 清空单元格内容 this.scenegraph.clearCells(); diff --git a/packages/vtable/src/core/BaseTable.ts b/packages/vtable/src/core/BaseTable.ts index c1c081e55..723f98989 100644 --- a/packages/vtable/src/core/BaseTable.ts +++ b/packages/vtable/src/core/BaseTable.ts @@ -2333,6 +2333,7 @@ export abstract class BaseTable extends EventTarget implements BaseTableAPI { renderWithRecreateCells() { const oldHoverState = { col: this.stateManager.hover.cellPos.col, row: this.stateManager.hover.cellPos.row }; this.refreshHeader(); + this.internalProps.useOneRowHeightFillAll = false; this.scenegraph.clearCells(); this.clearCellStyleCache(); this.scenegraph.createSceneGraph(); diff --git a/packages/vtable/src/layout/pivot-header-layout.ts b/packages/vtable/src/layout/pivot-header-layout.ts index e736a80d8..286f037e9 100644 --- a/packages/vtable/src/layout/pivot-header-layout.ts +++ b/packages/vtable/src/layout/pivot-header-layout.ts @@ -2677,6 +2677,7 @@ export class PivotHeaderLayoutMap implements LayoutMapAPI { setPagination(pagination: IPagination): void { this.clearCellRangeMap(); + this._table.internalProps.useOneRowHeightFillAll = false; this.pagination = pagination; if ( diff --git a/packages/vtable/src/layout/row-height-map.ts b/packages/vtable/src/layout/row-height-map.ts index 9b5fb03c9..ff8fe142a 100644 --- a/packages/vtable/src/layout/row-height-map.ts +++ b/packages/vtable/src/layout/row-height-map.ts @@ -67,6 +67,10 @@ export class NumberRangeMap { put(position: number, newValue: number) { if (this.data.has(position)) { const oldValue = this.data.get(position); + + if (oldValue === newValue) { + return; + } this.data.set(position, newValue); const difference = newValue - oldValue; this.totalSum += difference; diff --git a/packages/vtable/src/scenegraph/layout/compute-row-height.ts b/packages/vtable/src/scenegraph/layout/compute-row-height.ts index 1f77dd187..afa7d8f05 100644 --- a/packages/vtable/src/scenegraph/layout/compute-row-height.ts +++ b/packages/vtable/src/scenegraph/layout/compute-row-height.ts @@ -502,6 +502,9 @@ function fillRowsHeight( table: BaseTableAPI, newHeights: number[] | undefined ) { + if (table.internalProps.useOneRowHeightFillAll) { + return; + } for (let row = startRow; row <= endRow; row++) { if (newHeights) { newHeights[row] = height; @@ -509,6 +512,7 @@ function fillRowsHeight( table._setRowHeight(row, height); } } + table.internalProps.useOneRowHeightFillAll = true; } /** diff --git a/packages/vtable/src/scenegraph/scenegraph.ts b/packages/vtable/src/scenegraph/scenegraph.ts index e2f376af7..83b151980 100644 --- a/packages/vtable/src/scenegraph/scenegraph.ts +++ b/packages/vtable/src/scenegraph/scenegraph.ts @@ -1802,6 +1802,7 @@ export class Scenegraph { updateRow(removeCells: CellAddress[], addCells: CellAddress[], updateCells: CellAddress[] = []) { this.table.internalProps.layoutMap.clearCellRangeMap(); + this.table.internalProps.useOneRowHeightFillAll = false; const addRows = deduplication(addCells.map(cell => cell.row)).sort((a, b) => a - b); const updateRows = deduplication(updateCells.map(cell => cell.row)).sort((a, b) => a - b); //这个值是后续为了autoFillHeight判断逻辑中用到的 判断是否更新前是未填满的情况 diff --git a/packages/vtable/src/state/cell-move/index.ts b/packages/vtable/src/state/cell-move/index.ts index 635c17baa..a8dac8bae 100644 --- a/packages/vtable/src/state/cell-move/index.ts +++ b/packages/vtable/src/state/cell-move/index.ts @@ -129,6 +129,7 @@ export function endMoveCol(state: StateManager) { // 更新状态 if (moveContext) { + state.table.internalProps.useOneRowHeightFillAll = false; state.table.internalProps.layoutMap.clearCellRangeMap(); const sourceMergeInfo = state.table.getCellRange(state.columnMove.colSource, state.columnMove.rowSource); const targetMergeInfo = state.table.getCellRange(state.columnMove.colTarget, state.columnMove.rowTarget); diff --git a/packages/vtable/src/state/sort/index.ts b/packages/vtable/src/state/sort/index.ts index 149e1f697..16d3f6c28 100644 --- a/packages/vtable/src/state/sort/index.ts +++ b/packages/vtable/src/state/sort/index.ts @@ -67,6 +67,7 @@ export function dealSort(col: number, row: number, table: ListTableAPI, event: E } // clear cell range cache + table.internalProps.useOneRowHeightFillAll = false; table.internalProps.layoutMap.clearCellRangeMap(); table.scenegraph.sortCell(); diff --git a/packages/vtable/src/ts-types/base-table.ts b/packages/vtable/src/ts-types/base-table.ts index 7e6dc7f3f..f2a4474e7 100644 --- a/packages/vtable/src/ts-types/base-table.ts +++ b/packages/vtable/src/ts-types/base-table.ts @@ -251,6 +251,9 @@ export interface IBaseTableProtected { * 设置为 'none' 时, 表格滚动到顶部/底部时, 不再触发父容器滚动 * */ overscrollBehavior?: 'auto' | 'none'; + + // 已使用一行的高度填充所有行 + useOneRowHeightFillAll?: boolean; } export interface BaseTableConstructorOptions { // /** 指定表格的行数 */ From 2bca1f208c143f62441443d18af498a39aa3f019 Mon Sep 17 00:00:00 2001 From: Rui-Sun Date: Thu, 13 Jun 2024 20:22:31 +0800 Subject: [PATCH 5/7] fix: add useOneRowHeightFillAll clear in recalculateRowHeights() --- .../fix-row-height-update-pref_2024-06-13-12-21.json | 10 ++++++++++ packages/vtable/src/scenegraph/scenegraph.ts | 1 + 2 files changed, 11 insertions(+) create mode 100644 common/changes/@visactor/vtable/fix-row-height-update-pref_2024-06-13-12-21.json diff --git a/common/changes/@visactor/vtable/fix-row-height-update-pref_2024-06-13-12-21.json b/common/changes/@visactor/vtable/fix-row-height-update-pref_2024-06-13-12-21.json new file mode 100644 index 000000000..5427c1ac8 --- /dev/null +++ b/common/changes/@visactor/vtable/fix-row-height-update-pref_2024-06-13-12-21.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@visactor/vtable", + "comment": "fix: optimize row height update when useOneRowHeightFillAll", + "type": "none" + } + ], + "packageName": "@visactor/vtable" +} \ No newline at end of file diff --git a/packages/vtable/src/scenegraph/scenegraph.ts b/packages/vtable/src/scenegraph/scenegraph.ts index 83b151980..caabf5c01 100644 --- a/packages/vtable/src/scenegraph/scenegraph.ts +++ b/packages/vtable/src/scenegraph/scenegraph.ts @@ -809,6 +809,7 @@ export class Scenegraph { } recalculateRowHeights() { + this.table.internalProps.useOneRowHeightFillAll = false; computeRowsHeight(this.table, 0, this.table.rowCount - 1, true, true); } From 6ca6b6d76e07a1ac4f50e66c19ced9ffb5e7a64f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 13 Jun 2024 12:38:53 +0000 Subject: [PATCH 6/7] build: prelease version 1.3.1 --- ...nd-table-occur-error_2024-06-13-11-32.json | 11 ---------- ...nd-table-occur-error_2024-06-13-11-33.json | 11 ---------- ...rge-cell-size-update_2024-06-13-04-41.json | 10 --------- ...w-height-update-pref_2024-06-13-12-21.json | 10 --------- common/config/rush/version-policies.json | 2 +- packages/openinula-vtable/package.json | 2 +- packages/react-vtable/package.json | 2 +- packages/vtable-editors/package.json | 2 +- packages/vtable-export/package.json | 2 +- packages/vtable-search/package.json | 2 +- packages/vtable/CHANGELOG.json | 21 +++++++++++++++++++ packages/vtable/CHANGELOG.md | 16 +++++++++++++- packages/vtable/package.json | 2 +- 13 files changed, 43 insertions(+), 50 deletions(-) delete mode 100644 common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-32.json delete mode 100644 common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-33.json delete mode 100644 common/changes/@visactor/vtable/fix-merge-cell-size-update_2024-06-13-04-41.json delete mode 100644 common/changes/@visactor/vtable/fix-row-height-update-pref_2024-06-13-12-21.json diff --git a/common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-32.json b/common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-32.json deleted file mode 100644 index 5b8cb06d9..000000000 --- a/common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-32.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "changes": [ - { - "comment": "fix: fix frozenColCount large than colCount error #1872\n\n", - "type": "none", - "packageName": "@visactor/vtable" - } - ], - "packageName": "@visactor/vtable", - "email": "892739385@qq.com" -} \ No newline at end of file diff --git a/common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-33.json b/common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-33.json deleted file mode 100644 index cafdf6299..000000000 --- a/common/changes/@visactor/vtable/1918-bug-drag-select-beyond-table-occur-error_2024-06-13-11-33.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "changes": [ - { - "comment": "docs: update changlog of rush\n\n", - "type": "none", - "packageName": "@visactor/vtable" - } - ], - "packageName": "@visactor/vtable", - "email": "892739385@qq.com" -} \ No newline at end of file diff --git a/common/changes/@visactor/vtable/fix-merge-cell-size-update_2024-06-13-04-41.json b/common/changes/@visactor/vtable/fix-merge-cell-size-update_2024-06-13-04-41.json deleted file mode 100644 index 9238b9ffd..000000000 --- a/common/changes/@visactor/vtable/fix-merge-cell-size-update_2024-06-13-04-41.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@visactor/vtable", - "comment": "fix: fix merge cell size update #1869", - "type": "none" - } - ], - "packageName": "@visactor/vtable" -} \ No newline at end of file diff --git a/common/changes/@visactor/vtable/fix-row-height-update-pref_2024-06-13-12-21.json b/common/changes/@visactor/vtable/fix-row-height-update-pref_2024-06-13-12-21.json deleted file mode 100644 index 5427c1ac8..000000000 --- a/common/changes/@visactor/vtable/fix-row-height-update-pref_2024-06-13-12-21.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@visactor/vtable", - "comment": "fix: optimize row height update when useOneRowHeightFillAll", - "type": "none" - } - ], - "packageName": "@visactor/vtable" -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 301b7ab64..9a44c9ac4 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -1 +1 @@ -[{"definitionName":"lockStepVersion","policyName":"vtableMain","version":"1.3.0","mainProject":"@visactor/vtable","nextBump":"minor"}] +[{"definitionName":"lockStepVersion","policyName":"vtableMain","version":"1.3.1","mainProject":"@visactor/vtable","nextBump":"patch"}] diff --git a/packages/openinula-vtable/package.json b/packages/openinula-vtable/package.json index 6a2f06c27..392432517 100644 --- a/packages/openinula-vtable/package.json +++ b/packages/openinula-vtable/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/openinula-vtable", - "version": "1.3.0", + "version": "1.3.1", "description": "The openinula version of VTable", "keywords": [ "openinula", diff --git a/packages/react-vtable/package.json b/packages/react-vtable/package.json index 2b9ff5e2e..7ca7478ab 100644 --- a/packages/react-vtable/package.json +++ b/packages/react-vtable/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/react-vtable", - "version": "1.3.0", + "version": "1.3.1", "description": "The react version of VTable", "keywords": [ "react", diff --git a/packages/vtable-editors/package.json b/packages/vtable-editors/package.json index e5e811ca9..24b9475f9 100644 --- a/packages/vtable-editors/package.json +++ b/packages/vtable-editors/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vtable-editors", - "version": "1.3.0", + "version": "1.3.1", "description": "", "sideEffects": false, "main": "cjs/index.js", diff --git a/packages/vtable-export/package.json b/packages/vtable-export/package.json index b3603e528..f2f9258e8 100644 --- a/packages/vtable-export/package.json +++ b/packages/vtable-export/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vtable-export", - "version": "1.3.0", + "version": "1.3.1", "description": "The export util of VTable", "author": { "name": "VisActor", diff --git a/packages/vtable-search/package.json b/packages/vtable-search/package.json index fdbef1747..7f4b6764c 100644 --- a/packages/vtable-search/package.json +++ b/packages/vtable-search/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vtable-search", - "version": "1.3.0", + "version": "1.3.1", "description": "The search util of VTable", "author": { "name": "VisActor", diff --git a/packages/vtable/CHANGELOG.json b/packages/vtable/CHANGELOG.json index d389cedb2..891471756 100644 --- a/packages/vtable/CHANGELOG.json +++ b/packages/vtable/CHANGELOG.json @@ -1,6 +1,27 @@ { "name": "@visactor/vtable", "entries": [ + { + "version": "1.3.1", + "tag": "@visactor/vtable_v1.3.1", + "date": "Thu, 13 Jun 2024 12:35:49 GMT", + "comments": { + "none": [ + { + "comment": "fix: fix frozenColCount large than colCount error #1872\n\n" + }, + { + "comment": "docs: update changlog of rush\n\n" + }, + { + "comment": "fix: fix merge cell size update #1869" + }, + { + "comment": "fix: optimize row height update when useOneRowHeightFillAll" + } + ] + } + }, { "version": "1.3.0", "tag": "@visactor/vtable_v1.3.0", diff --git a/packages/vtable/CHANGELOG.md b/packages/vtable/CHANGELOG.md index 73f2fbac6..5300b57a4 100644 --- a/packages/vtable/CHANGELOG.md +++ b/packages/vtable/CHANGELOG.md @@ -1,6 +1,20 @@ # Change Log - @visactor/vtable -This log was last generated on Wed, 12 Jun 2024 12:30:16 GMT and should not be manually modified. +This log was last generated on Thu, 13 Jun 2024 12:35:49 GMT and should not be manually modified. + +## 1.3.1 +Thu, 13 Jun 2024 12:35:49 GMT + +### Updates + +- fix: fix frozenColCount large than colCount error #1872 + + +- docs: update changlog of rush + + +- fix: fix merge cell size update #1869 +- fix: optimize row height update when useOneRowHeightFillAll ## 1.3.0 Wed, 12 Jun 2024 12:30:16 GMT diff --git a/packages/vtable/package.json b/packages/vtable/package.json index ff28c0145..3e8667bda 100644 --- a/packages/vtable/package.json +++ b/packages/vtable/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vtable", - "version": "1.3.0", + "version": "1.3.1", "description": "canvas table width high performance", "keywords": [ "grid", From be5b60f6d188c0097e89f4f8cbaefe457e3a2b67 Mon Sep 17 00:00:00 2001 From: fangsmile Date: Fri, 14 Jun 2024 03:36:06 +0000 Subject: [PATCH 7/7] docs: generate changelog of release v1.3.1 --- docs/assets/changelog/en/release.md | 19 +++++++++++++++++++ docs/assets/changelog/zh/release.md | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/docs/assets/changelog/en/release.md b/docs/assets/changelog/en/release.md index 85986dc6c..2d2ec6d11 100644 --- a/docs/assets/changelog/en/release.md +++ b/docs/assets/changelog/en/release.md @@ -1,3 +1,22 @@ +# v1.3.1 + +2024-06-14 + + +**🐛 Bug fix** + +- **@visactor/vtable**: fix frozenColCount large than colCount error [#1872](https://github.com/VisActor/VTable/issues/1872) +- **@visactor/vtable**: fix merge cell size update [#1869](https://github.com/VisActor/VTable/issues/1869) +- **@visactor/vtable**: optimize row height update when useOneRowHeightFillAll + +**📖 Site / documentation update** + +- **@visactor/vtable**: update changlog of rush + + + +[more detail about v1.3.1](https://github.com/VisActor/VTable/releases/tag/v1.3.1) + # v1.3.0 2024-06-12 diff --git a/docs/assets/changelog/zh/release.md b/docs/assets/changelog/zh/release.md index a9426a964..9914c9c63 100644 --- a/docs/assets/changelog/zh/release.md +++ b/docs/assets/changelog/zh/release.md @@ -1,3 +1,22 @@ +# v1.3.1 + +2024-06-14 + + +**🐛 功能修复** + +- **@visactor/vtable**: fix frozenColCount large than colCount error [#1872](https://github.com/VisActor/VTable/issues/1872) +- **@visactor/vtable**: fix merge cell size update [#1869](https://github.com/VisActor/VTable/issues/1869) +- **@visactor/vtable**: optimize row height update when useOneRowHeightFillAll + +**📖 文档更新** + +- **@visactor/vtable**: update changlog of rush + + + +[更多详情请查看 v1.3.1](https://github.com/VisActor/VTable/releases/tag/v1.3.1) + # v1.3.0 2024-06-12