weaver-e10-builder 1.6.13 → 1.6.14

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 (185) hide show
  1. package/dist/cli-register.d.ts.map +1 -1
  2. package/dist/cli-register.js +14 -2
  3. package/dist/cli-register.js.map +1 -1
  4. package/dist/commands/actionflow.d.ts.map +1 -1
  5. package/dist/commands/actionflow.js +4 -0
  6. package/dist/commands/actionflow.js.map +1 -1
  7. package/dist/commands/designer-event.d.ts +3 -0
  8. package/dist/commands/designer-event.d.ts.map +1 -0
  9. package/dist/commands/designer-event.js +106 -0
  10. package/dist/commands/designer-event.js.map +1 -0
  11. package/dist/commands/designer-source.d.ts +3 -0
  12. package/dist/commands/designer-source.d.ts.map +1 -0
  13. package/dist/commands/designer-source.js +51 -0
  14. package/dist/commands/designer-source.js.map +1 -0
  15. package/dist/commands/form-browser-scope-rules.d.ts +2 -1
  16. package/dist/commands/form-browser-scope-rules.d.ts.map +1 -1
  17. package/dist/commands/form-browser-scope-rules.js +8 -4
  18. package/dist/commands/form-browser-scope-rules.js.map +1 -1
  19. package/dist/commands/form-browser-scope-tree.js +1 -1
  20. package/dist/commands/form-browser-scope-tree.js.map +1 -1
  21. package/dist/commands/form-field-linkage.d.ts.map +1 -1
  22. package/dist/commands/form-field-linkage.js +6 -11
  23. package/dist/commands/form-field-linkage.js.map +1 -1
  24. package/dist/commands/form-layout-detail-settings.d.ts +3 -0
  25. package/dist/commands/form-layout-detail-settings.d.ts.map +1 -0
  26. package/dist/commands/form-layout-detail-settings.js +36 -0
  27. package/dist/commands/form-layout-detail-settings.js.map +1 -0
  28. package/dist/commands/form-list-columns.d.ts.map +1 -1
  29. package/dist/commands/form-list-columns.js +178 -5
  30. package/dist/commands/form-list-columns.js.map +1 -1
  31. package/dist/commands/form-list-config.d.ts.map +1 -1
  32. package/dist/commands/form-list-config.js +81 -5
  33. package/dist/commands/form-list-config.js.map +1 -1
  34. package/dist/commands/form-list-event.d.ts.map +1 -1
  35. package/dist/commands/form-list-event.js +2 -1
  36. package/dist/commands/form-list-event.js.map +1 -1
  37. package/dist/commands/form-list-hierarchy.d.ts.map +1 -1
  38. package/dist/commands/form-list-hierarchy.js +2 -1
  39. package/dist/commands/form-list-hierarchy.js.map +1 -1
  40. package/dist/commands/form-list-utils.d.ts.map +1 -1
  41. package/dist/commands/form-list-utils.js +4 -3
  42. package/dist/commands/form-list-utils.js.map +1 -1
  43. package/dist/commands/form-list.d.ts.map +1 -1
  44. package/dist/commands/form-list.js +2 -1
  45. package/dist/commands/form-list.js.map +1 -1
  46. package/dist/commands/form-nlist.d.ts.map +1 -1
  47. package/dist/commands/form-nlist.js +77 -0
  48. package/dist/commands/form-nlist.js.map +1 -1
  49. package/dist/commands/form-permission.d.ts.map +1 -1
  50. package/dist/commands/form-permission.js +743 -77
  51. package/dist/commands/form-permission.js.map +1 -1
  52. package/dist/commands/page-combination.d.ts +3 -0
  53. package/dist/commands/page-combination.d.ts.map +1 -0
  54. package/dist/commands/page-combination.js +86 -0
  55. package/dist/commands/page-combination.js.map +1 -0
  56. package/dist/commands/page-permission.d.ts +3 -0
  57. package/dist/commands/page-permission.d.ts.map +1 -0
  58. package/dist/commands/page-permission.js +46 -0
  59. package/dist/commands/page-permission.js.map +1 -0
  60. package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
  61. package/dist/services/actionflow/components/action_eb_update.js +7 -0
  62. package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
  63. package/dist/services/actionflow/components/enquiry_form.js +1 -1
  64. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  65. package/dist/services/actionflow/components/form_data_builder.d.ts.map +1 -1
  66. package/dist/services/actionflow/components/form_data_builder.js +19 -3
  67. package/dist/services/actionflow/components/form_data_builder.js.map +1 -1
  68. package/dist/services/actionflow/context_discovery.d.ts +2 -0
  69. package/dist/services/actionflow/context_discovery.d.ts.map +1 -1
  70. package/dist/services/actionflow/context_discovery.js +32 -4
  71. package/dist/services/actionflow/context_discovery.js.map +1 -1
  72. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  73. package/dist/services/actionflow/context_preflight.js +20 -3
  74. package/dist/services/actionflow/context_preflight.js.map +1 -1
  75. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  76. package/dist/services/actionflow/formula_service.js +5 -8
  77. package/dist/services/actionflow/formula_service.js.map +1 -1
  78. package/dist/services/actionflow/preflight_service.d.ts +8 -0
  79. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  80. package/dist/services/actionflow/preflight_service.js +80 -13
  81. package/dist/services/actionflow/preflight_service.js.map +1 -1
  82. package/dist/services/actionflow/workflow_compiler.d.ts +1 -1
  83. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  84. package/dist/services/actionflow/workflow_compiler.js +27 -13
  85. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  86. package/dist/services/designer-event.d.ts +54 -0
  87. package/dist/services/designer-event.d.ts.map +1 -0
  88. package/dist/services/designer-event.js +312 -0
  89. package/dist/services/designer-event.js.map +1 -0
  90. package/dist/services/designer-source.d.ts +46 -0
  91. package/dist/services/designer-source.d.ts.map +1 -0
  92. package/dist/services/designer-source.js +145 -0
  93. package/dist/services/designer-source.js.map +1 -0
  94. package/dist/services/field-identity.d.ts +3 -0
  95. package/dist/services/field-identity.d.ts.map +1 -0
  96. package/dist/services/field-identity.js +8 -0
  97. package/dist/services/field-identity.js.map +1 -0
  98. package/dist/services/form-layout-detail-advanced.d.ts +10 -0
  99. package/dist/services/form-layout-detail-advanced.d.ts.map +1 -0
  100. package/dist/services/form-layout-detail-advanced.js +134 -0
  101. package/dist/services/form-layout-detail-advanced.js.map +1 -0
  102. package/dist/services/form-layout-detail-settings.d.ts +151 -0
  103. package/dist/services/form-layout-detail-settings.d.ts.map +1 -0
  104. package/dist/services/form-layout-detail-settings.js +131 -0
  105. package/dist/services/form-layout-detail-settings.js.map +1 -0
  106. package/dist/services/form-list-columns.d.ts.map +1 -1
  107. package/dist/services/form-list-columns.js +2 -1
  108. package/dist/services/form-list-columns.js.map +1 -1
  109. package/dist/services/form-list-config.d.ts +36 -1
  110. package/dist/services/form-list-config.d.ts.map +1 -1
  111. package/dist/services/form-list-config.js +252 -23
  112. package/dist/services/form-list-config.js.map +1 -1
  113. package/dist/services/form-list-fields.d.ts +3 -1
  114. package/dist/services/form-list-fields.d.ts.map +1 -1
  115. package/dist/services/form-list-fields.js +95 -16
  116. package/dist/services/form-list-fields.js.map +1 -1
  117. package/dist/services/form-list-search-group.d.ts.map +1 -1
  118. package/dist/services/form-list-search-group.js +3 -2
  119. package/dist/services/form-list-search-group.js.map +1 -1
  120. package/dist/services/form-list-search.d.ts.map +1 -1
  121. package/dist/services/form-list-search.js +3 -13
  122. package/dist/services/form-list-search.js.map +1 -1
  123. package/dist/services/form-list-table-fields.d.ts +58 -0
  124. package/dist/services/form-list-table-fields.d.ts.map +1 -0
  125. package/dist/services/form-list-table-fields.js +265 -0
  126. package/dist/services/form-list-table-fields.js.map +1 -0
  127. package/dist/services/form-nlist-field-attrs.d.ts +43 -0
  128. package/dist/services/form-nlist-field-attrs.d.ts.map +1 -0
  129. package/dist/services/form-nlist-field-attrs.js +170 -0
  130. package/dist/services/form-nlist-field-attrs.js.map +1 -0
  131. package/dist/services/form-nlist.d.ts.map +1 -1
  132. package/dist/services/form-nlist.js +4 -3
  133. package/dist/services/form-nlist.js.map +1 -1
  134. package/dist/services/form-permission-edit.d.ts +115 -0
  135. package/dist/services/form-permission-edit.d.ts.map +1 -0
  136. package/dist/services/form-permission-edit.js +552 -0
  137. package/dist/services/form-permission-edit.js.map +1 -0
  138. package/dist/services/matrix-condition.d.ts +0 -30
  139. package/dist/services/matrix-condition.d.ts.map +1 -1
  140. package/dist/services/matrix-condition.js +3 -2
  141. package/dist/services/matrix-condition.js.map +1 -1
  142. package/dist/services/page-combination.d.ts +58 -0
  143. package/dist/services/page-combination.d.ts.map +1 -0
  144. package/dist/services/page-combination.js +296 -0
  145. package/dist/services/page-combination.js.map +1 -0
  146. package/dist/services/page-permission.d.ts +74 -0
  147. package/dist/services/page-permission.d.ts.map +1 -0
  148. package/dist/services/page-permission.js +287 -0
  149. package/dist/services/page-permission.js.map +1 -0
  150. package/dist/services/report/verify.d.ts.map +1 -1
  151. package/dist/services/report/verify.js +1 -7
  152. package/dist/services/report/verify.js.map +1 -1
  153. package/package.json +1 -1
  154. package/skill-docs/SKILL.md +14 -4
  155. package/skill-docs/_catalog.md +7 -0
  156. package/skill-docs/actionflows/SKILL.md +7 -3
  157. package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +5 -1
  158. package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +5 -1
  159. package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +2 -0
  160. package/skill-docs/references/common/ref-cli-commands.md +20 -5
  161. package/skill-docs/references/ebuilder-designer/events/actions-integration.md +88 -0
  162. package/skill-docs/references/ebuilder-designer/events/actions-interaction.md +108 -0
  163. package/skill-docs/references/ebuilder-designer/events/guide-events.md +57 -0
  164. package/skill-docs/references/ebuilder-designer/guide-designer.md +296 -288
  165. package/skill-docs/references/ebuilder-designer/guide-page-combination.md +142 -0
  166. package/skill-docs/references/ebuilder-designer/guide-page-permission.md +145 -0
  167. package/skill-docs/references/ebuilder-designer/page-source/page-source-guide.md +129 -0
  168. package/skill-docs/references/ebuilder-designer/page-source/sdk-chart.md +49 -0
  169. package/skill-docs/references/ebuilder-designer/page-source/sdk-coverage.json +372 -0
  170. package/skill-docs/references/ebuilder-designer/page-source/sdk-date.md +54 -0
  171. package/skill-docs/references/ebuilder-designer/page-source/sdk-dialogs.md +279 -0
  172. package/skill-docs/references/ebuilder-designer/page-source/sdk-form.md +255 -0
  173. package/skill-docs/references/ebuilder-designer/page-source/sdk-foundations.md +401 -0
  174. package/skill-docs/references/ebuilder-designer/page-source/sdk-index.md +34 -0
  175. package/skill-docs/references/ebuilder-designer/page-source/sdk-list.md +297 -0
  176. package/skill-docs/references/ebuilder-designer/page-source/sdk-native.md +193 -0
  177. package/skill-docs/references/ebuilder-designer/page-source/sdk-navigation.md +156 -0
  178. package/skill-docs/references/ebuilder-designer/page-source/sdk-other.md +242 -0
  179. package/skill-docs/references/ebuilder-designer/page-source/sdk-refresh.md +132 -0
  180. package/skill-docs/references/ebuilder-designer/page-source/sdk-sql.md +39 -0
  181. package/skill-docs/references/form/guide-form-permission.md +185 -0
  182. package/skill-docs/references/form/guide-form-view.md +725 -624
  183. package/skill-docs/references/form/layout/detail-advanced.md +124 -0
  184. package/skill-docs/references/form/layout/detail-settings.md +106 -0
  185. package/skill-docs/references/form/layout/layout-overview.md +2 -0
@@ -0,0 +1,142 @@
1
+ # 组合页面
2
+
3
+ ## 整体功能介绍
4
+
5
+ 组合页面把多个页面组织到同一个带页签的页面中,通过切换页签查看不同内容。它负责聚合已有页面,不负责设计各目标页面内部的布局和组件。入口为 EB 应用内的“页面 → 组合页面”,与普通页面设计器分开。
6
+
7
+ 可以设置组合名称和说明,启用页头并设置标题、图标;添加多个页签,分别设置名称、目标、顺序、打开方式、携带参数及可见和禁用范围。页签可按人员或组织身份控制展示,不改变目标页面自身的访问权限。菜单负责提供前台入口;组合创建后不会自动发布菜单。
8
+
9
+ 使用 `page combination` 管理。当前命令提供 PC 组合的新建、编辑、查询、原生复制和删除;页签支持已有建模页面与表单新建/编辑布局目标。外部 URL 及其他系统地址类型暂不开放结构化写入,编辑已有组合时保留其原始配置。
10
+
11
+ ## 基础信息与页头
12
+
13
+ `name` 为管理名称,`description` 为说明。`header.enabled` 控制页头,`header.title` 设置显示标题,`header.icon` 设置图标描述。标题和组合名称分别维护。
14
+
15
+ ```bash
16
+ e10-cli page combination list --app-id <appId>
17
+ e10-cli page combination get <combinationId>
18
+ e10-cli page combination create --app-id <appId> --config @combination.json --apply
19
+ e10-cli page combination update <combinationId> --config @patch.json --apply
20
+ e10-cli page combination copy <combinationId> --name "副本名称" --apply
21
+ e10-cli page combination delete <combinationId> --apply
22
+ ```
23
+
24
+ 省略 `--apply` 只预览。创建和复制使用唯一名称,以便在平台仅返回 success 时识别真实新 ID。所有 ID 使用字符串。更新只传需要修改的属性,省略项保留。
25
+
26
+ ```json
27
+ {
28
+ "name":"业务工作台",
29
+ "description":"集中展示关联页面",
30
+ "header":{"enabled":true,"title":"业务工作台","icon":{"path":"#图标标识"}},
31
+ "tabs":[
32
+ {"name":"概览","target":{"type":"PAGE","id":"目标页面ID","name":"目标页面名称"},"openMode":1}
33
+ ]
34
+ }
35
+ ```
36
+
37
+ `tabs` 仅用于创建,已有页签通过专门命令维护。新建页签不隐式授权所有人,需按需添加可见范围。
38
+
39
+ ## 页签与跳转目标
40
+
41
+ 每个页签有独立 ID;修改和删除按 ID 定位,不按名称或位置定位。`name` 是页签显示文字,目标 `name` 是目标页面名称,两者独立。可指定目标所属 `appId`,省略时使用组合所在应用。
42
+
43
+ | target.type | target.id | 目标 |
44
+ |---|---|---|
45
+ | PAGE | 页面 ID | 已有建模页面 |
46
+ | LAYOUT | `1_<objId>` | 表单新建布局 |
47
+ | LAYOUT | `2_<objId>` | 表单编辑布局,需传记录 id |
48
+
49
+ 表单目标可用 `layout:{"id":"布局ID","name":"布局名称","clientType":"PC"}` 指定布局,`layout:null` 取消指定。使用真实目标、字段和布局元数据,不根据 ID 数值关系推算。
50
+
51
+ ```bash
52
+ e10-cli page combination tab add <combinationId> --config @tab.json --apply
53
+ e10-cli page combination tab update <combinationId> --tab <tabId> --config @patch.json --apply
54
+ e10-cli page combination tab remove <combinationId> --tab <tabId> --apply
55
+ e10-cli page combination tab order <combinationId> --config @order.json --apply
56
+ ```
57
+
58
+ 排序配置是包含全部页签 ID 的数组,数组顺序就是展示顺序。删除页签保留其他页签,组合至少保留一个页签。更换目标会清除原目标的参数及指定布局,避免把旧表字段和旧布局带入新目标;新参数和布局可在同一配置中重新提供。
59
+
60
+ ## 打开方式与携带参数
61
+
62
+ `openMode:1` 为默认窗口,`openMode:2` 为新窗口。本入口不使用弹窗、右侧滑出等其他入口的打开方式码表。
63
+
64
+ `params` 是参数数组,保存到平台的 `pageParam` JSON 字符串。`params:[]` 清空参数,省略则保留。值为字符串,可写固定文本或平台占位表达式,例如 `{userid}` 当前人员、`{date}` 当前日期;表达式仍使用 `type:"fixed"`,CLI 原样传递,由平台运行时解析。
65
+
66
+ | nameType | name | 用途 |
67
+ |---|---|---|
68
+ | fixed 或省略 | 参数名字符串 | 自定义命名参数 |
69
+ | FORMFIELDS | 目标字段对象,含 id、content、compType | 向目标表单字段传值 |
70
+ | dataId | `id` | 编辑布局的记录 ID |
71
+
72
+ ```json
73
+ {
74
+ "name":"填写信息",
75
+ "target":{"type":"LAYOUT","id":"1_表单objId","name":"新建布局名称"},
76
+ "openMode":2,
77
+ "params":[
78
+ {"name":"source","nameType":"fixed","value":"workbench","type":"fixed"},
79
+ {"name":{"id":"人员字段ID","content":"申请人","compType":"Employee"},"nameType":"FORMFIELDS","value":"{userid}","type":"fixed"}
80
+ ]
81
+ }
82
+ ```
83
+
84
+ 命令保留参数结构并回读,不替代目标页面的参数解析。URL/隐式传参方式没有在当前组合命令中开放切换,不套用其他页面跳转入口的字段。
85
+
86
+ ## 页签可见范围与禁用范围
87
+
88
+ 按每个页签分别配置。可见范围控制谁能看到该页签,禁用范围设置需要禁用的对象。隐藏页签不代替目标页面本身的访问控制;目标页面仍需独立配置页面权限。
89
+
90
+ ```bash
91
+ e10-cli page combination tab permission schema
92
+ e10-cli page combination tab permission get <combinationId> --tab <tabId> --scope use
93
+ e10-cli page combination tab permission get <combinationId> --tab <tabId> --scope disabled
94
+ e10-cli page combination tab permission add <combinationId> --tab <tabId> --scope use --config @subject.json --apply
95
+ e10-cli page combination tab permission remove <combinationId> --tab <tabId> --scope disabled --rule <shareKey> --apply
96
+ ```
97
+
98
+ 本入口使用组合页签自己的配置表和保存协议,不能用普通页面的码表代替。`schema` 从 `/api/cusapp/app/component/data/permission/form/query` 读取对象选项及属性,权限标识为 `sys_view`。当前 CLI 可结构化新增的主体与平台提供的主体分别如下:
99
+
100
+ | type | 平台主体 | CLI 结构化新增 |
101
+ |---|---|---|
102
+ | resource | 人员 | 支持,传 id |
103
+ | grade | 职级 | 尚未开放 |
104
+ | department | 部门 | 支持,传 id,可设置 attributes |
105
+ | subcompany | 分部 | 支持,传 id,可设置 attributes |
106
+ | role | 角色 | 支持,传 id、roleLevel |
107
+ | matrix | 矩阵 | 尚未开放;不能套用普通页面矩阵规则 |
108
+ | position | 岗位 | 支持,传 id、positionLevel 及对应机构,可设置 positionAttributes |
109
+ | all | 所有人 | 支持,不需要 id |
110
+ | external | 外部联系人 | 尚未开放 |
111
+ | allExternal | 所有外部人 | 支持,不需要 id |
112
+ | manager | 管理员账号 | 尚未开放 |
113
+
114
+ 其他已有主体仍可查询和保留。CLI 暂不开放所有人、所有外部人的禁用写入;此为命令支持范围,不据此判断平台选项是否允许。
115
+
116
+ | 配置属性 | 组合页签取值及含义 |
117
+ |---|---|
118
+ | roleLevel | `"4"` 所有级别;`"3"` 分部及总部;`"0"` 总部;`"1"` 分部;`"2"` 部门 |
119
+ | positionLevel | `"1"` 总部;`"2"` 指定分部,配 subcompanies;`"3"` 指定部门,配 departments |
120
+ | subcompanies | 分部 ID 字符串数组,仅用于岗位级别 2 |
121
+ | departments | 部门 ID 字符串数组,仅用于岗位级别 3 |
122
+ | attributes | 部门/分部属性数组:`subordinate` 包含下级、`partTimeStaff` 包含兼职;不提供 include_superior |
123
+ | positionAttributes | 岗位属性数组:`partTimeStaff` 包含兼职 |
124
+ | security | `{ "min":0,"max":100 }`,环境开启安全级别时方可显式设置 |
125
+
126
+ 属性数组传 `[]` 表示不选择相应属性。指定机构的岗位级别必须提供非空机构数组。角色和岗位级别虽与其他入口部分码值相同,仍由组合页签自己的 schema 校验。
127
+
128
+ ```json
129
+ {"type":"department","id":"部门ID","attributes":["subordinate","partTimeStaff"]}
130
+ ```
131
+
132
+ 新增报文的基础主体 `targetType` 使用本入口的数字码:人员 1、部门 2、分部 5、角色 10、岗位 1311、所有人 11、所有外部人 1101。平台读回可能按组织属性转换为扩展数字码,例如部门包含下级及兼职可读回 3002;不把基础码当成所有回读情况的完整枚举。这些原始字段由 CLI 编译,不要求用户混填,也不能直接套用其他入口的 USER/DEPT 等字符串表示。
133
+
134
+ 修改授权属性目前通过删除原规则、重新新增完成,不提供未经定义的原生 update。删除依据权限行 `shareKey`,不是人员 ID。创建组合后取得真实页签 ID,再添加权限。接口失败时先读实际状态,不直接重复新增。
135
+
136
+ 详情中的 `shareMap` 不能作为完整权限依据;查询命令会额外分页读取可见和禁用权限。编辑组合保留现有权限,原生复制通过每个页签的 `copyId` 由平台复制权限,复制后独立回读检查。
137
+
138
+ ## 保存与检查
139
+
140
+ 编辑前读取完整组合及页签权限,保存前检查并发变化,保存后核对标题、页签顺序、目标、打开方式、参数和已有页签权限。保存或复制结果不一致时停止并查看当前状态,避免重复创建。
141
+
142
+ 预览中检查页头和页签顺序,点击确认两种打开方式;在目标页面检查参数接收和字段预填。权限分别用范围内、范围外和禁用对象账号检查,复制后检查副本与原组合的目标及权限。配置回读通过与运行时效果通过分别记录。
@@ -0,0 +1,145 @@
1
+ # 页面使用权限与禁用范围
2
+
3
+ 本指南用于页面管理中的页面权限。使用 `page permission`,不要与菜单可见范围、组件权限、列表数据权限或表单权限混用。
4
+
5
+ ## 整体功能介绍
6
+
7
+ 页面权限用于设置一张页面的使用对象,通过使用范围和禁用范围控制页面访问资格。可以直接按人员和组织身份授权,也可以根据矩阵或 EB 表单中的业务记录取得授权对象,使页面使用范围随来源数据变化。
8
+
9
+ 使用范围包含通用授权和矩阵相关授权。通用授权可选择人员、部门、分部、角色、岗位、所有人及所有外部人,并按主体类型进一步配置组织层级、兼职、角色级别、岗位所属机构等属性。矩阵相关授权可选择来源、筛选记录,再从符合条件的记录中取人员或组织字段,并按本人、直接上级、直接下属等取值关系形成授权对象。禁用范围用于设置需要禁用的指定人员或组织对象。
10
+
11
+ CLI 支持查询页面现有权限、读取当前环境的可选配置,以及新增、修改、删除通用使用规则、禁用规则和矩阵使用规则。矩阵规则支持多个取值字段和嵌套的条件组合。修改单条规则时保留其他权限配置,默认预览,显式保存后回读检查配置。
12
+
13
+ 这部分配置控制页面的使用资格。菜单是否展示、页面内组件是否可用,以及列表可查看哪些数据,分别由菜单权限、组件权限和数据权限控制,需要按各自的设置维护。
14
+
15
+ ## 功能入口与配置内容
16
+
17
+ 在应用的页面管理中,针对目标页面打开权限设置,配置谁可以使用页面,以及哪些对象需要禁用。先确定目标页面,再选择授权方式:
18
+
19
+ - **通用使用范围**:直接选择人员、部门、分部、角色、岗位、所有人或所有外部人。适合授权对象可以通过组织身份直接表达的需求。
20
+ - **矩阵相关使用权限**:从矩阵或 EB 表单中筛选记录,再使用记录中的人员、部门等取值确定授权对象。适合“来源记录里的负责人可以使用页面”等随业务数据变化的需求。
21
+ - **禁用范围**:指定需要禁用的人员、部门、分部、角色或岗位。适合在使用范围之外进一步表达排除对象的需求;它不是撤销某一条使用授权规则的命令。撤销规则应删除对应使用规则。
22
+
23
+ 通用授权可以设置多条;矩阵授权也可以设置多条,每条分别选择来源、筛选条件及授权取值。页面权限负责页面使用资格;列表里能看到哪些业务数据,还需要配置列表数据权限。
24
+
25
+ 部门、分部可通过组织属性扩展授权范围,例如包含下级、上级或兼职人员;岗位可限定总部、指定分部或指定部门,并设置是否包含兼职;角色可按总部、分部、部门等角色级别限定范围。具体选项以当前环境提供的配置表为准。
26
+
27
+ ## 矩阵规则如何理解
28
+
29
+ 每条矩阵规则按“选择来源 → 筛选记录 → 从记录取授权对象”组织:
30
+
31
+ 1. **来源**决定在哪里查找记录,可选矩阵或 EB 表单。
32
+ 2. **条件**决定哪些来源记录参与授权,可使用固定值、来源表内字段比较及 and/or 组合。未配置条件表示不额外筛选来源记录,不等于对所有人授权。
33
+ 3. **取值字段**决定从符合条件的记录中取出哪些人员或组织对象。候选字段通过 `matrix fields` 查询。
34
+ 4. **取值关系**决定直接使用字段对应对象,还是使用人员的直接上级、直接下属等关系。可选关系取决于取值字段类型。
35
+
36
+ 条件字段用于筛选来源记录,取值字段用于确定授权对象,两者分别配置。修改条件会改变参与授权的记录范围,修改取值字段或取值关系会改变授权对象的获取方式。
37
+
38
+ ## 读取与保存
39
+
40
+ ```bash
41
+ e10 page permission get <pageId>
42
+ e10 page permission schema <pageId>
43
+ e10 page permission common add <pageId> --scope use --config @permission.json
44
+ e10 page permission common add <pageId> --scope use --config @permission.json --apply
45
+ e10 page permission common update <pageId> --scope use --rule <shareKey> --config @patch.json --apply
46
+ e10 page permission common remove <pageId> --scope disabled --rule <shareKey> --apply
47
+ ```
48
+
49
+ 命令前缀使用当前安装的 CLI 可执行文件;源码运行可用 `node --import tsx src/index.ts`。全局环境参数沿用 CLI 的 `--profile`。
50
+
51
+ 默认只预览,`--apply` 才保存。`--scope use` 是使用范围,`disabled` 是禁用范围。通用规则修改、删除使用 `get` 返回的 **shareKey**,不是人员、角色等主体 ID。修改配置只传需要变化的属性,未传属性保留。更换主体类型用删除后新增。
52
+
53
+ 平台保存接口整体替换通用使用范围、矩阵使用范围和禁用范围。命令先读取全量,合并单条变化,保存前再次检查并发变化,保存后独立回读比较授权语义;不会用单条配置覆盖其他规则。至少保留一条通用或矩阵使用规则。响应丢失或回读不一致时,先 `get` 检查真实状态,再决定后续操作,勿直接重复新增。
54
+
55
+ ## 通用主体与码表
56
+
57
+ 新增使用真实组织对象 ID,CLI 从浏览接口补齐对象名称及平台元数据。先读 `schema`,具体可选项以当前环境表单为准。
58
+
59
+ | type | 主体 | 配置 |
60
+ |---|---|---|
61
+ | resource | 人员 | `id` |
62
+ | department | 部门 | `id`、可选 `attributes` |
63
+ | subcompany | 分部 | `id`、可选 `attributes` |
64
+ | role | 角色 | `id`、`roleLevel` |
65
+ | position | 岗位 | `id`、`positionLevel`、对应机构及 `positionAttributes` |
66
+ | all | 所有人 | 不需要 id,仅用于使用范围 |
67
+ | allExternal | 所有外部人 | 不需要 id,仅用于使用范围 |
68
+
69
+ 指定外部人员不在本命令支持的主体中。
70
+
71
+ | 属性 | 值及含义 |
72
+ |---|---|
73
+ | roleLevel | `"4"` 所有级别;`"3"` 分部及总部;`"0"` 总部;`"1"` 分部;`"2"` 部门 |
74
+ | positionLevel | `"1"` 总部;`"2"` 指定分部,配 `subcompanies:["分部ID"]`;`"3"` 指定部门,配 `departments:["部门ID"]` |
75
+ | attributes | 数组:`subordinate` 含下级、`include_superior` 含上级、`partTimeStaff` 含兼职;适用部门及分部,以 schema 选项为准 |
76
+ | positionAttributes | 数组:`partTimeStaff` 含兼职 |
77
+ | security | `{ "min":0, "max":100 }`;仅当前环境开启安全级别时可显式设置 |
78
+
79
+ 数组传 `[]` 可关闭对应组织属性。机构数组必须与岗位级别匹配且非空。示例:
80
+
81
+ ```json
82
+ {"type":"position","id":"岗位ID","positionLevel":"2","subcompanies":["分部ID"],"positionAttributes":["partTimeStaff"]}
83
+ ```
84
+
85
+ ## 矩阵相关使用权限
86
+
87
+ 来源可选矩阵或 EB 表单,先查询条件列和取值列:
88
+
89
+ ```bash
90
+ e10 page permission matrix fields <pageId> --source-type matrix --source-id <matrixId>
91
+ e10 page permission matrix fields <pageId> --source-type ebuilder_form --source-id <objId>
92
+ e10 page permission matrix add <pageId> --config @matrix.json --apply
93
+ e10 page permission matrix update <pageId> --rule <matrixRuleId> --config @patch.json --apply
94
+ e10 page permission matrix remove <pageId> --rule <matrixRuleId> --apply
95
+ ```
96
+
97
+ 矩阵规则使用持久化的 **id**,不是 shareKey,也不是取值行的临时 ID。矩阵规则只配置使用权限。EB 来源 ID 是 objId,不是 formId。
98
+
99
+ ```json
100
+ {
101
+ "source":{"type":"ebuilder_form","id":"来源表单objId"},
102
+ "values":[{"field":"来源取值字段ID","relation":"SELF"}],
103
+ "condition":{
104
+ "logic":"and",
105
+ "children":[
106
+ {"field":"来源文本字段ID","operator":"eq","value":"公开"},
107
+ {"logic":"or","children":[
108
+ {"field":"来源说明字段ID","operator":"contains","value":"共享"},
109
+ {"field":"来源说明字段ID","operator":"empty"}
110
+ ]}
111
+ ]
112
+ }
113
+ }
114
+ ```
115
+
116
+ `values` 至少一项,字段必须来自 `fields` 返回的取值候选。关系默认 `SELF`。人员取值支持 `SELF` 本人、`IMMEDIATE_SUPERIOR` 直接上级、`IMMEDIATE_SUBORDINATE` 直接下属;创建者另支持 `DEPARTMENT` 本部门、`COMPANY` 所在分部;其他取值类型仅支持 `SELF`,表示直接使用来源值。
117
+
118
+ 更新时省略 `condition` 保留条件,`condition:null` 清空条件。更换来源必须同时重新提供 `values` 和 `condition`。删除整条规则用 `matrix remove`。
119
+
120
+ ## 条件树与右值
121
+
122
+ 组使用 `logic:and/or` 和非空 `children`,可以混合嵌套;叶子使用 `field`、`operator`。字段必须来自同一个来源的条件候选,不是当前页面字段。树最多 12 层、500 个节点。
123
+
124
+ | 输入操作符 | 保存码 | 含义 |
125
+ |---|---|---|
126
+ | eq | eq | 等于 |
127
+ | neq / notEq | neq | 不等于 |
128
+ | in / aggregate | aggregate | 属于 |
129
+ | notIn / unaggregate | unaggregate | 不属于 |
130
+ | isNull / empty | empty | 为空 |
131
+ | isNotNull / nempty | nempty | 不为空 |
132
+ | contains | contains | 包含,仅文本 |
133
+
134
+ 操作符别名只解决保存码转换,不表示每种字段均支持所有操作符。按左侧字段及设计器提供的条件能力选择,不要把包含与属于混淆。
135
+
136
+ 右值 `value` 和 `fieldRef` 二选一;为空、不为空均不传右值。
137
+
138
+ - 文本、多行文本、关联 EBuilder 的固定值:字符串 `value`。
139
+ - 部门、分部固定值:真实浏览对象数组 `value:[{"id":"机构ID","name":"机构名称"}]`,使用浏览接口取得完整对象。
140
+ - 来源表内文本字段之间比较:`fieldRef:"来源文本字段ID"`。两侧限文本或多行文本,不是页面变量,也不是其他表单字段。
141
+ - 其他字段的非空右值协议不在当前编译器支持范围内;候选中存在字段并不代表所有右值写法都可用。
142
+
143
+ ## 检查配置与实际访问
144
+
145
+ `get` 展示完整原始规则,并为矩阵规则展开 `values` 和 `condition`。保存后的回读检查能核对配置是否持久化;实际可访问性另用使用范围内、范围外及禁用范围中的账号打开目标页面检查,同时留意菜单自身的可见权限。测试矩阵时准备满足和不满足条件的来源记录,检查取值对应人员的页面访问结果。
@@ -0,0 +1,129 @@
1
+ # 普通页面源码 JS/CSS
2
+
3
+ ## 整体功能介绍
4
+
5
+ 页面源码是普通页面设计器中的 JavaScript 和 CSS 配置,随该页面的终端布局保存。JavaScript 可读取页面参数、当前用户、变量和数据集,监听页面及组件事件,操作列表勾选、表单组件字段、图表配置,执行交互反馈、跳转、刷新及其他页面 SDK 操作。CSS 用于页面与组件的颜色、文字、边框、间距及响应式展示。
6
+
7
+ 入口为普通页面设计器的“源码”。它与表单设计器布局源码、表单级 ecode、独立 ecode 工程分别维护。这里使用页面 SDK;不能把表单 JSSDK、组合页签的打开方式或独立工程的路由注册规则直接套入。
8
+
9
+ 内置布局、组件属性、数据源和事件配置可表达的行为,优先使用相应配置;源码补充条件逻辑、跨组件交互、公开扩展接口和局部样式。源码不能绕过数据权限或替代服务端业务校验。普通页面中的表单组件接口也不等同于表单布局中的 formSdk。
10
+
11
+ ## 文档组织与接口发现
12
+
13
+ 完整接口见 [SDK 分类索引](sdk-index.md),共 11 类、61 条接口条目;每条保留用途、参数、返回值和示例。按分类查阅,不需要先读整本手册。
14
+
15
+ | 内容 | 参考 |
16
+ |---|---|
17
+ | 当前页面、参数、用户、变量、数据集、实例、事件、函数导出 | [基础](sdk-foundations.md) |
18
+ | 消息、确认、输入、菜单、加载遮罩 | [弹框](sdk-dialogs.md) |
19
+ | 页面打开方式、参数、返回、客户端窗口 | [页面跳转](sdk-navigation.md) |
20
+ | 日期、时间 | [日期](sdk-date.md) |
21
+ | 整页、当前组件、上一页面组件刷新 | [刷新](sdk-refresh.md) |
22
+ | 扫码、定位、屏幕、微信、拨号、消息 | [原生能力](sdk-native.md) |
23
+ | SQL 数据集调用 | [SQL](sdk-sql.md) |
24
+ | 页面内表单组件的字段读写、计算与属性 | [表单组件](sdk-form.md) |
25
+ | 列表当前数据、勾选、数据源、插件 | [列表组件](sdk-list.md) |
26
+ | 图表 ECharts 配置 | [图表组件](sdk-chart.md) |
27
+ | ESB、群组、侧栏、截图、组件布局 | [其他](sdk-other.md) |
28
+
29
+ 可直接从当前环境读取接口目录,不依赖浏览器文档导出:
30
+
31
+ ```bash
32
+ e10-cli designer source sdk --query getCompInstance
33
+ e10-cli designer source sdk --id <接口ID>
34
+ e10-cli designer source sdk --out page-sdk.json
35
+ ```
36
+
37
+ 对应读取接口为 `/api/ebuilder/designer/function/listWithCategory?module=EB_PAGE&isCustom=false`。目录提供方法,不代表任意组件、终端和客户端均支持该方法;具体以各条说明及对象实际方法为准。
38
+
39
+ ## JS 执行上下文
40
+
41
+ 在编辑区写业务源码,CLI 编译成页面加载模块,并在加载函数内提供 `ebSdk` 和 `pageSdk`:
42
+
43
+ ```javascript
44
+ // ebSdk 是 window.ebuilderSDK;pageSdk 对应运行时 pageId。
45
+ pageSdk.on('pageLoad', function () {
46
+ console.info('页面已就绪', pageSdk.getPageId());
47
+ });
48
+ ```
49
+
50
+ 不需要在业务源码中再定义运行入口 load 或拼 JSONP 外壳。PC 与 MOBILE 各有独立源码;命令每次只修改指定终端,保存时完整保留其他终端。页面 ID、布局 ID、组件 ID、表单字段 ID 是不同标识。
51
+
52
+ ### 事件与加载时机
53
+
54
+ | 事件 | 含义 | 调用 |
55
+ |---|---|---|
56
+ | pageLoad | 页面及组件异步渲染完成 | `pageSdk.on('pageLoad', callback)` |
57
+ | compBeforeMount | 指定组件挂载前 | `pageSdk.on('compBeforeMount', compId, callback)` |
58
+ | compLoad | 指定组件加载及内部异步数据查询完成 | `pageSdk.on('compLoad', compId, callback)` |
59
+ | formLoad_<中间表组件ID> | 页面内对应表单组件加载 | `pageSdk.on('formLoad_' + formCompId, callback)` |
60
+
61
+ 需要组件数据时使用相应加载事件或异步回调。不要在 compLoad 中无条件刷新同一个组件;数据变化后的业务刷新与初始化注册分开处理。只使用文档列出的事件,未定义的销毁或取消订阅接口不凭名称猜测。定时器、DOM 事件、重复注册应自行控制;涉及无法可靠清理的全局副作用时,优先用组件生命周期或事件配置。
62
+
63
+ ### 组件实例与导出方法
64
+
65
+ ```javascript
66
+ var listCompId = '目标列表组件ID';
67
+ pageSdk.on('compLoad', listCompId, function (comp) {
68
+ if (comp && typeof comp.getCheckedIds === 'function') {
69
+ console.info('选中记录', comp.getCheckedIds());
70
+ }
71
+ });
72
+
73
+ export function readSelection() {
74
+ var comp = pageSdk.getCompInstance(listCompId);
75
+ return comp && typeof comp.getCheckedIds === 'function'
76
+ ? comp.getCheckedIds() : [];
77
+ }
78
+ ```
79
+
80
+ 组件事件脚本可通过 `pageSdk.getExports().readSelection()` 调用源码导出方法。函数调用时读取最新数据,避免把初始化时的数据当成长期缓存。`load` 为运行入口保留导出名。
81
+
82
+ 普通 JS、函数导出及平台提供模块的 import 由本地 Babel 编译;编译通过只说明语法可处理,不保证平台具备被导入的依赖。外部 npm 包不能因 import 可编译就直接使用。列表插件的 JSX、模块 import 和注册时机按 [列表接口](sdk-list.md) 编写,不将插件注册替换成 pageLoad 之后的普通 DOM 操作。`asyncFn` 只属于事件动作 JavaScript,不是源码加载函数的通用异步入口。
83
+
84
+ ## CSS 编写与作用范围
85
+
86
+ CSS 编辑区写规则本身,不写 `<style>` 标签。源码 CSS 与 `designer css write` 的组件自由样式分别保存:源码在布局 `sourceCode.ecode.css`,组件自由 CSS 在组件样式配置中。修改其中一份不会自动更新另一份。
87
+
88
+ 当前源码命令按输入原样保存 CSS,并将同一内容作为编译内容;不猜测设计器自动作用域算法,也不自动拼页面 ID。应显式限定到实际页面或组件节点,例如:
89
+
90
+ ```css
91
+ /* 将示例数字替换为真实页面 ID。页面根自身与其后代分别书写。 */
92
+ #ebpage_1000000000000000001 {
93
+ background-color: #eef5ff;
94
+ }
95
+ #ebpage_1000000000000000001 .business-summary {
96
+ padding: 12px;
97
+ border: 1px solid #d5e3f5;
98
+ border-radius: 8px;
99
+ }
100
+ ```
101
+
102
+ 页面根选择器与后代选择器不同:`#ebpage_ID` 可以选中根本身,`#ebpage_ID .class` 只选根下的后代。组件 DOM/类名先用 `designer dom` 和当前组件结构查询;不沿用表单 `.weapp-form-*` 类名。自定义类需真实挂在节点上,单写 CSS 不会创建该类。
103
+
104
+ 背景填充覆盖元素的内容与 padding 区域;子节点有自己的背景时会遮挡父背景。不要为填满颜色随意放大宽度或把字段外围布局 padding 全部清零。浮层可能挂在页面容器外,应通过组件专用浮层属性或独立唯一类控制,不用 body/:root 覆盖整个平台。CSS 仅改变视觉,不能代替权限、真实必填校验或数据过滤。
105
+
106
+ CSS 检查只检查字符串、注释、括号闭合,不是完整 CSS 语义校验,也不保证选择器匹配或浏览器支持。样式效果在实际预览/业务入口检查。
107
+
108
+ ## 读取、检查、保存、清空
109
+
110
+ ```bash
111
+ e10-cli designer source read <pageId> --terminal pc --out before-source.json
112
+ e10-cli designer source check --js-file page.js --css-file page.css
113
+ e10-cli designer source set <pageId> --terminal pc --js-file page.js --css-file page.css
114
+ e10-cli designer source set <pageId> --terminal pc --js-file page.js --css-file page.css --apply
115
+ e10-cli designer source set <pageId> --terminal pc --clear-js --apply
116
+ e10-cli designer source set <pageId> --terminal mobile --clear-css --apply
117
+ ```
118
+
119
+ 默认只预览;`--apply` 实际保存。JS/CSS 各自整段替换,未提供的语言保留,清空用显式选项。检查命令离线执行,不需要认证;保存命令需认证。文件使用 UTF-8。
120
+
121
+ CLI 同时维护编辑源码 content 与运行产物 compiledContent;只改 content 不足以更新运行效果。JS 包含运行模块、源码导出和当前页面 SDK;CSS 使用显式选择器。ecode 使用 encodeURI(JSON.stringify(...)) 保存,不能换成 encodeURIComponent;保留其余 sourceCode、cssCache、组件、布局及其他终端数据。
122
+
123
+ 页面被设计器锁定时停止,先处理对应编辑会话,不自动解除他人锁。保存前重新读取布局及编辑状态,有并发变化则停止;保存使用完整布局数组的 LZW 压缩报文,保存后独立检查源码、编译结果、组件及布局,成功后释放本次保存产生的软锁。平台返回的 ecodeId/ecodeVersion 由平台维护,不通过手工数字猜测。响应丢失或回读不一致时先查询真实状态,不盲目重复写入。
124
+
125
+ 原 `designer save` 中“sourceCode 保持原值”的要求适用于常规组件布局修改;只有本源码命令有意修改所选终端的 sourceCode.ecode,其他部分仍保持原值。
126
+
127
+ ## 检查效果
128
+
129
+ 重新读取源码,核对指定终端的 JS、CSS 及编译内容;再打开真实页面,检查 pageLoad/compLoad 的执行、组件数据、导出方法及目标样式。编译、保存回读、页面运行分别判断,不将控制台出现一条日志视为所有 SDK 方法均通过。客户端原生能力、SQL 数据集、ESB、表单组件、列表插件各需相应资源和宿主,不能用没有这些资源的空页声称覆盖测试。
@@ -0,0 +1,49 @@
1
+ # 图表组件相关
2
+
3
+ 使用 compBeforeMount 为目标图表设置 option。示例为柱状图配置,图表类型、数据与坐标轴应按目标组件调整;SDK 方法不保证所有图表组件都接受所有 ECharts 选项。
4
+
5
+ 查询本类接口:`e10-cli designer source sdk --query <方法名>`。
6
+
7
+ ## 接口目录
8
+
9
+ - `compInstance.setChartOption();`:使用此接口可以给对应的图表组件设置自定义的ECharts属性
10
+
11
+ ## compInstance.setChartOption();
12
+
13
+ 使用此接口可以给对应的图表组件设置自定义的ECharts属性
14
+
15
+ ### 参数说明
16
+
17
+ | 参数 | 类型 | 必需 | 说明 |
18
+ | --------- | -------- | ---- | ---------------------------------------- |
19
+ | option | object | `是` | echarts配置选项(https://echarts.apache.org/zh/option.html#title) |
20
+
21
+ ### 返回值
22
+
23
+ 无
24
+
25
+ ### 示例
26
+
27
+ ```javascript
28
+ const chartOption = {
29
+ tooltip: {},
30
+ xAxis: { type: 'category', data: ['一月', '二月'] },
31
+ yAxis: { type: 'value' },
32
+ series: [{ type: 'bar', data: [12, 18] }]
33
+ };
34
+
35
+ /*一、为单个组件设置ECharts option*/
36
+ pageSdk.on("compBeforeMount", "组件ID_1", function(comp){
37
+ /*在组件加载前的事件中,通过组件对象设置图表ECharts option*/
38
+ comp.setChartOption(chartOption);
39
+ });
40
+
41
+ /*二、为多个组件设置相同的ECharts option*/
42
+ const compIds = ["组件ID_1","组件ID_2"];
43
+ compIds.forEach((compId) => {
44
+ pageSdk.on("compBeforeMount", compId, function(comp){
45
+ /*在组件加载前的事件中,通过组件对象设置图表ECharts option*/
46
+ comp.setChartOption(chartOption);
47
+ });
48
+ });
49
+ ```