Skip to content

Commit f057dd6

Browse files
authored
feat(abc:st): add arrayProcessMethod in setRow (#1853)
1 parent 2547da9 commit f057dd6

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

packages/abc/st/index.en-US.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ When an exception is thrown when parsing column data, *INVALID DATA* will be for
104104
| `reset(extraParams?: any, options?: STLoadOptions)` | Reset data and `pi` to `1`, including single multi-select, sort, filter status (Covered default state) |
105105
| `addRow(data: STData | STData[], options?: { index?: number })` | Add a rows in the table |
106106
| `removeRow(data: STData | STData[] | number)` | Remove a row in the table |
107-
| `setRow(index: number | STData, item: STData, options?: { refreshSchema?: boolean; emitReload?: boolean })` | Sets the row value for the `index` in the table |
107+
| `setRow(index: number | STData, item: STData, options?: { refreshSchema?: boolean; emitReload?: boolean; arrayProcessMethod?: boolean })` | Sets the row value for the `index` in the table |
108108
| `pureItem(itemOrIndex: STData | number)` | Return pure data, `st` internally maintains a set of data for caching, this part of data may affect the backend |
109109
| `clear(cleanStatus = true)` | Clear all data |
110110
| `clearStatus()` | Clean all status (like this: single multi-select, sort, filter status) |

packages/abc/st/index.zh-CN.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ module: import { STModule } from '@delon/abc/st';
104104
| `reset(extraParams?: any, options?: STLoadOptions)` | 重置且重新设置 `pi``1`,包含单多选、排序、过滤状态(同默认状态一并清除) |
105105
| `addRow(data: STData | STData[], options?: { index?: number })` | 添加行 |
106106
| `removeRow(data: STData | STData[] | number)` | 移除行 |
107-
| `setRow(index: number | STData, item: STData, options?: { refreshSchema?: boolean; emitReload?: boolean })` | 修改行数据,支持部分字段更新 |
107+
| `setRow(index: number | STData, item: STData, options?: { refreshSchema?: boolean; emitReload?: boolean; arrayProcessMethod?: boolean })` | 修改行数据,支持部分字段更新 |
108108
| `pureItem(itemOrIndex: STData | number)` | 返回纯净数据,`st` 内部会维护一组用于缓存的数据,这部分数据可能会影响后端 |
109109
| `clear(cleanStatus = true)` | 清空所有数据 |
110110
| `clearStatus()` | 清空所有状态(包含单多选、排序、过滤状态) |

packages/abc/st/st.component.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -604,12 +604,26 @@ export class STComponent implements AfterViewInit, OnChanges {
604604
* this.st.setRow(item, { price: 100 })
605605
* ```
606606
*/
607-
setRow(index: number | STData, item: STData, options?: { refreshSchema?: boolean; emitReload?: boolean }): this {
607+
setRow(
608+
index: number | STData,
609+
item: STData,
610+
options?: {
611+
refreshSchema?: boolean;
612+
emitReload?: boolean;
613+
/**
614+
*
615+
* @param arrayProcessMethod 数组处理方式
616+
* - `true` 表示替换新值,不管新值为哪种类型
617+
* - `false` 表示会合并整个数组(将旧数据与新数据合并成新数组)
618+
*/
619+
arrayProcessMethod?: boolean;
620+
}
621+
): this {
608622
options = { refreshSchema: false, emitReload: false, ...options };
609623
if (typeof index !== 'number') {
610624
index = this._data.indexOf(index);
611625
}
612-
this._data[index] = deepMergeKey(this._data[index], false, item);
626+
this._data[index] = deepMergeKey(this._data[index], options?.arrayProcessMethod ?? false, item);
613627
this.optimizeData();
614628
if (options.refreshSchema) {
615629
this.resetColumns({ emitReload: options.emitReload });

0 commit comments

Comments
 (0)