@qingflow-tech/qingflow-cli 1.1.43-beta.3 → 1.1.43-beta.5
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 +12 -9
- package/skills/qingflow-cli/reference/builder/30-schema-fields.md +15 -13
- package/src/qingflow_mcp/app_form_compat.py +11 -27
- package/src/qingflow_mcp/app_form_validator.py +298 -35
- package/src/qingflow_mcp/builder_facade/app_form.py +777 -150
- package/src/qingflow_mcp/builder_facade/app_form_schema.py +164 -8
- package/src/qingflow_mcp/builder_facade/schemas/app_form/manifest.json +5 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/complete.json +299 -239
- 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 +82 -27
- 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 +82 -27
- 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 +201 -111
- 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/formula.json +1594 -0
- 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/cli/commands/builder.py +2 -0
- package/src/qingflow_mcp/response_trim.py +2 -0
- package/src/qingflow_mcp/server_app_builder.py +9 -4
- package/src/qingflow_mcp/tools/ai_builder_tools.py +13 -3
|
@@ -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": [
|
|
@@ -1640,17 +1714,17 @@
|
|
|
1640
1714
|
},
|
|
1641
1715
|
"QLinkerBinding": {
|
|
1642
1716
|
"additionalProperties": false,
|
|
1643
|
-
"description": "Q-Linker
|
|
1717
|
+
"description": "Q-Linker 的输入映射、请求配置和输出映射;每个输出目标还必须满足应用级唯一性规则,不能与任何 Q-Linker 或代码块的其他输出指向同一实际字段。多个生产方需要回写时,请选择不同目标字段或合并为一个生产方。",
|
|
1644
1718
|
"properties": {
|
|
1645
1719
|
"inputs": {
|
|
1646
|
-
"description": "将当前表单字段映射到请求参数的规则。",
|
|
1720
|
+
"description": "将当前表单字段映射到请求参数的规则。query_param、header、url_encoded 会直接生成对应位置的动态参数;json_path 用于替换 request.url、request.jsonValue 或 request.xmlValue 中的 {{key}} 占位符。",
|
|
1647
1721
|
"items": {
|
|
1648
1722
|
"$ref": "#/$defs/QLinkerInputBinding"
|
|
1649
1723
|
},
|
|
1650
1724
|
"type": "array"
|
|
1651
1725
|
},
|
|
1652
1726
|
"outputs": {
|
|
1653
|
-
"description": "
|
|
1727
|
+
"description": "将响应路径映射到目标字段的规则;至少一个。所有 targetField 在整个应用的 Q-Linker 和代码块输出中必须全局唯一。",
|
|
1654
1728
|
"items": {
|
|
1655
1729
|
"$ref": "#/$defs/QLinkerOutputBinding"
|
|
1656
1730
|
},
|
|
@@ -1683,19 +1757,19 @@
|
|
|
1683
1757
|
},
|
|
1684
1758
|
"QLinkerInputBinding": {
|
|
1685
1759
|
"additionalProperties": false,
|
|
1686
|
-
"description": "
|
|
1760
|
+
"description": "一个表单字段到请求参数的映射。需要把字段值嵌入 URL、JSON 或 XML 字符串时,source 必须为 json_path,key 必须等于所选字段名,并在对应请求字符串中写 {{key}};其他 source 不会替换 {{key}}。",
|
|
1687
1761
|
"properties": {
|
|
1688
1762
|
"field": {
|
|
1689
1763
|
"$ref": "#/$defs/FieldSelector",
|
|
1690
1764
|
"description": "输入来源字段。"
|
|
1691
1765
|
},
|
|
1692
1766
|
"key": {
|
|
1693
|
-
"description": "
|
|
1767
|
+
"description": "请求参数名。source 为 json_path 时必须等于 field 选中的字段名,并与请求字符串中的 {{key}} 完全一致。",
|
|
1694
1768
|
"minLength": 1,
|
|
1695
1769
|
"type": "string"
|
|
1696
1770
|
},
|
|
1697
1771
|
"source": {
|
|
1698
|
-
"description": "
|
|
1772
|
+
"description": "字段值的写入位置。query_param、header、url_encoded 分别生成动态查询参数、请求头、表单项;json_path 替换 URL、JSON 或 XML 中的 {{key}}。不要用前三种 source 提供字符串占位符。",
|
|
1699
1773
|
"enum": [
|
|
1700
1774
|
"query_param",
|
|
1701
1775
|
"header",
|
|
@@ -1735,7 +1809,7 @@
|
|
|
1735
1809
|
},
|
|
1736
1810
|
"QLinkerOutputBinding": {
|
|
1737
1811
|
"additionalProperties": false,
|
|
1738
|
-
"description": "
|
|
1812
|
+
"description": "一个响应值到表单目标字段的映射;同一实际目标字段在整个应用中只能被一个 Q-Linker 或代码块输出映射写入。",
|
|
1739
1813
|
"properties": {
|
|
1740
1814
|
"alias": {
|
|
1741
1815
|
"description": "输出别名;用于后续数据关联引用。",
|
|
@@ -1743,7 +1817,7 @@
|
|
|
1743
1817
|
"type": "string"
|
|
1744
1818
|
},
|
|
1745
1819
|
"aliasId": {
|
|
1746
|
-
"description": "后端生成的输出别名 ID
|
|
1820
|
+
"description": "后端生成的输出别名 ID;新增输出时省略,Builder 在首次写入后按 alias 与 path 自动回填再保存关系。更新已有输出时必须保留 get 返回值,不得自行编造或置空。",
|
|
1747
1821
|
"minimum": 1,
|
|
1748
1822
|
"type": "integer"
|
|
1749
1823
|
},
|
|
@@ -1754,7 +1828,7 @@
|
|
|
1754
1828
|
},
|
|
1755
1829
|
"targetField": {
|
|
1756
1830
|
"$ref": "#/$defs/FieldSelector",
|
|
1757
|
-
"description": "
|
|
1831
|
+
"description": "接收结果的当前表单字段;该字段在整个应用的全部 Q-Linker 和代码块 outputs 中只能作为 targetField 出现一次,不得被多个输出关系重复写入。"
|
|
1758
1832
|
}
|
|
1759
1833
|
},
|
|
1760
1834
|
"required": [
|
|
@@ -1820,7 +1894,7 @@
|
|
|
1820
1894
|
]
|
|
1821
1895
|
},
|
|
1822
1896
|
"jsonValue": {
|
|
1823
|
-
"description": "bodyType 为 json 时的 JSON
|
|
1897
|
+
"description": "bodyType 为 json 时的 JSON 请求体字符串。动态字段值写成 {{key}},且 inputs 必须存在同名 source=json_path 映射;query_param、header、url_encoded 不会替换这里的占位符。",
|
|
1824
1898
|
"type": [
|
|
1825
1899
|
"string",
|
|
1826
1900
|
"null"
|
|
@@ -1851,7 +1925,7 @@
|
|
|
1851
1925
|
]
|
|
1852
1926
|
},
|
|
1853
1927
|
"url": {
|
|
1854
|
-
"description": "请求 URL
|
|
1928
|
+
"description": "请求 URL;动态嵌入字段值时使用 {{key}},并在 inputs 中提供同名 source=json_path 映射。",
|
|
1855
1929
|
"minLength": 1,
|
|
1856
1930
|
"type": "string"
|
|
1857
1931
|
},
|
|
@@ -1863,7 +1937,7 @@
|
|
|
1863
1937
|
"type": "array"
|
|
1864
1938
|
},
|
|
1865
1939
|
"xmlValue": {
|
|
1866
|
-
"description": "bodyType 为 xml 时的 XML
|
|
1940
|
+
"description": "bodyType 为 xml 时的 XML 请求体字符串。动态字段值写成 {{key}},且 inputs 必须存在同名 source=json_path 映射。",
|
|
1867
1941
|
"type": [
|
|
1868
1942
|
"string",
|
|
1869
1943
|
"null"
|
|
@@ -1904,11 +1978,23 @@
|
|
|
1904
1978
|
"description": "引用字段配置;引用其他应用中的数据。",
|
|
1905
1979
|
"properties": {
|
|
1906
1980
|
"beingDefaultFormulaAutoFillEnabled": {
|
|
1981
|
+
"description": "是否启用引用字段的默认值公式自动填充。",
|
|
1907
1982
|
"type": [
|
|
1908
1983
|
"boolean",
|
|
1909
1984
|
"null"
|
|
1910
1985
|
]
|
|
1911
1986
|
},
|
|
1987
|
+
"defaultValueFormula": {
|
|
1988
|
+
"description": "引用字段默认值自动填充使用的公式;仅在 beingDefaultFormulaAutoFillEnabled 为 true 时执行,null 表示清除。",
|
|
1989
|
+
"oneOf": [
|
|
1990
|
+
{
|
|
1991
|
+
"type": "null"
|
|
1992
|
+
},
|
|
1993
|
+
{
|
|
1994
|
+
"$ref": "#/$defs/FormulaExpression"
|
|
1995
|
+
}
|
|
1996
|
+
]
|
|
1997
|
+
},
|
|
1912
1998
|
"defaultValueMatchRules": {
|
|
1913
1999
|
"type": [
|
|
1914
2000
|
"array",
|
|
@@ -1999,11 +2085,9 @@
|
|
|
1999
2085
|
"type": "object"
|
|
2000
2086
|
},
|
|
2001
2087
|
"ScalarDefaultValue": {
|
|
2002
|
-
"description": "
|
|
2088
|
+
"description": "后端 queDefaultValue 支持的普通字段默认值;非空值必须是字符串,显式 null 表示清除默认值。数字和布尔值应先转换为字符串,对象和数组必须使用字段专用默认值配置。defaultType 为 3 时,通过 AppForm Schema 查询能力传入当前 schema_version 并设置 schema_kind=formula 获取公式语法、字段引用、运算符和全部函数说明;CLI 使用 builder app-form schema --schema-kind formula。需要配置结构化默认值时,传入当前 schema_version,并将字段的 questionType 作为 field_type 获取字段详细 Schema。",
|
|
2003
2089
|
"type": [
|
|
2004
2090
|
"null",
|
|
2005
|
-
"boolean",
|
|
2006
|
-
"number",
|
|
2007
2091
|
"string"
|
|
2008
2092
|
]
|
|
2009
2093
|
},
|
|
@@ -2186,7 +2270,7 @@
|
|
|
2186
2270
|
},
|
|
2187
2271
|
"field": {
|
|
2188
2272
|
"$ref": "#/$defs/FieldSelector",
|
|
2189
|
-
"description": "
|
|
2273
|
+
"description": "自定义编号中参与拼接的取值来源字段。"
|
|
2190
2274
|
},
|
|
2191
2275
|
"id": {
|
|
2192
2276
|
"minimum": 1,
|
|
@@ -2257,57 +2341,6 @@
|
|
|
2257
2341
|
}
|
|
2258
2342
|
]
|
|
2259
2343
|
},
|
|
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
2344
|
"SubField": {
|
|
2312
2345
|
"allOf": [
|
|
2313
2346
|
{
|
|
@@ -2320,7 +2353,7 @@
|
|
|
2320
2353
|
"config": {
|
|
2321
2354
|
"$ref": "#/$defs/TextConfig"
|
|
2322
2355
|
},
|
|
2323
|
-
"
|
|
2356
|
+
"questionType": {
|
|
2324
2357
|
"enum": [
|
|
2325
2358
|
"text",
|
|
2326
2359
|
"long_text",
|
|
@@ -2330,7 +2363,7 @@
|
|
|
2330
2363
|
}
|
|
2331
2364
|
},
|
|
2332
2365
|
"required": [
|
|
2333
|
-
"
|
|
2366
|
+
"questionType"
|
|
2334
2367
|
]
|
|
2335
2368
|
},
|
|
2336
2369
|
{
|
|
@@ -2338,12 +2371,12 @@
|
|
|
2338
2371
|
"config": {
|
|
2339
2372
|
"$ref": "#/$defs/PhoneConfig"
|
|
2340
2373
|
},
|
|
2341
|
-
"
|
|
2374
|
+
"questionType": {
|
|
2342
2375
|
"const": "phone"
|
|
2343
2376
|
}
|
|
2344
2377
|
},
|
|
2345
2378
|
"required": [
|
|
2346
|
-
"
|
|
2379
|
+
"questionType"
|
|
2347
2380
|
]
|
|
2348
2381
|
},
|
|
2349
2382
|
{
|
|
@@ -2351,12 +2384,12 @@
|
|
|
2351
2384
|
"config": {
|
|
2352
2385
|
"$ref": "#/$defs/NumberConfig"
|
|
2353
2386
|
},
|
|
2354
|
-
"
|
|
2387
|
+
"questionType": {
|
|
2355
2388
|
"const": "number"
|
|
2356
2389
|
}
|
|
2357
2390
|
},
|
|
2358
2391
|
"required": [
|
|
2359
|
-
"
|
|
2392
|
+
"questionType"
|
|
2360
2393
|
]
|
|
2361
2394
|
},
|
|
2362
2395
|
{
|
|
@@ -2364,12 +2397,12 @@
|
|
|
2364
2397
|
"config": {
|
|
2365
2398
|
"$ref": "#/$defs/EmptyConfig"
|
|
2366
2399
|
},
|
|
2367
|
-
"
|
|
2400
|
+
"questionType": {
|
|
2368
2401
|
"const": "date"
|
|
2369
2402
|
}
|
|
2370
2403
|
},
|
|
2371
2404
|
"required": [
|
|
2372
|
-
"
|
|
2405
|
+
"questionType"
|
|
2373
2406
|
]
|
|
2374
2407
|
},
|
|
2375
2408
|
{
|
|
@@ -2377,12 +2410,12 @@
|
|
|
2377
2410
|
"config": {
|
|
2378
2411
|
"$ref": "#/$defs/AttachmentConfig"
|
|
2379
2412
|
},
|
|
2380
|
-
"
|
|
2413
|
+
"questionType": {
|
|
2381
2414
|
"const": "attachment"
|
|
2382
2415
|
}
|
|
2383
2416
|
},
|
|
2384
2417
|
"required": [
|
|
2385
|
-
"
|
|
2418
|
+
"questionType"
|
|
2386
2419
|
]
|
|
2387
2420
|
},
|
|
2388
2421
|
{
|
|
@@ -2390,12 +2423,12 @@
|
|
|
2390
2423
|
"config": {
|
|
2391
2424
|
"$ref": "#/$defs/MemberConfig"
|
|
2392
2425
|
},
|
|
2393
|
-
"
|
|
2426
|
+
"questionType": {
|
|
2394
2427
|
"const": "member"
|
|
2395
2428
|
}
|
|
2396
2429
|
},
|
|
2397
2430
|
"required": [
|
|
2398
|
-
"
|
|
2431
|
+
"questionType"
|
|
2399
2432
|
]
|
|
2400
2433
|
},
|
|
2401
2434
|
{
|
|
@@ -2403,7 +2436,7 @@
|
|
|
2403
2436
|
"config": {
|
|
2404
2437
|
"$ref": "#/$defs/ChoiceConfig"
|
|
2405
2438
|
},
|
|
2406
|
-
"
|
|
2439
|
+
"questionType": {
|
|
2407
2440
|
"enum": [
|
|
2408
2441
|
"single_choice",
|
|
2409
2442
|
"single_select",
|
|
@@ -2412,7 +2445,7 @@
|
|
|
2412
2445
|
}
|
|
2413
2446
|
},
|
|
2414
2447
|
"required": [
|
|
2415
|
-
"
|
|
2448
|
+
"questionType",
|
|
2416
2449
|
"config"
|
|
2417
2450
|
]
|
|
2418
2451
|
},
|
|
@@ -2421,12 +2454,12 @@
|
|
|
2421
2454
|
"config": {
|
|
2422
2455
|
"$ref": "#/$defs/DepartmentConfig"
|
|
2423
2456
|
},
|
|
2424
|
-
"
|
|
2457
|
+
"questionType": {
|
|
2425
2458
|
"const": "department"
|
|
2426
2459
|
}
|
|
2427
2460
|
},
|
|
2428
2461
|
"required": [
|
|
2429
|
-
"
|
|
2462
|
+
"questionType",
|
|
2430
2463
|
"config"
|
|
2431
2464
|
]
|
|
2432
2465
|
},
|
|
@@ -2435,12 +2468,12 @@
|
|
|
2435
2468
|
"config": {
|
|
2436
2469
|
"$ref": "#/$defs/RelationConfig"
|
|
2437
2470
|
},
|
|
2438
|
-
"
|
|
2471
|
+
"questionType": {
|
|
2439
2472
|
"const": "relation"
|
|
2440
2473
|
}
|
|
2441
2474
|
},
|
|
2442
2475
|
"required": [
|
|
2443
|
-
"
|
|
2476
|
+
"questionType",
|
|
2444
2477
|
"config"
|
|
2445
2478
|
]
|
|
2446
2479
|
},
|
|
@@ -2449,12 +2482,12 @@
|
|
|
2449
2482
|
"config": {
|
|
2450
2483
|
"$ref": "#/$defs/DataRelationConfig"
|
|
2451
2484
|
},
|
|
2452
|
-
"
|
|
2485
|
+
"questionType": {
|
|
2453
2486
|
"const": "data_relation"
|
|
2454
2487
|
}
|
|
2455
2488
|
},
|
|
2456
2489
|
"required": [
|
|
2457
|
-
"
|
|
2490
|
+
"questionType",
|
|
2458
2491
|
"config"
|
|
2459
2492
|
]
|
|
2460
2493
|
}
|
|
@@ -2466,11 +2499,71 @@
|
|
|
2466
2499
|
"unevaluatedProperties": false
|
|
2467
2500
|
},
|
|
2468
2501
|
"SubFieldCommon": {
|
|
2469
|
-
"
|
|
2502
|
+
"allOf": [
|
|
2503
|
+
{
|
|
2504
|
+
"if": {
|
|
2505
|
+
"properties": {
|
|
2506
|
+
"defaultType": {
|
|
2507
|
+
"const": 2
|
|
2508
|
+
}
|
|
2509
|
+
},
|
|
2510
|
+
"required": [
|
|
2511
|
+
"defaultType"
|
|
2512
|
+
]
|
|
2513
|
+
},
|
|
2514
|
+
"then": {
|
|
2515
|
+
"properties": {
|
|
2516
|
+
"defaultValue": {
|
|
2517
|
+
"type": "null"
|
|
2518
|
+
}
|
|
2519
|
+
}
|
|
2520
|
+
}
|
|
2521
|
+
},
|
|
2522
|
+
{
|
|
2523
|
+
"if": {
|
|
2524
|
+
"properties": {
|
|
2525
|
+
"defaultType": {
|
|
2526
|
+
"const": 3
|
|
2527
|
+
}
|
|
2528
|
+
},
|
|
2529
|
+
"required": [
|
|
2530
|
+
"defaultType"
|
|
2531
|
+
]
|
|
2532
|
+
},
|
|
2533
|
+
"then": {
|
|
2534
|
+
"properties": {
|
|
2535
|
+
"defaultValue": {
|
|
2536
|
+
"minLength": 1,
|
|
2537
|
+
"type": [
|
|
2538
|
+
"string",
|
|
2539
|
+
"null"
|
|
2540
|
+
]
|
|
2541
|
+
}
|
|
2542
|
+
}
|
|
2543
|
+
}
|
|
2544
|
+
}
|
|
2545
|
+
],
|
|
2546
|
+
"anyOf": [
|
|
2547
|
+
{
|
|
2548
|
+
"required": [
|
|
2549
|
+
"queId"
|
|
2550
|
+
]
|
|
2551
|
+
},
|
|
2552
|
+
{
|
|
2553
|
+
"required": [
|
|
2554
|
+
"name"
|
|
2555
|
+
]
|
|
2556
|
+
}
|
|
2557
|
+
],
|
|
2558
|
+
"description": "表格子字段的公共属性;不允许 width,也不能被应用级数据标题或数据封面选择器选中。",
|
|
2470
2559
|
"properties": {
|
|
2560
|
+
"beingRequired": {
|
|
2561
|
+
"description": "该子字段是否必填;缺失时保留当前值。",
|
|
2562
|
+
"type": "boolean"
|
|
2563
|
+
},
|
|
2471
2564
|
"defaultType": {
|
|
2472
2565
|
"default": 1,
|
|
2473
|
-
"description": "
|
|
2566
|
+
"description": "默认值类型,与 defaultValue 联动;1 表示静态值,2 表示关联/绑定值且 defaultValue 只能省略或为 null,3 表示公式值且提供 defaultValue 时必须为非空公式文本。省略 defaultType 但提供 defaultValue 时按 1 处理。",
|
|
2474
2567
|
"enum": [
|
|
2475
2568
|
1,
|
|
2476
2569
|
2,
|
|
@@ -2479,41 +2572,31 @@
|
|
|
2479
2572
|
"type": "integer"
|
|
2480
2573
|
},
|
|
2481
2574
|
"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
|
-
]
|
|
2575
|
+
"$ref": "#/$defs/ScalarDefaultValue",
|
|
2576
|
+
"description": "表单填写时的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。显式 null 表示清除默认值。"
|
|
2498
2577
|
},
|
|
2499
2578
|
"name": {
|
|
2500
|
-
"description": "
|
|
2579
|
+
"description": "子字段展示名称;新增子字段必填,已有子字段可在携带 queId 时省略。",
|
|
2501
2580
|
"minLength": 1,
|
|
2502
2581
|
"type": "string"
|
|
2503
2582
|
},
|
|
2504
2583
|
"queId": {
|
|
2505
|
-
"description": "已有子字段的后端 ID
|
|
2584
|
+
"description": "已有子字段的后端 ID;更新时用于精确定位并复用,新增子字段通常省略。",
|
|
2506
2585
|
"minimum": 1,
|
|
2507
2586
|
"type": "integer"
|
|
2508
2587
|
},
|
|
2509
|
-
"
|
|
2510
|
-
"description": "
|
|
2511
|
-
"type":
|
|
2588
|
+
"questionDescription": {
|
|
2589
|
+
"description": "子字段说明;null 或空字符串表示清空。",
|
|
2590
|
+
"type": [
|
|
2591
|
+
"string",
|
|
2592
|
+
"null"
|
|
2593
|
+
]
|
|
2594
|
+
},
|
|
2595
|
+
"questionType": {
|
|
2596
|
+
"description": "子字段类型;具体可用值由当前字段详情 Schema 的判别分支约束。",
|
|
2597
|
+
"type": "string"
|
|
2512
2598
|
}
|
|
2513
2599
|
},
|
|
2514
|
-
"required": [
|
|
2515
|
-
"name"
|
|
2516
|
-
],
|
|
2517
2600
|
"type": "object"
|
|
2518
2601
|
},
|
|
2519
2602
|
"SubtableConfig": {
|
|
@@ -2616,7 +2699,7 @@
|
|
|
2616
2699
|
"config": {
|
|
2617
2700
|
"$ref": "#/$defs/EmptyConfig"
|
|
2618
2701
|
},
|
|
2619
|
-
"
|
|
2702
|
+
"questionType": {
|
|
2620
2703
|
"enum": [
|
|
2621
2704
|
"date",
|
|
2622
2705
|
"datetime"
|
|
@@ -2624,7 +2707,7 @@
|
|
|
2624
2707
|
}
|
|
2625
2708
|
},
|
|
2626
2709
|
"required": [
|
|
2627
|
-
"
|
|
2710
|
+
"questionType"
|
|
2628
2711
|
]
|
|
2629
2712
|
},
|
|
2630
2713
|
{
|
|
@@ -2632,7 +2715,7 @@
|
|
|
2632
2715
|
"config": {
|
|
2633
2716
|
"$ref": "#/$defs/TextConfig"
|
|
2634
2717
|
},
|
|
2635
|
-
"
|
|
2718
|
+
"questionType": {
|
|
2636
2719
|
"enum": [
|
|
2637
2720
|
"text",
|
|
2638
2721
|
"long_text",
|
|
@@ -2642,7 +2725,7 @@
|
|
|
2642
2725
|
}
|
|
2643
2726
|
},
|
|
2644
2727
|
"required": [
|
|
2645
|
-
"
|
|
2728
|
+
"questionType"
|
|
2646
2729
|
]
|
|
2647
2730
|
},
|
|
2648
2731
|
{
|
|
@@ -2650,12 +2733,12 @@
|
|
|
2650
2733
|
"config": {
|
|
2651
2734
|
"$ref": "#/$defs/PhoneConfig"
|
|
2652
2735
|
},
|
|
2653
|
-
"
|
|
2736
|
+
"questionType": {
|
|
2654
2737
|
"const": "phone"
|
|
2655
2738
|
}
|
|
2656
2739
|
},
|
|
2657
2740
|
"required": [
|
|
2658
|
-
"
|
|
2741
|
+
"questionType"
|
|
2659
2742
|
]
|
|
2660
2743
|
},
|
|
2661
2744
|
{
|
|
@@ -2663,7 +2746,7 @@
|
|
|
2663
2746
|
"config": {
|
|
2664
2747
|
"$ref": "#/$defs/NumberConfig"
|
|
2665
2748
|
},
|
|
2666
|
-
"
|
|
2749
|
+
"questionType": {
|
|
2667
2750
|
"enum": [
|
|
2668
2751
|
"number",
|
|
2669
2752
|
"amount"
|
|
@@ -2671,7 +2754,7 @@
|
|
|
2671
2754
|
}
|
|
2672
2755
|
},
|
|
2673
2756
|
"required": [
|
|
2674
|
-
"
|
|
2757
|
+
"questionType"
|
|
2675
2758
|
]
|
|
2676
2759
|
},
|
|
2677
2760
|
{
|
|
@@ -2679,12 +2762,12 @@
|
|
|
2679
2762
|
"config": {
|
|
2680
2763
|
"$ref": "#/$defs/MemberConfig"
|
|
2681
2764
|
},
|
|
2682
|
-
"
|
|
2765
|
+
"questionType": {
|
|
2683
2766
|
"const": "member"
|
|
2684
2767
|
}
|
|
2685
2768
|
},
|
|
2686
2769
|
"required": [
|
|
2687
|
-
"
|
|
2770
|
+
"questionType"
|
|
2688
2771
|
]
|
|
2689
2772
|
},
|
|
2690
2773
|
{
|
|
@@ -2692,12 +2775,12 @@
|
|
|
2692
2775
|
"config": {
|
|
2693
2776
|
"$ref": "#/$defs/AddressConfig"
|
|
2694
2777
|
},
|
|
2695
|
-
"
|
|
2778
|
+
"questionType": {
|
|
2696
2779
|
"const": "address"
|
|
2697
2780
|
}
|
|
2698
2781
|
},
|
|
2699
2782
|
"required": [
|
|
2700
|
-
"
|
|
2783
|
+
"questionType"
|
|
2701
2784
|
]
|
|
2702
2785
|
},
|
|
2703
2786
|
{
|
|
@@ -2705,15 +2788,12 @@
|
|
|
2705
2788
|
"config": {
|
|
2706
2789
|
"$ref": "#/$defs/AttachmentConfig"
|
|
2707
2790
|
},
|
|
2708
|
-
"
|
|
2709
|
-
"type": "boolean"
|
|
2710
|
-
},
|
|
2711
|
-
"type": {
|
|
2791
|
+
"questionType": {
|
|
2712
2792
|
"const": "attachment"
|
|
2713
2793
|
}
|
|
2714
2794
|
},
|
|
2715
2795
|
"required": [
|
|
2716
|
-
"
|
|
2796
|
+
"questionType"
|
|
2717
2797
|
]
|
|
2718
2798
|
},
|
|
2719
2799
|
{
|
|
@@ -2721,7 +2801,7 @@
|
|
|
2721
2801
|
"config": {
|
|
2722
2802
|
"$ref": "#/$defs/ChoiceConfig"
|
|
2723
2803
|
},
|
|
2724
|
-
"
|
|
2804
|
+
"questionType": {
|
|
2725
2805
|
"enum": [
|
|
2726
2806
|
"single_choice",
|
|
2727
2807
|
"single_select",
|
|
@@ -2730,7 +2810,7 @@
|
|
|
2730
2810
|
}
|
|
2731
2811
|
},
|
|
2732
2812
|
"required": [
|
|
2733
|
-
"
|
|
2813
|
+
"questionType",
|
|
2734
2814
|
"config"
|
|
2735
2815
|
]
|
|
2736
2816
|
},
|
|
@@ -2739,12 +2819,12 @@
|
|
|
2739
2819
|
"config": {
|
|
2740
2820
|
"$ref": "#/$defs/DepartmentConfig"
|
|
2741
2821
|
},
|
|
2742
|
-
"
|
|
2822
|
+
"questionType": {
|
|
2743
2823
|
"const": "department"
|
|
2744
2824
|
}
|
|
2745
2825
|
},
|
|
2746
2826
|
"required": [
|
|
2747
|
-
"
|
|
2827
|
+
"questionType",
|
|
2748
2828
|
"config"
|
|
2749
2829
|
]
|
|
2750
2830
|
},
|
|
@@ -2753,12 +2833,12 @@
|
|
|
2753
2833
|
"config": {
|
|
2754
2834
|
"$ref": "#/$defs/RelationConfig"
|
|
2755
2835
|
},
|
|
2756
|
-
"
|
|
2836
|
+
"questionType": {
|
|
2757
2837
|
"const": "relation"
|
|
2758
2838
|
}
|
|
2759
2839
|
},
|
|
2760
2840
|
"required": [
|
|
2761
|
-
"
|
|
2841
|
+
"questionType",
|
|
2762
2842
|
"config"
|
|
2763
2843
|
]
|
|
2764
2844
|
},
|
|
@@ -2767,12 +2847,12 @@
|
|
|
2767
2847
|
"config": {
|
|
2768
2848
|
"$ref": "#/$defs/QLinkerConfig"
|
|
2769
2849
|
},
|
|
2770
|
-
"
|
|
2850
|
+
"questionType": {
|
|
2771
2851
|
"const": "q_linker"
|
|
2772
2852
|
}
|
|
2773
2853
|
},
|
|
2774
2854
|
"required": [
|
|
2775
|
-
"
|
|
2855
|
+
"questionType",
|
|
2776
2856
|
"config"
|
|
2777
2857
|
]
|
|
2778
2858
|
},
|
|
@@ -2781,12 +2861,12 @@
|
|
|
2781
2861
|
"config": {
|
|
2782
2862
|
"$ref": "#/$defs/CodeBlockConfig"
|
|
2783
2863
|
},
|
|
2784
|
-
"
|
|
2864
|
+
"questionType": {
|
|
2785
2865
|
"const": "code_block"
|
|
2786
2866
|
}
|
|
2787
2867
|
},
|
|
2788
2868
|
"required": [
|
|
2789
|
-
"
|
|
2869
|
+
"questionType",
|
|
2790
2870
|
"config"
|
|
2791
2871
|
]
|
|
2792
2872
|
},
|
|
@@ -2795,12 +2875,12 @@
|
|
|
2795
2875
|
"config": {
|
|
2796
2876
|
"$ref": "#/$defs/DataRelationConfig"
|
|
2797
2877
|
},
|
|
2798
|
-
"
|
|
2878
|
+
"questionType": {
|
|
2799
2879
|
"const": "data_relation"
|
|
2800
2880
|
}
|
|
2801
2881
|
},
|
|
2802
2882
|
"required": [
|
|
2803
|
-
"
|
|
2883
|
+
"questionType",
|
|
2804
2884
|
"config"
|
|
2805
2885
|
]
|
|
2806
2886
|
},
|
|
@@ -2809,26 +2889,26 @@
|
|
|
2809
2889
|
"config": {
|
|
2810
2890
|
"$ref": "#/$defs/SubtableConfig"
|
|
2811
2891
|
},
|
|
2892
|
+
"questionType": {
|
|
2893
|
+
"const": "subtable"
|
|
2894
|
+
},
|
|
2812
2895
|
"subfields": {
|
|
2813
2896
|
"items": {
|
|
2814
2897
|
"$ref": "#/$defs/SubField"
|
|
2815
2898
|
},
|
|
2816
2899
|
"minItems": 1,
|
|
2817
2900
|
"type": "array"
|
|
2818
|
-
},
|
|
2819
|
-
"type": {
|
|
2820
|
-
"const": "subtable"
|
|
2821
2901
|
}
|
|
2822
2902
|
},
|
|
2823
2903
|
"required": [
|
|
2824
|
-
"
|
|
2904
|
+
"questionType",
|
|
2825
2905
|
"subfields"
|
|
2826
2906
|
]
|
|
2827
2907
|
}
|
|
2828
2908
|
]
|
|
2829
2909
|
}
|
|
2830
2910
|
],
|
|
2831
|
-
"description": "顶层业务字段;
|
|
2911
|
+
"description": "顶层业务字段;questionType 决定 config 或 subfields 的结构。",
|
|
2832
2912
|
"type": "object",
|
|
2833
2913
|
"unevaluatedProperties": false
|
|
2834
2914
|
}
|
|
@@ -2837,24 +2917,6 @@
|
|
|
2837
2917
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2838
2918
|
"oneOf": [
|
|
2839
2919
|
{
|
|
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
2920
|
"required": [
|
|
2859
2921
|
"appKey"
|
|
2860
2922
|
]
|
|
@@ -2868,9 +2930,7 @@
|
|
|
2868
2930
|
"properties": {
|
|
2869
2931
|
"spec": {
|
|
2870
2932
|
"required": [
|
|
2871
|
-
"appName"
|
|
2872
|
-
"icon",
|
|
2873
|
-
"color"
|
|
2933
|
+
"appName"
|
|
2874
2934
|
]
|
|
2875
2935
|
}
|
|
2876
2936
|
},
|
|
@@ -2882,7 +2942,7 @@
|
|
|
2882
2942
|
"properties": {
|
|
2883
2943
|
"apiVersion": {
|
|
2884
2944
|
"const": "builder.qingflow.com/v1alpha1",
|
|
2885
|
-
"description": "AppForm
|
|
2945
|
+
"description": "AppForm 契约版本;当前固定为 v1alpha1。"
|
|
2886
2946
|
},
|
|
2887
2947
|
"appKey": {
|
|
2888
2948
|
"description": "更新已有应用的唯一标识;存在非空值即进入更新模式。",
|