weaver-e10-builder 1.0.10-beta → 1.0.12-beta
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/actionflow.d.ts.map +1 -1
- package/dist/commands/actionflow.js +10 -6
- package/dist/commands/actionflow.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +13 -0
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/form-layout-init.d.ts.map +1 -1
- package/dist/commands/form-layout-init.js +7 -1
- package/dist/commands/form-layout-init.js.map +1 -1
- package/dist/commands/form-list-permission.d.ts.map +1 -1
- package/dist/commands/form-list-permission.js +130 -15
- package/dist/commands/form-list-permission.js.map +1 -1
- package/dist/commands/form-nlist.d.ts +22 -0
- package/dist/commands/form-nlist.d.ts.map +1 -0
- package/dist/commands/form-nlist.js +179 -0
- package/dist/commands/form-nlist.js.map +1 -0
- package/dist/commands/form-serial-mark.d.ts +0 -15
- package/dist/commands/form-serial-mark.d.ts.map +1 -1
- package/dist/commands/form-serial-mark.js +604 -137
- package/dist/commands/form-serial-mark.js.map +1 -1
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +145 -16
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/skill.d.ts +3 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +112 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/wf-form.d.ts +18 -0
- package/dist/commands/wf-form.d.ts.map +1 -1
- package/dist/commands/wf-form.js +156 -181
- package/dist/commands/wf-form.js.map +1 -1
- package/dist/commands/workflow-condition.d.ts.map +1 -1
- package/dist/commands/workflow-condition.js +3 -1
- package/dist/commands/workflow-condition.js.map +1 -1
- package/dist/commands/workflow-create-workflow.d.ts.map +1 -1
- package/dist/commands/workflow-create-workflow.js +14 -0
- package/dist/commands/workflow-create-workflow.js.map +1 -1
- package/dist/commands/workflow-node-validate.d.ts.map +1 -1
- package/dist/commands/workflow-node-validate.js +16 -2
- package/dist/commands/workflow-node-validate.js.map +1 -1
- package/dist/commands/workflow-numbering.d.ts.map +1 -1
- package/dist/commands/workflow-numbering.js +18 -2
- package/dist/commands/workflow-numbering.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +58 -42
- package/dist/commands/workflow.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/build_workflow_draft.d.ts.map +1 -1
- package/dist/services/actionflow/build_workflow_draft.js +23 -2
- package/dist/services/actionflow/build_workflow_draft.js.map +1 -1
- package/dist/services/actionflow/command_output.d.ts +6 -0
- package/dist/services/actionflow/command_output.d.ts.map +1 -0
- package/dist/services/actionflow/command_output.js +91 -0
- package/dist/services/actionflow/command_output.js.map +1 -0
- package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.js +5 -4
- package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_delete.js +1 -1
- package/dist/services/actionflow/components/action_eb_delete.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update.js +4 -4
- package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.js +4 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
- package/dist/services/actionflow/components/approve_create.js +1 -1
- package/dist/services/actionflow/components/approve_create.js.map +1 -1
- package/dist/services/actionflow/components/approve_trigger.d.ts.map +1 -1
- package/dist/services/actionflow/components/approve_trigger.js +48 -16
- package/dist/services/actionflow/components/approve_trigger.js.map +1 -1
- package/dist/services/actionflow/components/date_trigger.js +3 -3
- package/dist/services/actionflow/components/date_trigger.js.map +1 -1
- package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -1
- package/dist/services/actionflow/components/enquiry_form.js +15 -8
- package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
- package/dist/services/actionflow/enrich_approve_trigger.d.ts.map +1 -1
- package/dist/services/actionflow/enrich_approve_trigger.js +47 -17
- package/dist/services/actionflow/enrich_approve_trigger.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +71 -3
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/functions_catalog.d.ts +26 -0
- package/dist/services/actionflow/functions_catalog.d.ts.map +1 -0
- package/dist/services/actionflow/functions_catalog.js +8986 -0
- package/dist/services/actionflow/functions_catalog.js.map +1 -0
- package/dist/services/actionflow/functions_source.d.ts +7 -0
- package/dist/services/actionflow/functions_source.d.ts.map +1 -0
- package/dist/services/actionflow/functions_source.js +50 -0
- package/dist/services/actionflow/functions_source.js.map +1 -0
- package/dist/services/actionflow/generation_service.d.ts +8 -0
- package/dist/services/actionflow/generation_service.d.ts.map +1 -1
- package/dist/services/actionflow/generation_service.js +60 -2
- package/dist/services/actionflow/generation_service.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts +6 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +69 -0
- 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 +102 -85
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/actionflow/workflow_source.d.ts +2 -0
- package/dist/services/actionflow/workflow_source.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_source.js +8 -0
- package/dist/services/actionflow/workflow_source.js.map +1 -1
- package/dist/services/condition-rules.d.ts.map +1 -1
- package/dist/services/condition-rules.js +3 -1
- package/dist/services/condition-rules.js.map +1 -1
- package/dist/services/form-create.d.ts.map +1 -1
- package/dist/services/form-create.js +4 -1
- package/dist/services/form-create.js.map +1 -1
- package/dist/services/form-nlist.d.ts +42 -0
- package/dist/services/form-nlist.d.ts.map +1 -0
- package/dist/services/form-nlist.js +332 -0
- package/dist/services/form-nlist.js.map +1 -0
- package/dist/services/skill-provision.d.ts +18 -0
- package/dist/services/skill-provision.d.ts.map +1 -0
- package/dist/services/skill-provision.js +86 -0
- package/dist/services/skill-provision.js.map +1 -0
- package/dist/services/workflow-initiator.js +3 -3
- package/dist/services/workflow-initiator.js.map +1 -1
- package/dist/services/workflow-operator.d.ts +3 -1
- package/dist/services/workflow-operator.d.ts.map +1 -1
- package/dist/services/workflow-operator.js +5 -4
- package/dist/services/workflow-operator.js.map +1 -1
- package/package.json +4 -2
- package/skill-docs/SKILL.md +348 -0
- package/skill-docs/actionflows/references/components/calendar/MeetingCreate.md +17 -0
- package/skill-docs/actionflows/references/components/calendar/ScheduleCreate.md +17 -0
- package/skill-docs/actionflows/references/components/document/AttachmentCopy.md +17 -0
- package/skill-docs/actionflows/references/components/document/AttachmentMove.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentCopy.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentDelete.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentEdit.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentMove.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentPermissionChange.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentRenewal.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentRevert.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentSave.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentSubscription.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentSubscriptionApprove.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentSubscriptionSendBack.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentSubscriptionWithdraw.md +17 -0
- package/skill-docs/actionflows/references/components/document/FileFolderSave.md +17 -0
- package/skill-docs/actionflows/references/components/document/GetAttachmentInfo.md +17 -0
- package/skill-docs/actionflows/references/components/document/GetDocumentInfo.md +17 -0
- package/skill-docs/actionflows/references/components/document/ModifyDocumentStatus.md +17 -0
- package/skill-docs/actionflows/references/components/document/ReplaceAttachment.md +17 -0
- package/skill-docs/actionflows/references/components/document/UpdatePrintNum.md +17 -0
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +39 -0
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbDelete.md +21 -0
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbRecover.md +17 -0
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbSaveVersion.md +17 -0
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +21 -0
- package/skill-docs/actionflows/references/components/ebuilder/DateTrigger.md +17 -0
- package/skill-docs/actionflows/references/components/ebuilder/EbGetDataById.md +17 -0
- package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +75 -0
- package/skill-docs/actionflows/references/components/ebuilder/EventFormData.md +17 -0
- package/skill-docs/actionflows/references/components/ebuilder/TimeBatchTrigger.md +17 -0
- package/skill-docs/actionflows/references/components/logic/Condition.md +23 -0
- package/skill-docs/actionflows/references/components/logic/LogicFlowSet.md +17 -0
- package/skill-docs/actionflows/references/components/logic/MultipleExecution.md +38 -0
- package/skill-docs/actionflows/references/components/logic/Output.md +17 -0
- package/skill-docs/actionflows/references/components/message/SendMessage.md +17 -0
- package/skill-docs/actionflows/references/components/personnel/AlterPersonStatus.md +30 -0
- package/skill-docs/actionflows/references/components/personnel/HrmEmployeeUpdate.md +32 -0
- package/skill-docs/actionflows/references/components/personnel/PersonnelOnboarding.md +34 -0
- package/skill-docs/actionflows/references/components/trigger/SimpleScheduler.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveAddSign.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveAgreeRejectApply.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveCommit.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveCompletelyDelete.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveConsulTurnTodo.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveCreate.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveDelete.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveDoCirculate.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveDoForward.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveDoTurnTodo.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveEntrust.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveIntervention.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveMandatoryArchiving.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveManualCC.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveRefuseRejectApply.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveRejectApply.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveSave.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveSendBack.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveShareEntry.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveTrigger.md +49 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveWithdraw.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/WorkFlowDocEmpowerment.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/WorkflowToDoc.md +17 -0
- package/skill-docs/actionflows/references/condition_rules.md +97 -0
- package/skill-docs/actionflows/references/examples/enquiry-form-batch-insert-scene2.json +1046 -0
- package/skill-docs/actionflows/references/function_rules.md +13 -0
- package/skill-docs/actionflows/references/trigger_runtime_notes.md +51 -0
- package/skill-docs/assets/sample/.claude/settings.local.json +8 -0
- package/skill-docs/assets/sample/api/formApi.js +510 -0
- package/skill-docs/assets/sample/config/config.js +0 -0
- package/skill-docs/assets/sample/config/configLoad.js +0 -0
- package/skill-docs/assets/sample/config/configLoad_default.js +0 -0
- package/skill-docs/assets/sample/config/config_default.js +0 -0
- package/skill-docs/assets/sample/entry.js +22 -0
- package/skill-docs/assets/sample/eslint.config.cjs +48 -0
- package/skill-docs/assets/sample/memo.md +0 -0
- package/skill-docs/assets/sample/readme.js +8 -0
- package/skill-docs/references/auth/guide-auth.md +88 -0
- package/skill-docs/references/coding/guide-edit-backfill.md +189 -0
- package/skill-docs/references/coding/guide-form-crud.md +262 -0
- package/skill-docs/references/coding/guide-page-code.md +224 -0
- package/skill-docs/references/coding/guide-page-export.md +119 -0
- package/skill-docs/references/coding/ref-compile-rules.md +106 -0
- package/skill-docs/references/common/ref-cli-commands.md +286 -0
- package/skill-docs/references/components/@weapp-Button.md +104 -0
- package/skill-docs/references/components/base-Badge.md +100 -0
- package/skill-docs/references/components/base-Dialog.md +358 -0
- package/skill-docs/references/components/base-Empty.md +58 -0
- package/skill-docs/references/components/base-Tag.md +112 -0
- package/skill-docs/references/components/display-Alert.md +64 -0
- package/skill-docs/references/components/display-Avatar.md +150 -0
- package/skill-docs/references/components/display-Calendar.md +263 -0
- package/skill-docs/references/components/display-Carousel.md +115 -0
- package/skill-docs/references/components/display-Collapse.md +299 -0
- package/skill-docs/references/components/display-FilePreview.md +49 -0
- package/skill-docs/references/components/display-Icon.md +66 -0
- package/skill-docs/references/components/display-List.md +320 -0
- package/skill-docs/references/components/display-Pagination.md +41 -0
- package/skill-docs/references/components/display-Spin.md +34 -0
- package/skill-docs/references/components/display-Steps.md +89 -0
- package/skill-docs/references/components/display-Table.md +160 -0
- package/skill-docs/references/components/display-Title.md +117 -0
- package/skill-docs/references/components/form-Checkbox.md +161 -0
- package/skill-docs/references/components/form-DepartmentBrowser-api.md +52 -0
- package/skill-docs/references/components/form-EmployeeBrowser-api.md +51 -0
- package/skill-docs/references/components/form-EmployeeBrowser.md +51 -0
- package/skill-docs/references/components/form-Input.md +123 -0
- package/skill-docs/references/components/form-Radio.md +145 -0
- package/skill-docs/references/components/form-Select.md +191 -0
- package/skill-docs/references/components/form-Switch.md +46 -0
- package/skill-docs/references/components/form-Upload.md +53 -0
- package/skill-docs/references/components/generic-Echarts.md +102 -0
- package/skill-docs/references/form/guide-create-form.md +407 -0
- package/skill-docs/references/form/guide-ebuilder-filter.md +73 -0
- package/skill-docs/references/form/guide-ebuilder-scope.md +82 -0
- package/skill-docs/references/form/guide-form-data.md +48 -0
- package/skill-docs/references/form/guide-form-formula-functions.md +297 -0
- package/skill-docs/references/form/guide-form-linkage.md +185 -0
- package/skill-docs/references/form/guide-form-view-permission.md +38 -0
- package/skill-docs/references/form/guide-form-view.md +267 -0
- package/skill-docs/references/form/style-templates.md +44 -0
- package/skill-docs/references/hrm/guide-matrix.md +103 -0
- package/skill-docs/references/menu/system-menus.md +63 -0
- package/skill-docs/references/workflow/guide-workflow-action.md +168 -0
- package/skill-docs/references/workflow/guide-workflow-condition.md +405 -0
- package/skill-docs/references/workflow/guide-workflow.md +388 -0
- package/skill-docs/references/workflow/operator-matrix.md +74 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* skill 文档自动预置:探测本机已安装的 weaver-e10-builder skill
|
|
3
|
+
* (Claude Code ~/.claude/skills、WorkBuddy ~/.workbuddy/skills、Codex ~/.codex/skills,可扩展),
|
|
4
|
+
* 把文档树(references/、actionflows/references/、assets/)+ SKILL.md 覆盖式拷进对应 skill 目录,
|
|
5
|
+
* 使已装 skill 自带文档——AI 直接读 skill 目录内的 references/,无需手动 skill copy。
|
|
6
|
+
*
|
|
7
|
+
* 触发:`e10-cli auth status` 每次会话自动检测(skill 的 step0 必跑);
|
|
8
|
+
* `e10-cli skill sync` 显式手动。幂等:SKILL.md 版本一致即跳过。
|
|
9
|
+
*/
|
|
10
|
+
import { cpSync, existsSync, readdirSync, readFileSync } from 'node:fs';
|
|
11
|
+
import { homedir } from 'node:os';
|
|
12
|
+
import { resolve, dirname } from 'node:path';
|
|
13
|
+
import { fileURLToPath } from 'node:url';
|
|
14
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
15
|
+
/** npm 包内 skill-docs 目录(相对编译产物 dist/services/ 向上两级) */
|
|
16
|
+
export function skillDocsDir() {
|
|
17
|
+
return fileURLToPath(new URL('../../skill-docs/', import.meta.url));
|
|
18
|
+
}
|
|
19
|
+
export function pkgVersion() {
|
|
20
|
+
try {
|
|
21
|
+
return JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf-8')).version;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return 'unknown';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/** 已知 skill 安装根目录(可扩展;额外目录走 --target 传入) */
|
|
28
|
+
export function knownSkillRoots() {
|
|
29
|
+
const home = homedir();
|
|
30
|
+
return [
|
|
31
|
+
resolve(home, '.claude/skills'),
|
|
32
|
+
resolve(home, '.workbuddy/skills'),
|
|
33
|
+
resolve(home, '.codex/skills'),
|
|
34
|
+
];
|
|
35
|
+
}
|
|
36
|
+
/** 在候选根目录里找已安装的 weaver-e10-builder skill 目录 */
|
|
37
|
+
export function findInstalledSkills(extraRoots = []) {
|
|
38
|
+
const roots = [...knownSkillRoots(), ...extraRoots.map((r) => resolve(r))];
|
|
39
|
+
const found = [];
|
|
40
|
+
for (const root of roots) {
|
|
41
|
+
const dir = resolve(root, 'weaver-e10-builder');
|
|
42
|
+
if (existsSync(dir) && existsSync(resolve(dir, 'SKILL.md')))
|
|
43
|
+
found.push(dir);
|
|
44
|
+
}
|
|
45
|
+
return [...new Set(found)];
|
|
46
|
+
}
|
|
47
|
+
/** 文档是否已就位(版本一致 **且** references/ 存在——薄 zip 的 SKILL.md 版本对但没文档树,必须补拷) */
|
|
48
|
+
export function skillDocsCurrent(skillDir, version) {
|
|
49
|
+
try {
|
|
50
|
+
const skillMd = resolve(skillDir, 'SKILL.md');
|
|
51
|
+
if (!existsSync(skillMd))
|
|
52
|
+
return false;
|
|
53
|
+
if (!readFileSync(skillMd, 'utf-8').includes(`version: ${version}`))
|
|
54
|
+
return false;
|
|
55
|
+
return existsSync(resolve(skillDir, 'references'));
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/** 把 skill-docs 内容(references/、actionflows/references/、assets/、SKILL.md)覆盖式拷进 skill 目录 */
|
|
62
|
+
export function provisionSkillDocs(skillDir, docsDir) {
|
|
63
|
+
for (const entry of readdirSync(docsDir, { withFileTypes: true })) {
|
|
64
|
+
cpSync(resolve(docsDir, entry.name), resolve(skillDir, entry.name), { recursive: true, force: true });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** 探测 + 预置(幂等)。返回各 skill 目录的结果 */
|
|
68
|
+
export function provisionInstalledSkills(docsDir, version, extraRoots = []) {
|
|
69
|
+
const dirs = findInstalledSkills(extraRoots);
|
|
70
|
+
const results = [];
|
|
71
|
+
for (const dir of dirs) {
|
|
72
|
+
if (skillDocsCurrent(dir, version)) {
|
|
73
|
+
results.push({ skillDir: dir, action: 'current' });
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
provisionSkillDocs(dir, docsDir);
|
|
78
|
+
results.push({ skillDir: dir, action: 'copied' });
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
results.push({ skillDir: dir, action: 'skipped' });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return results;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=skill-provision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-provision.js","sourceRoot":"","sources":["../../src/services/skill-provision.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,uDAAuD;AACvD,MAAM,UAAU,YAAY;IAC1B,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACnG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,OAAO;QACL,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC;QAC/B,OAAO,CAAC,IAAI,EAAE,mBAAmB,CAAC;QAClC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,mBAAmB,CAAC,aAAuB,EAAE;IAC3D,MAAM,KAAK,GAAG,CAAC,GAAG,eAAe,EAAE,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QAChD,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,OAAe;IAChE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,YAAY,OAAO,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QAClF,OAAO,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,OAAe;IAClE,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxG,CAAC;AACH,CAAC;AAOD,kCAAkC;AAClC,MAAM,UAAU,wBAAwB,CACtC,OAAe,EACf,OAAe,EACf,aAAuB,EAAE;IAEzB,MAAM,IAAI,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACnD,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -58,10 +58,10 @@ export async function setInitiatorAll(client, baseUrl, workflowId, nodeId) {
|
|
|
58
58
|
workflowId, nodeId,
|
|
59
59
|
groupId, isCreate: '1', reserveGroupId,
|
|
60
60
|
itemDatas: [{
|
|
61
|
-
isOut: false, isSaveHrmOperator: false, id: '2', groupType: '所有人',
|
|
62
|
-
itemName: '', itemLevel: '', endApprovers: '', hrmOperators: '', levelObj: '',
|
|
61
|
+
level: '-999~999', isOut: false, isSaveHrmOperator: false, id: '2', groupType: '所有人',
|
|
62
|
+
itemName: '', itemLevel: '-999~999', endApprovers: '', hrmOperators: '', levelObj: '',
|
|
63
63
|
workflowId, nodeId, conditionId: '', orders: '0.00', groupTypeId: '110', isOpen: true,
|
|
64
|
-
bigTypeId: 1, condition: '', groupCondition: '', isSuportVirtualId:
|
|
64
|
+
bigTypeId: 1, condition: '', groupCondition: '', isSuportVirtualId: true,
|
|
65
65
|
openProjectOrganization: false, isExtendType: 0,
|
|
66
66
|
}],
|
|
67
67
|
oldGroupName: '所有人', refWorkflowId: '', oldItemDatas,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-initiator.js","sourceRoot":"","sources":["../../src/services/workflow-initiator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"workflow-initiator.js","sourceRoot":"","sources":["../../src/services/workflow-initiator.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,gDAAgD;AAChD,KAAK,UAAU,SAAS,CAAC,MAAiB,EAAE,OAAe,EAAE,UAAkB,EAAE,MAAc;IAC7F,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,GAAG,OAAO,+DAA+D,UAAU,WAAW,MAAM,EAAE,CACvG,CAAC;QACF,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACxB,CAAC;AAED,qCAAqC;AACrC,KAAK,UAAU,aAAa,CAAC,MAAiB,EAAE,OAAe,EAAE,OAAe,EAAE,MAAc;IAC9F,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CACzB,GAAG,OAAO,2EAA2E,OAAO,wBAAwB,MAAM,iBAAiB,CAC5I,CAAC;QACF,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC;QACnB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACxB,CAAC;AAED,4BAA4B;AAC5B,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAiB,EACjB,OAAe,EACf,UAAkB,EAClB,MAAc;IAEd,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;QAC3D,8BAA8B;QAC9B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;oBACzE,MAAM,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACtE,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,gDAAgD;QAChD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,YAAY,GAAU,EAAE,CAAC;QAC7B,IAAI,WAAW,GAAa,EAAE,CAAC;QAC/B,IAAI,QAAQ,EAAE,EAAE,EAAE,CAAC;YACjB,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC9B,YAAY,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACrE,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa;gBAAE,WAAW,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;QAC5F,CAAC;QACD,2DAA2D;QAC3D,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,2DAA2D,EAAE;gBAClG,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,kBAAkB,EAAE,IAAI;aAC3E,CAAC,CAAC;YACH,cAAc,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;QACvB,MAAM,OAAO,GAAG;YACd,UAAU,EAAE,MAAM;YAClB,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,cAAc;YACtC,SAAS,EAAE,CAAC;oBACV,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK;oBACpF,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE;oBACrF,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI;oBACrF,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI;oBACxE,uBAAuB,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;iBAChD,CAAC;YACF,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY;YACpD,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;SAC7C,CAAC;QACF,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,yDAAyD,EAAE,OAAO,CAAC,CAAC;QAC1G,OAAO,CAAC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -23,7 +23,9 @@ export declare function getNodeOperatorGroups(client: OperatorClient, baseUrl: s
|
|
|
23
23
|
export declare function getNodeOperatorItems(client: OperatorClient, baseUrl: string, groupId: string, nodeId: string): Promise<any[]>;
|
|
24
24
|
/** 删除一个操作者组(deleteOperatorGroupItemList) */
|
|
25
25
|
export declare function deleteNodeOperatorGroup(client: OperatorClient, baseUrl: string, groupId: string, oldItemDatas: any[]): Promise<void>;
|
|
26
|
-
/**
|
|
26
|
+
/** 清空节点所有操作者组,返回清理的组数。
|
|
27
|
+
* 7.2 防御:原 `if (items.length > 0)` 守卫会跳过 0 条目的空组壳 → 残留空壳 + 新组 = 「多个操作组」。
|
|
28
|
+
* 现总尝试删(deleteOperatorGroupItemList 实测整组删除不留壳;空壳也调,per-group try/catch 保护)。 */
|
|
27
29
|
export declare function clearNodeOperatorGroups(client: OperatorClient, baseUrl: string, workflowId: string, nodeId: string): Promise<number>;
|
|
28
30
|
/**
|
|
29
31
|
* 按逗号分隔的关键词查找多个角色(组内多操作者,如竞签多候选)。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-operator.d.ts","sourceRoot":"","sources":["../../src/services/workflow-operator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,kDAAkD;AAClD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAM7B;AAED;6CAC6C;AAC7C,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,GAAG,EAAE,CAAC,CAOhB;AAED,4CAA4C;AAC5C,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,GAAG,EAAE,GAClB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED
|
|
1
|
+
{"version":3,"file":"workflow-operator.d.ts","sourceRoot":"","sources":["../../src/services/workflow-operator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,kDAAkD;AAClD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAM7B;AAED;6CAC6C;AAC7C,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,GAAG,EAAE,CAAC,CAOhB;AAED,4CAA4C;AAC5C,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,GAAG,EAAE,GAClB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;gFAEgF;AAChF,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAUjB;AAcD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CASpG"}
|
|
@@ -20,15 +20,16 @@ export async function deleteNodeOperatorGroup(client, baseUrl, groupId, oldItemD
|
|
|
20
20
|
oldItemDatas,
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
-
/**
|
|
23
|
+
/** 清空节点所有操作者组,返回清理的组数。
|
|
24
|
+
* 7.2 防御:原 `if (items.length > 0)` 守卫会跳过 0 条目的空组壳 → 残留空壳 + 新组 = 「多个操作组」。
|
|
25
|
+
* 现总尝试删(deleteOperatorGroupItemList 实测整组删除不留壳;空壳也调,per-group try/catch 保护)。 */
|
|
24
26
|
export async function clearNodeOperatorGroups(client, baseUrl, workflowId, nodeId) {
|
|
25
27
|
const groups = await getNodeOperatorGroups(client, baseUrl, workflowId, nodeId);
|
|
26
28
|
for (const g of groups) {
|
|
27
29
|
try {
|
|
28
30
|
const items = await getNodeOperatorItems(client, baseUrl, g.id, nodeId);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
31
|
+
// 总尝试删(含空壳);deleteOperatorGroupItemList 有条目则整组删,空 oldItemDatas 由 per-group catch 兜底
|
|
32
|
+
await deleteNodeOperatorGroup(client, baseUrl, g.id, items || []);
|
|
32
33
|
}
|
|
33
34
|
catch { /* 单个组清理失败不影响后续 */ }
|
|
34
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-operator.js","sourceRoot":"","sources":["../../src/services/workflow-operator.ts"],"names":[],"mappings":"AAqBA,kDAAkD;AAClD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAsB,EACtB,OAAe,EACf,UAAkB,EAClB,MAAc;IAEd,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAC1B,GAAG,OAAO,+DAA+D,UAAU,WAAW,MAAM,EAAE,CACvG,CAAC;IACF,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;IAC/C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED;6CAC6C;AAC7C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAsB,EACtB,OAAe,EACf,OAAe,EACf,MAAc;IAEd,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CACzB,GAAG,OAAO,2EAA2E,OAAO,wBAAwB,MAAM,iBAAiB,CAC5I,CAAC;IACF,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC;IACnB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4CAA4C;AAC5C,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAsB,EACtB,OAAe,EACf,OAAe,EACf,YAAmB;IAEnB,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,mEAAmE,EAAE;QAC/F,OAAO;QACP,UAAU,EAAE,GAAG;QACf,YAAY;KACb,CAAC,CAAC;AACL,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"workflow-operator.js","sourceRoot":"","sources":["../../src/services/workflow-operator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "weaver-e10-builder",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12-beta",
|
|
4
4
|
"description": "Eteams/Ebuilder CLI — 泛微 OA 命令行工具",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist",
|
|
8
|
-
"ecodecmd"
|
|
8
|
+
"ecodecmd",
|
|
9
|
+
"skill-docs"
|
|
9
10
|
],
|
|
10
11
|
"bin": {
|
|
11
12
|
"e10-cli": "./dist/index.js",
|
|
@@ -15,6 +16,7 @@
|
|
|
15
16
|
"dev": "tsx src/index.ts",
|
|
16
17
|
"build": "tsc",
|
|
17
18
|
"pack:all": "node scripts/pack-editions.mjs",
|
|
19
|
+
"sync:docs": "node scripts/sync-skill-docs.mjs",
|
|
18
20
|
"start": "node dist/index.js"
|
|
19
21
|
},
|
|
20
22
|
"dependencies": {
|
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: weaver-e10-builder
|
|
3
|
+
display_name: 泛微E10智能搭建Skill
|
|
4
|
+
display_name_en: E10 Builder
|
|
5
|
+
description: 泛微E10智能搭建skill v2(通用版),辅助编写泛微Ebuilder自定义应用,对应CLI版本1.0.12-beta
|
|
6
|
+
description_zh: 泛微Ebuilder低代码应用智能搭建工具 v2(通用版),辅助编写自定义应用(表单/流程/列表/动作流/权限/分组/编号等),与 e10-cli 配套使用,当前对应 CLI 版本 1.0.12-beta。
|
|
7
|
+
description_en: E10 Ebuilder low-code app builder skill v2 (general) — helps build Weaver E10 custom apps (forms/workflows/lists/actionflows/permissions/groups/numbering) via e10-cli, currently paired with CLI 1.0.12-beta.
|
|
8
|
+
category: coding
|
|
9
|
+
version: 1.0.12-beta
|
|
10
|
+
author: 泛微网络科技股份有限公司
|
|
11
|
+
auto: true
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Ebuilder 智能搭建 Skill
|
|
15
|
+
|
|
16
|
+
## 安装与升级
|
|
17
|
+
|
|
18
|
+
本 skill 需与 CLI **版本匹配**(当前对应 CLI `1.0.12-beta`)。版本不一致时命令/文档/选项可能对不上——升级前先对齐:
|
|
19
|
+
|
|
20
|
+
```shell
|
|
21
|
+
e10-cli --version # 查 CLI 版本,应与上方 description 标注一致
|
|
22
|
+
|
|
23
|
+
# CLI 从 npm 装(升级先卸旧包 e10-cli,避免 bin 残留冲突):
|
|
24
|
+
** 注意 如果你使用的是workbuddy **
|
|
25
|
+
先用 bash 直接删掉旧包目录(不走 npm 的删除),再让 npm 纯安装,必须指定一个有权限的工作目录作为缓存地址
|
|
26
|
+
|
|
27
|
+
其他工具可以使用 npm rm -g e10-cli
|
|
28
|
+
|
|
29
|
+
npm install -g weaver-e10-builder
|
|
30
|
+
|
|
31
|
+
# skill 升级:先卸旧(旧名 skill-e10-cli;删掉的命令文档/actionflows 不会自动清,是"删不干净"主因),再装新
|
|
32
|
+
npx -y skills remove skill-e10-cli
|
|
33
|
+
npx -y skills add ./weaver-e10-builder.zip --skill -y
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
> 若 `skills remove` 无效,手动删后再 add,安装位置按工具区分:
|
|
37
|
+
> - Claude Code:`rm -rf ~/.claude/skills/skill-e10-cli` → 新 skill 装到 `~/.claude/skills/weaver-e10-builder`
|
|
38
|
+
> - WorkBuddy:`rm -rf ~/.workbuddy/skills/skill-e10-cli` → 新 skill 装到 `~/.workbuddy/skills/weaver-e10-builder`
|
|
39
|
+
|
|
40
|
+
## 文档与模板取用
|
|
41
|
+
|
|
42
|
+
**skill 只带指令层;文档/模板随配套 CLI 包发布**(marketplace skill 包限两级目录,深目录文档树走 npm)。
|
|
43
|
+
|
|
44
|
+
**文档通常已就位,无需手动拷贝**:
|
|
45
|
+
- 每次会话跑 `e10-cli auth status` 时,CLI 自动探测本机已装 skill(`~/.claude/skills`、`~/.workbuddy/skills`、`~/.codex/skills`),把文档树同步进对应 skill 目录(SKILL.md 版本一致则跳过)。装好 skill 后第一次 `auth status` 即可。
|
|
46
|
+
- 手动刷新:`e10-cli skill sync`(可 `--target <安装根目录>` 指定其他工具目录)。
|
|
47
|
+
|
|
48
|
+
**读取**:文档在 **skill 目录内**(如 `~/.claude/skills/weaver-e10-builder/`),`references/...`、`actionflows/...`、`assets/...` 均相对该目录。按需读取对应文件(决策树命中哪个读哪个,不要一次性全部读入)。
|
|
49
|
+
|
|
50
|
+
**模板拷贝**:页面模板(assets/sample)用 `e10-cli skill copy [目录]` 拷到工作区(默认当前目录,直接放出 `references/`、`actionflows/`、`assets/`)。
|
|
51
|
+
|
|
52
|
+
> **读 `references/...` 提示文件不存在** → 本机 skill 文档还没同步 → 先 `e10-cli skill sync`,或确认 skill 已装后重跑 `e10-cli auth status`。
|
|
53
|
+
|
|
54
|
+
> 文档版本 = CLI 版本(`e10-cli --version`)。升级 CLI 后跑一次 `skill sync`(或 auth status)即可带新文档。
|
|
55
|
+
|
|
56
|
+
## 核心理念
|
|
57
|
+
|
|
58
|
+
> **一份需求文档 = 一个 eb 应用。** 需求里的所有表单、流程、菜单、页面都建在**同一个应用**下,不要按功能点/表单拆成多个应用。只有需求明确要求分属不同业务系统时才建多个应用(此时先跟用户确认再动手)。
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
一份需求文档 → 一个 eb 应用
|
|
62
|
+
└→ 应用下的资源: 表单 → 流程 → 菜单 → 页面
|
|
63
|
+
前四个是业务主体
|
|
64
|
+
页面是最后一步
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
接到需求不要一上来就写页面代码。先想清楚这一个应用下需要哪些表单、字段怎么设计、流程怎么走。
|
|
68
|
+
|
|
69
|
+
**CLI 支持以下能力,均为第一轮就能配好的,不要留到"后续再补":**
|
|
70
|
+
- 字段显隐联动(`form linkage add`)——效果类型:`hide`隐藏 / `show`显示(只读) / `edit`编辑 / `readonly`只读 / `required`必填 / `hideLine`隐藏行(仅表格布局,`hideRow` 兼容)
|
|
71
|
+
- 动作流常量/公式/加减(`--constants` / `--formula` / mapping `+` `-` 前缀)
|
|
72
|
+
- 动作流更新/删除(`--action-type update|delete`)
|
|
73
|
+
- 分支条件 AND/OR 嵌套(`workflow save-condition`)
|
|
74
|
+
- 表单相关人员审批(`set-operator --type form`)
|
|
75
|
+
- 复杂编号/年份编号(`form serial-mark`,如 XM-2026-001)
|
|
76
|
+
- 消息提醒动作流(`workflow message create`)
|
|
77
|
+
- 表单布局管理(`form layout read/init/set-read-only/set-required/move/remove-field`)
|
|
78
|
+
- 表单权限管理(`form permission list/add/remove/rebuild`)
|
|
79
|
+
- 表单视图管理(`form view create/list/populate` + `form table-view create`)
|
|
80
|
+
- 视图权限(`form view-permission list/grant/set`)
|
|
81
|
+
- EBuilder 关联字段数据过滤(`form ebuilder-filter get/set/clear`)
|
|
82
|
+
- 字段函数公式(`form formula set/get/list/functions`)
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 关于「流程表单 / 工作流程」(非默认路径)
|
|
87
|
+
|
|
88
|
+
默认一律走 **eb 表单**(低代码应用内,`workflow create`)——本 skill 的主体就是这个路径,不要主动改道。实在不确定的时候,使用UserAsking工具询问用户。通常情况下:工作流程会配表单引擎创建的原生表单。
|
|
89
|
+
|
|
90
|
+
**只有当用户明确强调「用流程表单 / 工作流程 / 流程中心建流程、不在应用下」时**,才改用 `workflow create-workflow <name> --sub-company <机构>`(`relateForm=0` 自建 / `--form-id` 绑定已有流程表单;表单走 `/api/workflow/core/form/...`;不带 eb 模式的 `source`/`messageParams`)。用户没强调就按 eb 表单走,不要提流程表单。流程表单建好后,加字段 / 明细子表 / 布局用 `wf-form` 系列命令(`wf-form read` / `add-field` / `add-detail-table` / `layout init` / `layout add`),与 eb 表 `form` 命令对齐、机制相同(仅前缀 `/api/workflow/core/form/` 与 `module:'workflow'` 不同)。字段属性(必填/只读/可编辑/独占一行)用 `wf-form field-prop <formId> --required 项目名称 --readonly 审批状态`(getConfig 读→改→initLayout 保存到运行时布局;FLOW 模板默认业务字段只读锁死,建字段后都要跑)。多套布局并存用 `wf-form layout add <formId> --name <布局名> --layout-type FLOW|EXCEL`(流式/表格式,PC/移动端各一套不覆盖);删布局 `wf-form layout delete <formId> <layoutId>`(emptyNodeLayout 从列表移除);字段分组用 `wf-form group <formId> --groups '{"基本信息":["字段名"],"系统设置":["字段名"]}'`(折叠容器,对齐 eb 表)。
|
|
91
|
+
|
|
92
|
+
概念补充:EB应用无法选到表单引擎创建的原生表单。**eb 应用内的流程也有自由流程选项(平台支持),但 CLI 的 `workflow create`(eb)暂不支持(isFree 固定 0);只有工作流程 `workflow create-workflow` 支持 `--is-free 1`。用户要求 eb 流程自由流转时,须告知 CLI 暂不支持(平台可在浏览器配)。**
|
|
93
|
+
|
|
94
|
+
概念补充:**表单字段一旦有数据就不能删除了**(`deleteFormField` 会报"当前字段已被布局引用,不允许删除";先 initLayout 从布局移除再删也删不掉有数据的字段)。因此字段加错了/多余时**不要删,直接从布局隐藏**:getConfig(带 groupFieldIds)→ 把该字段从 Collapse children 里过滤掉 → initLayout 重存,字段定义保留、表单里不再显示。CLI 目前也没有 `wf-form delete-field`(三件套待补);eb 表 `form delete` 只删整张表单。
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 面向人群
|
|
98
|
+
|
|
99
|
+
- 本 skill 面向非编程人员。用户不懂技术,不会描述字段类型、数据关系。
|
|
100
|
+
- 你要主动引导,把模糊需求翻译成精确的平台资源设计。
|
|
101
|
+
|
|
102
|
+
### 工作流
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
0. 环境确认(每次对话必做)
|
|
106
|
+
a. 检查当前鉴权:e10-cli auth status(会顺带自动把 skill 文档同步到本机已装 skill)
|
|
107
|
+
b. 确认文档在 skill 目录内(如 `~/.claude/skills/weaver-e10-builder/references/`);不在就先 `e10-cli skill sync`
|
|
108
|
+
c. 用户提到不同系统地址(如"在 xxx 搭建")→ 必须切换鉴权:
|
|
109
|
+
- 已有 profile(凭证已存):e10-cli auth profile use <name>(直接切,无需重新登录)
|
|
110
|
+
- 新环境:e10-cli auth set --eteamsid "<ETEAMSID>" --base-url <url>
|
|
111
|
+
(ETEAMSID 从浏览器 DevTools → Application → Cookies 复制;浏览器 OIDC 登录暂未实现,不要用 auth login)
|
|
112
|
+
|
|
113
|
+
1. 判断需求复杂度
|
|
114
|
+
├─ 涉及 2+ 模块(应用/表单/流程/页面)→ 进入步骤 2
|
|
115
|
+
└─ 简单单步操作(改字段、查数据)→ 直接执行
|
|
116
|
+
|
|
117
|
+
2. 全局资源设计(复杂需求必经)
|
|
118
|
+
a. 理解需求,不够清楚的地方反问用户
|
|
119
|
+
b. 在本地写 `plan.md` 搭建计划大纲,**逐项列出所有待建资源**:
|
|
120
|
+
```
|
|
121
|
+
## 搭建计划
|
|
122
|
+
### 应用
|
|
123
|
+
- [ ] <应用名> | ID: 待创建 ← 一份需求只建这一个应用,所有表单/流程/菜单都在它下面
|
|
124
|
+
### 表单
|
|
125
|
+
- [ ] <表单名> | ID: 待创建
|
|
126
|
+
字段: 名称(Text) / 项目金额(Money) / 备注(TextArea,独占一行) / 客户名称(Text,group=基本信息) / 联系电话(Phone,group=基本信息) / 明细表: 序号(Number) ...
|
|
127
|
+
(选项/编号规则/默认值/百分比显示建表时一并写全;单位无独立属性,写进字段名如 工时单价(元))
|
|
128
|
+
(**布局规划勿漏**:长文本/备注/地址/描述/富文本等 → 独占一行(`singleRow:true`);6+ 字段或有逻辑分段(基本信息/合同信息/系统设置…) → 按 `group` 名分组。建表时 fields.json 一并写全,勿留到建后补——AI 常漏这两项)
|
|
129
|
+
### 流程 <流程名>
|
|
130
|
+
> ⚠️ **流程级必做**:① 流程编号(`workflow numbering`,方案有编号规则的);② 出口名称(`workflow link-rename`,连线默认名是英文/随机,**改成业务人话**,如"金额≥10万"、"金额<10万",分支连线尤其要改);③ 出口条件清单(见下方模板——**先列全表,再逐条创建**,勿凭印象跳步)
|
|
131
|
+
- [ ] <节点1> | 操作者: 创建人
|
|
132
|
+
- [ ] <节点2> | 操作者: 区域经理+部门领导(竞签)
|
|
133
|
+
- [ ] <节点3> | 条件: <字段>=<值> 才走到,否则跳过/直达<节点>
|
|
134
|
+
- [ ] <节点4> | 操作者: 角色X | 动作流: → <目标表>(add/update/delete, 映射: 源→目标)
|
|
135
|
+
- [ ] <节点N> | ... (每个节点一行,操作者/条件/动作流挂在对应节点上)
|
|
136
|
+
>
|
|
137
|
+
> #### 出口条件清单(必填——动手前逐条列出,防止遗漏)
|
|
138
|
+
>
|
|
139
|
+
> 段② 执行到条件时,先按以下模板列出**所有连线的完整条件表**,逐条确认后再 `workflow condition add`:
|
|
140
|
+
>
|
|
141
|
+
> | 来源节点 | 目标节点 | 连线名 | 条件 | 来源 | 操作 | 值/右字段 | 明细量词 | 备注 |
|
|
142
|
+
> |---|---|---|---|---|---|---|---|---|
|
|
143
|
+
> | 发起 | 初审 | 部门初审 | 所属部门=财务部 | form:所属部门 | 等于 | 财务部 | — | |
|
|
144
|
+
> | 发起 | 初审 | 部门初审 | 报销金额5k~10k | form:报销金额 | 范围 | 5000:10000 | — | 数值范围 |
|
|
145
|
+
> | 发起 | 初审 | 部门初审 | 发起时间≥报销日期 | system:发起时间 | 大于等于 | field:报销日期 | — | 变量模式 |
|
|
146
|
+
> | 发起 | 初审 | 部门初审 | 报销类型∈{差旅,住宿} 或 发票编号含FP | form:报销类型 | 属于 | 差旅费,住宿费 | 任一 | 与下行OR |
|
|
147
|
+
> | 发起 | 初审 | 部门初审 | 同上OR组 | form:发票编号 | 包含 | FP | 任一 | 接上行OR |
|
|
148
|
+
>
|
|
149
|
+
> 要点:
|
|
150
|
+
> - **每行一条原子条件**,OR 组拆多行备注"与下行OR"
|
|
151
|
+
> - 操作列:`等于`/`大于`/`小于`/`范围`/`属于`/`包含`/`为空`/`不为空`/`field`(变量模式)
|
|
152
|
+
> - 值列:字面值直接写;`field:` 前缀表示引用另一字段(变量模式)
|
|
153
|
+
> - 明细量词:`任一`(任一行) / `所有`(所有行) / `—`(主表)
|
|
154
|
+
> - 创建完 `workflow condition list <wfId>` 回读,核对条件总数与表一致
|
|
155
|
+
### 菜单
|
|
156
|
+
- [ ] <菜单名> | 指向: <流程/表单>
|
|
157
|
+
### 页面
|
|
158
|
+
- [ ] 无定制页面,表单自带台账(有定制页面才另列)
|
|
159
|
+
### 必做项(销号核对,勿依赖平台默认值——平台默认值≠方案要求)
|
|
160
|
+
> ⚠️ **[ ] 是待办,不是"已规划"。规划阶段全部留 `[ ]`;执行阶段做完一项、验证通过,才把 `[ ]` 改 `[x]` 并填入 ID。**plan 是配合搭建过程用的进度表——**完成一条打勾一条**,全部 `[x]` 才算完工。**禁止在规划阶段就把项勾成 `[x]`**(那等于谎报完成)。
|
|
161
|
+
- [ ] 角色: role create(方案要求的每个角色都要建,不会自动有)
|
|
162
|
+
- [ ] 节点操作者: workflow set-operator(每个审批节点,勿默认"所有人")
|
|
163
|
+
- [ ] 流程编号: workflow numbering(方案有编号规则的流程。工作流程表单字段流水号如"LXLC-4位流水号"用 `workflow numbering set <wf> --prefix LXLC --serial 4 --no-year`)
|
|
164
|
+
- [ ] 出口名称: workflow link-rename(有分支条件的连线,改成人话)
|
|
165
|
+
- [ ] 显示列: form ebuilder-columns / list-columns(先 `ebuilder-columns` 不带参数看**业务字段候选清单**(系统字段已自动过滤),从清单选字段名设置)
|
|
166
|
+
- [ ] 数据过滤: form ebuilder-scope(关联浏览字段的数据范围设置,如"客户状态=启用"才可选;配到关联浏览字段上)
|
|
167
|
+
- [ ] 提交校验: workflow node validate(字段 vs 字段/字面值/跨表,如 "请假时长 小于 4" 禁止提交、"行程明细.行程开始时间 等于 出差开始日期" 主子表校验)
|
|
168
|
+
- [ ] 签字意见必填: workflow node sign(退回等操作类型必填意见,如 `node sign <wf> <审批节点> --select "退回"`)
|
|
169
|
+
- [ ] 流程标题: workflow setting title(标题按规则生成真实数据,如 `--rule "发起人|提交日期|客户名称"`;标题=流程名+系统字段则跳过)
|
|
170
|
+
- [ ] 数据来源落点: 写入型动作流的目标台账**必须建 Flow 字段**(如「数据来源」←来源流程,`form add-field <台账> <app> "数据来源" Flow --sform-id <流程表单objId>`)——add 时 `--sysvar` 写 requestId 的落点,update/delete 也靠它定位
|
|
171
|
+
```
|
|
172
|
+
> **应用数量**:默认全需求只建 **1 个**应用。看到需求先归拢到这一个应用下,不要按功能点拆应用。确需多应用(分属不同业务系统)要先跟用户确认。
|
|
173
|
+
> **流程按节点逐行**:每个节点一行 `- [ ]`,操作者(含签署方式:会签/非会签/竞签/依次/抄送)、条件(什么情况走到/跳过/直达)、动作流(该节点触发写目标表)都挂在对应节点上。**「A 或 B 审批」= 一节点多人 + 竞签/非会签**,写进操作者行,不拆节点。逐节点销号。
|
|
174
|
+
c. 拿计划大纲和用户确认(**此阶段 plan 里所有 `[ ]` 保持未勾**——是待办清单,不是完成清单)
|
|
175
|
+
d. 用户确认后按大纲**逐项执行、逐项打勾**:每做完一项、验证通过,才把 `[ ]` 改 `[x]` 并填入实际 ID。**完成一条打勾一条**,禁止预勾。
|
|
176
|
+
|
|
177
|
+
> **台账页面不用写**:表单建好即自带台账(搜索/筛选/导出/批量操作)。plan 里的「### 页面」只列**定制化需求**(图表、跨表聚合、特殊交互)。没有定制页面就把整节标 `### 页面(无需,表单自带台账)`。
|
|
178
|
+
|
|
179
|
+
3. 执行搭建(**最多分三段,每段完成停下来让用户确认,确认后才进下一段**)
|
|
180
|
+
- **段① 应用 + 角色 + 全部表单**:
|
|
181
|
+
- 建应用、建角色
|
|
182
|
+
- **每张表一口气建全**:`form create --fields @fields.json` 写全字段/选项/默认值/精度/百分比/子表/明细/**独占一行(singleRow)/分组(group)**(勿先建空表再 add-field;singleRow/group 留到建后补容易漏)
|
|
183
|
+
- **建表后逐表配齐表内项**(缺一项这张表就不算完成,逐项打勾):
|
|
184
|
+
- `serial-mark` 复杂编号(编号字段:前缀/年份/流水)
|
|
185
|
+
- `relateFrom` 值带出(EBuilder 关联带出:`edit-field --relate-from`;表内人员/部门带出:`form relate`)
|
|
186
|
+
- `ebuilder-scope` 关联浏览数据范围(如客户状态=启用才可选)
|
|
187
|
+
- `formula` 字段公式(付款比例/工时金额等;fields.json inline 或 `form formula set`)
|
|
188
|
+
- `validate` 查重校验(项目名称/工时日期重复不允许)
|
|
189
|
+
- `list-columns` 台账显示列(去系统字段,只留业务字段)
|
|
190
|
+
- 全部表 + 表内项都完成后,给用户列表单清单 + 关键字段,**确认字段设计**再进段②
|
|
191
|
+
- **段② 流程**(节点/操作者/条件/动作流):
|
|
192
|
+
- 先列**出口条件清单**(见上方模板,动手前逐条列出所有连线条件,避免遗漏)
|
|
193
|
+
- 逐条 `workflow condition add` 创建,每创建一条在计划清单打勾
|
|
194
|
+
- 全部条件创建后 `workflow condition list <wfId>` 回读,核对条件总数与清单一致
|
|
195
|
+
- 完成后给用户列流程(节点+签署方式+条件),**确认流程**再进段③
|
|
196
|
+
- **段③ 菜单 + 页面**
|
|
197
|
+
- 每段内按 plan.md 逐项推进、即时打勾,做到「大纲驱动、逐项销号」。
|
|
198
|
+
- 简单单步需求(改字段、查数据)不分段,直接执行。
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**关键约束**:
|
|
202
|
+
- Plan 阶段**不调用 e10-cli 写命令**(可以 list/read 查询现状)
|
|
203
|
+
- **必须写 plan.md 落地**,不要只在对话里列方案——用户需要一份可回顾的文档
|
|
204
|
+
- 执行时逐项销号,全部 `[x]` 才算完工
|
|
205
|
+
- **分段执行、分段确认**:应用+表单 → 确认 → 流程 → 确认 → 菜单/页面。**表单是流程的地基**(流程绑定表单、条件/动作流/操作者都引用字段),字段设计错了流程全返工,所以表单段必须确认后再进流程
|
|
206
|
+
- 本服务运行于 Windows 环境,注意命令行兼容性
|
|
207
|
+
- 不要多说废话,直接干活。用户等的是结果。
|
|
208
|
+
- **写代码不要犹豫**,按模板直接出完整代码,写完用 `e10-cli check` 验证。错了报错再改。
|
|
209
|
+
- **表单字段一次性建好**:`form create --fields @fields.json` 时把所有字段定义写全,包括选项、默认值、**独占一行(`singleRow`)/分组(`group`)**。**不要先建表再加字段**——add-field/edit-field 只是罕见补救手段,正常流程就是一口气建完。布局属性(singleRow/group)建表时就要定,建后补容易漏。
|
|
210
|
+
- **解析 Word 文档**:用 `e10-cli docx read <文件>` 一键转 markdown + 提取图片,**禁止自己写 python-docx 脚本**。读取后必须逐张 Read `_images/` 目录里的图片做多模态理解,**把分析结果写回 md**(替换图片占位符为实际描述,让文档完整可读)。
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## 决策树
|
|
215
|
+
|
|
216
|
+
> **根据用户需求自动加载对应子文档,不要一次性读取全部 reference。**
|
|
217
|
+
>
|
|
218
|
+
> **动作流两种用法**:动作流「生成」一律走 native `e10-cli actionflow generate`(语义 plan → 编译 → preflight → 保存并启用 → 正式回读,event 节点自带流程节点触发绑定,**推荐**);`e10-cli workflow action` 仅作动作流管理(`list-node`/`clear-node` 查清节点绑定、`delete`/`disable`/`batch-delete` 禁用删除动作流 app)。本表字段赋值/节点附加操作(actionType=0)用 `e10-cli workflow save-action`。
|
|
219
|
+
> ```bash
|
|
220
|
+
> e10-cli actionflow component-list # 列已登记组件
|
|
221
|
+
> e10-cli actionflow component-describe <type> # 读组件契约
|
|
222
|
+
> e10-cli actionflow generate '{"planFile":"@plan.json","appName":"AI-名称"}' # 生成+保存并启用+正式回读;planFile 必须以 @ 引用文件(@plan.json 或 @绝对路径),CLI 强制要求 @ 前缀
|
|
223
|
+
> e10-cli workflow action list-node <wf> <node> # 查节点绑定;clear-node 清;delete/disable 删动作流
|
|
224
|
+
> ```
|
|
225
|
+
|
|
226
|
+
| 用户关键词 | 加载文档 |
|
|
227
|
+
|-----------|---------|
|
|
228
|
+
| 建应用、创建应用、app、应用列表、应用详情、应用目录、app read/list/folder/edit/delete | `references/common/ref-cli-commands.md` |
|
|
229
|
+
| 鉴权、登录、ETEAMSID、多环境、profile、切换环境 | `references/auth/guide-auth.md` |
|
|
230
|
+
| 表单数据读写、getSimpleData、withDisplayNames、getFieldOptions、saveFormData、updateFormData | `references/coding/guide-form-crud.md`(前端代码) |
|
|
231
|
+
| form data add、form data list、form data delete、写入数据、查询数据、删除数据 | `references/form/guide-form-data.md` |
|
|
232
|
+
| 编辑回显、handleEdit、getAllData、数据回填 | `references/coding/guide-edit-backfill.md`(前端代码) |
|
|
233
|
+
| 字段联动、显隐联动、条件显示、form linkage | `references/form/guide-form-linkage.md` |
|
|
234
|
+
| 新建表单、form create、字段定义、字段类型、fields.json | `references/form/guide-create-form.md` |
|
|
235
|
+
| 流程、审批、workflow、提交流程、预填 | `references/workflow/guide-workflow.md` |
|
|
236
|
+
| 流程节点、操作者、审批人、连线、添加节点、删除连线、删除节点、delete-node、节点操作者、set-operator、出口名称、link-rename、节点字段权限、field-permission | `references/workflow/guide-workflow.md` |
|
|
237
|
+
| 节点校验、提交校验、node validate、智能审批规则、字面值校验、禁止提交 | `references/common/ref-cli-commands.md` |
|
|
238
|
+
| 分支条件、出口条件、条件JSON、save-condition、连线条件 | `references/workflow/guide-workflow-condition.md` |
|
|
239
|
+
| 动作流、跨表单、写入台账、ActionEbAdd/ActionEbUpdate/ActionEbDelete、提交事件、数据来源、requestId、按流程定位、回写数据ID、回写 | `references/workflow/guide-workflow-action.md`(动作流生成走 `e10-cli actionflow generate`;`workflow action` 仅查/清/删/禁用;本表字段赋值走 `save-action`) |
|
|
240
|
+
| 菜单、导航、左侧菜单、系统页面、待办、已办、流程监控 | `references/menu/system-menus.md` |
|
|
241
|
+
| 角色、角色管理、权限、成员 | `references/common/ref-cli-commands.md` |
|
|
242
|
+
| 新页面、导出、路由、entry.js、asyncImport | `references/coding/guide-page-export.md`(前端代码) |
|
|
243
|
+
| 写页面、页面代码、React编码、组件、entry.js模板 | `references/coding/guide-page-code.md`(前端代码) |
|
|
244
|
+
| CLI命令、打包、build、import、创建应用/表单/菜单 | `references/common/ref-cli-commands.md` |
|
|
245
|
+
| 编译报错、语法不支持、babel | `references/coding/ref-compile-rules.md`(前端代码) |
|
|
246
|
+
| Word文档、docx、需求文档、解析文档 | `e10-cli docx read` 一键转换,禁止自己写脚本 |
|
|
247
|
+
| 新建视图、表格视图、看板、日历、思维导图、form view、台账显示列、显示列、list-columns、搜索条件、排序、list-sort、顶部统计、list-stats | `references/form/guide-form-view.md` |
|
|
248
|
+
| 视图权限、查看布局、修改共享权限、view permission | `references/form/guide-form-view-permission.md` |
|
|
249
|
+
| EBuilder关联、关联表单、数据过滤设置、ebuilder-filter、EBuilder显示列、ebuilder-columns、去掉系统字段、只留业务字段 | `references/form/guide-ebuilder-filter.md` |
|
|
250
|
+
| 关联浏览筛选、数据范围设置、浏览数据定义、只选启用状态、关联客户过滤、ebuilder-scope | `references/form/guide-ebuilder-scope.md` |
|
|
251
|
+
| 字段分组、分组容器、字段分段、基本信息/合同信息分段、Collapse、Fold、字段归组 | `references/form/guide-create-form.md`(**按需**:用户明确要求字段分组才在 fields.json 写 `group`,默认不加分组) |
|
|
252
|
+
| 独占一行、整行显示、字段换行、singleRow、--single-row | `references/form/guide-create-form.md`(fields.json 字段写 `"singleRow":true`;add-field 用 `--single-row`) |
|
|
253
|
+
| 字段多选、多选、单选、人员多选、部门多选、关联多选、multiple、--multiple | `references/form/guide-create-form.md`(fields.json 写 `"multiple":true`;add-field `--multiple`;edit-field `--multiple`/`--no-multiple`。仅人员/部门/EBuilder/Browser 支持) |
|
|
254
|
+
| 函数公式、字段公式、formula、DAYS、日期差、expressId、公式绑定 | `references/form/guide-form-formula-functions.md`(219 个函数速查矩阵,写 `fields.json` 的 `formula` 或 `form formula set --expression` 时查函数格式/示例;**日期差用 `DAYS(开始,结束)`**) |
|
|
255
|
+
| 表单按钮、button、自定义按钮 | `references/common/ref-cli-commands.md` |
|
|
256
|
+
| 表单权限、permission、数据权限 | `references/common/ref-cli-commands.md` |
|
|
257
|
+
| 消息提醒、消息动作流、workflow message、IM提醒 | `references/common/ref-cli-commands.md` |
|
|
258
|
+
| 编号规则、serial-mark、自动编号、流水号、年份编号、流程编号、numbering | `references/common/ref-cli-commands.md` |
|
|
259
|
+
| 超时处理、退回设置、节点菜单、node timeout、node reject | `references/common/ref-cli-commands.md` |
|
|
260
|
+
| 流程设置、提交确认、签字意见、批量操作、setting | `references/common/ref-cli-commands.md` |
|
|
261
|
+
| 流程存档、定时触发、高级设置、advanced | `references/common/ref-cli-commands.md` |
|
|
262
|
+
| HRM、矩阵、条件矩阵、matrix、映射表 | `references/hrm/guide-matrix.md` |
|
|
263
|
+
|
|
264
|
+
> 组件文档(Button/Table/Input/Upload 等)在 `references/` 中按文件名查找。完整索引见 `_catalog.md`。
|
|
265
|
+
|
|
266
|
+
> **表单自带默认台账** — 用户明确要求额外表格视图时,用 `form table-view create` 原子完成 `nListView` 创建、显示列配置和回读;禁止用 `form view create --type tableView` 创建空壳。`formView` 使用 `form view create` 后必须执行 `form view populate`。
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
## 平台架构
|
|
271
|
+
|
|
272
|
+
- **Ecode** — 存放和运行代码的平台,自定义页面在这里编码、构建、运行
|
|
273
|
+
- **Ebuilder 应用** — 独立的概念,包含表单、流程等元素(与 Ecode 项目不同)
|
|
274
|
+
- **表单自带台账,无需开发** — 每个表单创建后,平台自动生成默认的台账/列表页面,自带搜索、筛选、导出、批量操作。**台账会自动挂入应用菜单,无需手动建菜单。** 这不是一个「功能」,是一个硬规则——建了表单就有台账页面,不需要写一行代码。只有以下场景才需要自定义页面:图表仪表盘、跨表单聚合视图、特殊交互流程、对外公开页面。
|
|
275
|
+
- 所有系统交互命令均通过 `e10-cli` 执行(已全局 link)。auth 文件自动查找,也可 `--auth <path>` 指定。
|
|
276
|
+
- 用户的 userId 是固定的变量 `TEAMS.currentUser.id`,系统里已支持,js 代码里可以直接写。
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## 平台能力边界(禁止编造)
|
|
281
|
+
|
|
282
|
+
> **以下能力 CLI 不支持、平台也不支持,AI 禁止声称可以做、禁止输出操作步骤。**
|
|
283
|
+
|
|
284
|
+
| 不支持的能力 | 说明 |
|
|
285
|
+
|-------------|------|
|
|
286
|
+
| **H5/移动端菜单** | 移动端是独立体系(不同 URL + 不同 pageId),尚未整理,禁止编造 |
|
|
287
|
+
|
|
288
|
+
> 遇到用户要求以上不支持的能力时,必须明确告知"当前平台/CLI 不支持",不要给出虚假操作步骤。
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## 关键数据操作速查
|
|
293
|
+
|
|
294
|
+
### 表单数据 API
|
|
295
|
+
|
|
296
|
+
| API | 用途 | 返回内容 |
|
|
297
|
+
|-----|------|---------|
|
|
298
|
+
| `getSimpleData(objId, userId)` | 读 ID、写回 formToSave | 所有特殊字段统一返回 `fieldOptionId`(纯数字串) |
|
|
299
|
+
| `getAllData(objId, userId)` | 提取名称、编辑回显 | 含 `fieldOptionName`,mainTable key 是随机哈希 |
|
|
300
|
+
| `withDisplayNames(rows, map)` | 表格展示:ID → 名称 | 把 Select 的 `valueKey` 映射为中文名 |
|
|
301
|
+
| `getFieldOptions(fieldId, objId)` | 拿下拉选项 | `[{valueKey, name}]` |
|
|
302
|
+
|
|
303
|
+
### 不同字段类型,名称来源不同
|
|
304
|
+
|
|
305
|
+
| 字段类型 | getSimpleData 返回 | 展示时名称来源 |
|
|
306
|
+
|---------|-------------------|--------------|
|
|
307
|
+
| Text / Number / Date | `"值"` / `123` / `"2026-01-01"` | 直接展示 |
|
|
308
|
+
| Select / RadioBox / CheckBox | `"1283421826353889337"`(选项 ID) | `getFieldOptions` → `withDisplayNames` 映射 |
|
|
309
|
+
| **Employee** | `"2765550234448235905"`(用户 ID) | `getAllData` 的 `fieldOptionName`,**不是** getFieldOptions |
|
|
310
|
+
| **Department** | `"2765550234448235905"`(部门 ID) | 同上 |
|
|
311
|
+
| FileComponent | `"fileid1,fileid2"`(文件 ID 串) | 上传组件的 `name` |
|
|
312
|
+
|
|
313
|
+
> 完整数据读写指南见 `references/coding/guide-form-crud.md`(前端代码),编辑回显见 `references/coding/guide-edit-backfill.md`(前端代码)。
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## 页面编码
|
|
318
|
+
|
|
319
|
+
> **页面是搭建流程的最后一步。** 写页面代码前,确保应用、表单、流程都已建好。
|
|
320
|
+
|
|
321
|
+
页面编码规范、entry.js 模板、@weapp/ui 组件清单、编译规则、代码质量检查清单 → 详见 `references/coding/guide-page-code.md`(前端代码)。
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## 快速参考
|
|
326
|
+
|
|
327
|
+
- 入口注册 + 新页面导出 → `references/coding/guide-page-export.md`(前端代码)
|
|
328
|
+
- 流程 URL 透传、预填 → `references/workflow/guide-workflow.md`
|
|
329
|
+
- 编译约束(var 声明、不支持的语法)→ `references/coding/ref-compile-rules.md`(前端代码)
|
|
330
|
+
- CLI 命令速查 → `references/common/ref-cli-commands.md`
|
|
331
|
+
- 组件完整索引 → `_catalog.md`
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## 附:自定义页面代码场景——拷贝模板项目
|
|
336
|
+
|
|
337
|
+
> 仅用于「自定义页面代码」场景(写 entry.js / 自定义页面、调 formApi)。建表单/流程/菜单等不需要拷模板,直接用 `e10-cli` 命令。
|
|
338
|
+
|
|
339
|
+
先 `e10-cli skill copy` 把模板拷到本地(在 `assets/sample/`;本机完整安装也可直接读 `assets/sample/`),再拷贝模板文件到你的工作目录。
|
|
340
|
+
|
|
341
|
+
模板包含:
|
|
342
|
+
| 文件 | 用途 |
|
|
343
|
+
|------|------|
|
|
344
|
+
| `entry.js` | 路由注册入口,已配置好 `asyncImport` |
|
|
345
|
+
| `api/formApi.js` | 表单数据读写的标准 API |
|
|
346
|
+
| `config/config.js` | 基础配置(userId 等) |
|
|
347
|
+
| `eslint.config.cjs` | 代码检查规则 |
|
|
348
|
+
| `.claude/settings.local.json` | Claude Code 本地设置 |
|