Skip to content

Commit 367aead

Browse files
authored
Merge pull request #4949 from VisActor/4935-bug-dimensionValue-null-indicatorValue
4935 bug dimension value null indicator value
2 parents 332efaf + b49359d commit 367aead

10 files changed

Lines changed: 68 additions & 74 deletions

File tree

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"changes": [
3+
{
4+
"comment": "fix: when dimension value is empty string should different from no dimension value #4935\n\n",
5+
"type": "none",
6+
"packageName": "@visactor/vtable"
7+
}
8+
],
9+
"packageName": "@visactor/vtable",
10+
"email": "892739385@qq.com"
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"changes": [
3+
{
4+
"comment": "fix: when no columnTree to adjust columnWidthConfig #4935\n\n",
5+
"type": "none",
6+
"packageName": "@visactor/vtable"
7+
}
8+
],
9+
"packageName": "@visactor/vtable",
10+
"email": "892739385@qq.com"
11+
}

common/config/rush/pnpm-lock.yaml

Lines changed: 22 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/assets/option/en/common/pivot-corner.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,6 @@ Header cell style, the configuration items vary slightly depending on the header
3333
- For headerType 'text', refer to [headerStyle](../option/PivotTable-columns-text#headerStyle.bgColor)
3434
- For headerType 'link', refer to [headerStyle](../option/PivotTable-columns-link#headerStyle.bgColor)
3535
- For headerType 'image', refer to [headerStyle](../option/PivotTable-columns-image#headerStyle.bgColor)
36+
37+
${prefix} forceShowHeader(boolean)
38+
Force display of corner header. When there are no dimensions in the row or column direction, the corner header will not be displayed by default. However, in some scenarios, it is still necessary to display the dimension name in the corner header, please configure this field.

docs/assets/option/zh/common/pivot-corner.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,6 @@ ${prefix} headerStyle(TODO)
3333
- headerType 为'text',对应[headerStyle](../option/PivotTable-columns-text#headerStyle.bgColor)
3434
- headerType 为'link',对应[headerStyle](../option/PivotTable-columns-link#headerStyle.bgColor)
3535
- headerType 为'image',对应[headerStyle](../option/PivotTable-columns-image#headerStyle.bgColor)
36+
37+
${prefix} forceShowHeader(boolean)
38+
强制显示角头。当row或者column方向上没有维度的时候 本身是不会显示角表头的 但是某些场景下仍然需显示维度名称在角头,请配置这个字段。

packages/vtable-sheet/src/components/vtable-sheet.ts

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,49 +1117,4 @@ export default class VTableSheet {
11171117
// this.rootElement.style.height = `${this.getOptions().height || containerHeight}px`;
11181118
this.getActiveSheet()?.resize();
11191119
}
1120-
1121-
/**
1122-
* 若所选范围包含当前正在编辑的单元格,自动排除该单元格以避免 #CYCLE!
1123-
*/
1124-
excludeEditCellFromSelection(
1125-
range: { startRow: number; startCol: number; endRow: number; endCol: number },
1126-
editRow: number,
1127-
editCol: number
1128-
) {
1129-
const r = { ...range };
1130-
const withinRow = r.startRow <= editRow && editRow <= r.endRow;
1131-
const withinCol = r.startCol <= editCol && editCol <= r.endCol;
1132-
if (!withinRow || !withinCol) {
1133-
return r;
1134-
}
1135-
1136-
const rowSpan = r.endRow - r.startRow;
1137-
const colSpan = r.endCol - r.startCol;
1138-
1139-
// 如果选择范围就是编辑单元格本身,返回空范围(表示无效选择)
1140-
if (rowSpan === 0 && colSpan === 0 && r.startRow === editRow && r.startCol === editCol) {
1141-
return { startRow: -1, startCol: -1, endRow: -1, endCol: -1 };
1142-
}
1143-
1144-
if (rowSpan >= colSpan) {
1145-
// 优先在行方向上排除编辑单元格
1146-
if (editRow === r.startRow && r.startRow < r.endRow) {
1147-
r.startRow += 1;
1148-
} else if (editRow === r.endRow && r.startRow < r.endRow) {
1149-
r.endRow -= 1;
1150-
} else if (r.startRow < r.endRow) {
1151-
r.startRow += 1;
1152-
} // 中间,默认从起点缩一格
1153-
} else {
1154-
// 优先在列方向上排除编辑单元格
1155-
if (editCol === r.startCol && r.startCol < r.endCol) {
1156-
r.startCol += 1;
1157-
} else if (editCol === r.endCol && r.startCol < r.endCol) {
1158-
r.endCol -= 1;
1159-
} else if (r.startCol < r.endCol) {
1160-
r.startCol += 1;
1161-
}
1162-
}
1163-
return r;
1164-
}
11651120
}

packages/vtable/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@
5353
},
5454
"dependencies": {
5555
"@visactor/vtable-editors": "workspace:*",
56-
"@visactor/vrender-core": "~1.0.39",
57-
"@visactor/vrender-kits": "~1.0.39",
58-
"@visactor/vrender-components": "~1.0.39",
59-
"@visactor/vrender-animate": "~1.0.39",
56+
"@visactor/vrender-core": "~1.0.40",
57+
"@visactor/vrender-kits": "~1.0.40",
58+
"@visactor/vrender-components": "~1.0.40",
59+
"@visactor/vrender-animate": "~1.0.40",
6060
"@visactor/vutils": "~1.0.17",
6161
"@visactor/vscale": "~1.0.17",
6262
"@visactor/vdataset": "~1.0.17",
@@ -133,4 +133,4 @@
133133
"url": "https://github.com/VisActor/VTable.git",
134134
"directory": "packages/vtable"
135135
}
136-
}
136+
}

packages/vtable/src/layout/pivot-header-layout.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3518,8 +3518,8 @@ export class PivotHeaderLayoutMap implements LayoutMapAPI {
35183518
(this.rowDimensionKeys.indexOf(this.indicatorDimensionKey) >= 0 && path.indicatorKey)
35193519
);
35203520
} else {
3521-
colHeaderPaths = dimensionPaths.colHeaderPaths;
3522-
rowHeaderPaths = dimensionPaths.rowHeaderPaths;
3521+
colHeaderPaths = dimensionPaths?.colHeaderPaths;
3522+
rowHeaderPaths = dimensionPaths?.rowHeaderPaths;
35233523
if (dimensionPaths?.cellLocation === 'body' && this._table.isPivotTable()) {
35243524
forceBody = true;
35253525
}

packages/vtable/src/scenegraph/layout/compute-col-width.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -872,6 +872,14 @@ function _parseColumnWidthConfigForPivotTable(
872872
table._setColWidth(cell.col, width);
873873
table.internalProps._widthResizedColMap.add(cell.col); // add resize tag
874874
}
875+
} else if (
876+
(!dimensions || dimensions.length === 0) &&
877+
(table.internalProps.layoutMap.columnTree?.length ?? 0) === 0
878+
) {
879+
if (!table.internalProps._widthResizedColMap.has(table.rowHeaderLevelCount)) {
880+
table._setColWidth(table.rowHeaderLevelCount, width);
881+
table.internalProps._widthResizedColMap.add(table.rowHeaderLevelCount); // add resize tag
882+
}
875883
}
876884
}
877885
}

packages/vtable/src/tools/join.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
export function join(strArr: string[], joinChar: string) {
22
// return strArr.join(joinChar);
3+
if (strArr.length === 0) {
4+
return undefined;
5+
}
36
let str = '';
47
for (let i = 0; i < strArr.length; i++) {
58
str += strArr[i];

0 commit comments

Comments
 (0)