@nocobase/client-v2 2.1.0-beta.23 → 2.1.0-beta.25
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/es/BaseApplication.d.ts +1 -0
- package/es/flow/actions/dataScopeFilter.d.ts +9 -0
- package/es/flow/components/Grid/index.d.ts +5 -3
- package/es/flow/internal/utils/rebuildFieldSubModel.d.ts +2 -1
- package/es/flow/models/base/GridModel.d.ts +19 -2
- package/es/flow/models/blocks/filter-form/FilterFormGridModel.d.ts +1 -0
- package/es/flow/models/fields/JSFieldModel.d.ts +5 -0
- package/es/index.mjs +100 -100
- package/lib/index.js +100 -100
- package/package.json +6 -5
- package/src/BaseApplication.tsx +4 -0
- package/src/__tests__/globalDeps.test.ts +1 -0
- package/src/__tests__/remotePlugins.test.ts +27 -0
- package/src/flow/actions/__tests__/dataScopeFilter.test.ts +158 -0
- package/src/flow/actions/dataScope.tsx +6 -4
- package/src/flow/actions/dataScopeFilter.ts +70 -0
- package/src/flow/actions/setTargetDataScope.tsx +6 -5
- package/src/flow/components/Grid/index.tsx +66 -20
- package/src/flow/internal/utils/__tests__/rebuildFieldSubModel.test.ts +77 -2
- package/src/flow/internal/utils/rebuildFieldSubModel.ts +21 -5
- package/src/flow/models/base/BlockGridModel.tsx +2 -2
- package/src/flow/models/base/GridModel.tsx +428 -195
- package/src/flow/models/base/__tests__/BlockGridModel.dragOverlayConfig.test.ts +44 -0
- package/src/flow/models/base/__tests__/GridModel.computeOverlayRect.test.ts +29 -0
- package/src/flow/models/base/__tests__/GridModel.dragSnapshotContainer.test.ts +181 -2
- package/src/flow/models/base/__tests__/GridModel.resizeLayout.test.ts +124 -0
- package/src/flow/models/base/__tests__/GridModel.visibleLayout.test.ts +55 -15
- package/src/flow/models/blocks/details/DetailsGridModel.tsx +6 -6
- package/src/flow/models/blocks/filter-form/FilterFormBlockModel.tsx +9 -5
- package/src/flow/models/blocks/filter-form/FilterFormGridModel.tsx +54 -14
- package/src/flow/models/blocks/filter-form/__tests__/FilterFormBlockModel.cleanup.test.ts +138 -0
- package/src/flow/models/blocks/filter-form/__tests__/FilterFormGridModel.toggleFormFieldsCollapse.test.ts +45 -0
- package/src/flow/models/blocks/form/FormGridModel.tsx +6 -6
- package/src/flow/models/blocks/form/__tests__/FormBlockModel.test.tsx +22 -0
- package/src/flow/models/blocks/table/JSColumnModel.tsx +30 -2
- package/src/flow/models/blocks/table/TableBlockModel.tsx +8 -1
- package/src/flow/models/blocks/table/TableColumnModel.tsx +1 -0
- package/src/flow/models/blocks/table/__tests__/JSColumnModel.test.tsx +51 -0
- package/src/flow/models/blocks/table/__tests__/TableBlockModel.quickEditRefresh.test.ts +49 -0
- package/src/flow/models/fields/JSFieldModel.tsx +54 -14
- package/src/utils/globalDeps.ts +4 -0
- package/src/utils/requirejs.ts +1 -1
|
@@ -10,8 +10,9 @@
|
|
|
10
10
|
/**
|
|
11
11
|
* 通用的字段子模型重建工具:
|
|
12
12
|
* - 保留原有 uid
|
|
13
|
-
* -
|
|
13
|
+
* - 直接重建为目标字段类,保持与 defineChildren 初始创建逻辑一致
|
|
14
14
|
* - 支持同步父项模式(pattern)
|
|
15
|
+
* - 同一字段模型类型下保留已有字段设置;切换到其他字段模型类型时丢弃不兼容设置
|
|
15
16
|
* - 重建后触发 beforeRender(useCache: false)
|
|
16
17
|
*/
|
|
17
18
|
import { FieldModel } from '../../models/base/FieldModel';
|
|
@@ -39,6 +40,16 @@ type RebuildOptions = {
|
|
|
39
40
|
fieldSettingsInit?: unknown;
|
|
40
41
|
};
|
|
41
42
|
|
|
43
|
+
function normalizeModelUse(value: unknown): string | undefined {
|
|
44
|
+
if (typeof value === 'string') {
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
if (typeof value === 'function' && value.name) {
|
|
48
|
+
return value.name;
|
|
49
|
+
}
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
|
|
42
53
|
export function getFieldBindingUse(fieldModel?: FieldModel): string | undefined {
|
|
43
54
|
const bindingUse = (fieldModel?.stepParams as FieldStepParams | undefined)?.fieldBinding?.use;
|
|
44
55
|
return typeof bindingUse === 'string' ? bindingUse : undefined;
|
|
@@ -61,13 +72,18 @@ export async function rebuildFieldSubModel({
|
|
|
61
72
|
delete prevSubModels[key];
|
|
62
73
|
}
|
|
63
74
|
}
|
|
64
|
-
const
|
|
75
|
+
const currentUse = normalizeModelUse(getFieldBindingUse(fieldModel) || fieldModel?.use);
|
|
76
|
+
const shouldPreserveStepParams = currentUse === targetUse;
|
|
77
|
+
const prevStepParams: FieldStepParams = shouldPreserveStepParams
|
|
78
|
+
? (fieldModel?.stepParams as FieldStepParams) || {}
|
|
79
|
+
: {};
|
|
65
80
|
const nextFieldSettingsInit = fieldSettingsInit ?? parentModel.getFieldSettingsInitParams?.();
|
|
81
|
+
const { fieldBinding: _fieldBinding, ...restStepParams } = prevStepParams;
|
|
66
82
|
|
|
67
83
|
const nextStepParams: FieldStepParams = {
|
|
68
|
-
...
|
|
69
|
-
fieldBinding: { ...prevStepParams.fieldBinding, use: targetUse },
|
|
84
|
+
...restStepParams,
|
|
70
85
|
fieldSettings: {
|
|
86
|
+
...(restStepParams.fieldSettings || {}),
|
|
71
87
|
init: nextFieldSettingsInit,
|
|
72
88
|
},
|
|
73
89
|
};
|
|
@@ -81,7 +97,7 @@ export async function rebuildFieldSubModel({
|
|
|
81
97
|
|
|
82
98
|
const subModel = parentModel.setSubModel('field', {
|
|
83
99
|
uid: fieldUid,
|
|
84
|
-
use:
|
|
100
|
+
use: targetUse,
|
|
85
101
|
props: { ...(defaultProps || {}), ...(pattern ? { pattern } : {}) },
|
|
86
102
|
stepParams: nextStepParams as StepParams,
|
|
87
103
|
// Preserve existing subModels (e.g. SubTable columns) so switching field component back and forth
|
|
@@ -27,8 +27,8 @@ export class BlockGridModel extends GridModel {
|
|
|
27
27
|
dragOverlayConfig: DragOverlayConfig = {
|
|
28
28
|
// 列内插入
|
|
29
29
|
columnInsert: {
|
|
30
|
-
before: { offsetTop: -
|
|
31
|
-
after: { offsetTop:
|
|
30
|
+
before: { offsetTop: -12 },
|
|
31
|
+
after: { offsetTop: 12 },
|
|
32
32
|
},
|
|
33
33
|
// 列边缘
|
|
34
34
|
columnEdge: {
|