@nokecy/qc-ui 1.1.13 → 1.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +85 -43
- package/dist/cjs/ag-grid-plus/setting/QuerySchemeManager.js +12 -14
- package/dist/cjs/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +8 -8
- package/dist/cjs/array-table/index.js +41 -13
- package/dist/cjs/array-table/utils.js +25 -9
- package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +85 -43
- package/dist/esm/ag-grid-plus/setting/QuerySchemeManager.js +12 -14
- package/dist/esm/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +8 -8
- package/dist/esm/array-table/index.js +41 -13
- package/dist/esm/array-table/utils.js +24 -8
- package/dist/esm/standardFormDialog/withStandardForm.d.ts +2 -2
- package/dist/umd/qc-ui.min.js +1 -1
- package/package.json +1 -1
|
@@ -288,10 +288,10 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
288
288
|
|
|
289
289
|
/**
|
|
290
290
|
* 保存列配置
|
|
291
|
-
*
|
|
291
|
+
* 优化逻辑:先保存配置到存储,再直接应用到 Grid,不依赖 handleLoadScheme
|
|
292
292
|
*/
|
|
293
293
|
var handleSaveColumns = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
294
|
-
var values, flatConfig, configToSave, invalidColumns, filterModel,
|
|
294
|
+
var values, flatConfig, configToSave, invalidColumns, filterModel, savedScheme, defaultScheme, hasGroups, gridColumnDefs, columnState;
|
|
295
295
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
296
296
|
while (1) switch (_context2.prev = _context2.next) {
|
|
297
297
|
case 0:
|
|
@@ -326,16 +326,17 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
326
326
|
_context2.next = 17;
|
|
327
327
|
break;
|
|
328
328
|
}
|
|
329
|
-
|
|
330
|
-
|
|
329
|
+
// 如果有激活的方案,更新该方案
|
|
330
|
+
savedScheme = _objectSpread(_objectSpread({}, currentScheme), {}, {
|
|
331
331
|
columnConfig: configToSave,
|
|
332
|
-
filterModel: filterModel
|
|
333
|
-
updatedAt
|
|
334
|
-
})
|
|
335
|
-
|
|
336
|
-
|
|
332
|
+
filterModel: filterModel
|
|
333
|
+
// updatedAt 由存储适配器自动生成
|
|
334
|
+
});
|
|
335
|
+
_context2.next = 14;
|
|
336
|
+
return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, savedScheme);
|
|
337
|
+
case 14:
|
|
337
338
|
message.success('列配置已保存到方案');
|
|
338
|
-
_context2.next =
|
|
339
|
+
_context2.next = 29;
|
|
339
340
|
break;
|
|
340
341
|
case 17:
|
|
341
342
|
// 如果没有激活的方案,自动创建或更新默认方案
|
|
@@ -346,52 +347,96 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
346
347
|
_context2.next = 25;
|
|
347
348
|
break;
|
|
348
349
|
}
|
|
349
|
-
|
|
350
|
-
|
|
350
|
+
// 更新默认方案
|
|
351
|
+
savedScheme = _objectSpread(_objectSpread({}, defaultScheme), {}, {
|
|
351
352
|
columnConfig: configToSave,
|
|
352
|
-
filterModel: filterModel
|
|
353
|
-
updatedAt
|
|
354
|
-
})
|
|
355
|
-
|
|
356
|
-
|
|
353
|
+
filterModel: filterModel
|
|
354
|
+
// updatedAt 由存储适配器自动生成
|
|
355
|
+
});
|
|
356
|
+
_context2.next = 22;
|
|
357
|
+
return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, savedScheme);
|
|
358
|
+
case 22:
|
|
357
359
|
message.success('列配置已保存到默认方案');
|
|
358
|
-
_context2.next =
|
|
360
|
+
_context2.next = 29;
|
|
359
361
|
break;
|
|
360
362
|
case 25:
|
|
361
363
|
// 创建新的默认方案
|
|
362
|
-
|
|
364
|
+
savedScheme = {
|
|
363
365
|
id: uuidv4(),
|
|
364
366
|
name: '默认配置',
|
|
365
367
|
description: '自动创建的默认列配置',
|
|
366
368
|
columnConfig: configToSave,
|
|
367
369
|
filterModel: filterModel,
|
|
368
370
|
isDefault: true,
|
|
369
|
-
isSystem: false
|
|
370
|
-
createdAt
|
|
371
|
-
updatedAt: Date.now()
|
|
371
|
+
isSystem: false
|
|
372
|
+
// createdAt 和 updatedAt 由存储适配器自动生成
|
|
372
373
|
};
|
|
373
374
|
_context2.next = 28;
|
|
374
|
-
return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey,
|
|
375
|
+
return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, savedScheme);
|
|
375
376
|
case 28:
|
|
376
|
-
schemeIdToLoad = newScheme.id;
|
|
377
377
|
message.success('已创建并保存到默认方案');
|
|
378
|
-
case
|
|
379
|
-
_context2.next =
|
|
380
|
-
return
|
|
381
|
-
|
|
382
|
-
|
|
378
|
+
case 29:
|
|
379
|
+
_context2.next = 31;
|
|
380
|
+
return new Promise(function (resolve) {
|
|
381
|
+
return setTimeout(resolve, 100);
|
|
382
|
+
});
|
|
383
|
+
case 31:
|
|
384
|
+
// 1. 检查是否包含分组配置
|
|
385
|
+
hasGroups = savedScheme.columnConfig.some(function (item) {
|
|
386
|
+
return item.type === 'group';
|
|
387
|
+
}); // 如果包含分组,先更新 columnDefs
|
|
388
|
+
if (!hasGroups) {
|
|
389
|
+
_context2.next = 37;
|
|
390
|
+
break;
|
|
391
|
+
}
|
|
392
|
+
gridColumnDefs = flatConfigToGridState(savedScheme.columnConfig, originalColumnDefs);
|
|
393
|
+
gridApi.setGridOption('columnDefs', gridColumnDefs);
|
|
394
|
+
|
|
395
|
+
// 等待 columnDefs 更新完成
|
|
396
|
+
_context2.next = 37;
|
|
397
|
+
return new Promise(function (resolve) {
|
|
398
|
+
return setTimeout(resolve, 100);
|
|
399
|
+
});
|
|
400
|
+
case 37:
|
|
401
|
+
columnState = flatConfigToColumnState(savedScheme.columnConfig);
|
|
402
|
+
gridApi.applyColumnState({
|
|
403
|
+
state: columnState,
|
|
404
|
+
applyOrder: true
|
|
405
|
+
});
|
|
406
|
+
|
|
407
|
+
// 3. 应用过滤器
|
|
408
|
+
if (savedScheme.filterModel) {
|
|
409
|
+
gridApi.setFilterModel(savedScheme.filterModel);
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
// 4. 设置为当前方案(如果不是当前方案)
|
|
413
|
+
if (!(!currentScheme || savedScheme.id !== currentScheme.id)) {
|
|
414
|
+
_context2.next = 43;
|
|
415
|
+
break;
|
|
416
|
+
}
|
|
417
|
+
_context2.next = 43;
|
|
418
|
+
return setCurrentColumnScheme === null || setCurrentColumnScheme === void 0 ? void 0 : setCurrentColumnScheme(gridKey, savedScheme.id);
|
|
419
|
+
case 43:
|
|
420
|
+
_context2.next = 45;
|
|
421
|
+
return new Promise(function (resolve) {
|
|
422
|
+
return setTimeout(resolve, 50);
|
|
423
|
+
});
|
|
424
|
+
case 45:
|
|
425
|
+
// 5. 关闭弹窗
|
|
426
|
+
onClose();
|
|
427
|
+
_context2.next = 52;
|
|
383
428
|
break;
|
|
384
|
-
case
|
|
385
|
-
_context2.prev =
|
|
429
|
+
case 48:
|
|
430
|
+
_context2.prev = 48;
|
|
386
431
|
_context2.t0 = _context2["catch"](8);
|
|
387
432
|
console.error('保存列配置到方案失败:', _context2.t0);
|
|
388
433
|
message.error('保存列配置失败');
|
|
389
|
-
case
|
|
434
|
+
case 52:
|
|
390
435
|
case "end":
|
|
391
436
|
return _context2.stop();
|
|
392
437
|
}
|
|
393
|
-
}, _callee2, null, [[8,
|
|
394
|
-
})), [form, gridApi, saveColumnScheme, setCurrentColumnScheme, currentScheme, schemes, gridKey,
|
|
438
|
+
}, _callee2, null, [[8, 48]]);
|
|
439
|
+
})), [form, gridApi, saveColumnScheme, setCurrentColumnScheme, currentScheme, schemes, gridKey, originalColumnDefs, onClose]);
|
|
395
440
|
|
|
396
441
|
// 保存为新方案
|
|
397
442
|
var handleSaveScheme = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
@@ -452,9 +497,8 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
452
497
|
columnConfig: columnConfigToSave,
|
|
453
498
|
filterModel: filterModel,
|
|
454
499
|
isDefault: false,
|
|
455
|
-
isSystem: false
|
|
456
|
-
createdAt
|
|
457
|
-
updatedAt: Date.now()
|
|
500
|
+
isSystem: false
|
|
501
|
+
// createdAt 和 updatedAt 由存储适配器自动生成
|
|
458
502
|
};
|
|
459
503
|
_context3.next = 23;
|
|
460
504
|
return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, newScheme);
|
|
@@ -510,8 +554,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
510
554
|
}
|
|
511
555
|
_context4.next = 11;
|
|
512
556
|
return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, _objectSpread(_objectSpread({}, s), {}, {
|
|
513
|
-
isDefault: false
|
|
514
|
-
updatedAt: Date.now()
|
|
557
|
+
isDefault: false
|
|
515
558
|
}));
|
|
516
559
|
case 11:
|
|
517
560
|
_context4.next = 6;
|
|
@@ -530,8 +573,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
530
573
|
case 21:
|
|
531
574
|
_context4.next = 23;
|
|
532
575
|
return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, _objectSpread(_objectSpread({}, scheme), {}, {
|
|
533
|
-
isDefault: true
|
|
534
|
-
updatedAt: Date.now()
|
|
576
|
+
isDefault: true
|
|
535
577
|
}));
|
|
536
578
|
case 23:
|
|
537
579
|
message.success('已设置为默认方案');
|
|
@@ -624,8 +666,8 @@ var ColumnSetting = function ColumnSetting(_ref) {
|
|
|
624
666
|
_context6.next = 7;
|
|
625
667
|
return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, _objectSpread(_objectSpread({}, scheme), {}, {
|
|
626
668
|
name: editingName.trim(),
|
|
627
|
-
description: editingDescription.trim() || undefined
|
|
628
|
-
updatedAt
|
|
669
|
+
description: editingDescription.trim() || undefined
|
|
670
|
+
// updatedAt 由存储适配器自动生成
|
|
629
671
|
}));
|
|
630
672
|
case 7:
|
|
631
673
|
message.success('更新成功');
|
|
@@ -205,8 +205,8 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
|
|
|
205
205
|
}
|
|
206
206
|
_context.next = 7;
|
|
207
207
|
return saveQueryScheme === null || saveQueryScheme === void 0 ? void 0 : saveQueryScheme(gridKey, _objectSpread(_objectSpread({}, currentScheme), {}, {
|
|
208
|
-
queryConfig: queryConfig
|
|
209
|
-
updatedAt
|
|
208
|
+
queryConfig: queryConfig
|
|
209
|
+
// updatedAt 由存储适配器自动生成
|
|
210
210
|
}));
|
|
211
211
|
case 7:
|
|
212
212
|
message.success('已应用新配置');
|
|
@@ -220,9 +220,8 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
|
|
|
220
220
|
description: '自动创建的默认查询方案',
|
|
221
221
|
queryConfig: queryConfig,
|
|
222
222
|
isDefault: true,
|
|
223
|
-
isSystem: false
|
|
224
|
-
createdAt
|
|
225
|
-
updatedAt: Date.now()
|
|
223
|
+
isSystem: false
|
|
224
|
+
// createdAt 和 updatedAt 由存储适配器自动生成
|
|
226
225
|
};
|
|
227
226
|
_context.next = 13;
|
|
228
227
|
return saveQueryScheme === null || saveQueryScheme === void 0 ? void 0 : saveQueryScheme(gridKey, newScheme);
|
|
@@ -279,9 +278,8 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
|
|
|
279
278
|
description: '',
|
|
280
279
|
queryConfig: queryConfig,
|
|
281
280
|
isDefault: false,
|
|
282
|
-
isSystem: false
|
|
283
|
-
createdAt
|
|
284
|
-
updatedAt: Date.now()
|
|
281
|
+
isSystem: false
|
|
282
|
+
// createdAt 和 updatedAt 由存储适配器自动生成
|
|
285
283
|
};
|
|
286
284
|
_context2.next = 10;
|
|
287
285
|
return saveQueryScheme === null || saveQueryScheme === void 0 ? void 0 : saveQueryScheme(gridKey, newScheme);
|
|
@@ -337,8 +335,8 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
|
|
|
337
335
|
_context3.next = 8;
|
|
338
336
|
return saveQueryScheme === null || saveQueryScheme === void 0 ? void 0 : saveQueryScheme(gridKey, _objectSpread(_objectSpread({}, scheme), {}, {
|
|
339
337
|
name: editingName.trim(),
|
|
340
|
-
description: editingDescription.trim() || undefined
|
|
341
|
-
updatedAt
|
|
338
|
+
description: editingDescription.trim() || undefined
|
|
339
|
+
// updatedAt 由存储适配器自动生成
|
|
342
340
|
}));
|
|
343
341
|
case 8:
|
|
344
342
|
message.success('更新成功');
|
|
@@ -421,8 +419,8 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
|
|
|
421
419
|
}
|
|
422
420
|
_context5.next = 9;
|
|
423
421
|
return saveQueryScheme === null || saveQueryScheme === void 0 ? void 0 : saveQueryScheme(gridKey, _objectSpread(_objectSpread({}, _scheme), {}, {
|
|
424
|
-
isDefault: false
|
|
425
|
-
updatedAt
|
|
422
|
+
isDefault: false
|
|
423
|
+
// updatedAt 由存储适配器自动生成
|
|
426
424
|
}));
|
|
427
425
|
case 9:
|
|
428
426
|
_context5.next = 4;
|
|
@@ -449,8 +447,8 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
|
|
|
449
447
|
}
|
|
450
448
|
_context5.next = 23;
|
|
451
449
|
return saveQueryScheme === null || saveQueryScheme === void 0 ? void 0 : saveQueryScheme(gridKey, _objectSpread(_objectSpread({}, scheme), {}, {
|
|
452
|
-
isDefault: true
|
|
453
|
-
updatedAt
|
|
450
|
+
isDefault: true
|
|
451
|
+
// updatedAt 由存储适配器自动生成
|
|
454
452
|
}));
|
|
455
453
|
case 23:
|
|
456
454
|
message.success("\u5DF2\u5C06\"".concat(schemeName, "\"\u8BBE\u4E3A\u9ED8\u8BA4\u65B9\u6848"));
|
|
@@ -33,10 +33,10 @@ export interface QueryScheme {
|
|
|
33
33
|
isDefault: boolean;
|
|
34
34
|
/** 是否为系统方案(不可删除) */
|
|
35
35
|
isSystem: boolean;
|
|
36
|
-
/**
|
|
37
|
-
createdAt
|
|
38
|
-
/**
|
|
39
|
-
updatedAt
|
|
36
|
+
/** 创建时间戳(由存储适配器自动生成) */
|
|
37
|
+
createdAt?: number;
|
|
38
|
+
/** 最后更新时间戳(由存储适配器自动生成) */
|
|
39
|
+
updatedAt?: number;
|
|
40
40
|
/** 创建用户ID(可选) */
|
|
41
41
|
createdBy?: string;
|
|
42
42
|
}
|
|
@@ -59,10 +59,10 @@ export interface ColumnScheme {
|
|
|
59
59
|
isDefault: boolean;
|
|
60
60
|
/** 是否为系统方案(不可删除) */
|
|
61
61
|
isSystem: boolean;
|
|
62
|
-
/**
|
|
63
|
-
createdAt
|
|
64
|
-
/**
|
|
65
|
-
updatedAt
|
|
62
|
+
/** 创建时间戳(由存储适配器自动生成) */
|
|
63
|
+
createdAt?: number;
|
|
64
|
+
/** 最后更新时间戳(由存储适配器自动生成) */
|
|
65
|
+
updatedAt?: number;
|
|
66
66
|
/** 创建用户ID(可选) */
|
|
67
67
|
createdBy?: string;
|
|
68
68
|
}
|
|
@@ -52,10 +52,26 @@ var ArrayTableInner = observer(function (props) {
|
|
|
52
52
|
gridApiState = _useState4[0],
|
|
53
53
|
setGridApiState = _useState4[1];
|
|
54
54
|
var dataSource = Array.isArray(field.value) ? field.value.slice() : [];
|
|
55
|
-
var sources = useArrayTableSources();
|
|
56
|
-
var actions = useArrayTableActions();
|
|
57
|
-
var columns = useArrayTableColumns(dataSource, field, sources);
|
|
58
55
|
var schema = useFieldSchema();
|
|
56
|
+
|
|
57
|
+
// 获取 sources(每次渲染都会重新计算,返回新的数组引用)
|
|
58
|
+
var rawSources = useArrayTableSources();
|
|
59
|
+
var actions = useArrayTableActions();
|
|
60
|
+
|
|
61
|
+
// 【关键修复】使用 useMemo 基于内容稳定 sources 引用
|
|
62
|
+
// 通过 JSON.stringify 比较内容,只有内容真正变化时才返回新引用
|
|
63
|
+
var sourcesKey = useMemo(function () {
|
|
64
|
+
return JSON.stringify(rawSources.map(function (s) {
|
|
65
|
+
return {
|
|
66
|
+
name: s.name,
|
|
67
|
+
display: s.display
|
|
68
|
+
// 只提取稳定的标识信息
|
|
69
|
+
};
|
|
70
|
+
}));
|
|
71
|
+
}, [rawSources]);
|
|
72
|
+
var sources = useMemo(function () {
|
|
73
|
+
return rawSources;
|
|
74
|
+
}, [sourcesKey]);
|
|
59
75
|
//@ts-ignore
|
|
60
76
|
var onAdd = props.onAdd,
|
|
61
77
|
onCopy = props.onCopy,
|
|
@@ -93,9 +109,25 @@ var ArrayTableInner = observer(function (props) {
|
|
|
93
109
|
// 使用 ref 记录上次应用的方案状态,避免重复应用
|
|
94
110
|
var lastAppliedSchemeRef = useRef({
|
|
95
111
|
id: null,
|
|
96
|
-
updatedAt:
|
|
112
|
+
updatedAt: undefined
|
|
97
113
|
});
|
|
98
114
|
|
|
115
|
+
/**
|
|
116
|
+
* 【关键优化】使用 useMemo 稳定 columnDefs 引用
|
|
117
|
+
* 只在基础列定义(sources)变化时更新,避免数据变化导致列重置
|
|
118
|
+
* 列的状态(宽度、顺序、隐藏等)由方案通过 applyColumnState 控制,不需要通过 columnDefs 传递
|
|
119
|
+
*/
|
|
120
|
+
var stableColumnDefs = useMemo(function () {
|
|
121
|
+
// 只依赖 sources,不依赖 dataSource 和 field.value
|
|
122
|
+
var cols = useArrayTableColumns([], field, sources);
|
|
123
|
+
//@ts-ignore
|
|
124
|
+
if (cols.length > 0 && props.onRowDrag) {
|
|
125
|
+
//@ts-ignore
|
|
126
|
+
cols[0].rowDrag = true;
|
|
127
|
+
}
|
|
128
|
+
return cols;
|
|
129
|
+
}, [sources, props.onRowDrag]); // 移除 field 依赖,避免数据变化时重新计算
|
|
130
|
+
|
|
99
131
|
/**
|
|
100
132
|
* 方案自动加载
|
|
101
133
|
*
|
|
@@ -178,12 +210,6 @@ var ArrayTableInner = observer(function (props) {
|
|
|
178
210
|
cancelled = true;
|
|
179
211
|
};
|
|
180
212
|
}, [props.gridKey, gridApiState, currentScheme === null || currentScheme === void 0 ? void 0 : currentScheme.id, currentScheme === null || currentScheme === void 0 ? void 0 : currentScheme.updatedAt]);
|
|
181
|
-
|
|
182
|
-
//@ts-ignore
|
|
183
|
-
if (columns.length > 0) {
|
|
184
|
-
//@ts-ignore
|
|
185
|
-
columns[0].rowDrag = props.onRowDrag ? true : false;
|
|
186
|
-
}
|
|
187
213
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
188
214
|
ref: ref,
|
|
189
215
|
style: {
|
|
@@ -230,7 +256,7 @@ var ArrayTableInner = observer(function (props) {
|
|
|
230
256
|
gridKey: props.gridKey,
|
|
231
257
|
gridApi: apiRef.current,
|
|
232
258
|
gridApiState: gridApiState,
|
|
233
|
-
allColDefs:
|
|
259
|
+
allColDefs: stableColumnDefs,
|
|
234
260
|
showQueryScheme: false
|
|
235
261
|
})), /*#__PURE__*/React.createElement("div", {
|
|
236
262
|
style: {
|
|
@@ -252,7 +278,9 @@ var ArrayTableInner = observer(function (props) {
|
|
|
252
278
|
suppressCopySingleCellRanges: true,
|
|
253
279
|
enterNavigatesVertically: true,
|
|
254
280
|
enterNavigatesVerticallyAfterEdit: true,
|
|
255
|
-
columnHoverHighlight: true
|
|
281
|
+
columnHoverHighlight: true,
|
|
282
|
+
// 【关键修复】保持用户设置的列顺序
|
|
283
|
+
maintainColumnOrder: true
|
|
256
284
|
},
|
|
257
285
|
onCellKeyDown: handleCellKeyDown,
|
|
258
286
|
onCellClicked: function onCellClicked(event) {
|
|
@@ -309,7 +337,7 @@ var ArrayTableInner = observer(function (props) {
|
|
|
309
337
|
,
|
|
310
338
|
rowHeight: 38,
|
|
311
339
|
pagination: false,
|
|
312
|
-
columnDefs:
|
|
340
|
+
columnDefs: stableColumnDefs,
|
|
313
341
|
rowData: dataSource
|
|
314
342
|
})), sources.map(function (column, key) {
|
|
315
343
|
//专门用来承接对Column的状态管理
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
var _excluded = ["pinned", "width", "hide", "sort", "sortIndex"];
|
|
2
3
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
4
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
5
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
6
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
7
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
9
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
7
10
|
import React from 'react';
|
|
8
11
|
import { useField, useFieldSchema, RecursionField } from '@formily/react';
|
|
9
12
|
import { isArr } from '@formily/shared';
|
|
@@ -99,12 +102,16 @@ var useArrayTableActions = function useArrayTableActions() {
|
|
|
99
102
|
return schema.properties ? parseSources(schema.properties['actions'] || {}) : [];
|
|
100
103
|
};
|
|
101
104
|
var AgField = function AgField(_ref) {
|
|
105
|
+
var _ref2, _node$rowIndex;
|
|
102
106
|
var value = _ref.value,
|
|
103
107
|
record = _ref.data,
|
|
104
108
|
dataSource = _ref.dataSource,
|
|
105
109
|
schema = _ref.schema,
|
|
106
|
-
field = _ref.field
|
|
107
|
-
|
|
110
|
+
field = _ref.field,
|
|
111
|
+
node = _ref.node;
|
|
112
|
+
// 【修复】优先使用 AG-Grid 的 node.rowIndex,避免依赖 dataSource
|
|
113
|
+
// 这样即使 columnDefs 中的 dataSource 是空数组,也能正确获取索引
|
|
114
|
+
var index = (_ref2 = (_node$rowIndex = node === null || node === void 0 ? void 0 : node.rowIndex) !== null && _node$rowIndex !== void 0 ? _node$rowIndex : dataSource === null || dataSource === void 0 ? void 0 : dataSource.indexOf(record)) !== null && _ref2 !== void 0 ? _ref2 : -1;
|
|
108
115
|
var children =
|
|
109
116
|
/*#__PURE__*/
|
|
110
117
|
//@ts-ignore
|
|
@@ -124,14 +131,23 @@ var AgField = function AgField(_ref) {
|
|
|
124
131
|
return children;
|
|
125
132
|
};
|
|
126
133
|
var useArrayTableColumns = function useArrayTableColumns(dataSource, field, sources) {
|
|
127
|
-
return sources.reduce(function (buf,
|
|
128
|
-
var name =
|
|
129
|
-
columnProps =
|
|
130
|
-
schema =
|
|
131
|
-
display =
|
|
134
|
+
return sources.reduce(function (buf, _ref3, key) {
|
|
135
|
+
var name = _ref3.name,
|
|
136
|
+
columnProps = _ref3.columnProps,
|
|
137
|
+
schema = _ref3.schema,
|
|
138
|
+
display = _ref3.display;
|
|
132
139
|
if (display && display !== 'visible') return buf;
|
|
133
140
|
if (!isColumnComponent(schema)) return buf;
|
|
134
|
-
|
|
141
|
+
|
|
142
|
+
// 【关键修复】移除可能干扰用户列状态的属性
|
|
143
|
+
// 这些属性应该由用户通过列配置(applyColumnState)控制,而不是从 columnDefs 继承
|
|
144
|
+
var pinned = columnProps.pinned,
|
|
145
|
+
width = columnProps.width,
|
|
146
|
+
hide = columnProps.hide,
|
|
147
|
+
sort = columnProps.sort,
|
|
148
|
+
sortIndex = columnProps.sortIndex,
|
|
149
|
+
safeColumnProps = _objectWithoutProperties(columnProps, _excluded);
|
|
150
|
+
return buf.concat(_objectSpread(_objectSpread({}, safeColumnProps), {}, {
|
|
135
151
|
//@ts-ignore
|
|
136
152
|
headerName: columnProps.headerName || columnProps.title,
|
|
137
153
|
field: name,
|
|
@@ -173,7 +173,7 @@ export declare const createSelectField: (title: string, options: {
|
|
|
173
173
|
export declare const createCascaderField: (title: string, options: any[], config?: {
|
|
174
174
|
required?: boolean | undefined;
|
|
175
175
|
changeOnSelect?: boolean | undefined;
|
|
176
|
-
expandTrigger?: "
|
|
176
|
+
expandTrigger?: "hover" | "click" | undefined;
|
|
177
177
|
placeholder?: string | undefined;
|
|
178
178
|
}) => {
|
|
179
179
|
type: string;
|
|
@@ -187,7 +187,7 @@ export declare const createCascaderField: (title: string, options: any[], config
|
|
|
187
187
|
};
|
|
188
188
|
options: any[];
|
|
189
189
|
changeOnSelect: boolean;
|
|
190
|
-
expandTrigger: "
|
|
190
|
+
expandTrigger: "hover" | "click";
|
|
191
191
|
};
|
|
192
192
|
};
|
|
193
193
|
export default withStandardForm;
|