@qingflow-tech/qingflow-cli 1.1.61-beta.5 → 1.1.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +3 -3
  2. package/package.json +1 -1
  3. package/pyproject.toml +1 -2
  4. package/skills/qingflow-cli/SKILL.md +2 -104
  5. package/skills/qingflow-cli/reference/builder/20-build-complete-system.md +2 -2
  6. package/skills/qingflow-cli/reference/builder/30-schema-fields.md +5 -22
  7. package/skills/qingflow-cli/reference/builder/70-portal.md +16 -37
  8. package/skills/qingflow-cli/reference/builder/reference/app-delivery-sop.md +3 -3
  9. package/skills/qingflow-cli/reference/examples/portal/portal_sections_all_types.example.json +7 -6
  10. package/src/qingflow_mcp/app_form_compat.py +0 -3
  11. package/src/qingflow_mcp/app_form_validator.py +20 -89
  12. package/src/qingflow_mcp/builder_facade/app_form.py +112 -629
  13. package/src/qingflow_mcp/builder_facade/models.py +13 -164
  14. package/src/qingflow_mcp/builder_facade/schemas/app_form/manifest.json +1 -15
  15. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/complete.json +38 -112
  16. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/address.json +8 -31
  17. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/amount.json +10 -6
  18. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/attachment.json +10 -33
  19. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/code_block.json +10 -6
  20. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/data_relation.json +18 -11
  21. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/date.json +8 -4
  22. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/datetime.json +8 -4
  23. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/department.json +10 -6
  24. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/email.json +8 -4
  25. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/link.json +8 -4
  26. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/long_text.json +8 -4
  27. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/member.json +10 -6
  28. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/multi_select.json +8 -4
  29. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/number.json +10 -6
  30. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/phone.json +8 -4
  31. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/q_linker.json +12 -8
  32. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/relation.json +15 -73
  33. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_choice.json +8 -4
  34. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/single_select.json +8 -4
  35. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/subtable.json +29 -90
  36. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/text.json +8 -4
  37. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/formula.json +0 -43
  38. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/summary.json +19 -27
  39. package/src/qingflow_mcp/builder_facade/service.py +72 -1143
  40. package/src/qingflow_mcp/cli/commands/builder.py +5 -114
  41. package/src/qingflow_mcp/cli/main.py +1 -34
  42. package/src/qingflow_mcp/cloud_context.py +1 -16
  43. package/src/qingflow_mcp/public_surface.py +8 -69
  44. package/src/qingflow_mcp/response_trim.py +1 -2
  45. package/src/qingflow_mcp/server.py +6 -12
  46. package/src/qingflow_mcp/server_app_builder.py +6 -41
  47. package/src/qingflow_mcp/server_app_user.py +5 -9
  48. package/src/qingflow_mcp/server_cloud.py +7 -43
  49. package/src/qingflow_mcp/solution/compiler/icon_utils.py +0 -73
  50. package/src/qingflow_mcp/solution/executor.py +2 -5
  51. package/src/qingflow_mcp/tools/ai_builder_tools.py +12 -110
  52. package/src/qingflow_mcp/tools/portal_tools.py +54 -4
  53. package/src/qingflow_mcp/tools/solution_tools.py +0 -2
  54. package/skills/qingflow-cli/reference/examples/portal/portal_apply_v1alpha1.example.json +0 -100
  55. package/src/qingflow_mcp/builder_facade/portals_schema.py +0 -397
  56. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_content_classification.json +0 -146
  57. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_content_extraction.json +0 -146
  58. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_content_generation.json +0 -146
  59. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_document_parsing.json +0 -146
  60. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_image_generation.json +0 -146
  61. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_image_recognition.json +0 -146
  62. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_machine_translation.json +0 -146
  63. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ai_text_summary.json +0 -146
  64. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/date_duration.json +0 -146
  65. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/embed_field.json +0 -146
  66. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/image_select.json +0 -146
  67. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/location.json +0 -146
  68. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/ocr.json +0 -146
  69. package/src/qingflow_mcp/builder_facade/schemas/app_form/v1alpha1/fields/rich_text.json +0 -146
  70. package/src/qingflow_mcp/builder_facade/schemas/portals/manifest.json +0 -59
  71. package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/complete.json +0 -1397
  72. package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/carousel.json +0 -193
  73. package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/chart.json +0 -643
  74. package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/favourite.json +0 -203
  75. package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/filter.json +0 -268
  76. package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/grid.json +0 -265
  77. package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/link.json +0 -131
  78. package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/task.json +0 -199
  79. package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/text.json +0 -123
  80. package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/components/view.json +0 -196
  81. package/src/qingflow_mcp/builder_facade/schemas/portals/v1alpha1/summary.json +0 -800
  82. package/src/qingflow_mcp/tool_catalog.py +0 -387
  83. package/src/qingflow_mcp/tool_catalog_i18n.py +0 -185
  84. package/src/qingflow_mcp/tool_policy.py +0 -197
  85. package/src/qingflow_mcp/tools/portal_writer.py +0 -59
@@ -118,12 +118,6 @@
118
118
  "null"
119
119
  ]
120
120
  },
121
- "auditValueDescription": {
122
- "type": [
123
- "string",
124
- "null"
125
- ]
126
- },
127
121
  "beingCanDecrypted": {
128
122
  "type": [
129
123
  "boolean",
@@ -154,12 +148,6 @@
154
148
  "null"
155
149
  ]
156
150
  },
157
- "dataId": {
158
- "type": [
159
- "integer",
160
- "null"
161
- ]
162
- },
163
151
  "dateType": {
164
152
  "type": [
165
153
  "integer",
@@ -178,15 +166,6 @@
178
166
  "null"
179
167
  ]
180
168
  },
181
- "previousTableRowOrdinalList": {
182
- "items": {
183
- "type": "integer"
184
- },
185
- "type": [
186
- "array",
187
- "null"
188
- ]
189
- },
190
169
  "queId": {
191
170
  "type": [
192
171
  "integer",
@@ -205,12 +184,6 @@
205
184
  "null"
206
185
  ]
207
186
  },
208
- "questionOrdinal": {
209
- "type": [
210
- "integer",
211
- "null"
212
- ]
213
- },
214
187
  "referValues": {
215
188
  "items": {
216
189
  "$ref": "#/$defs/ReferenceDefaultValue"
@@ -328,7 +301,7 @@
328
301
  "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
329
302
  },
330
303
  "name": {
331
- "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
304
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
332
305
  "minLength": 1,
333
306
  "type": "string"
334
307
  },
@@ -349,9 +322,13 @@
349
322
  "type": "string"
350
323
  },
351
324
  "width": {
352
- "description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
353
- "maximum": 100,
354
- "minimum": 1,
325
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
326
+ "enum": [
327
+ 25,
328
+ 50,
329
+ 75,
330
+ 100
331
+ ],
355
332
  "type": "integer"
356
333
  }
357
334
  },
@@ -78,7 +78,7 @@
78
78
  "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
79
79
  },
80
80
  "name": {
81
- "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
81
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
82
82
  "minLength": 1,
83
83
  "type": "string"
84
84
  },
@@ -99,9 +99,13 @@
99
99
  "type": "string"
100
100
  },
101
101
  "width": {
102
- "description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
103
- "maximum": 100,
104
- "minimum": 1,
102
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
103
+ "enum": [
104
+ 25,
105
+ 50,
106
+ 75,
107
+ 100
108
+ ],
105
109
  "type": "integer"
106
110
  }
107
111
  },
@@ -173,8 +177,8 @@
173
177
  ]
174
178
  },
175
179
  "numberFormat": {
176
- "description": "数字展示格式 ID(1 默认/2 千分位/3 百分比;0 为历史存量值——后端写链无值域校验,原样落库回读)。",
177
- "minimum": 0,
180
+ "description": "数字展示格式 ID。",
181
+ "minimum": 1,
178
182
  "type": [
179
183
  "integer",
180
184
  "null"
@@ -94,7 +94,7 @@
94
94
  ]
95
95
  },
96
96
  "fileSize": {
97
- "minimum": 0,
97
+ "minimum": 1,
98
98
  "type": [
99
99
  "integer",
100
100
  "null"
@@ -114,7 +114,7 @@
114
114
  ]
115
115
  },
116
116
  "maxFileLimit": {
117
- "minimum": 0,
117
+ "minimum": 1,
118
118
  "type": [
119
119
  "integer",
120
120
  "null"
@@ -151,12 +151,6 @@
151
151
  "null"
152
152
  ]
153
153
  },
154
- "auditValueDescription": {
155
- "type": [
156
- "string",
157
- "null"
158
- ]
159
- },
160
154
  "beingCanDecrypted": {
161
155
  "type": [
162
156
  "boolean",
@@ -187,12 +181,6 @@
187
181
  "null"
188
182
  ]
189
183
  },
190
- "dataId": {
191
- "type": [
192
- "integer",
193
- "null"
194
- ]
195
- },
196
184
  "dateType": {
197
185
  "type": [
198
186
  "integer",
@@ -211,15 +199,6 @@
211
199
  "null"
212
200
  ]
213
201
  },
214
- "previousTableRowOrdinalList": {
215
- "items": {
216
- "type": "integer"
217
- },
218
- "type": [
219
- "array",
220
- "null"
221
- ]
222
- },
223
202
  "queId": {
224
203
  "type": [
225
204
  "integer",
@@ -238,12 +217,6 @@
238
217
  "null"
239
218
  ]
240
219
  },
241
- "questionOrdinal": {
242
- "type": [
243
- "integer",
244
- "null"
245
- ]
246
- },
247
220
  "referValues": {
248
221
  "items": {
249
222
  "$ref": "#/$defs/ReferenceDefaultValue"
@@ -361,7 +334,7 @@
361
334
  "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
362
335
  },
363
336
  "name": {
364
- "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
337
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
365
338
  "minLength": 1,
366
339
  "type": "string"
367
340
  },
@@ -382,9 +355,13 @@
382
355
  "type": "string"
383
356
  },
384
357
  "width": {
385
- "description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
386
- "maximum": 100,
387
- "minimum": 1,
358
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
359
+ "enum": [
360
+ 25,
361
+ 50,
362
+ 75,
363
+ 100
364
+ ],
388
365
  "type": "integer"
389
366
  }
390
367
  },
@@ -221,7 +221,7 @@
221
221
  "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
222
222
  },
223
223
  "name": {
224
- "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
224
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
225
225
  "minLength": 1,
226
226
  "type": "string"
227
227
  },
@@ -242,9 +242,13 @@
242
242
  "type": "string"
243
243
  },
244
244
  "width": {
245
- "description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
246
- "maximum": 100,
247
- "minimum": 1,
245
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
246
+ "enum": [
247
+ 25,
248
+ 50,
249
+ 75,
250
+ 100
251
+ ],
248
252
  "type": "integer"
249
253
  }
250
254
  },
@@ -264,10 +268,10 @@
264
268
  ]
265
269
  }
266
270
  ],
267
- "description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name,两者同时提供时必须指向同一字段。后端允许同父级同名字段,queId 是稳定身份;name 仅在唯一时可解析,命中多个同名时报 AMBIGUOUS_FIELD_SELECTOR,此时必须改用 queId。",
271
+ "description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name,两者同时提供时必须指向同一字段。",
268
272
  "properties": {
269
273
  "name": {
270
- "description": "字段名称;仅在当前作用域内唯一时可用于解析,同名命中多个字段时报 AMBIGUOUS_FIELD_SELECTOR,应改用 queId。",
274
+ "description": "字段名称;仅在当前作用域内唯一时可用于解析。",
271
275
  "minLength": 1,
272
276
  "type": "string"
273
277
  },
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "DataRelationCondition": {
21
21
  "additionalProperties": false,
22
- "description": "一条数据关联过滤条件;sourceField 必须属于数据来源,operator 必须适用于该字段类型。固定值请使用 literal operand,不要直接声明后端 matchRules。sourceField 省略为存量读回形态(历史脏公式的源字段缺失,如 #queId_0$,写回时以 queId=0 透传),新建条件应提供 sourceField。",
22
+ "description": "一条数据关联过滤条件;sourceField 必须属于数据来源,operator 必须适用于该字段类型。固定值请使用 literal operand,不要直接声明后端 matchRules。",
23
23
  "properties": {
24
24
  "operand": {
25
25
  "$ref": "#/$defs/DataRelationOperand",
@@ -55,10 +55,11 @@
55
55
  },
56
56
  "sourceField": {
57
57
  "$ref": "#/$defs/FieldSelector",
58
- "description": "被过滤的数据源字段;存量读回形态可能缺失(后端反解析出的条件源字段 queId=0 且无名称)。"
58
+ "description": "被过滤的数据源字段。"
59
59
  }
60
60
  },
61
61
  "required": [
62
+ "sourceField",
62
63
  "operator",
63
64
  "operand"
64
65
  ],
@@ -66,7 +67,7 @@
66
67
  },
67
68
  "DataRelationConfig": {
68
69
  "additionalProperties": false,
69
- "description": "数据关联字段配置;从应用、Q-Linker 或代码块输出中读取数据。source 省略表示该字段当前无关联来源配置(存量表单读回形态:后端 GET 对 displayed 目标缺失的 relation 行不回传,FormSvcImpl#getQuestionRelationsBeans continue 分支;新建数据关联字段应提供 source)。",
70
+ "description": "数据关联字段配置;从应用、Q-Linker 或代码块输出中读取数据。",
70
71
  "properties": {
71
72
  "aggregation": {
72
73
  "description": "可选聚合方式;null 表示不聚合。",
@@ -101,10 +102,12 @@
101
102
  },
102
103
  "source": {
103
104
  "$ref": "#/$defs/DataRelationSource",
104
- "description": "数据来源;按 kind 选择一种来源结构。存量读回形态可能无 source(后端读面不回传关联配置),此时写回不重建该字段的关联。"
105
+ "description": "数据来源;按 kind 选择一种来源结构。"
105
106
  }
106
107
  },
107
- "required": [],
108
+ "required": [
109
+ "source"
110
+ ],
108
111
  "type": "object"
109
112
  },
110
113
  "DataRelationCustomButton": {
@@ -480,7 +483,7 @@
480
483
  "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
481
484
  },
482
485
  "name": {
483
- "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
486
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
484
487
  "minLength": 1,
485
488
  "type": "string"
486
489
  },
@@ -501,9 +504,13 @@
501
504
  "type": "string"
502
505
  },
503
506
  "width": {
504
- "description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
505
- "maximum": 100,
506
- "minimum": 1,
507
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
508
+ "enum": [
509
+ 25,
510
+ 50,
511
+ 75,
512
+ 100
513
+ ],
507
514
  "type": "integer"
508
515
  }
509
516
  },
@@ -523,10 +530,10 @@
523
530
  ]
524
531
  }
525
532
  ],
526
- "description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name,两者同时提供时必须指向同一字段。后端允许同父级同名字段,queId 是稳定身份;name 仅在唯一时可解析,命中多个同名时报 AMBIGUOUS_FIELD_SELECTOR,此时必须改用 queId。",
533
+ "description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name,两者同时提供时必须指向同一字段。",
527
534
  "properties": {
528
535
  "name": {
529
- "description": "字段名称;仅在当前作用域内唯一时可用于解析,同名命中多个字段时报 AMBIGUOUS_FIELD_SELECTOR,应改用 queId。",
536
+ "description": "字段名称;仅在当前作用域内唯一时可用于解析。",
530
537
  "minLength": 1,
531
538
  "type": "string"
532
539
  },
@@ -83,7 +83,7 @@
83
83
  "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
84
84
  },
85
85
  "name": {
86
- "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
86
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
87
87
  "minLength": 1,
88
88
  "type": "string"
89
89
  },
@@ -104,9 +104,13 @@
104
104
  "type": "string"
105
105
  },
106
106
  "width": {
107
- "description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
108
- "maximum": 100,
109
- "minimum": 1,
107
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
108
+ "enum": [
109
+ 25,
110
+ 50,
111
+ 75,
112
+ 100
113
+ ],
110
114
  "type": "integer"
111
115
  }
112
116
  },
@@ -83,7 +83,7 @@
83
83
  "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
84
84
  },
85
85
  "name": {
86
- "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
86
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
87
87
  "minLength": 1,
88
88
  "type": "string"
89
89
  },
@@ -104,9 +104,13 @@
104
104
  "type": "string"
105
105
  },
106
106
  "width": {
107
- "description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
108
- "maximum": 100,
109
- "minimum": 1,
107
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
108
+ "enum": [
109
+ 25,
110
+ 50,
111
+ 75,
112
+ 100
113
+ ],
110
114
  "type": "integer"
111
115
  }
112
116
  },
@@ -201,7 +201,7 @@
201
201
  "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
202
202
  },
203
203
  "name": {
204
- "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
204
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
205
205
  "minLength": 1,
206
206
  "type": "string"
207
207
  },
@@ -222,9 +222,13 @@
222
222
  "type": "string"
223
223
  },
224
224
  "width": {
225
- "description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
226
- "maximum": 100,
227
- "minimum": 1,
225
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
226
+ "enum": [
227
+ 25,
228
+ 50,
229
+ 75,
230
+ 100
231
+ ],
228
232
  "type": "integer"
229
233
  }
230
234
  },
@@ -244,10 +248,10 @@
244
248
  ]
245
249
  }
246
250
  ],
247
- "description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name,两者同时提供时必须指向同一字段。后端允许同父级同名字段,queId 是稳定身份;name 仅在唯一时可解析,命中多个同名时报 AMBIGUOUS_FIELD_SELECTOR,此时必须改用 queId。",
251
+ "description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name,两者同时提供时必须指向同一字段。",
248
252
  "properties": {
249
253
  "name": {
250
- "description": "字段名称;仅在当前作用域内唯一时可用于解析,同名命中多个字段时报 AMBIGUOUS_FIELD_SELECTOR,应改用 queId。",
254
+ "description": "字段名称;仅在当前作用域内唯一时可用于解析。",
251
255
  "minLength": 1,
252
256
  "type": "string"
253
257
  },
@@ -78,7 +78,7 @@
78
78
  "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
79
79
  },
80
80
  "name": {
81
- "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
81
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
82
82
  "minLength": 1,
83
83
  "type": "string"
84
84
  },
@@ -99,9 +99,13 @@
99
99
  "type": "string"
100
100
  },
101
101
  "width": {
102
- "description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
103
- "maximum": 100,
104
- "minimum": 1,
102
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
103
+ "enum": [
104
+ 25,
105
+ 50,
106
+ 75,
107
+ 100
108
+ ],
105
109
  "type": "integer"
106
110
  }
107
111
  },
@@ -78,7 +78,7 @@
78
78
  "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
79
79
  },
80
80
  "name": {
81
- "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
81
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
82
82
  "minLength": 1,
83
83
  "type": "string"
84
84
  },
@@ -99,9 +99,13 @@
99
99
  "type": "string"
100
100
  },
101
101
  "width": {
102
- "description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
103
- "maximum": 100,
104
- "minimum": 1,
102
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
103
+ "enum": [
104
+ 25,
105
+ 50,
106
+ 75,
107
+ 100
108
+ ],
105
109
  "type": "integer"
106
110
  }
107
111
  },
@@ -78,7 +78,7 @@
78
78
  "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
79
79
  },
80
80
  "name": {
81
- "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
81
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
82
82
  "minLength": 1,
83
83
  "type": "string"
84
84
  },
@@ -99,9 +99,13 @@
99
99
  "type": "string"
100
100
  },
101
101
  "width": {
102
- "description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
103
- "maximum": 100,
104
- "minimum": 1,
102
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
103
+ "enum": [
104
+ 25,
105
+ 50,
106
+ 75,
107
+ 100
108
+ ],
105
109
  "type": "integer"
106
110
  }
107
111
  },
@@ -150,7 +150,7 @@
150
150
  "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
151
151
  },
152
152
  "name": {
153
- "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
153
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
154
154
  "minLength": 1,
155
155
  "type": "string"
156
156
  },
@@ -171,9 +171,13 @@
171
171
  "type": "string"
172
172
  },
173
173
  "width": {
174
- "description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
175
- "maximum": 100,
176
- "minimum": 1,
174
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
175
+ "enum": [
176
+ 25,
177
+ 50,
178
+ 75,
179
+ 100
180
+ ],
177
181
  "type": "integer"
178
182
  }
179
183
  },
@@ -193,10 +197,10 @@
193
197
  ]
194
198
  }
195
199
  ],
196
- "description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name,两者同时提供时必须指向同一字段。后端允许同父级同名字段,queId 是稳定身份;name 仅在唯一时可解析,命中多个同名时报 AMBIGUOUS_FIELD_SELECTOR,此时必须改用 queId。",
200
+ "description": "字段选择器;用于定位应用的数据标题、数据封面、自定义编号取值来源或其他配置引用的字段。至少提供 queId 或 name,两者同时提供时必须指向同一字段。",
197
201
  "properties": {
198
202
  "name": {
199
- "description": "字段名称;仅在当前作用域内唯一时可用于解析,同名命中多个字段时报 AMBIGUOUS_FIELD_SELECTOR,应改用 queId。",
203
+ "description": "字段名称;仅在当前作用域内唯一时可用于解析。",
200
204
  "minLength": 1,
201
205
  "type": "string"
202
206
  },
@@ -146,7 +146,7 @@
146
146
  "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
147
147
  },
148
148
  "name": {
149
- "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
149
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
150
150
  "minLength": 1,
151
151
  "type": "string"
152
152
  },
@@ -167,9 +167,13 @@
167
167
  "type": "string"
168
168
  },
169
169
  "width": {
170
- "description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
171
- "maximum": 100,
172
- "minimum": 1,
170
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
171
+ "enum": [
172
+ 25,
173
+ 50,
174
+ 75,
175
+ 100
176
+ ],
173
177
  "type": "integer"
174
178
  }
175
179
  },
@@ -78,7 +78,7 @@
78
78
  "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
79
79
  },
80
80
  "name": {
81
- "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
81
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
82
82
  "minLength": 1,
83
83
  "type": "string"
84
84
  },
@@ -99,9 +99,13 @@
99
99
  "type": "string"
100
100
  },
101
101
  "width": {
102
- "description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
103
- "maximum": 100,
104
- "minimum": 1,
102
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
103
+ "enum": [
104
+ 25,
105
+ 50,
106
+ 75,
107
+ 100
108
+ ],
105
109
  "type": "integer"
106
110
  }
107
111
  },
@@ -173,8 +177,8 @@
173
177
  ]
174
178
  },
175
179
  "numberFormat": {
176
- "description": "数字展示格式 ID(1 默认/2 千分位/3 百分比;0 为历史存量值——后端写链无值域校验,原样落库回读)。",
177
- "minimum": 0,
180
+ "description": "数字展示格式 ID。",
181
+ "minimum": 1,
178
182
  "type": [
179
183
  "integer",
180
184
  "null"
@@ -78,7 +78,7 @@
78
78
  "description": "普通字段的默认值;后端 queDefaultValue 为字符串,因此数字等字面量也必须以字符串传入。defaultType 为 1 时表示静态文本,为 3 时表示公式文本,为 2 时不携带字面量默认值。表格、地址、附件、引用等结构化默认值必须放在具体字段 config.defaultValues。显式 null 表示清除默认值。"
79
79
  },
80
80
  "name": {
81
- "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同父级允许同名(后端以 queId 为字段身份),配置引用建议携带 queId。",
81
+ "description": "字段展示名称;新增字段必填,已有字段可在携带 queId 时省略;同一父级内唯一。",
82
82
  "minLength": 1,
83
83
  "type": "string"
84
84
  },
@@ -99,9 +99,13 @@
99
99
  "type": "string"
100
100
  },
101
101
  "width": {
102
- "description": "字段在所在行的宽度百分比(1-100 整数);后端不校验总和与取值,存量数据存在 33/34 等三等分布值。",
103
- "maximum": 100,
104
- "minimum": 1,
102
+ "description": "字段在所在行的宽度百分比;只能选择 25、50、75 或 100。",
103
+ "enum": [
104
+ 25,
105
+ 50,
106
+ 75,
107
+ 100
108
+ ],
105
109
  "type": "integer"
106
110
  }
107
111
  },