weaver-e10-builder 1.0.2-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/README.md +200 -0
- package/dist/commands/app.d.ts +3 -0
- package/dist/commands/app.d.ts.map +1 -0
- package/dist/commands/app.js +305 -0
- package/dist/commands/app.js.map +1 -0
- package/dist/commands/auth.d.ts +3 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +386 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/check.d.ts +3 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +106 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/compile.d.ts +3 -0
- package/dist/commands/compile.d.ts.map +1 -0
- package/dist/commands/compile.js +134 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/docx.d.ts +3 -0
- package/dist/commands/docx.d.ts.map +1 -0
- package/dist/commands/docx.js +54 -0
- package/dist/commands/docx.js.map +1 -0
- package/dist/commands/form-button.d.ts +3 -0
- package/dist/commands/form-button.d.ts.map +1 -0
- package/dist/commands/form-button.js +441 -0
- package/dist/commands/form-button.js.map +1 -0
- package/dist/commands/form-data.d.ts +3 -0
- package/dist/commands/form-data.d.ts.map +1 -0
- package/dist/commands/form-data.js +197 -0
- package/dist/commands/form-data.js.map +1 -0
- package/dist/commands/form-ebuilder-columns.d.ts +3 -0
- package/dist/commands/form-ebuilder-columns.d.ts.map +1 -0
- package/dist/commands/form-ebuilder-columns.js +118 -0
- package/dist/commands/form-ebuilder-columns.js.map +1 -0
- package/dist/commands/form-ebuilder-filter.d.ts +3 -0
- package/dist/commands/form-ebuilder-filter.d.ts.map +1 -0
- package/dist/commands/form-ebuilder-filter.js +135 -0
- package/dist/commands/form-ebuilder-filter.js.map +1 -0
- package/dist/commands/form-ebuilder-scope.d.ts +3 -0
- package/dist/commands/form-ebuilder-scope.d.ts.map +1 -0
- package/dist/commands/form-ebuilder-scope.js +321 -0
- package/dist/commands/form-ebuilder-scope.js.map +1 -0
- package/dist/commands/form-ebuilder-search.d.ts +3 -0
- package/dist/commands/form-ebuilder-search.d.ts.map +1 -0
- package/dist/commands/form-ebuilder-search.js +252 -0
- package/dist/commands/form-ebuilder-search.js.map +1 -0
- package/dist/commands/form-formula.d.ts +12 -0
- package/dist/commands/form-formula.d.ts.map +1 -0
- package/dist/commands/form-formula.js +252 -0
- package/dist/commands/form-formula.js.map +1 -0
- package/dist/commands/form-layout-init.d.ts +15 -0
- package/dist/commands/form-layout-init.d.ts.map +1 -0
- package/dist/commands/form-layout-init.js +162 -0
- package/dist/commands/form-layout-init.js.map +1 -0
- package/dist/commands/form-layout.d.ts +3 -0
- package/dist/commands/form-layout.d.ts.map +1 -0
- package/dist/commands/form-layout.js +236 -0
- package/dist/commands/form-layout.js.map +1 -0
- package/dist/commands/form-list-click.d.ts +3 -0
- package/dist/commands/form-list-click.d.ts.map +1 -0
- package/dist/commands/form-list-click.js +154 -0
- package/dist/commands/form-list-click.js.map +1 -0
- package/dist/commands/form-list-event.d.ts +3 -0
- package/dist/commands/form-list-event.d.ts.map +1 -0
- package/dist/commands/form-list-event.js +203 -0
- package/dist/commands/form-list-event.js.map +1 -0
- package/dist/commands/form-list-filter.d.ts +9 -0
- package/dist/commands/form-list-filter.d.ts.map +1 -0
- package/dist/commands/form-list-filter.js +107 -0
- package/dist/commands/form-list-filter.js.map +1 -0
- package/dist/commands/form-list-group.d.ts +11 -0
- package/dist/commands/form-list-group.d.ts.map +1 -0
- package/dist/commands/form-list-group.js +100 -0
- package/dist/commands/form-list-group.js.map +1 -0
- package/dist/commands/form-list-permission.d.ts +3 -0
- package/dist/commands/form-list-permission.d.ts.map +1 -0
- package/dist/commands/form-list-permission.js +127 -0
- package/dist/commands/form-list-permission.js.map +1 -0
- package/dist/commands/form-list-search-group.d.ts +3 -0
- package/dist/commands/form-list-search-group.d.ts.map +1 -0
- package/dist/commands/form-list-search-group.js +132 -0
- package/dist/commands/form-list-search-group.js.map +1 -0
- package/dist/commands/form-list-stats.d.ts +11 -0
- package/dist/commands/form-list-stats.d.ts.map +1 -0
- package/dist/commands/form-list-stats.js +139 -0
- package/dist/commands/form-list-stats.js.map +1 -0
- package/dist/commands/form-list-unit.d.ts +3 -0
- package/dist/commands/form-list-unit.d.ts.map +1 -0
- package/dist/commands/form-list-unit.js +95 -0
- package/dist/commands/form-list-unit.js.map +1 -0
- package/dist/commands/form-list-utils.d.ts +32 -0
- package/dist/commands/form-list-utils.d.ts.map +1 -0
- package/dist/commands/form-list-utils.js +76 -0
- package/dist/commands/form-list-utils.js.map +1 -0
- package/dist/commands/form-list.d.ts +3 -0
- package/dist/commands/form-list.d.ts.map +1 -0
- package/dist/commands/form-list.js +624 -0
- package/dist/commands/form-list.js.map +1 -0
- package/dist/commands/form-permission.d.ts +3 -0
- package/dist/commands/form-permission.d.ts.map +1 -0
- package/dist/commands/form-permission.js +193 -0
- package/dist/commands/form-permission.js.map +1 -0
- package/dist/commands/form-relate.d.ts +14 -0
- package/dist/commands/form-relate.d.ts.map +1 -0
- package/dist/commands/form-relate.js +140 -0
- package/dist/commands/form-relate.js.map +1 -0
- package/dist/commands/form-serial-mark.d.ts +18 -0
- package/dist/commands/form-serial-mark.d.ts.map +1 -0
- package/dist/commands/form-serial-mark.js +167 -0
- package/dist/commands/form-serial-mark.js.map +1 -0
- package/dist/commands/form-table-view.d.ts +3 -0
- package/dist/commands/form-table-view.d.ts.map +1 -0
- package/dist/commands/form-table-view.js +217 -0
- package/dist/commands/form-table-view.js.map +1 -0
- package/dist/commands/form-validate.d.ts +3 -0
- package/dist/commands/form-validate.d.ts.map +1 -0
- package/dist/commands/form-validate.js +122 -0
- package/dist/commands/form-validate.js.map +1 -0
- package/dist/commands/form-view-permission.d.ts +3 -0
- package/dist/commands/form-view-permission.d.ts.map +1 -0
- package/dist/commands/form-view-permission.js +86 -0
- package/dist/commands/form-view-permission.js.map +1 -0
- package/dist/commands/form-view.d.ts +3 -0
- package/dist/commands/form-view.d.ts.map +1 -0
- package/dist/commands/form-view.js +145 -0
- package/dist/commands/form-view.js.map +1 -0
- package/dist/commands/form.d.ts +3 -0
- package/dist/commands/form.d.ts.map +1 -0
- package/dist/commands/form.js +2467 -0
- package/dist/commands/form.js.map +1 -0
- package/dist/commands/icon.d.ts +3 -0
- package/dist/commands/icon.d.ts.map +1 -0
- package/dist/commands/icon.js +82 -0
- package/dist/commands/icon.js.map +1 -0
- package/dist/commands/matrix.d.ts +3 -0
- package/dist/commands/matrix.d.ts.map +1 -0
- package/dist/commands/matrix.js +587 -0
- package/dist/commands/matrix.js.map +1 -0
- package/dist/commands/menu-permission.d.ts +3 -0
- package/dist/commands/menu-permission.d.ts.map +1 -0
- package/dist/commands/menu-permission.js +188 -0
- package/dist/commands/menu-permission.js.map +1 -0
- package/dist/commands/menu.d.ts +16 -0
- package/dist/commands/menu.d.ts.map +1 -0
- package/dist/commands/menu.js +269 -0
- package/dist/commands/menu.js.map +1 -0
- package/dist/commands/project.d.ts +3 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +345 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/role.d.ts +3 -0
- package/dist/commands/role.d.ts.map +1 -0
- package/dist/commands/role.js +224 -0
- package/dist/commands/role.js.map +1 -0
- package/dist/commands/user.d.ts +3 -0
- package/dist/commands/user.d.ts.map +1 -0
- package/dist/commands/user.js +49 -0
- package/dist/commands/user.js.map +1 -0
- package/dist/commands/workflow-action.d.ts +3 -0
- package/dist/commands/workflow-action.d.ts.map +1 -0
- package/dist/commands/workflow-action.js +1821 -0
- package/dist/commands/workflow-action.js.map +1 -0
- package/dist/commands/workflow-advanced.d.ts +3 -0
- package/dist/commands/workflow-advanced.d.ts.map +1 -0
- package/dist/commands/workflow-advanced.js +290 -0
- package/dist/commands/workflow-advanced.js.map +1 -0
- package/dist/commands/workflow-condition.d.ts +7 -0
- package/dist/commands/workflow-condition.d.ts.map +1 -0
- package/dist/commands/workflow-condition.js +562 -0
- package/dist/commands/workflow-condition.js.map +1 -0
- package/dist/commands/workflow-message.d.ts +3 -0
- package/dist/commands/workflow-message.d.ts.map +1 -0
- package/dist/commands/workflow-message.js +399 -0
- package/dist/commands/workflow-message.js.map +1 -0
- package/dist/commands/workflow-node-overtime.d.ts +3 -0
- package/dist/commands/workflow-node-overtime.d.ts.map +1 -0
- package/dist/commands/workflow-node-overtime.js +150 -0
- package/dist/commands/workflow-node-overtime.js.map +1 -0
- package/dist/commands/workflow-node-reject.d.ts +3 -0
- package/dist/commands/workflow-node-reject.d.ts.map +1 -0
- package/dist/commands/workflow-node-reject.js +115 -0
- package/dist/commands/workflow-node-reject.js.map +1 -0
- package/dist/commands/workflow-node-sign.d.ts +15 -0
- package/dist/commands/workflow-node-sign.d.ts.map +1 -0
- package/dist/commands/workflow-node-sign.js +100 -0
- package/dist/commands/workflow-node-sign.js.map +1 -0
- package/dist/commands/workflow-node-validate.d.ts +16 -0
- package/dist/commands/workflow-node-validate.d.ts.map +1 -0
- package/dist/commands/workflow-node-validate.js +169 -0
- package/dist/commands/workflow-node-validate.js.map +1 -0
- package/dist/commands/workflow-node.d.ts +3 -0
- package/dist/commands/workflow-node.d.ts.map +1 -0
- package/dist/commands/workflow-node.js +347 -0
- package/dist/commands/workflow-node.js.map +1 -0
- package/dist/commands/workflow-numbering.d.ts +17 -0
- package/dist/commands/workflow-numbering.d.ts.map +1 -0
- package/dist/commands/workflow-numbering.js +191 -0
- package/dist/commands/workflow-numbering.js.map +1 -0
- package/dist/commands/workflow-plan-range.d.ts +3 -0
- package/dist/commands/workflow-plan-range.d.ts.map +1 -0
- package/dist/commands/workflow-plan-range.js +116 -0
- package/dist/commands/workflow-plan-range.js.map +1 -0
- package/dist/commands/workflow-setting.d.ts +3 -0
- package/dist/commands/workflow-setting.d.ts.map +1 -0
- package/dist/commands/workflow-setting.js +440 -0
- package/dist/commands/workflow-setting.js.map +1 -0
- package/dist/commands/workflow-title.d.ts +14 -0
- package/dist/commands/workflow-title.d.ts.map +1 -0
- package/dist/commands/workflow-title.js +106 -0
- package/dist/commands/workflow-title.js.map +1 -0
- package/dist/commands/workflow.d.ts +26 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +2359 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/core/auth.d.ts +36 -0
- package/dist/core/auth.d.ts.map +1 -0
- package/dist/core/auth.js +351 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/client.d.ts +27 -0
- package/dist/core/client.d.ts.map +1 -0
- package/dist/core/client.js +100 -0
- package/dist/core/client.js.map +1 -0
- package/dist/core/crypto.d.ts +11 -0
- package/dist/core/crypto.d.ts.map +1 -0
- package/dist/core/crypto.js +102 -0
- package/dist/core/crypto.js.map +1 -0
- package/dist/core/edition.d.ts +4 -0
- package/dist/core/edition.d.ts.map +1 -0
- package/dist/core/edition.js +19 -0
- package/dist/core/edition.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +118 -0
- package/dist/index.js.map +1 -0
- package/dist/services/action-detail.d.ts +112 -0
- package/dist/services/action-detail.d.ts.map +1 -0
- package/dist/services/action-detail.js +443 -0
- package/dist/services/action-detail.js.map +1 -0
- package/dist/services/condition-rules.d.ts +45 -0
- package/dist/services/condition-rules.d.ts.map +1 -0
- package/dist/services/condition-rules.js +207 -0
- package/dist/services/condition-rules.js.map +1 -0
- package/dist/services/form-create.d.ts +102 -0
- package/dist/services/form-create.d.ts.map +1 -0
- package/dist/services/form-create.js +835 -0
- package/dist/services/form-create.js.map +1 -0
- package/dist/services/form-ebuilder-filter.d.ts +60 -0
- package/dist/services/form-ebuilder-filter.d.ts.map +1 -0
- package/dist/services/form-ebuilder-filter.js +562 -0
- package/dist/services/form-ebuilder-filter.js.map +1 -0
- package/dist/services/form-table-view.d.ts +117 -0
- package/dist/services/form-table-view.d.ts.map +1 -0
- package/dist/services/form-table-view.js +882 -0
- package/dist/services/form-table-view.js.map +1 -0
- package/dist/services/form-view-permission.d.ts +30 -0
- package/dist/services/form-view-permission.d.ts.map +1 -0
- package/dist/services/form-view-permission.js +208 -0
- package/dist/services/form-view-permission.js.map +1 -0
- package/dist/services/form-view.d.ts +41 -0
- package/dist/services/form-view.d.ts.map +1 -0
- package/dist/services/form-view.js +334 -0
- package/dist/services/form-view.js.map +1 -0
- package/dist/services/formula-detail.d.ts +31 -0
- package/dist/services/formula-detail.d.ts.map +1 -0
- package/dist/services/formula-detail.js +66 -0
- package/dist/services/formula-detail.js.map +1 -0
- package/dist/services/rich-types.d.ts +35 -0
- package/dist/services/rich-types.d.ts.map +1 -0
- package/dist/services/rich-types.js +105 -0
- package/dist/services/rich-types.js.map +1 -0
- package/dist/services/workflow-layout.d.ts +118 -0
- package/dist/services/workflow-layout.d.ts.map +1 -0
- package/dist/services/workflow-layout.js +279 -0
- package/dist/services/workflow-layout.js.map +1 -0
- package/dist/services/workflow-operator.d.ts +36 -0
- package/dist/services/workflow-operator.d.ts.map +1 -0
- package/dist/services/workflow-operator.js +65 -0
- package/dist/services/workflow-operator.js.map +1 -0
- package/dist/types.d.ts +53 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/column-name.d.ts +13 -0
- package/dist/utils/column-name.d.ts.map +1 -0
- package/dist/utils/column-name.js +45 -0
- package/dist/utils/column-name.js.map +1 -0
- package/ecodecmd/package.json +27 -0
- package/ecodecmd/src/build.js +709 -0
- package/ecodecmd/src/compile.js +81 -0
- package/ecodecmd/src/index.js +48 -0
- package/ecodecmd/src/init.js +73 -0
- package/ecodecmd/src/lib/@babel/plugin-proposal-object-rest-spread@7.5.5/index.js +1795 -0
- package/ecodecmd/src/lib/@babel/plugin-proposal-optional-chaining@7.6.0/index.js +135 -0
- package/ecodecmd/src/lib/@babel/preset-env-standalone@7.5.5/babel-preset-env.js +76043 -0
- package/ecodecmd/src/lib/@babel/standalone@7.5.5/babel.js +90802 -0
- package/ecodecmd/src/lib/exec.js +77 -0
- package/ecodecmd/src/loaddep.js +154 -0
- package/ecodecmd/src/util/compress.js +58 -0
- package/ecodecmd/src/util/crypto-util.js +19 -0
- package/ecodecmd/src/util/index.js +153 -0
- package/ecodecmd/src/util/snowflake.js +144 -0
- package/package.json +43 -0
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
import { AuthSession } from '../core/auth.js';
|
|
2
|
+
import { ApiClient } from '../core/client.js';
|
|
3
|
+
import { tempIdNeg, normalizeActionRow } from './workflow.js';
|
|
4
|
+
export function registerWorkflowMessageCommands(wf, program) {
|
|
5
|
+
const msgCmd = wf.command('message').description('消息提醒动作流');
|
|
6
|
+
function tempId() {
|
|
7
|
+
return String(Date.now() * 1000 + Math.floor(Math.random() * 10000));
|
|
8
|
+
}
|
|
9
|
+
const EVENT_LAYOUT = { "items": { "module": { "readOnly": true, "itemType": "SELECT", "data": [{ "id": "workflow", "content": "流程", "browserModule": "workflow/pathdef", "type": "workflowPathBrowser", "defaultSelected": true, "browserModule4approve": "workflow", "type4approve": "wfcRequest" }], "required": false, "defaultValue": "workflow" }, "workflowPath": { "itemType": "BROWSER", "readOnly": true, "browserBean": { "type": "workflowPathBrowser", "module": "workflow/pathdef", "browserAssociativeProps": { "displayInput": true } }, "requestHeaderParams": { "ebBusinessId": "10000000000000000" }, "required": true, "commonParams": { "checkDetachable": true, "permissionCode": 3, "status": 1 } }, "triggerType": { "itemType": "RADIO", "fieldName": "触发类型", "readOnly": true, "canReversedChoose": false, "data": [{ "id": "singleApprove", "content": "单流程" }, { "id": "multiApprove", "content": "多流程" }] }, "singleApproveConfig": { "itemType": "CUSTOM" }, "approveList": { "itemType": "CUSTOM" }, "approveListFormOpen": { "itemType": "SWITCH", "fieldName": "启用公共表单设置", "canReversedChoose": false }, "approveListFormModule": { "itemType": "RADIO", "fieldName": "表单类型", "canReversedChoose": false, "data": [{ "id": "workflow", "content": "流程表单" }, { "id": "ebuilder", "content": "EB表单" }] }, "approveListFormWF": { "itemType": "BROWSER", "required": true, "browserBean": { "type": "formBrowser", "module": "workflow/core", "browserAssociativeProps": { "displayInput": true, "placeholder": "选择流程表单" }, "commonParams": { "browserMultiple": false, "formState": "enable", "authFilter": true, "formType": "company", "isDelete": "0", "detachable": true, "type": "and" } } }, "approveListFormEB": { "itemType": "BROWSER", "required": true, "browserBean": { "type": "ebuilderForm", "module": "ebuilder/form", "browserAssociativeProps": { "displayInput": true, "placeholder": "选择EB表单" }, "commonParams": { "isTree": true, "from": "flow" } } } }, "layout": [[{ "id": "workflowPath", "label": "选择工作流", "items": ["module", "workflowPath"], "wrapClassName": "weapp-esb-setting-efdesigner-card-approve-trigger-workflowpath", "labelSpan": 6, "hide": false }], [{ "id": "approveListFormOpen", "label": "启用公共表单设置", "items": ["approveListFormOpen"], "labelSpan": 6, "hide": true, "helpTipProps": { "placement": "top" } }], [{ "id": "approveListFormModule", "label": "表单类型", "items": ["approveListFormModule"], "labelSpan": 6, "hide": true, "helpTipProps": { "placement": "top" } }], [{ "id": "approveListFormWF", "label": "选择流程表单", "items": ["approveListFormWF"], "labelSpan": 6, "hide": true, "helpTip": "选择流程表单后,将只能选择该表单的工作流,触发设置中非当前表单的工作流将被清空", "helpTipProps": { "placement": "top" } }], [{ "id": "approveListFormEB", "label": "选择EB表单", "items": ["approveListFormEB"], "labelSpan": 6, "hide": true, "helpTip": "选择EB表单后,将只能选择该表单的工作流,触发设置中非当前表单的工作流将被清空", "helpTipProps": { "placement": "top" } }], [{ "id": "approveList", "label": "", "items": ["approveList"], "labelSpan": 0, "hide": true }], [{ "id": "singleApproveConfig", "label": "触发时机", "items": ["singleApproveConfig"], "labelSpan": 6, "hide": false }]] };
|
|
10
|
+
const MSG_LAYOUT = { "items": { "msgId": { "itemType": "DESCRIPTION", "value": "-1", "className": "weapp-esb-setting-description" }, "channelSetting": { "itemType": "CUSTOM", "required": true }, "person": { "itemType": "CUSTOM", "required": true }, "msgTitle": { "itemType": "CUSTOM", "required": true }, "msgTitlev": { "itemType": "CUSTOM", "required": true }, "msgContent": { "itemType": "CUSTOM", "required": true }, "msgContentv": { "itemType": "CUSTOM", "required": true }, "picLink": { "itemType": "CUSTOM", "required": false }, "pcLink": { "itemType": "CUSTOM", "required": false }, "mobileLink": { "itemType": "CUSTOM", "required": false }, "msgPcLink": { "itemType": "CUSTOM", "required": false }, "msgMobileLink": { "itemType": "CUSTOM", "required": false }, "objectList": { "itemType": "CUSTOM", "required": false }, "remaindObject": { "itemType": "CUSTOM", "required": false }, "businessId": { "itemType": "CUSTOM", "required": false }, "senderType": { "itemType": "CUSTOM" }, "customParams": { "itemType": "CUSTOM" }, "moduleEvent": { "itemType": "CUSTOM", "required": false }, "remaindModule": { "itemType": "CUSTOM", "required": true } }, "layout": [[{ "id": "remaindModule", "label": "提醒模块", "items": ["remaindModule"], "labelSpan": 6, "hide": false }], [{ "id": "moduleEvent", "label": "消息事件", "items": ["moduleEvent"], "labelSpan": 6, "hide": false }], [{ "id": "channelSetting", "label": "推送渠道", "items": ["channelSetting"], "labelSpan": 6, "hide": false, "className": "weapp-esb-setting-channel-setting" }], [{ "id": "msgTitle", "label": "提醒标题", "items": ["msgTitle"], "labelSpan": 6, "hide": true }], [{ "id": "msgTitlev", "label": "提醒标题", "items": ["msgTitlev"], "labelSpan": 6, "hide": false }], [{ "id": "msgContent", "label": "提醒内容", "items": ["msgContent"], "labelSpan": 6, "hide": true }], [{ "id": "msgContentv", "label": "提醒内容", "items": ["msgContentv"], "labelSpan": 6, "hide": false }], [{ "id": "picLink", "label": "推送图片url", "items": ["picLink"], "labelSpan": 6, "hide": false, "helpfulTip": "填写图片url,请注意,如需将消息推送至第三方,请确保url无需登录即可访问", "helpTipPostion": "afterLabel" }], [{ "id": "pcLink", "label": "PC端链接", "items": ["pcLink"], "labelSpan": 6, "hide": true }], [{ "id": "mobileLink", "label": "移动端链接", "items": ["mobileLink"], "labelSpan": 6, "hide": true }], [{ "id": "msgPcLink", "label": "PC端链接", "items": ["msgPcLink"], "labelSpan": 6, "hide": false }], [{ "id": "msgMobileLink", "label": "移动端链接", "items": ["msgMobileLink"], "labelSpan": 6, "hide": false }], [{ "id": "senderType", "label": "发送人", "items": ["senderType"], "labelSpan": 6, "hide": false }], [{ "id": "person", "label": "操作人", "items": ["person"], "labelSpan": 6, "hide": false, "className": "weapp-esb-setting-efdesigner-com-send-message-person" }], [{ "id": "objectList", "label": "提醒对象", "items": ["objectList"], "labelSpan": 6, "hide": false }], [{ "id": "customParams", "label": "自定义参数", "items": ["customParams"], "labelSpan": 6, "hide": false }]] };
|
|
11
|
+
const OUTPUT_LAYOUT = { "items": { "outputStatus": { "placeholder": "状态", "itemType": "RADIO", "defaultValue": "1", "value": "1", "data": [{ "id": "1", "content": "成功" }, { "id": "0", "content": "失败" }], "required": true, "maxLength": 30, "readOnly": false, "canReversedChoose": false }, "reminder": { "itemType": "SELECT", "data": [{ "id": "0", "content": "无" }, { "id": "1", "content": "提醒" }, { "id": "2", "content": "确认" }, { "id": "3", "content": "警告" }], "required": true, "className": "weapp-esb-setting-efdesigner-output-reminder" }, "pageAction": { "itemType": "CUSTOM" }, "jumpUrl": { "itemType": "CUSTOM", "required": true }, "nextAction": { "itemType": "SWITCH" }, "triggerFlag": { "itemType": "CUSTOM" }, "formSetting": { "itemType": "CUSTOM" }, "fixedData": { "itemType": "CUSTOM" }, "customOutputData": { "itemType": "CUSTOM" }, "reminderMsgFormula": { "itemType": "CUSTOM", "required": true }, "reminderContent": { "itemType": "CUSTOM", "required": true, "className": "weapp-esb-setting-page-act-reminderContent" }, "customParamSetting": { "itemType": "CUSTOM" }, "conditionEnable": { "itemType": "SWITCH" }, "conditionInfo": { "itemType": "CUSTOM", "required": true }, "fieldLinkCustomParamSetting": { "itemType": "CUSTOM" } }, "layout": [[{ "id": "formSetting", "label": "内容赋值", "items": ["formSetting"], "labelSpan": 6, "hide": true }], [{ "id": "fixedData", "label": "参数设置", "items": ["fixedData"], "labelSpan": 6, "hide": true }], [{ "id": "customOutputData", "label": "自定义输出内容", "items": ["customOutputData"], "labelSpan": 6, "hide": true }], [{ "id": "customParamSetting", "label": "输出参数设置", "items": ["customParamSetting"], "labelSpan": 6, "hide": true }], [{ "id": "conditionEnable", "label": "启用赋值前提", "items": ["conditionEnable"], "labelSpan": 6, "hide": true }], [{ "id": "conditionInfo", "label": "前提条件设置", "items": ["conditionInfo"], "labelSpan": 6, "hide": true }], [{ "id": "fieldLinkCustomParamSetting", "label": "联动字段设置", "items": ["fieldLinkCustomParamSetting"], "labelSpan": 6, "hide": true }], [{ "id": "outputStatus", "label": "执行结果", "items": ["outputStatus"], "labelSpan": 6, "hide": false }], [{ "id": "triggerFlag", "label": "需要触发页面交互", "items": ["triggerFlag"], "labelSpan": 6, "hide": false }], [{ "id": "pageAction", "label": "触发页面动作", "items": ["pageAction"], "labelSpan": 6, "hide": false }], [{ "id": "jumpUrl", "label": "跳转地址", "items": ["jumpUrl"], "labelSpan": 6, "hide": false }], [{ "id": "reminder", "label": "触发操作反馈类型", "items": ["reminder"], "labelSpan": 6, "hide": false }], [{ "id": "reminderMsgFormula", "label": "提醒内容", "items": ["reminderMsgFormula"], "labelSpan": 6, "hide": false }], [{ "id": "reminderContent", "label": "提醒内容", "items": ["reminderContent"], "labelSpan": 6, "hide": false }], [{ "id": "nextAction", "label": "阻止触发模块后续操作", "items": ["nextAction"], "labelSpan": 6, "hide": false }]] };
|
|
12
|
+
/**
|
|
13
|
+
* Build a fixed-value formula for a user (used in shareList).
|
|
14
|
+
* emp: raw user object from getEmployeeByKeyWords API response
|
|
15
|
+
* effectiveUserId: the resolved numeric user ID (emp.id), used for targetId/value
|
|
16
|
+
*/
|
|
17
|
+
function makeUserFormula(effectiveUserId, appId, emp) {
|
|
18
|
+
const displayName = emp?.name || effectiveUserId;
|
|
19
|
+
const department = emp?.department || '';
|
|
20
|
+
const mobile = emp?.mobile || '';
|
|
21
|
+
// emp doesn't have a separate 'userid' field; use emp.id as userid (platform may differ)
|
|
22
|
+
const internalUserId = emp?.id || effectiveUserId;
|
|
23
|
+
const empId = emp?.id || effectiveUserId;
|
|
24
|
+
const cid = emp?.imCid || emp?.cid || '';
|
|
25
|
+
const departmentId = emp?.departmentId || '';
|
|
26
|
+
const avatarUserId = emp?.hrmAvatarInfos?.userId || emp?.avatar?.userId || effectiveUserId;
|
|
27
|
+
return {
|
|
28
|
+
sourceId: tempId(),
|
|
29
|
+
permissionId: "esb",
|
|
30
|
+
permissionType: 1,
|
|
31
|
+
user_type: "1",
|
|
32
|
+
obj_id: {
|
|
33
|
+
formulaType: "string",
|
|
34
|
+
name: effectiveUserId,
|
|
35
|
+
id: tempId(),
|
|
36
|
+
position: tempId(),
|
|
37
|
+
type: "1",
|
|
38
|
+
applicationId: appId,
|
|
39
|
+
value: effectiveUserId,
|
|
40
|
+
fieldType: "string",
|
|
41
|
+
config: {
|
|
42
|
+
switchType: "fixvalue",
|
|
43
|
+
originValue: [{
|
|
44
|
+
templateType: "default",
|
|
45
|
+
stopDepartment: false,
|
|
46
|
+
departmentId,
|
|
47
|
+
mobile,
|
|
48
|
+
originTargetType: "user",
|
|
49
|
+
pid: "",
|
|
50
|
+
richContent: displayName,
|
|
51
|
+
avatar: {
|
|
52
|
+
name: displayName,
|
|
53
|
+
appPreviewPath: "/api/app/file/preview?type=redirect&imgFormat=small&fileId=",
|
|
54
|
+
previewPath: "/api/file/preview?type=redirect&imgFormat=small&fileId=",
|
|
55
|
+
userId: avatarUserId,
|
|
56
|
+
},
|
|
57
|
+
title: displayName,
|
|
58
|
+
contentDesc: displayName,
|
|
59
|
+
leaf: true,
|
|
60
|
+
userid: internalUserId,
|
|
61
|
+
isLeaf: true,
|
|
62
|
+
content: displayName,
|
|
63
|
+
indexType: displayName.charAt(0).toUpperCase(),
|
|
64
|
+
name: displayName,
|
|
65
|
+
id: empId,
|
|
66
|
+
department,
|
|
67
|
+
mainId: empId,
|
|
68
|
+
cid,
|
|
69
|
+
statusCode: emp?.status || emp?.statusCode || "normal",
|
|
70
|
+
}],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
targetId: effectiveUserId,
|
|
74
|
+
sourceType: 1,
|
|
75
|
+
targetType: 1,
|
|
76
|
+
id: tempId(),
|
|
77
|
+
objType: "resource",
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
msgCmd.command('create')
|
|
81
|
+
.description('创建消息提醒动作流并绑定到流程节点')
|
|
82
|
+
.argument('<workflowId>', '流程 ID')
|
|
83
|
+
.argument('<nodeId>', '触发节点 ID')
|
|
84
|
+
.argument('<name>', '动作流名称')
|
|
85
|
+
.requiredOption('--title <text>', '提醒标题')
|
|
86
|
+
.requiredOption('--content <text>', '提醒内容')
|
|
87
|
+
.option('--recipients <userIds>', '接收人用户ID,逗号分隔(默认流程发起人)', '')
|
|
88
|
+
.option('--channel <channel>', '推送渠道: im(默认) / yunqiao / email / sms', 'im')
|
|
89
|
+
.option('--event <event>', '触发时机: arrive(到达节点,默认) / leave / delete / save / revert / pause / cancel', 'arrive')
|
|
90
|
+
.option('--node-name <name>', '节点名称(用于 saveAddActionList)', '')
|
|
91
|
+
.action(async (workflowId, nodeId, name, cmdOpts) => {
|
|
92
|
+
const opts = program.opts();
|
|
93
|
+
const auth = await AuthSession.fromOptions(opts);
|
|
94
|
+
if (!auth)
|
|
95
|
+
process.exit(1);
|
|
96
|
+
const client = new ApiClient(auth);
|
|
97
|
+
const baseUrl = auth.getBaseUrl();
|
|
98
|
+
// Channel mapping
|
|
99
|
+
const CHANNEL_MAP = { im: 1, yunqiao: 2, email: 3, sms: 4 };
|
|
100
|
+
const channelCode = CHANNEL_MAP[cmdOpts.channel] || 1;
|
|
101
|
+
// Step 1: Create ESB container
|
|
102
|
+
let orgId = '';
|
|
103
|
+
try {
|
|
104
|
+
const entrance = await client.get(`${baseUrl}/api/bs/ebuilder/app/permit/entrance`);
|
|
105
|
+
if (entrance?.code === 200 && entrance?.status && entrance?.data?.isDetachable) {
|
|
106
|
+
const orgTree = await client.get(`${baseUrl}/api/hrm/common/getOrgTree?menuCode=eBuilder&onlySubcompany=false&containDisableDept=false&moduleCode=EBUILDER&virtualId=1&loadCount=false&isMobile=false`);
|
|
107
|
+
if (orgTree?.code === 200 && orgTree?.status && Array.isArray(orgTree?.data) && orgTree.data.length > 0) {
|
|
108
|
+
orgId = orgTree.data[0].id;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch { /* non-detached accounts leave orgId empty */ }
|
|
113
|
+
console.error(`Step 1/3: 创建动作流容器...${orgId ? ` (orgId: ${orgId})` : ''}`);
|
|
114
|
+
const appRes = await client.post(`${baseUrl}/api/bs/esb/setting/application/save`, {
|
|
115
|
+
type: 0,
|
|
116
|
+
name,
|
|
117
|
+
orgId,
|
|
118
|
+
id: '',
|
|
119
|
+
moudle: 'workflow',
|
|
120
|
+
appSources: [
|
|
121
|
+
{ module: 'approve', businessObject: 'workflowPath', businessValue: workflowId },
|
|
122
|
+
],
|
|
123
|
+
lightId: '',
|
|
124
|
+
initData: '',
|
|
125
|
+
templateId: '',
|
|
126
|
+
templateVersionId: '',
|
|
127
|
+
});
|
|
128
|
+
if (appRes?.code !== 200 || !appRes?.status) {
|
|
129
|
+
console.error(`创建容器失败: ${appRes?.msg || '未知错误'}`);
|
|
130
|
+
process.exit(1);
|
|
131
|
+
}
|
|
132
|
+
const appId = appRes?.data?.id || appRes?.data?.appId || '';
|
|
133
|
+
const sceneId = appRes?.data?.activeVersion || appRes?.data?.sceneId || '';
|
|
134
|
+
console.error(` 动作流 ID: ${appId} sceneId: ${sceneId}`);
|
|
135
|
+
// Step 2: Save design
|
|
136
|
+
console.error(`Step 2/3: 保存动作流设计...`);
|
|
137
|
+
const eventId = tempId();
|
|
138
|
+
const msgNodeId = tempId();
|
|
139
|
+
const outputId = tempId();
|
|
140
|
+
// Look up workflow name for event.workflowPath
|
|
141
|
+
let workflowName = name;
|
|
142
|
+
try {
|
|
143
|
+
const wfInfo = await client.post(`${baseUrl}/api/bs/workflow/pathdef/baseSet/getBaseInfoList`, {
|
|
144
|
+
page: 1, pageSize: 1, workflowId,
|
|
145
|
+
});
|
|
146
|
+
const wfList = wfInfo?.data?.list || wfInfo?.data?.data || [];
|
|
147
|
+
if (wfList.length > 0)
|
|
148
|
+
workflowName = wfList[0].name || wfList[0].workflowName || name;
|
|
149
|
+
}
|
|
150
|
+
catch { }
|
|
151
|
+
const recipientIds = cmdOpts.recipients
|
|
152
|
+
? cmdOpts.recipients.split(',').map(s => s.trim()).filter(Boolean)
|
|
153
|
+
: [];
|
|
154
|
+
// Build shareList with user info from API
|
|
155
|
+
const shareList = [];
|
|
156
|
+
for (const uid of recipientIds) {
|
|
157
|
+
let emp = null;
|
|
158
|
+
let effectiveUserId = uid;
|
|
159
|
+
try {
|
|
160
|
+
const userRes = await client.post(`${baseUrl}/api/hrm/common/getEmployeeByKeyWords`, {
|
|
161
|
+
keyword: uid,
|
|
162
|
+
searchType: 1,
|
|
163
|
+
searchCount: 1,
|
|
164
|
+
appDetachModule: 'EM',
|
|
165
|
+
disableAppDetach: 0,
|
|
166
|
+
pageNo: 1,
|
|
167
|
+
pageSize: 1,
|
|
168
|
+
});
|
|
169
|
+
const userList = userRes?.data?.userList || [];
|
|
170
|
+
emp = userList.find((u) => String(u.id) === String(uid)) || userList[0] || null;
|
|
171
|
+
if (emp?.id)
|
|
172
|
+
effectiveUserId = String(emp.id);
|
|
173
|
+
}
|
|
174
|
+
catch { }
|
|
175
|
+
shareList.push(makeUserFormula(effectiveUserId, appId, emp));
|
|
176
|
+
}
|
|
177
|
+
// Build event node (matching browser structure exactly)
|
|
178
|
+
const eventNode = {
|
|
179
|
+
id: eventId,
|
|
180
|
+
wId: eventId,
|
|
181
|
+
nodeType: "Normal",
|
|
182
|
+
comType: "ApproveTrigger",
|
|
183
|
+
type: "ApproveTrigger",
|
|
184
|
+
previousId: "0",
|
|
185
|
+
parentId: "0",
|
|
186
|
+
name: "流程触发",
|
|
187
|
+
isAdd: true,
|
|
188
|
+
isOpen: false,
|
|
189
|
+
attr: { icon: "Icon-Approval-process02" },
|
|
190
|
+
isControl: true,
|
|
191
|
+
explain: "触发事件说明",
|
|
192
|
+
data: {
|
|
193
|
+
workflowPath: [{ id: workflowId, name: workflowName }],
|
|
194
|
+
module: "workflow",
|
|
195
|
+
triggerType: "singleApprove",
|
|
196
|
+
applicationName: "",
|
|
197
|
+
},
|
|
198
|
+
isShowDelete: false,
|
|
199
|
+
options: {
|
|
200
|
+
type: "ApproveTrigger",
|
|
201
|
+
name: "",
|
|
202
|
+
data: { workflowPath: [{ id: workflowId, name: workflowName }] },
|
|
203
|
+
isShowDelete: false,
|
|
204
|
+
},
|
|
205
|
+
isEvent: true,
|
|
206
|
+
itemAndLayout: EVENT_LAYOUT,
|
|
207
|
+
};
|
|
208
|
+
// Build SendMessage node (matching browser structure exactly)
|
|
209
|
+
const msgNode = {
|
|
210
|
+
id: msgNodeId,
|
|
211
|
+
wId: msgNodeId,
|
|
212
|
+
nodeType: "Normal",
|
|
213
|
+
comType: "SendMessage",
|
|
214
|
+
type: "SendMessage",
|
|
215
|
+
previousId: eventId,
|
|
216
|
+
parentId: "0",
|
|
217
|
+
name: "消息提醒",
|
|
218
|
+
isAdd: true,
|
|
219
|
+
isOpen: false,
|
|
220
|
+
attr: {
|
|
221
|
+
icon: "Icon-Message-center-o",
|
|
222
|
+
isControl: true,
|
|
223
|
+
explain: "触发事件说明",
|
|
224
|
+
},
|
|
225
|
+
componentDesc: "发送IM/云桥/邮件/短信提醒",
|
|
226
|
+
componentName: "消息提醒",
|
|
227
|
+
data: {
|
|
228
|
+
currentApplication: appId,
|
|
229
|
+
msgId: "-1",
|
|
230
|
+
channelSetting: [{ channel: channelCode, config: { aid: 110, code: "" } }],
|
|
231
|
+
person: "",
|
|
232
|
+
msgTitlev: {
|
|
233
|
+
content: Buffer.from(cmdOpts.title, 'utf-8').toString('base64'),
|
|
234
|
+
formulaBeans: [],
|
|
235
|
+
id: "",
|
|
236
|
+
langSet: false,
|
|
237
|
+
},
|
|
238
|
+
msgContentv: {
|
|
239
|
+
content: Buffer.from(cmdOpts.content, 'utf-8').toString('base64'),
|
|
240
|
+
formulaBeans: [],
|
|
241
|
+
id: "",
|
|
242
|
+
langSet: false,
|
|
243
|
+
},
|
|
244
|
+
senderType: "system",
|
|
245
|
+
moduleEvent: "8",
|
|
246
|
+
remaindModule: [{ id: "209", content: "esb" }],
|
|
247
|
+
shareList,
|
|
248
|
+
applicationId: appId,
|
|
249
|
+
},
|
|
250
|
+
options: {
|
|
251
|
+
icon: "Icon-Message-center-o",
|
|
252
|
+
actionName: "消息提醒",
|
|
253
|
+
module: "inner",
|
|
254
|
+
eventName: "消息提醒",
|
|
255
|
+
labelId: 0,
|
|
256
|
+
typeName: "消息提醒",
|
|
257
|
+
des: "发送IM/云桥/邮件/短信提醒",
|
|
258
|
+
displayOrder: 240,
|
|
259
|
+
componentName: "消息提醒",
|
|
260
|
+
componentDesc: "发送IM/云桥/邮件/短信提醒",
|
|
261
|
+
componentNameLabel: 221877,
|
|
262
|
+
componentDescLabel: 221442,
|
|
263
|
+
merge: false,
|
|
264
|
+
isEvent: false,
|
|
265
|
+
},
|
|
266
|
+
branchs: [],
|
|
267
|
+
multKey: "",
|
|
268
|
+
multName: "",
|
|
269
|
+
itemAndLayout: MSG_LAYOUT,
|
|
270
|
+
ignoreFlowCheck: true,
|
|
271
|
+
};
|
|
272
|
+
// Build Output node (matching browser structure exactly)
|
|
273
|
+
const outputNode = {
|
|
274
|
+
id: outputId,
|
|
275
|
+
wId: outputId,
|
|
276
|
+
nodeType: "Normal",
|
|
277
|
+
comType: "Output",
|
|
278
|
+
type: "Output",
|
|
279
|
+
previousId: msgNodeId,
|
|
280
|
+
parentId: "0",
|
|
281
|
+
name: "终止",
|
|
282
|
+
isAdd: true,
|
|
283
|
+
isOpen: false,
|
|
284
|
+
componentDesc: "终止执行动作流",
|
|
285
|
+
componentName: "终止",
|
|
286
|
+
attr: { icon: "Icon-termination-1", iconColor: "var(--danger)" },
|
|
287
|
+
isControl: true,
|
|
288
|
+
data: {
|
|
289
|
+
outputStatus: "1",
|
|
290
|
+
pageAction: "0",
|
|
291
|
+
reminder: "0",
|
|
292
|
+
fixedData: [],
|
|
293
|
+
triggerFlag: false,
|
|
294
|
+
reminderMsgFormula: "",
|
|
295
|
+
nextAction: false,
|
|
296
|
+
customOutputData: "",
|
|
297
|
+
currentApplication: appId,
|
|
298
|
+
applicationId: appId,
|
|
299
|
+
},
|
|
300
|
+
options: { type: "Output" },
|
|
301
|
+
branchs: [],
|
|
302
|
+
multKey: "",
|
|
303
|
+
multName: "",
|
|
304
|
+
sources: [{ wId: msgNodeId }],
|
|
305
|
+
itemAndLayout: OUTPUT_LAYOUT,
|
|
306
|
+
ignoreFlowCheck: true,
|
|
307
|
+
};
|
|
308
|
+
const designPayload = {
|
|
309
|
+
saveAndStart: true,
|
|
310
|
+
appId,
|
|
311
|
+
sceneId,
|
|
312
|
+
event: eventNode,
|
|
313
|
+
actions: [msgNode, outputNode],
|
|
314
|
+
addIds: [msgNodeId],
|
|
315
|
+
deleteActions: [],
|
|
316
|
+
version: 0,
|
|
317
|
+
delCheckMsg: [],
|
|
318
|
+
addCheckMsg: [],
|
|
319
|
+
assistLayer: '{"nodes":[],"layout":{}}',
|
|
320
|
+
versionConfig: '{}',
|
|
321
|
+
};
|
|
322
|
+
const designRes = await client.post(`${baseUrl}/api/bs/esb/setting/flow/design/saveDesign`, designPayload);
|
|
323
|
+
if (designRes?.code !== 200 || !designRes?.status) {
|
|
324
|
+
console.error(`保存设计失败: ${designRes?.msg || '未知错误'}`);
|
|
325
|
+
process.exit(1);
|
|
326
|
+
}
|
|
327
|
+
console.error(` 设计已保存 sceneId: ${sceneId}`);
|
|
328
|
+
// Step 3: Bind to node
|
|
329
|
+
console.error(`Step 3/3: 绑定动作流到节点 ${nodeId}...`);
|
|
330
|
+
const EVENT_MAP = {
|
|
331
|
+
arrive: { triggerType: 'pre', executeTime: ['1'] },
|
|
332
|
+
leave: { triggerType: 'after', executeTime: ['1'] },
|
|
333
|
+
delete: { triggerType: 'delete', executeTime: undefined },
|
|
334
|
+
save: { triggerType: 'save', executeTime: undefined },
|
|
335
|
+
revert: { triggerType: 'revert', executeTime: undefined },
|
|
336
|
+
pause: { triggerType: 'stopAndOpen', executeTime: ['1'] },
|
|
337
|
+
cancel: { triggerType: 'cancelAndRegain', executeTime: ['1'] },
|
|
338
|
+
};
|
|
339
|
+
const EVENT_LABELS = {
|
|
340
|
+
arrive: '到达节点时', leave: '离开节点后', delete: '流程删除时',
|
|
341
|
+
save: '流程保存时', revert: '流程还原时', pause: '暂停/启用时', cancel: '撤销恢复时',
|
|
342
|
+
};
|
|
343
|
+
const evCfg = EVENT_MAP[cmdOpts.event] || EVENT_MAP.arrive;
|
|
344
|
+
const eventLabel = EVENT_LABELS[cmdOpts.event] || cmdOpts.event;
|
|
345
|
+
// Fetch existing actions and merge — never overwrite
|
|
346
|
+
let existingActions = [];
|
|
347
|
+
const existing = await client.post(`${baseUrl}/api/bs/workflow/pathdef/addaction/getAddActionDataList`, {
|
|
348
|
+
workflowId, objId: nodeId, triggerType: 'all', isNodeFlag: '1',
|
|
349
|
+
});
|
|
350
|
+
if (existing?.code === 200 && existing?.status) {
|
|
351
|
+
existingActions = existing?.data?.data || [];
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
console.error(`❌ 无法读取节点已有动作: ${existing?.data?.msg || existing?.msg || '未知错误'}`);
|
|
355
|
+
console.error(' 消息动作流已创建但未绑定,请手动在页面中绑定。');
|
|
356
|
+
console.error(` appId=${appId}`);
|
|
357
|
+
process.exit(1);
|
|
358
|
+
}
|
|
359
|
+
const bindDataId = tempIdNeg();
|
|
360
|
+
// New row always uses the standard write format (matches browser payload).
|
|
361
|
+
const actionData = {
|
|
362
|
+
id: bindDataId, actionName: name, open: true, actionId: appId, esbName: name,
|
|
363
|
+
customName: '', actionType: 2,
|
|
364
|
+
actionData: {
|
|
365
|
+
actionSelect: '1', sysCustomAction: [],
|
|
366
|
+
paramsSet: [{ id: appId, name, eventType: 'WorkflowTrigger', interfaceCreate: false, isKeepDiary: 1 }],
|
|
367
|
+
actionSet: [{ id: appId, name, eventType: 'WorkflowTrigger', interfaceCreate: false, isKeepDiary: 1 }],
|
|
368
|
+
actionName: '', id: bindDataId, customDataId: '',
|
|
369
|
+
},
|
|
370
|
+
async: 0, triggerType: evCfg.triggerType, order: existingActions.length,
|
|
371
|
+
};
|
|
372
|
+
if (evCfg.executeTime)
|
|
373
|
+
actionData.executeTime = evCfg.executeTime;
|
|
374
|
+
actionData.order = existingActions.length;
|
|
375
|
+
// Normalize existing read-format rows back to write format before re-sending.
|
|
376
|
+
const mergedActions = [...existingActions.map(normalizeActionRow), actionData];
|
|
377
|
+
console.error(` 已有 ${existingActions.length} 个动作,归一化合并后 ${mergedActions.length} 个`);
|
|
378
|
+
const bindPayload = {
|
|
379
|
+
workflowId, objId: nodeId, triggerType: 'all',
|
|
380
|
+
data: mergedActions,
|
|
381
|
+
isNodeFlag: '1', objName: cmdOpts.nodeName || nodeId,
|
|
382
|
+
};
|
|
383
|
+
const bindRes = await client.post(`${baseUrl}/api/bs/workflow/pathdef/addaction/saveAddActionList`, bindPayload);
|
|
384
|
+
if (bindRes?.code === 200 && bindRes?.status) {
|
|
385
|
+
console.log(`消息提醒动作流已创建并绑定: ${name}`);
|
|
386
|
+
console.log(` appId: ${appId}`);
|
|
387
|
+
console.log(` sceneId: ${sceneId}`);
|
|
388
|
+
console.log(` 节点: ${nodeId}`);
|
|
389
|
+
console.log(` 触发: ${eventLabel}`);
|
|
390
|
+
console.log(` 渠道: ${cmdOpts.channel}`);
|
|
391
|
+
console.log(` 接收人: ${recipientIds.length > 0 ? recipientIds.join(', ') : '(流程发起人)'}`);
|
|
392
|
+
}
|
|
393
|
+
else {
|
|
394
|
+
console.error(`绑定失败: ${bindRes?.msg || '未知错误'}`);
|
|
395
|
+
process.exit(1);
|
|
396
|
+
}
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
//# sourceMappingURL=workflow-message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-message.js","sourceRoot":"","sources":["../../src/commands/workflow-message.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-node-overtime.d.ts","sourceRoot":"","sources":["../../src/commands/workflow-node-overtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAqK3F"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { AuthSession } from '../core/auth.js';
|
|
2
|
+
import { ApiClient } from '../core/client.js';
|
|
3
|
+
/**
|
|
4
|
+
* Node overtime settings — 节点超时处理与提醒。
|
|
5
|
+
*
|
|
6
|
+
* APIs:
|
|
7
|
+
* POST /api/bs/workflow/pathdef/nodeOvertime/saveOvertime — 超时规则
|
|
8
|
+
* POST /api/bs/workflow/pathdef/nodeOvertime/saveRemind — 超时提醒
|
|
9
|
+
* POST /api/bs/workflow/pathdef/nodeOvertime/saveOvertimeList — 批量保存/开关
|
|
10
|
+
* POST /api/bs/workflow/pathdef/baseSet/updateDefRemindConfig — 自定义提醒内容
|
|
11
|
+
*/
|
|
12
|
+
const FLOW_TYPES = {
|
|
13
|
+
next: { id: '1', label: '下一操作者' },
|
|
14
|
+
reject: { id: '2', label: '退回至指定节点' },
|
|
15
|
+
submit: { id: '3', label: '提交至指定节点' },
|
|
16
|
+
intervene: { id: '4', label: '通知干预对象' },
|
|
17
|
+
operator: { id: '6', label: '新增指定操作者' },
|
|
18
|
+
};
|
|
19
|
+
export function registerWorkflowNodeOvertimeCommands(wfCmd, program) {
|
|
20
|
+
const overtime = wfCmd.command('node-overtime').description('节点超时设置(规则/提醒/开关)');
|
|
21
|
+
// ─── SET ─────────────────────────────────────────────────
|
|
22
|
+
overtime.command('set')
|
|
23
|
+
.description('设置节点超时规则')
|
|
24
|
+
.argument('<workflowId>', '流程 ID')
|
|
25
|
+
.argument('<nodeId>', '节点 ID')
|
|
26
|
+
.option('--duration <d:h:m>', '超时时长 天:时:分(如 0:2:0 即 2 小时)', '0:2:0')
|
|
27
|
+
.option('--flow-type <type>', `超时处理: ${Object.keys(FLOW_TYPES).join('|')}`, 'next')
|
|
28
|
+
.option('--flow-delay <d:h:m>', '处理延时 天:时:分', '0:0:0')
|
|
29
|
+
.option('--flow-node <nodeId>', '退回/提交的目标节点 ID(flow-type=reject|submit 时需要)')
|
|
30
|
+
.option('--intervene-ids <userIds>', '干预对象用户 ID 列表,逗号分隔(flow-type=intervene 时需要)')
|
|
31
|
+
.option('--disabled', '关闭超时处理')
|
|
32
|
+
.option('--skip-required', '存在必填项时仍继续自动处理')
|
|
33
|
+
.action(async (workflowId, nodeId, opts) => {
|
|
34
|
+
const gOpts = program.opts();
|
|
35
|
+
const auth = await AuthSession.fromOptions(gOpts);
|
|
36
|
+
if (!auth)
|
|
37
|
+
process.exit(1);
|
|
38
|
+
const client = new ApiClient(auth);
|
|
39
|
+
const baseUrl = auth.getBaseUrl();
|
|
40
|
+
if (!FLOW_TYPES[opts.flowType]) {
|
|
41
|
+
console.error(`不支持的 flow-type: ${opts.flowType},可选: ${Object.keys(FLOW_TYPES).join(', ')}`);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
const ft = FLOW_TYPES[opts.flowType];
|
|
45
|
+
const [dd, dh, dm] = opts.duration.split(':').map(Number);
|
|
46
|
+
const [fd, fh, fm] = opts.flowDelay.split(':').map(Number);
|
|
47
|
+
const payload = {
|
|
48
|
+
id: '0',
|
|
49
|
+
workflowId,
|
|
50
|
+
nodeId,
|
|
51
|
+
overTimeType: 1,
|
|
52
|
+
overTimeDay: dd || 0,
|
|
53
|
+
overTimeHour: dh || 2,
|
|
54
|
+
overTimeMinute: dm || 0,
|
|
55
|
+
isAutoFlow: opts.disabled ? 0 : 1,
|
|
56
|
+
flowType: Number(ft.id),
|
|
57
|
+
flowDay: fd || 0,
|
|
58
|
+
flowHour: fh || 0,
|
|
59
|
+
flowMinute: fm || 0,
|
|
60
|
+
flowObjectNodeId: '',
|
|
61
|
+
flowObjectIds: '',
|
|
62
|
+
operatorGroupId: '',
|
|
63
|
+
operatorName: '',
|
|
64
|
+
flowRemark: '',
|
|
65
|
+
checkRequired: opts.skipRequired ? 1 : 0,
|
|
66
|
+
dataSrc: 11,
|
|
67
|
+
};
|
|
68
|
+
if (opts.flowType === 'reject' || opts.flowType === 'submit') {
|
|
69
|
+
if (!opts.flowNode) {
|
|
70
|
+
console.error('flow-type=reject|submit 需要 --flow-node <nodeId>');
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
payload.flowObjectNodeId = opts.flowNode;
|
|
74
|
+
}
|
|
75
|
+
if (opts.flowType === 'intervene') {
|
|
76
|
+
if (!opts.interveneIds) {
|
|
77
|
+
console.error('flow-type=intervene 需要 --intervene-ids <userIds>');
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
payload.flowObjectIds = opts.interveneIds.replace(/\s/g, '');
|
|
81
|
+
}
|
|
82
|
+
const res = await client.post(`${baseUrl}/api/bs/workflow/pathdef/nodeOvertime/saveOvertime`, payload);
|
|
83
|
+
if (res?.code !== 200 || !res?.status) {
|
|
84
|
+
console.error(`保存失败: ${res?.msg || '未知错误'}`);
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
const overtimeId = res?.data?.entity?.id || res?.data?.id || '';
|
|
88
|
+
console.log(`超时规则已保存: ${overtimeId}`);
|
|
89
|
+
console.log(` 超时时长: ${dd}天${dh}时${dm}分`);
|
|
90
|
+
console.log(` 处理方式: ${ft.label}`);
|
|
91
|
+
if (opts.disabled)
|
|
92
|
+
console.log(' 状态: 已关闭');
|
|
93
|
+
console.log('');
|
|
94
|
+
console.log(' 下一步: workflow node-overtime remind 设置超时提醒');
|
|
95
|
+
});
|
|
96
|
+
// ─── REMIND ──────────────────────────────────────────────
|
|
97
|
+
overtime.command('remind')
|
|
98
|
+
.description('设置节点超时提醒')
|
|
99
|
+
.argument('<workflowId>', '流程 ID')
|
|
100
|
+
.argument('<nodeId>', '节点 ID')
|
|
101
|
+
.requiredOption('--overtime-id <id>', '超时规则 ID(从 overtime set 返回)')
|
|
102
|
+
.requiredOption('--name <name>', '提醒名称')
|
|
103
|
+
.option('--type <n>', '0=超时前 1=超时后', '0')
|
|
104
|
+
.option('--offset <d:h:m>', '提醒时间偏移 天:时:分', '0:0:30')
|
|
105
|
+
.option('--mode <n>', '0=仅提醒本人 1=逐级提醒', '0')
|
|
106
|
+
.option('--remind-group-id <id>', '提醒人操作组 ID(sourceType=3)')
|
|
107
|
+
.option('--msg', '系统消息提醒', true)
|
|
108
|
+
.option('--no-msg', '不开系统消息')
|
|
109
|
+
.option('--mail', '邮件提醒')
|
|
110
|
+
.option('--no-mail', '不邮件')
|
|
111
|
+
.option('--sms', '短信提醒')
|
|
112
|
+
.option('--no-sms', '不短信')
|
|
113
|
+
.action(async (workflowId, nodeId, opts) => {
|
|
114
|
+
const gOpts = program.opts();
|
|
115
|
+
const auth = await AuthSession.fromOptions(gOpts);
|
|
116
|
+
if (!auth)
|
|
117
|
+
process.exit(1);
|
|
118
|
+
const client = new ApiClient(auth);
|
|
119
|
+
const baseUrl = auth.getBaseUrl();
|
|
120
|
+
const [rd, rh, rm] = opts.offset.split(':').map(Number);
|
|
121
|
+
const payload = {
|
|
122
|
+
id: '0',
|
|
123
|
+
overTimeId: opts.overtimeId,
|
|
124
|
+
workflowId,
|
|
125
|
+
nodeId,
|
|
126
|
+
remindName: opts.name,
|
|
127
|
+
remindType: Number(opts.type),
|
|
128
|
+
remindDay: rd || 0,
|
|
129
|
+
remindHour: rh || 0,
|
|
130
|
+
remindMinute: rm || 30,
|
|
131
|
+
remindMode: Number(opts.mode),
|
|
132
|
+
remindUserGroupId: opts.remindGroupId || '',
|
|
133
|
+
infocenterRemind: opts.msg !== false ? 1 : 0,
|
|
134
|
+
msgRemind: opts.sms ? 1 : 0,
|
|
135
|
+
mailRemind: opts.mail ? 1 : 0,
|
|
136
|
+
appRemind: 1,
|
|
137
|
+
customRemind: 0,
|
|
138
|
+
stopRemind: 0,
|
|
139
|
+
};
|
|
140
|
+
const res = await client.post(`${baseUrl}/api/bs/workflow/pathdef/nodeOvertime/saveRemind`, payload);
|
|
141
|
+
if (res?.code !== 200 || !res?.status) {
|
|
142
|
+
console.error(`保存失败: ${res?.msg || '未知错误'}`);
|
|
143
|
+
process.exit(1);
|
|
144
|
+
}
|
|
145
|
+
const remindId = res?.data?.entity?.id || res?.data?.id || '';
|
|
146
|
+
console.log(`超时提醒已保存: ${remindId}`);
|
|
147
|
+
console.log(` ${opts.type === '0' ? '超时前' : '超时后'} ${rd}天${rh}时${rm}分`);
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=workflow-node-overtime.js.map
|