@qingflow-tech/qingflow-cli 1.1.43-beta.1 → 1.1.43-beta.3

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.
Files changed (66) hide show
  1. package/README.md +12 -5
  2. package/entry_point.py +1 -1
  3. package/npm/bin/qingflow.mjs +1 -2
  4. package/npm/lib/runtime.mjs +3 -7
  5. package/package.json +1 -2
  6. package/pyproject.toml +1 -3
  7. package/skills/qingflow-app-form/SKILL.md +63 -0
  8. package/skills/qingflow-app-form/agents/openai.yaml +4 -0
  9. package/skills/qingflow-cli/SKILL.md +8 -6
  10. package/skills/qingflow-cli/manifest.yaml +1 -1
  11. package/skills/qingflow-cli/reference/QINGFLOW_CLI_BUILDER_APP_DELIVERY_WORKFLOW.md +4 -4
  12. package/skills/qingflow-cli/reference/QINGFLOW_CLI_EXPLORATION_REPORT.md +1 -1
  13. package/skills/qingflow-cli/reference/QINGFLOW_CLI_FIELD_DATA_TYPES.md +1 -1
  14. package/skills/qingflow-cli/reference/QINGFLOW_CLI_SCHEMA_APPLY_FIELD_TYPES_AND_SCENARIOS.md +4 -4
  15. package/skills/qingflow-cli/reference/builder/10-build-single-app.md +5 -5
  16. package/skills/qingflow-cli/reference/builder/20-build-complete-system.md +14 -14
  17. package/skills/qingflow-cli/reference/builder/30-schema-fields.md +98 -101
  18. package/skills/qingflow-cli/reference/builder/40-layout.md +39 -31
  19. package/skills/qingflow-cli/reference/builder/README.md +9 -9
  20. package/skills/qingflow-cli/reference/builder/code-integrations/README.md +4 -2
  21. package/skills/qingflow-cli/reference/builder/code-integrations/code-block.md +2 -0
  22. package/skills/qingflow-cli/reference/builder/code-integrations/q-linker.md +2 -0
  23. package/skills/qingflow-cli/reference/builder/reference/app-delivery-sop.md +45 -38
  24. package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_EXPLORATION_REPORT.md +1 -1
  25. package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_FIELD_DATA_TYPES.md +1 -1
  26. package/skills/qingflow-cli/reference/examples/README.md +3 -3
  27. package/skills/qingflow-common/SKILL.md +47 -0
  28. package/skills/qingflow-common/agents/openai.yaml +4 -0
  29. package/src/qingflow_mcp/__main__.py +2 -3
  30. package/src/qingflow_mcp/app_form_compat.py +6 -1
  31. package/src/qingflow_mcp/builder_facade/app_form.py +547 -18
  32. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/complete.json +1321 -178
  33. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/address.json +268 -7
  34. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/amount.json +115 -10
  35. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/attachment.json +304 -7
  36. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/code_block.json +23 -4
  37. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/data_relation.json +23 -4
  38. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/date.json +23 -4
  39. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/datetime.json +23 -4
  40. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/department.json +145 -4
  41. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/email.json +69 -10
  42. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/link.json +69 -10
  43. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/long_text.json +69 -10
  44. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/member.json +360 -7
  45. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/multi_select.json +71 -4
  46. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/number.json +115 -10
  47. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/phone.json +78 -10
  48. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/q_linker.json +23 -4
  49. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/relation.json +249 -4
  50. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_choice.json +71 -4
  51. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_select.json +71 -4
  52. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/subtable.json +1041 -20
  53. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/text.json +69 -10
  54. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/summary.json +23 -0
  55. package/src/qingflow_mcp/response_trim.py +41 -1
  56. package/src/qingflow_mcp/server.py +24 -3
  57. package/src/qingflow_mcp/server_app_builder.py +1 -1
  58. package/src/qingflow_mcp/tools/record_tools.py +3 -3
  59. package/src/qingflow_mcp/version.py +2 -4
  60. package/docs/local-agent-install.md +0 -370
  61. package/skills/qingflow-mcp-setup/SKILL.md +0 -115
  62. package/skills/qingflow-mcp-setup/agents/openai.yaml +0 -4
  63. package/skills/qingflow-mcp-setup/references/claude-desktop.md +0 -34
  64. package/skills/qingflow-mcp-setup/references/environments.md +0 -62
  65. package/skills/qingflow-mcp-setup/references/generic-stdio.md +0 -32
  66. package/skills/qingflow-mcp-setup/scripts/check_local_server.sh +0 -38
@@ -1,5 +1,48 @@
1
1
  {
2
2
  "$defs": {
3
+ "AddressConfig": {
4
+ "additionalProperties": false,
5
+ "description": "地址精度、定位和扫码配置;defaultValues 使用 AnswerDetail 结构。",
6
+ "properties": {
7
+ "addressPrecision": {
8
+ "minimum": 0,
9
+ "type": [
10
+ "integer",
11
+ "null"
12
+ ]
13
+ },
14
+ "canScan": {
15
+ "type": [
16
+ "boolean",
17
+ "null"
18
+ ]
19
+ },
20
+ "defaultValues": {
21
+ "oneOf": [
22
+ {
23
+ "type": "null"
24
+ },
25
+ {
26
+ "$ref": "#/$defs/DefaultValues"
27
+ }
28
+ ]
29
+ },
30
+ "pickPosition": {
31
+ "type": [
32
+ "boolean",
33
+ "null"
34
+ ]
35
+ },
36
+ "scanType": {
37
+ "minimum": 0,
38
+ "type": [
39
+ "integer",
40
+ "null"
41
+ ]
42
+ }
43
+ },
44
+ "type": "object"
45
+ },
3
46
  "AliasSelector": {
4
47
  "additionalProperties": false,
5
48
  "description": "Q-Linker 或代码块输出别名;已有输出优先携带 aliasId。",
@@ -20,6 +63,72 @@
20
63
  ],
21
64
  "type": "object"
22
65
  },
66
+ "AnswerValue": {
67
+ "additionalProperties": false,
68
+ "properties": {
69
+ "dataValue": {
70
+ "type": [
71
+ "string",
72
+ "null"
73
+ ]
74
+ },
75
+ "email": {
76
+ "type": [
77
+ "string",
78
+ "null"
79
+ ]
80
+ },
81
+ "id": {
82
+ "type": [
83
+ "integer",
84
+ "null"
85
+ ]
86
+ },
87
+ "optionId": {
88
+ "type": [
89
+ "string",
90
+ "null"
91
+ ]
92
+ },
93
+ "ordinal": {
94
+ "type": [
95
+ "integer",
96
+ "null"
97
+ ]
98
+ },
99
+ "otherInfo": {
100
+ "type": [
101
+ "string",
102
+ "null"
103
+ ]
104
+ },
105
+ "pluginValue": {
106
+ "type": [
107
+ "string",
108
+ "null"
109
+ ]
110
+ },
111
+ "queId": {
112
+ "type": [
113
+ "integer",
114
+ "null"
115
+ ]
116
+ },
117
+ "value": {
118
+ "type": [
119
+ "string",
120
+ "null"
121
+ ]
122
+ },
123
+ "valueStr": {
124
+ "type": [
125
+ "string",
126
+ "null"
127
+ ]
128
+ }
129
+ },
130
+ "type": "object"
131
+ },
23
132
  "AppFormSpec": {
24
133
  "additionalProperties": false,
25
134
  "description": "表单基础配置与字段布局目标态;除 body 外,缺失属性表示保留当前值。",
@@ -111,6 +220,82 @@
111
220
  ],
112
221
  "type": "object"
113
222
  },
223
+ "AttachmentConfig": {
224
+ "additionalProperties": false,
225
+ "description": "附件字段上传限制。",
226
+ "properties": {
227
+ "canScan": {
228
+ "type": [
229
+ "boolean",
230
+ "null"
231
+ ]
232
+ },
233
+ "defaultValues": {
234
+ "oneOf": [
235
+ {
236
+ "type": "null"
237
+ },
238
+ {
239
+ "$ref": "#/$defs/DefaultValues"
240
+ }
241
+ ]
242
+ },
243
+ "fileBeingCaptureOnly": {
244
+ "minimum": 0,
245
+ "type": [
246
+ "integer",
247
+ "null"
248
+ ]
249
+ },
250
+ "fileSize": {
251
+ "minimum": 1,
252
+ "type": [
253
+ "integer",
254
+ "null"
255
+ ]
256
+ },
257
+ "fileType": {
258
+ "items": {
259
+ "minLength": 1,
260
+ "type": "string"
261
+ },
262
+ "type": "array"
263
+ },
264
+ "imageCompress": {
265
+ "type": [
266
+ "boolean",
267
+ "null"
268
+ ]
269
+ },
270
+ "maxFileLimit": {
271
+ "minimum": 1,
272
+ "type": [
273
+ "integer",
274
+ "null"
275
+ ]
276
+ },
277
+ "maxFileLimitStatus": {
278
+ "type": [
279
+ "boolean",
280
+ "null"
281
+ ]
282
+ },
283
+ "pluginStatus": {
284
+ "type": [
285
+ "boolean",
286
+ "null"
287
+ ]
288
+ },
289
+ "scanType": {
290
+ "minimum": 0,
291
+ "type": [
292
+ "integer",
293
+ "null"
294
+ ]
295
+ }
296
+ },
297
+ "type": "object"
298
+ },
114
299
  "Body": {
115
300
  "description": "有序表单内容块;空数组表示删除全部业务字段和段落。",
116
301
  "items": {
@@ -133,6 +318,54 @@
133
318
  "additionalProperties": false,
134
319
  "description": "选择类字段配置。",
135
320
  "properties": {
321
+ "beingShowColor": {
322
+ "description": "是否展示选项颜色。",
323
+ "type": [
324
+ "boolean",
325
+ "null"
326
+ ]
327
+ },
328
+ "defaultOptions": {
329
+ "description": "选项默认选中状态;值必须来自 options,省略表示保留现有状态。",
330
+ "items": {
331
+ "minLength": 1,
332
+ "type": "string"
333
+ },
334
+ "type": "array",
335
+ "uniqueItems": true
336
+ },
337
+ "maxOpts": {
338
+ "description": "最多选择项数;null 表示不限制。",
339
+ "minimum": 0,
340
+ "type": [
341
+ "integer",
342
+ "null"
343
+ ]
344
+ },
345
+ "minOpts": {
346
+ "description": "最少选择项数;null 表示不限制。",
347
+ "minimum": 0,
348
+ "type": [
349
+ "integer",
350
+ "null"
351
+ ]
352
+ },
353
+ "optDirection": {
354
+ "description": "选项排列方向 ID。",
355
+ "minimum": 0,
356
+ "type": [
357
+ "integer",
358
+ "null"
359
+ ]
360
+ },
361
+ "optSelectMode": {
362
+ "description": "多项选择模式 ID。",
363
+ "minimum": 0,
364
+ "type": [
365
+ "integer",
366
+ "null"
367
+ ]
368
+ },
136
369
  "options": {
137
370
  "description": "非空有序选项文案;缺失选项表示从该字段配置中删除。",
138
371
  "items": {
@@ -659,208 +892,751 @@
659
892
  }
660
893
  ]
661
894
  },
662
- "DepartmentConfig": {
895
+ "DefaultValues": {
663
896
  "additionalProperties": false,
664
- "description": "部门字段的可选范围配置。",
665
897
  "properties": {
666
- "departmentScope": {
667
- "$ref": "#/$defs/DepartmentScope"
668
- }
669
- },
670
- "required": [
671
- "departmentScope"
672
- ],
673
- "type": "object"
674
- },
675
- "DepartmentScope": {
676
- "description": "all 表示全部部门;custom 表示仅允许指定部门。",
677
- "oneOf": [
678
- {
679
- "additionalProperties": false,
680
- "properties": {
681
- "includeSubDeparts": {
682
- "description": "是否包含所选部门的下级部门。",
683
- "type": "boolean"
684
- },
685
- "mode": {
686
- "const": "all"
687
- }
688
- },
689
- "required": [
690
- "mode"
691
- ],
692
- "type": "object"
898
+ "associatedQueType": {
899
+ "type": [
900
+ "integer",
901
+ "null"
902
+ ]
693
903
  },
694
- {
695
- "additionalProperties": false,
696
- "properties": {
697
- "departments": {
698
- "description": "custom 模式允许选择的部门列表。",
699
- "items": {
700
- "$ref": "#/$defs/DepartmentSelector"
701
- },
702
- "minItems": 1,
703
- "type": "array"
704
- },
705
- "includeSubDeparts": {
706
- "description": "是否包含指定部门的下级部门。",
707
- "type": "boolean"
708
- },
709
- "mode": {
710
- "const": "custom"
711
- }
712
- },
713
- "required": [
714
- "mode",
715
- "departments"
716
- ],
717
- "type": "object"
718
- }
719
- ]
720
- },
721
- "DepartmentSelector": {
722
- "additionalProperties": false,
723
- "description": "部门身份;deptId 必填,deptName 仅用于展示。",
724
- "properties": {
725
- "deptId": {
904
+ "beingCanDecrypted": {
905
+ "type": [
906
+ "boolean",
907
+ "null"
908
+ ]
909
+ },
910
+ "beingDesensitized": {
911
+ "type": [
912
+ "boolean",
913
+ "null"
914
+ ]
915
+ },
916
+ "canDecimal": {
917
+ "type": [
918
+ "boolean",
919
+ "null"
920
+ ]
921
+ },
922
+ "currencyStatus": {
923
+ "type": [
924
+ "boolean",
925
+ "null"
926
+ ]
927
+ },
928
+ "currencyType": {
929
+ "type": [
930
+ "integer",
931
+ "null"
932
+ ]
933
+ },
934
+ "dateType": {
935
+ "type": [
936
+ "integer",
937
+ "null"
938
+ ]
939
+ },
940
+ "decimalDigit": {
941
+ "type": [
942
+ "integer",
943
+ "null"
944
+ ]
945
+ },
946
+ "numberFormat": {
947
+ "type": [
948
+ "integer",
949
+ "null"
950
+ ]
951
+ },
952
+ "queId": {
953
+ "type": [
954
+ "integer",
955
+ "null"
956
+ ]
957
+ },
958
+ "queTitle": {
959
+ "type": [
960
+ "string",
961
+ "null"
962
+ ]
963
+ },
964
+ "queType": {
965
+ "type": [
966
+ "integer",
967
+ "null"
968
+ ]
969
+ },
970
+ "referValues": {
971
+ "items": {
972
+ "$ref": "#/$defs/ReferenceDefaultValue"
973
+ },
974
+ "type": "array"
975
+ },
976
+ "rowId": {
977
+ "type": [
978
+ "integer",
979
+ "null"
980
+ ]
981
+ },
982
+ "sourceValue": {
983
+ "type": [
984
+ "string",
985
+ "null"
986
+ ]
987
+ },
988
+ "tableValues": {
989
+ "items": {
990
+ "items": {
991
+ "$ref": "#/$defs/DefaultValues"
992
+ },
993
+ "type": "array"
994
+ },
995
+ "type": "array"
996
+ },
997
+ "values": {
998
+ "items": {
999
+ "$ref": "#/$defs/AnswerValue"
1000
+ },
1001
+ "type": "array"
1002
+ }
1003
+ },
1004
+ "required": [
1005
+ "values"
1006
+ ],
1007
+ "type": "object"
1008
+ },
1009
+ "DepartmentConfig": {
1010
+ "additionalProperties": false,
1011
+ "description": "部门字段的可选范围配置。",
1012
+ "properties": {
1013
+ "beingShowParentPath": {
1014
+ "type": [
1015
+ "boolean",
1016
+ "null"
1017
+ ]
1018
+ },
1019
+ "canScan": {
1020
+ "type": [
1021
+ "boolean",
1022
+ "null"
1023
+ ]
1024
+ },
1025
+ "defaultDepartments": {
1026
+ "$ref": "#/$defs/DepartmentScope"
1027
+ },
1028
+ "departmentScope": {
1029
+ "$ref": "#/$defs/DepartmentScope"
1030
+ },
1031
+ "departmentScopeRelation": {
1032
+ "$ref": "#/$defs/SelectScopeRelation"
1033
+ },
1034
+ "noRepeat": {
1035
+ "type": [
1036
+ "boolean",
1037
+ "null"
1038
+ ]
1039
+ },
1040
+ "scanType": {
1041
+ "minimum": 0,
1042
+ "type": [
1043
+ "integer",
1044
+ "null"
1045
+ ]
1046
+ }
1047
+ },
1048
+ "required": [
1049
+ "departmentScope"
1050
+ ],
1051
+ "type": "object"
1052
+ },
1053
+ "DepartmentScope": {
1054
+ "description": "all 表示全部部门;custom 表示仅允许指定部门。",
1055
+ "oneOf": [
1056
+ {
1057
+ "additionalProperties": false,
1058
+ "properties": {
1059
+ "includeSubDeparts": {
1060
+ "description": "是否包含所选部门的下级部门。",
1061
+ "type": "boolean"
1062
+ },
1063
+ "mode": {
1064
+ "const": "all"
1065
+ }
1066
+ },
1067
+ "required": [
1068
+ "mode"
1069
+ ],
1070
+ "type": "object"
1071
+ },
1072
+ {
1073
+ "additionalProperties": false,
1074
+ "properties": {
1075
+ "departments": {
1076
+ "description": "custom 模式允许选择的部门列表。",
1077
+ "items": {
1078
+ "$ref": "#/$defs/DepartmentSelector"
1079
+ },
1080
+ "minItems": 1,
1081
+ "type": "array"
1082
+ },
1083
+ "includeSubDeparts": {
1084
+ "description": "是否包含指定部门的下级部门。",
1085
+ "type": "boolean"
1086
+ },
1087
+ "mode": {
1088
+ "const": "custom"
1089
+ }
1090
+ },
1091
+ "required": [
1092
+ "mode",
1093
+ "departments"
1094
+ ],
1095
+ "type": "object"
1096
+ },
1097
+ {
1098
+ "additionalProperties": false,
1099
+ "properties": {
1100
+ "includeSubDeparts": {
1101
+ "type": "boolean"
1102
+ },
1103
+ "mode": {
1104
+ "const": "relation"
1105
+ }
1106
+ },
1107
+ "required": [
1108
+ "mode"
1109
+ ],
1110
+ "type": "object"
1111
+ }
1112
+ ]
1113
+ },
1114
+ "DepartmentSelector": {
1115
+ "additionalProperties": false,
1116
+ "description": "部门身份;deptId 必填,deptName 仅用于展示。",
1117
+ "properties": {
1118
+ "deptId": {
1119
+ "minimum": 1,
1120
+ "type": "integer"
1121
+ },
1122
+ "deptName": {
1123
+ "minLength": 1,
1124
+ "type": "string"
1125
+ }
1126
+ },
1127
+ "required": [
1128
+ "deptId"
1129
+ ],
1130
+ "type": "object"
1131
+ },
1132
+ "DynamicMemberSelector": {
1133
+ "additionalProperties": false,
1134
+ "properties": {
1135
+ "queId": {
1136
+ "type": "integer"
1137
+ },
1138
+ "queTitle": {
1139
+ "type": "string"
1140
+ },
1141
+ "type": {
1142
+ "minimum": 1,
1143
+ "type": "integer"
1144
+ }
1145
+ },
1146
+ "required": [
1147
+ "type"
1148
+ ],
1149
+ "type": "object"
1150
+ },
1151
+ "EmptyConfig": {
1152
+ "additionalProperties": false,
1153
+ "description": "该字段类型没有特殊配置。",
1154
+ "type": "object"
1155
+ },
1156
+ "ExternalDepartmentSelector": {
1157
+ "additionalProperties": false,
1158
+ "properties": {
1159
+ "deptId": {
726
1160
  "minimum": 1,
727
1161
  "type": "integer"
728
1162
  },
729
1163
  "deptName": {
1164
+ "type": "string"
1165
+ }
1166
+ },
1167
+ "required": [
1168
+ "deptId"
1169
+ ],
1170
+ "type": "object"
1171
+ },
1172
+ "ExternalMemberSelector": {
1173
+ "additionalProperties": false,
1174
+ "properties": {
1175
+ "email": {
1176
+ "type": "string"
1177
+ },
1178
+ "nickName": {
1179
+ "type": "string"
1180
+ },
1181
+ "uid": {
1182
+ "minimum": 1,
1183
+ "type": "integer"
1184
+ }
1185
+ },
1186
+ "required": [
1187
+ "uid"
1188
+ ],
1189
+ "type": "object"
1190
+ },
1191
+ "FieldCommon": {
1192
+ "description": "顶层业务字段的公共属性;字段类型由 TopField 的判别分支定义。",
1193
+ "properties": {
1194
+ "dataTitle": {
1195
+ "description": "是否作为数据标题;整个 body 最多且必须按规则存在一个。",
1196
+ "type": "boolean"
1197
+ },
1198
+ "defaultType": {
1199
+ "default": 1,
1200
+ "description": "默认值类型;1 表示静态值,2 表示关联/绑定值,3 表示公式值。",
1201
+ "enum": [
1202
+ 1,
1203
+ 2,
1204
+ 3
1205
+ ],
1206
+ "type": "integer"
1207
+ },
1208
+ "defaultValue": {
1209
+ "$ref": "#/$defs/ScalarDefaultValue",
1210
+ "description": "普通字段的标量默认值;表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
1211
+ },
1212
+ "description": {
1213
+ "description": "字段说明;null 或空字符串表示清空。",
1214
+ "type": [
1215
+ "string",
1216
+ "null"
1217
+ ]
1218
+ },
1219
+ "name": {
1220
+ "description": "字段展示名称;同一父级内唯一,不单独作为字段身份。",
1221
+ "minLength": 1,
1222
+ "type": "string"
1223
+ },
1224
+ "queId": {
1225
+ "description": "已有字段的后端 ID;get 返回,新增字段省略。",
1226
+ "minimum": 1,
1227
+ "type": "integer"
1228
+ },
1229
+ "required": {
1230
+ "description": "是否必填;缺失时保留已有字段当前值。",
1231
+ "type": "boolean"
1232
+ },
1233
+ "width": {
1234
+ "description": "字段在所在行的宽度百分比;同一行要么全部提供且合计 100,要么全部省略。",
1235
+ "maximum": 100,
1236
+ "minimum": 1,
1237
+ "type": "integer"
1238
+ }
1239
+ },
1240
+ "required": [
1241
+ "name"
1242
+ ],
1243
+ "type": "object"
1244
+ },
1245
+ "FieldRow": {
1246
+ "additionalProperties": false,
1247
+ "description": "段落内部字段行。",
1248
+ "properties": {
1249
+ "fields": {
1250
+ "description": "本行的 1 到 4 个顶层字段。",
1251
+ "items": {
1252
+ "$ref": "#/$defs/TopField"
1253
+ },
1254
+ "maxItems": 4,
1255
+ "minItems": 1,
1256
+ "type": "array"
1257
+ }
1258
+ },
1259
+ "required": [
1260
+ "fields"
1261
+ ],
1262
+ "type": "object"
1263
+ },
1264
+ "FieldSelector": {
1265
+ "additionalProperties": false,
1266
+ "anyOf": [
1267
+ {
1268
+ "required": [
1269
+ "queId"
1270
+ ]
1271
+ },
1272
+ {
1273
+ "required": [
1274
+ "name"
1275
+ ]
1276
+ }
1277
+ ],
1278
+ "description": "跨字段引用选择器;至少提供 queId 或 name,两者同时提供时必须指向同一字段。",
1279
+ "properties": {
1280
+ "name": {
1281
+ "description": "字段名称;仅在当前作用域内唯一时可用于解析。",
1282
+ "minLength": 1,
1283
+ "type": "string"
1284
+ },
1285
+ "queId": {
1286
+ "description": "已有字段的后端 ID;优先用于精确解析。",
1287
+ "minimum": 1,
1288
+ "type": "integer"
1289
+ }
1290
+ },
1291
+ "type": "object"
1292
+ },
1293
+ "JsonValue": {
1294
+ "description": "数据关联字面量支持的任意 JSON 值。",
1295
+ "oneOf": [
1296
+ {
1297
+ "type": "null"
1298
+ },
1299
+ {
1300
+ "type": "boolean"
1301
+ },
1302
+ {
1303
+ "type": "number"
1304
+ },
1305
+ {
1306
+ "type": "string"
1307
+ },
1308
+ {
1309
+ "items": {
1310
+ "$ref": "#/$defs/JsonValue"
1311
+ },
1312
+ "type": "array"
1313
+ },
1314
+ {
1315
+ "additionalProperties": {
1316
+ "$ref": "#/$defs/JsonValue"
1317
+ },
1318
+ "type": "object"
1319
+ }
1320
+ ]
1321
+ },
1322
+ "MemberConfig": {
1323
+ "additionalProperties": false,
1324
+ "description": "成员字段的选择范围和默认成员。",
1325
+ "properties": {
1326
+ "canScan": {
1327
+ "type": [
1328
+ "boolean",
1329
+ "null"
1330
+ ]
1331
+ },
1332
+ "defaultMembers": {
1333
+ "$ref": "#/$defs/MemberScope"
1334
+ },
1335
+ "memberScope": {
1336
+ "$ref": "#/$defs/MemberScope"
1337
+ },
1338
+ "memberScopeRelation": {
1339
+ "$ref": "#/$defs/SelectScopeRelation"
1340
+ },
1341
+ "noRepeat": {
1342
+ "type": [
1343
+ "boolean",
1344
+ "null"
1345
+ ]
1346
+ },
1347
+ "scanType": {
1348
+ "minimum": 0,
1349
+ "type": [
1350
+ "integer",
1351
+ "null"
1352
+ ]
1353
+ }
1354
+ },
1355
+ "type": "object"
1356
+ },
1357
+ "MemberScope": {
1358
+ "description": "成员字段可选范围;all 为工作区全部成员,custom 为显式成员/部门/角色或动态成员,relation 为按字段关联。",
1359
+ "oneOf": [
1360
+ {
1361
+ "additionalProperties": false,
1362
+ "properties": {
1363
+ "includeSubDeparts": {
1364
+ "type": "boolean"
1365
+ },
1366
+ "mode": {
1367
+ "const": "all"
1368
+ }
1369
+ },
1370
+ "required": [
1371
+ "mode"
1372
+ ],
1373
+ "type": "object"
1374
+ },
1375
+ {
1376
+ "additionalProperties": false,
1377
+ "properties": {
1378
+ "departments": {
1379
+ "items": {
1380
+ "$ref": "#/$defs/DepartmentSelector"
1381
+ },
1382
+ "type": "array"
1383
+ },
1384
+ "dynamic": {
1385
+ "items": {
1386
+ "$ref": "#/$defs/DynamicMemberSelector"
1387
+ },
1388
+ "type": "array"
1389
+ },
1390
+ "externalDepartments": {
1391
+ "items": {
1392
+ "$ref": "#/$defs/ExternalDepartmentSelector"
1393
+ },
1394
+ "type": "array"
1395
+ },
1396
+ "externalMembers": {
1397
+ "items": {
1398
+ "$ref": "#/$defs/ExternalMemberSelector"
1399
+ },
1400
+ "type": "array"
1401
+ },
1402
+ "includeSubDeparts": {
1403
+ "type": "boolean"
1404
+ },
1405
+ "members": {
1406
+ "items": {
1407
+ "$ref": "#/$defs/MemberSelector"
1408
+ },
1409
+ "type": "array"
1410
+ },
1411
+ "mode": {
1412
+ "const": "custom"
1413
+ },
1414
+ "roles": {
1415
+ "items": {
1416
+ "$ref": "#/$defs/RoleSelector"
1417
+ },
1418
+ "type": "array"
1419
+ }
1420
+ },
1421
+ "required": [
1422
+ "mode"
1423
+ ],
1424
+ "type": "object"
1425
+ },
1426
+ {
1427
+ "additionalProperties": false,
1428
+ "properties": {
1429
+ "departments": {
1430
+ "items": {
1431
+ "$ref": "#/$defs/DepartmentSelector"
1432
+ },
1433
+ "type": "array"
1434
+ },
1435
+ "dynamic": {
1436
+ "items": {
1437
+ "$ref": "#/$defs/DynamicMemberSelector"
1438
+ },
1439
+ "type": "array"
1440
+ },
1441
+ "externalDepartments": {
1442
+ "items": {
1443
+ "$ref": "#/$defs/ExternalDepartmentSelector"
1444
+ },
1445
+ "type": "array"
1446
+ },
1447
+ "externalMembers": {
1448
+ "items": {
1449
+ "$ref": "#/$defs/ExternalMemberSelector"
1450
+ },
1451
+ "type": "array"
1452
+ },
1453
+ "includeSubDeparts": {
1454
+ "type": "boolean"
1455
+ },
1456
+ "members": {
1457
+ "items": {
1458
+ "$ref": "#/$defs/MemberSelector"
1459
+ },
1460
+ "type": "array"
1461
+ },
1462
+ "mode": {
1463
+ "const": "relation"
1464
+ },
1465
+ "roles": {
1466
+ "items": {
1467
+ "$ref": "#/$defs/RoleSelector"
1468
+ },
1469
+ "type": "array"
1470
+ }
1471
+ },
1472
+ "required": [
1473
+ "mode"
1474
+ ],
1475
+ "type": "object"
1476
+ }
1477
+ ]
1478
+ },
1479
+ "MemberSelector": {
1480
+ "additionalProperties": false,
1481
+ "properties": {
1482
+ "nickName": {
730
1483
  "minLength": 1,
731
1484
  "type": "string"
1485
+ },
1486
+ "uid": {
1487
+ "minimum": 1,
1488
+ "type": "integer"
732
1489
  }
733
1490
  },
734
1491
  "required": [
735
- "deptId"
1492
+ "uid"
736
1493
  ],
737
1494
  "type": "object"
738
1495
  },
739
- "EmptyConfig": {
1496
+ "NumberConfig": {
740
1497
  "additionalProperties": false,
741
- "description": "该字段类型没有特殊配置。",
742
- "type": "object"
743
- },
744
- "FieldCommon": {
745
- "description": "顶层业务字段的公共属性;字段类型由 TopField 的判别分支定义。",
1498
+ "description": "数字和金额字段的数值、精度及显示格式。",
746
1499
  "properties": {
747
- "dataCover": {
748
- "description": "是否作为数据封面;仅顶层附件字段可设为 true。",
749
- "type": "boolean"
1500
+ "canDecimal": {
1501
+ "description": "是否允许小数;普通数字字段可显式设置。",
1502
+ "type": [
1503
+ "boolean",
1504
+ "null"
1505
+ ]
750
1506
  },
751
- "dataTitle": {
752
- "description": "是否作为数据标题;整个 body 最多且必须按规则存在一个。",
753
- "type": "boolean"
1507
+ "canScan": {
1508
+ "description": "是否允许扫码输入。",
1509
+ "type": [
1510
+ "boolean",
1511
+ "null"
1512
+ ]
754
1513
  },
755
- "description": {
756
- "description": "字段说明;null 或空字符串表示清空。",
1514
+ "currencyStatus": {
1515
+ "description": "金额字段是否显示货币符号。",
1516
+ "type": [
1517
+ "boolean",
1518
+ "null"
1519
+ ]
1520
+ },
1521
+ "currencyType": {
1522
+ "description": "货币类型 ID。",
1523
+ "minimum": 1,
1524
+ "type": [
1525
+ "integer",
1526
+ "null"
1527
+ ]
1528
+ },
1529
+ "decimalDigit": {
1530
+ "description": "小数位数。",
1531
+ "maximum": 10,
1532
+ "minimum": 0,
1533
+ "type": [
1534
+ "integer",
1535
+ "null"
1536
+ ]
1537
+ },
1538
+ "maxValue": {
1539
+ "description": "允许的最大值;后端按字符串保存。",
757
1540
  "type": [
758
1541
  "string",
1542
+ "number",
759
1543
  "null"
760
1544
  ]
761
1545
  },
762
- "name": {
763
- "description": "字段展示名称;同一父级内唯一,不单独作为字段身份。",
764
- "minLength": 1,
765
- "type": "string"
1546
+ "minValue": {
1547
+ "description": "允许的最小值;后端按字符串保存。",
1548
+ "type": [
1549
+ "string",
1550
+ "number",
1551
+ "null"
1552
+ ]
766
1553
  },
767
- "queId": {
768
- "description": "已有字段的后端 ID;get 返回,新增字段省略。",
1554
+ "noRepeat": {
1555
+ "description": "是否禁止重复值。",
1556
+ "type": [
1557
+ "boolean",
1558
+ "null"
1559
+ ]
1560
+ },
1561
+ "numberFormat": {
1562
+ "description": "数字展示格式 ID。",
769
1563
  "minimum": 1,
770
- "type": "integer"
1564
+ "type": [
1565
+ "integer",
1566
+ "null"
1567
+ ]
771
1568
  },
772
- "required": {
773
- "description": "是否必填;缺失时保留已有字段当前值。",
774
- "type": "boolean"
1569
+ "numberLimitStatus": {
1570
+ "description": "是否启用最小值和最大值限制。",
1571
+ "type": [
1572
+ "boolean",
1573
+ "null"
1574
+ ]
775
1575
  },
776
- "width": {
777
- "description": "字段在所在行的宽度百分比;同一行要么全部提供且合计 100,要么全部省略。",
778
- "maximum": 100,
779
- "minimum": 1,
780
- "type": "integer"
1576
+ "scanType": {
1577
+ "description": "扫码类型 ID。",
1578
+ "minimum": 0,
1579
+ "type": [
1580
+ "integer",
1581
+ "null"
1582
+ ]
781
1583
  }
782
1584
  },
783
- "required": [
784
- "name"
785
- ],
786
1585
  "type": "object"
787
1586
  },
788
- "FieldRow": {
1587
+ "PhoneConfig": {
789
1588
  "additionalProperties": false,
790
- "description": "段落内部字段行。",
1589
+ "description": "电话字段的长度、重复和校验配置。",
791
1590
  "properties": {
792
- "fields": {
793
- "description": "本行的 1 到 4 个顶层字段。",
794
- "items": {
795
- "$ref": "#/$defs/TopField"
796
- },
797
- "maxItems": 4,
798
- "minItems": 1,
799
- "type": "array"
800
- }
801
- },
802
- "required": [
803
- "fields"
804
- ],
805
- "type": "object"
806
- },
807
- "FieldSelector": {
808
- "additionalProperties": false,
809
- "anyOf": [
810
- {
811
- "required": [
812
- "queId"
1591
+ "canScan": {
1592
+ "type": [
1593
+ "boolean",
1594
+ "null"
813
1595
  ]
814
1596
  },
815
- {
816
- "required": [
817
- "name"
1597
+ "fixedPhone": {
1598
+ "description": "是否按固定电话格式校验。",
1599
+ "type": [
1600
+ "boolean",
1601
+ "null"
818
1602
  ]
819
- }
820
- ],
821
- "description": "跨字段引用选择器;至少提供 queId 或 name,两者同时提供时必须指向同一字段。",
822
- "properties": {
823
- "name": {
824
- "description": "字段名称;仅在当前作用域内唯一时可用于解析。",
825
- "minLength": 1,
826
- "type": "string"
827
- },
828
- "queId": {
829
- "description": "已有字段的后端 ID;优先用于精确解析。",
830
- "minimum": 1,
831
- "type": "integer"
832
- }
833
- },
834
- "type": "object"
835
- },
836
- "JsonValue": {
837
- "description": "数据关联字面量支持的任意 JSON 值。",
838
- "oneOf": [
839
- {
840
- "type": "null"
841
1603
  },
842
- {
843
- "type": "boolean"
1604
+ "maxWordCount": {
1605
+ "minimum": 0,
1606
+ "type": [
1607
+ "integer",
1608
+ "null"
1609
+ ]
844
1610
  },
845
- {
846
- "type": "number"
1611
+ "minWordCount": {
1612
+ "minimum": 0,
1613
+ "type": [
1614
+ "integer",
1615
+ "null"
1616
+ ]
847
1617
  },
848
- {
849
- "type": "string"
1618
+ "msgValidateStatus": {
1619
+ "description": "是否启用短信校验。",
1620
+ "type": [
1621
+ "boolean",
1622
+ "null"
1623
+ ]
850
1624
  },
851
- {
852
- "items": {
853
- "$ref": "#/$defs/JsonValue"
854
- },
855
- "type": "array"
1625
+ "noRepeat": {
1626
+ "type": [
1627
+ "boolean",
1628
+ "null"
1629
+ ]
856
1630
  },
857
- {
858
- "additionalProperties": {
859
- "$ref": "#/$defs/JsonValue"
860
- },
861
- "type": "object"
1631
+ "scanType": {
1632
+ "minimum": 0,
1633
+ "type": [
1634
+ "integer",
1635
+ "null"
1636
+ ]
862
1637
  }
863
- ]
1638
+ },
1639
+ "type": "object"
864
1640
  },
865
1641
  "QLinkerBinding": {
866
1642
  "additionalProperties": false,
@@ -1099,10 +1875,56 @@
1099
1875
  ],
1100
1876
  "type": "object"
1101
1877
  },
1878
+ "ReferenceDefaultValue": {
1879
+ "additionalProperties": false,
1880
+ "properties": {
1881
+ "applyId": {
1882
+ "type": [
1883
+ "integer",
1884
+ "null"
1885
+ ]
1886
+ },
1887
+ "dataTitle": {
1888
+ "type": [
1889
+ "string",
1890
+ "null"
1891
+ ]
1892
+ },
1893
+ "values": {
1894
+ "items": {
1895
+ "$ref": "#/$defs/DefaultValues"
1896
+ },
1897
+ "type": "array"
1898
+ }
1899
+ },
1900
+ "type": "object"
1901
+ },
1102
1902
  "RelationConfig": {
1103
1903
  "additionalProperties": false,
1104
1904
  "description": "引用字段配置;引用其他应用中的数据。",
1105
1905
  "properties": {
1906
+ "beingDefaultFormulaAutoFillEnabled": {
1907
+ "type": [
1908
+ "boolean",
1909
+ "null"
1910
+ ]
1911
+ },
1912
+ "defaultValueMatchRules": {
1913
+ "type": [
1914
+ "array",
1915
+ "null"
1916
+ ]
1917
+ },
1918
+ "defaultValues": {
1919
+ "oneOf": [
1920
+ {
1921
+ "type": "null"
1922
+ },
1923
+ {
1924
+ "$ref": "#/$defs/DefaultValues"
1925
+ }
1926
+ ]
1927
+ },
1106
1928
  "displayField": {
1107
1929
  "$ref": "#/$defs/FieldSelector",
1108
1930
  "description": "引用值的主展示字段。"
@@ -1130,8 +1952,25 @@
1130
1952
  }
1131
1953
  },
1132
1954
  "required": [
1133
- "targetAppKey",
1134
- "displayField"
1955
+ "targetAppKey",
1956
+ "displayField"
1957
+ ],
1958
+ "type": "object"
1959
+ },
1960
+ "RoleSelector": {
1961
+ "additionalProperties": false,
1962
+ "properties": {
1963
+ "roleId": {
1964
+ "minimum": 1,
1965
+ "type": "integer"
1966
+ },
1967
+ "roleName": {
1968
+ "minLength": 1,
1969
+ "type": "string"
1970
+ }
1971
+ },
1972
+ "required": [
1973
+ "roleId"
1135
1974
  ],
1136
1975
  "type": "object"
1137
1976
  },
@@ -1159,6 +1998,15 @@
1159
1998
  ],
1160
1999
  "type": "object"
1161
2000
  },
2001
+ "ScalarDefaultValue": {
2002
+ "description": "不包含对象或数组的普通字段默认值。",
2003
+ "type": [
2004
+ "null",
2005
+ "boolean",
2006
+ "number",
2007
+ "string"
2008
+ ]
2009
+ },
1162
2010
  "SectionBlock": {
1163
2011
  "additionalProperties": false,
1164
2012
  "description": "段落布局容器;不是业务字段,必须独占一个根级块。",
@@ -1193,6 +2041,53 @@
1193
2041
  ],
1194
2042
  "type": "object"
1195
2043
  },
2044
+ "SelectScopeRelation": {
2045
+ "additionalProperties": false,
2046
+ "properties": {
2047
+ "displayedField": {
2048
+ "$ref": "#/$defs/FieldSelector"
2049
+ },
2050
+ "displayedFieldType": {
2051
+ "type": [
2052
+ "integer",
2053
+ "null"
2054
+ ]
2055
+ },
2056
+ "matchRuleFormula": {
2057
+ "type": [
2058
+ "string",
2059
+ "null"
2060
+ ]
2061
+ },
2062
+ "matchRuleType": {
2063
+ "type": [
2064
+ "integer",
2065
+ "null"
2066
+ ]
2067
+ },
2068
+ "matchRules": {
2069
+ "type": [
2070
+ "array",
2071
+ "null"
2072
+ ]
2073
+ },
2074
+ "targetAppKey": {
2075
+ "minLength": 1,
2076
+ "type": "string"
2077
+ },
2078
+ "targetAppTitle": {
2079
+ "type": [
2080
+ "string",
2081
+ "null"
2082
+ ]
2083
+ }
2084
+ },
2085
+ "required": [
2086
+ "displayedField",
2087
+ "targetAppKey"
2088
+ ],
2089
+ "type": "object"
2090
+ },
1196
2091
  "SerialComponent": {
1197
2092
  "description": "自定义编号的组成部分;id 仅用于复用已有组件。",
1198
2093
  "oneOf": [
@@ -1423,19 +2318,14 @@
1423
2318
  {
1424
2319
  "properties": {
1425
2320
  "config": {
1426
- "$ref": "#/$defs/EmptyConfig"
2321
+ "$ref": "#/$defs/TextConfig"
1427
2322
  },
1428
2323
  "type": {
1429
2324
  "enum": [
1430
2325
  "text",
1431
2326
  "long_text",
1432
- "number",
1433
2327
  "link",
1434
- "date",
1435
- "phone",
1436
- "email",
1437
- "attachment",
1438
- "member"
2328
+ "email"
1439
2329
  ]
1440
2330
  }
1441
2331
  },
@@ -1443,6 +2333,71 @@
1443
2333
  "type"
1444
2334
  ]
1445
2335
  },
2336
+ {
2337
+ "properties": {
2338
+ "config": {
2339
+ "$ref": "#/$defs/PhoneConfig"
2340
+ },
2341
+ "type": {
2342
+ "const": "phone"
2343
+ }
2344
+ },
2345
+ "required": [
2346
+ "type"
2347
+ ]
2348
+ },
2349
+ {
2350
+ "properties": {
2351
+ "config": {
2352
+ "$ref": "#/$defs/NumberConfig"
2353
+ },
2354
+ "type": {
2355
+ "const": "number"
2356
+ }
2357
+ },
2358
+ "required": [
2359
+ "type"
2360
+ ]
2361
+ },
2362
+ {
2363
+ "properties": {
2364
+ "config": {
2365
+ "$ref": "#/$defs/EmptyConfig"
2366
+ },
2367
+ "type": {
2368
+ "const": "date"
2369
+ }
2370
+ },
2371
+ "required": [
2372
+ "type"
2373
+ ]
2374
+ },
2375
+ {
2376
+ "properties": {
2377
+ "config": {
2378
+ "$ref": "#/$defs/AttachmentConfig"
2379
+ },
2380
+ "type": {
2381
+ "const": "attachment"
2382
+ }
2383
+ },
2384
+ "required": [
2385
+ "type"
2386
+ ]
2387
+ },
2388
+ {
2389
+ "properties": {
2390
+ "config": {
2391
+ "$ref": "#/$defs/MemberConfig"
2392
+ },
2393
+ "type": {
2394
+ "const": "member"
2395
+ }
2396
+ },
2397
+ "required": [
2398
+ "type"
2399
+ ]
2400
+ },
1446
2401
  {
1447
2402
  "properties": {
1448
2403
  "config": {
@@ -1513,6 +2468,27 @@
1513
2468
  "SubFieldCommon": {
1514
2469
  "description": "表格子字段的公共属性;不允许 dataTitle、dataCover 或 width。",
1515
2470
  "properties": {
2471
+ "defaultType": {
2472
+ "default": 1,
2473
+ "description": "默认值类型;1 表示静态值,2 表示关联/绑定值,3 表示公式值。",
2474
+ "enum": [
2475
+ 1,
2476
+ 2,
2477
+ 3
2478
+ ],
2479
+ "type": "integer"
2480
+ },
2481
+ "defaultValue": {
2482
+ "description": "表单填写时的默认值;显式 null 表示清除默认值。",
2483
+ "type": [
2484
+ "null",
2485
+ "boolean",
2486
+ "number",
2487
+ "string",
2488
+ "array",
2489
+ "object"
2490
+ ]
2491
+ },
1516
2492
  "description": {
1517
2493
  "description": "子字段说明;null 或空字符串表示清空。",
1518
2494
  "type": [
@@ -1540,6 +2516,94 @@
1540
2516
  ],
1541
2517
  "type": "object"
1542
2518
  },
2519
+ "SubtableConfig": {
2520
+ "additionalProperties": false,
2521
+ "description": "表格行数和重复值限制。",
2522
+ "properties": {
2523
+ "defaultValues": {
2524
+ "oneOf": [
2525
+ {
2526
+ "type": "null"
2527
+ },
2528
+ {
2529
+ "$ref": "#/$defs/DefaultValues"
2530
+ }
2531
+ ]
2532
+ },
2533
+ "tableNoRepeatQuestion": {
2534
+ "items": {
2535
+ "$ref": "#/$defs/FieldSelector"
2536
+ },
2537
+ "type": "array"
2538
+ },
2539
+ "tableNoRepeatStatus": {
2540
+ "type": [
2541
+ "boolean",
2542
+ "null"
2543
+ ]
2544
+ },
2545
+ "tableRowHeight": {
2546
+ "minLength": 1,
2547
+ "type": [
2548
+ "string",
2549
+ "null"
2550
+ ]
2551
+ },
2552
+ "tableRowsLimit": {
2553
+ "minimum": 1,
2554
+ "type": [
2555
+ "integer",
2556
+ "null"
2557
+ ]
2558
+ }
2559
+ },
2560
+ "type": "object"
2561
+ },
2562
+ "TextConfig": {
2563
+ "additionalProperties": false,
2564
+ "description": "文字类字段的长度限制;省略表示保留当前值。",
2565
+ "properties": {
2566
+ "canScan": {
2567
+ "description": "是否允许扫码输入。",
2568
+ "type": [
2569
+ "boolean",
2570
+ "null"
2571
+ ]
2572
+ },
2573
+ "maxWordCount": {
2574
+ "description": "最多字数;null 表示清除限制。",
2575
+ "minimum": 0,
2576
+ "type": [
2577
+ "integer",
2578
+ "null"
2579
+ ]
2580
+ },
2581
+ "minWordCount": {
2582
+ "description": "最少字数;null 表示清除限制。",
2583
+ "minimum": 0,
2584
+ "type": [
2585
+ "integer",
2586
+ "null"
2587
+ ]
2588
+ },
2589
+ "noRepeat": {
2590
+ "description": "是否禁止重复值。",
2591
+ "type": [
2592
+ "boolean",
2593
+ "null"
2594
+ ]
2595
+ },
2596
+ "scanType": {
2597
+ "description": "扫码类型 ID。",
2598
+ "minimum": 0,
2599
+ "type": [
2600
+ "integer",
2601
+ "null"
2602
+ ]
2603
+ }
2604
+ },
2605
+ "type": "object"
2606
+ },
1543
2607
  "TopField": {
1544
2608
  "allOf": [
1545
2609
  {
@@ -1552,20 +2616,57 @@
1552
2616
  "config": {
1553
2617
  "$ref": "#/$defs/EmptyConfig"
1554
2618
  },
2619
+ "type": {
2620
+ "enum": [
2621
+ "date",
2622
+ "datetime"
2623
+ ]
2624
+ }
2625
+ },
2626
+ "required": [
2627
+ "type"
2628
+ ]
2629
+ },
2630
+ {
2631
+ "properties": {
2632
+ "config": {
2633
+ "$ref": "#/$defs/TextConfig"
2634
+ },
1555
2635
  "type": {
1556
2636
  "enum": [
1557
2637
  "text",
1558
2638
  "long_text",
1559
- "number",
1560
- "amount",
1561
2639
  "link",
1562
- "date",
1563
- "datetime",
1564
- "member",
1565
- "phone",
1566
- "email",
1567
- "address",
1568
- "attachment"
2640
+ "email"
2641
+ ]
2642
+ }
2643
+ },
2644
+ "required": [
2645
+ "type"
2646
+ ]
2647
+ },
2648
+ {
2649
+ "properties": {
2650
+ "config": {
2651
+ "$ref": "#/$defs/PhoneConfig"
2652
+ },
2653
+ "type": {
2654
+ "const": "phone"
2655
+ }
2656
+ },
2657
+ "required": [
2658
+ "type"
2659
+ ]
2660
+ },
2661
+ {
2662
+ "properties": {
2663
+ "config": {
2664
+ "$ref": "#/$defs/NumberConfig"
2665
+ },
2666
+ "type": {
2667
+ "enum": [
2668
+ "number",
2669
+ "amount"
1569
2670
  ]
1570
2671
  }
1571
2672
  },
@@ -1573,6 +2674,48 @@
1573
2674
  "type"
1574
2675
  ]
1575
2676
  },
2677
+ {
2678
+ "properties": {
2679
+ "config": {
2680
+ "$ref": "#/$defs/MemberConfig"
2681
+ },
2682
+ "type": {
2683
+ "const": "member"
2684
+ }
2685
+ },
2686
+ "required": [
2687
+ "type"
2688
+ ]
2689
+ },
2690
+ {
2691
+ "properties": {
2692
+ "config": {
2693
+ "$ref": "#/$defs/AddressConfig"
2694
+ },
2695
+ "type": {
2696
+ "const": "address"
2697
+ }
2698
+ },
2699
+ "required": [
2700
+ "type"
2701
+ ]
2702
+ },
2703
+ {
2704
+ "properties": {
2705
+ "config": {
2706
+ "$ref": "#/$defs/AttachmentConfig"
2707
+ },
2708
+ "dataCover": {
2709
+ "type": "boolean"
2710
+ },
2711
+ "type": {
2712
+ "const": "attachment"
2713
+ }
2714
+ },
2715
+ "required": [
2716
+ "type"
2717
+ ]
2718
+ },
1576
2719
  {
1577
2720
  "properties": {
1578
2721
  "config": {
@@ -1664,7 +2807,7 @@
1664
2807
  {
1665
2808
  "properties": {
1666
2809
  "config": {
1667
- "$ref": "#/$defs/EmptyConfig"
2810
+ "$ref": "#/$defs/SubtableConfig"
1668
2811
  },
1669
2812
  "subfields": {
1670
2813
  "items": {