@qingflow-tech/qingflow-cli 1.1.60 → 1.1.61-beta.2
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 +3 -1
- package/skills/qingflow-cli/SKILL.md +120 -8
- package/skills/qingflow-cli/reference/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md +1 -1
- package/skills/qingflow-cli/reference/QINGFLOW_CLI_EXPLORATION_REPORT.md +1 -1
- package/skills/qingflow-cli/reference/builder/20-build-complete-system.md +2 -2
- package/skills/qingflow-cli/reference/builder/30-schema-fields.md +9 -5
- package/skills/qingflow-cli/reference/builder/reference/app-delivery-sop.md +3 -3
- package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md +4 -4
- package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_EXPLORATION_REPORT.md +1 -1
- package/skills/qingflow-cli/reference/data/README.md +20 -0
- package/skills/qingflow-cli/reference/record/QINGFLOW_CLI_RECORD_SPECIALIZED_WORKFLOW.md +7 -1
- package/skills/qingflow-common/SKILL.md +5 -2
- package/src/qingflow_mcp/app_form_compat.py +3 -0
- package/src/qingflow_mcp/app_form_validator.py +69 -17
- package/src/qingflow_mcp/backend_client.py +33 -8
- package/src/qingflow_mcp/builder_facade/app_form.py +497 -100
- package/src/qingflow_mcp/builder_facade/schemas/app_form/manifest.json +1 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/complete.json +64 -30
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/address.json +4 -8
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/amount.json +4 -8
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/attachment.json +6 -10
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/code_block.json +6 -10
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/data_relation.json +11 -18
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/date.json +4 -8
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/datetime.json +4 -8
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/department.json +6 -10
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/email.json +4 -8
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/link.json +4 -8
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/long_text.json +4 -8
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/member.json +6 -10
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/multi_select.json +4 -8
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/number.json +4 -8
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/phone.json +4 -8
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/q_linker.json +6 -10
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/relation.json +46 -15
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/rich_text.json +146 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_choice.json +4 -8
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_select.json +4 -8
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/subtable.json +61 -27
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/text.json +4 -8
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/formula.json +43 -0
- package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/summary.json +7 -12
- package/src/qingflow_mcp/builder_facade/service.py +39 -1
- package/src/qingflow_mcp/cli/commands/data.py +13 -3
- package/src/qingflow_mcp/cli/formatters.py +7 -0
- package/src/qingflow_mcp/cli/main.py +34 -1
- package/src/qingflow_mcp/cloud_context.py +16 -1
- package/src/qingflow_mcp/public_surface.py +67 -8
- package/src/qingflow_mcp/response_trim.py +2 -1
- package/src/qingflow_mcp/server.py +13 -7
- package/src/qingflow_mcp/server_app_builder.py +9 -5
- package/src/qingflow_mcp/server_app_user.py +10 -6
- package/src/qingflow_mcp/server_cloud.py +43 -7
- package/src/qingflow_mcp/tool_catalog.py +387 -0
- package/src/qingflow_mcp/tool_catalog_i18n.py +185 -0
- package/src/qingflow_mcp/tool_policy.py +197 -0
- package/src/qingflow_mcp/tools/data_files.py +174 -0
- package/src/qingflow_mcp/tools/data_tools.py +42 -13
- package/src/qingflow_mcp/tools/record_tools.py +14 -72
- package/src/qingflow_mcp/tools/storage_download.py +89 -0
|
@@ -150,7 +150,7 @@
|
|
|
150
150
|
"description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
|
|
151
151
|
},
|
|
152
152
|
"name": {
|
|
153
|
-
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId
|
|
153
|
+
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
|
|
154
154
|
"minLength": 1,
|
|
155
155
|
"type": "string"
|
|
156
156
|
},
|
|
@@ -171,13 +171,9 @@
|
|
|
171
171
|
"type": "string"
|
|
172
172
|
},
|
|
173
173
|
"width": {
|
|
174
|
-
"description": "
|
|
175
|
-
"
|
|
176
|
-
|
|
177
|
-
50,
|
|
178
|
-
75,
|
|
179
|
-
100
|
|
180
|
-
],
|
|
174
|
+
"description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
|
|
175
|
+
"maximum": 100,
|
|
176
|
+
"minimum": 1,
|
|
181
177
|
"type": "integer"
|
|
182
178
|
}
|
|
183
179
|
},
|
|
@@ -197,10 +193,10 @@
|
|
|
197
193
|
]
|
|
198
194
|
}
|
|
199
195
|
],
|
|
200
|
-
"description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name
|
|
196
|
+
"description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name,两者同时提供时必须指向同一字段。后端允许同父级同名字段,queId 是稳定身份;name 仅在唯一时可解析,命中多个同名时报 AMBIGUOUS_FIELD_SELECTOR,此时必须改用 queId。",
|
|
201
197
|
"properties": {
|
|
202
198
|
"name": {
|
|
203
|
-
"description": "
|
|
199
|
+
"description": "字段名称;仅在当前作用域内唯一时可用于解析,同名命中多个字段时报 AMBIGUOUS_FIELD_SELECTOR,应改用 queId。",
|
|
204
200
|
"minLength": 1,
|
|
205
201
|
"type": "string"
|
|
206
202
|
},
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
"description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
|
|
147
147
|
},
|
|
148
148
|
"name": {
|
|
149
|
-
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId
|
|
149
|
+
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
|
|
150
150
|
"minLength": 1,
|
|
151
151
|
"type": "string"
|
|
152
152
|
},
|
|
@@ -167,13 +167,9 @@
|
|
|
167
167
|
"type": "string"
|
|
168
168
|
},
|
|
169
169
|
"width": {
|
|
170
|
-
"description": "
|
|
171
|
-
"
|
|
172
|
-
|
|
173
|
-
50,
|
|
174
|
-
75,
|
|
175
|
-
100
|
|
176
|
-
],
|
|
170
|
+
"description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
|
|
171
|
+
"maximum": 100,
|
|
172
|
+
"minimum": 1,
|
|
177
173
|
"type": "integer"
|
|
178
174
|
}
|
|
179
175
|
},
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
|
|
79
79
|
},
|
|
80
80
|
"name": {
|
|
81
|
-
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId
|
|
81
|
+
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
|
|
82
82
|
"minLength": 1,
|
|
83
83
|
"type": "string"
|
|
84
84
|
},
|
|
@@ -99,13 +99,9 @@
|
|
|
99
99
|
"type": "string"
|
|
100
100
|
},
|
|
101
101
|
"width": {
|
|
102
|
-
"description": "
|
|
103
|
-
"
|
|
104
|
-
|
|
105
|
-
50,
|
|
106
|
-
75,
|
|
107
|
-
100
|
|
108
|
-
],
|
|
102
|
+
"description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
|
|
103
|
+
"maximum": 100,
|
|
104
|
+
"minimum": 1,
|
|
109
105
|
"type": "integer"
|
|
110
106
|
}
|
|
111
107
|
},
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
|
|
79
79
|
},
|
|
80
80
|
"name": {
|
|
81
|
-
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId
|
|
81
|
+
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
|
|
82
82
|
"minLength": 1,
|
|
83
83
|
"type": "string"
|
|
84
84
|
},
|
|
@@ -99,13 +99,9 @@
|
|
|
99
99
|
"type": "string"
|
|
100
100
|
},
|
|
101
101
|
"width": {
|
|
102
|
-
"description": "
|
|
103
|
-
"
|
|
104
|
-
|
|
105
|
-
50,
|
|
106
|
-
75,
|
|
107
|
-
100
|
|
108
|
-
],
|
|
102
|
+
"description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
|
|
103
|
+
"maximum": 100,
|
|
104
|
+
"minimum": 1,
|
|
109
105
|
"type": "integer"
|
|
110
106
|
}
|
|
111
107
|
},
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
|
|
79
79
|
},
|
|
80
80
|
"name": {
|
|
81
|
-
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId
|
|
81
|
+
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
|
|
82
82
|
"minLength": 1,
|
|
83
83
|
"type": "string"
|
|
84
84
|
},
|
|
@@ -99,13 +99,9 @@
|
|
|
99
99
|
"type": "string"
|
|
100
100
|
},
|
|
101
101
|
"width": {
|
|
102
|
-
"description": "
|
|
103
|
-
"
|
|
104
|
-
|
|
105
|
-
50,
|
|
106
|
-
75,
|
|
107
|
-
100
|
|
108
|
-
],
|
|
102
|
+
"description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
|
|
103
|
+
"maximum": 100,
|
|
104
|
+
"minimum": 1,
|
|
109
105
|
"type": "integer"
|
|
110
106
|
}
|
|
111
107
|
},
|
|
@@ -125,10 +121,10 @@
|
|
|
125
121
|
]
|
|
126
122
|
}
|
|
127
123
|
],
|
|
128
|
-
"description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name
|
|
124
|
+
"description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name,两者同时提供时必须指向同一字段。后端允许同父级同名字段,queId 是稳定身份;name 仅在唯一时可解析,命中多个同名时报 AMBIGUOUS_FIELD_SELECTOR,此时必须改用 queId。",
|
|
129
125
|
"properties": {
|
|
130
126
|
"name": {
|
|
131
|
-
"description": "
|
|
127
|
+
"description": "字段名称;仅在当前作用域内唯一时可用于解析,同名命中多个字段时报 AMBIGUOUS_FIELD_SELECTOR,应改用 queId。",
|
|
132
128
|
"minLength": 1,
|
|
133
129
|
"type": "string"
|
|
134
130
|
},
|
|
@@ -258,7 +258,7 @@
|
|
|
258
258
|
"description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
|
|
259
259
|
},
|
|
260
260
|
"name": {
|
|
261
|
-
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId
|
|
261
|
+
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
|
|
262
262
|
"minLength": 1,
|
|
263
263
|
"type": "string"
|
|
264
264
|
},
|
|
@@ -279,13 +279,9 @@
|
|
|
279
279
|
"type": "string"
|
|
280
280
|
},
|
|
281
281
|
"width": {
|
|
282
|
-
"description": "
|
|
283
|
-
"
|
|
284
|
-
|
|
285
|
-
50,
|
|
286
|
-
75,
|
|
287
|
-
100
|
|
288
|
-
],
|
|
282
|
+
"description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
|
|
283
|
+
"maximum": 100,
|
|
284
|
+
"minimum": 1,
|
|
289
285
|
"type": "integer"
|
|
290
286
|
}
|
|
291
287
|
},
|
|
@@ -305,10 +301,10 @@
|
|
|
305
301
|
]
|
|
306
302
|
}
|
|
307
303
|
],
|
|
308
|
-
"description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name
|
|
304
|
+
"description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name,两者同时提供时必须指向同一字段。后端允许同父级同名字段,queId 是稳定身份;name 仅在唯一时可解析,命中多个同名时报 AMBIGUOUS_FIELD_SELECTOR,此时必须改用 queId。",
|
|
309
305
|
"properties": {
|
|
310
306
|
"name": {
|
|
311
|
-
"description": "
|
|
307
|
+
"description": "字段名称;仅在当前作用域内唯一时可用于解析,同名命中多个字段时报 AMBIGUOUS_FIELD_SELECTOR,应改用 queId。",
|
|
312
308
|
"minLength": 1,
|
|
313
309
|
"type": "string"
|
|
314
310
|
},
|
|
@@ -351,7 +347,7 @@
|
|
|
351
347
|
},
|
|
352
348
|
"RelationConfig": {
|
|
353
349
|
"additionalProperties": false,
|
|
354
|
-
"description": "
|
|
350
|
+
"description": "引用字段配置;引用其他应用中的数据。展示字段与权限以 displayFields 为准(后端 referQuestions 全量有序回写,queAuth 1=可编辑/2=隐藏/3=仅可见);displayField/visibleFields 为已废弃旧形态,apply 兼容接收一个版本窗口(displayField 同时视为双向绑定目标)。",
|
|
355
351
|
"properties": {
|
|
356
352
|
"beingDefaultFormulaAutoFillEnabled": {
|
|
357
353
|
"description": "是否启用引用字段的默认值公式自动填充。",
|
|
@@ -389,7 +385,32 @@
|
|
|
389
385
|
},
|
|
390
386
|
"displayField": {
|
|
391
387
|
"$ref": "#/$defs/FieldSelector",
|
|
392
|
-
"description": "
|
|
388
|
+
"description": "已废弃:主展示字段;apply 兼容翻译为 twoWayBoundField + displayFields 首项,后续版本移除。"
|
|
389
|
+
},
|
|
390
|
+
"displayFields": {
|
|
391
|
+
"description": "有序展示字段全量列表(含隐藏字段),按 ordinal 保序回写为后端 referQuestions。可为空列表:空 = 双向绑定未配展示字段的合法存量形态(后端写链路对空 referQuestions 跳过插入、读面容忍空),round-trip 空↔空稳定;与已废弃 displayField/visibleFields 不可混用,条目 queId 不可重复。",
|
|
392
|
+
"items": {
|
|
393
|
+
"additionalProperties": false,
|
|
394
|
+
"properties": {
|
|
395
|
+
"auth": {
|
|
396
|
+
"default": "visible",
|
|
397
|
+
"description": "展示字段权限;editable=可编辑(1), hidden=隐藏(2), visible=仅可见(3);缺失按 visible。",
|
|
398
|
+
"enum": [
|
|
399
|
+
"editable",
|
|
400
|
+
"hidden",
|
|
401
|
+
"visible"
|
|
402
|
+
]
|
|
403
|
+
},
|
|
404
|
+
"field": {
|
|
405
|
+
"$ref": "#/$defs/FieldSelector"
|
|
406
|
+
}
|
|
407
|
+
},
|
|
408
|
+
"required": [
|
|
409
|
+
"field"
|
|
410
|
+
],
|
|
411
|
+
"type": "object"
|
|
412
|
+
},
|
|
413
|
+
"type": "array"
|
|
393
414
|
},
|
|
394
415
|
"relationMode": {
|
|
395
416
|
"default": "single",
|
|
@@ -404,8 +425,19 @@
|
|
|
404
425
|
"minLength": 1,
|
|
405
426
|
"type": "string"
|
|
406
427
|
},
|
|
428
|
+
"twoWayBoundField": {
|
|
429
|
+
"description": "双向引用绑定的目标字段(后端 referQueId);null/省略 = 单向引用。get 读面在 referQueId 非空时必产出。",
|
|
430
|
+
"oneOf": [
|
|
431
|
+
{
|
|
432
|
+
"type": "null"
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"$ref": "#/$defs/FieldSelector"
|
|
436
|
+
}
|
|
437
|
+
]
|
|
438
|
+
},
|
|
407
439
|
"visibleFields": {
|
|
408
|
-
"description": "
|
|
440
|
+
"description": "已废弃:额外展示字段;apply 兼容翻译为 displayFields 后续项,后续版本移除。",
|
|
409
441
|
"items": {
|
|
410
442
|
"$ref": "#/$defs/FieldSelector"
|
|
411
443
|
},
|
|
@@ -414,8 +446,7 @@
|
|
|
414
446
|
}
|
|
415
447
|
},
|
|
416
448
|
"required": [
|
|
417
|
-
"targetAppKey"
|
|
418
|
-
"displayField"
|
|
449
|
+
"targetAppKey"
|
|
419
450
|
],
|
|
420
451
|
"type": "object"
|
|
421
452
|
},
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$defs": {
|
|
3
|
+
"EmptyConfig": {
|
|
4
|
+
"additionalProperties": false,
|
|
5
|
+
"description": "该字段类型没有特殊配置。",
|
|
6
|
+
"type": "object"
|
|
7
|
+
},
|
|
8
|
+
"FieldCommon": {
|
|
9
|
+
"allOf": [
|
|
10
|
+
{
|
|
11
|
+
"if": {
|
|
12
|
+
"properties": {
|
|
13
|
+
"defaultType": {
|
|
14
|
+
"const": 2
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"required": [
|
|
18
|
+
"defaultType"
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
"then": {
|
|
22
|
+
"properties": {
|
|
23
|
+
"defaultValue": {
|
|
24
|
+
"type": "null"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"if": {
|
|
31
|
+
"properties": {
|
|
32
|
+
"defaultType": {
|
|
33
|
+
"const": 3
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"required": [
|
|
37
|
+
"defaultType"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
"then": {
|
|
41
|
+
"properties": {
|
|
42
|
+
"defaultValue": {
|
|
43
|
+
"minLength": 1,
|
|
44
|
+
"type": [
|
|
45
|
+
"string",
|
|
46
|
+
"null"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"anyOf": [
|
|
54
|
+
{
|
|
55
|
+
"required": [
|
|
56
|
+
"queId"
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"required": [
|
|
61
|
+
"name"
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"description": "顶层业务字段的公共属性;字段类型由 TopField 的判别分支定义。",
|
|
66
|
+
"properties": {
|
|
67
|
+
"beingRequired": {
|
|
68
|
+
"description": "该字段是否必填;缺失时保留已有字段当前值。",
|
|
69
|
+
"type": "boolean"
|
|
70
|
+
},
|
|
71
|
+
"defaultType": {
|
|
72
|
+
"default": 1,
|
|
73
|
+
"description": "默认值类型,与 defaultValue 联动;1 表示静态值,2 表示关联/绑定值且 defaultValue 只能省略或为 null,3 表示公式值且提供 defaultValue 时必须为非空公式文本。省略 defaultType 但提供 defaultValue 时按 1 处理。",
|
|
74
|
+
"enum": [
|
|
75
|
+
1,
|
|
76
|
+
2,
|
|
77
|
+
3
|
|
78
|
+
],
|
|
79
|
+
"type": "integer"
|
|
80
|
+
},
|
|
81
|
+
"defaultValue": {
|
|
82
|
+
"$ref": "#/$defs/ScalarDefaultValue",
|
|
83
|
+
"description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
|
|
84
|
+
},
|
|
85
|
+
"name": {
|
|
86
|
+
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
|
|
87
|
+
"minLength": 1,
|
|
88
|
+
"type": "string"
|
|
89
|
+
},
|
|
90
|
+
"queId": {
|
|
91
|
+
"description": "已有字段的后端 ID;更新时用于精确定位并复用,新增字段通常省略。",
|
|
92
|
+
"minimum": 1,
|
|
93
|
+
"type": "integer"
|
|
94
|
+
},
|
|
95
|
+
"questionDescription": {
|
|
96
|
+
"description": "字段说明;null 或空字符串表示清空。",
|
|
97
|
+
"type": [
|
|
98
|
+
"string",
|
|
99
|
+
"null"
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
"questionType": {
|
|
103
|
+
"description": "字段类型;具体可用值由当前字段详情 Schema 的判别分支约束。",
|
|
104
|
+
"type": "string"
|
|
105
|
+
},
|
|
106
|
+
"width": {
|
|
107
|
+
"description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
|
|
108
|
+
"maximum": 100,
|
|
109
|
+
"minimum": 1,
|
|
110
|
+
"type": "integer"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"type": "object"
|
|
114
|
+
},
|
|
115
|
+
"ScalarDefaultValue": {
|
|
116
|
+
"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。",
|
|
117
|
+
"type": [
|
|
118
|
+
"null",
|
|
119
|
+
"string"
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"$id": "https://builder.qingflow.com/schemas/app-form-apply/v1alpha1/fields/rich_text.json",
|
|
124
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
125
|
+
"allOf": [
|
|
126
|
+
{
|
|
127
|
+
"$ref": "#/$defs/FieldCommon"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"properties": {
|
|
131
|
+
"config": {
|
|
132
|
+
"$ref": "#/$defs/EmptyConfig"
|
|
133
|
+
},
|
|
134
|
+
"questionType": {
|
|
135
|
+
"const": "rich_text"
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"required": [
|
|
139
|
+
"questionType"
|
|
140
|
+
]
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
"title": "Qingflow AppForm v1alpha1 rich_text field",
|
|
144
|
+
"type": "object",
|
|
145
|
+
"unevaluatedProperties": false
|
|
146
|
+
}
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
"description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
|
|
147
147
|
},
|
|
148
148
|
"name": {
|
|
149
|
-
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId
|
|
149
|
+
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
|
|
150
150
|
"minLength": 1,
|
|
151
151
|
"type": "string"
|
|
152
152
|
},
|
|
@@ -167,13 +167,9 @@
|
|
|
167
167
|
"type": "string"
|
|
168
168
|
},
|
|
169
169
|
"width": {
|
|
170
|
-
"description": "
|
|
171
|
-
"
|
|
172
|
-
|
|
173
|
-
50,
|
|
174
|
-
75,
|
|
175
|
-
100
|
|
176
|
-
],
|
|
170
|
+
"description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
|
|
171
|
+
"maximum": 100,
|
|
172
|
+
"minimum": 1,
|
|
177
173
|
"type": "integer"
|
|
178
174
|
}
|
|
179
175
|
},
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
"description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
|
|
147
147
|
},
|
|
148
148
|
"name": {
|
|
149
|
-
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId
|
|
149
|
+
"description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
|
|
150
150
|
"minLength": 1,
|
|
151
151
|
"type": "string"
|
|
152
152
|
},
|
|
@@ -167,13 +167,9 @@
|
|
|
167
167
|
"type": "string"
|
|
168
168
|
},
|
|
169
169
|
"width": {
|
|
170
|
-
"description": "
|
|
171
|
-
"
|
|
172
|
-
|
|
173
|
-
50,
|
|
174
|
-
75,
|
|
175
|
-
100
|
|
176
|
-
],
|
|
170
|
+
"description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
|
|
171
|
+
"maximum": 100,
|
|
172
|
+
"minimum": 1,
|
|
177
173
|
"type": "integer"
|
|
178
174
|
}
|
|
179
175
|
},
|