@qingflow-tech/qingflow-cli 1.1.43-beta.3 → 1.1.43-beta.4
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/README.md +3 -3
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/skills/qingflow-app-form/SKILL.md +7 -5
- package/skills/qingflow-cli/reference/builder/30-schema-fields.md +14 -13
- package/src/qingflow_mcp/app_form_compat.py +11 -27
- package/src/qingflow_mcp/app_form_validator.py +201 -35
- package/src/qingflow_mcp/builder_facade/app_form.py +762 -148
- package/src/qingflow_mcp/builder_facade/app_form_schema.py +114 -3
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/complete.json +310 -245
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/address.json +82 -27
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/amount.json +85 -32
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/attachment.json +82 -30
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/code_block.json +113 -37
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/data_relation.json +87 -64
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/date.json +82 -27
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/datetime.json +82 -27
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/department.json +83 -28
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/email.json +82 -27
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/link.json +82 -27
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/long_text.json +82 -27
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/member.json +83 -28
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/multi_select.json +82 -27
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/number.json +85 -32
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/phone.json +82 -27
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/q_linker.json +95 -40
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/relation.json +100 -28
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_choice.json +82 -27
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_select.json +82 -27
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/subtable.json +212 -117
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/text.json +82 -27
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/summary.json +143 -161
- package/src/qingflow_mcp/builder_facade/service.py +3 -2
- package/src/qingflow_mcp/response_trim.py +2 -0
- package/src/qingflow_mcp/server_app_builder.py +2 -2
|
@@ -58,9 +58,6 @@
|
|
|
58
58
|
"type": "string"
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
|
-
"required": [
|
|
62
|
-
"name"
|
|
63
|
-
],
|
|
64
61
|
"type": "object"
|
|
65
62
|
},
|
|
66
63
|
"AnswerValue": {
|
|
@@ -131,8 +128,15 @@
|
|
|
131
128
|
},
|
|
132
129
|
"AppFormSpec": {
|
|
133
130
|
"additionalProperties": false,
|
|
134
|
-
"description": "表单基础配置与字段布局目标态;除 body
|
|
131
|
+
"description": "表单基础配置与字段布局目标态;除 body 外,缺失属性表示保留当前值。应用内所有 q_linker 和 code_block 字段的 outputs[].targetField 必须全局唯一,同一实际字段只能被一个输出映射写入。多个生产方需要回写时,请选择不同目标字段或合并为一个生产方。",
|
|
135
132
|
"properties": {
|
|
133
|
+
"appDescription": {
|
|
134
|
+
"description": "应用描述;null 或空字符串表示清空。",
|
|
135
|
+
"type": [
|
|
136
|
+
"string",
|
|
137
|
+
"null"
|
|
138
|
+
]
|
|
139
|
+
},
|
|
136
140
|
"appName": {
|
|
137
141
|
"description": "应用名称;缺失时保留当前名称。",
|
|
138
142
|
"minLength": 1,
|
|
@@ -147,46 +151,33 @@
|
|
|
147
151
|
},
|
|
148
152
|
"body": {
|
|
149
153
|
"$ref": "#/$defs/Body",
|
|
150
|
-
"description": "
|
|
154
|
+
"description": "业务字段与布局的完整目标态;缺失字段或段落表示删除。应用内所有 Q-Linker 和代码块的 outputs[].targetField 不得重复选择同一实际字段。"
|
|
151
155
|
},
|
|
152
|
-
"
|
|
153
|
-
"description": "
|
|
154
|
-
"
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
"null"
|
|
156
|
+
"dataCoverField": {
|
|
157
|
+
"description": "数据封面字段选择器;指定每条数据的封面附件来源。仅允许选择顶层 attachment 字段;null 表示清除数据封面。",
|
|
158
|
+
"oneOf": [
|
|
159
|
+
{
|
|
160
|
+
"type": "null"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"$ref": "#/$defs/FieldSelector"
|
|
164
|
+
}
|
|
162
165
|
]
|
|
163
166
|
},
|
|
164
|
-
"
|
|
165
|
-
"description": "
|
|
166
|
-
"minLength": 1,
|
|
167
|
-
"type": "string"
|
|
168
|
-
},
|
|
169
|
-
"serialNumber": {
|
|
170
|
-
"$ref": "#/$defs/SerialNumber",
|
|
171
|
-
"description": "应用编号规则;支持默认编号或自定义组件编号。"
|
|
172
|
-
},
|
|
173
|
-
"style": {
|
|
174
|
-
"description": "应用样式;对象内缺失属性保留当前值,null 表示清除全部自定义样式。",
|
|
167
|
+
"dataTitleField": {
|
|
168
|
+
"description": "数据标题字段选择器;指定每条数据的主显示标题来源。创建非空 body 时必填,更新时省略表示保留当前选择;显式提供时必须唯一定位一个顶层字段,仅 body 为空时允许 null。",
|
|
175
169
|
"oneOf": [
|
|
176
170
|
{
|
|
177
|
-
"
|
|
171
|
+
"type": "null"
|
|
178
172
|
},
|
|
179
173
|
{
|
|
180
|
-
"
|
|
174
|
+
"$ref": "#/$defs/FieldSelector"
|
|
181
175
|
}
|
|
182
176
|
]
|
|
183
177
|
},
|
|
184
|
-
"
|
|
185
|
-
"
|
|
186
|
-
"
|
|
187
|
-
"integer",
|
|
188
|
-
"null"
|
|
189
|
-
]
|
|
178
|
+
"serialNumber": {
|
|
179
|
+
"$ref": "#/$defs/SerialNumber",
|
|
180
|
+
"description": "应用编号规则;支持默认编号或自定义组件编号。"
|
|
190
181
|
}
|
|
191
182
|
},
|
|
192
183
|
"required": [
|
|
@@ -384,7 +375,28 @@
|
|
|
384
375
|
},
|
|
385
376
|
"CodeBlockBinding": {
|
|
386
377
|
"additionalProperties": false,
|
|
387
|
-
"
|
|
378
|
+
"allOf": [
|
|
379
|
+
{
|
|
380
|
+
"if": {
|
|
381
|
+
"properties": {
|
|
382
|
+
"outputs": {
|
|
383
|
+
"minItems": 1
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
"required": [
|
|
387
|
+
"outputs"
|
|
388
|
+
]
|
|
389
|
+
},
|
|
390
|
+
"then": {
|
|
391
|
+
"properties": {
|
|
392
|
+
"code": {
|
|
393
|
+
"pattern": "(^|[^A-Za-z0-9_$])qf_output\\s*=(?!=)"
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
],
|
|
399
|
+
"description": "代码块的输入、代码和输出映射;配置 outputs 时,代码必须显式给 qf_output 赋值,仅 return 对象不会产生可回写结果。每个输出目标还必须满足应用级唯一性规则,不能与任何代码块或 Q-Linker 的其他输出指向同一实际字段。多个生产方需要回写时,请选择不同目标字段或合并为一个生产方。",
|
|
388
400
|
"properties": {
|
|
389
401
|
"autoTrigger": {
|
|
390
402
|
"description": "是否在输入变化时自动执行代码块。",
|
|
@@ -394,7 +406,7 @@
|
|
|
394
406
|
]
|
|
395
407
|
},
|
|
396
408
|
"code": {
|
|
397
|
-
"description": "
|
|
409
|
+
"description": "业务代码源码;MCP/CLI 仅保存,不执行。inputs 声明的 var 会由 Builder 自动注入。配置 outputs 时必须显式赋值 qf_output,例如 qf_output = { score: input.score };,仅 return 对象或比较 qf_output 不会回写。",
|
|
398
410
|
"minLength": 1,
|
|
399
411
|
"type": "string"
|
|
400
412
|
},
|
|
@@ -420,14 +432,14 @@
|
|
|
420
432
|
]
|
|
421
433
|
},
|
|
422
434
|
"inputs": {
|
|
423
|
-
"description": "当前表单字段到代码变量的映射。",
|
|
435
|
+
"description": "当前表单字段到代码变量的映射。Builder 会在保存时自动生成读取 qf_field 的代码前缀;业务 code 直接使用 var,不要手写 qf_field.{字段名$$ID$$}。",
|
|
424
436
|
"items": {
|
|
425
437
|
"$ref": "#/$defs/CodeBlockInputBinding"
|
|
426
438
|
},
|
|
427
439
|
"type": "array"
|
|
428
440
|
},
|
|
429
441
|
"outputs": {
|
|
430
|
-
"description": "
|
|
442
|
+
"description": "代码输出路径到目标字段的映射;每个 path 必须从代码显式赋值的 qf_output 中读取,且所有 targetField 在整个应用的代码块和 Q-Linker 输出中必须全局唯一。",
|
|
431
443
|
"items": {
|
|
432
444
|
"$ref": "#/$defs/CodeBlockOutputBinding"
|
|
433
445
|
},
|
|
@@ -454,14 +466,14 @@
|
|
|
454
466
|
},
|
|
455
467
|
"CodeBlockInputBinding": {
|
|
456
468
|
"additionalProperties": false,
|
|
457
|
-
"description": "
|
|
469
|
+
"description": "一个表单字段到代码变量的映射;Builder 自动生成后端字段读取前缀。",
|
|
458
470
|
"properties": {
|
|
459
471
|
"field": {
|
|
460
472
|
"$ref": "#/$defs/FieldSelector",
|
|
461
473
|
"description": "输入来源字段。"
|
|
462
474
|
},
|
|
463
475
|
"var": {
|
|
464
|
-
"description": "
|
|
476
|
+
"description": "业务 code 中直接使用的 JavaScript 变量名;null 表示由 Builder 生成合法且唯一的变量名。",
|
|
465
477
|
"type": [
|
|
466
478
|
"string",
|
|
467
479
|
"null"
|
|
@@ -475,7 +487,7 @@
|
|
|
475
487
|
},
|
|
476
488
|
"CodeBlockOutputBinding": {
|
|
477
489
|
"additionalProperties": false,
|
|
478
|
-
"description": "
|
|
490
|
+
"description": "一个代码输出值到表单字段的映射;同一实际目标字段在整个应用中只能被一个代码块或 Q-Linker 输出映射写入。",
|
|
479
491
|
"properties": {
|
|
480
492
|
"alias": {
|
|
481
493
|
"description": "输出别名;用于后续数据关联引用。",
|
|
@@ -483,7 +495,7 @@
|
|
|
483
495
|
"type": "string"
|
|
484
496
|
},
|
|
485
497
|
"aliasId": {
|
|
486
|
-
"description": "后端生成的输出别名 ID
|
|
498
|
+
"description": "后端生成的输出别名 ID;新增输出时省略,Builder 在首次写入后按 alias 与 path 自动回填再保存关系。更新已有输出时必须保留 get 返回值,不得自行编造或置空。",
|
|
487
499
|
"minimum": 1,
|
|
488
500
|
"type": "integer"
|
|
489
501
|
},
|
|
@@ -494,7 +506,7 @@
|
|
|
494
506
|
},
|
|
495
507
|
"targetField": {
|
|
496
508
|
"$ref": "#/$defs/FieldSelector",
|
|
497
|
-
"description": "
|
|
509
|
+
"description": "接收结果的当前表单字段;该字段在整个应用的全部代码块和 Q-Linker outputs 中只能作为 targetField 出现一次,不得被多个输出关系重复写入。"
|
|
498
510
|
}
|
|
499
511
|
},
|
|
500
512
|
"required": [
|
|
@@ -506,7 +518,7 @@
|
|
|
506
518
|
},
|
|
507
519
|
"DataRelationCondition": {
|
|
508
520
|
"additionalProperties": false,
|
|
509
|
-
"description": "
|
|
521
|
+
"description": "一条数据关联过滤条件;sourceField 必须属于数据来源,operator 必须适用于该字段类型。固定值请使用 literal operand,不要直接声明后端 matchRules。",
|
|
510
522
|
"properties": {
|
|
511
523
|
"operand": {
|
|
512
524
|
"$ref": "#/$defs/DataRelationOperand",
|
|
@@ -632,7 +644,7 @@
|
|
|
632
644
|
]
|
|
633
645
|
},
|
|
634
646
|
"DataRelationFilters": {
|
|
635
|
-
"description": "simple 模式的外层组为 OR、组内条件为 AND;advanced 模式使用完整公式。",
|
|
647
|
+
"description": "simple 模式的外层组为 OR、组内条件为 AND;advanced 模式使用完整公式。simple 条件只声明业务值,builder 会生成后端保存所需的 judgeValues 和 judgeValueDetails,不要在声明中直接填写这两个后端属性。",
|
|
636
648
|
"oneOf": [
|
|
637
649
|
{
|
|
638
650
|
"additionalProperties": false,
|
|
@@ -688,9 +700,9 @@
|
|
|
688
700
|
"const": "literal"
|
|
689
701
|
},
|
|
690
702
|
"values": {
|
|
691
|
-
"description": "
|
|
703
|
+
"description": "固定比较值列表;值必须使用字符串。选择类来源字段填写已有选项的展示文本,builder 会在 apply 时解析为后端 optId;解析不到会在写入前报错。is_empty/is_not_empty 必须传空数组,其他运算符至少传一项。",
|
|
692
704
|
"items": {
|
|
693
|
-
"
|
|
705
|
+
"type": "string"
|
|
694
706
|
},
|
|
695
707
|
"type": "array"
|
|
696
708
|
}
|
|
@@ -1189,15 +1201,71 @@
|
|
|
1189
1201
|
"type": "object"
|
|
1190
1202
|
},
|
|
1191
1203
|
"FieldCommon": {
|
|
1204
|
+
"allOf": [
|
|
1205
|
+
{
|
|
1206
|
+
"if": {
|
|
1207
|
+
"properties": {
|
|
1208
|
+
"defaultType": {
|
|
1209
|
+
"const": 2
|
|
1210
|
+
}
|
|
1211
|
+
},
|
|
1212
|
+
"required": [
|
|
1213
|
+
"defaultType"
|
|
1214
|
+
]
|
|
1215
|
+
},
|
|
1216
|
+
"then": {
|
|
1217
|
+
"properties": {
|
|
1218
|
+
"defaultValue": {
|
|
1219
|
+
"type": "null"
|
|
1220
|
+
}
|
|
1221
|
+
}
|
|
1222
|
+
}
|
|
1223
|
+
},
|
|
1224
|
+
{
|
|
1225
|
+
"if": {
|
|
1226
|
+
"properties": {
|
|
1227
|
+
"defaultType": {
|
|
1228
|
+
"const": 3
|
|
1229
|
+
}
|
|
1230
|
+
},
|
|
1231
|
+
"required": [
|
|
1232
|
+
"defaultType"
|
|
1233
|
+
]
|
|
1234
|
+
},
|
|
1235
|
+
"then": {
|
|
1236
|
+
"properties": {
|
|
1237
|
+
"defaultValue": {
|
|
1238
|
+
"minLength": 1,
|
|
1239
|
+
"type": [
|
|
1240
|
+
"string",
|
|
1241
|
+
"null"
|
|
1242
|
+
]
|
|
1243
|
+
}
|
|
1244
|
+
}
|
|
1245
|
+
}
|
|
1246
|
+
}
|
|
1247
|
+
],
|
|
1248
|
+
"anyOf": [
|
|
1249
|
+
{
|
|
1250
|
+
"required": [
|
|
1251
|
+
"queId"
|
|
1252
|
+
]
|
|
1253
|
+
},
|
|
1254
|
+
{
|
|
1255
|
+
"required": [
|
|
1256
|
+
"name"
|
|
1257
|
+
]
|
|
1258
|
+
}
|
|
1259
|
+
],
|
|
1192
1260
|
"description": "顶层业务字段的公共属性;字段类型由 TopField 的判别分支定义。",
|
|
1193
1261
|
"properties": {
|
|
1194
|
-
"
|
|
1195
|
-
"description": "
|
|
1262
|
+
"beingRequired": {
|
|
1263
|
+
"description": "该字段是否必填;缺失时保留已有字段当前值。",
|
|
1196
1264
|
"type": "boolean"
|
|
1197
1265
|
},
|
|
1198
1266
|
"defaultType": {
|
|
1199
1267
|
"default": 1,
|
|
1200
|
-
"description": "
|
|
1268
|
+
"description": "默认值类型,与 defaultValue 联动;1 表示静态值,2 表示关联/绑定值且 defaultValue 只能省略或为 null,3 表示公式值且提供 defaultValue 时必须为非空公式文本。省略 defaultType 但提供 defaultValue 时按 1 处理。",
|
|
1201
1269
|
"enum": [
|
|
1202
1270
|
1,
|
|
1203
1271
|
2,
|
|
@@ -1207,39 +1275,40 @@
|
|
|
1207
1275
|
},
|
|
1208
1276
|
"defaultValue": {
|
|
1209
1277
|
"$ref": "#/$defs/ScalarDefaultValue",
|
|
1210
|
-
"description": "
|
|
1211
|
-
},
|
|
1212
|
-
"description": {
|
|
1213
|
-
"description": "字段说明;null 或空字符串表示清空。",
|
|
1214
|
-
"type": [
|
|
1215
|
-
"string",
|
|
1216
|
-
"null"
|
|
1217
|
-
]
|
|
1278
|
+
"description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
|
|
1218
1279
|
},
|
|
1219
1280
|
"name": {
|
|
1220
|
-
"description": "
|
|
1281
|
+
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
|
|
1221
1282
|
"minLength": 1,
|
|
1222
1283
|
"type": "string"
|
|
1223
1284
|
},
|
|
1224
1285
|
"queId": {
|
|
1225
|
-
"description": "已有字段的后端 ID
|
|
1286
|
+
"description": "已有字段的后端 ID;更新时用于精确定位并复用,新增字段通常省略。",
|
|
1226
1287
|
"minimum": 1,
|
|
1227
1288
|
"type": "integer"
|
|
1228
1289
|
},
|
|
1229
|
-
"
|
|
1230
|
-
"description": "
|
|
1231
|
-
"type":
|
|
1290
|
+
"questionDescription": {
|
|
1291
|
+
"description": "字段说明;null 或空字符串表示清空。",
|
|
1292
|
+
"type": [
|
|
1293
|
+
"string",
|
|
1294
|
+
"null"
|
|
1295
|
+
]
|
|
1296
|
+
},
|
|
1297
|
+
"questionType": {
|
|
1298
|
+
"description": "字段类型;具体可用值由当前字段详情 Schema 的判别分支约束。",
|
|
1299
|
+
"type": "string"
|
|
1232
1300
|
},
|
|
1233
1301
|
"width": {
|
|
1234
|
-
"description": "
|
|
1235
|
-
"
|
|
1236
|
-
|
|
1302
|
+
"description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
|
|
1303
|
+
"enum": [
|
|
1304
|
+
25,
|
|
1305
|
+
50,
|
|
1306
|
+
75,
|
|
1307
|
+
100
|
|
1308
|
+
],
|
|
1237
1309
|
"type": "integer"
|
|
1238
1310
|
}
|
|
1239
1311
|
},
|
|
1240
|
-
"required": [
|
|
1241
|
-
"name"
|
|
1242
|
-
],
|
|
1243
1312
|
"type": "object"
|
|
1244
1313
|
},
|
|
1245
1314
|
"FieldRow": {
|
|
@@ -1275,7 +1344,7 @@
|
|
|
1275
1344
|
]
|
|
1276
1345
|
}
|
|
1277
1346
|
],
|
|
1278
|
-
"description": "
|
|
1347
|
+
"description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name,两者同时提供时必须指向同一字段。",
|
|
1279
1348
|
"properties": {
|
|
1280
1349
|
"name": {
|
|
1281
1350
|
"description": "字段名称;仅在当前作用域内唯一时可用于解析。",
|
|
@@ -1290,6 +1359,11 @@
|
|
|
1290
1359
|
},
|
|
1291
1360
|
"type": "object"
|
|
1292
1361
|
},
|
|
1362
|
+
"FormulaExpression": {
|
|
1363
|
+
"description": "轻流公式表达式的解码文本;字段引用形如 #queId_<queId>$,由后端 Formula 引擎解析。",
|
|
1364
|
+
"minLength": 1,
|
|
1365
|
+
"type": "string"
|
|
1366
|
+
},
|
|
1293
1367
|
"JsonValue": {
|
|
1294
1368
|
"description": "数据关联字面量支持的任意 JSON 值。",
|
|
1295
1369
|
"oneOf": [
|
|
@@ -1519,12 +1593,10 @@
|
|
|
1519
1593
|
]
|
|
1520
1594
|
},
|
|
1521
1595
|
"currencyType": {
|
|
1522
|
-
"
|
|
1596
|
+
"default": 1,
|
|
1597
|
+
"description": "货币类型 ID;后端发布要求为非空正整数,即使 currencyStatus 为 false 也不得传 null。无需指定时省略并使用默认值 1。",
|
|
1523
1598
|
"minimum": 1,
|
|
1524
|
-
"type":
|
|
1525
|
-
"integer",
|
|
1526
|
-
"null"
|
|
1527
|
-
]
|
|
1599
|
+
"type": "integer"
|
|
1528
1600
|
},
|
|
1529
1601
|
"decimalDigit": {
|
|
1530
1602
|
"description": "小数位数。",
|
|
@@ -1640,17 +1712,17 @@
|
|
|
1640
1712
|
},
|
|
1641
1713
|
"QLinkerBinding": {
|
|
1642
1714
|
"additionalProperties": false,
|
|
1643
|
-
"description": "Q-Linker
|
|
1715
|
+
"description": "Q-Linker 的输入映射、请求配置和输出映射;每个输出目标还必须满足应用级唯一性规则,不能与任何 Q-Linker 或代码块的其他输出指向同一实际字段。多个生产方需要回写时,请选择不同目标字段或合并为一个生产方。",
|
|
1644
1716
|
"properties": {
|
|
1645
1717
|
"inputs": {
|
|
1646
|
-
"description": "将当前表单字段映射到请求参数的规则。",
|
|
1718
|
+
"description": "将当前表单字段映射到请求参数的规则。query_param、header、url_encoded 会直接生成对应位置的动态参数;json_path 用于替换 request.url、request.jsonValue 或 request.xmlValue 中的 {{key}} 占位符。",
|
|
1647
1719
|
"items": {
|
|
1648
1720
|
"$ref": "#/$defs/QLinkerInputBinding"
|
|
1649
1721
|
},
|
|
1650
1722
|
"type": "array"
|
|
1651
1723
|
},
|
|
1652
1724
|
"outputs": {
|
|
1653
|
-
"description": "
|
|
1725
|
+
"description": "将响应路径映射到目标字段的规则;至少一个。所有 targetField 在整个应用的 Q-Linker 和代码块输出中必须全局唯一。",
|
|
1654
1726
|
"items": {
|
|
1655
1727
|
"$ref": "#/$defs/QLinkerOutputBinding"
|
|
1656
1728
|
},
|
|
@@ -1683,19 +1755,19 @@
|
|
|
1683
1755
|
},
|
|
1684
1756
|
"QLinkerInputBinding": {
|
|
1685
1757
|
"additionalProperties": false,
|
|
1686
|
-
"description": "
|
|
1758
|
+
"description": "一个表单字段到请求参数的映射。需要把字段值嵌入 URL、JSON 或 XML 字符串时,source 必须为 json_path,key 必须等于所选字段名,并在对应请求字符串中写 {{key}};其他 source 不会替换 {{key}}。",
|
|
1687
1759
|
"properties": {
|
|
1688
1760
|
"field": {
|
|
1689
1761
|
"$ref": "#/$defs/FieldSelector",
|
|
1690
1762
|
"description": "输入来源字段。"
|
|
1691
1763
|
},
|
|
1692
1764
|
"key": {
|
|
1693
|
-
"description": "
|
|
1765
|
+
"description": "请求参数名。source 为 json_path 时必须等于 field 选中的字段名,并与请求字符串中的 {{key}} 完全一致。",
|
|
1694
1766
|
"minLength": 1,
|
|
1695
1767
|
"type": "string"
|
|
1696
1768
|
},
|
|
1697
1769
|
"source": {
|
|
1698
|
-
"description": "
|
|
1770
|
+
"description": "字段值的写入位置。query_param、header、url_encoded 分别生成动态查询参数、请求头、表单项;json_path 替换 URL、JSON 或 XML 中的 {{key}}。不要用前三种 source 提供字符串占位符。",
|
|
1699
1771
|
"enum": [
|
|
1700
1772
|
"query_param",
|
|
1701
1773
|
"header",
|
|
@@ -1735,7 +1807,7 @@
|
|
|
1735
1807
|
},
|
|
1736
1808
|
"QLinkerOutputBinding": {
|
|
1737
1809
|
"additionalProperties": false,
|
|
1738
|
-
"description": "
|
|
1810
|
+
"description": "一个响应值到表单目标字段的映射;同一实际目标字段在整个应用中只能被一个 Q-Linker 或代码块输出映射写入。",
|
|
1739
1811
|
"properties": {
|
|
1740
1812
|
"alias": {
|
|
1741
1813
|
"description": "输出别名;用于后续数据关联引用。",
|
|
@@ -1743,7 +1815,7 @@
|
|
|
1743
1815
|
"type": "string"
|
|
1744
1816
|
},
|
|
1745
1817
|
"aliasId": {
|
|
1746
|
-
"description": "后端生成的输出别名 ID
|
|
1818
|
+
"description": "后端生成的输出别名 ID;新增输出时省略,Builder 在首次写入后按 alias 与 path 自动回填再保存关系。更新已有输出时必须保留 get 返回值,不得自行编造或置空。",
|
|
1747
1819
|
"minimum": 1,
|
|
1748
1820
|
"type": "integer"
|
|
1749
1821
|
},
|
|
@@ -1754,7 +1826,7 @@
|
|
|
1754
1826
|
},
|
|
1755
1827
|
"targetField": {
|
|
1756
1828
|
"$ref": "#/$defs/FieldSelector",
|
|
1757
|
-
"description": "
|
|
1829
|
+
"description": "接收结果的当前表单字段;该字段在整个应用的全部 Q-Linker 和代码块 outputs 中只能作为 targetField 出现一次,不得被多个输出关系重复写入。"
|
|
1758
1830
|
}
|
|
1759
1831
|
},
|
|
1760
1832
|
"required": [
|
|
@@ -1820,7 +1892,7 @@
|
|
|
1820
1892
|
]
|
|
1821
1893
|
},
|
|
1822
1894
|
"jsonValue": {
|
|
1823
|
-
"description": "bodyType 为 json 时的 JSON
|
|
1895
|
+
"description": "bodyType 为 json 时的 JSON 请求体字符串。动态字段值写成 {{key}},且 inputs 必须存在同名 source=json_path 映射;query_param、header、url_encoded 不会替换这里的占位符。",
|
|
1824
1896
|
"type": [
|
|
1825
1897
|
"string",
|
|
1826
1898
|
"null"
|
|
@@ -1851,7 +1923,7 @@
|
|
|
1851
1923
|
]
|
|
1852
1924
|
},
|
|
1853
1925
|
"url": {
|
|
1854
|
-
"description": "请求 URL
|
|
1926
|
+
"description": "请求 URL;动态嵌入字段值时使用 {{key}},并在 inputs 中提供同名 source=json_path 映射。",
|
|
1855
1927
|
"minLength": 1,
|
|
1856
1928
|
"type": "string"
|
|
1857
1929
|
},
|
|
@@ -1863,7 +1935,7 @@
|
|
|
1863
1935
|
"type": "array"
|
|
1864
1936
|
},
|
|
1865
1937
|
"xmlValue": {
|
|
1866
|
-
"description": "bodyType 为 xml 时的 XML
|
|
1938
|
+
"description": "bodyType 为 xml 时的 XML 请求体字符串。动态字段值写成 {{key}},且 inputs 必须存在同名 source=json_path 映射。",
|
|
1867
1939
|
"type": [
|
|
1868
1940
|
"string",
|
|
1869
1941
|
"null"
|
|
@@ -1904,11 +1976,23 @@
|
|
|
1904
1976
|
"description": "引用字段配置;引用其他应用中的数据。",
|
|
1905
1977
|
"properties": {
|
|
1906
1978
|
"beingDefaultFormulaAutoFillEnabled": {
|
|
1979
|
+
"description": "是否启用引用字段的默认值公式自动填充。",
|
|
1907
1980
|
"type": [
|
|
1908
1981
|
"boolean",
|
|
1909
1982
|
"null"
|
|
1910
1983
|
]
|
|
1911
1984
|
},
|
|
1985
|
+
"defaultValueFormula": {
|
|
1986
|
+
"description": "引用字段默认值自动填充使用的公式;仅在 beingDefaultFormulaAutoFillEnabled 为 true 时执行,null 表示清除。",
|
|
1987
|
+
"oneOf": [
|
|
1988
|
+
{
|
|
1989
|
+
"type": "null"
|
|
1990
|
+
},
|
|
1991
|
+
{
|
|
1992
|
+
"$ref": "#/$defs/FormulaExpression"
|
|
1993
|
+
}
|
|
1994
|
+
]
|
|
1995
|
+
},
|
|
1912
1996
|
"defaultValueMatchRules": {
|
|
1913
1997
|
"type": [
|
|
1914
1998
|
"array",
|
|
@@ -1999,11 +2083,9 @@
|
|
|
1999
2083
|
"type": "object"
|
|
2000
2084
|
},
|
|
2001
2085
|
"ScalarDefaultValue": {
|
|
2002
|
-
"description": "
|
|
2086
|
+
"description": "后端 queDefaultValue 支持的普通字段默认值;非空值必须是字符串,显式 null 表示清除默认值。数字和布尔值应先转换为字符串,对象和数组必须使用字段专用默认值配置。需要配置结构化默认值时,通过 AppForm Schema 查询能力传入当前 schema_version,并将字段的 questionType 作为 field_type 获取该字段类型的详细 Schema,再按其中的字段专用 config 定义填写。",
|
|
2003
2087
|
"type": [
|
|
2004
2088
|
"null",
|
|
2005
|
-
"boolean",
|
|
2006
|
-
"number",
|
|
2007
2089
|
"string"
|
|
2008
2090
|
]
|
|
2009
2091
|
},
|
|
@@ -2186,7 +2268,7 @@
|
|
|
2186
2268
|
},
|
|
2187
2269
|
"field": {
|
|
2188
2270
|
"$ref": "#/$defs/FieldSelector",
|
|
2189
|
-
"description": "
|
|
2271
|
+
"description": "自定义编号中参与拼接的取值来源字段。"
|
|
2190
2272
|
},
|
|
2191
2273
|
"id": {
|
|
2192
2274
|
"minimum": 1,
|
|
@@ -2257,57 +2339,6 @@
|
|
|
2257
2339
|
}
|
|
2258
2340
|
]
|
|
2259
2341
|
},
|
|
2260
|
-
"Style": {
|
|
2261
|
-
"additionalProperties": false,
|
|
2262
|
-
"description": "表单背景和头部视觉样式;颜色使用 CSS 颜色字符串。",
|
|
2263
|
-
"properties": {
|
|
2264
|
-
"bgColor": {
|
|
2265
|
-
"description": "表单背景色;null 表示清除。",
|
|
2266
|
-
"type": [
|
|
2267
|
-
"string",
|
|
2268
|
-
"null"
|
|
2269
|
-
]
|
|
2270
|
-
},
|
|
2271
|
-
"bgImage": {
|
|
2272
|
-
"description": "表单背景图片 URL;null 表示清除。",
|
|
2273
|
-
"type": [
|
|
2274
|
-
"string",
|
|
2275
|
-
"null"
|
|
2276
|
-
]
|
|
2277
|
-
},
|
|
2278
|
-
"fontColor": {
|
|
2279
|
-
"description": "表单头部字体颜色;null 表示清除。",
|
|
2280
|
-
"type": [
|
|
2281
|
-
"string",
|
|
2282
|
-
"null"
|
|
2283
|
-
]
|
|
2284
|
-
},
|
|
2285
|
-
"headerColor": {
|
|
2286
|
-
"description": "表单头部背景色;null 表示清除。",
|
|
2287
|
-
"type": [
|
|
2288
|
-
"string",
|
|
2289
|
-
"null"
|
|
2290
|
-
]
|
|
2291
|
-
},
|
|
2292
|
-
"headerImage": {
|
|
2293
|
-
"description": "表单头图 URL;null 表示清除。",
|
|
2294
|
-
"type": [
|
|
2295
|
-
"string",
|
|
2296
|
-
"null"
|
|
2297
|
-
]
|
|
2298
|
-
},
|
|
2299
|
-
"opacity": {
|
|
2300
|
-
"description": "背景透明度,取值 0 到 1;null 表示清除。",
|
|
2301
|
-
"maximum": 1,
|
|
2302
|
-
"minimum": 0,
|
|
2303
|
-
"type": [
|
|
2304
|
-
"number",
|
|
2305
|
-
"null"
|
|
2306
|
-
]
|
|
2307
|
-
}
|
|
2308
|
-
},
|
|
2309
|
-
"type": "object"
|
|
2310
|
-
},
|
|
2311
2342
|
"SubField": {
|
|
2312
2343
|
"allOf": [
|
|
2313
2344
|
{
|
|
@@ -2320,7 +2351,7 @@
|
|
|
2320
2351
|
"config": {
|
|
2321
2352
|
"$ref": "#/$defs/TextConfig"
|
|
2322
2353
|
},
|
|
2323
|
-
"
|
|
2354
|
+
"questionType": {
|
|
2324
2355
|
"enum": [
|
|
2325
2356
|
"text",
|
|
2326
2357
|
"long_text",
|
|
@@ -2330,7 +2361,7 @@
|
|
|
2330
2361
|
}
|
|
2331
2362
|
},
|
|
2332
2363
|
"required": [
|
|
2333
|
-
"
|
|
2364
|
+
"questionType"
|
|
2334
2365
|
]
|
|
2335
2366
|
},
|
|
2336
2367
|
{
|
|
@@ -2338,12 +2369,12 @@
|
|
|
2338
2369
|
"config": {
|
|
2339
2370
|
"$ref": "#/$defs/PhoneConfig"
|
|
2340
2371
|
},
|
|
2341
|
-
"
|
|
2372
|
+
"questionType": {
|
|
2342
2373
|
"const": "phone"
|
|
2343
2374
|
}
|
|
2344
2375
|
},
|
|
2345
2376
|
"required": [
|
|
2346
|
-
"
|
|
2377
|
+
"questionType"
|
|
2347
2378
|
]
|
|
2348
2379
|
},
|
|
2349
2380
|
{
|
|
@@ -2351,12 +2382,12 @@
|
|
|
2351
2382
|
"config": {
|
|
2352
2383
|
"$ref": "#/$defs/NumberConfig"
|
|
2353
2384
|
},
|
|
2354
|
-
"
|
|
2385
|
+
"questionType": {
|
|
2355
2386
|
"const": "number"
|
|
2356
2387
|
}
|
|
2357
2388
|
},
|
|
2358
2389
|
"required": [
|
|
2359
|
-
"
|
|
2390
|
+
"questionType"
|
|
2360
2391
|
]
|
|
2361
2392
|
},
|
|
2362
2393
|
{
|
|
@@ -2364,12 +2395,12 @@
|
|
|
2364
2395
|
"config": {
|
|
2365
2396
|
"$ref": "#/$defs/EmptyConfig"
|
|
2366
2397
|
},
|
|
2367
|
-
"
|
|
2398
|
+
"questionType": {
|
|
2368
2399
|
"const": "date"
|
|
2369
2400
|
}
|
|
2370
2401
|
},
|
|
2371
2402
|
"required": [
|
|
2372
|
-
"
|
|
2403
|
+
"questionType"
|
|
2373
2404
|
]
|
|
2374
2405
|
},
|
|
2375
2406
|
{
|
|
@@ -2377,12 +2408,12 @@
|
|
|
2377
2408
|
"config": {
|
|
2378
2409
|
"$ref": "#/$defs/AttachmentConfig"
|
|
2379
2410
|
},
|
|
2380
|
-
"
|
|
2411
|
+
"questionType": {
|
|
2381
2412
|
"const": "attachment"
|
|
2382
2413
|
}
|
|
2383
2414
|
},
|
|
2384
2415
|
"required": [
|
|
2385
|
-
"
|
|
2416
|
+
"questionType"
|
|
2386
2417
|
]
|
|
2387
2418
|
},
|
|
2388
2419
|
{
|
|
@@ -2390,12 +2421,12 @@
|
|
|
2390
2421
|
"config": {
|
|
2391
2422
|
"$ref": "#/$defs/MemberConfig"
|
|
2392
2423
|
},
|
|
2393
|
-
"
|
|
2424
|
+
"questionType": {
|
|
2394
2425
|
"const": "member"
|
|
2395
2426
|
}
|
|
2396
2427
|
},
|
|
2397
2428
|
"required": [
|
|
2398
|
-
"
|
|
2429
|
+
"questionType"
|
|
2399
2430
|
]
|
|
2400
2431
|
},
|
|
2401
2432
|
{
|
|
@@ -2403,7 +2434,7 @@
|
|
|
2403
2434
|
"config": {
|
|
2404
2435
|
"$ref": "#/$defs/ChoiceConfig"
|
|
2405
2436
|
},
|
|
2406
|
-
"
|
|
2437
|
+
"questionType": {
|
|
2407
2438
|
"enum": [
|
|
2408
2439
|
"single_choice",
|
|
2409
2440
|
"single_select",
|
|
@@ -2412,7 +2443,7 @@
|
|
|
2412
2443
|
}
|
|
2413
2444
|
},
|
|
2414
2445
|
"required": [
|
|
2415
|
-
"
|
|
2446
|
+
"questionType",
|
|
2416
2447
|
"config"
|
|
2417
2448
|
]
|
|
2418
2449
|
},
|
|
@@ -2421,12 +2452,12 @@
|
|
|
2421
2452
|
"config": {
|
|
2422
2453
|
"$ref": "#/$defs/DepartmentConfig"
|
|
2423
2454
|
},
|
|
2424
|
-
"
|
|
2455
|
+
"questionType": {
|
|
2425
2456
|
"const": "department"
|
|
2426
2457
|
}
|
|
2427
2458
|
},
|
|
2428
2459
|
"required": [
|
|
2429
|
-
"
|
|
2460
|
+
"questionType",
|
|
2430
2461
|
"config"
|
|
2431
2462
|
]
|
|
2432
2463
|
},
|
|
@@ -2435,12 +2466,12 @@
|
|
|
2435
2466
|
"config": {
|
|
2436
2467
|
"$ref": "#/$defs/RelationConfig"
|
|
2437
2468
|
},
|
|
2438
|
-
"
|
|
2469
|
+
"questionType": {
|
|
2439
2470
|
"const": "relation"
|
|
2440
2471
|
}
|
|
2441
2472
|
},
|
|
2442
2473
|
"required": [
|
|
2443
|
-
"
|
|
2474
|
+
"questionType",
|
|
2444
2475
|
"config"
|
|
2445
2476
|
]
|
|
2446
2477
|
},
|
|
@@ -2449,12 +2480,12 @@
|
|
|
2449
2480
|
"config": {
|
|
2450
2481
|
"$ref": "#/$defs/DataRelationConfig"
|
|
2451
2482
|
},
|
|
2452
|
-
"
|
|
2483
|
+
"questionType": {
|
|
2453
2484
|
"const": "data_relation"
|
|
2454
2485
|
}
|
|
2455
2486
|
},
|
|
2456
2487
|
"required": [
|
|
2457
|
-
"
|
|
2488
|
+
"questionType",
|
|
2458
2489
|
"config"
|
|
2459
2490
|
]
|
|
2460
2491
|
}
|
|
@@ -2466,11 +2497,71 @@
|
|
|
2466
2497
|
"unevaluatedProperties": false
|
|
2467
2498
|
},
|
|
2468
2499
|
"SubFieldCommon": {
|
|
2469
|
-
"
|
|
2500
|
+
"allOf": [
|
|
2501
|
+
{
|
|
2502
|
+
"if": {
|
|
2503
|
+
"properties": {
|
|
2504
|
+
"defaultType": {
|
|
2505
|
+
"const": 2
|
|
2506
|
+
}
|
|
2507
|
+
},
|
|
2508
|
+
"required": [
|
|
2509
|
+
"defaultType"
|
|
2510
|
+
]
|
|
2511
|
+
},
|
|
2512
|
+
"then": {
|
|
2513
|
+
"properties": {
|
|
2514
|
+
"defaultValue": {
|
|
2515
|
+
"type": "null"
|
|
2516
|
+
}
|
|
2517
|
+
}
|
|
2518
|
+
}
|
|
2519
|
+
},
|
|
2520
|
+
{
|
|
2521
|
+
"if": {
|
|
2522
|
+
"properties": {
|
|
2523
|
+
"defaultType": {
|
|
2524
|
+
"const": 3
|
|
2525
|
+
}
|
|
2526
|
+
},
|
|
2527
|
+
"required": [
|
|
2528
|
+
"defaultType"
|
|
2529
|
+
]
|
|
2530
|
+
},
|
|
2531
|
+
"then": {
|
|
2532
|
+
"properties": {
|
|
2533
|
+
"defaultValue": {
|
|
2534
|
+
"minLength": 1,
|
|
2535
|
+
"type": [
|
|
2536
|
+
"string",
|
|
2537
|
+
"null"
|
|
2538
|
+
]
|
|
2539
|
+
}
|
|
2540
|
+
}
|
|
2541
|
+
}
|
|
2542
|
+
}
|
|
2543
|
+
],
|
|
2544
|
+
"anyOf": [
|
|
2545
|
+
{
|
|
2546
|
+
"required": [
|
|
2547
|
+
"queId"
|
|
2548
|
+
]
|
|
2549
|
+
},
|
|
2550
|
+
{
|
|
2551
|
+
"required": [
|
|
2552
|
+
"name"
|
|
2553
|
+
]
|
|
2554
|
+
}
|
|
2555
|
+
],
|
|
2556
|
+
"description": "表格子字段的公共属性;不允许 width,也不能被应用级数据标题或数据封面选择器选中。",
|
|
2470
2557
|
"properties": {
|
|
2558
|
+
"beingRequired": {
|
|
2559
|
+
"description": "该子字段是否必填;缺失时保留当前值。",
|
|
2560
|
+
"type": "boolean"
|
|
2561
|
+
},
|
|
2471
2562
|
"defaultType": {
|
|
2472
2563
|
"default": 1,
|
|
2473
|
-
"description": "
|
|
2564
|
+
"description": "默认值类型,与 defaultValue 联动;1 表示静态值,2 表示关联/绑定值且 defaultValue 只能省略或为 null,3 表示公式值且提供 defaultValue 时必须为非空公式文本。省略 defaultType 但提供 defaultValue 时按 1 处理。",
|
|
2474
2565
|
"enum": [
|
|
2475
2566
|
1,
|
|
2476
2567
|
2,
|
|
@@ -2479,41 +2570,31 @@
|
|
|
2479
2570
|
"type": "integer"
|
|
2480
2571
|
},
|
|
2481
2572
|
"defaultValue": {
|
|
2482
|
-
"
|
|
2483
|
-
"
|
|
2484
|
-
"null",
|
|
2485
|
-
"boolean",
|
|
2486
|
-
"number",
|
|
2487
|
-
"string",
|
|
2488
|
-
"array",
|
|
2489
|
-
"object"
|
|
2490
|
-
]
|
|
2491
|
-
},
|
|
2492
|
-
"description": {
|
|
2493
|
-
"description": "子字段说明;null 或空字符串表示清空。",
|
|
2494
|
-
"type": [
|
|
2495
|
-
"string",
|
|
2496
|
-
"null"
|
|
2497
|
-
]
|
|
2573
|
+
"$ref": "#/$defs/ScalarDefaultValue",
|
|
2574
|
+
"description": "表单填写时的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。显式 null 表示清除默认值。"
|
|
2498
2575
|
},
|
|
2499
2576
|
"name": {
|
|
2500
|
-
"description": "
|
|
2577
|
+
"description": "子字段展示名称;新增子字段必填,已有子字段可在携带 queId 时省略。",
|
|
2501
2578
|
"minLength": 1,
|
|
2502
2579
|
"type": "string"
|
|
2503
2580
|
},
|
|
2504
2581
|
"queId": {
|
|
2505
|
-
"description": "已有子字段的后端 ID
|
|
2582
|
+
"description": "已有子字段的后端 ID;更新时用于精确定位并复用,新增子字段通常省略。",
|
|
2506
2583
|
"minimum": 1,
|
|
2507
2584
|
"type": "integer"
|
|
2508
2585
|
},
|
|
2509
|
-
"
|
|
2510
|
-
"description": "
|
|
2511
|
-
"type":
|
|
2586
|
+
"questionDescription": {
|
|
2587
|
+
"description": "子字段说明;null 或空字符串表示清空。",
|
|
2588
|
+
"type": [
|
|
2589
|
+
"string",
|
|
2590
|
+
"null"
|
|
2591
|
+
]
|
|
2592
|
+
},
|
|
2593
|
+
"questionType": {
|
|
2594
|
+
"description": "子字段类型;具体可用值由当前字段详情 Schema 的判别分支约束。",
|
|
2595
|
+
"type": "string"
|
|
2512
2596
|
}
|
|
2513
2597
|
},
|
|
2514
|
-
"required": [
|
|
2515
|
-
"name"
|
|
2516
|
-
],
|
|
2517
2598
|
"type": "object"
|
|
2518
2599
|
},
|
|
2519
2600
|
"SubtableConfig": {
|
|
@@ -2543,7 +2624,14 @@
|
|
|
2543
2624
|
]
|
|
2544
2625
|
},
|
|
2545
2626
|
"tableRowHeight": {
|
|
2546
|
-
"
|
|
2627
|
+
"description": "子表行高;只允许 compact(紧凑)、moderate(适中)、easy(宽松)或 highest(最高)。省略表示保留现有值,null 表示清除并使用后端默认的紧凑行高。",
|
|
2628
|
+
"enum": [
|
|
2629
|
+
"compact",
|
|
2630
|
+
"moderate",
|
|
2631
|
+
"easy",
|
|
2632
|
+
"highest",
|
|
2633
|
+
null
|
|
2634
|
+
],
|
|
2547
2635
|
"type": [
|
|
2548
2636
|
"string",
|
|
2549
2637
|
"null"
|
|
@@ -2616,7 +2704,7 @@
|
|
|
2616
2704
|
"config": {
|
|
2617
2705
|
"$ref": "#/$defs/EmptyConfig"
|
|
2618
2706
|
},
|
|
2619
|
-
"
|
|
2707
|
+
"questionType": {
|
|
2620
2708
|
"enum": [
|
|
2621
2709
|
"date",
|
|
2622
2710
|
"datetime"
|
|
@@ -2624,7 +2712,7 @@
|
|
|
2624
2712
|
}
|
|
2625
2713
|
},
|
|
2626
2714
|
"required": [
|
|
2627
|
-
"
|
|
2715
|
+
"questionType"
|
|
2628
2716
|
]
|
|
2629
2717
|
},
|
|
2630
2718
|
{
|
|
@@ -2632,7 +2720,7 @@
|
|
|
2632
2720
|
"config": {
|
|
2633
2721
|
"$ref": "#/$defs/TextConfig"
|
|
2634
2722
|
},
|
|
2635
|
-
"
|
|
2723
|
+
"questionType": {
|
|
2636
2724
|
"enum": [
|
|
2637
2725
|
"text",
|
|
2638
2726
|
"long_text",
|
|
@@ -2642,7 +2730,7 @@
|
|
|
2642
2730
|
}
|
|
2643
2731
|
},
|
|
2644
2732
|
"required": [
|
|
2645
|
-
"
|
|
2733
|
+
"questionType"
|
|
2646
2734
|
]
|
|
2647
2735
|
},
|
|
2648
2736
|
{
|
|
@@ -2650,12 +2738,12 @@
|
|
|
2650
2738
|
"config": {
|
|
2651
2739
|
"$ref": "#/$defs/PhoneConfig"
|
|
2652
2740
|
},
|
|
2653
|
-
"
|
|
2741
|
+
"questionType": {
|
|
2654
2742
|
"const": "phone"
|
|
2655
2743
|
}
|
|
2656
2744
|
},
|
|
2657
2745
|
"required": [
|
|
2658
|
-
"
|
|
2746
|
+
"questionType"
|
|
2659
2747
|
]
|
|
2660
2748
|
},
|
|
2661
2749
|
{
|
|
@@ -2663,7 +2751,7 @@
|
|
|
2663
2751
|
"config": {
|
|
2664
2752
|
"$ref": "#/$defs/NumberConfig"
|
|
2665
2753
|
},
|
|
2666
|
-
"
|
|
2754
|
+
"questionType": {
|
|
2667
2755
|
"enum": [
|
|
2668
2756
|
"number",
|
|
2669
2757
|
"amount"
|
|
@@ -2671,7 +2759,7 @@
|
|
|
2671
2759
|
}
|
|
2672
2760
|
},
|
|
2673
2761
|
"required": [
|
|
2674
|
-
"
|
|
2762
|
+
"questionType"
|
|
2675
2763
|
]
|
|
2676
2764
|
},
|
|
2677
2765
|
{
|
|
@@ -2679,12 +2767,12 @@
|
|
|
2679
2767
|
"config": {
|
|
2680
2768
|
"$ref": "#/$defs/MemberConfig"
|
|
2681
2769
|
},
|
|
2682
|
-
"
|
|
2770
|
+
"questionType": {
|
|
2683
2771
|
"const": "member"
|
|
2684
2772
|
}
|
|
2685
2773
|
},
|
|
2686
2774
|
"required": [
|
|
2687
|
-
"
|
|
2775
|
+
"questionType"
|
|
2688
2776
|
]
|
|
2689
2777
|
},
|
|
2690
2778
|
{
|
|
@@ -2692,12 +2780,12 @@
|
|
|
2692
2780
|
"config": {
|
|
2693
2781
|
"$ref": "#/$defs/AddressConfig"
|
|
2694
2782
|
},
|
|
2695
|
-
"
|
|
2783
|
+
"questionType": {
|
|
2696
2784
|
"const": "address"
|
|
2697
2785
|
}
|
|
2698
2786
|
},
|
|
2699
2787
|
"required": [
|
|
2700
|
-
"
|
|
2788
|
+
"questionType"
|
|
2701
2789
|
]
|
|
2702
2790
|
},
|
|
2703
2791
|
{
|
|
@@ -2705,15 +2793,12 @@
|
|
|
2705
2793
|
"config": {
|
|
2706
2794
|
"$ref": "#/$defs/AttachmentConfig"
|
|
2707
2795
|
},
|
|
2708
|
-
"
|
|
2709
|
-
"type": "boolean"
|
|
2710
|
-
},
|
|
2711
|
-
"type": {
|
|
2796
|
+
"questionType": {
|
|
2712
2797
|
"const": "attachment"
|
|
2713
2798
|
}
|
|
2714
2799
|
},
|
|
2715
2800
|
"required": [
|
|
2716
|
-
"
|
|
2801
|
+
"questionType"
|
|
2717
2802
|
]
|
|
2718
2803
|
},
|
|
2719
2804
|
{
|
|
@@ -2721,7 +2806,7 @@
|
|
|
2721
2806
|
"config": {
|
|
2722
2807
|
"$ref": "#/$defs/ChoiceConfig"
|
|
2723
2808
|
},
|
|
2724
|
-
"
|
|
2809
|
+
"questionType": {
|
|
2725
2810
|
"enum": [
|
|
2726
2811
|
"single_choice",
|
|
2727
2812
|
"single_select",
|
|
@@ -2730,7 +2815,7 @@
|
|
|
2730
2815
|
}
|
|
2731
2816
|
},
|
|
2732
2817
|
"required": [
|
|
2733
|
-
"
|
|
2818
|
+
"questionType",
|
|
2734
2819
|
"config"
|
|
2735
2820
|
]
|
|
2736
2821
|
},
|
|
@@ -2739,12 +2824,12 @@
|
|
|
2739
2824
|
"config": {
|
|
2740
2825
|
"$ref": "#/$defs/DepartmentConfig"
|
|
2741
2826
|
},
|
|
2742
|
-
"
|
|
2827
|
+
"questionType": {
|
|
2743
2828
|
"const": "department"
|
|
2744
2829
|
}
|
|
2745
2830
|
},
|
|
2746
2831
|
"required": [
|
|
2747
|
-
"
|
|
2832
|
+
"questionType",
|
|
2748
2833
|
"config"
|
|
2749
2834
|
]
|
|
2750
2835
|
},
|
|
@@ -2753,12 +2838,12 @@
|
|
|
2753
2838
|
"config": {
|
|
2754
2839
|
"$ref": "#/$defs/RelationConfig"
|
|
2755
2840
|
},
|
|
2756
|
-
"
|
|
2841
|
+
"questionType": {
|
|
2757
2842
|
"const": "relation"
|
|
2758
2843
|
}
|
|
2759
2844
|
},
|
|
2760
2845
|
"required": [
|
|
2761
|
-
"
|
|
2846
|
+
"questionType",
|
|
2762
2847
|
"config"
|
|
2763
2848
|
]
|
|
2764
2849
|
},
|
|
@@ -2767,12 +2852,12 @@
|
|
|
2767
2852
|
"config": {
|
|
2768
2853
|
"$ref": "#/$defs/QLinkerConfig"
|
|
2769
2854
|
},
|
|
2770
|
-
"
|
|
2855
|
+
"questionType": {
|
|
2771
2856
|
"const": "q_linker"
|
|
2772
2857
|
}
|
|
2773
2858
|
},
|
|
2774
2859
|
"required": [
|
|
2775
|
-
"
|
|
2860
|
+
"questionType",
|
|
2776
2861
|
"config"
|
|
2777
2862
|
]
|
|
2778
2863
|
},
|
|
@@ -2781,12 +2866,12 @@
|
|
|
2781
2866
|
"config": {
|
|
2782
2867
|
"$ref": "#/$defs/CodeBlockConfig"
|
|
2783
2868
|
},
|
|
2784
|
-
"
|
|
2869
|
+
"questionType": {
|
|
2785
2870
|
"const": "code_block"
|
|
2786
2871
|
}
|
|
2787
2872
|
},
|
|
2788
2873
|
"required": [
|
|
2789
|
-
"
|
|
2874
|
+
"questionType",
|
|
2790
2875
|
"config"
|
|
2791
2876
|
]
|
|
2792
2877
|
},
|
|
@@ -2795,12 +2880,12 @@
|
|
|
2795
2880
|
"config": {
|
|
2796
2881
|
"$ref": "#/$defs/DataRelationConfig"
|
|
2797
2882
|
},
|
|
2798
|
-
"
|
|
2883
|
+
"questionType": {
|
|
2799
2884
|
"const": "data_relation"
|
|
2800
2885
|
}
|
|
2801
2886
|
},
|
|
2802
2887
|
"required": [
|
|
2803
|
-
"
|
|
2888
|
+
"questionType",
|
|
2804
2889
|
"config"
|
|
2805
2890
|
]
|
|
2806
2891
|
},
|
|
@@ -2809,26 +2894,26 @@
|
|
|
2809
2894
|
"config": {
|
|
2810
2895
|
"$ref": "#/$defs/SubtableConfig"
|
|
2811
2896
|
},
|
|
2897
|
+
"questionType": {
|
|
2898
|
+
"const": "subtable"
|
|
2899
|
+
},
|
|
2812
2900
|
"subfields": {
|
|
2813
2901
|
"items": {
|
|
2814
2902
|
"$ref": "#/$defs/SubField"
|
|
2815
2903
|
},
|
|
2816
2904
|
"minItems": 1,
|
|
2817
2905
|
"type": "array"
|
|
2818
|
-
},
|
|
2819
|
-
"type": {
|
|
2820
|
-
"const": "subtable"
|
|
2821
2906
|
}
|
|
2822
2907
|
},
|
|
2823
2908
|
"required": [
|
|
2824
|
-
"
|
|
2909
|
+
"questionType",
|
|
2825
2910
|
"subfields"
|
|
2826
2911
|
]
|
|
2827
2912
|
}
|
|
2828
2913
|
]
|
|
2829
2914
|
}
|
|
2830
2915
|
],
|
|
2831
|
-
"description": "顶层业务字段;
|
|
2916
|
+
"description": "顶层业务字段;questionType 决定 config 或 subfields 的结构。",
|
|
2832
2917
|
"type": "object",
|
|
2833
2918
|
"unevaluatedProperties": false
|
|
2834
2919
|
}
|
|
@@ -2837,24 +2922,6 @@
|
|
|
2837
2922
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2838
2923
|
"oneOf": [
|
|
2839
2924
|
{
|
|
2840
|
-
"properties": {
|
|
2841
|
-
"spec": {
|
|
2842
|
-
"not": {
|
|
2843
|
-
"anyOf": [
|
|
2844
|
-
{
|
|
2845
|
-
"required": [
|
|
2846
|
-
"icon"
|
|
2847
|
-
]
|
|
2848
|
-
},
|
|
2849
|
-
{
|
|
2850
|
-
"required": [
|
|
2851
|
-
"color"
|
|
2852
|
-
]
|
|
2853
|
-
}
|
|
2854
|
-
]
|
|
2855
|
-
}
|
|
2856
|
-
}
|
|
2857
|
-
},
|
|
2858
2925
|
"required": [
|
|
2859
2926
|
"appKey"
|
|
2860
2927
|
]
|
|
@@ -2868,9 +2935,7 @@
|
|
|
2868
2935
|
"properties": {
|
|
2869
2936
|
"spec": {
|
|
2870
2937
|
"required": [
|
|
2871
|
-
"appName"
|
|
2872
|
-
"icon",
|
|
2873
|
-
"color"
|
|
2938
|
+
"appName"
|
|
2874
2939
|
]
|
|
2875
2940
|
}
|
|
2876
2941
|
},
|
|
@@ -2882,7 +2947,7 @@
|
|
|
2882
2947
|
"properties": {
|
|
2883
2948
|
"apiVersion": {
|
|
2884
2949
|
"const": "builder.qingflow.com/v1alpha1",
|
|
2885
|
-
"description": "AppForm
|
|
2950
|
+
"description": "AppForm 契约版本;当前固定为 v1alpha1。"
|
|
2886
2951
|
},
|
|
2887
2952
|
"appKey": {
|
|
2888
2953
|
"description": "更新已有应用的唯一标识;存在非空值即进入更新模式。",
|