weaver-e10-builder 1.5.7 → 1.5.9
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/app.d.ts.map +1 -1
- package/dist/commands/app.js +259 -0
- package/dist/commands/app.js.map +1 -1
- package/dist/commands/form-add-detail-table.d.ts.map +1 -1
- package/dist/commands/form-add-detail-table.js +13 -2
- package/dist/commands/form-add-detail-table.js.map +1 -1
- package/dist/commands/form-button.d.ts.map +1 -1
- package/dist/commands/form-button.js +6 -4
- package/dist/commands/form-button.js.map +1 -1
- package/dist/commands/form-formula-linkage.d.ts.map +1 -1
- package/dist/commands/form-formula-linkage.js +4 -4
- package/dist/commands/form-formula-linkage.js.map +1 -1
- package/dist/commands/form-list-filter.d.ts +3 -0
- package/dist/commands/form-list-filter.d.ts.map +1 -1
- package/dist/commands/form-list-filter.js +88 -24
- package/dist/commands/form-list-filter.js.map +1 -1
- package/dist/commands/form-list-search-group.d.ts.map +1 -1
- package/dist/commands/form-list-search-group.js +54 -64
- package/dist/commands/form-list-search-group.js.map +1 -1
- package/dist/commands/form-list-stats.d.ts.map +1 -1
- package/dist/commands/form-list-stats.js +29 -4
- package/dist/commands/form-list-stats.js.map +1 -1
- package/dist/commands/form-list-utils.d.ts +46 -1
- package/dist/commands/form-list-utils.d.ts.map +1 -1
- package/dist/commands/form-list-utils.js +140 -47
- package/dist/commands/form-list-utils.js.map +1 -1
- package/dist/commands/form-list.d.ts.map +1 -1
- package/dist/commands/form-list.js +141 -71
- package/dist/commands/form-list.js.map +1 -1
- package/dist/commands/form-message.d.ts +3 -0
- package/dist/commands/form-message.d.ts.map +1 -0
- package/dist/commands/form-message.js +341 -0
- package/dist/commands/form-message.js.map +1 -0
- package/dist/commands/form-view.d.ts.map +1 -1
- package/dist/commands/form-view.js +31 -4
- package/dist/commands/form-view.js.map +1 -1
- package/dist/commands/matrix.d.ts.map +1 -1
- package/dist/commands/matrix.js +80 -42
- package/dist/commands/matrix.js.map +1 -1
- package/dist/commands/org.d.ts.map +1 -1
- package/dist/commands/org.js +61 -0
- package/dist/commands/org.js.map +1 -1
- package/dist/commands/role.d.ts.map +1 -1
- package/dist/commands/role.js +69 -9
- package/dist/commands/role.js.map +1 -1
- package/dist/commands/wf-form.d.ts.map +1 -1
- package/dist/commands/wf-form.js +5 -5
- package/dist/commands/wf-form.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/context_preflight.d.ts +3 -3
- package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
- package/dist/services/actionflow/context_preflight.js +45 -24
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/context_provider.d.ts +7 -0
- package/dist/services/actionflow/context_provider.d.ts.map +1 -1
- package/dist/services/actionflow/context_provider.js +13 -1
- package/dist/services/actionflow/context_provider.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts +15 -0
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +401 -57
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/param_group_dto.d.ts.map +1 -1
- package/dist/services/actionflow/param_group_dto.js +17 -3
- package/dist/services/actionflow/param_group_dto.js.map +1 -1
- package/dist/services/actionflow/param_type.d.ts +14 -0
- package/dist/services/actionflow/param_type.d.ts.map +1 -0
- package/dist/services/actionflow/param_type.js +69 -0
- package/dist/services/actionflow/param_type.js.map +1 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +59 -41
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +65 -29
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/app-publish.d.ts +227 -0
- package/dist/services/app-publish.d.ts.map +1 -0
- package/dist/services/app-publish.js +403 -0
- package/dist/services/app-publish.js.map +1 -0
- package/dist/services/form-button-position.d.ts.map +1 -1
- package/dist/services/form-button-position.js +7 -1
- package/dist/services/form-button-position.js.map +1 -1
- package/dist/services/form-field-drop.d.ts.map +1 -1
- package/dist/services/form-field-drop.js +7 -0
- package/dist/services/form-field-drop.js.map +1 -1
- package/dist/services/form-formula-linkage.d.ts +24 -3
- package/dist/services/form-formula-linkage.d.ts.map +1 -1
- package/dist/services/form-formula-linkage.js +24 -5
- package/dist/services/form-formula-linkage.js.map +1 -1
- package/dist/services/form-list-search-group.d.ts +89 -0
- package/dist/services/form-list-search-group.d.ts.map +1 -0
- package/dist/services/form-list-search-group.js +260 -0
- package/dist/services/form-list-search-group.js.map +1 -0
- package/dist/services/form-list-search.d.ts +110 -0
- package/dist/services/form-list-search.d.ts.map +1 -0
- package/dist/services/form-list-search.js +231 -0
- package/dist/services/form-list-search.js.map +1 -0
- package/dist/services/form-list-stats.d.ts +21 -1
- package/dist/services/form-list-stats.d.ts.map +1 -1
- package/dist/services/form-list-stats.js +86 -12
- package/dist/services/form-list-stats.js.map +1 -1
- package/dist/services/form-message.d.ts +273 -0
- package/dist/services/form-message.d.ts.map +1 -0
- package/dist/services/form-message.js +575 -0
- package/dist/services/form-message.js.map +1 -0
- package/dist/services/form-sub-detail.d.ts.map +1 -1
- package/dist/services/form-sub-detail.js +5 -1
- package/dist/services/form-sub-detail.js.map +1 -1
- package/dist/services/form-view.d.ts +34 -2
- package/dist/services/form-view.d.ts.map +1 -1
- package/dist/services/form-view.js +74 -8
- package/dist/services/form-view.js.map +1 -1
- package/dist/services/matrix-fields.d.ts +42 -0
- package/dist/services/matrix-fields.d.ts.map +1 -0
- package/dist/services/matrix-fields.js +102 -0
- package/dist/services/matrix-fields.js.map +1 -0
- package/dist/services/org-browser.d.ts +60 -0
- package/dist/services/org-browser.d.ts.map +1 -0
- package/dist/services/org-browser.js +62 -0
- package/dist/services/org-browser.js.map +1 -0
- package/dist/services/quick-date-range.d.ts +22 -0
- package/dist/services/quick-date-range.d.ts.map +1 -0
- package/dist/services/quick-date-range.js +134 -0
- package/dist/services/quick-date-range.js.map +1 -0
- package/dist/services/role-member.d.ts +73 -2
- package/dist/services/role-member.d.ts.map +1 -1
- package/dist/services/role-member.js +141 -9
- package/dist/services/role-member.js.map +1 -1
- package/package.json +1 -1
- package/skill-docs/SKILL.md +281 -278
- package/skill-docs/_catalog.md +3 -0
- package/skill-docs/actionflows/SKILL.md +2 -1
- package/skill-docs/actionflows/references/components/message/InnerMQSend.md +6 -0
- package/skill-docs/references/app/guide-app-publish.md +92 -0
- package/skill-docs/references/common/guide-plan-template.md +148 -252
- package/skill-docs/references/common/map.md +2 -1
- package/skill-docs/references/common/ref-cli-commands.md +27 -8
- package/skill-docs/references/form/guide-form-message.md +57 -0
- package/skill-docs/references/form/guide-form-view.md +7 -2
- package/skill-docs/references/form/guide-formula-linkage.md +1 -1
- package/skill-docs/references/form/guide-list-stats.md +55 -2
- package/skill-docs/references/hrm/guide-matrix.md +30 -2
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
| 资源 | 使用场景与解决的问题 | 依赖与 plan 要点 | 能力边界与简要验收 | 详见 |
|
|
15
15
|
|---|---|---|---|---|
|
|
16
16
|
| 环境与组织身份 | 确定搭建目标和资源所属机构 | 写目标地址、profile、机构及跨环境引用 | 远程操作前确认鉴权;验收当前环境和组织对象 | [鉴权](../auth/guide-auth.md) |
|
|
17
|
-
| 应用 | 承载表单、流程、菜单及页面 |
|
|
17
|
+
| 应用 | 承载表单、流程、菜单及页面 | 写新建/复用、主应用和跨应用归属;交付时要走**启用 → 发布到前台** | 搭建期可先不发布;默认一个主应用;验收真实 appId 与名称 | [发布](../app/guide-app-publish.md)、[计划模板](guide-plan-template.md)、[命令](ref-cli-commands.md) |
|
|
18
18
|
| 角色 | 表达授权主体和流程操作者 | 写角色、所属机构及成员来源 | 角色创建与成员配置分别验收 | [命令](ref-cli-commands.md) |
|
|
19
19
|
| EB 表单 | 持久化业务记录和默认台账 | 写应用、字段、类型、布局及关联对象 | 验收 objId/formId、字段及默认台账 | [创建表单](../form/guide-create-form.md) |
|
|
20
20
|
| 明细表 | 承载一对多业务行 | 写所属主表、明细字段和层级 | 二级明细另写父子行标识;验收结构及挂载 | [二级明细](../form/guide-form-sub-detail.md) |
|
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
| 属性显隐联动 | 条件变化时改变字段显示、只读或必填 | 写条件、目标字段及状态 | 改的是属性而非字段值;验收条件切换 | [显隐联动](../form/guide-form-linkage.md) |
|
|
59
59
|
| 编号规则 | 生成带日期、代字或流水的业务编号 | 写编号字段、组成段、位数与作用范围 | 表单编号与流程编号分开;验收生成值 | [编号](../form/guide-form-serial-mark.md) |
|
|
60
60
|
| 查重校验 | 阻止或提示重复业务数据 | 写比较字段及期望行为 | 验收重复样例的提示/阻断 | [创建表单](../form/guide-create-form.md) |
|
|
61
|
+
| 消息提醒 | 表单数据新建 / 修改 / 删除时通知相关人 | 写触发时机、推送渠道、标题内容、落地页与提醒对象 | 提醒对象按名单/角色/组织解析;验收规则读回与启停状态 | [消息提醒](../form/guide-form-message.md) |
|
|
61
62
|
| 表单权限 | 控制新建、查看、编辑和删除 | 写主体、范围和权限类型 | 授权与视图筛选分开;验收实际授权 | [命令](ref-cli-commands.md) |
|
|
62
63
|
| 查看布局权限 | 给不同主体分配查看布局 | 写主体及 PC 查看布局 | 验收授权与布局绑定 | [视图权限](../form/guide-form-view-permission.md) |
|
|
63
64
|
|
|
@@ -42,6 +42,13 @@
|
|
|
42
42
|
| `e10-cli app read <appId>` | 查看应用**详情**(全量配置:名称/描述/简称/范围/目录/组织/发布状态)。`--json` 输出完整对象。走 `/app/info` |
|
|
43
43
|
| `e10-cli app edit <appId> [--name] [--desc] [--short-name]` | 编辑应用信息(至少指定一个写参数;内部先读 `/app/info` 再合并提交) |
|
|
44
44
|
| `e10-cli app delete <appId>` | 删除应用(软删除,可恢复;存在关联资源会提示先清理) |
|
|
45
|
+
| `e10-cli app enable <appId>` | 启用应用。`read` 里的 `publishEnabled`:1=已启用 / 2=已停用 / 0=从未启用 |
|
|
46
|
+
| `e10-cli app disable <appId>` | 停用应用。⚠ **会连带收回已发布到前台的入口** —— 不是「临时关一下、发布态还在」 |
|
|
47
|
+
| `e10-cli app publish <appId> [--name] [--description] [--category]` | 发布到**前台**(应用中心出现入口,地址 `/ebdapp/view/<appId>`)。需先 `enable`。`--category` 取汇报/协作/HRM/审批/数据协作/综合办公/CRM/自定义,缺省「自定义」。⚠ **每次发布生成新的前台 id**,取消后重发不沿用旧号 |
|
|
48
|
+
| `e10-cli app publish-info <appId> [--name] [--description] [--category]` | 改**前台那份**配置(不动应用本身的名称描述,那用 `app edit`)。需先 `publish`;不指定分类则沿用现有 |
|
|
49
|
+
| `e10-cli app unpublish <appId>` | 取消发布(收回前台入口)。⚠ **不可逆、无回收站**;重新发布是新入口。回读确认入口确实没了才报成功 |
|
|
50
|
+
| `e10-cli app lang get <appId>` | 查看应用名各语言译文 |
|
|
51
|
+
| `e10-cli app lang set <appId> [--zh] [--en]` | 设置应用名多语言。**简体中文那档就是应用名本身**;只给 `--en` 不会清空中文(内部先读回再整份写回)。改应用名(`app edit --name`)不动多语言配置 |
|
|
45
52
|
| `e10-cli form read <objId> [--app-id <appId>] [--out <file>]` | 读取表单字段。`--app-id` 含明细表字段+Select/RadioBox/CheckBox 选项、**并标注每个字段属于哪张物理表**(`· 物理表: 表1`,JSON 里是 `formTable` 键;多物理表见 `form physical-table list`);**输出里的字段名(文本那栏 / JSON 的 `fieldName`)就是字段标题** —— 与设计器「字段管理」里看到的是同一个值,它为空就说明标题没写进去;`--out fields.json` 写 UTF-8 JSON(推荐,机器可读)。旧版 `[dir]` 参数写 memo.md,已过时 |
|
|
46
53
|
| `e10-cli form read <objId> --app-id <appId> --out fields.json` | 读取字段含选项(Select/RadioBox/CheckBox 自动带 options)。**含明细表字段**,配动作流/联动拿明细 fieldId 用这个 |
|
|
47
54
|
| `e10-cli form list <appId>` | 列出应用下的所有表单 |
|
|
@@ -85,21 +92,28 @@
|
|
|
85
92
|
| `e10-cli form add-physical-field <objId> <appId> <formTableId> <字段名> <类型> [标题]` | 往**已有的附属物理表**里加字段。机制是 `saveFormFieldNew` + jsonObj 里的 `formTableId`(**不是**批量端点)。选项与 `form add-field` 同名同义,**两者共用同一份字段构造器**。⚠ **不碰布局** —— 字段不会自动进表单布局。每次写完**回读确认**(平台对形状不认的字段会回 200 却静默不落库) |
|
|
86
93
|
| `e10-cli form rename-physical-table <objId> <appId> <formTableId> --name <新名> --table-name <原表名>` | 改物理表**显示名**(同一个 `saveFormTable` 端点,带 `formTable.id` 即改名)。`--table-name` 要**原样回传** |
|
|
87
94
|
| `e10-cli form delete-physical-table <objId> <appId> <formTableId...>` | 删除物理表(`deleteFormTable`,可一次删多张)。⚠ **表里的字段一并删除,不可逆**。表 id 用 `form physical-table list` 查 |
|
|
88
|
-
| `e10-cli form list-search <objId> <appId> <listId> [--add
|
|
95
|
+
| `e10-cli form list-search <objId> <appId> <listId> [--add <字段名或fieldId...>] [--quick <...>] [--remove <fieldId>] [--search-mode 高级搜索\|筛选] [--prompt <提示语>] [--show-label\|--relation\|--other-conds\|--collapse\|--manual <on\|off>] [--fixed-cols <on\|off>] [--col-count <n>] [--hide-switch\|--hide-empty <on\|off>] [--add-group <名>] [--remove-group <名或id>] [--field <fieldId> --position 平铺\|更多下拉框 --group <名或id> --show-name <名> --default <值> --default-type <档> --operator <算子> --required <on\|off> --full-match <on\|off>] [--pc-only]` | 查看/配置台账**搜索**(面板设置 + 常用/快捷搜索字段 + 搜索分组)。`--add`/`--quick` 收**字段名或 fieldId**,已在里面就重建那条,候选与算子清单取自台账配置自己的字段表(**含系统字段**)。面板开关用 `on\|off` 传,**不传=保持原值**。⚠ `--hide-empty` 是反键(勾上 = 报文取 `"0"`)。字段的**默认条件关系**缺省取该字段算子清单第一项(不再写死 `like` —— 浏览框/选项各有各的清单)。搜索分组是**纯前端**的,`--add-group` 直接建、不调接口;`--remove-group` 会把引用它的字段置空。**自动保留移动端配置** |
|
|
89
96
|
| `e10-cli form list-sort <objId> <appId> <listId> [--field <fieldId...>] [--order ASC\|DESC] [--clear] [--pc-only]` | 查看/配置台账**排序**。`--field` 支持多个(按传入顺序多级排序,`--order` 对所有字段生效)、`--clear` 清除。**自动保留移动端配置** |
|
|
90
|
-
| `e10-cli form list-stats <objId> <appId> <listId> [--add <json或@文件>] [--remove <statId>] [--pc-only]` | 主表/明细顶部统计,sum/count/avg/max/min、条件及格式;明细 count 支持 `{ "type":"count", "subFormId":"..." }`。保存后回读、保护移动端;平台可能共享两端统计,输出 mobileStatistics。详见 `references/form/guide-list-stats.md` |
|
|
97
|
+
| `e10-cli form list-stats <objId> <appId> <listId> [--add <json或@文件>] [--remove <statId>] [--enable <statIds>] [--disable <statIds>] [--position <位置>] [--manual-load <on\|off>] [--filter-data <on\|off>] [--pc-only]` | 主表/明细顶部统计,sum/count/avg/max/min、条件及格式;明细 count 支持 `{ "type":"count", "subFormId":"..." }`;`enable:false` 建出来即停用,`--enable` / `--disable`(逗号分隔 id)改已有项。面板三项:`--position top\|topSimple\|topRight`(顶部显示 / 顶部简约显示 / 右上角显示,也收中文标签)、`--manual-load` 手动加载统计值、`--filter-data` 点击统计结果过滤列表数据 —— 三态 `on\|off`,**不传=不动**。统计条件里的日期区间可用快捷档 `quick`。保存后回读、保护移动端;平台可能共享两端统计,输出 mobileStatistics。详见 `references/form/guide-list-stats.md` |
|
|
91
98
|
| `e10-cli form list-stats detail <objId> <appId> <listId> <subFormId> [--fields <fieldId...>] [--name-prefix <文本>] [--pc-only]` | 为明细数值字段批量生成 sum 和一项子表 count;重复运行复用同名同配置项 |
|
|
92
|
-
| `e10-cli form list-filter <objId> <appId> <listId> [--add '<json
|
|
99
|
+
| `e10-cli form list-filter <objId> <appId> <listId> [--add '<json或@文件>'] [--replace '<json或@文件>'] [--remove <fieldId>] [--relation <and\|or>] [--clear] [--pc-only]` | 查看/配置**视图数据条件**(台账只显示满足条件的数据)。`--add` 是**叠加**(往现有条件上加,不整体覆盖),`--replace` 才整体覆盖。**支持 OR 与嵌套条件组**:条目里有 `conditions` 数组就是一层组,带 `relation: "and"\|"or"`,可任意嵌套 —— `'{"conditions":[{"relation":"or","conditions":[A,B]},C]}'` 就是 `A OR (B AND C)` 那类;`--relation` 设**顶层**关系(整层,不给=沿用现有)。`--remove <fieldId>` 按字段摘(该字段的**所有**条件都摘,组被摘空整组拿掉;只摘一条用 `--replace`)。条件写法:`{"fieldId":"...","func":"eq","value":"研发valueKey","text":"研发"}`(func: eq 等于 / notEq 不等于 / in 属于 / notIn 不属于 / like 包含 / notLike 不包含 / gt 大于 / lt 小于 / between 介于 / isNull 为空 / isNotNull 不为空,单选 Select 用 eq;value 填选项 valueKey、text 填显示名)。**日期区间的快捷档**:`{"fieldId":"创建时间id","quick":"今年"}` 代替 `func`/`value`,16 档(今天/昨天/明天/本周/上一周/下一周/本月/上一月/下一月/本季/上一季/下一季/今年/上半年/下半年/去年,或英文别名 `thisYear` / `lastWeek` …;周从**周一**起算)。⚠ 与设计器一样落成**静态**起止日期,不是运行期动态。`--clear` 清空。走 saveNListConfig config.filter(明文条件树,非独立接口),保存后回读核对条数。**自动保留移动端配置** |
|
|
93
100
|
| `e10-cli form list-event <objId> <appId> <listId> [--add-page '<json>'] [--add-field '<json>'] [--open-mode <模式>] [--modal-width <pct>] [--modal-height <pct>] [--win-size <pct>] [--clear] [--pc-only]` | 查看/配置**行事件**(点击行数据 NewPage 打开表单布局)。`--add-page '{"pageId":"1/<objId>","pageName":"新建数据","openMode":"右侧滑出"}'` 选页面方式(pageId 缺省 `1/<objId>` 新建布局,`0/<objId>`=显示布局)、`--add-field '{"urlFieldId":"字段id"}'` 选字段方式(URL取自行内字段值,urlFieldText/Type自动补)、`--clear` 清空。**打开方式** `--open-mode`(或在 JSON 里写 `openMode`):当前页面/新窗口/弹出窗口/右侧滑出(缺省)/右侧推出;弹出/滑出/推出 用 `--modal-width`/`--modal-height`(缺省 50%),滑出/推出 用 `--win-size`(缺省 100%)。走 saveNListConfig config.eventGroup(明文 JSON,config+mConfig 都写)。**自动保留移动端配置** |
|
|
94
101
|
| `e10-cli form list-group <objId> <appId> <listId> [--enable --group-field <fieldId> [--group-size N]] [--disable] [--pc-only]` | 查看/配置**启用分组**(台账按某字段分组聚合显示)。`--enable --group-field <分组字段id> [--group-size N 默认100]` 启用/换分组字段、`--disable` 禁用(保留 groupField/groupSize 仅 enable=false)。走 saveNListConfig config.enableGroup(对象,持久化,不走 layout/save LZW)。**自动保留移动端配置** |
|
|
95
102
|
| `e10-cli form list-hierarchy <objId> <appId> <listId> [--enable --parent-field <名称或fieldId> [--expand-level N]] [--disable] [--pc-only]` | 查看/配置**上下级树形展示**。上级字段必须是主表中单选、关联当前表单自身的 EBuilder 字段(常见名称“上级类型”);与普通 `list-group` 分组聚合不是同一能力。走 `saveNListConfig config.superiorField`,保存后独立回读并自动保留移动端配置 |
|
|
96
103
|
| `e10-cli form list-permission <objId> <appId> <listId> [--add-all] [--add-user <userId> --name <name>] [--add-role <roleId> [--name <name>]] [--add-matrix <矩阵id> --name <name>] [--share-level <n>] [--seclevel <min>-<max>] [--add-raw '<json>'] [--remove <id>] [--remove-all] [--clear]` | 查看/配置**台账视图权限**(谁能查看这个台账)。`--add-all` 所有人(自动把空 dataid 与 0 视为同一主体,避免重复)、`--add-user` 人员、`--add-role` 角色、`--add-matrix` 矩阵。`--remove <id>` 删除指定权限;`--remove-all` 删除全部“所有人”,与 `--add-all` 同用可清理重复后只保留一条;`--clear` 清空全部。保存走 `list/permission/save` 全量覆盖并回读。另支持共享级别和安全级别范围 |
|
|
97
|
-
| `e10-cli form list-search-group <objId> <appId> <listId> [--add
|
|
104
|
+
| `e10-cli form list-search-group <objId> <appId> <listId> [--add <字段名或fieldId>] [--position 0\|1] [--option-order default\|field] [--no-show-count] [--date-granularity <列表>] [--options <列表>] [--default-options <列表>] [--remove <fieldId>] [--clear] [--pc-only]` | 查看/配置**分类搜索**(台账顶部/下拉的分类筛选)。`--add` 收**字段名或 fieldId**,已在里面则按本次参数**重建那条**(改配置走它)。支持四类:**选项类**(Select/RadioBox/CheckBox)、**浏览框类**(Ebuilder/Browser/Employee/Department)、**日期类**(DateComponent)、**系统字段**(创建者/数据ID 这类)。`--position` 1=顶部(缺省)/0=下拉样式;`--option-order` 浏览框的选项排序(default 默认排序 / field 按字段属性设置);`--no-show-count` 关掉统计数字;`--date-granularity` 日期粒度(全年/半年/季度/月,缺省全要);`--options` / `--default-options` 控制选项类**哪些选项出现 / 哪些默认选中**。**仅主表字段,不支持明细(产品边界,传明细报错)**。走 saveNListConfig `config.searchConditions.groupFilters`(视图级明文) |
|
|
98
105
|
| `e10-cli form nlist apply <objId> <appId> <listId> <template>` | 配置**列表式视图**(台账)的显示列:模板是二维数组(行 → 列),列项可绑表单字段(`fieldId`)或做**自定义文本**列(不给 `fieldId`、给 `html`,里面用 `{{字段名}}` 插入表单字段)。自动读移动端槽位一并写入。`show` 查看当前配置。⚠ 仅对列表式(NList)生效,表格式用 `form table-view`。详见 `form/guide-list-custom-text.md` |
|
|
99
106
|
| `e10-cli form view list <objId> <appId> [--with-comps]` | 列出表单全部视图。`--with-comps` 额外拉每个视图布局 comps 数、标出空视图(NList 数据视图会显示「读取失败」,正常) |
|
|
100
|
-
| `e10-cli form view rename <objId> <appId> <viewId> <新名称>` |
|
|
107
|
+
| `e10-cli form view rename <objId> <appId> <viewId> <新名称>` | 修改视图名称并回读。**表单视图与台账各走一条接口**(台账走 `viewlist/buttonEvent` 的编辑动作,其余视图走 `layout/rename`),命令按类型自动选。保留原视图 ID 和配置。需求名称与默认名称不一致时统一用此命令,不新建重复视图 |
|
|
108
|
+
| `e10-cli form view delete <objId> <appId> <viewId>` | 删除视图(表单视图 / 台账 / 看板等,按类型自动选接口)。⚠ **不可逆、无回收站**。先回读定位目标,删完**再回读确认确实没了**才算成功 |
|
|
101
109
|
| `e10-cli form view create <objId> <appId> <视图名> [--type formView\|kanbanView\|calendarView\|mindMapView\|multiView] [--terminal PC\|MOBILE] [--layout-type FLOW\|EXCEL] [--detail <明细名>] [--sub-form-id <明细subFormId>]` | 给**已有表单**添加视图。`formView` 创建后是空布局,需续跑 `form view populate` 填字段;`kanbanView`/`calendarView`/`mindMapView`/`multiView` 建视图实体。**multiView 数据维度**:缺省主表;明细表维度用 `--detail <明细名>`(按名解析)或 `--sub-form-id <明细subFormId>`(直传),传值即明细维度(`subFormMain:true`)。**台账(NList)视图**用 `form table-view create`,不在此命令 |
|
|
102
110
|
| `e10-cli form view populate <objId> <appId> <viewId>` | 把已有字段按布局类型填入 formView。视图为空则整份填;**视图已有字段时只补缺**——只补视图里还没有的字段,已有组件的排版与属性一个不动(重跑幂等)。表单新增字段后要让它出现在某个视图里,也走这条 |
|
|
111
|
+
| `e10-cli form message list <appId> [--obj-id <objId>] [--keyword <kw>] [--page-size <n>] [--page-index <n>]` | 列出**消息提醒**(表单数据变动时提醒人)。不传 `--obj-id` 列出整个应用的;传了**在本地按表单收口**(平台那条过滤参数不生效)。详见 `references/form/guide-form-message.md` |
|
|
112
|
+
| `e10-cli form message get <appId> <triggerId> [--obj-id <objId>]` | 查看单条消息提醒,含**推送渠道**与提醒对象。渠道不在列表与详情返回里,命令额外读一次补上 |
|
|
113
|
+
| `e10-cli form message add <appId> <objId> --name <名称> [--type <类型>] [--channels <渠道>] [--title <标题>] [--content <内容>] [--pc-link <url>] [--mobile-link <url>] [--rule <spec>...] [--rule-json <json>...] [--disabled]` | 新建消息提醒。`--type` 新建/修改/删除(逗号分隔)或 `all`,缺省 `all`;`--channels` im/cloud-bridge/email/sms 或 `all`,**缺省只发 im**;`--rule` 写 `<类型>:<名字>` 或 `<类型>:<ID>,name=<名字>`,类型 user/dept/role/company(同名多条报错并列候选) |
|
|
114
|
+
| `e10-cli form message edit <appId> <triggerId> [...]` | 修改消息提醒(读→合并→回写,**没传的项保持原值**)。`--rule` 传了整份替换提醒对象、`--clear-rules` 清空、`--enable`/`--disable` 改启停。保存后回读确认 |
|
|
115
|
+
| `e10-cli form message delete <appId> <triggerId> [--obj-id <objId>]` | 删除消息提醒(不可逆) |
|
|
116
|
+
| `e10-cli form message enable \| disable <appId> <triggerId> [--obj-id <objId>]` | 启用 / 停用消息提醒。停用后不再推,配置保留 |
|
|
103
117
|
| `e10-cli form native <子命令>` | **原生表单引擎**(formdatareport/biaoge,非 Ebuilder;只有 formId、无 objId、无 appId)的命令组:`create <名称>` 建表、`read <formId>` 读字段、`add-field` / `add-detail-table` / `init` / `field-group`,以及 `list [--keyword]`(存活表单,名称模糊搜)、`trash`(回收站)、`delete <formId...>`(停用→检查→删除,进回收站,删后回读确认)。**注意与 EB 表单不通用**:URL 前缀 `/api/formdatareport/...`、body module `biaoge` 或 `formdatareport` 视接口而定 |
|
|
104
118
|
| `e10-cli form layout read <objId> [--view-id <id>]` | 读表单布局结构(comps 坐标/只读)。不传 `--view-id` 读默认布局,传则读指定视图 |
|
|
105
119
|
| `e10-cli form layout init <objId> [--style-template <名\|id>] [--view-id <id>] [--read-only] [--required] [--disable-edit] [--single-row]` | 初始化/重建表单布局(initLayout):**换样式模板** + 覆盖字段 readOnly/required/disableEdit/singleRow(不传这些开关则**保留字段已有设置**)。**⚠ 样式模板流式与表格式是两套**,同名不同 id,按表单实际布局类型实时查(传错套会直接报错并列出可用项;**平台对跨套 id 不报错、只会静默忽略,表现为"命令成功但样式没变"**)。缺省:流式=标准版、表格式=表格版。完整模板表见 `form/style-templates.md`。**建表时不能指定样式,只能建完再用本命令换** |
|
|
@@ -168,10 +182,12 @@
|
|
|
168
182
|
| `e10-cli role list` | 列出所有角色(树形结构,含层级关系) |
|
|
169
183
|
| `e10-cli role create <name>` | 创建角色,`--parent <id>` 指定父角色,`--code` 编码,`--remark` 备注 |
|
|
170
184
|
| `e10-cli role delete <ids...>` | 删除角色(可多个) |
|
|
171
|
-
| `e10-cli role add-member <roleId> <名字...> [--type <类型>]` |
|
|
172
|
-
| `e10-cli role member-list <roleId>` | 列出角色成员(人员 / 部门 / 分部 / 岗位 /
|
|
185
|
+
| `e10-cli role add-member <roleId> [<名字...>] [--id <id,id>] [--type <类型>]` | 添加角色成员。**两条入口二选一**:给**名字**(可多个,各自独立搜索)或给 **`--id`**(逗号分隔,直接指定对象)。同名多条时用 `--id` —— 名字入口**精确同名优先**,同名多条、或多条命中却没有同名项,一律**报错不取首条**(取首条会静默加错人),报错里会列出候选及其 id。两条入口**最终走同一个构造器**,平台收到的东西完全一致(`--id` 不是"只发个 id",而是先按 id 把对象读回来)。`--type` 取 `resource`(人员,缺省) / `department`(部门) / `subcompany`(分部) / `position`(岗位) / `channel`(**群组**) —— 这几项正是平台 `objectTypeFilter` 白名单里**可以逐个选**的对象,白名单另三项 `all`/`external`/`allExternal` 不是逐个选的对象,本命令不支持。五类走**同一个保存端点**,靠 `objType` 选各自数组(`obj_resource` / `obj_department` / `obj_subcompany` / `obj_position` / `obj_channel`)。`--sec-min/--sec-max`、`--is-seclevel` 覆盖安全级别(**这两个值随租户配置变**,缺省 `0`/`100` + false);`--department-attribute subordinate,partTimeStaff` 给部门/分部指定是否含下级 / 含兼职。**`--level` 设「成员级别」**(总部 / 分部 / 部门,缺省**总部**;本次添加的成员共用同一档);**`--org-scope` 设「分权范围」**(成员能维护哪些机构,缺省全部机构;可选 同部门 / 同部门的下级部门 / 同部门及下级部门 / 同分部 / 同分部的下级分部 / 同分部及下级分部)。`role member-list` 的输出会带 `级别=` / `范围=` 便于核对。**增量追加**,不会冲掉已有成员。⚠ `--id` 里**有不存在的 id 会直接报错**(平台对取不到的 id 是静默丢弃的,不核对就会"报成功但少加了一个")|
|
|
186
|
+
| `e10-cli role member-list <roleId>` | 列出角色成员(人员 / 部门 / 分部 / 岗位 / 群组,含成员级别与分权范围) |
|
|
173
187
|
| `e10-cli org department create <name> [--code <编号>] [--parent <父部门id>] [--subcompany <分部id>]` | 新建部门。**两步**:`organization/getForm?flag=department` 取保存模板(含平台**现生成**的 targetId)→ `organization/saveForm` 落组织树(扁平报文,背后的表单记录平台会自己补)。`--parent` 不传即顶层部门,挂在当前用户的分部下(分部自动解析,可用 `--subcompany` 覆盖)。⚠ 模板里 `parent` 是数组、`subcompany` 是对象数组,命令内部转成 id 字符串 —— **别拿模板直接发** |
|
|
188
|
+
| `e10-cli org department list [--name <关键词>] [--page <n>] [--page-size <n>]` | 列出部门(不传 `--name` 就是全部),带分页与总数。**用来拿 id 给别的命令当入参**(例如 `role add-member --id`)。走 `browser/data/department` —— ⚠ **这个端点的本相是「列表」不是「搜索」**:空搜索即返回全部并带 `current` / `total` 分页,`--name` 只是在它上面加一层名字过滤。输出第二列是全路径(如「营销部 / 前端逻辑编排 / 维森集团」),层级直接看得到 |
|
|
174
189
|
| `e10-cli org subcompany create <name> --parent <上级分部id> [--code <编号>]` | 新建**分部**(机构;部门挂在它下面)。与建部门**同一套接口、同一个报文**,只差 `getForm` 的 `flag` 与报文的 `type`。⚠ **必须给 `--parent`**(分部总得挂在某个分部下)。⚠ 「上级部门」与「所属分部」**至少填一个**,两者各填其中一半:建**部门**填「所属分部」、建**分部**填「上级分部」 |
|
|
190
|
+
| `e10-cli org subcompany list [--name <关键词>] [--page <n>] [--page-size <n>]` | 列出**分部**(不传 `--name` 就是全部)。与 `org department list` 同一套(走 `browser/data/subcompany`)。**建分部要的「上级分部 id」、角色成员要的分部 id 都从这里拿** —— 此前没有任何读分部的入口,只能去页面上抄 |
|
|
175
191
|
| `e10-cli org subcompany delete <id> [--parent <上级分部id>]` | 删除分部(平台同一个 `department/delete` 端点)。删除前会从组织树读该节点的 `count` 做**预警**(下面还有人时平台不允许删),但**不阻断** —— 最终以平台为准。⚠ 与部门删除一样是**软删** |
|
|
176
192
|
| `e10-cli org department edit <id> [--name] [--code] [--parent] [--disporder]` | 编辑部门:改名 / 改编号 / **移动父级** / 改排序。是「**读现状 → 改 → 写回**」:`organization/getForm?id=` 读回这个部门的**完整当前状态**(含 tenantKey / creator / datarank / createTime 等,全部原样回传,别自己造),改完再 `organization/saveForm`。⚠ 编辑报文与新建**形状不同**(认 `id`,没有 `targetId`/`formdata`/`recordId`,`advanceForm:false`),不能共用构造函数。命令会自动**回读确认**改名生效,静默失败会报错 |
|
|
177
193
|
| `e10-cli org department delete <id> [--parent <父部门id>] [--subcompany <机构id>]` | 删除部门。`--parent` 是该部门的**父**(顶层部门的父就是机构 id),不传按当前机构的上下文解析。⚠ 删除是**软删**(`isDelete: true`),删完用 `getForm?id=` 仍能读出来 —— 判存在与否要看 `isDelete` 字段,别看接口有没有返回 |
|
|
@@ -471,7 +487,7 @@ e10-cli report py preagg --report-id <id> [--app-id <id>]
|
|
|
471
487
|
|------|------|
|
|
472
488
|
| `e10-cli matrix list [--name <关键词>] [--enable-status 0\|1] [--org-id <id>]` | 查询矩阵列表(**含停用矩阵**,带状态;`--out` 写 JSON 文件) |
|
|
473
489
|
| `e10-cli matrix create <name> [选项]` | 新建矩阵(**新建即为启用**,要停用再跑 `matrix disable`)。所属机构的字段名由**分权状态**决定,CLI 自动判断并在缺省时用当前机构兜底,分权租户无需手写机构 |
|
|
474
|
-
| `e10-cli matrix config <id>` / `config-edit <id>` | 查看 / 编辑矩阵配置(条件字段 + 值字段)。**`config-edit` 的 `--condition` 可省略**,省略则沿用现有条件列(部门/分部矩阵的条件列是平台建矩阵时自动给的,不该手写;已有列要带 `id`,不带会被当成新列去取号);保存后按列 id
|
|
490
|
+
| `e10-cli matrix config <id>` / `config-edit <id>` | 查看 / 编辑矩阵配置(条件字段 + 值字段)。**`config-edit` 的 `--condition` 可省略**,省略则沿用现有条件列(部门/分部矩阵的条件列是平台建矩阵时自动给的,不该手写;已有列要带 `id`,不带会被当成新列去取号);保存后按列 id 回读比对。列的 `type` 只有 **7 档**:人员/部门/分部/岗位/客户/项目/自定义浏览框(`resource`/`department`/`subcompany`/`position`/`customer`/`project`/`customBrowser`)。**自定义浏览框列**用 `"browser":"<浏览框名>"` 指名,CLI 查回富对象再发;沿用老列时按读回的 `configDetailDto.dataId` 反查重发(这个列读写形状不同,写回读形状会被平台拒) |
|
|
475
491
|
| `e10-cli matrix enable <id>` / `disable <id>` | 启用 / 停用(停用后数据只读) |
|
|
476
492
|
| `e10-cli matrix update <id>` / `delete <ids...>` | 更新基本信息(名称/描述/同步方式)/ 删除(级联删配置、数据、维护者) |
|
|
477
493
|
| `e10-cli matrix data` | 矩阵数据维护(映射行)。`data save` 简写为 `[{rowId?, "<列configId>": ["<实体ID>"]}]`:**带 `rowId` 改那一行、不带为新增**(行 id 用 `data list` 拿;同步型矩阵的行 id 就是部门 id)。改行只给要改的列即可,CLI 自动补全其余列并回读比对 |
|
|
@@ -538,7 +554,10 @@ e10-cli role add-member <roleId> 张三 李四 # 人员
|
|
|
538
554
|
e10-cli role add-member <roleId> 营销三组 --type department # 部门
|
|
539
555
|
e10-cli role add-member <roleId> 总经理 --type position # 岗位
|
|
540
556
|
e10-cli role add-member <roleId> 华东分部 --type subcompany # 分部
|
|
557
|
+
e10-cli role add-member <roleId> 项目协作群 --type channel # 群组
|
|
558
|
+
e10-cli role add-member <roleId> --id <id,id> --type department # 同名多条时按 ID 加
|
|
541
559
|
e10-cli role member-list <roleId> # 读回成员
|
|
560
|
+
e10-cli org subcompany list # 查分部 id(建分部/加成员都要)
|
|
542
561
|
|
|
543
562
|
# 6. 创建流程
|
|
544
563
|
e10-cli workflow create <appId> <formObjId> 会议室审批
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# 消息提醒(表单数据提醒)
|
|
2
|
+
|
|
3
|
+
表单数据发生**新建 / 修改 / 删除**时,按配置把消息推给指定的人。位置在 **表单模型 → 消息提醒 → 表单数据提醒**(同一页面还有个「动作流提醒」页签,是另一条链路)。
|
|
4
|
+
|
|
5
|
+
一条提醒由这几样组成:**触发时机 + 推送渠道 + 标题内容 + 落地页 + 提醒对象**,整体可**启用 / 停用**。
|
|
6
|
+
|
|
7
|
+
## 命令
|
|
8
|
+
|
|
9
|
+
| 命令 | 用途 |
|
|
10
|
+
|---|---|
|
|
11
|
+
| `form message list <appId> [--obj-id <objId>] [--keyword <kw>]` | 列出提醒。不传 `--obj-id` 就是把整个应用的列出来 |
|
|
12
|
+
| `form message get <appId> <triggerId>` | 看单条,含**推送渠道**与提醒对象 |
|
|
13
|
+
| `form message add <appId> <objId> --name <名称>` | 新建 |
|
|
14
|
+
| `form message edit <appId> <triggerId> [...]` | 修改,没传的项保持原值 |
|
|
15
|
+
| `form message delete <appId> <triggerId>` | 删除(不可逆) |
|
|
16
|
+
| `form message enable \| disable <appId> <triggerId>` | 启用 / 停用 |
|
|
17
|
+
|
|
18
|
+
`get` / `edit` / `delete` / `enable` / `disable` 的 `--obj-id` 可以省 —— 不传会自动反查这条提醒挂在哪张表单上。
|
|
19
|
+
|
|
20
|
+
### `add` / `edit` 的选项
|
|
21
|
+
|
|
22
|
+
| 选项 | 说明 |
|
|
23
|
+
|---|---|
|
|
24
|
+
| `--type <类型>` | 触发时机:`新建` / `修改` / `删除`,逗号分隔,也可以写 `all`。缺省 `all` |
|
|
25
|
+
| `--channels <渠道>` | 推送渠道:`im`(站内)/ `cloud-bridge`(云桥)/ `email`(邮件)/ `sms`(短信),逗号分隔,也可以写 `all`。**缺省只发 `im`** —— 不会替你打开短信 |
|
|
26
|
+
| `--title` / `--content` | 提醒标题与内容。纯文本会自动包成富文本;不传时标题取提醒名称、内容按触发时机生成一句话(如「数据新建、修改了」) |
|
|
27
|
+
| `--pc-link` / `--mobile-link` | 点开提醒后的落地页,缺省是这条记录的表单卡片页 |
|
|
28
|
+
| `--rule <spec>` | 提醒对象,可重复(写法见下) |
|
|
29
|
+
| `--rule-json '<json>'` | 提醒对象原始报文,逃生口 |
|
|
30
|
+
| `--disabled` | 建成即停用(`edit` 用 `--enable` / `--disable`) |
|
|
31
|
+
|
|
32
|
+
## 提醒对象怎么写
|
|
33
|
+
|
|
34
|
+
四类:`user` 人员、`dept` 部门、`role` 角色、`company` 分部。
|
|
35
|
+
|
|
36
|
+
写法是 `<类型>:<值>[,name=<显示名>][,extra=0|1]`:
|
|
37
|
+
|
|
38
|
+
- **`<类型>:<名字>`** —— 工具按名字去查。**同名多条会报错并列出候选(带 ID)**,不会替你挑一条,免得配错人还看不出来。
|
|
39
|
+
- **`<类型>:<ID>,name=<名字>`** —— 名字有歧义、或手上只有 ID 时用这个:`<值>` 直接当 ID 用,不查。
|
|
40
|
+
|
|
41
|
+
`extra` 是组织范围上的附加项 —— 页面上部门 / 分部的提醒对象显示成「营销部:本部门含兼职人员」就是它。部门 / 分部缺省开、人员 / 角色缺省关,需要时显式覆盖。
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
form message add <appId> <objId> --name 有新数据了 \
|
|
45
|
+
--type 新建 --channels im,email \
|
|
46
|
+
--rule user:任来仪 \
|
|
47
|
+
--rule dept:营销部 \
|
|
48
|
+
--rule role:会议管理员
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## 几个容易踩的点
|
|
52
|
+
|
|
53
|
+
- **列表是应用级的**:这条接口按应用列,`--obj-id` 是命令在**本地按表单收口**(平台不认那个过滤参数,传了也照回全应用)。
|
|
54
|
+
- **渠道勾选要单条看**:列表和详情返回里都不带渠道,`form message get` 会额外读一次补上。
|
|
55
|
+
- **停用不等于删除**:`disable` 只是不再推,配置留着;`delete` 才是真的没了。
|
|
56
|
+
- **修改是整份保存**:`edit` 先读回现有配置再合并你改的项,**没传的项不会被清空**。提醒对象默认保持原样,要整份替换就传 `--rule`,要清空传 `--clear-rules`。
|
|
57
|
+
- **提醒名称**就是列表里显示的那个名字,建的时候起的 `--name` 别随手写。
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
|
|
14
14
|
1. 用 `form list-view <objId> <appId>` 查询已有列表,确认目标属于当前表单且用途符合需求,记录实际名称和 listId。存在多个候选时核对数据范围、权限和展示配置,不仅凭名称或第一条记录选择。
|
|
15
15
|
2. 普通列表需求直接在该 listId 上配置显示列、筛选、排序、统计和事件;需要整组配置显示列时用 `form list-columns <objId> <appId> <listId> --set @columns.json`。`table-view ensure` 只用于空列补齐,不负责视图选择或重命名。
|
|
16
|
-
3. 默认视图名称由平台随表单生成,不应机械沿用或统一去掉末尾“表”字。需求明确给出视图名称且与默认名称不一致时,使用 `form view rename`
|
|
16
|
+
3. 默认视图名称由平台随表单生成,不应机械沿用或统一去掉末尾“表”字。需求明确给出视图名称且与默认名称不一致时,使用 `form view rename` 修改已有视图并保留 ID;不要新建同用途视图代替改名。表单名、视图名和菜单名分别处理。例如表单“客户类型表”的视图要求为“客户类型”时,应把默认台账改名为“客户类型”,不能写成“同客户类型”。
|
|
17
|
+
多出来的视图用 `form view delete` 删掉(**不可逆、无回收站**),命令会在删完回读确认确实没了。
|
|
17
18
|
4. 只有明确需要“我的客户”“重点客户”等额外独立视图,或不同展示类型时,才进入新增流程。已有重复视图需先核对菜单、关联页签等引用及配置,不能自动删除。
|
|
18
19
|
|
|
19
20
|
例如:已建“客户信息表”,方案中的“客户信息视图”可由其默认台账满足,plan 标记“复用默认台账”,填写实际 listId 即可。
|
|
@@ -248,8 +249,12 @@ e10-cli form list-stats <objId> <appId> <listId> --remove <statId> # 平台 st
|
|
|
248
249
|
|
|
249
250
|
# 视图数据条件:台账只显示满足条件的数据(走 saveNListConfig config.filter,明文条件树,非独立接口——
|
|
250
251
|
# conditionEditor/saveOrUpdate 表单级不挂视图、saveBaseinfo 带 conditionData 都是错误端点)
|
|
251
|
-
# func 取值同条件统计(eq 等于 / neq 不等于 / in 属于 / notIn 不属于 / like 包含 / notLike 不包含 / gt 大于 / lt 小于 / range 区间 / isNull 为空 / isNotNull 不为空,单选 Select 用 eq);value 填选项 valueKey,text
|
|
252
|
+
# func 取值同条件统计(eq 等于 / neq 不等于 / in 属于 / notIn 不属于 / like 包含 / notLike 不包含 / gt 大于 / lt 小于 / range 区间 / isNull 为空 / isNotNull 不为空,单选 Select 用 eq);value 填选项 valueKey,text 填显示名
|
|
253
|
+
# --add 是**叠加**(往现有条件上加);要整体覆盖用 --replace。--relation 设顶层关系(不给=沿用现有)
|
|
252
254
|
e10-cli form list-filter <objId> <appId> <listId> --add '{"conditions":[{"fieldId":"项目类型fieldId","func":"eq","value":"研发valueKey","text":"研发"}]}'
|
|
255
|
+
# 嵌套条件组:条目里有 conditions 数组就是一层组(带 relation),可任意嵌套 → A OR (B AND C)
|
|
256
|
+
e10-cli form list-filter <objId> <appId> <listId> --replace '{"conditions":[{"fieldId":"Aid","func":"eq","value":"x"},{"relation":"and","conditions":[{"fieldId":"Bid","func":"eq","value":"y"},{"fieldId":"Cid","func":"gt","value":0}]}]}' --relation or
|
|
257
|
+
e10-cli form list-filter <objId> <appId> <listId> --remove 项目类型fieldId # 按字段摘(该字段所有条件都摘;组摘空整组拿掉)
|
|
253
258
|
e10-cli form list-filter <objId> <appId> <listId> --clear
|
|
254
259
|
|
|
255
260
|
# 行事件:点击行数据 NewPage 打开(走 saveNListConfig config.eventGroup,明文 JSON,config+mConfig 都要写)
|
|
@@ -195,7 +195,7 @@ wf-form formula-linkage delete <formId> --workflow-id <id> <linkageIds...>
|
|
|
195
195
|
| 位置参数 | `<appId> <objId>` | **`<formId>`** + `--workflow-id` |
|
|
196
196
|
| 联动端点 | `/api/ebuilder/form/form/linkage` | `/api/ebuilder/flow/form/linkage`(**不带 `?apid=`**) |
|
|
197
197
|
| `module` | `ebuilderform` | **`ebuildercard`** |
|
|
198
|
-
| 定位入参 | `customParam: {appId, objId}
|
|
198
|
+
| 定位入参 | `customParam: {appId, objId}`(读、存都发) | **顶层 `refId` = workflowId**;`customParam: {scene:'workflow'}` **只在读的时候发,保存报文里没有这个键** |
|
|
199
199
|
| 公式参数里的 `appId` | 有 | **没有这个键** |
|
|
200
200
|
| 不可作赋值目标的系统字段 | 21 项 | **30 项**(模块字段桶是 32 —— 差的两个见下) |
|
|
201
201
|
| 触发事件 | 10 个(字段组 5 + 表单组 5) | **17 个**(多一组「流程」事件) |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 顶部统计:主表与明细
|
|
2
2
|
|
|
3
|
-
`form list-stats`
|
|
3
|
+
`form list-stats` 配置已有台账视图的统计。支持 sum/count/avg/max/min,以及千分位、小数位、万/亿单位、条件统计;还能配**每条统计项的启用状态**与**统计面板三项**(显示位置 / 手动加载统计值 / 点击统计结果过滤列表数据)。来源表单 `objId`、应用 `appId`、目标视图 `listId` 与明细子表 `subFormId` 是不同 ID。
|
|
4
4
|
|
|
5
5
|
## 查询及单项配置
|
|
6
6
|
|
|
@@ -67,13 +67,66 @@ e10-cli form list-stats detail <objId> <appId> <listId> <subFormId> --fields <
|
|
|
67
67
|
|
|
68
68
|
重复运行时,已有同名同配置项会复用并返回 `unchanged/reused`,不会重复新增;同名不同配置则报错,应先查询并明确移除旧项。批量操作同样可以使用 `--pc-only`。
|
|
69
69
|
|
|
70
|
+
## 启用状态
|
|
71
|
+
|
|
72
|
+
每条统计项**单独**有启用状态。建的时候可以直接建成停用:
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{ "fieldId": "1310832033224278033", "type": "sum", "name": "备用金额", "enable": false }
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
改**已有**项的启用状态用 `--enable` / `--disable`(逗号分隔统计项 ID):
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
e10-cli form list-stats <objId> <appId> <listId> --disable 1310832033224278099
|
|
82
|
+
e10-cli form list-stats <objId> <appId> <listId> --enable 1310832033224278099
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
⚠ `--add` 遇到**同名同配置**已存在的项会复用,**不会**顺带改它的启用状态 —— 要改就用 `--enable` / `--disable`。已经是目标状态时跳过、不算改动(重复执行返回 `unchanged`)。
|
|
86
|
+
|
|
87
|
+
## 面板三项
|
|
88
|
+
|
|
89
|
+
显示位置、手动加载统计值、点击统计结果过滤列表数据是**每视图一份**的统计面板设置:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# 显示位置:顶部显示 / 顶部简约显示 / 右上角显示(也收中文标签)
|
|
93
|
+
e10-cli form list-stats <objId> <appId> <listId> --position topRight
|
|
94
|
+
# 手动加载统计值(开了就不进视图自动跑)
|
|
95
|
+
e10-cli form list-stats <objId> <appId> <listId> --manual-load on
|
|
96
|
+
# 点击统计结果过滤列表数据
|
|
97
|
+
e10-cli form list-stats <objId> <appId> <listId> --filter-data on
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
三项都是**三态**:`on|off`,**不传就是保持原值**,不会把没提到的开关覆盖掉。位置三档的取值 `top` / `topSimple` / `topRight` 对应界面上的「顶部显示 / 顶部简约显示 / 右上角显示」。
|
|
101
|
+
|
|
102
|
+
⚠ **别被报文骗了**:设计器保存请求里带的 `statisticsPositionSpan` 是**陈旧值** —— 切到「顶部简约显示」或「右上角显示」时,请求体里仍然发「顶部显示」。但服务端读回来会**按 `position` 重算**成对应文案(`topSimple` → 顶部简约显示、`topRight` → 右上角显示)。命令两边都写死,发出去的报文自洽,并在回读时同时核对位置与文案。
|
|
103
|
+
|
|
104
|
+
⚠ 面板三项只写 PC 侧,**不动移动端配置**。统计随 `listId` 共享,平台会把它同步到移动端读回;正因为如此,移动端一致性校验会把这四个面板键和 `statisticsList` 一起排除(它们的变化是共享造成的,不是「移动端其它配置被冲掉」)。
|
|
105
|
+
|
|
106
|
+
## 条件里的日期快捷档
|
|
107
|
+
|
|
108
|
+
统计条件的日期字段选「区间」时,可以直接用设计器那排快捷(今天 / 本周 / 今年 …,共 16 档)代替起止日期:
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"fieldId": "1310832033224278033",
|
|
113
|
+
"type": "sum",
|
|
114
|
+
"name": "今年付款额",
|
|
115
|
+
"conditions": [{ "fieldId": "<创建时间fieldId>", "quick": "今年" }]
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
`quick` 与 `func` / `value` / `valueField` **互斥**(快捷档本身已经决定了区间)。口径与设计器一致:起点为首日 `00:00:00`、终点为末日 `23:59:59`,**周从周一起算**。
|
|
120
|
+
|
|
121
|
+
⚠ 与设计器行为相同,落下来是**静态**起止日期(不是运行期动态刷新),每次执行按当时日期重算。中文标签在部分终端经命令行传参会遇到编码问题,此时可用英文别名(`thisYear` / `thisMonth` / `lastWeek` …)或 `--add @文件`。
|
|
122
|
+
|
|
70
123
|
## 保存与移动端
|
|
71
124
|
|
|
72
125
|
- 保留 PC 完整配置,仅更新 `listStatistics`;删除用 `operation: DELETE`,不能只从数组移除。
|
|
73
126
|
- 读取真实移动端配置作为 `mConfig` 原样回传。默认移动端读取失败就停止;仅明确不使用移动端时加 `--pc-only`。
|
|
74
127
|
- 保存后校验新增项、原有项、删除结果及移动端配置。`verified: true` 表示配置回读一致,不等于已经核对实际统计数值。
|
|
75
128
|
- **维森测试93当前平台按 listId 共享 PC/MOBILE 统计项。** 当保存前后两端统计集合均对应一致时,返回 `mobileStatistics: "shared"`;改统计会同时影响两端。移动端独有统计丢失或其他配置变化仍报错。不要承诺共享环境下“只改 PC 统计”。
|
|
76
|
-
- 比较移动端配置时,仅排除已实证每次读取会重建的按钮事件临时 ID
|
|
129
|
+
- 比较移动端配置时,仅排除已实证每次读取会重建的按钮事件临时 ID,以及**随 `listId` 共享的统计项与统计面板键**(`statisticsList` / `statisticsPosition` / `statisticsPositionSpan` / `statisticsManualLoad` / `enableStatisticsFilterData`);业务按钮 ID、动作内容、列配置等仍核对。`mobilePreserved` 表示移动端其余配置及独立统计得到保护。
|
|
77
130
|
- 如果提示“已保存,但回读不一致”,先查询统计和移动端状态,不直接重试新增。
|
|
78
131
|
|
|
79
132
|
## 计划与验收
|
|
@@ -167,6 +167,8 @@ e10-cli matrix config <matrixId>
|
|
|
167
167
|
|
|
168
168
|
## 字段类型枚举
|
|
169
169
|
|
|
170
|
+
设计器「字段维护」里就这 **7 档**:
|
|
171
|
+
|
|
170
172
|
| 中文 | API 值 |
|
|
171
173
|
|------|--------|
|
|
172
174
|
| 人员 | `resource` |
|
|
@@ -175,7 +177,32 @@ e10-cli matrix config <matrixId>
|
|
|
175
177
|
| 岗位 | `position` |
|
|
176
178
|
| 客户 | `customer` |
|
|
177
179
|
| 项目 | `project` |
|
|
178
|
-
|
|
|
180
|
+
| 自定义浏览框 | `customBrowser` |
|
|
181
|
+
|
|
182
|
+
## 自定义浏览框列
|
|
183
|
+
|
|
184
|
+
条件列和值列都可以是**自定义浏览框**。它的读写形状**不一样**,这点最容易踩:
|
|
185
|
+
|
|
186
|
+
| | 形状 |
|
|
187
|
+
|---|---|
|
|
188
|
+
| **写**(要发的) | `customBrowser:<浏览框富对象>` + `singleType` |
|
|
189
|
+
| **读**(回来的) | `browserModule` + `browserType` + `configDetailDto{dataId,singleType}` + `showConfig` |
|
|
190
|
+
|
|
191
|
+
平台**只认写的那个形状**:把读回来的三个键原样发回去,会被回「**自定义浏览框参数异常**」。所以:
|
|
192
|
+
|
|
193
|
+
- **新建**一列时用浏览框**名字**指名即可,CLI 会去查回富对象:
|
|
194
|
+
```json
|
|
195
|
+
{ "type": "自定义浏览框", "name": "这里是显示名字", "browser": "测试自定义浏览框", "singleType": 0 }
|
|
196
|
+
```
|
|
197
|
+
`browser` 也收完整对象(想直接贴 bean 就用 `customBrowser`)。名字**精确匹配**,同名多条或查不到都会报错并列候选。
|
|
198
|
+
- **沿用**老列(省略 `--condition`)时,CLI 会按读回里的 `configDetailDto.dataId` **把富对象反查回来再发** —— 不需要你补;也不要手写 `browserType` / `configDetailDto`,发了会被拒。
|
|
199
|
+
- `singleType`:`0` 多选 / `1` 单选(列底下那个「单选」勾选框)。自定义浏览框列默认 `0`。
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
e10-cli matrix config-edit <矩阵ID> \
|
|
203
|
+
--condition '[{"type":"部门","name":"所属门店"},{"type":"自定义浏览框","name":"合同","browser":"测试自定义浏览框"}]' \
|
|
204
|
+
--value '[{"type":"人员","name":"门店经理","singleType":1}]'
|
|
205
|
+
```
|
|
179
206
|
|
|
180
207
|
## config-edit 参数
|
|
181
208
|
|
|
@@ -194,7 +221,8 @@ e10-cli matrix config <matrixId>
|
|
|
194
221
|
}
|
|
195
222
|
```
|
|
196
223
|
|
|
197
|
-
- `singleType`: 0=多选, 1
|
|
224
|
+
- `singleType`: 0=多选, 1=单选。值字段必传,条件字段可省(省了沿用现有的)。条件列在平台上**本身是必填的**,空着下发会被拒(「请至少维护一个条件字段」)。自定义浏览框列默认 0。
|
|
225
|
+
- **自定义浏览框列**用 `"browser":"<浏览框名>"` 指名即可(CLI 查回富对象再发),详见上面「自定义浏览框列」一节。写 `browserType` / `configDetailDto` 这类**读回形状**会被平台拒。
|
|
198
226
|
- **已有的列要带 `id`**(从 `matrix config` 拿);不带 `id` 的会被当成新列去 `addField` 取号,**等于多建一列**。不带 id 但与现有列重名时 CLI 会告警。
|
|
199
227
|
- **列 id 必须属于该矩阵**。传了别的矩阵的列 id,平台只回一句「系统内部错误」(NPE),CLI 会抢先报错并点名是哪一列。
|
|
200
228
|
- ⚠ **保存是「按 id 合并」,不是整表替换**:没传的列**不会**被删(删列要走 `--value-del`)。所以「加一列」只传那一列就够了,不必把现有列全列一遍。
|