neo-register 1.0.3 → 1.0.6
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/index.esm.js +125 -118
- package/dist/index.esm.min.js +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.LICENSE.txt +2 -2
- package/dist/{src/main.d.ts → main.d.ts} +1 -0
- package/dist/{src/utils → utils}/index.d.ts +1 -0
- package/docs/EditorItemType.md +856 -0
- package/docs/FormItemType.md +186 -19
- package/docs/NeoCmps.md +100 -0
- package/package.json +1 -1
- package/dist/demo2/entity-detail/index.d.ts +0 -40
- package/dist/demo2/entity-detail/model.d.ts +0 -77
- package/dist/demo2/entity-detail/register.d.ts +0 -1
- package/docs/NeoEntityApiType/xObjectDataApi.md +0 -35
- package/docs/NeoEntityApiType/xObjectDetailApi.md +0 -35
- package/docs/NeoEntityApiType/xObjectEntityList.md +0 -35
- /package/dist/{src/function → function}/registerNeoCmp.d.ts +0 -0
- /package/dist/{src/function → function}/registerNeoEditorModel.d.ts +0 -0
- /package/dist/{src/utils → utils}/object.d.ts +0 -0
|
@@ -0,0 +1,856 @@
|
|
|
1
|
+
# Neo 编辑器提供的属性配置项
|
|
2
|
+
这里汇总了当前编辑器端新增的属性配置项,其中存在不少重复的配置项(比如 panelInput,和 amis 的 text 一样,也和 Neo 组件库 / 自定义表单 neoInput 一样),后续需要剔除掉重复的配置项目,优先使用 amis 和 Neo 组件库中已有的配置项。
|
|
3
|
+
|
|
4
|
+
## 目录
|
|
5
|
+
|
|
6
|
+
- [基础输入配置项](#基础输入配置项)
|
|
7
|
+
- [选择器配置项](#选择器配置项)
|
|
8
|
+
- [表达式相关配置项](#表达式相关配置项)
|
|
9
|
+
- [表单相关配置项](#表单相关配置项)
|
|
10
|
+
- [页面相关配置项](#页面相关配置项)
|
|
11
|
+
- [事件配置项](#事件配置项)
|
|
12
|
+
- [辅助配置项](#辅助配置项)
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 基础输入配置项
|
|
17
|
+
|
|
18
|
+
### 1. panelInput - 文本输入框
|
|
19
|
+
|
|
20
|
+
**组件名称**: `panelInput`
|
|
21
|
+
|
|
22
|
+
**功能描述**: 属性面板通用文本输入控件,支持基础文本输入和表达式输入。
|
|
23
|
+
|
|
24
|
+
**主要属性**:
|
|
25
|
+
- `value`: string - 当前值
|
|
26
|
+
- `onChange`: Function - 值变化回调
|
|
27
|
+
- `placeholder`: string - 占位文本,默认"请输入"
|
|
28
|
+
- `name`: string - 字段名称
|
|
29
|
+
- `label`: string - 标签文本
|
|
30
|
+
- `helpText`: string - 帮助提示文本(会显示帮助图标)
|
|
31
|
+
- `supportExpression`: boolean - 是否支持表达式输入
|
|
32
|
+
- `disabled`: boolean - 是否禁用
|
|
33
|
+
- `maxLength`: number - 最大长度限制(默认100)
|
|
34
|
+
|
|
35
|
+
**使用示例**:
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"type": "panelInput",
|
|
39
|
+
"name": "title",
|
|
40
|
+
"label": "标题",
|
|
41
|
+
"helpText": "请输入组件标题",
|
|
42
|
+
"supportExpression": true,
|
|
43
|
+
"placeholder": "请输入标题"
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
### 2. PropertyAliasEditor - 唯一标识编辑器
|
|
50
|
+
|
|
51
|
+
**组件名称**: `PropertyAliasEditor`
|
|
52
|
+
|
|
53
|
+
**功能描述**: 用于设置组件的唯一标识(别名),支持通过模态框编辑,设置后不可修改。
|
|
54
|
+
|
|
55
|
+
**主要属性**:
|
|
56
|
+
- `value`: string - 当前别名值
|
|
57
|
+
- `onChange`: Function - 值变化回调
|
|
58
|
+
- `$designer`: StandardLayoutDesignerModel - 设计器实例
|
|
59
|
+
- `$com`: Com - 组件实例
|
|
60
|
+
- `$model`: ComModel - 组件模型
|
|
61
|
+
|
|
62
|
+
**验证规则**:
|
|
63
|
+
- 只能包含字母、数字、下划线
|
|
64
|
+
- 长度不能超过18位
|
|
65
|
+
- 唯一标识在页面内必须唯一
|
|
66
|
+
- 一旦设置后不可修改(防止代码引用失效)
|
|
67
|
+
|
|
68
|
+
**使用示例**:
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"type": "PropertyAliasEditor",
|
|
72
|
+
"name": "$alias",
|
|
73
|
+
"label": "唯一标识"
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**注册信息**:
|
|
78
|
+
- 注册为 itemType: '999', apiKey: '$alias'
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 选择器配置项
|
|
83
|
+
|
|
84
|
+
### 3. panelSelect - 下拉选择器
|
|
85
|
+
|
|
86
|
+
**组件名称**: `panelSelect`
|
|
87
|
+
|
|
88
|
+
**功能描述**: 属性面板通用下拉选择控件,支持单选。
|
|
89
|
+
|
|
90
|
+
**主要属性**:
|
|
91
|
+
- `value`: any - 当前选中值(支持对象或基本类型)
|
|
92
|
+
- `onChange`: Function - 值变化回调
|
|
93
|
+
- `options`: Array<{label: string, value: any}> - 选项列表
|
|
94
|
+
- `name`: string - 字段名称
|
|
95
|
+
- `label`: string - 标签文本
|
|
96
|
+
- `helpText`: string - 帮助提示文本
|
|
97
|
+
- `disabled`: boolean - 是否禁用
|
|
98
|
+
- `placeholder`: string - 占位文本,默认"请选择"
|
|
99
|
+
|
|
100
|
+
**默认选项**:
|
|
101
|
+
```javascript
|
|
102
|
+
[
|
|
103
|
+
{ label: "是", value: true },
|
|
104
|
+
{ label: "否", value: false }
|
|
105
|
+
]
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**使用示例**:
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"type": "panelSelect",
|
|
112
|
+
"name": "visible",
|
|
113
|
+
"label": "是否可见",
|
|
114
|
+
"options": [
|
|
115
|
+
{ "label": "是", "value": true },
|
|
116
|
+
{ "label": "否", "value": false }
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
### 4. multipleSelect - 多选复选框组
|
|
124
|
+
|
|
125
|
+
**组件名称**: `multipleSelect`
|
|
126
|
+
|
|
127
|
+
**功能描述**: 属性面板多选复选框组件,支持多项选择。
|
|
128
|
+
|
|
129
|
+
**主要属性**:
|
|
130
|
+
- `value`: Array - 当前选中值数组
|
|
131
|
+
- `onChange`: Function - 值变化回调
|
|
132
|
+
- `options`: Array<{label: string, value: any}> - 选项列表
|
|
133
|
+
- `name`: string - 标题文本
|
|
134
|
+
|
|
135
|
+
**使用示例**:
|
|
136
|
+
```json
|
|
137
|
+
{
|
|
138
|
+
"type": "multipleSelect",
|
|
139
|
+
"name": "边框线",
|
|
140
|
+
"options": [
|
|
141
|
+
{ "label": "上", "value": "top" },
|
|
142
|
+
{ "label": "下", "value": "bottom" },
|
|
143
|
+
{ "label": "左", "value": "left" },
|
|
144
|
+
{ "label": "右", "value": "right" }
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
### 5. panelCheckboxGroup - 复选框组
|
|
152
|
+
|
|
153
|
+
**组件名称**: `panelCheckboxGroup`
|
|
154
|
+
|
|
155
|
+
**功能描述**: 属性面板勾选组件。
|
|
156
|
+
|
|
157
|
+
**主要属性**:
|
|
158
|
+
- `label`: string - 标签文本
|
|
159
|
+
- `value`: Array<string> - 当前选中值数组
|
|
160
|
+
- `options`: Array<{label: string, value: string, disabled?: boolean} | string> - 选项列表
|
|
161
|
+
- `onChange`: Function - 值变化回调
|
|
162
|
+
|
|
163
|
+
**使用示例**:
|
|
164
|
+
```json
|
|
165
|
+
{
|
|
166
|
+
"type": "panelCheckboxGroup",
|
|
167
|
+
"label": "选择项",
|
|
168
|
+
"options": [
|
|
169
|
+
{ "label": "选项1", "value": "opt1" },
|
|
170
|
+
{ "label": "选项2", "value": "opt2", "disabled": true }
|
|
171
|
+
]
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
### 6. layoutSelect - 布局选择器
|
|
178
|
+
|
|
179
|
+
**组件名称**: `layoutSelect`
|
|
180
|
+
|
|
181
|
+
**功能描述**: 可视化布局选择器,用于选择1行1列、1行2列、1行3列等布局方式。
|
|
182
|
+
|
|
183
|
+
**主要属性**:
|
|
184
|
+
- `value`: number - 当前选中的布局ID(1, 2, 3)
|
|
185
|
+
- `onChange`: Function - 值变化回调
|
|
186
|
+
- `cLabel`: string - 标签文本
|
|
187
|
+
|
|
188
|
+
**布局选项**:
|
|
189
|
+
- 1: 1行1列
|
|
190
|
+
- 2: 1行2列
|
|
191
|
+
- 3: 1行3列
|
|
192
|
+
|
|
193
|
+
**使用示例**:
|
|
194
|
+
```json
|
|
195
|
+
{
|
|
196
|
+
"type": "layoutSelect",
|
|
197
|
+
"name": "layout",
|
|
198
|
+
"cLabel": "布局选择"
|
|
199
|
+
}
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## 表达式相关配置项
|
|
205
|
+
|
|
206
|
+
### 7. ExpressionInput - 表达式输入器
|
|
207
|
+
|
|
208
|
+
**组件名称**: `ExpressionInput`(非amis注册组件,作为React组件直接使用)
|
|
209
|
+
|
|
210
|
+
**功能描述**: 支持变量选择和公式编写的表达式输入组件,包含变量选择器、运算符下拉、函数插入等功能。
|
|
211
|
+
|
|
212
|
+
**主要属性**:
|
|
213
|
+
- `validateType`: string - 表达式验证类型(如 'boolean', 'any' 等)
|
|
214
|
+
- `selectType`: 'formulable' | 'assignment' - 选择类型
|
|
215
|
+
- `extraTreeData`: Array<any> - 额外的树数据(如事件参数)
|
|
216
|
+
- `className`: string - 自定义类名
|
|
217
|
+
- `expressionObj`: {enabled: boolean, expression: string} - 表达式对象
|
|
218
|
+
- `onChangeValue`: (value: string) => void - 值变化回调
|
|
219
|
+
- `isPopover`: boolean - 是否通过Popover弹出(默认true)
|
|
220
|
+
- `popoverClickCompType`: 'icon' | 'input' - 点击触发类型
|
|
221
|
+
- `popupContainer`: (node: HTMLElement) => HTMLElement - 弹出容器
|
|
222
|
+
- `disabled`: boolean - 是否禁用
|
|
223
|
+
- `onRef`: any - 获取组件引用
|
|
224
|
+
|
|
225
|
+
**功能特性**:
|
|
226
|
+
- 变量选择器:从变量空间选择变量
|
|
227
|
+
- 运算符下拉:快速插入运算符
|
|
228
|
+
- 函数插入:插入预定义函数
|
|
229
|
+
- 语法检查:实时验证表达式语法
|
|
230
|
+
- 光标管理:智能光标定位
|
|
231
|
+
|
|
232
|
+
**使用场景**:
|
|
233
|
+
- 支持表达式的输入框
|
|
234
|
+
- 布尔值表达式配置
|
|
235
|
+
- 公式计算配置
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
### 8. iDSelectBooleanExpression - 布尔选择器(支持表达式)
|
|
240
|
+
|
|
241
|
+
**组件名称**: 未注册为amis组件(作为普通React组件使用)
|
|
242
|
+
|
|
243
|
+
**功能描述**: 支持布尔值选择和表达式输入的复合组件。
|
|
244
|
+
|
|
245
|
+
**主要属性**:
|
|
246
|
+
- `value`: {value: boolean, formula: string} - 值对象
|
|
247
|
+
- `onChange`: Function - 值变化回调
|
|
248
|
+
- `label`: string - 标签文本
|
|
249
|
+
- `helpText`: string - 帮助文本
|
|
250
|
+
- `disabled`: boolean - 是否禁用
|
|
251
|
+
- `enableFormula`: boolean - 是否启用公式
|
|
252
|
+
- `options`: Array<{label: string, value: boolean}> - 选项列表
|
|
253
|
+
|
|
254
|
+
**功能特性**:
|
|
255
|
+
- 普通模式:下拉选择是/否
|
|
256
|
+
- 表达式模式:支持输入布尔表达式
|
|
257
|
+
- 可切换模式:点击公式图标切换到表达式模式
|
|
258
|
+
- 表达式编辑:显示表达式内容,支持编辑和清除
|
|
259
|
+
|
|
260
|
+
**使用示例**:
|
|
261
|
+
```javascript
|
|
262
|
+
// 作为React组件使用
|
|
263
|
+
<ComponentRenderer
|
|
264
|
+
value={{ value: true, formula: '' }}
|
|
265
|
+
enableFormula={true}
|
|
266
|
+
options={[
|
|
267
|
+
{ label: "是", value: true },
|
|
268
|
+
{ label: "否", value: false }
|
|
269
|
+
]}
|
|
270
|
+
/>
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
### 9. iDTempNoExpressionSelectBoolean - 简单布尔选择器(临时)
|
|
276
|
+
|
|
277
|
+
**组件名称**: 未注册(临时组件)
|
|
278
|
+
|
|
279
|
+
**功能描述**: 临时的布尔选择器,不支持表达式。用于子表字段的必填属性等暂不支持表达式的场景。
|
|
280
|
+
|
|
281
|
+
**主要属性**:
|
|
282
|
+
- `value`: {value: boolean} - 值对象
|
|
283
|
+
- `onChange`: Function - 值变化回调
|
|
284
|
+
- `label`: string - 标签文本
|
|
285
|
+
- `helpText`: string - 帮助文本
|
|
286
|
+
- `disabled`: boolean - 是否禁用
|
|
287
|
+
- `options`: Array<{label: string, value: boolean}> - 选项列表
|
|
288
|
+
|
|
289
|
+
**注意**: 此组件是临时的,后期将被移除,因为现在子表的字段的必填属性不支持表达式。
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
### 10. VarSelector - 变量选择器
|
|
294
|
+
|
|
295
|
+
**组件名称**: `VarSelector`(React组件)
|
|
296
|
+
|
|
297
|
+
**功能描述**: 变量空间选择器,支持从变量树中选择变量。
|
|
298
|
+
|
|
299
|
+
**主要属性**:
|
|
300
|
+
- `showType`: 'customize' | 'default' - 回显模式
|
|
301
|
+
- `disabled`: boolean - 是否禁用
|
|
302
|
+
- `value`: any - 当前值
|
|
303
|
+
- `onChange`: (value?: any, data?: any) => void - 值变化回调
|
|
304
|
+
- `className`: string - 自定义类名
|
|
305
|
+
- `treeData`: IVarStruct[] - 变量树数据
|
|
306
|
+
- `onVarClick`: Function - 变量点击回调
|
|
307
|
+
- `isReserveCustomFormItem`: boolean - 是否保留自定义表单项(赋值操作左边为true,右边为false)
|
|
308
|
+
|
|
309
|
+
**功能特性**:
|
|
310
|
+
- 变量树展示
|
|
311
|
+
- 搜索过滤
|
|
312
|
+
- 自定义回显
|
|
313
|
+
- 支持级联选择
|
|
314
|
+
|
|
315
|
+
**使用示例**:
|
|
316
|
+
```javascript
|
|
317
|
+
<VarSelector
|
|
318
|
+
treeData={varStructData}
|
|
319
|
+
onChange={(value) => console.log(value)}
|
|
320
|
+
onVarClick={() => {}}
|
|
321
|
+
/>
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## 表单相关配置项
|
|
327
|
+
|
|
328
|
+
### 11. panelFieldSetting - 字段配置
|
|
329
|
+
|
|
330
|
+
**组件名称**: `panelFieldSetting`
|
|
331
|
+
|
|
332
|
+
**功能描述**: 字段配置弹窗,用于配置实体字段。
|
|
333
|
+
|
|
334
|
+
**主要属性**:
|
|
335
|
+
- 点击按钮弹出配置弹窗
|
|
336
|
+
- 支持字段的增删改查
|
|
337
|
+
- 与实体字段元数据关联
|
|
338
|
+
|
|
339
|
+
**使用示例**:
|
|
340
|
+
```json
|
|
341
|
+
{
|
|
342
|
+
"type": "panelFieldSetting",
|
|
343
|
+
"name": "fields",
|
|
344
|
+
"label": "配置字段"
|
|
345
|
+
}
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
### 12. panelFormMasterGroup - 主表单分组
|
|
351
|
+
|
|
352
|
+
**组件名称**: `panelFormMasterGroup`
|
|
353
|
+
|
|
354
|
+
**功能描述**: 主表单分组设置组件,用于管理表单的分组结构。
|
|
355
|
+
|
|
356
|
+
**主要功能**:
|
|
357
|
+
- 分组列表展示:使用 DragList 展示所有分组
|
|
358
|
+
- 拖拽排序:支持分组顺序调整
|
|
359
|
+
- 新增分组:动态添加新分组
|
|
360
|
+
- 删除分组:删除分组及其包含的字段
|
|
361
|
+
- 编辑分组名:修改分组标题
|
|
362
|
+
|
|
363
|
+
**限制条件**:
|
|
364
|
+
- 至少保留一个分组
|
|
365
|
+
- 包含名称字段的分组不可删除
|
|
366
|
+
- 分组名称必填,最大50字符
|
|
367
|
+
|
|
368
|
+
**使用示例**:
|
|
369
|
+
```json
|
|
370
|
+
{
|
|
371
|
+
"type": "panelFormMasterGroup",
|
|
372
|
+
"name": "groups",
|
|
373
|
+
"label": "分组设置"
|
|
374
|
+
}
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
### 13. iDFormDetailTabsGroup - 子表单Tabs分组
|
|
380
|
+
|
|
381
|
+
**组件名称**: `panelFormDetailTabsGroup`(推测)
|
|
382
|
+
|
|
383
|
+
**功能描述**: 用于配置子表单的Tabs分组。
|
|
384
|
+
|
|
385
|
+
**使用场景**:
|
|
386
|
+
- 子表单页签管理
|
|
387
|
+
- 子表单布局配置
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
### 14. iDFormDetailTabGroup - 子表单Tab组
|
|
392
|
+
|
|
393
|
+
**组件名称**: `panelFormDetailTabGroup`(推测)
|
|
394
|
+
|
|
395
|
+
**功能描述**: 用于配置子表单的单个Tab组。
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
### 15. iDFormDetailBtnGroup - 子表单按钮组
|
|
400
|
+
|
|
401
|
+
**组件名称**: `panelFormDetailBtnGroup`(推测)
|
|
402
|
+
|
|
403
|
+
**功能描述**: 用于配置子表单的按钮组。
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
### 16. iDH5FormDetailBtnGroup - 移动端子表单按钮组
|
|
408
|
+
|
|
409
|
+
**组件名称**: `panelH5FormDetailBtnGroup`(推测)
|
|
410
|
+
|
|
411
|
+
**功能描述**: 移动端子表单按钮组件,逻辑特殊,专门用于H5端。
|
|
412
|
+
|
|
413
|
+
---
|
|
414
|
+
|
|
415
|
+
### 17. panelFooterGroup - 底部按钮组
|
|
416
|
+
|
|
417
|
+
**组件名称**: `panelFooterGroup`
|
|
418
|
+
|
|
419
|
+
**功能描述**: 底部按钮actions组件属性面板,用于管理表单底部的操作按钮。
|
|
420
|
+
|
|
421
|
+
**主要功能**:
|
|
422
|
+
- 按钮列表展示:使用 DragList 展示所有按钮
|
|
423
|
+
- 拖拽排序:支持按钮顺序调整
|
|
424
|
+
- 新增按钮:添加自定义操作按钮(最多2个自定义按钮)
|
|
425
|
+
- 删除按钮:删除可移除的按钮
|
|
426
|
+
- 编辑按钮文本:修改按钮标签(最大8字符)
|
|
427
|
+
|
|
428
|
+
**限制条件**:
|
|
429
|
+
- 默认按钮不可删除(removable=false)
|
|
430
|
+
- 自定义按钮最多5个
|
|
431
|
+
- 按钮文本最大8字符
|
|
432
|
+
- 按钮文本必填
|
|
433
|
+
|
|
434
|
+
**使用示例**:
|
|
435
|
+
```json
|
|
436
|
+
{
|
|
437
|
+
"type": "panelFooterGroup",
|
|
438
|
+
"name": "footerButtons",
|
|
439
|
+
"label": "底部按钮"
|
|
440
|
+
}
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
### 18. iDChildSelect - 子表选择器
|
|
446
|
+
|
|
447
|
+
**组件名称**: 未完全实现
|
|
448
|
+
|
|
449
|
+
**功能描述**: 用于子表操作和排序的组件(开发中)。
|
|
450
|
+
|
|
451
|
+
**主要功能**:
|
|
452
|
+
- 子表顺序设置
|
|
453
|
+
- 显示/隐藏配置
|
|
454
|
+
- 拖拽排序
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
### 19. iDMobileHeaderBtnPanel - 移动端头部按钮面板
|
|
459
|
+
|
|
460
|
+
**组件名称**: `panelMobileHeaderBtn`(推测)
|
|
461
|
+
|
|
462
|
+
**功能描述**: 移动端头部按钮配置面板。
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
|
|
466
|
+
## 页面相关配置项
|
|
467
|
+
|
|
468
|
+
### 20. CustomPageSet - 页面内容来源配置
|
|
469
|
+
|
|
470
|
+
**组件名称**: `CustomPageSet`
|
|
471
|
+
|
|
472
|
+
**功能描述**: 用于配置iframe嵌入页面的内容来源。
|
|
473
|
+
|
|
474
|
+
**主要属性**:
|
|
475
|
+
- `value`: object - 值对象
|
|
476
|
+
- `sourceType`: 'pageCode' | 'url' - 内容来源类型
|
|
477
|
+
- `url`: string - URL地址(仅在sourceType为'url'时使用)
|
|
478
|
+
- `pageItem`: any - 页面项目信息(仅在sourceType为'pageCode'时使用)
|
|
479
|
+
- `onChange`: Function - 值变化回调
|
|
480
|
+
|
|
481
|
+
**主要功能**:
|
|
482
|
+
- 支持两种来源:页面代码(系统内页面)和URL(外部链接)
|
|
483
|
+
- 页面代码模式:通过弹窗选择器选择系统内的页面
|
|
484
|
+
- URL模式:手动输入HTTPS协议的外部URL,支持实时验证
|
|
485
|
+
|
|
486
|
+
**URL验证规则**:
|
|
487
|
+
- 必须以 https:// 开头
|
|
488
|
+
- 实时验证并提示错误
|
|
489
|
+
- 只有格式正确时才保存数据
|
|
490
|
+
|
|
491
|
+
**使用示例**:
|
|
492
|
+
```json
|
|
493
|
+
{
|
|
494
|
+
"type": "CustomPageSet",
|
|
495
|
+
"name": "pageSource",
|
|
496
|
+
"label": "页面内容来源"
|
|
497
|
+
}
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
---
|
|
501
|
+
|
|
502
|
+
### 21. ParamsSet - 参数设置
|
|
503
|
+
|
|
504
|
+
**组件名称**: `ParamsSet`
|
|
505
|
+
|
|
506
|
+
**功能描述**: 用于配置iframe嵌入页面的参数设置。
|
|
507
|
+
|
|
508
|
+
**主要属性**:
|
|
509
|
+
- `value`: Array<ParamItem> - 参数列表
|
|
510
|
+
- `name`: string - 参数名
|
|
511
|
+
- `type`: '固定值' | '变量' - 参数类型
|
|
512
|
+
- `value`: string - 参数值
|
|
513
|
+
- `id`: string - 唯一标识
|
|
514
|
+
- `onChange`: Function - 值变化回调
|
|
515
|
+
|
|
516
|
+
**主要功能**:
|
|
517
|
+
- 默认显示已配置的参数列表
|
|
518
|
+
- 点击"设置参数"按钮弹出参数配置弹窗
|
|
519
|
+
- 支持参数的增加、删除和修改
|
|
520
|
+
- 参数类型支持固定值和变量
|
|
521
|
+
|
|
522
|
+
**使用示例**:
|
|
523
|
+
```json
|
|
524
|
+
{
|
|
525
|
+
"type": "ParamsSet",
|
|
526
|
+
"name": "params",
|
|
527
|
+
"label": "参数设置"
|
|
528
|
+
}
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
---
|
|
532
|
+
|
|
533
|
+
## 事件配置项
|
|
534
|
+
|
|
535
|
+
### 22. events - 事件配置
|
|
536
|
+
|
|
537
|
+
**功能描述**: 事件配置模块,包含多个子组件。
|
|
538
|
+
|
|
539
|
+
**子组件**:
|
|
540
|
+
- `collection` - 事件集合
|
|
541
|
+
- `event` - 单个事件
|
|
542
|
+
- `action` - 事件动作
|
|
543
|
+
- `function` - 事件函数
|
|
544
|
+
- `editor` - 事件编辑器
|
|
545
|
+
- `expr` - 事件表达式
|
|
546
|
+
|
|
547
|
+
**使用场景**:
|
|
548
|
+
- 组件事件绑定
|
|
549
|
+
- 事件动作配置
|
|
550
|
+
- 事件流程编排
|
|
551
|
+
|
|
552
|
+
---
|
|
553
|
+
|
|
554
|
+
## 辅助配置项
|
|
555
|
+
|
|
556
|
+
### 23. DragList - 拖拽列表
|
|
557
|
+
|
|
558
|
+
**组件名称**: `DragList`(React组件,非amis组件)
|
|
559
|
+
|
|
560
|
+
**功能描述**: 标准属性编辑器,支持拖拽排序、新增、删除列表项。
|
|
561
|
+
|
|
562
|
+
**主要属性**:
|
|
563
|
+
- `onChange`: (data) => void - 排序变化回调
|
|
564
|
+
- `limit`: number - 最大数量限制
|
|
565
|
+
- `group`: ComWithId[] - 列表数据
|
|
566
|
+
- `addText`: string - 添加按钮文本
|
|
567
|
+
- `onAdd`: () => void - 添加回调
|
|
568
|
+
- `onDel`: (item) => void - 删除回调
|
|
569
|
+
- `onInputChange`: (e, item) => void - 输入变化回调
|
|
570
|
+
- `inputProps`: InputProps - Input组件属性
|
|
571
|
+
- `errorMap`: Array<{kId: string, msg: string}> - 错误映射
|
|
572
|
+
- `disabledSituation`: any[] - 禁用情况配置
|
|
573
|
+
- `mode`: 'input' | 'select' | 'input-icon' - 显示模式
|
|
574
|
+
- `selectOptions`: any[] - 选择器选项
|
|
575
|
+
- `optionsSelected`: any[] - 已选中的选项
|
|
576
|
+
|
|
577
|
+
**显示模式**:
|
|
578
|
+
1. `input`: 输入框模式
|
|
579
|
+
2. `select`: 下拉选择模式
|
|
580
|
+
3. `input-icon`: 输入框+图标模式
|
|
581
|
+
|
|
582
|
+
**使用场景**:
|
|
583
|
+
- 表单分组管理
|
|
584
|
+
- 按钮列表管理
|
|
585
|
+
- 任何需要拖拽排序的列表
|
|
586
|
+
|
|
587
|
+
---
|
|
588
|
+
|
|
589
|
+
### 24. Collapse - 折叠面板
|
|
590
|
+
|
|
591
|
+
**组件名称**: `Collapse`(React组件)
|
|
592
|
+
|
|
593
|
+
**功能描述**: 属性面板折叠容器,支持展开/收起内容。
|
|
594
|
+
|
|
595
|
+
**主要属性**:
|
|
596
|
+
- `children`: React.ReactNode - 子内容
|
|
597
|
+
- `title`: string - 标题文本
|
|
598
|
+
|
|
599
|
+
**使用示例**:
|
|
600
|
+
```javascript
|
|
601
|
+
<Collapse title="高级设置">
|
|
602
|
+
{/* 配置项内容 */}
|
|
603
|
+
</Collapse>
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
---
|
|
607
|
+
|
|
608
|
+
### 25. IconView - 图标展示
|
|
609
|
+
|
|
610
|
+
**组件名称**: `IconView`(React组件)
|
|
611
|
+
|
|
612
|
+
**功能描述**: 图标展示组件,封装了NeoIcons。
|
|
613
|
+
|
|
614
|
+
**主要属性**:
|
|
615
|
+
- `name`: string - 图标名称
|
|
616
|
+
- `size`: number - 图标大小
|
|
617
|
+
- `style`: React.CSSProperties - 自定义样式
|
|
618
|
+
|
|
619
|
+
---
|
|
620
|
+
|
|
621
|
+
### 26. ImgIcon - 图片图标
|
|
622
|
+
|
|
623
|
+
**组件名称**: `ImgIcon`(React组件)
|
|
624
|
+
|
|
625
|
+
**功能描述**: 临时使用的图片图标组件,用于显示icon库中暂时没有的图标。
|
|
626
|
+
|
|
627
|
+
**支持的类型**:
|
|
628
|
+
- `formHeader` - 表单头部图标
|
|
629
|
+
- `formFooter` - 表单底部图标
|
|
630
|
+
- `fx-light` - 公式图标(高亮)
|
|
631
|
+
- `fx-gray` - 公式图标(灰色)
|
|
632
|
+
- `boolean-field` - 布尔字段图标
|
|
633
|
+
- `real-number` - 实数图标
|
|
634
|
+
|
|
635
|
+
**主要属性**:
|
|
636
|
+
- `type`: string - 图标类型
|
|
637
|
+
- `onClick`: Function - 点击回调
|
|
638
|
+
- `style`: React.CSSProperties - 自定义样式
|
|
639
|
+
- `size`: number - 图标大小
|
|
640
|
+
|
|
641
|
+
**注意**: 此组件只做临时使用,后续会删除。
|
|
642
|
+
|
|
643
|
+
---
|
|
644
|
+
|
|
645
|
+
### 27. IDButton - 按钮组件
|
|
646
|
+
|
|
647
|
+
**组件名称**: `IDButton`(React组件)
|
|
648
|
+
|
|
649
|
+
**功能描述**: 自定义按钮组件,支持自定义加载状态。
|
|
650
|
+
|
|
651
|
+
**主要属性**:
|
|
652
|
+
- 继承Antd Button的所有属性
|
|
653
|
+
- `loading`: boolean - 加载状态
|
|
654
|
+
- 加载时显示自定义的 IDLoading 组件
|
|
655
|
+
|
|
656
|
+
**使用示例**:
|
|
657
|
+
```javascript
|
|
658
|
+
<IDButton loading={true} type="primary">
|
|
659
|
+
保存
|
|
660
|
+
</IDButton>
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
---
|
|
664
|
+
|
|
665
|
+
### 28. IDLoading - 加载指示器
|
|
666
|
+
|
|
667
|
+
**组件名称**: `IDLoading`(React组件)
|
|
668
|
+
|
|
669
|
+
**功能描述**: 自定义加载指示器组件,用于按钮和其他组件的加载状态。
|
|
670
|
+
|
|
671
|
+
---
|
|
672
|
+
|
|
673
|
+
### 29. AttributeLibrary - 属性库
|
|
674
|
+
|
|
675
|
+
**组件名称**: `AttributeLibrary`(React组件)
|
|
676
|
+
|
|
677
|
+
**功能描述**: 属性库展示组件,以抽屉形式展示系统支持的所有属性。
|
|
678
|
+
|
|
679
|
+
**主要属性**:
|
|
680
|
+
- `open`: boolean - 是否打开
|
|
681
|
+
- `onClose`: Function - 关闭回调
|
|
682
|
+
|
|
683
|
+
**主要功能**:
|
|
684
|
+
- 左侧树形菜单展示属性分类
|
|
685
|
+
- 右侧展示选中属性的详细信息
|
|
686
|
+
- 支持属性搜索和查看
|
|
687
|
+
- 包含属性的入参、类型、描述等信息
|
|
688
|
+
|
|
689
|
+
---
|
|
690
|
+
|
|
691
|
+
### 30. FunctionLibraryPanel - 函数库
|
|
692
|
+
|
|
693
|
+
**组件名称**: `FunctionLibraryPanel`(React组件)
|
|
694
|
+
|
|
695
|
+
**功能描述**: 函数库展示组件,以抽屉形式展示系统支持的所有函数。
|
|
696
|
+
|
|
697
|
+
**主要属性**:
|
|
698
|
+
- `open`: boolean - 是否打开
|
|
699
|
+
- `onClose`: Function - 关闭回调
|
|
700
|
+
|
|
701
|
+
**主要功能**:
|
|
702
|
+
- 左侧树形菜单展示函数分类
|
|
703
|
+
- 右侧展示选中函数的详细信息
|
|
704
|
+
- 包含函数的入参、返回值、示例等信息
|
|
705
|
+
|
|
706
|
+
---
|
|
707
|
+
|
|
708
|
+
### 31. emptyPanel - 空面板
|
|
709
|
+
|
|
710
|
+
**组件名称**: `emptyPanel`(推测)
|
|
711
|
+
|
|
712
|
+
**功能描述**: 空白占位面板,用于没有可配置属性的场景。
|
|
713
|
+
|
|
714
|
+
---
|
|
715
|
+
|
|
716
|
+
### 32. modeSelect - 模式选择器
|
|
717
|
+
|
|
718
|
+
**组件名称**: `modeSelect`(未详细实现)
|
|
719
|
+
|
|
720
|
+
**功能描述**: 用于选择组件的不同模式。
|
|
721
|
+
|
|
722
|
+
---
|
|
723
|
+
|
|
724
|
+
### 33. formFieldsSet - 表单字段设置
|
|
725
|
+
|
|
726
|
+
**组件名称**: `formFieldsSet`(推测)
|
|
727
|
+
|
|
728
|
+
**功能描述**: 联系人作战地图基础信息设置面板。
|
|
729
|
+
|
|
730
|
+
---
|
|
731
|
+
|
|
732
|
+
### 34. csgCardPanel - CSG卡片面板
|
|
733
|
+
|
|
734
|
+
**组件名称**: `csgCardPanel`(推测)
|
|
735
|
+
|
|
736
|
+
**功能描述**: 联系人作战地图卡片设置面板。
|
|
737
|
+
|
|
738
|
+
---
|
|
739
|
+
|
|
740
|
+
|
|
741
|
+
### 35. businessTypePanel - 业务类型面板
|
|
742
|
+
|
|
743
|
+
**组件名称**: `businessTypePanel`(未完成)
|
|
744
|
+
|
|
745
|
+
**功能描述**: 实体属性面板,暂未使用,亦未开发完。
|
|
746
|
+
|
|
747
|
+
**注意**: 这是一个未完成的组件,目前只是占位。
|
|
748
|
+
|
|
749
|
+
---
|
|
750
|
+
|
|
751
|
+
|
|
752
|
+
## 配置项注册机制
|
|
753
|
+
|
|
754
|
+
所有属性配置项通过以下方式注册到系统:
|
|
755
|
+
|
|
756
|
+
### 1. Amis 渲染器注册
|
|
757
|
+
|
|
758
|
+
使用 `@Renderer` 装饰器注册:
|
|
759
|
+
|
|
760
|
+
```typescript
|
|
761
|
+
@Renderer({
|
|
762
|
+
name: 'panelInput',
|
|
763
|
+
test: /(?:^|\/)panelInput$/i,
|
|
764
|
+
})
|
|
765
|
+
export default class ComponentRenderer extends React.Component {
|
|
766
|
+
// ...
|
|
767
|
+
}
|
|
768
|
+
```
|
|
769
|
+
|
|
770
|
+
### 2. PropertyEditor 注册
|
|
771
|
+
|
|
772
|
+
特殊属性通过 PropertyEditor 注册:
|
|
773
|
+
|
|
774
|
+
```typescript
|
|
775
|
+
PropertyEditor.register(
|
|
776
|
+
{ itemType: '999', apiKey: '$alias' },
|
|
777
|
+
'PropertyAliasEditor'
|
|
778
|
+
);
|
|
779
|
+
```
|
|
780
|
+
|
|
781
|
+
### 3. 直接导入注册
|
|
782
|
+
|
|
783
|
+
某些配置项通过直接导入方式注册:
|
|
784
|
+
|
|
785
|
+
```typescript
|
|
786
|
+
import './input';
|
|
787
|
+
import './fieldSetting';
|
|
788
|
+
import './events';
|
|
789
|
+
```
|
|
790
|
+
|
|
791
|
+
---
|
|
792
|
+
|
|
793
|
+
## 使用指南
|
|
794
|
+
|
|
795
|
+
### 在属性面板配置中使用
|
|
796
|
+
|
|
797
|
+
属性配置项通常在组件的 propsSchema 中定义:
|
|
798
|
+
|
|
799
|
+
```typescript
|
|
800
|
+
const propsSchema = {
|
|
801
|
+
type: 'form',
|
|
802
|
+
body: [
|
|
803
|
+
{
|
|
804
|
+
type: 'panelInput',
|
|
805
|
+
name: 'title',
|
|
806
|
+
label: '标题',
|
|
807
|
+
helpText: '请输入组件标题'
|
|
808
|
+
},
|
|
809
|
+
{
|
|
810
|
+
type: 'panelSelect',
|
|
811
|
+
name: 'visible',
|
|
812
|
+
label: '是否可见',
|
|
813
|
+
options: [
|
|
814
|
+
{ label: '是', value: true },
|
|
815
|
+
{ label: '否', value: false }
|
|
816
|
+
]
|
|
817
|
+
},
|
|
818
|
+
{
|
|
819
|
+
type: 'xObjectDataApi',
|
|
820
|
+
name: 'dataSource',
|
|
821
|
+
label: '数据源配置'
|
|
822
|
+
}
|
|
823
|
+
]
|
|
824
|
+
};
|
|
825
|
+
```
|
|
826
|
+
|
|
827
|
+
### 直接使用React组件
|
|
828
|
+
|
|
829
|
+
某些配置项可以作为React组件直接使用:
|
|
830
|
+
|
|
831
|
+
```typescript
|
|
832
|
+
import { ExpressionInput } from '../expressionInput';
|
|
833
|
+
import { VarSelector } from '../varSelector';
|
|
834
|
+
import { DragList } from '../DragList';
|
|
835
|
+
|
|
836
|
+
// 在组件中使用
|
|
837
|
+
<ExpressionInput
|
|
838
|
+
isPopover={true}
|
|
839
|
+
expressionObj={{ enabled: true, expression: '' }}
|
|
840
|
+
onChangeValue={(value) => console.log(value)}
|
|
841
|
+
/>
|
|
842
|
+
|
|
843
|
+
<VarSelector
|
|
844
|
+
treeData={varStructData}
|
|
845
|
+
onChange={(value) => console.log(value)}
|
|
846
|
+
/>
|
|
847
|
+
|
|
848
|
+
<DragList
|
|
849
|
+
group={listData}
|
|
850
|
+
onAdd={handleAdd}
|
|
851
|
+
onDel={handleDel}
|
|
852
|
+
onChange={handleChange}
|
|
853
|
+
/>
|
|
854
|
+
```
|
|
855
|
+
|
|
856
|
+
---
|