weaver-e10-builder 1.5.16 → 1.6.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/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +4 -2
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +109 -51
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/form-attachment-setting.d.ts +3 -0
- package/dist/commands/form-attachment-setting.d.ts.map +1 -0
- package/dist/commands/form-attachment-setting.js +422 -0
- package/dist/commands/form-attachment-setting.js.map +1 -0
- package/dist/commands/form-data.d.ts.map +1 -1
- package/dist/commands/form-data.js +49 -1
- package/dist/commands/form-data.js.map +1 -1
- package/dist/commands/form-ebuilder-scope.d.ts +21 -0
- package/dist/commands/form-ebuilder-scope.d.ts.map +1 -1
- package/dist/commands/form-ebuilder-scope.js +41 -8
- package/dist/commands/form-ebuilder-scope.js.map +1 -1
- package/dist/commands/form-field-linkage.d.ts +6 -1
- package/dist/commands/form-field-linkage.d.ts.map +1 -1
- package/dist/commands/form-field-linkage.js +138 -31
- package/dist/commands/form-field-linkage.js.map +1 -1
- package/dist/commands/form-layout-code-reviewed.d.ts +3 -0
- package/dist/commands/form-layout-code-reviewed.d.ts.map +1 -0
- package/dist/commands/form-layout-code-reviewed.js +61 -0
- package/dist/commands/form-layout-code-reviewed.js.map +1 -0
- package/dist/commands/form-layout-describe.d.ts +3 -0
- package/dist/commands/form-layout-describe.d.ts.map +1 -0
- package/dist/commands/form-layout-describe.js +58 -0
- package/dist/commands/form-layout-describe.js.map +1 -0
- package/dist/commands/form-layout-diff.d.ts +3 -0
- package/dist/commands/form-layout-diff.d.ts.map +1 -0
- package/dist/commands/form-layout-diff.js +48 -0
- package/dist/commands/form-layout-diff.js.map +1 -0
- package/dist/commands/form-layout-document.d.ts +3 -0
- package/dist/commands/form-layout-document.d.ts.map +1 -0
- package/dist/commands/form-layout-document.js +81 -0
- package/dist/commands/form-layout-document.js.map +1 -0
- package/dist/commands/form-layout-edit.d.ts +3 -0
- package/dist/commands/form-layout-edit.d.ts.map +1 -0
- package/dist/commands/form-layout-edit.js +51 -0
- package/dist/commands/form-layout-edit.js.map +1 -0
- package/dist/commands/form-layout-init-reviewed.d.ts +3 -0
- package/dist/commands/form-layout-init-reviewed.d.ts.map +1 -0
- package/dist/commands/form-layout-init-reviewed.js +78 -0
- package/dist/commands/form-layout-init-reviewed.js.map +1 -0
- package/dist/commands/form-layout-restore.d.ts.map +1 -1
- package/dist/commands/form-layout-restore.js +23 -0
- package/dist/commands/form-layout-restore.js.map +1 -1
- package/dist/commands/form-layout-template-catalog.d.ts +3 -0
- package/dist/commands/form-layout-template-catalog.d.ts.map +1 -0
- package/dist/commands/form-layout-template-catalog.js +45 -0
- package/dist/commands/form-layout-template-catalog.js.map +1 -0
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +80 -5
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +39 -6
- package/dist/commands/project.js.map +1 -1
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.js +12 -5
- package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_add_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_add_compiler.js +5 -0
- package/dist/services/actionflow/components/action_eb_add_compiler.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_delete.d.ts +6 -1
- package/dist/services/actionflow/components/action_eb_delete.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_delete.js +23 -5
- package/dist/services/actionflow/components/action_eb_delete.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_delete_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_delete_compiler.js +22 -0
- package/dist/services/actionflow/components/action_eb_delete_compiler.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_update.js +13 -4
- package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.js +9 -2
- package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
- package/dist/services/actionflow/components/date_trigger.js +2 -2
- package/dist/services/actionflow/components/date_trigger.js.map +1 -1
- package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -1
- package/dist/services/actionflow/components/enquiry_form.js +11 -10
- package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
- package/dist/services/actionflow/components/event_button.js +1 -1
- package/dist/services/actionflow/components/event_button.js.map +1 -1
- package/dist/services/actionflow/components/form_data_builder.d.ts +29 -1
- package/dist/services/actionflow/components/form_data_builder.d.ts.map +1 -1
- package/dist/services/actionflow/components/form_data_builder.js +67 -3
- package/dist/services/actionflow/components/form_data_builder.js.map +1 -1
- package/dist/services/actionflow/components/time_batch_trigger.js +2 -2
- package/dist/services/actionflow/components/time_batch_trigger.js.map +1 -1
- package/dist/services/actionflow/form_source.d.ts +44 -1
- package/dist/services/actionflow/form_source.d.ts.map +1 -1
- package/dist/services/actionflow/form_source.js +231 -5
- package/dist/services/actionflow/form_source.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts +8 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +120 -14
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/system_params.d.ts.map +1 -1
- package/dist/services/actionflow/system_params.js +4 -1
- package/dist/services/actionflow/system_params.js.map +1 -1
- package/dist/services/actionflow/trigger_common.d.ts.map +1 -1
- package/dist/services/actionflow/trigger_common.js +12 -3
- package/dist/services/actionflow/trigger_common.js.map +1 -1
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +117 -40
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/form-attachment-settings.d.ts +110 -0
- package/dist/services/form-attachment-settings.d.ts.map +1 -0
- package/dist/services/form-attachment-settings.js +332 -0
- package/dist/services/form-attachment-settings.js.map +1 -0
- package/dist/services/form-attachment-upload.d.ts +30 -0
- package/dist/services/form-attachment-upload.d.ts.map +1 -0
- package/dist/services/form-attachment-upload.js +76 -0
- package/dist/services/form-attachment-upload.js.map +1 -0
- package/dist/services/form-data-openapi.d.ts +2 -0
- package/dist/services/form-data-openapi.d.ts.map +1 -1
- package/dist/services/form-data-openapi.js +1 -0
- package/dist/services/form-data-openapi.js.map +1 -1
- package/dist/services/form-layout-code-reviewed.d.ts +32 -0
- package/dist/services/form-layout-code-reviewed.d.ts.map +1 -0
- package/dist/services/form-layout-code-reviewed.js +101 -0
- package/dist/services/form-layout-code-reviewed.js.map +1 -0
- package/dist/services/form-layout-describe.d.ts +4 -0
- package/dist/services/form-layout-describe.d.ts.map +1 -0
- package/dist/services/form-layout-describe.js +107 -0
- package/dist/services/form-layout-describe.js.map +1 -0
- package/dist/services/form-layout-diff.d.ts +37 -0
- package/dist/services/form-layout-diff.d.ts.map +1 -0
- package/dist/services/form-layout-diff.js +232 -0
- package/dist/services/form-layout-diff.js.map +1 -0
- package/dist/services/form-layout-document-apply.d.ts +23 -0
- package/dist/services/form-layout-document-apply.d.ts.map +1 -0
- package/dist/services/form-layout-document-apply.js +82 -0
- package/dist/services/form-layout-document-apply.js.map +1 -0
- package/dist/services/form-layout-document.d.ts +13 -0
- package/dist/services/form-layout-document.d.ts.map +1 -0
- package/dist/services/form-layout-document.js +228 -0
- package/dist/services/form-layout-document.js.map +1 -0
- package/dist/services/form-layout-edit.d.ts +21 -0
- package/dist/services/form-layout-edit.d.ts.map +1 -0
- package/dist/services/form-layout-edit.js +103 -0
- package/dist/services/form-layout-edit.js.map +1 -0
- package/dist/services/form-layout-init-plan.d.ts +54 -0
- package/dist/services/form-layout-init-plan.d.ts.map +1 -0
- package/dist/services/form-layout-init-plan.js +211 -0
- package/dist/services/form-layout-init-plan.js.map +1 -0
- package/dist/services/form-layout-source/review.d.ts +4 -0
- package/dist/services/form-layout-source/review.d.ts.map +1 -0
- package/dist/services/form-layout-source/review.js +54 -0
- package/dist/services/form-layout-source/review.js.map +1 -0
- package/dist/services/form-layout-template-advanced.d.ts +5 -0
- package/dist/services/form-layout-template-advanced.d.ts.map +1 -1
- package/dist/services/form-layout-template-advanced.js +17 -1
- package/dist/services/form-layout-template-advanced.js.map +1 -1
- package/dist/services/form-layout-template-catalog.d.ts +13 -0
- package/dist/services/form-layout-template-catalog.d.ts.map +1 -0
- package/dist/services/form-layout-template-catalog.js +27 -0
- package/dist/services/form-layout-template-catalog.js.map +1 -0
- package/dist/services/form-layout-template-flow.d.ts +1 -1
- package/dist/services/form-layout-template-flow.d.ts.map +1 -1
- package/dist/services/form-layout-template-flow.js.map +1 -1
- package/dist/services/form-layout-template-verification.d.ts +34 -0
- package/dist/services/form-layout-template-verification.d.ts.map +1 -0
- package/dist/services/form-layout-template-verification.js +124 -0
- package/dist/services/form-layout-template-verification.js.map +1 -0
- package/dist/services/form-style-template.d.ts +3 -3
- package/dist/services/form-style-template.d.ts.map +1 -1
- package/dist/services/form-style-template.js +18 -13
- package/dist/services/form-style-template.js.map +1 -1
- package/package.json +1 -1
- package/skill-docs/SKILL.md +163 -155
- package/skill-docs/_catalog.md +110 -106
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbDelete.md +60 -3
- package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +35 -33
- package/skill-docs/assets/sample/api/formApi.js +689 -510
- package/skill-docs/assets/sample/app/config.js +4 -0
- package/skill-docs/assets/sample/app/fields.js +25 -0
- package/skill-docs/assets/sample/entry.js +24 -22
- package/skill-docs/assets/sample/eslint.config.cjs +1 -0
- package/skill-docs/assets/sample/pages/Items.js +247 -0
- package/skill-docs/assets/sample/styles/prototypeStyles.js +137 -0
- package/skill-docs/references/coding/guide-edit-backfill.md +102 -150
- package/skill-docs/references/coding/guide-form-crud.md +195 -172
- package/skill-docs/references/coding/guide-html-to-react.md +250 -0
- package/skill-docs/references/coding/guide-page-code.md +194 -167
- package/skill-docs/references/coding/guide-page-export.md +27 -18
- package/skill-docs/references/coding/ref-compile-rules.md +7 -7
- package/skill-docs/references/common/capability-boundaries.md +20 -1
- package/skill-docs/references/common/guide-plan-template.md +29 -3
- package/skill-docs/references/common/map.md +13 -8
- package/skill-docs/references/common/ref-cli-commands.md +31 -10
- package/skill-docs/references/components/display-FilePreview.md +5 -4
- package/skill-docs/references/form/guide-browser-definition.md +57 -13
- package/skill-docs/references/form/guide-create-form.md +258 -258
- package/skill-docs/references/form/guide-field-linkage.md +4 -1
- package/skill-docs/references/form/guide-form-attachment-setting.md +95 -0
- package/skill-docs/references/form/guide-form-data.md +22 -1
- package/skill-docs/references/form/layout/code-block/code-block-guide.md +153 -0
- package/skill-docs/references/form/layout/code-block/controls.md +60 -0
- package/skill-docs/references/form/layout/code-block/coverage.md +32 -0
- package/skill-docs/references/form/layout/code-block/details.md +57 -0
- package/skill-docs/references/form/layout/code-block/events-validation.md +42 -0
- package/skill-docs/references/form/layout/code-block/foundations-fields.md +56 -0
- package/skill-docs/references/form/layout/code-block/layout-css.md +116 -0
- package/skill-docs/references/form/layout/code-block/recipes.md +164 -0
- package/skill-docs/references/form/layout/code-block/troubleshooting.md +49 -0
- package/skill-docs/references/form/layout/code-block/ui-global.md +47 -0
- package/skill-docs/references/form/layout/document.md +39 -0
- package/skill-docs/references/form/layout/incremental.md +133 -0
- package/skill-docs/references/form/layout/initialization.md +39 -0
- package/skill-docs/references/form/layout/inspect-edit.md +76 -0
- package/skill-docs/references/form/layout/layout-overview.md +67 -0
- package/skill-docs/references/form/layout/management.md +64 -0
- package/skill-docs/references/form/layout/planning.md +76 -0
- package/skill-docs/references/form/layout/source-restoration.md +388 -0
- package/skill-docs/references/form/layout/template/advanced-css.md +167 -0
- package/skill-docs/references/form/layout/template/advanced.md +318 -0
- package/skill-docs/references/form/layout/template/easy.md +64 -0
- package/skill-docs/references/form/layout/template/flow.md +30 -0
- package/skill-docs/references/form/layout/template/template-guide.md +56 -0
- package/skill-docs/references/form/layout/workflow-layout.md +44 -0
- package/skill-docs/references/form/ref-form-fields.md +303 -301
- package/skill-docs/references/workflow/guide-workflow-node-layout.md +189 -187
- package/skill-docs/assets/sample/config/config.js +0 -0
- package/skill-docs/assets/sample/config/configLoad.js +0 -0
- package/skill-docs/assets/sample/config/configLoad_default.js +0 -0
- package/skill-docs/assets/sample/config/config_default.js +0 -0
- package/skill-docs/assets/sample/memo.md +0 -0
- package/skill-docs/assets/sample/readme.js +0 -8
|
@@ -1,258 +1,258 @@
|
|
|
1
|
-
# 新建 EBuilder 表单
|
|
2
|
-
|
|
3
|
-
通过 `e10-cli form create` 在 EBuilder 应用中创建表单。本指南说明从需求整理、`fields.json` 编写到建后配置的完整顺序;字段参数和布局样表的详细规则按需读取专题参考。
|
|
4
|
-
|
|
5
|
-
需求以已有 EB 表单、系统业务表或数据加工结果为实际数据源时,使用 [虚拟表创建与维护](guide-virtual-form.md) 的 `form virtual` 流程。
|
|
6
|
-
|
|
7
|
-
## 标准创建流程
|
|
8
|
-
|
|
9
|
-
1. 确认目标应用 `appId`。
|
|
10
|
-
2. 确认布局类型:流式 `FLOW` 或表格式 `EXCEL`。布局类型在建表时确定。
|
|
11
|
-
3. 从需求中整理字段、明细表、字段顺序和布局要求;遇到完整布局样表时,将空间结构写入 plan 的“表单布局蓝图”。
|
|
12
|
-
4. 将建表时可以完成的配置写入 `fields.json`。
|
|
13
|
-
5. 执行 `form create`,记录返回的 `objId` 和 `formId`。
|
|
14
|
-
6. 使用 `form list-view` 查询并记录默认台账 `listId`。
|
|
15
|
-
7. 按需求完成多语言、联动、校验、权限、视图和按钮等建后配置。
|
|
16
|
-
8. 使用读取命令轻量核对字段、布局和默认台账。
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
e10-cli form create <appId> "<表单名>" --fields @fields.json --layout FLOW|EXCEL
|
|
20
|
-
e10-cli form list-view <objId> <appId>
|
|
21
|
-
e10-cli form read <objId> --app-id <appId> --out fields-created.json
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
需要同时生成台账菜单入口时,在创建命令中增加 `--menu`;建成后也可使用 `menu add-table <appId> <objId>` 添加。默认台账视图与应用菜单入口是两个资源。
|
|
25
|
-
|
|
26
|
-
### 自定义数据库表名
|
|
27
|
-
|
|
28
|
-
不指定时表名按表单名拼音首字母加随机数生成(如 `uf_xsddb_4683`)。需要固定或对齐既有命名时用 `--table-name`:
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
e10-cli form create <appId> "客户信息表" --fields @fields.json --table-name cs_khxx
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
- **平台前缀由 CLI 自动补**:传 `cs_khxx` 与传 `uf_cs_khxx` 结果相同(`uf_cs_khxx`)。
|
|
35
|
-
- **格式约束**:字母开头,只含字母、数字、下划线。前缀之外的部分受平台长度上限约束 —— 前缀 `uf_`、总长上限 30 时,自定义部分最多 27 位。越界会直接报错,不会建成一半。
|
|
36
|
-
- **建成后回读校验**:实际表名与预期不一致会报错,不静默通过。
|
|
37
|
-
- 仅对**物理表**应用有效;应用未启用物理表时该选项不适用(CLI 会先查存储设置并拒绝)。
|
|
38
|
-
|
|
39
|
-
## 各阶段配置范围
|
|
40
|
-
|
|
41
|
-
| 阶段 | 配置内容 |
|
|
42
|
-
|---|---|
|
|
43
|
-
| 需求与 plan | 表单名称、字段类型、顺序、明细结构、FLOW/EXCEL、布局蓝图及外围配置 |
|
|
44
|
-
| `fields.json` | 字段、选项、默认值、精度、日期格式、关联、公式、明细、分组和显示属性 |
|
|
45
|
-
| `form create` | 表单主体、字段、明细、布局、基础查看权限、默认台账及可选菜单 |
|
|
46
|
-
| 建成后 | 字段多语言、联动、查重、进一步权限、视图名称与列、筛选、按钮及关联页签 |
|
|
47
|
-
| 完成核对 | `objId`、`formId`、`listId`、字段结构和布局结果 |
|
|
48
|
-
|
|
49
|
-
## 建表前整理需求
|
|
50
|
-
|
|
51
|
-
### 布局类型
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
e10-cli form create <appId> "<表单名>" --fields @fields.json --layout FLOW
|
|
55
|
-
e10-cli form create <appId> "<表单名>" --fields @fields.json --layout EXCEL
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
- `FLOW`:流式布局。
|
|
59
|
-
- `EXCEL`:表格式布局,也是 CLI 缺省值。
|
|
60
|
-
- 需求未明确且布局选择会影响结果时,建表前向用户确认。
|
|
61
|
-
- 需求提供完整表格、合并单元格、分组标题、标签与字段交替排布时,按布局样表处理,详见 [表单布局规划](
|
|
62
|
-
|
|
63
|
-
### 字段定义
|
|
64
|
-
|
|
65
|
-
字段按照需求顺序写入 `fields.json`。主表字段在前,`DetailTable` 明细表放在数组末尾。
|
|
66
|
-
|
|
67
|
-
```json
|
|
68
|
-
[
|
|
69
|
-
{"componentKey":"Text","fieldName":"合同名称","required":true,"singleRow":true},
|
|
70
|
-
{"componentKey":"DateRange","fieldName":"合同有效期","format":"yyyy-MM-dd"},
|
|
71
|
-
{"componentKey":"Money","fieldName":"合同金额","precision":2},
|
|
72
|
-
{"componentKey":"Select","fieldName":"合同状态","fieldOptions":[{"name":"草稿"},{"name":"履行中"}]},
|
|
73
|
-
{"componentKey":"Employee","fieldName":"负责人"},
|
|
74
|
-
{"componentKey":"DetailTable","fieldName":"付款明细","formFields":[
|
|
75
|
-
{"componentKey":"Date","fieldName":"付款日期"},
|
|
76
|
-
{"componentKey":"Number","fieldName":"付款金额","precision":2}
|
|
77
|
-
]}
|
|
78
|
-
]
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
常用字段类型包括文本、数字、选项、日期、组织、关联、行政区域和其他类型。完整类型、关联码表及各类型属性见 [表单字段定义参考](ref-form-fields.md);明细表通过表单结构配置创建。
|
|
82
|
-
|
|
83
|
-
## 常用字段属性
|
|
84
|
-
|
|
85
|
-
| 属性 | 作用 |
|
|
86
|
-
|---|---|
|
|
87
|
-
| `required:true` | 字段必填 |
|
|
88
|
-
| `readOnly:true` | 禁止手工编辑 |
|
|
89
|
-
| `hidden:true` | 布局中隐藏,字段仍可参与计算 |
|
|
90
|
-
| `singleRow:true` | 独占一行 |
|
|
91
|
-
| `group:"基本信息"` | 放入指定字段分组 |
|
|
92
|
-
| `multiple:true` | 支持多选的字段设置为多选 |
|
|
93
|
-
| `maxLen:500` | 文本最大长度 |
|
|
94
|
-
| `precision:2` | 数字或金额小数位 |
|
|
95
|
-
| `defaultValue` | 字段默认值 |
|
|
96
|
-
|
|
97
|
-
### 字段分组
|
|
98
|
-
|
|
99
|
-
以需求为准:只有需求明确要求字段分组时,才在 `fields.json` 中设置 `group`;需求未要求时保持不分组。
|
|
100
|
-
|
|
101
|
-
```json
|
|
102
|
-
[
|
|
103
|
-
{"componentKey":"Text","fieldName":"项目名称","group":"基本信息","required":true},
|
|
104
|
-
{"componentKey":"Employee","fieldName":"负责人","group":"基本信息"},
|
|
105
|
-
{"componentKey":"Number","fieldName":"项目金额","group":"财务信息","precision":2}
|
|
106
|
-
]
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
同名 `group` 的字段进入同一个分组。分组内字段按字段顺序排列,需要整行展示的字段增加 `singleRow:true`。已有表单补充分组时使用:
|
|
110
|
-
|
|
111
|
-
```bash
|
|
112
|
-
e10-cli form group <objId> <appId> --groups '{"基本信息":["项目名称","负责人"]}'
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### 日期区间
|
|
116
|
-
|
|
117
|
-
字段本身包含开始与结束含义,如“项目周期、合同有效期、请假时间、活动时间”,优先使用 `DateRange`。明确要求两个独立字段,或开始、结束需要分别参与公式和联动时,再拆成两个日期字段。
|
|
118
|
-
|
|
119
|
-
```json
|
|
120
|
-
{"componentKey":"DateRange","fieldName":"项目周期","format":"yyyy-MM-dd"}
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### 选项和多选
|
|
124
|
-
|
|
125
|
-
```json
|
|
126
|
-
{"componentKey":"Select","fieldName":"状态","fieldOptions":[{"name":"启用"},{"name":"停用"}]},
|
|
127
|
-
{"componentKey":"Employee","fieldName":"项目成员","multiple":true}
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
`Select`、`RadioBox`、`CheckBox` 可在 `fieldOptions` 中定义选项。人员、部门、EBuilder、Browser 和 Select 等支持按字段能力设置多选。共享选项可使用 `optionTemplate`;详细结构见 [表单字段定义参考](ref-form-fields.md)。
|
|
131
|
-
|
|
132
|
-
**开关(`Switch`)自动带固定选项「开启=1 / 关闭=0」**,不需要在 `fields.json` 里写 `fieldOptions`;主表、明细表与后续 `form add-field` / `form add-physical-field` 都会自动补上。
|
|
133
|
-
|
|
134
|
-
### 关联字段
|
|
135
|
-
|
|
136
|
-
EBuilder 关联字段在创建时指定目标表单 `objId` 和显示字段:
|
|
137
|
-
|
|
138
|
-
```json
|
|
139
|
-
{
|
|
140
|
-
"componentKey":"EBuilder",
|
|
141
|
-
"fieldName":"关联客户",
|
|
142
|
-
"sformId":"<目标表单objId>",
|
|
143
|
-
"dataTitle":"客户名称",
|
|
144
|
-
"displayColumns":["客户名称","客户类型"]
|
|
145
|
-
}
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
`Flow` 的 `sformId` 同样指向目标流程绑定的表单 `objId`。原生关联对象和通用浏览类型的配置码表见
|
|
149
|
-
|
|
150
|
-
**明细表里的 EBuilder 子字段用同一套键**:在 `DetailTable.formFields` 的字段对象里写 `sformId` / `dataTitle` / `displayColumns` 即可,建表时会一起绑定到目标表单;不写 `sformId` 会建成无关联的裸字段(命令会给出警告)。
|
|
151
|
-
|
|
152
|
-
使用自定义浏览框时,在 `fields.json` 的 `Browser` / `RelateBrowser` 字段写 `"browserName":"浏览框准确名称"`;CLI 会从当前环境检索该名称并绑定。已有表单用 `form add-field ... Browser --browser-name "浏览框准确名称"`。具体字段示例见 [表单字段定义参考](ref-form-fields.md)。
|
|
153
|
-
|
|
154
|
-
### 明细表与二级明细
|
|
155
|
-
|
|
156
|
-
明细字段写入 `DetailTable.formFields`。二级明细关系配置在父明细表上,父明细每一行分别拥有对应的子明细数据:
|
|
157
|
-
|
|
158
|
-
```json
|
|
159
|
-
[
|
|
160
|
-
{"componentKey":"DetailTable","fieldName":"任务明细","enableSubDetail":true,
|
|
161
|
-
"subDetailConfig":[{"subForm":"工时明细","subField":"父任务标识"}],"formFields":[
|
|
162
|
-
{"componentKey":"Text","fieldName":"任务名称"}
|
|
163
|
-
]},
|
|
164
|
-
{"componentKey":"DetailTable","fieldName":"工时明细","formFields":[
|
|
165
|
-
{"componentKey":"Text","fieldName":"父任务标识"},
|
|
166
|
-
{"componentKey":"Number","fieldName":"工时","precision":2}
|
|
167
|
-
]}
|
|
168
|
-
]
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
父级行标识缺省使用行 ID;子级行标识必须为单行文本。多父级复用、多子级和多级嵌套的规则,以及已有表单的查询、增加、删除、启停命令见 [二级明细表配置](guide-form-sub-detail.md)。
|
|
172
|
-
|
|
173
|
-
明细表的**描述默认是空**;需要时在 `DetailTable` 上写 `"describe":"说明文字"`,不写不会用明细名填充。
|
|
174
|
-
|
|
175
|
-
### 表单结构与布局组件
|
|
176
|
-
|
|
177
|
-
主表字段直接写在 `fields.json` 根数组中;明细表使用 `DetailTable` 配置,并通过 `formFields` 维护其字段。主表与明细表字段采用相同的字段类型和属性规则。
|
|
178
|
-
|
|
179
|
-
布局初始化会根据表单结构生成相应的内部组件:
|
|
180
|
-
|
|
181
|
-
| 组件 | 在创建流程中的作用 |
|
|
182
|
-
| --- | --- |
|
|
183
|
-
| `DetailTable` | 定义明细表及其字段 |
|
|
184
|
-
| `DataTable` | 在布局中承载和展示明细表 |
|
|
185
|
-
| `Fold` | 承载字段分组和折叠区域 |
|
|
186
|
-
| `Placeholder` | 维护布局中的占位位置 |
|
|
187
|
-
| `EbuilderAppTag` | 维护 EB 应用相关的布局标签 |
|
|
188
|
-
|
|
189
|
-
业务字段从字段类型码表中选择;以上结构与内部组件由明细表、分组和布局配置生成与维护。
|
|
190
|
-
|
|
191
|
-
### 字段公式
|
|
192
|
-
|
|
193
|
-
可在目标字段中写 `formula`,由创建流程完成公式创建和字段绑定:
|
|
194
|
-
|
|
195
|
-
```json
|
|
196
|
-
{"componentKey":"Number","fieldName":"项目收益","formula":"{主表.已收款}-{主表.项目费用}"}
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
公式表达式、明细汇总和函数格式见 [字段公式函数参考](guide-form-formula-functions.md)。复杂编号属于建后配置,见 [表单复杂编号](guide-form-serial-mark.md)。
|
|
200
|
-
|
|
201
|
-
## 执行创建
|
|
202
|
-
|
|
203
|
-
需要还原图片或 XLSX 源样式时,可在普通创建完成后使用[源样式还原命令链](
|
|
204
|
-
|
|
205
|
-
```bash
|
|
206
|
-
e10-cli form create <appId> "采购合同" --fields @fields.json --layout EXCEL
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
创建流程会依次完成表单主体、字段和明细、布局初始化、字段高级属性、关联关系、选项、公式、分组、基础查看权限及默认台账配置。传入 `--menu` 时同时添加台账菜单入口。
|
|
210
|
-
|
|
211
|
-
记录命令返回的:
|
|
212
|
-
|
|
213
|
-
- `objId`:EB 表单业务对象 ID,多数 `form` 命令使用它。
|
|
214
|
-
- `formId`:底层表单 ID,布局和部分底层接口使用它。
|
|
215
|
-
- `listId`:默认台账 ID,通过 `form list-view` 查询。
|
|
216
|
-
|
|
217
|
-
## 建成后配置
|
|
218
|
-
|
|
219
|
-
按需求执行,未提出的配置不额外增加:
|
|
220
|
-
|
|
221
|
-
| 需求 | 命令或指南 |
|
|
222
|
-
|---|---|
|
|
223
|
-
| 字段中英文名称 | `form field-lang set` |
|
|
224
|
-
| 字段显隐、只读、必填联动 | [表单联动](guide-form-linkage.md) |
|
|
225
|
-
| 字段查重 | `form validate` |
|
|
226
|
-
| 表单和数据权限 | `form permission` |
|
|
227
|
-
| 默认台账改名、列、筛选和分组 | [表单视图](guide-form-view.md) |
|
|
228
|
-
| 表单及视图按钮 | [表单按钮](guide-form-button.md) |
|
|
229
|
-
| 关联页签 | [表单关联页签](guide-form-association.md) |
|
|
230
|
-
| 复杂编号 | [表单复杂编号](guide-form-serial-mark.md) |
|
|
231
|
-
|
|
232
|
-
需求写成 `中文/English`(如 `项目/project`)时,先以中文名称创建字段,再设置多语言:
|
|
233
|
-
|
|
234
|
-
```bash
|
|
235
|
-
e10-cli form field-lang set <objId> <appId> <fieldId> --zh "项目" --en "project"
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
## 完成核对
|
|
239
|
-
|
|
240
|
-
使用与本次需求直接相关的读取命令核对即可:
|
|
241
|
-
|
|
242
|
-
```bash
|
|
243
|
-
e10-cli form read <objId> --app-id <appId> --out fields-created.json
|
|
244
|
-
e10-cli form list-view <objId> <appId>
|
|
245
|
-
e10-cli form layout read <objId>
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
重点确认字段数量与类型、明细结构、分组和显示属性、布局类型、默认台账名称与 `listId`。需要菜单时再确认菜单入口。
|
|
249
|
-
|
|
250
|
-
`fields-created.json` 里的 `fieldName` **就是字段标题** —— 与设计器「字段管理」里看到的是同一个值,想核对标题建对没有看它即可。它为空就说明标题没写进去(`form add-field` 没给标题时会回落成字段名,所以正常不会空)。
|
|
251
|
-
|
|
252
|
-
## 专题参考
|
|
253
|
-
|
|
254
|
-
- [表单字段定义参考](ref-form-fields.md):完整字段类型、属性、关联类型和 JSON 结构。
|
|
255
|
-
- [表单布局规划](
|
|
256
|
-
- [表单复杂编号](guide-form-serial-mark.md):编号段、流水和代字配置。
|
|
257
|
-
- [字段公式函数参考](guide-form-formula-functions.md):公式表达式和函数。
|
|
258
|
-
- [表单视图](guide-form-view.md):默认台账、视图名称和列表配置。
|
|
1
|
+
# 新建 EBuilder 表单
|
|
2
|
+
|
|
3
|
+
通过 `e10-cli form create` 在 EBuilder 应用中创建表单。本指南说明从需求整理、`fields.json` 编写到建后配置的完整顺序;字段参数和布局样表的详细规则按需读取专题参考。
|
|
4
|
+
|
|
5
|
+
需求以已有 EB 表单、系统业务表或数据加工结果为实际数据源时,使用 [虚拟表创建与维护](guide-virtual-form.md) 的 `form virtual` 流程。
|
|
6
|
+
|
|
7
|
+
## 标准创建流程
|
|
8
|
+
|
|
9
|
+
1. 确认目标应用 `appId`。
|
|
10
|
+
2. 确认布局类型:流式 `FLOW` 或表格式 `EXCEL`。布局类型在建表时确定。
|
|
11
|
+
3. 从需求中整理字段、明细表、字段顺序和布局要求;遇到完整布局样表时,将空间结构写入 plan 的“表单布局蓝图”。
|
|
12
|
+
4. 将建表时可以完成的配置写入 `fields.json`。
|
|
13
|
+
5. 执行 `form create`,记录返回的 `objId` 和 `formId`。
|
|
14
|
+
6. 使用 `form list-view` 查询并记录默认台账 `listId`。
|
|
15
|
+
7. 按需求完成多语言、联动、校验、权限、视图和按钮等建后配置。
|
|
16
|
+
8. 使用读取命令轻量核对字段、布局和默认台账。
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
e10-cli form create <appId> "<表单名>" --fields @fields.json --layout FLOW|EXCEL
|
|
20
|
+
e10-cli form list-view <objId> <appId>
|
|
21
|
+
e10-cli form read <objId> --app-id <appId> --out fields-created.json
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
需要同时生成台账菜单入口时,在创建命令中增加 `--menu`;建成后也可使用 `menu add-table <appId> <objId>` 添加。默认台账视图与应用菜单入口是两个资源。
|
|
25
|
+
|
|
26
|
+
### 自定义数据库表名
|
|
27
|
+
|
|
28
|
+
不指定时表名按表单名拼音首字母加随机数生成(如 `uf_xsddb_4683`)。需要固定或对齐既有命名时用 `--table-name`:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
e10-cli form create <appId> "客户信息表" --fields @fields.json --table-name cs_khxx
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
- **平台前缀由 CLI 自动补**:传 `cs_khxx` 与传 `uf_cs_khxx` 结果相同(`uf_cs_khxx`)。
|
|
35
|
+
- **格式约束**:字母开头,只含字母、数字、下划线。前缀之外的部分受平台长度上限约束 —— 前缀 `uf_`、总长上限 30 时,自定义部分最多 27 位。越界会直接报错,不会建成一半。
|
|
36
|
+
- **建成后回读校验**:实际表名与预期不一致会报错,不静默通过。
|
|
37
|
+
- 仅对**物理表**应用有效;应用未启用物理表时该选项不适用(CLI 会先查存储设置并拒绝)。
|
|
38
|
+
|
|
39
|
+
## 各阶段配置范围
|
|
40
|
+
|
|
41
|
+
| 阶段 | 配置内容 |
|
|
42
|
+
|---|---|
|
|
43
|
+
| 需求与 plan | 表单名称、字段类型、顺序、明细结构、FLOW/EXCEL、布局蓝图及外围配置 |
|
|
44
|
+
| `fields.json` | 字段、选项、默认值、精度、日期格式、关联、公式、明细、分组和显示属性 |
|
|
45
|
+
| `form create` | 表单主体、字段、明细、布局、基础查看权限、默认台账及可选菜单 |
|
|
46
|
+
| 建成后 | 字段多语言、联动、查重、进一步权限、视图名称与列、筛选、按钮及关联页签 |
|
|
47
|
+
| 完成核对 | `objId`、`formId`、`listId`、字段结构和布局结果 |
|
|
48
|
+
|
|
49
|
+
## 建表前整理需求
|
|
50
|
+
|
|
51
|
+
### 布局类型
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
e10-cli form create <appId> "<表单名>" --fields @fields.json --layout FLOW
|
|
55
|
+
e10-cli form create <appId> "<表单名>" --fields @fields.json --layout EXCEL
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
- `FLOW`:流式布局。
|
|
59
|
+
- `EXCEL`:表格式布局,也是 CLI 缺省值。
|
|
60
|
+
- 需求未明确且布局选择会影响结果时,建表前向用户确认。
|
|
61
|
+
- 需求提供完整表格、合并单元格、分组标题、标签与字段交替排布时,按布局样表处理,详见 [表单布局规划](layout/planning.md)。
|
|
62
|
+
|
|
63
|
+
### 字段定义
|
|
64
|
+
|
|
65
|
+
字段按照需求顺序写入 `fields.json`。主表字段在前,`DetailTable` 明细表放在数组末尾。
|
|
66
|
+
|
|
67
|
+
```json
|
|
68
|
+
[
|
|
69
|
+
{"componentKey":"Text","fieldName":"合同名称","required":true,"singleRow":true},
|
|
70
|
+
{"componentKey":"DateRange","fieldName":"合同有效期","format":"yyyy-MM-dd"},
|
|
71
|
+
{"componentKey":"Money","fieldName":"合同金额","precision":2},
|
|
72
|
+
{"componentKey":"Select","fieldName":"合同状态","fieldOptions":[{"name":"草稿"},{"name":"履行中"}]},
|
|
73
|
+
{"componentKey":"Employee","fieldName":"负责人"},
|
|
74
|
+
{"componentKey":"DetailTable","fieldName":"付款明细","formFields":[
|
|
75
|
+
{"componentKey":"Date","fieldName":"付款日期"},
|
|
76
|
+
{"componentKey":"Number","fieldName":"付款金额","precision":2}
|
|
77
|
+
]}
|
|
78
|
+
]
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
常用字段类型包括文本、数字、选项、日期、组织、关联、行政区域和其他类型。完整类型、关联码表及各类型属性见 [表单字段定义参考](ref-form-fields.md);明细表通过表单结构配置创建。
|
|
82
|
+
|
|
83
|
+
## 常用字段属性
|
|
84
|
+
|
|
85
|
+
| 属性 | 作用 |
|
|
86
|
+
|---|---|
|
|
87
|
+
| `required:true` | 字段必填 |
|
|
88
|
+
| `readOnly:true` | 禁止手工编辑 |
|
|
89
|
+
| `hidden:true` | 布局中隐藏,字段仍可参与计算 |
|
|
90
|
+
| `singleRow:true` | 独占一行 |
|
|
91
|
+
| `group:"基本信息"` | 放入指定字段分组 |
|
|
92
|
+
| `multiple:true` | 支持多选的字段设置为多选 |
|
|
93
|
+
| `maxLen:500` | 文本最大长度 |
|
|
94
|
+
| `precision:2` | 数字或金额小数位 |
|
|
95
|
+
| `defaultValue` | 字段默认值 |
|
|
96
|
+
|
|
97
|
+
### 字段分组
|
|
98
|
+
|
|
99
|
+
以需求为准:只有需求明确要求字段分组时,才在 `fields.json` 中设置 `group`;需求未要求时保持不分组。
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
[
|
|
103
|
+
{"componentKey":"Text","fieldName":"项目名称","group":"基本信息","required":true},
|
|
104
|
+
{"componentKey":"Employee","fieldName":"负责人","group":"基本信息"},
|
|
105
|
+
{"componentKey":"Number","fieldName":"项目金额","group":"财务信息","precision":2}
|
|
106
|
+
]
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
同名 `group` 的字段进入同一个分组。分组内字段按字段顺序排列,需要整行展示的字段增加 `singleRow:true`。已有表单补充分组时使用:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
e10-cli form group <objId> <appId> --groups '{"基本信息":["项目名称","负责人"]}'
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 日期区间
|
|
116
|
+
|
|
117
|
+
字段本身包含开始与结束含义,如“项目周期、合同有效期、请假时间、活动时间”,优先使用 `DateRange`。明确要求两个独立字段,或开始、结束需要分别参与公式和联动时,再拆成两个日期字段。
|
|
118
|
+
|
|
119
|
+
```json
|
|
120
|
+
{"componentKey":"DateRange","fieldName":"项目周期","format":"yyyy-MM-dd"}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### 选项和多选
|
|
124
|
+
|
|
125
|
+
```json
|
|
126
|
+
{"componentKey":"Select","fieldName":"状态","fieldOptions":[{"name":"启用"},{"name":"停用"}]},
|
|
127
|
+
{"componentKey":"Employee","fieldName":"项目成员","multiple":true}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
`Select`、`RadioBox`、`CheckBox` 可在 `fieldOptions` 中定义选项。人员、部门、EBuilder、Browser 和 Select 等支持按字段能力设置多选。共享选项可使用 `optionTemplate`;详细结构见 [表单字段定义参考](ref-form-fields.md)。
|
|
131
|
+
|
|
132
|
+
**开关(`Switch`)自动带固定选项「开启=1 / 关闭=0」**,不需要在 `fields.json` 里写 `fieldOptions`;主表、明细表与后续 `form add-field` / `form add-physical-field` 都会自动补上。
|
|
133
|
+
|
|
134
|
+
### 关联字段
|
|
135
|
+
|
|
136
|
+
EBuilder 关联字段在创建时指定目标表单 `objId` 和显示字段:
|
|
137
|
+
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"componentKey":"EBuilder",
|
|
141
|
+
"fieldName":"关联客户",
|
|
142
|
+
"sformId":"<目标表单objId>",
|
|
143
|
+
"dataTitle":"客户名称",
|
|
144
|
+
"displayColumns":["客户名称","客户类型"]
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
`Flow` 的 `sformId` 同样指向目标流程绑定的表单 `objId`。原生关联对象和通用浏览类型的配置码表见[表单字段定义参考](ref-form-fields.md);关联浏览的数据范围见[浏览数据定义](guide-browser-definition.md#数据范围)。旧布局过滤配置见[EBuilder 过滤](guide-ebuilder-filter.md)。
|
|
149
|
+
|
|
150
|
+
**明细表里的 EBuilder 子字段用同一套键**:在 `DetailTable.formFields` 的字段对象里写 `sformId` / `dataTitle` / `displayColumns` 即可,建表时会一起绑定到目标表单;不写 `sformId` 会建成无关联的裸字段(命令会给出警告)。
|
|
151
|
+
|
|
152
|
+
使用自定义浏览框时,在 `fields.json` 的 `Browser` / `RelateBrowser` 字段写 `"browserName":"浏览框准确名称"`;CLI 会从当前环境检索该名称并绑定。已有表单用 `form add-field ... Browser --browser-name "浏览框准确名称"`。具体字段示例见 [表单字段定义参考](ref-form-fields.md)。
|
|
153
|
+
|
|
154
|
+
### 明细表与二级明细
|
|
155
|
+
|
|
156
|
+
明细字段写入 `DetailTable.formFields`。二级明细关系配置在父明细表上,父明细每一行分别拥有对应的子明细数据:
|
|
157
|
+
|
|
158
|
+
```json
|
|
159
|
+
[
|
|
160
|
+
{"componentKey":"DetailTable","fieldName":"任务明细","enableSubDetail":true,
|
|
161
|
+
"subDetailConfig":[{"subForm":"工时明细","subField":"父任务标识"}],"formFields":[
|
|
162
|
+
{"componentKey":"Text","fieldName":"任务名称"}
|
|
163
|
+
]},
|
|
164
|
+
{"componentKey":"DetailTable","fieldName":"工时明细","formFields":[
|
|
165
|
+
{"componentKey":"Text","fieldName":"父任务标识"},
|
|
166
|
+
{"componentKey":"Number","fieldName":"工时","precision":2}
|
|
167
|
+
]}
|
|
168
|
+
]
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
父级行标识缺省使用行 ID;子级行标识必须为单行文本。多父级复用、多子级和多级嵌套的规则,以及已有表单的查询、增加、删除、启停命令见 [二级明细表配置](guide-form-sub-detail.md)。
|
|
172
|
+
|
|
173
|
+
明细表的**描述默认是空**;需要时在 `DetailTable` 上写 `"describe":"说明文字"`,不写不会用明细名填充。
|
|
174
|
+
|
|
175
|
+
### 表单结构与布局组件
|
|
176
|
+
|
|
177
|
+
主表字段直接写在 `fields.json` 根数组中;明细表使用 `DetailTable` 配置,并通过 `formFields` 维护其字段。主表与明细表字段采用相同的字段类型和属性规则。
|
|
178
|
+
|
|
179
|
+
布局初始化会根据表单结构生成相应的内部组件:
|
|
180
|
+
|
|
181
|
+
| 组件 | 在创建流程中的作用 |
|
|
182
|
+
| --- | --- |
|
|
183
|
+
| `DetailTable` | 定义明细表及其字段 |
|
|
184
|
+
| `DataTable` | 在布局中承载和展示明细表 |
|
|
185
|
+
| `Fold` | 承载字段分组和折叠区域 |
|
|
186
|
+
| `Placeholder` | 维护布局中的占位位置 |
|
|
187
|
+
| `EbuilderAppTag` | 维护 EB 应用相关的布局标签 |
|
|
188
|
+
|
|
189
|
+
业务字段从字段类型码表中选择;以上结构与内部组件由明细表、分组和布局配置生成与维护。
|
|
190
|
+
|
|
191
|
+
### 字段公式
|
|
192
|
+
|
|
193
|
+
可在目标字段中写 `formula`,由创建流程完成公式创建和字段绑定:
|
|
194
|
+
|
|
195
|
+
```json
|
|
196
|
+
{"componentKey":"Number","fieldName":"项目收益","formula":"{主表.已收款}-{主表.项目费用}"}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
公式表达式、明细汇总和函数格式见 [字段公式函数参考](guide-form-formula-functions.md)。复杂编号属于建后配置,见 [表单复杂编号](guide-form-serial-mark.md)。
|
|
200
|
+
|
|
201
|
+
## 执行创建
|
|
202
|
+
|
|
203
|
+
需要还原图片或 XLSX 源样式时,可在普通创建完成后使用[源样式还原命令链](layout/source-restoration.md),或同时传 `--layout-source @source.json --layout-spec @spec.json --layout-artifact-out artifact.json`。该入口先验证源文件,继续使用原字段创建链,最后在高级属性、公式和分组重排结束后保存精确布局。失败保留已有 objId/formId,重试只处理该对象,不重复建表。
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
e10-cli form create <appId> "采购合同" --fields @fields.json --layout EXCEL
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
创建流程会依次完成表单主体、字段和明细、布局初始化、字段高级属性、关联关系、选项、公式、分组、基础查看权限及默认台账配置。传入 `--menu` 时同时添加台账菜单入口。
|
|
210
|
+
|
|
211
|
+
记录命令返回的:
|
|
212
|
+
|
|
213
|
+
- `objId`:EB 表单业务对象 ID,多数 `form` 命令使用它。
|
|
214
|
+
- `formId`:底层表单 ID,布局和部分底层接口使用它。
|
|
215
|
+
- `listId`:默认台账 ID,通过 `form list-view` 查询。
|
|
216
|
+
|
|
217
|
+
## 建成后配置
|
|
218
|
+
|
|
219
|
+
按需求执行,未提出的配置不额外增加:
|
|
220
|
+
|
|
221
|
+
| 需求 | 命令或指南 |
|
|
222
|
+
|---|---|
|
|
223
|
+
| 字段中英文名称 | `form field-lang set` |
|
|
224
|
+
| 字段显隐、只读、必填联动 | [表单联动](guide-form-linkage.md) |
|
|
225
|
+
| 字段查重 | `form validate` |
|
|
226
|
+
| 表单和数据权限 | `form permission` |
|
|
227
|
+
| 默认台账改名、列、筛选和分组 | [表单视图](guide-form-view.md) |
|
|
228
|
+
| 表单及视图按钮 | [表单按钮](guide-form-button.md) |
|
|
229
|
+
| 关联页签 | [表单关联页签](guide-form-association.md) |
|
|
230
|
+
| 复杂编号 | [表单复杂编号](guide-form-serial-mark.md) |
|
|
231
|
+
|
|
232
|
+
需求写成 `中文/English`(如 `项目/project`)时,先以中文名称创建字段,再设置多语言:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
e10-cli form field-lang set <objId> <appId> <fieldId> --zh "项目" --en "project"
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## 完成核对
|
|
239
|
+
|
|
240
|
+
使用与本次需求直接相关的读取命令核对即可:
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
e10-cli form read <objId> --app-id <appId> --out fields-created.json
|
|
244
|
+
e10-cli form list-view <objId> <appId>
|
|
245
|
+
e10-cli form layout read <objId>
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
重点确认字段数量与类型、明细结构、分组和显示属性、布局类型、默认台账名称与 `listId`。需要菜单时再确认菜单入口。
|
|
249
|
+
|
|
250
|
+
`fields-created.json` 里的 `fieldName` **就是字段标题** —— 与设计器「字段管理」里看到的是同一个值,想核对标题建对没有看它即可。它为空就说明标题没写进去(`form add-field` 没给标题时会回落成字段名,所以正常不会空)。
|
|
251
|
+
|
|
252
|
+
## 专题参考
|
|
253
|
+
|
|
254
|
+
- [表单字段定义参考](ref-form-fields.md):完整字段类型、属性、关联类型和 JSON 结构。
|
|
255
|
+
- [表单布局规划](layout/planning.md):FLOW/EXCEL、布局样表、布局蓝图及建后调整。
|
|
256
|
+
- [表单复杂编号](guide-form-serial-mark.md):编号段、流水和代字配置。
|
|
257
|
+
- [字段公式函数参考](guide-form-formula-functions.md):公式表达式和函数。
|
|
258
|
+
- [表单视图](guide-form-view.md):默认台账、视图名称和列表配置。
|
|
@@ -134,9 +134,12 @@ e10-cli form field-linkage add <appId> <objId> \
|
|
|
134
134
|
|
|
135
135
|
### 明细行依据(`--basis`)
|
|
136
136
|
|
|
137
|
-
|
|
137
|
+
**不给 = 依据值选「表」**:用查询结果整表作为依据,设计器里显示为源表名(如 `产品清单(uf_clm_inv_content_51)`);每个赋值都是这张表里的一列(`type=10` + `originValue`)。写明细表通常用这个,也是设计器的默认形态。
|
|
138
|
+
|
|
139
|
+
只有确实需要按某个字段匹配/合并行时,才显式写 `明细表名=源表字段名`。这时设计器里的依据值是字段;当赋值源字段正好等于依据值时,显示为「依据值本身」。
|
|
138
140
|
|
|
139
141
|
```bash
|
|
142
|
+
# 字段级依据(可选,按该字段匹配行)
|
|
140
143
|
--basis "明细表1=测试字段C"
|
|
141
144
|
```
|
|
142
145
|
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# 附件上传与关联文档设置指南
|
|
2
|
+
|
|
3
|
+
表单「附件设置」页控制附件文件存在哪里、能传什么、以及由附件创建文档时落在哪个目录。设置分**通用配置**和**字段级覆盖**两层:字段级未显式覆盖的项继承通用配置。
|
|
4
|
+
|
|
5
|
+
## 三层对应关系
|
|
6
|
+
|
|
7
|
+
| 界面 | 通用配置 | 字段级覆盖 |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| 附件/图片上传目录 | `folderId` + `folderIdBrowserValue` | 同名字段;`folderSelectType` 区分固定目录 / 选项关联 |
|
|
10
|
+
| 关联文档 → 新建方式设置 | `addTypeConfig.types` | `docAddTypeConfig` |
|
|
11
|
+
| 关联文档 → 新建文档存储位置 | `fixedDirectory.folderValue` | `docFixedDirectoryConfig` |
|
|
12
|
+
| 上传格式 | `customLimitFormat` | 同名字段 |
|
|
13
|
+
| 大小限制 / 启用 / 提示语 | `attmentSizeLimit` / `enableState` / `displayTip` | 同名字段 |
|
|
14
|
+
|
|
15
|
+
两个目录不要混:
|
|
16
|
+
|
|
17
|
+
- **上传目录**决定附件文件存放位置;为空表示没有落点。
|
|
18
|
+
- **新建文档存储位置**决定由附件创建出来的文档放在哪个知识库目录。
|
|
19
|
+
- 附件"没有进文档"时,先确认**新建方式**和**新建文档存储位置**,再看上传目录;字段级覆盖成"选项关联但没有匹配目录"也会导致附件没有落点。
|
|
20
|
+
|
|
21
|
+
## 读取
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# 通用配置 + 字段级覆盖概要
|
|
25
|
+
e10-cli form attachment-setting get <appId> <objId>
|
|
26
|
+
|
|
27
|
+
# 单个附件字段的覆盖配置
|
|
28
|
+
e10-cli form attachment-setting get <appId> <objId> --field <字段名或fieldId>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 修改通用配置
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
e10-cli form attachment-setting set <appId> <objId> \
|
|
35
|
+
--upload-dir <目录ID> \
|
|
36
|
+
--doc-dir <目录ID> \
|
|
37
|
+
--doc-types html,WORD,markdown,UPLOAD \
|
|
38
|
+
--formats @doc,@image,@archive \
|
|
39
|
+
--max-size 20 \
|
|
40
|
+
--enable on --display-tip on
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
| 参数 | 说明 |
|
|
44
|
+
|---|---|
|
|
45
|
+
| `--upload-dir` | 附件/图片上传目录,写文档目录 ID 或唯一名称/路径;`none` 清空 |
|
|
46
|
+
| `--doc-dir` | 新建文档存储位置,写法同上;`none` 清空 |
|
|
47
|
+
| `--doc-types` | 新建方式,逗号分隔;`none` 清空。可选值用 `doc-types` 查询 |
|
|
48
|
+
| `--formats` | 上传格式:扩展名逗号串,或预设 `@doc` / `@image` / `@video` / `@audio` / `@archive`;`none` 清空 |
|
|
49
|
+
| `--max-size` | 单文件大小限制(MB),不能超过平台系统上限 |
|
|
50
|
+
| `--enable` | 启用状态 `on` / `off` |
|
|
51
|
+
| `--display-tip` | 是否显示提示语 `on` / `off` |
|
|
52
|
+
|
|
53
|
+
只提交显式给出的项:命令先读回现有配置,合并改动后整份保存,再回读比对;未给出的项保持原值。
|
|
54
|
+
|
|
55
|
+
## 修改字段级覆盖
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# 固定目录
|
|
59
|
+
e10-cli form attachment-setting set <appId> <objId> \
|
|
60
|
+
--field <附件字段> --upload-mode fixed --upload-dir <目录ID>
|
|
61
|
+
|
|
62
|
+
# 选项关联:上传目录跟随某个单选/下拉字段
|
|
63
|
+
e10-cli form attachment-setting set <appId> <objId> \
|
|
64
|
+
--field <附件字段> --upload-mode option --option-field <选项字段>
|
|
65
|
+
|
|
66
|
+
# 字段级的新建方式 / 存储位置 / 上传格式
|
|
67
|
+
e10-cli form attachment-setting set <appId> <objId> \
|
|
68
|
+
--field <附件字段> --doc-dir <目录ID> --doc-types WORD,markdown --formats @image
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
- `--field` 给了才是字段级覆盖;不给就是通用配置。
|
|
72
|
+
- 固定目录必须同时给 `--upload-dir`;选项关联必须同时给 `--option-field`。
|
|
73
|
+
- 字段级只写给出的项,未给出的项保持继承通用。
|
|
74
|
+
- `--max-size` / `--enable` / `--display-tip` 当前只支持通用配置。
|
|
75
|
+
|
|
76
|
+
## 查询目录与新建方式
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# 列出可用文档目录(系统知识库 + 公司/私有知识库)
|
|
80
|
+
e10-cli form attachment-setting folders
|
|
81
|
+
e10-cli form attachment-setting folders --search 合同
|
|
82
|
+
|
|
83
|
+
# 列出新建方式可选类型
|
|
84
|
+
e10-cli form attachment-setting doc-types
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
`folders` 输出目录 ID、标题和类型;`--upload-dir` / `--doc-dir` 可以直接写 ID,也可以写唯一名称或路径。名称匹配到多个时命令会报错并要求改用 ID。
|
|
88
|
+
|
|
89
|
+
## 注意事项
|
|
90
|
+
|
|
91
|
+
1. **目录 ID 是长数字**,按字符串处理,不要转成 Number。
|
|
92
|
+
2. **读回形状与写入形状不同**:读回的上传目录只在 `folderIdBrowserValue[0]` 里,写报文才带顶层 `folderId`;命令内部会补齐,不要手工拼报文。
|
|
93
|
+
3. **保存顺序**:先字段级列表,再通用配置;两条都成功后再回读校验。
|
|
94
|
+
4. **字段级覆盖优先于通用配置**:字段级把上传目录设成固定目录但没选具体目录,会覆盖掉通用的有效目录。
|
|
95
|
+
5. 命令在保存后会逐项回读;回读不一致会直接报错,不会静默成功。
|