weaver-e10-builder 1.6.10 → 1.6.12
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/form-browser-definition.d.ts.map +1 -1
- package/dist/commands/form-browser-definition.js +108 -7
- package/dist/commands/form-browser-definition.js.map +1 -1
- package/dist/commands/form-browser-scope-rules.d.ts +27 -0
- package/dist/commands/form-browser-scope-rules.d.ts.map +1 -0
- package/dist/commands/form-browser-scope-rules.js +141 -0
- package/dist/commands/form-browser-scope-rules.js.map +1 -0
- package/dist/commands/form-browser-scope-tree.d.ts +14 -0
- package/dist/commands/form-browser-scope-tree.d.ts.map +1 -0
- package/dist/commands/form-browser-scope-tree.js +115 -0
- package/dist/commands/form-browser-scope-tree.js.map +1 -0
- package/dist/commands/matrix-maintainer.d.ts +3 -0
- package/dist/commands/matrix-maintainer.d.ts.map +1 -0
- package/dist/commands/matrix-maintainer.js +117 -0
- package/dist/commands/matrix-maintainer.js.map +1 -0
- package/dist/commands/matrix.d.ts.map +1 -1
- package/dist/commands/matrix.js +2 -0
- package/dist/commands/matrix.js.map +1 -1
- package/dist/commands/report-admin.d.ts.map +1 -1
- package/dist/commands/report-admin.js +378 -2
- package/dist/commands/report-admin.js.map +1 -1
- package/dist/commands/report-validate.d.ts.map +1 -1
- package/dist/commands/report-validate.js +1102 -3
- package/dist/commands/report-validate.js.map +1 -1
- package/dist/commands/report.d.ts.map +1 -1
- package/dist/commands/report.js +341 -3
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/role.d.ts.map +1 -1
- package/dist/commands/role.js +354 -0
- package/dist/commands/role.js.map +1 -1
- package/dist/commands/special.d.ts.map +1 -1
- package/dist/commands/special.js +67 -31
- package/dist/commands/special.js.map +1 -1
- package/dist/commands/wf-form.d.ts.map +1 -1
- package/dist/commands/wf-form.js +1 -121
- package/dist/commands/wf-form.js.map +1 -1
- package/dist/commands/workflow-after-submit-comment.d.ts +3 -0
- package/dist/commands/workflow-after-submit-comment.d.ts.map +1 -0
- package/dist/commands/workflow-after-submit-comment.js +56 -0
- package/dist/commands/workflow-after-submit-comment.js.map +1 -0
- package/dist/commands/workflow-layout-components.d.ts +3 -0
- package/dist/commands/workflow-layout-components.d.ts.map +1 -0
- package/dist/commands/workflow-layout-components.js +36 -0
- package/dist/commands/workflow-layout-components.js.map +1 -0
- package/dist/commands/workflow-node-batch.d.ts +3 -0
- package/dist/commands/workflow-node-batch.d.ts.map +1 -0
- package/dist/commands/workflow-node-batch.js +136 -0
- package/dist/commands/workflow-node-batch.js.map +1 -0
- package/dist/commands/workflow-node-opinion.d.ts +3 -0
- package/dist/commands/workflow-node-opinion.d.ts.map +1 -0
- package/dist/commands/workflow-node-opinion.js +51 -0
- package/dist/commands/workflow-node-opinion.js.map +1 -0
- package/dist/commands/workflow-node-reject.js +1 -1
- package/dist/commands/workflow-node-reject.js.map +1 -1
- package/dist/commands/workflow-node.d.ts.map +1 -1
- package/dist/commands/workflow-node.js +4 -3
- package/dist/commands/workflow-node.js.map +1 -1
- package/dist/commands/workflow-setting.d.ts.map +1 -1
- package/dist/commands/workflow-setting.js +2 -67
- package/dist/commands/workflow-setting.js.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/components/send_message.d.ts.map +1 -1
- package/dist/services/actionflow/components/send_message.js +8 -3
- package/dist/services/actionflow/components/send_message.js.map +1 -1
- package/dist/services/actionflow/context_preflight.js +1 -1
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts +1 -0
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +107 -31
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +4 -1
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/form-layout-describe.d.ts.map +1 -1
- package/dist/services/form-layout-describe.js +3 -2
- package/dist/services/form-layout-describe.js.map +1 -1
- package/dist/services/form-layout-document.d.ts.map +1 -1
- package/dist/services/form-layout-document.js +2 -1
- package/dist/services/form-layout-document.js.map +1 -1
- package/dist/services/matrix-maintainer.d.ts +27 -0
- package/dist/services/matrix-maintainer.d.ts.map +1 -0
- package/dist/services/matrix-maintainer.js +142 -0
- package/dist/services/matrix-maintainer.js.map +1 -0
- package/dist/services/report/blueprint.d.ts +109 -0
- package/dist/services/report/blueprint.d.ts.map +1 -0
- package/dist/services/report/blueprint.js +322 -0
- package/dist/services/report/blueprint.js.map +1 -0
- package/dist/services/report/build.d.ts.map +1 -1
- package/dist/services/report/build.js +8 -3
- package/dist/services/report/build.js.map +1 -1
- package/dist/services/report/card.d.ts +65 -0
- package/dist/services/report/card.d.ts.map +1 -0
- package/dist/services/report/card.js +151 -0
- package/dist/services/report/card.js.map +1 -0
- package/dist/services/report/copy-health.d.ts +31 -0
- package/dist/services/report/copy-health.d.ts.map +1 -0
- package/dist/services/report/copy-health.js +87 -0
- package/dist/services/report/copy-health.js.map +1 -0
- package/dist/services/report/dataset-heal.d.ts +64 -0
- package/dist/services/report/dataset-heal.d.ts.map +1 -0
- package/dist/services/report/dataset-heal.js +89 -0
- package/dist/services/report/dataset-heal.js.map +1 -0
- package/dist/services/report/dataset-ids.d.ts +70 -0
- package/dist/services/report/dataset-ids.d.ts.map +1 -0
- package/dist/services/report/dataset-ids.js +149 -0
- package/dist/services/report/dataset-ids.js.map +1 -0
- package/dist/services/report/dataset.d.ts.map +1 -1
- package/dist/services/report/dataset.js +3 -1
- package/dist/services/report/dataset.js.map +1 -1
- package/dist/services/report/drill.d.ts +74 -0
- package/dist/services/report/drill.d.ts.map +1 -0
- package/dist/services/report/drill.js +259 -0
- package/dist/services/report/drill.js.map +1 -0
- package/dist/services/report/empty-dataset.d.ts +51 -0
- package/dist/services/report/empty-dataset.d.ts.map +1 -0
- package/dist/services/report/empty-dataset.js +213 -0
- package/dist/services/report/empty-dataset.js.map +1 -0
- package/dist/services/report/field-binding.d.ts +75 -0
- package/dist/services/report/field-binding.d.ts.map +1 -0
- package/dist/services/report/field-binding.js +160 -0
- package/dist/services/report/field-binding.js.map +1 -0
- package/dist/services/report/forms.d.ts +32 -0
- package/dist/services/report/forms.d.ts.map +1 -1
- package/dist/services/report/forms.js +90 -0
- package/dist/services/report/forms.js.map +1 -1
- package/dist/services/report/formula-parent.d.ts +25 -0
- package/dist/services/report/formula-parent.d.ts.map +1 -0
- package/dist/services/report/formula-parent.js +116 -0
- package/dist/services/report/formula-parent.js.map +1 -0
- package/dist/services/report/locate.d.ts +40 -0
- package/dist/services/report/locate.d.ts.map +1 -0
- package/dist/services/report/locate.js +122 -0
- package/dist/services/report/locate.js.map +1 -0
- package/dist/services/report/reports.d.ts +4 -0
- package/dist/services/report/reports.d.ts.map +1 -1
- package/dist/services/report/reports.js +4 -2
- package/dist/services/report/reports.js.map +1 -1
- package/dist/services/report/scene.d.ts +22 -0
- package/dist/services/report/scene.d.ts.map +1 -0
- package/dist/services/report/scene.js +145 -0
- package/dist/services/report/scene.js.map +1 -0
- package/dist/services/report/types.d.ts +28 -0
- package/dist/services/report/types.d.ts.map +1 -1
- package/dist/services/report/verify.d.ts +24 -0
- package/dist/services/report/verify.d.ts.map +1 -1
- package/dist/services/report/verify.js +115 -2
- package/dist/services/report/verify.js.map +1 -1
- package/dist/services/report/workbook.d.ts +12 -1
- package/dist/services/report/workbook.d.ts.map +1 -1
- package/dist/services/report/workbook.js +107 -8
- package/dist/services/report/workbook.js.map +1 -1
- package/dist/services/role-function-permission.d.ts +12 -0
- package/dist/services/role-function-permission.d.ts.map +1 -0
- package/dist/services/role-function-permission.js +46 -0
- package/dist/services/role-function-permission.js.map +1 -0
- package/dist/services/special-layout.d.ts +113 -0
- package/dist/services/special-layout.d.ts.map +1 -0
- package/dist/services/special-layout.js +178 -0
- package/dist/services/special-layout.js.map +1 -0
- package/dist/services/workflow-after-submit-comment.d.ts +20 -0
- package/dist/services/workflow-after-submit-comment.d.ts.map +1 -0
- package/dist/services/workflow-after-submit-comment.js +81 -0
- package/dist/services/workflow-after-submit-comment.js.map +1 -0
- package/dist/services/workflow-base-settings.d.ts +1 -10
- package/dist/services/workflow-base-settings.d.ts.map +1 -1
- package/dist/services/workflow-field-permission-route.d.ts +15 -41
- package/dist/services/workflow-field-permission-route.d.ts.map +1 -1
- package/dist/services/workflow-field-permission-route.js +23 -8
- package/dist/services/workflow-field-permission-route.js.map +1 -1
- package/dist/services/workflow-layout-components.d.ts +52 -0
- package/dist/services/workflow-layout-components.d.ts.map +1 -0
- package/dist/services/workflow-layout-components.js +66 -0
- package/dist/services/workflow-layout-components.js.map +1 -0
- package/dist/services/workflow-layout-draft.d.ts +49 -0
- package/dist/services/workflow-layout-draft.d.ts.map +1 -0
- package/dist/services/workflow-layout-draft.js +98 -0
- package/dist/services/workflow-layout-draft.js.map +1 -0
- package/dist/services/workflow-node-batch-spec.d.ts +122 -0
- package/dist/services/workflow-node-batch-spec.d.ts.map +1 -0
- package/dist/services/workflow-node-batch-spec.js +496 -0
- package/dist/services/workflow-node-batch-spec.js.map +1 -0
- package/dist/services/workflow-node-batch.d.ts +73 -0
- package/dist/services/workflow-node-batch.d.ts.map +1 -0
- package/dist/services/workflow-node-batch.js +328 -0
- package/dist/services/workflow-node-batch.js.map +1 -0
- package/dist/services/workflow-node-opinion-description.d.ts +12 -0
- package/dist/services/workflow-node-opinion-description.d.ts.map +1 -0
- package/dist/services/workflow-node-opinion-description.js +52 -0
- package/dist/services/workflow-node-opinion-description.js.map +1 -0
- package/dist/services/workflow-node-opinion-layout.d.ts +22 -0
- package/dist/services/workflow-node-opinion-layout.d.ts.map +1 -0
- package/dist/services/workflow-node-opinion-layout.js +113 -0
- package/dist/services/workflow-node-opinion-layout.js.map +1 -0
- package/dist/services/workflow-node-opinion-range.d.ts +21 -0
- package/dist/services/workflow-node-opinion-range.d.ts.map +1 -0
- package/dist/services/workflow-node-opinion-range.js +74 -0
- package/dist/services/workflow-node-opinion-range.js.map +1 -0
- package/dist/services/workflow-node-opinion.d.ts +43 -0
- package/dist/services/workflow-node-opinion.d.ts.map +1 -0
- package/dist/services/workflow-node-opinion.js +198 -0
- package/dist/services/workflow-node-opinion.js.map +1 -0
- package/dist/services/workflow-opinion-settings.d.ts +14 -0
- package/dist/services/workflow-opinion-settings.d.ts.map +1 -1
- package/dist/services/workflow-opinion-settings.js +18 -2
- package/dist/services/workflow-opinion-settings.js.map +1 -1
- package/ecodecmd/src/build.js +36 -12
- package/package.json +1 -1
- package/skill-docs/SKILL.md +164 -162
- package/skill-docs/_catalog.md +13 -3
- package/skill-docs/actionflows/references/components/message/SendMessage.md +32 -30
- package/skill-docs/references/coding/guide-page-code.md +95 -0
- package/skill-docs/references/common/guide-plan-template.md +4 -1
- package/skill-docs/references/common/map.md +28 -4
- package/skill-docs/references/common/ref-cli-commands.md +14 -4
- package/skill-docs/references/components/ref-component-common.md +98 -0
- package/skill-docs/references/form/guide-browser-definition.md +2 -219
- package/skill-docs/references/form/guide-browser-scope.md +285 -0
- package/skill-docs/references/form/guide-create-form.md +1 -1
- package/skill-docs/references/hrm/guide-matrix.md +276 -245
- package/skill-docs/references/hrm/guide-role.md +77 -0
- package/skill-docs/references/report/add-dataset-registration-guide.md +44 -22
- package/skill-docs/references/report/advanced-crosstab-tree-guide.md +82 -0
- package/skill-docs/references/report/ai-report-workflow.md +100 -100
- package/skill-docs/references/report/api-auth-headers.md +129 -0
- package/skill-docs/references/report/api-report-build-fast-path.md +274 -275
- package/skill-docs/references/report/app-datasource-lookup-guide.md +230 -230
- package/skill-docs/references/report/branch-scene-guide.md +293 -0
- package/skill-docs/references/report/build-resilience-guide.md +99 -0
- package/skill-docs/references/report/card-report-guide.md +110 -0
- package/skill-docs/references/report/cell-config-echo-guide.md +44 -9
- package/skill-docs/references/report/cell-transform-guide.md +9 -9
- package/skill-docs/references/report/column-split-report-guide.md +96 -0
- package/skill-docs/references/report/condition-format-guide.md +49 -24
- package/skill-docs/references/report/cross-dataset-filter-guide.md +180 -69
- package/skill-docs/references/report/crosstab-raw-workbook-guide.md +265 -0
- package/skill-docs/references/report/dataset-query-filter-guide.md +231 -235
- package/skill-docs/references/report/dataset-sidebar-ops-guide.md +75 -34
- package/skill-docs/references/report/dataset-table-field-contract-guide.md +196 -46
- package/skill-docs/references/report/datasource-metadata-guide.md +128 -119
- package/skill-docs/references/report/datasource-selection-and-parent-filter-guide.md +183 -148
- package/skill-docs/references/report/date-range-query-reference.md +97 -102
- package/skill-docs/references/report/default-header-style-guide.md +8 -8
- package/skill-docs/references/report/designer-blank-prevention-guide.md +8 -8
- package/skill-docs/references/report/dossier-report-guide.md +69 -0
- package/skill-docs/references/report/drilldown-report-guide.md +75 -0
- package/skill-docs/references/report/event-hreflink-guide.md +55 -47
- package/skill-docs/references/report/expansion-block-parent-config-guide.md +208 -0
- package/skill-docs/references/report/failure-cleanup-and-nonblocking-guide.md +183 -0
- package/skill-docs/references/report/field-bind-exact-match-guide.md +208 -208
- package/skill-docs/references/report/financial-stats-report-guide.md +89 -0
- package/skill-docs/references/report/formula-cell-api-guide.md +325 -258
- package/skill-docs/references/report/golden-case-summary-sheet.md +200 -0
- package/skill-docs/references/report/guide-report-build.md +6 -1
- package/skill-docs/references/report/hidden-row-and-header-merge-guide.md +10 -10
- package/skill-docs/references/report/layout-showlocation-freeze-guide.md +39 -10
- package/skill-docs/references/report/multi-report-crosstab-casebook.md +263 -0
- package/skill-docs/references/report/paged-group-report-guide.md +68 -0
- package/skill-docs/references/report/preaggregate-auto-disable-guide.md +24 -13
- package/skill-docs/references/report/query-condition-api-guide.md +174 -125
- package/skill-docs/references/report/ref-report-commands.md +41 -3
- package/skill-docs/references/report/report-baseinfo-defaults-guide.md +117 -117
- package/skill-docs/references/report/report-building-guide.md +52 -52
- package/skill-docs/references/report/report-case-prompts.md +104 -0
- package/skill-docs/references/report/report-config-schema.md +281 -281
- package/skill-docs/references/report/report-create-modes-guide.md +73 -35
- package/skill-docs/references/report/report-data-model.md +131 -131
- package/skill-docs/references/report/report-delivery-contract.md +23 -3
- package/skill-docs/references/report/report-designer-feature-map.md +30 -35
- package/skill-docs/references/report/report-help-guide.md +304 -0
- package/skill-docs/references/report/report-internal-error-guide.md +71 -0
- package/skill-docs/references/report/report-knowledge-base.md +27 -27
- package/skill-docs/references/report/report-lifecycle-api-guide.md +126 -94
- package/skill-docs/references/report/report-list-page-ops-guide.md +54 -8
- package/skill-docs/references/report/report-permission-guide.md +99 -102
- package/skill-docs/references/report/report-requirement-analysis-template.md +93 -29
- package/skill-docs/references/report/report-self-check-guide.md +164 -164
- package/skill-docs/references/report/report-verification-discipline-guide.md +203 -0
- package/skill-docs/references/report/safe-partial-save-guide.md +151 -151
- package/skill-docs/references/report/shard-freeze-report-guide.md +97 -0
- package/skill-docs/references/report/snowflake-id-precision-guide.md +84 -84
- package/skill-docs/references/report/spec-build-schema.md +71 -71
- package/skill-docs/references/report/targeted-fix-guide.md +155 -97
- package/skill-docs/references/report/user-request-scope-only-guide.md +23 -4
- package/skill-docs/references/workflow/guide-after-submit-comment.md +58 -0
- package/skill-docs/references/workflow/guide-layout-components.md +26 -0
- package/skill-docs/references/workflow/guide-node-opinion.md +58 -0
- package/skill-docs/references/workflow/guide-workflow.md +49 -0
- package/skill-docs/references/form/guide-ebuilder-scope.md +0 -82
|
@@ -1,30 +1,32 @@
|
|
|
1
|
-
# 发送消息(`SendMessage`)
|
|
2
|
-
|
|
3
|
-
## 何时使用
|
|
4
|
-
|
|
5
|
-
向人员、部门、分部、角色、群组、岗位、人员范围、外部联系人、全员或上游对象发送 IM 消息。
|
|
6
|
-
|
|
7
|
-
## 先查询
|
|
8
|
-
|
|
9
|
-
固定接收人查询当前租户人员;上游负责人等动态接收人使用本次上下文;标题和正文中的动态片段也使用本次上下文。
|
|
10
|
-
|
|
11
|
-
## 不可猜测
|
|
12
|
-
|
|
13
|
-
提醒标题、提醒内容、推送图片 URL、PC 端链接和移动端链接统一使用前端 `AssignTextarea` 对应的 `ContestSettingDTO`。语义参数名分别为 `msgTitlev`、`msgContentv`、`picLink`、`msgPcLink`、`msgMobileLink`;可以传普通字符串、原生 `{id,content,formulaBeans,langSet}`,或 `parts` 模板。模板会编译成 Base64 内容、`#{paramN}` 占位符和独立 `formulaBeans`,对应手动配置时右侧的形式。**不再使用旧的 `msgTitle`、`msgContent`、`pcLink`、`mobileLink` 字段**。`parts` 的动态项支持 `context`、`system_variable`、`variable`、`constant`、`function`、`formula`、`query_result`,后两者必须按 `references/dynamic_resources.md` 使用真实资源或计划定义。需要拼接上下文时,必须拆成 `parts`,例如:
|
|
14
|
-
|
|
15
|
-
```json
|
|
16
|
-
{
|
|
17
|
-
"parts": [
|
|
18
|
-
{"type":"text","value":"批次任务:"},
|
|
19
|
-
{"type":"context","paramKey":"<真实任务编号paramKey>","label":"任务编号"},
|
|
20
|
-
{"type":"text","value":",设备:"},
|
|
21
|
-
{"type":"context","paramKey":"<真实设备编号paramKey>","label":"设备编号"}
|
|
22
|
-
]
|
|
23
|
-
}
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
提醒对象使用 `receiver.type` 指定前端 `objType`:`resource`/`user`(人员)、`department`(部门)、`subcompany`(分部)、`role`(角色)、`group`(群组)、`position`(岗位)、`employeeScope`(人员范围)、`employeeShare`(人力资源条件)、`employeeOrganization`(人员组织多选)、`external`(外部联系人)、`all` 或 `allExternal`。固定对象使用 `{type,id,name}`;同一类型多选使用 `persons:[{id,name}]`,也可直接传前端多选 FormulaBean。部门/分部可传 `departmentAttribute` 和 `seclevel`,角色可传 `roleLevel`,岗位可传 `positionLevel`、`positionLevelDepartment`、`positionLevelSubcompany`、`positionAttribute`。动态对象使用 `kind:"context"`、`paramKey` 和 `label`,并可通过 `objectType` 指定非人员类型,例如 `{"type":"department","kind":"context","paramKey":"<真实部门字段paramKey>","label":"所属部门"}`。CLI 会按前端逻辑写入 `shareList` 的 `obj_id` / `obj_id_*` 字段;`objectList` 仅保留旧版兼容数据。模板上下文只传 `paramKey` 和 `label`,由 CLI 按消息编辑器的动态片段结构编译,并绑定当前触发节点。对定时批量、按日期字段、表单数据等 e-builder 记录触发器,未显式提供链接时 CLI 自动生成 `msgPcLink` / `msgMobileLink` 的 PC/移动端详情链接:`formId` 为触发表单 ID 固定值,`dataId` 为上游“数据ID”动态上下文。显式 `msgPcLink` / `msgMobileLink` 会覆盖该默认行为。
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
1
|
+
# 发送消息(`SendMessage`)
|
|
2
|
+
|
|
3
|
+
## 何时使用
|
|
4
|
+
|
|
5
|
+
向人员、部门、分部、角色、群组、岗位、人员范围、外部联系人、全员或上游对象发送 IM 消息。
|
|
6
|
+
|
|
7
|
+
## 先查询
|
|
8
|
+
|
|
9
|
+
固定接收人查询当前租户人员;上游负责人等动态接收人使用本次上下文;标题和正文中的动态片段也使用本次上下文。
|
|
10
|
+
|
|
11
|
+
## 不可猜测
|
|
12
|
+
|
|
13
|
+
提醒标题、提醒内容、推送图片 URL、PC 端链接和移动端链接统一使用前端 `AssignTextarea` 对应的 `ContestSettingDTO`。语义参数名分别为 `msgTitlev`、`msgContentv`、`picLink`、`msgPcLink`、`msgMobileLink`;可以传普通字符串、原生 `{id,content,formulaBeans,langSet}`,或 `parts` 模板。模板会编译成 Base64 内容、`#{paramN}` 占位符和独立 `formulaBeans`,对应手动配置时右侧的形式。**不再使用旧的 `msgTitle`、`msgContent`、`pcLink`、`mobileLink` 字段**。`parts` 的动态项支持 `context`、`system_variable`、`variable`、`constant`、`function`、`formula`、`query_result`,后两者必须按 `references/dynamic_resources.md` 使用真实资源或计划定义。需要拼接上下文时,必须拆成 `parts`,例如:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"parts": [
|
|
18
|
+
{"type":"text","value":"批次任务:"},
|
|
19
|
+
{"type":"context","paramKey":"<真实任务编号paramKey>","label":"任务编号"},
|
|
20
|
+
{"type":"text","value":",设备:"},
|
|
21
|
+
{"type":"context","paramKey":"<真实设备编号paramKey>","label":"设备编号"}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
提醒对象使用 `receiver.type` 指定前端 `objType`:`resource`/`user`(人员)、`department`(部门)、`subcompany`(分部)、`role`(角色)、`group`(群组)、`position`(岗位)、`employeeScope`(人员范围)、`employeeShare`(人力资源条件)、`employeeOrganization`(人员组织多选)、`external`(外部联系人)、`all` 或 `allExternal`。固定对象使用 `{type,id,name}`;同一类型多选使用 `persons:[{id,name}]`,也可直接传前端多选 FormulaBean。部门/分部可传 `departmentAttribute` 和 `seclevel`,角色可传 `roleLevel`,岗位可传 `positionLevel`、`positionLevelDepartment`、`positionLevelSubcompany`、`positionAttribute`。动态对象使用 `kind:"context"`、`paramKey` 和 `label`,并可通过 `objectType` 指定非人员类型,例如 `{"type":"department","kind":"context","paramKey":"<真实部门字段paramKey>","label":"所属部门"}`。CLI 会按前端逻辑写入 `shareList` 的 `obj_id` / `obj_id_*` 字段;`objectList` 仅保留旧版兼容数据。模板上下文只传 `paramKey` 和 `label`,由 CLI 按消息编辑器的动态片段结构编译,并绑定当前触发节点。对定时批量、按日期字段、表单数据等 e-builder 记录触发器,未显式提供链接时 CLI 自动生成 `msgPcLink` / `msgMobileLink` 的 PC/移动端详情链接:`formId` 为触发表单 ID 固定值,`dataId` 为上游“数据ID”动态上下文。显式 `msgPcLink` / `msgMobileLink` 会覆盖该默认行为。
|
|
27
|
+
|
|
28
|
+
动态接收人的 `shareList` 必须以 `targetId: "esbAssign"` 保存,并在对应的 `obj_id` 或 `obj_id_<类型>` 放入真实来源的动态公式;公式 `source`/`config.comId` 指向上游组件,而非提醒对象自身的 `sourceId`。人员变量使用 `{"kind":"variable","id":"<已解析变量ID>"}`;上下文字段必须取自 `getComponentContext`。部门、角色等 `targetType` 按前端对象类型及范围设置计算。固定对象仍以实际对象 ID 作为 `targetId`。
|
|
29
|
+
|
|
30
|
+
## 最小计划
|
|
31
|
+
|
|
32
|
+
`receiver`、`msgTitlev`、`msgContentv`。
|
|
@@ -189,6 +189,68 @@ export default function Items() {
|
|
|
189
189
|
|
|
190
190
|
---
|
|
191
191
|
|
|
192
|
+
### 页面上还能拿到什么:`window.TEAMS`
|
|
193
|
+
|
|
194
|
+
页面运行在平台壳里,当前用户、租户、主题、语言都挂在全局 `window.TEAMS` 上,**不要硬编码**。模块顶层取一次:
|
|
195
|
+
|
|
196
|
+
```js
|
|
197
|
+
function readTeams() {
|
|
198
|
+
if (typeof window !== 'undefined' && window.TEAMS) return window.TEAMS;
|
|
199
|
+
return {};
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
var TEAMS = readTeams();
|
|
203
|
+
var ME = TEAMS.currentUser || {};
|
|
204
|
+
var TENANT = TEAMS.currentTenant || {};
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
| 用途 | 取值 |
|
|
208
|
+
|---|---|
|
|
209
|
+
| 当前用户 ID(写入创建人、参与人) | `ME.id` |
|
|
210
|
+
| 姓名 / 工号 / 账号 | `ME.name` / `ME.jobNum` / `ME.username` |
|
|
211
|
+
| 所属部门 | `ME.department.id` / `ME.department.name`(另有 `datarank` / `rank`) |
|
|
212
|
+
| 系统角色与管理员标记 | `ME.authorityList`(如 `["ROLE_ADMIN"]`)、`ME.admin` / `ME.sysAdmin` / `ME.moduleAdmin` |
|
|
213
|
+
| 租户 | `TENANT.tenantKey` / `TENANT.tenantName` |
|
|
214
|
+
| 跟随平台主题 | `TEAMS.theme.primaryColor` / `TEAMS.theme.fontDensity` |
|
|
215
|
+
| 语言 | `TEAMS.locale.lang` |
|
|
216
|
+
| 已开通模块 | `TEAMS.displayModules` |
|
|
217
|
+
|
|
218
|
+
**边界**:
|
|
219
|
+
|
|
220
|
+
- 这些字段随平台版本增减,只取用到的,不要整个对象透传或落库;
|
|
221
|
+
- `authorityList` 是**系统级**角色码,不等于业务角色;业务上的"谁能审批、谁能看这个页面",以服务端权限和数据为准;
|
|
222
|
+
- 前端按这些字段隐藏按钮只是体验优化,**不能当权限校验**;
|
|
223
|
+
- 拿不到时(本地调试、非平台环境)按空对象降级,不要直接抛错。
|
|
224
|
+
|
|
225
|
+
### 组织架构:部门树与人员
|
|
226
|
+
|
|
227
|
+
**默认用组件**:选人、选部门、人员列表都用 `Browser`(`module="hrm"`,`type="resource"` / `"department"`),它自带数据、分页与权限口径。不要把组件能做的事改成自己拉接口。
|
|
228
|
+
|
|
229
|
+
只有页面要**自己画出部门树**(组件只提供选择弹窗,给不了树)或**自己写人员搜索框**时,才用下面两个平台接口。同源请求自动带 cookie:
|
|
230
|
+
|
|
231
|
+
```js
|
|
232
|
+
// 部门树
|
|
233
|
+
var res = await fetch('/api/hrm/common/getOrgTree?menuCode=eBuilder&onlySubcompany=false'
|
|
234
|
+
+ '&containDisableDept=false&moduleCode=EBUILDER&virtualId=1&loadCount=false&isMobile=false');
|
|
235
|
+
var tree = (await res.json()).data; // 节点:{ id, content, parentId, children, isLeaf, nodeType: 'department' }
|
|
236
|
+
|
|
237
|
+
// 人员搜索
|
|
238
|
+
var r2 = await fetch('/api/hrm/common/getEmployeeByKeyWords', {
|
|
239
|
+
method: 'POST',
|
|
240
|
+
headers: { 'Content-Type': 'application/json' },
|
|
241
|
+
body: JSON.stringify({ keyword: '张', searchType: 1, searchCount: 20, pageNo: 1, pageSize: 20,
|
|
242
|
+
appDetachModule: 'EM', disableAppDetach: 0 })
|
|
243
|
+
});
|
|
244
|
+
var users = (await r2.json()).data.userList; // { id, name, department, departmentId, avatar, status }
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
| 接口 | 返回 |
|
|
248
|
+
|---|---|
|
|
249
|
+
| `GET /api/hrm/common/getOrgTree` | `data[]` 部门树,`content` 是部门名,`parentId` 串成树 |
|
|
250
|
+
| `POST /api/hrm/common/getEmployeeByKeyWords` | `data.userList[]`,`id` 是人员 ID,`department` / `departmentId` 是所属部门 |
|
|
251
|
+
|
|
252
|
+
**边界**:这两个是平台前端内部接口,随版本可能变;能用 `Browser` 的地方不要用接口。人员 ID 写进表单字段时按 `values` 的规则处理(多值逗号串)。
|
|
253
|
+
|
|
192
254
|
## 五、HTML 原型还原
|
|
193
255
|
|
|
194
256
|
用户提供 HTML / 设计稿并要求还原时,读 `guide-html-to-react.md`。核心规则:
|
|
@@ -223,6 +285,8 @@ export default function Items() {
|
|
|
223
285
|
|
|
224
286
|
文本框、数字、日期、下拉框用原生 HTML,不要为了用组件而用组件。原型还原优先用原生 HTML + 原型 CSS,平台组件只用于人员/部门选择、上传、文件预览等必须能力。
|
|
225
287
|
|
|
288
|
+
组件的通用属性(`className` / `style` / `customRender` / 表单类通用属性)与改样式的四层钩子见 `references/components/ref-component-common.md`。
|
|
289
|
+
|
|
226
290
|
### 组件自带的数据,不要再自己查
|
|
227
291
|
|
|
228
292
|
`Browser`(人员 / 部门 / 组织)、`Upload`、`FilePreview` 自带数据层:搜索、选择、回显都由组件去请求平台对应的组织、人员、文档接口。页面不要再自己调这些接口,也不要用 `formClient` 去查 —— 组织、人员、文档不属于表单数据,换了通道也拿不到同一份权限口径。
|
|
@@ -284,3 +348,34 @@ export default function Items() {
|
|
|
284
348
|
| 列表没传 `page/size` | 默认可能只回 10 条,显式传 |
|
|
285
349
|
| 样式拆成独立 `.css` | 放回原型 CSS 字符串 |
|
|
286
350
|
| 把 `const appId = '${appId}'` 当变量用 | 不需要这个变量,直接写在 `asyncImport` 里 |
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## 十、页面与流程协作
|
|
355
|
+
|
|
356
|
+
**发起流程走平台页面,不要自己调接口创建流程。** 页面里只负责拼链接:
|
|
357
|
+
|
|
358
|
+
```js
|
|
359
|
+
// 流程 ID 放 app/config.js;具体值用 e10-cli workflow list <appId> 查
|
|
360
|
+
var WORKFLOW_ID = '流程ID';
|
|
361
|
+
|
|
362
|
+
function startFlow(workflowId, prefill) {
|
|
363
|
+
var url = '/sp/workflow/flowpage/create/' + workflowId;
|
|
364
|
+
var params = Object.keys(prefill || {}).map(function (k) {
|
|
365
|
+
return k + '=' + encodeURIComponent(prefill[k]);
|
|
366
|
+
});
|
|
367
|
+
if (params.length) url += '?' + params.join('&');
|
|
368
|
+
window.open(url, '_blank');
|
|
369
|
+
}
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
| 规则 | 说明 |
|
|
373
|
+
|---|---|
|
|
374
|
+
| 预填参数名 | 表单**字段 ID**(纯数字字符串),不是字段名 |
|
|
375
|
+
| 预填参数值 | `encodeURIComponent` 包裹 |
|
|
376
|
+
| Select 字段 | 传**选项 ID**(`valueKey`),不能传显示名 |
|
|
377
|
+
| 多值字段 | 按表单写入规则用逗号串 |
|
|
378
|
+
|
|
379
|
+
预填规则详见 `references/workflow/guide-workflow.md` 的「URL 传参预填」;参数值的来源可以先 `formClient` 读出来,再拼进 URL。
|
|
380
|
+
|
|
381
|
+
**待办、已办、流程状态不在页面里自己拉。** 平台有待办页(菜单系统页 `todo` → `/sp/ebdfpage/workflow/{appId}_todo`),需要给用户看待办时跳转过去;页面不自行调用任务列表接口。
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
## 搭建计划
|
|
13
13
|
|
|
14
14
|
> `[ ]` 为未完成;写入且按该项风险完成必要核验后,才改 `[x]` 并填写真实 ID 或结果。尚待后续资源的项保留 `[ ]` 并写明依赖。
|
|
15
|
-
>
|
|
15
|
+
> 来源可用需求文档章节、表格或图片标题。已有资源先只读盘点,按[资源复用判定](map.md#资源复用判定默认新建)决定复用或新建,记明理由、差异及实际 ID;**默认新建**。
|
|
16
16
|
|
|
17
17
|
### 0. 环境与范围
|
|
18
18
|
- 目标环境/profile:<名称与地址>;所属机构:<名称/ID>;主应用:<名称/ID>
|
|
@@ -60,11 +60,14 @@
|
|
|
60
60
|
| 菜单/页面 <名称> | 新建/复用 | <来源、入口及目标> | 视图/流程/页面 | 待回填 ID |
|
|
61
61
|
|
|
62
62
|
> 角色和矩阵先用 `role list`、`matrix list` 只读盘点同名资源及归属、成员或数据行,记录候选 ID,并与用户逐项确认复用还是新建。复用但需补成员或数据行的,在对应功能批次单独列项;没有矩阵需求则不创建。
|
|
63
|
+
>
|
|
64
|
+
> 表单、应用等资源按[资源复用判定](map.md#资源复用判定默认新建)处理,默认新建。复用须在本表“决策与归属”写理由,并补需求项→现有字段/配置的映射;只允许新增字段,不改已有字段的名称、类型、选项、默认值和显示属性。需改存量结构、有数据或引用关系不明时新建。参考现有资源的命名和语义不构成复用,不得继承其 ID 与配置。
|
|
63
65
|
|
|
64
66
|
#### 1.1 表单字段与布局蓝图(每张表单各一份)
|
|
65
67
|
|
|
66
68
|
##### 表单:<名称>;资源决策:<新建/复用>;objId/formId:<待回填>;来源:<章节>
|
|
67
69
|
- 布局:FLOW/EXCEL;已有表单改造时记录现有布局及保留要求。
|
|
70
|
+
- 复用映射:复用已有表单时逐项写需求字段→现有字段(复用/新增/改不了);“改不了”保持未完成并标“待确认”,不静默绕过。
|
|
68
71
|
- 字段清单:逐字段写主表/明细表、名称、componentKey、选项、默认值、长度/精度、关联目标、公式及明确的必填/只读/隐藏/独占一行/分组。字段名含中英文时分别记录。
|
|
69
72
|
- 明细表:<名称、字段、层级>;二级明细逐条记录父明细→子明细、父子行标识及默认展开要求。
|
|
70
73
|
- 虚拟表:<来源类别与资源ID、稳定主键、来源字段→展示类型映射>。
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 使用方法与状态
|
|
6
6
|
|
|
7
|
-
1.
|
|
7
|
+
1. 逐段阅读正文、表格和图片,将每条业务要求映射到资源与配置项,记录原文来源、所属应用/表单/视图/流程、前置依赖及可观察结果。已有资源先只读盘点,再按[资源复用判定](#资源复用判定默认新建)决定复用或新建;**默认新建**,复用须写出理由与差异。
|
|
8
8
|
2. 需求含完整布局样表时,按[布局规划](../form/layout/planning.md)保留标题、分组、同排、空白与字段顺序,并同时写入字段清单和布局蓝图。每张表单创建前确认 FLOW 或 EXCEL。
|
|
9
9
|
3. 规划状态区分:**待业务确认**(语义或取值有歧义)、**待环境核查**(资源、权限或环境行为未证实)、**需其他方式补充**(现有 CLI 只能完成一部分)、**已确认无法实现**(核实无可行路径)。只有最后一种写入 plan 的“无法实现的项”,原需求项保持未完成。
|
|
10
10
|
4. 按资源依赖组织 plan;关键配置写明读回点和最小业务验收点。接口保存、配置读回与页面实际生效是不同层次,按风险选择必要的检查。
|
|
@@ -45,6 +45,30 @@
|
|
|
45
45
|
| ESB 系统接口 | 从接口文档创建对外接口定义 | 写系统池、接口清单和文档来源 | 区分接口定义与动作流 HTTP 调用;验收创建结果 | [接口导入](../esb-interface/guide-import.md) |
|
|
46
46
|
| 组织数据 | 维护部门、人员等基础数据 | 写机构归属、人员来源和导入范围 | 批量导入先预检;验收数据和归属 | [组织](../hrm/guide-org-employee.md) |
|
|
47
47
|
|
|
48
|
+
### 资源复用判定(默认新建)
|
|
49
|
+
|
|
50
|
+
新建是完整写入,改存量受已有字段、数据和引用约束。规划时先按本节判定;结论写入 plan 的资源清单。
|
|
51
|
+
|
|
52
|
+
**只有同时满足以下条件才复用**:
|
|
53
|
+
|
|
54
|
+
1. 需求明确要求复用该资源;或现有对象与需求是同一业务对象,现有字段集覆盖需求的业务含义。
|
|
55
|
+
2. 差异只有**新增字段**:不改已有字段的名称、类型、选项、默认值和显示属性,也不删除字段。
|
|
56
|
+
3. 已有数据、既有布局和其他资源对它的引用都不受本次改动影响;不确定时先只读核对,不按“应该没问题”处理。
|
|
57
|
+
|
|
58
|
+
**出现任一情况改新建**:
|
|
59
|
+
|
|
60
|
+
- 字段名、类型、选项或结构与需求不一致,且必须改动;
|
|
61
|
+
- 需要删除或合并已有字段;
|
|
62
|
+
- 已有数据且本次要改结构;
|
|
63
|
+
- 仅名称相似或用途相近,不能确认是同一业务对象;
|
|
64
|
+
- 无法核对其归属、数据量和被引用关系。
|
|
65
|
+
|
|
66
|
+
**复用必须写清**:复用理由、需求项→现有字段/配置的映射、无法改动的项及处理方式。无法改动的项保持未完成并标“待确认”,不得静默绕过、改用近似配置或改需求冒充完成。
|
|
67
|
+
|
|
68
|
+
**应用层复用**(已有应用、底座应用):额外评估菜单、权限、既有表单/流程/动作流是否引用该应用,以及新资源与既有资源是否相互耦合;写不出复用理由时新建应用。
|
|
69
|
+
|
|
70
|
+
**参考不等于复用**:为对齐命名、字段语义或交互而阅读现有资源时,不得继承其 ID、布局和配置;此类情况一律按新建处理。
|
|
71
|
+
|
|
48
72
|
## 二、功能配置地图:资源建成后还要做什么
|
|
49
73
|
|
|
50
74
|
下表用于识别应写入 plan 的配置,不表示每个项目都要启用。具体取值和命令由专题指南确定。
|
|
@@ -60,7 +84,7 @@
|
|
|
60
84
|
| 布局样表 | 从完整表格提取空间排布 | 写 FLOW/EXCEL、标题、行列、同排、空白和合并 | 字段清单与布局蓝图同时保留;验收实际位置 | [布局规划](../form/layout/planning.md) |
|
|
61
85
|
| 字段分组 | 将业务字段归入折叠分段 | 写分组名称、顺序及成员字段 | 需求明确时配置;验收字段归属 | [布局规划](../form/layout/planning.md) |
|
|
62
86
|
| 关联字段 | 选择客户、合同、流程等原生业务对象 | 写字段子类、目标对象、单/多选 | 关联对象与通用浏览来源分别选型;验收选择范围 | [字段码表](../form/ref-form-fields.md) |
|
|
63
|
-
| 浏览数据定义 | 限定浏览可选数据、默认搜索及弹窗 Tab |
|
|
87
|
+
| 浏览数据定义 | 限定浏览可选数据、默认搜索及弹窗 Tab | 先查配置归属和可配置字段,再按来源读取候选项 | 验收实际可选数据、搜索与 Tab | [浏览数据定义](../form/guide-browser-definition.md)、[数据范围](../form/guide-browser-scope.md) |
|
|
64
88
|
| 二级明细 | 父级每行挂载子级明细记录 | 主/子明细表;写父子行标识与层级 | 子表归属需按行核对 | [二级明细](../form/guide-form-sub-detail.md) |
|
|
65
89
|
| 字段公式 | 根据其他字段计算目标值 | 写表达式、目标字段和精度 | 验收公式读回与样例计算 | [公式](../form/guide-form-formula-functions.md) |
|
|
66
90
|
| 函数联动 | 字段变动或载入时赋值计算 | 写触发字段、目标字段、事件和表达式 | 与静态字段公式分开;验收触发结果 | [函数联动](../form/guide-formula-linkage.md) |
|
|
@@ -135,7 +159,7 @@
|
|
|
135
159
|
|
|
136
160
|
## 四、常见依赖与计划顺序
|
|
137
161
|
|
|
138
|
-
这些是依赖关系,不替代 [计划模板](guide-plan-template.md)
|
|
162
|
+
这些是依赖关系,不替代 [计划模板](guide-plan-template.md)的三段执行规则。只有通过[资源复用判定](#资源复用判定默认新建)的资源才复用,并按真实 ID 解除依赖。
|
|
139
163
|
|
|
140
164
|
```text
|
|
141
165
|
环境/机构 → 主应用与角色 → 表单/字段/明细 → 布局与默认台账 → 视图/权限/按钮
|
|
@@ -154,7 +178,7 @@
|
|
|
154
178
|
|---|---|
|
|
155
179
|
| 业务含义不清 | 写出不同解释会改变的字段、权限或路由,提出具体确认问题 |
|
|
156
180
|
| 文档内容冲突 | 标出原文位置和受影响配置,待用户确认后定稿 |
|
|
157
|
-
| 资源新建/复用不明 |
|
|
181
|
+
| 资源新建/复用不明 | 默认新建:只读盘点同名资源、归属和 ID 后按[资源复用判定](#资源复用判定默认新建)核对;不能唯一确定或需改存量结构时新建,并向用户说明取舍 |
|
|
158
182
|
| 布局或字段来源缺失 | 确认 FLOW/EXCEL、样表结构、目标字段和关联来源;保留可确认内容 |
|
|
159
183
|
| 环境能力尚未核实 | 列最小查询/验证动作,保持“待环境核查”,不直接判为无法实现 |
|
|
160
184
|
| 仅能部分配置 | 分别列可完成部分与需页面/其他系统补充部分,注明责任和验收方式 |
|
|
@@ -113,9 +113,8 @@
|
|
|
113
113
|
| `e10-cli form list-format <objId> <appId> <listId> <fieldId> [--thousandths] [--no-thousandths] [--decimal <n>] [--clear] [--pc-only]` | 查看/设置台账列**千分位/小数位**(Number/Money 列)。不加参数显示当前;`--thousandths` 开千分位(列 `format:"THOUSANDS"`)、`--no-thousandths` 关、`--decimal <n>` 小数位数(`decimalLength`)、`--clear` 清除恢复默认。与 `list-unit`(单位,走 `showTrans`)是两套不同机制。**自动保留移动端配置** |
|
|
114
114
|
| `e10-cli form list-click <objId> <appId> <listId> <fieldId> [--target <formObjId>] [--open-mode <模式>] [--win-size <尺寸>] [--clear] [--pc-only]` | 设置台账列**点击跳转**。`--open-mode` 支持当前页面/新窗口/弹出窗口/右侧滑出/右侧推出;`--win-size` 仅用于滑出/推出,具体数值按需求填写:百分比使用 `%`(0~100),像素使用 `px`,两种单位不可混用。缺省 `800px` |
|
|
115
115
|
| `e10-cli form ebuilder-columns <objId> <appId> <fieldId> [字段名/ID...] [--clear]` | 设置 EBuilder 关联字段的**浏览显示列**(存在字段配置 `ffDisplayColumns:{id,name}[]`)。**缺省查看**:列出当前显示列 + 目标表单全部**业务字段候选**(系统字段已自动过滤,不设显示列时浏览走平台默认列会带系统字段);**传目标表业务字段名/ID 设置**,系统字段会被拦截提示"系统字段不能设为显示列";`--clear` 清空。关联浏览显示哪些字段(只留业务字段) |
|
|
116
|
-
| `e10-cli form ebuilder-scope <get\|set\|clear> <objId> <appId> <fieldId>` | **浏览数据定义 → 数据范围设置**(关联浏览字段,限定被关联数据须满足条件才可选,如关联客户只选"客户状态=启用"的)。走 `browserDataScope` 接口(独立于字段布局)。`set --rules '[{"field":"客户状态","operator":"eq","value":"启用"}]'`(选项类 value 用选项名,CLI 自动解析 valueKey);`--logic and/or` 多规则关系;`--fill-null` 关联字段为空时填充;`get` 读已设条件;`clear` 清空。**这是关联浏览筛选的正解**,旧 `ebuilder-filter` 走 layout/save 不被设计器识别 |
|
|
117
116
|
| `e10-cli form-engine browser-definition inspect\|describe <formId> [<fieldId>] --module ebuilderform\|workflow\|biaoge [--app-id <appId>] [--workflow-id <id>]` | 先列出表单内可配置的浏览字段、各字段高级搜索/范围/Tab 的平台支持和 CLI 适配状态;再查询指定字段的候选项与当前配置。EB 表单须提供 `--app-id`。**表单绑定工作流程时,浏览数据定义必须在流程的「高级设置 → 浏览数据定义」配置;表单级记录与流程记录是两套数据,流程只读自己的记录,表单上的同名字段配置对流程等于无效,不是被流程配置覆盖。** CLI 用关联表单 formId 加 `--module workflow --workflow-id <流程ID>`。详见 `form/guide-browser-definition.md` |
|
|
118
|
-
| `e10-cli form-engine browser-definition search\|scope\|tabs get\|set <formId> <fieldId> --module ...` | 按字段已开放的能力分别配置高级搜索、数据范围和浏览 Tab;`get` 先读候选结构与现值,`set`
|
|
117
|
+
| `e10-cli form-engine browser-definition search\|scope\|tabs get\|set <formId> <fieldId> --module ...` | 按字段已开放的能力分别配置高级搜索、数据范围和浏览 Tab;`get` 先读候选结构与现值,`set` 写入并回读。关联 EBuilder/自定义浏览框的 `scope set --tree` 按左侧字段实时操作符编译已知的混合嵌套条件;`--config` 写平台原始完整树,旧 `--rules` 仅关联 EBuilder 单层条件;`scope clear` 目前仅适用于关联 EBuilder。不同浏览来源走不同适配器,未适配项明确拒绝。**流程场景必须带 `--module workflow --workflow-id <流程ID>`。** 先读 `form/guide-browser-definition.md` 判断归属,再读 `form/guide-browser-scope.md` 配数据范围 |
|
|
119
118
|
| `e10-cli form validate list <objId> <appId>` | 查看表单**查重规则**(字段重复校验,多字段 AND)。`add <objId> <appId> <字段名...> [--help 提示] [--remind]` 新增(缺省禁止提交 NOSUBMISSION,`--remind` 仅提醒)。**`--help` 会建成多语言标签、存的是标签 id**(平台只收 id,传文本会被拒「提示内容格式不正确」;`list` 会解回文本显示,缓存原因刚建完约 10 秒内可能仍显示 id);`update <objId> <appId> <ruleId> [--fields <名...>] [--help <文本>] [--remind\|--no-remind]` **修改**(只改传入项,其余保持;**checkFields 是整组替换**,命令内部会把完整字段一起回传,不会丢字段;`--help` 支持 `#[字段名]#` 插入变量,自动转成平台片段 `<a>#[字段id]#</a>`,也支持 `@文件`);`delete <objId> <appId> <ruleId>` 删除。项目名称重名/工时日期重复不允许 |
|
|
120
119
|
| `e10-cli form add-detail-table <objId> <appId> <明细表名> [首字段名] [--no-place] [--init]` | 给**已存在的主表**加明细子表(saveSubForm 建子表 + 加首字段使其可见),**默认增量放进现有布局**(复制临时布局取平台生成的容器组件,原布局不重建)。`--data-key <物理表名>`、`--first-field-type <类型>`(默认 Text)、`--first-field-data-key <编码>`(首字段字段编码,缺省取首字段名拼音首字母,与 `add-field` 一致)。⚠ **空子表平台会过滤掉、布局里看不见**,首字段名强烈建议传;`--no-place` 只建表不排布局;`--init` 改用整表重建(会换样式模板并重排已有位置)。后续往明细里加字段用 `form add-field --sub-form-id <subFormId>`:建表时一次性带明细用 `form create` 的 fields.json `DetailTable`+`formFields`。详见 `references/form/layout/incremental.md` |
|
|
121
120
|
| `e10-cli form rename-detail-table <objId> <appId> <subFormId\|明细表名> <新名称> [--describe <描述>]` | **修改明细表名称**(同步子表标题、字段引用名与布局 DetailTable 标题)。按 subFormId 或当前名称定位;保存后回读子表标题与布局标题。当前名称与旧值同名、明细表重名、读不到物理表记录 id 或回读不一致会报错;`--describe` 可选同时改描述。流程表单暂不提供 |
|
|
@@ -248,10 +247,20 @@
|
|
|
248
247
|
| 命令 | 说明 |
|
|
249
248
|
|------|------|
|
|
250
249
|
| `e10-cli role list` | 列出所有角色(树形结构,含层级关系) |
|
|
250
|
+
| `e10-cli role get <roleId>` | 读取角色基础信息;完整设置与码表见 `references/hrm/guide-role.md` |
|
|
251
|
+
| `e10-cli role update <roleId> [--name …] [--code …] [--remark …] [--parent <id>]` | 局部修改角色基础信息,保留未指定项,保存后回读;父角色必须存在且不可形成循环 |
|
|
251
252
|
| `e10-cli role create <name>` | 创建角色,`--parent <id>` 指定父角色,`--code` 编码,`--remark` 备注 |
|
|
252
253
|
| `e10-cli role delete <ids...>` | 删除角色(可多个) |
|
|
254
|
+
| `e10-cli role permission list <roleId>` | 查询当前角色功能权限集的编码、名称、选中与禁用状态;权限项来自平台权限树,不使用固定码表 |
|
|
255
|
+
| `e10-cli role permission add\|remove <roleId> <permissionSetCode>` | 按权限集编码授予/移除一项功能权限;先从权限树确认目标,再用增量 `addList/removeList` 保存并回读选中状态,不覆盖其他权限 |
|
|
253
256
|
| `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 是静默丢弃的,不核对就会"报成功但少加了一个")|
|
|
254
257
|
| `e10-cli role member-list <roleId>` | 列出角色成员(人员 / 部门 / 分部 / 岗位 / 群组,含成员级别与分权范围) |
|
|
258
|
+
| `e10-cli role add-scope-member <roleId> --type all\|allExternal [--level 总部\|分部\|部门]` | 添加“所有人”或“全部外部联系人”成员;指定外部人员不支持 |
|
|
259
|
+
| `e10-cli role member-get <roleId> <memberId>` | 读取一条成员的完整配置;修改已有成员前先查成员行 ID 和当前字段 |
|
|
260
|
+
| `e10-cli role member-update <roleId> <memberId> [选项]` | 保留未指定项;支持岗位级别及指定机构、部门/分部的下级与兼职、分权范围及指定机构、有效期;具体参数组合与码表见 `references/hrm/guide-role.md` |
|
|
261
|
+
| `e10-cli role member-delete <roleId> <memberIds...>` | 按成员条目 ID 删除并回读列表;不同于删除角色 |
|
|
262
|
+
|
|
263
|
+
角色功能权限的 `permissionSetCode` 必须先用 `role permission list` 从当前角色权限树查询;`add/remove` 只提交一项增量变更。岗位的 `position_level` 是**岗位成员内的岗位级别**,与角色成员的 `obj_level`(总部/分部/部门)不是同一设置;岗位指定部门的接口键名实际为 `position_level_partment`。部门/分部成员的下级、兼职选项使用 `department_attribute`。角色维护者、指定外部人员及岗位兼职暂不支持;“全部外部联系人”另见 `add-scope-member`。完整方法见 `references/hrm/guide-role.md`。
|
|
255
264
|
| `e10-cli org department create <name> [--code <编号>] [--parent <父部门id>] [--subcompany <分部id>]` | 新建部门。**两步**:`organization/getForm?flag=department` 取保存模板(含平台**现生成**的 targetId)→ `organization/saveForm` 落组织树(扁平报文,背后的表单记录平台会自己补)。`--parent` 不传即顶层部门,挂在当前用户的分部下(分部自动解析,可用 `--subcompany` 覆盖)。⚠ 模板里 `parent` 是数组、`subcompany` 是对象数组,命令内部转成 id 字符串 —— **别拿模板直接发** |
|
|
256
265
|
| `e10-cli org department list [--name <关键词>] [--page <n>] [--page-size <n>]` | 列出部门(不传 `--name` 就是全部),带分页与总数。**用来拿 id 给别的命令当入参**(例如 `role add-member --id`)。走 `browser/data/department` —— ⚠ **这个端点的本相是「列表」不是「搜索」**:空搜索即返回全部并带 `current` / `total` 分页,`--name` 只是在它上面加一层名字过滤。输出第二列是全路径(如「营销部 / 前端逻辑编排 / 维森集团」),层级直接看得到 |
|
|
257
266
|
| `e10-cli org subcompany create <name> --parent <上级分部id> [--code <编号>]` | 新建**分部**(机构;部门挂在它下面)。与建部门**同一套接口、同一个报文**,只差 `getForm` 的 `flag` 与报文的 `type`。⚠ **必须给 `--parent`**(分部总得挂在某个分部下)。⚠ 「上级部门」与「所属分部」**至少填一个**,两者各填其中一半:建**部门**填「所属分部」、建**分部**填「上级分部」 |
|
|
@@ -285,7 +294,6 @@
|
|
|
285
294
|
| `e10-cli wf-form add-field <formId> <名> Browser <标题> --browser-type <源>` | **浏览按钮必须指定浏览数据源**,否则平台报「程序异常」。源可选 `workflow`(缺省=工作流) / `hrcontract` / `role` / `archive` / `form`;用 `form` 时再配 `--browser-form-source business\|ebuilder`。落到平台是 `type=RelateBrowser` + `browserType:{module,name,id,type}` |
|
|
286
295
|
| `e10-cli wf-form add-field <formId> <名> Browser <标题> --browser-name "CLM-合同类型"` | **按名字指定浏览数据源**,含自定义浏览框(`customBrowser_xxx`,没有固定 id 必须现查)。名字**精确匹配**,查不到会停下并列候选,不用近似项顶替。优先于 `--browser-type`。批量 `add-fields` 直接在 JSON 里写 `browserType:{...}` 对象 |
|
|
287
296
|
| `e10-cli wf-form add-fields <formId> @fields.json [--no-init]` | **批量加字段**:JSON 数组每项 `{name,type,title?,subFormId?,multiple?,precision?,percent?,default?,format?,singleRow?,defaultCurrent?}`;加完**自动跑一次 layout init 重新布局**(`--no-init` 跳过)。字段多时比逐条 `add-field` 省事 |
|
|
288
|
-
| `e10-cli wf-form ebuilder-scope <formId> <ebuilder字段Id> --rule "目标表字段:操作:值" [--sform-id <objId>] [--workflow-id <wfId>]` | 给流程表单的**关联浏览字段**设数据范围(如关联客户只选「客户状态=启用」的)。操作用 `eq`/`neq`/`like`/`isnull`/`notnull`;Select 值填**选项名**。对应 eb 表的 `form ebuilder-scope` |
|
|
289
297
|
| `e10-cli wf-form edit-field <formId> <fieldId> [--title <标题>] [--multiple|--single]` | 编辑已有字段(read-modify-write)。`--multiple`/`--single`:Employee/Department/SubCompany/Browser 切 isSingle,Select↔SelectMultiple。必填为布局级用 `wf-form layout init --required` |
|
|
290
298
|
| `e10-cli wf-form delete-field <formId> <fieldId...> [--force]` | 删除流程表单字段(可批量)。**仍被布局引用的字段平台拒删**;`--force` 让 CLI 先从布局摘掉这些字段的组件(含它的标题标签)再删。eb 表侧对应 `form delete-field` |
|
|
291
299
|
| `e10-cli wf-form formula set <formId> --expression "DAYS({主表.开始时间},{主表.结束时间})" --target <fieldId>` | 给流程表单字段绑定计算公式。`{主表.字段}`/`{明细表名.字段}` 引用(getConfig 解析)→ `/api/excel/formula/save`(module=workflow) → ffExpress 绑字段 + saveSourceForm。`--name`/`--return-type`/**`--formula-id <id>`(原地更新已有公式,不新建)**。另:`formula get <id>` / `list <formId>` / `functions`。**⚠ 公式语法四条**:函数名必须大写(自定义 JS 脚本函数除外)、逻辑比较用 `==`、给字段赋值用 `=`、跨表粘贴要换掉非本表字段变量 —— 写错不报错只是算不对,见 `references/form/guide-form-formula-functions.md` |
|
|
@@ -365,6 +373,7 @@
|
|
|
365
373
|
| `e10-cli workflow node field-permission get <wf> <nodeId>` | 查看节点字段权限(各字段 显示/隐藏)。表单字段在节点上可见与否 |
|
|
366
374
|
| `e10-cli workflow node field-permission set <wf> <nodeId> [--hide/--show/--readonly/--editable/--disable-manual-edit/--required/--no-required <字段...>] [--enable]` | 设置节点字段权限,字段可用名称或 ID、可多个;已设权限则更新、未设则新建。**界面约束自动收口**:`--editable`(编辑)会同时勾选「显示」;`--disable-manual-edit`(禁止手动编辑)需要编辑,会自动勾选「编辑」与「显示」;`--readonly` 会清除「禁止手动编辑」。`--enable` 保存前先打勾「允许修改流程表单内容」 |
|
|
367
375
|
| `e10-cli workflow node sign <wf> <nodeId>` | 全部签字意见设置;旧必填参数保留,`--data JSON/@文件` 局部修改签批签名、隐藏输入框/区域、显示类型/范围、反馈;`--schema` 字段定义,`--options` 查询完整候选。先读后改并回读 |
|
|
376
|
+
| `e10-cli workflow node batch <wf> --spec <json\|@file> [--only fp,reject,sign] [--apply]` | **一张表批量设置多个节点**:默认预演,`--apply` 落库,全部写完统一回读。`nodes[]` 每条可写 `nodes`(名称或 ID,可为数组,一组配置覆盖多个节点)、`enable-modify-form`、`field-permission`、`reject`、`sign`。字段权限用三态 `hidden` / `readonly` / `editable` / `required`,或 `{access, required, disableEdit}`;`hidden` 自动带只读,从根上避开「隐藏 + 可编辑」落不了地。`reject` 键名与 `node-reject set` 一致;`sign` 用 `allRequired` / `noneRequired` / `select` / `data`(与 `node sign` 的 flags 一致)。⚠ `allRequired` / `noneRequired` **只接受 `true`**:「全部不必填」用 `noneRequired: true`,写 `allRequired: false` 会直接报错,不会静默忽略。字段名在主表与明细表重复时(例如两处「备注」)必须写字段 ID,写名称会直接报歧义并列出候选 ID;节点重名需改用 ID;同一节点出现两次直接拒绝。`enable-modify-form` 的当前值从 `displayLayoutForm.data.allowModify` 读取,会参与预演差异与落库回读。已达标时零写入,可重复执行。退出码:0 全部一致 / 2 仅告警 / 1 有错误或回读不一致 |
|
|
368
377
|
| `e10-cli workflow node empty-handle get <wf> <nodeId>` | 查看节点**流程异常处理**(无可处理人时怎么办) |
|
|
369
378
|
| `e10-cli workflow node empty-handle set <wf> <nodeId> --handle-way <1-5>` | 设置节点流程异常处理:1=指定人员(`--person 名称/ID`) / 2=用户指定 / 3=发起人 / 4=自动流转下一节点 / 5=提交指定节点(`--assign-node <节点ID>`);`--off` 关闭;`--sync` 同步所有节点 |
|
|
370
379
|
| `e10-cli workflow setting title <wf>` | 流程标题规则(发起后标题按规则生成,如"发起人-提交日期-客户名称"→真实数据)。缺省列出可用变量(发起人/部门/日期/表单字段);`--rule "发起人\|提交日期\|客户名称"` 竖线分隔字段名设置;`--sep <分隔符>` 默认 `-`;`--disable` 关闭自动生成(标题回退流程名+系统默认)。占位符 `$code$`,平台发起时替换为真实值 |
|
|
@@ -546,7 +555,7 @@ e10-cli report cleanup --app-id <id> [--prefix __build_] [--apply]
|
|
|
546
555
|
|
|
547
556
|
# 校验 / 体检 / 修复(fix 默认只预演,--apply 才落库)
|
|
548
557
|
e10-cli report validate base|condition|format|transform|href|gridline|blank|style ...
|
|
549
|
-
e10-cli report verify bind|all|meta|condition|format|blank|gridline|contract|limit <reportId> [--app-id <id>]
|
|
558
|
+
e10-cli report verify bind|all|meta|condition|format|blank|gridline|contract|limit|drill <reportId> [--app-id <id>]
|
|
550
559
|
e10-cli report fix table-name <reportId> [--apply] # 补 tableName
|
|
551
560
|
e10-cli report fix freeze <reportId> [--anchor x,y] [--apply]
|
|
552
561
|
e10-cli report fix echo <reportId> --app-id <id>
|
|
@@ -591,6 +600,7 @@ e10-cli report py preagg --report-id <id> [--app-id <id>]
|
|
|
591
600
|
| `e10-cli matrix enable <id>` / `disable <id>` | 启用 / 停用(停用后数据只读) |
|
|
592
601
|
| `e10-cli matrix update <id>` / `delete <ids...>` | 更新基本信息(名称/描述/同步方式)/ 删除(级联删配置、数据、维护者) |
|
|
593
602
|
| `e10-cli matrix data` | 矩阵数据维护(映射行)。`data save` 简写为 `[{rowId?, "<列configId>": ["<实体ID>"]}]`:**带 `rowId` 改那一行、不带为新增**(行 id 用 `data list` 拿;同步型矩阵的行 id 就是部门 id)。改行只给要改的列即可,CLI 自动补全其余列并回读比对 |
|
|
603
|
+
| `e10-cli matrix maintainer options\|list\|get\|add\|update\|delete` | 矩阵维护者配置:先查当前矩阵可用主体、维护类型、数据权限、条件码表和值列,再用 JSON 配置新增或完整更新;`delete <matrixId> <条目ID> [更多条目ID...]` 删除指定维护者。写入或删除后按条目回读核对。详见 `references/hrm/guide-matrix.md` |
|
|
594
604
|
|
|
595
605
|
> 行从哪来(`syncType`)、字段能不能改(`permList` 里有没有 `FIELD`)、以及「条件列 → 人员列 → 数据映射 → 运行时读回」的完整步骤见 `references/hrm/guide-matrix.md`。
|
|
596
606
|
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# 组件通用属性与样式
|
|
2
|
+
|
|
3
|
+
> 适用 `@weapp/ui` 全部组件:属性与样式这部分是共通的,单看这一份即可。组件各自的专有属性见同目录下的组件文档。
|
|
4
|
+
|
|
5
|
+
## 一、每个组件都有的属性(BaseProps)
|
|
6
|
+
|
|
7
|
+
| 属性 | 类型 | 说明 |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| `className` | string | 挂到组件根节点,用来加自己的样式作用域 |
|
|
10
|
+
| `style` | CSSProperties | 合并到组件根节点的行内样式 |
|
|
11
|
+
| `customRender` | `(ctx, element) => ReactNode` | 包一层或整体替换组件的渲染结果 |
|
|
12
|
+
| `overlayClassName` | string | 浮层样式名。**只有部分组件实现**(Radio / Checkbox / Menu / At / BreadCrumb 等),用前确认该组件是否支持 |
|
|
13
|
+
| `prefixCls` | string | class 前缀。**不要用来改样式**:less 里的前缀是编译期写死的,改它只会换类名,样式表仍指向 `.ui-*` |
|
|
14
|
+
| `weaComId` | string | 组件标识,一般不用 |
|
|
15
|
+
| `children` | ReactNode | 子节点 |
|
|
16
|
+
|
|
17
|
+
`customRender` 的第一个参数是组件实例,用来读取组件状态;返回的节点会**直接替代**原渲染结果,所以包裹时记得把 `element` 放回去:
|
|
18
|
+
|
|
19
|
+
```jsx
|
|
20
|
+
<Browser
|
|
21
|
+
module="hrm"
|
|
22
|
+
type="resource"
|
|
23
|
+
customRender={function (ctx, element) {
|
|
24
|
+
return <div className="my-browser-wrap">{element}</div>;
|
|
25
|
+
}}
|
|
26
|
+
/>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 二、表单类组件的通用属性(FormProps)
|
|
30
|
+
|
|
31
|
+
表单类组件(Input / Select / Checkbox / Radio / Switch / Upload / Browser 等)在 BaseProps 之外还有:
|
|
32
|
+
|
|
33
|
+
| 属性 | 类型 | 说明 |
|
|
34
|
+
|---|---|---|
|
|
35
|
+
| `readOnly` | boolean | 只读,只显示值、不加载输入工具 |
|
|
36
|
+
| `disabled` | boolean | 禁用 |
|
|
37
|
+
| `required` | boolean | 必填 |
|
|
38
|
+
| `passport` | boolean | 加密显示为 `********` |
|
|
39
|
+
| `placeholder` | string | 占位提示 |
|
|
40
|
+
| `rule` | string \| function | 校验规则 |
|
|
41
|
+
| `showRequiredMark` | boolean | 是否显示必填标记 |
|
|
42
|
+
| `fieldId` / `fieldName` | string \| number | 隐藏域标识 |
|
|
43
|
+
|
|
44
|
+
## 三、样式:四层钩子
|
|
45
|
+
|
|
46
|
+
按可靠性从高到低,优先用上面的:
|
|
47
|
+
|
|
48
|
+
| 层 | 手段 | 作用范围 |
|
|
49
|
+
|---|---|---|
|
|
50
|
+
| 变量层 | 在**页面根节点**重声明 CSS 变量(`--primary` 等) | 整个页面子树 |
|
|
51
|
+
| 组件根层 | `className` / `style` | 组件根节点 |
|
|
52
|
+
| 内容层 | `customRender` / 组件的 `bodyRender`、`customRenderItem` | 组件内部指定位置 |
|
|
53
|
+
| 浮层专用 | `overlayClassName`、组件的弹层属性(如 `browserDialogProps`) | 该组件的弹层 |
|
|
54
|
+
|
|
55
|
+
```jsx
|
|
56
|
+
// 页面根节点声明变量,只影响这个页面
|
|
57
|
+
<div className="my-page" style={{ '--primary': '#2f6fed', '--border-radius-md': '8px' }}>
|
|
58
|
+
...
|
|
59
|
+
</div>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**不要把变量写在 `:root` 上** —— 那会改掉整个平台的样式。
|
|
63
|
+
|
|
64
|
+
## 四、浮层不在页面 DOM 里
|
|
65
|
+
|
|
66
|
+
弹窗、下拉这类浮层通过 Portal 挂到 `body` 下的 `.ui-dialog-portal`:
|
|
67
|
+
|
|
68
|
+
- 页面根节点上声明的 CSS 变量和后代选择器**都够不到浮层**;
|
|
69
|
+
- 部分组件的弹层会继承组件上的 `className`(例如 Browser 把属性透传给内部 Dialog),所以同一个 className 有时会同时命中根节点和弹层;
|
|
70
|
+
- 需要单独控制弹层时,用该组件的弹层属性或 `overlayClassName`,不要靠 DOM 层级猜;
|
|
71
|
+
- 层级由变量控制:`--dialog-zindex`、`--popover-zindex`、`--modal-zindex`、`--toast-zindex`、`--picker-zindex` 等。
|
|
72
|
+
|
|
73
|
+
## 五、常用 CSS 变量
|
|
74
|
+
|
|
75
|
+
| 类别 | 变量 |
|
|
76
|
+
|---|---|
|
|
77
|
+
| 主色与状态色 | `--primary`、`--success`、`--warning`、`--danger`、`--info` |
|
|
78
|
+
| 文字色 | `--main-fc`、`--regular-fc`、`--secondary-fc`、`--placeholder-fc`、`--link-fc` |
|
|
79
|
+
| 背景 | `--bg-white`、`--bg-base`、`--bg-weak`、`--bg-gray` |
|
|
80
|
+
| 边框与圆角 | `--border-color`、`--diviling-line-color`、`--border-solid`、`--border-radius-xs/sm/md/lg` |
|
|
81
|
+
| 间距 | `--h-spacing-xs/sm/md/lg/xl`、`--v-spacing-xs/sm/md/lg/xl` |
|
|
82
|
+
| 字号与行高 | `--font-size-sm/md/lg/base/heading`、`--line-height-base`、`--line-height-sm` |
|
|
83
|
+
| 密度 | `--hd`(1px 换算单位,组件按它缩放) |
|
|
84
|
+
|
|
85
|
+
## 六、不要做的事
|
|
86
|
+
|
|
87
|
+
- 不用 `.ui-browser__xxx` 这类**内部 class** 覆盖样式,也不读 `weId`、不依赖 DOM 层级 —— 平台升级就会断;
|
|
88
|
+
- 不改 `prefixCls` 指望换一套样式;
|
|
89
|
+
- 不把 CSS 变量写到 `:root` 或 `body`;
|
|
90
|
+
- 不编造组件或 props,列表见 `guide-page-code.md` 第六节。
|
|
91
|
+
|
|
92
|
+
## 七、自检
|
|
93
|
+
|
|
94
|
+
- [ ] 组件根节点上的样式走 `className` / `style`,没有去写内部 class
|
|
95
|
+
- [ ] CSS 变量声明在页面根节点,没有写到 `:root`
|
|
96
|
+
- [ ] 需要改弹层时用了组件的弹层属性,没有去猜 DOM 结构
|
|
97
|
+
- [ ] `customRender` 包裹时把 `element` 渲染回去了
|
|
98
|
+
- [ ] 没有依赖 `prefixCls` 改样式
|