Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"changes": [
{
"comment": "feat: listTable added tiggerEvent parameter to changeCellValue\n\n",
"type": "none",
"packageName": "@visactor/vtable"
}
],
"packageName": "@visactor/vtable",
"email": "blinyo@163.com"
}
4 changes: 2 additions & 2 deletions docs/assets/api/en/methods.md
Original file line number Diff line number Diff line change
Expand Up @@ -1060,7 +1060,7 @@ Change the value of a cell:
```

/\*_ Set the value of the cell. Note that it corresponds to the original value of the source data, and the vtable instance records will be modified accordingly _/
changeCellValue: (col: number, row: number, value: string | number | null, workOnEditableCell = false) => void;
changeCellValue: (col: number, row: number, value: string | number | null, workOnEditableCell = false, triggerEvent = true) => void;

```

Expand All @@ -1077,7 +1077,7 @@ Change the value of cells in batches:
- @param row The starting row number of pasted data
- @param values Data array of multiple cells
\*/
changeCellValues(startCol: number, startRow: number, values: string[][])
changeCellValues(startCol: number, startRow: number, values: string[][], workOnEditableCell = false, triggerEvent=true) => void;

```

Expand Down
14 changes: 11 additions & 3 deletions docs/assets/api/zh/methods.md
Original file line number Diff line number Diff line change
Expand Up @@ -956,8 +956,15 @@ use case: 对于透视图的场景上,点击图例项后 更新过滤规则
更改单元格的 value 值:

```
/** 设置单元格的value值,注意对应的是源数据的原始值,vtable实例records会做对应修改 */
changeCellValue: (col: number, row: number, value: string | number | null, workOnEditableCell = false) => void;
/**
* 设置单元格的value值,注意对应的是源数据的原始值,vtable实例records会做对应修改
* @param col 单元格的起始列号
* @param row 单元格的起始行号
* @param value 更改后的值
* @param workOnEditableCell 是否仅更改可编辑单元格
* @param triggerEvent 是否在值发生改变的时候触发change_cell_value事件
*/
changeCellValue: (col: number, row: number, value: string | number | null, workOnEditableCell = false, triggerEvent = true) => void;
```

## changeCellValues(Function)
Expand All @@ -971,8 +978,9 @@ use case: 对于透视图的场景上,点击图例项后 更新过滤规则
* @param row 粘贴数据的起始行号
* @param values 多个单元格的数据数组
* @param workOnEditableCell 是否仅更改可编辑单元格
* @param triggerEvent 是否在值发生改变的时候触发change_cell_value事件
*/
changeCellValues(startCol: number, startRow: number, values: string[][], workOnEditableCell = false)
changeCellValues(startCol: number, startRow: number, values: string[][], workOnEditableCell = false, triggerEvent=true) => void;
```

## getEditor(Function)
Expand Down
22 changes: 18 additions & 4 deletions packages/vtable/src/ListTable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1326,19 +1326,33 @@ export class ListTable extends BaseTable implements ListTableAPI {
* @param row
* @param value 更改后的值
* @param workOnEditableCell 限制只能更改配置了编辑器的单元格值。快捷键paste这里配置的true,限制只能修改可编辑单元格值
* @param triggerEvent 是否在值发生改变的时候触发change_cell_value事件
*/
changeCellValue(col: number, row: number, value: string | number | null, workOnEditableCell = false) {
Comment thread
fangsmile marked this conversation as resolved.
return listTableChangeCellValue(col, row, value, workOnEditableCell, this);
changeCellValue(
Comment thread
fangsmile marked this conversation as resolved.
col: number,
row: number,
value: string | number | null,
workOnEditableCell = false,
triggerEvent = true
) {
return listTableChangeCellValue(col, row, value, workOnEditableCell, triggerEvent, this);
}
/**
* 批量更新多个单元格的数据
* @param col 粘贴数据的起始列号
* @param row 粘贴数据的起始行号
* @param values 多个单元格的数据数组
* @param workOnEditableCell 是否仅更改可编辑单元格
* @param triggerEvent 是否在值发生改变的时候触发change_cell_value事件
*/
changeCellValues(startCol: number, startRow: number, values: (string | number)[][], workOnEditableCell = false) {
return listTableChangeCellValues(startCol, startRow, values, workOnEditableCell, this);
changeCellValues(
startCol: number,
startRow: number,
values: (string | number)[][],
workOnEditableCell = false,
triggerEvent = true
) {
return listTableChangeCellValues(startCol, startRow, values, workOnEditableCell, triggerEvent, this);
}
/**
* 添加数据 单条数据
Expand Down
8 changes: 6 additions & 2 deletions packages/vtable/src/core/record-helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,14 @@ import { TABLE_EVENT_TYPE } from './TABLE_EVENT_TYPE';
* @param row
* @param value 更改后的值
* @param workOnEditableCell 限制只能更改配置了编辑器的单元格值。快捷键paste这里配置的true,限制只能修改可编辑单元格值
* @param triggerEvent 是否在值发生改变的时候触发change_cell_value事件
*/
export function listTableChangeCellValue(
col: number,
row: number,
value: string | number | null,
workOnEditableCell: boolean,
triggerEvent: boolean,
table: ListTable
) {
if ((workOnEditableCell && table.isHasEditorDefine(col, row)) || workOnEditableCell === false) {
Expand Down Expand Up @@ -91,7 +93,7 @@ export function listTableChangeCellValue(
table.scenegraph.updateRowHeight(row, newHeight - oldHeight);
}
const changedValue = table.getCellOriginValue(col, row);
if (oldValue !== changedValue) {
if (oldValue !== changedValue && triggerEvent) {
table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {
col,
row,
Expand All @@ -109,12 +111,14 @@ export function listTableChangeCellValue(
* @param row 粘贴数据的起始行号
* @param values 多个单元格的数据数组
* @param workOnEditableCell 是否仅更改可编辑单元格
* @param triggerEvent 是否在值发生改变的时候触发change_cell_value事件
*/
export function listTableChangeCellValues(
startCol: number,
startRow: number,
values: (string | number)[][],
workOnEditableCell: boolean,
triggerEvent: boolean,
table: ListTable
) {
let pasteColEnd = startCol;
Expand Down Expand Up @@ -193,7 +197,7 @@ export function listTableChangeCellValues(
table.dataSource.changeFieldValue(value, recordIndex, field, startCol + j, startRow + i, table);
}
const changedValue = table.getCellOriginValue(startCol + j, startRow + i);
if (oldValue !== changedValue) {
if (oldValue !== changedValue && triggerEvent) {
table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {
col: startCol + j,
row: startRow + i,
Expand Down