@tachybase/plugin-workflow-approval 1.6.0 → 1.6.1
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/client/base/ApprovalPane.schema.d.ts +9 -3
- package/dist/client/common/tools/cleanAssociationIds.d.ts +9 -0
- package/dist/client/index.js +29 -65
- package/dist/externalVersion.js +7 -7
- package/dist/locale/en-US.json +2 -1
- package/dist/locale/zh-CN.json +2 -1
- package/dist/server/actions/approvalCarbonCopy.d.ts +1 -1
- package/dist/server/actions/approvalCarbonCopy.js +7 -7
- package/dist/server/actions/approvalRecords.d.ts +2 -2
- package/dist/server/actions/approvalRecords.js +19 -19
- package/dist/server/actions/approvals.d.ts +6 -6
- package/dist/server/actions/approvals.js +61 -82
- package/dist/server/actions/index.js +1 -1
- package/dist/server/actions/workflows.d.ts +1 -1
- package/dist/server/actions/workflows.js +3 -3
- package/dist/server/plugin.js +0 -3
- package/dist/server/triggers/Approval.d.ts +3 -3
- package/dist/server/triggers/Approval.js +19 -19
- package/dist/server/utils.d.ts +2 -2
- package/dist/server/utils.js +4 -4
- package/package.json +9 -9
|
@@ -175,26 +175,26 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
|
|
|
175
175
|
await approval.update({ status }, { transaction });
|
|
176
176
|
await approvalExecution.update({ status: execution.status }, { transaction });
|
|
177
177
|
};
|
|
178
|
-
this.middleware = async (
|
|
179
|
-
if (!
|
|
178
|
+
this.middleware = async (ctx, next) => {
|
|
179
|
+
if (!ctx.action) {
|
|
180
180
|
return;
|
|
181
181
|
}
|
|
182
182
|
const {
|
|
183
183
|
resourceName,
|
|
184
184
|
actionName,
|
|
185
185
|
params: { triggerWorkflows, beforeWorkflows }
|
|
186
|
-
} =
|
|
186
|
+
} = ctx.action;
|
|
187
187
|
if (beforeWorkflows) {
|
|
188
|
-
this.collectionTriggerAction(
|
|
188
|
+
this.collectionTriggerAction(ctx, beforeWorkflows);
|
|
189
189
|
}
|
|
190
190
|
if (resourceName === "workflows" && actionName === "trigger") {
|
|
191
|
-
return this.workflowTriggerAction(
|
|
191
|
+
return this.workflowTriggerAction(ctx, next);
|
|
192
192
|
}
|
|
193
193
|
await next();
|
|
194
194
|
if (!triggerWorkflows || !["create", "update"].includes(actionName)) {
|
|
195
195
|
return;
|
|
196
196
|
}
|
|
197
|
-
this.collectionTriggerAction(
|
|
197
|
+
this.collectionTriggerAction(ctx, triggerWorkflows);
|
|
198
198
|
};
|
|
199
199
|
const { db } = workflow.app;
|
|
200
200
|
db.on("approvals.afterSave", this.triggerHandler);
|
|
@@ -202,10 +202,10 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
|
|
|
202
202
|
db.on("executions.afterUpdate", this.onExecutionUpdate);
|
|
203
203
|
workflow.app.use(this.middleware, { tag: "workflow-trigger", after: "dataSource" });
|
|
204
204
|
}
|
|
205
|
-
async workflowTriggerAction(
|
|
206
|
-
const { triggerWorkflows, values } =
|
|
205
|
+
async workflowTriggerAction(ctx, next) {
|
|
206
|
+
const { triggerWorkflows, values } = ctx.action.params;
|
|
207
207
|
if (!triggerWorkflows) {
|
|
208
|
-
return
|
|
208
|
+
return ctx.throw(400);
|
|
209
209
|
}
|
|
210
210
|
const triggers = triggerWorkflows.split(",").map((trigger) => trigger.split("!"));
|
|
211
211
|
const workflowRepo = this.workflow.db.getRepository("workflows");
|
|
@@ -217,7 +217,7 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
|
|
|
217
217
|
enabled: true
|
|
218
218
|
}
|
|
219
219
|
});
|
|
220
|
-
|
|
220
|
+
ctx.status = 202;
|
|
221
221
|
await next();
|
|
222
222
|
workflows.forEach(async (workflow) => {
|
|
223
223
|
const trigger = triggers.find((trigger2) => trigger2[0] === workflow.key);
|
|
@@ -229,7 +229,7 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
|
|
|
229
229
|
// createdBy: currentUser.id,
|
|
230
230
|
// updatedById: currentUser.id,
|
|
231
231
|
},
|
|
232
|
-
context
|
|
232
|
+
context: ctx
|
|
233
233
|
});
|
|
234
234
|
const approvalRepo = this.workflow.db.getRepository("approvals");
|
|
235
235
|
await approvalRepo.create({
|
|
@@ -250,12 +250,12 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
|
|
|
250
250
|
app: this.workflow.app
|
|
251
251
|
})
|
|
252
252
|
},
|
|
253
|
-
context
|
|
253
|
+
context: ctx
|
|
254
254
|
});
|
|
255
255
|
});
|
|
256
256
|
}
|
|
257
|
-
async collectionTriggerAction(
|
|
258
|
-
const dataSourceHeader =
|
|
257
|
+
async collectionTriggerAction(ctx, workflowList) {
|
|
258
|
+
const dataSourceHeader = ctx.get("x-data-source") || "main";
|
|
259
259
|
const approvalRepo = this.workflow.db.getRepository("approvals");
|
|
260
260
|
const triggers = workflowList.split(",").map((trigger) => trigger.split("!"));
|
|
261
261
|
const triggersKeysMap = new Map(triggers);
|
|
@@ -265,7 +265,7 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
|
|
|
265
265
|
for (const workflow of workflows) {
|
|
266
266
|
const [dataSourceName, collectionName] = (0, import_server.parseCollectionName)(workflow.config.collection);
|
|
267
267
|
const trigger = triggers.find((trigger2) => trigger2[0] === workflow.key);
|
|
268
|
-
const { body: data } =
|
|
268
|
+
const { body: data } = ctx;
|
|
269
269
|
if (!data) {
|
|
270
270
|
return;
|
|
271
271
|
}
|
|
@@ -293,7 +293,7 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
|
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
295
|
}
|
|
296
|
-
const collection =
|
|
296
|
+
const collection = ctx.tego.dataSourceManager.dataSources.get(dataSourceName).collectionManager.getCollection(collectionName);
|
|
297
297
|
if (!collection || collection.model !== payload.constructor) {
|
|
298
298
|
return;
|
|
299
299
|
}
|
|
@@ -307,15 +307,15 @@ const _ApprovalTrigger = class _ApprovalTrigger extends import_module_workflow.T
|
|
|
307
307
|
// updatedBy: currentUser.id,
|
|
308
308
|
workflowId: workflow.id,
|
|
309
309
|
workflowKey: workflow.key,
|
|
310
|
-
applicantRoleName:
|
|
310
|
+
applicantRoleName: ctx.state.currentRole,
|
|
311
311
|
summary: (0, import_tools.getSummary)({
|
|
312
312
|
summaryConfig: workflow.config.summary,
|
|
313
313
|
data: dataCurrent,
|
|
314
314
|
collection,
|
|
315
|
-
app:
|
|
315
|
+
app: ctx.app
|
|
316
316
|
})
|
|
317
317
|
},
|
|
318
|
-
context
|
|
318
|
+
context: ctx
|
|
319
319
|
});
|
|
320
320
|
});
|
|
321
321
|
}
|
package/dist/server/utils.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export declare function findUniqueObjects(sourceArray: any[], uniqueByArray: string[], compareByKey?: string, compareByFunc?: (a: any, b: any) => number): any[];
|
|
2
|
-
export declare function getWorkflow(
|
|
3
|
-
export declare function getWorkflowByKey(
|
|
2
|
+
export declare function getWorkflow(ctx: any, workflowId: any): Promise<any>;
|
|
3
|
+
export declare function getWorkflowByKey(ctx: any, workflowKey: any): Promise<any>;
|
package/dist/server/utils.js
CHANGED
|
@@ -35,17 +35,17 @@ function findUniqueObjects(sourceArray = [], uniqueByArray, compareByKey = "", c
|
|
|
35
35
|
result = Object.values(uniqueMap);
|
|
36
36
|
return result;
|
|
37
37
|
}
|
|
38
|
-
async function getWorkflow(
|
|
38
|
+
async function getWorkflow(ctx, workflowId) {
|
|
39
39
|
if (workflowId) {
|
|
40
|
-
return await
|
|
40
|
+
return await ctx.db.getRepository("workflows").findOne({
|
|
41
41
|
filterByTk: workflowId
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
44
|
return null;
|
|
45
45
|
}
|
|
46
|
-
async function getWorkflowByKey(
|
|
46
|
+
async function getWorkflowByKey(ctx, workflowKey) {
|
|
47
47
|
if (workflowKey) {
|
|
48
|
-
return await
|
|
48
|
+
return await ctx.db.getRepository("workflows").findOne({
|
|
49
49
|
filter: {
|
|
50
50
|
key: workflowKey,
|
|
51
51
|
enabled: true
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tachybase/plugin-workflow-approval",
|
|
3
3
|
"displayName": "Approval",
|
|
4
|
-
"version": "1.6.
|
|
4
|
+
"version": "1.6.1",
|
|
5
5
|
"description": "Approval base in Workflow",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"Approval",
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
],
|
|
10
10
|
"main": "dist/server/index.js",
|
|
11
11
|
"devDependencies": {
|
|
12
|
-
"@ant-design/icons": "^
|
|
13
|
-
"@tachybase/schema": "1.
|
|
14
|
-
"@tachybase/test": "1.
|
|
15
|
-
"@tego/client": "1.
|
|
16
|
-
"@tego/server": "1.
|
|
12
|
+
"@ant-design/icons": "^6.1.0",
|
|
13
|
+
"@tachybase/schema": "1.6.0-alpha.9",
|
|
14
|
+
"@tachybase/test": "1.6.0-alpha.9",
|
|
15
|
+
"@tego/client": "1.6.0-alpha.9",
|
|
16
|
+
"@tego/server": "1.6.0-alpha.9",
|
|
17
17
|
"@types/file-saver": "^2.0.7",
|
|
18
18
|
"@types/lodash": "^4.17.20",
|
|
19
19
|
"ahooks": "^3.9.0",
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
"react-i18next": "16.2.1",
|
|
28
28
|
"react-router-dom": "6.28.1",
|
|
29
29
|
"sequelize": "6.37.5",
|
|
30
|
-
"@tachybase/client": "1.6.
|
|
31
|
-
"@tachybase/module-workflow": "1.6.
|
|
32
|
-
"@tachybase/module-ui-schema": "1.6.
|
|
30
|
+
"@tachybase/client": "1.6.1",
|
|
31
|
+
"@tachybase/module-workflow": "1.6.1",
|
|
32
|
+
"@tachybase/module-ui-schema": "1.6.1"
|
|
33
33
|
},
|
|
34
34
|
"description.zh-CN": "审批系统是一个强大的BPM工具,为业务流程自动化提供基础支持,同时具备高度灵活性和可扩展性,确保审批流程的效率和合规性,助力企业释放创新潜力。",
|
|
35
35
|
"displayName.zh-CN": "审批"
|